memory-journal-mcp 6.1.2 → 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 (372) 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 -254
  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 -1814
  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/releases/v6.1.2.md +0 -23
  91. package/scripts/generate-server-instructions.ts +0 -306
  92. package/scripts/server-instructions-function-body.ts +0 -107
  93. package/scripts/server-instructions-gotchas.ts +0 -45
  94. package/server.json +0 -42
  95. package/social-preview.png +0 -0
  96. package/src/auth/auth-context.ts +0 -78
  97. package/src/auth/authorization-server-discovery.ts +0 -263
  98. package/src/auth/errors.ts +0 -215
  99. package/src/auth/index.ts +0 -58
  100. package/src/auth/middleware.ts +0 -392
  101. package/src/auth/oauth-resource-server.ts +0 -170
  102. package/src/auth/scope-map.ts +0 -46
  103. package/src/auth/scopes.ts +0 -256
  104. package/src/auth/token-validator.ts +0 -293
  105. package/src/auth/transport-agnostic.ts +0 -164
  106. package/src/auth/types.ts +0 -372
  107. package/src/cli.ts +0 -279
  108. package/src/codemode/api-constants.ts +0 -263
  109. package/src/codemode/api.ts +0 -302
  110. package/src/codemode/auto-return.ts +0 -65
  111. package/src/codemode/index.ts +0 -47
  112. package/src/codemode/sandbox-factory.ts +0 -144
  113. package/src/codemode/sandbox.ts +0 -220
  114. package/src/codemode/security.ts +0 -155
  115. package/src/codemode/types.ts +0 -228
  116. package/src/codemode/worker-sandbox.ts +0 -277
  117. package/src/codemode/worker-script.ts +0 -239
  118. package/src/constants/icons.ts +0 -183
  119. package/src/constants/server-instructions.md +0 -166
  120. package/src/constants/server-instructions.ts +0 -514
  121. package/src/database/adapter-factory.ts +0 -16
  122. package/src/database/core/entry-columns.ts +0 -10
  123. package/src/database/core/interfaces.ts +0 -188
  124. package/src/database/core/schema.ts +0 -152
  125. package/src/database/sqlite-adapter/backup.ts +0 -167
  126. package/src/database/sqlite-adapter/entries/crud.ts +0 -233
  127. package/src/database/sqlite-adapter/entries/importance.ts +0 -76
  128. package/src/database/sqlite-adapter/entries/index.ts +0 -142
  129. package/src/database/sqlite-adapter/entries/search.ts +0 -294
  130. package/src/database/sqlite-adapter/entries/shared.ts +0 -102
  131. package/src/database/sqlite-adapter/entries/statistics.ts +0 -162
  132. package/src/database/sqlite-adapter/index.ts +0 -265
  133. package/src/database/sqlite-adapter/native-connection.ts +0 -301
  134. package/src/database/sqlite-adapter/relationships.ts +0 -70
  135. package/src/database/sqlite-adapter/tags.ts +0 -182
  136. package/src/filtering/tool-filter.ts +0 -312
  137. package/src/github/github-integration/client.ts +0 -114
  138. package/src/github/github-integration/index.ts +0 -297
  139. package/src/github/github-integration/insights.ts +0 -155
  140. package/src/github/github-integration/issues.ts +0 -213
  141. package/src/github/github-integration/milestones.ts +0 -262
  142. package/src/github/github-integration/projects.ts +0 -414
  143. package/src/github/github-integration/pull-requests.ts +0 -235
  144. package/src/github/github-integration/repository.ts +0 -110
  145. package/src/github/github-integration/types.ts +0 -43
  146. package/src/handlers/prompts/github.ts +0 -210
  147. package/src/handlers/prompts/index.ts +0 -97
  148. package/src/handlers/prompts/workflow.ts +0 -361
  149. package/src/handlers/resources/core/briefing/context-section.ts +0 -182
  150. package/src/handlers/resources/core/briefing/github-section.ts +0 -354
  151. package/src/handlers/resources/core/briefing/index.ts +0 -106
  152. package/src/handlers/resources/core/briefing/user-message.ts +0 -114
  153. package/src/handlers/resources/core/health.ts +0 -75
  154. package/src/handlers/resources/core/index.ts +0 -31
  155. package/src/handlers/resources/core/instructions.ts +0 -45
  156. package/src/handlers/resources/core/utilities.ts +0 -310
  157. package/src/handlers/resources/github.ts +0 -340
  158. package/src/handlers/resources/graph.ts +0 -218
  159. package/src/handlers/resources/help.ts +0 -410
  160. package/src/handlers/resources/index.ts +0 -143
  161. package/src/handlers/resources/shared.ts +0 -219
  162. package/src/handlers/resources/team.ts +0 -134
  163. package/src/handlers/resources/templates.ts +0 -334
  164. package/src/handlers/tools/admin.ts +0 -351
  165. package/src/handlers/tools/analytics.ts +0 -346
  166. package/src/handlers/tools/backup.ts +0 -272
  167. package/src/handlers/tools/codemode.ts +0 -188
  168. package/src/handlers/tools/core.ts +0 -359
  169. package/src/handlers/tools/error-fields-mixin.ts +0 -10
  170. package/src/handlers/tools/export.ts +0 -150
  171. package/src/handlers/tools/github/copilot-tools.ts +0 -72
  172. package/src/handlers/tools/github/helpers.ts +0 -125
  173. package/src/handlers/tools/github/insights-tools.ts +0 -112
  174. package/src/handlers/tools/github/issue-tools.ts +0 -442
  175. package/src/handlers/tools/github/kanban-tools.ts +0 -153
  176. package/src/handlers/tools/github/milestone-tools.ts +0 -371
  177. package/src/handlers/tools/github/mutation-tools.ts +0 -17
  178. package/src/handlers/tools/github/read-tools.ts +0 -302
  179. package/src/handlers/tools/github/schemas.ts +0 -435
  180. package/src/handlers/tools/github.ts +0 -39
  181. package/src/handlers/tools/index.ts +0 -255
  182. package/src/handlers/tools/relationships.ts +0 -390
  183. package/src/handlers/tools/schemas.ts +0 -165
  184. package/src/handlers/tools/search.ts +0 -448
  185. package/src/handlers/tools/team/admin-tools.ts +0 -164
  186. package/src/handlers/tools/team/analytics-tools.ts +0 -233
  187. package/src/handlers/tools/team/backup-tools.ts +0 -83
  188. package/src/handlers/tools/team/core-tools.ts +0 -197
  189. package/src/handlers/tools/team/export-tools.ts +0 -130
  190. package/src/handlers/tools/team/helpers.ts +0 -66
  191. package/src/handlers/tools/team/index.ts +0 -45
  192. package/src/handlers/tools/team/relationship-tools.ts +0 -219
  193. package/src/handlers/tools/team/schemas.ts +0 -558
  194. package/src/handlers/tools/team/search-tools.ts +0 -145
  195. package/src/handlers/tools/team/vector-tools.ts +0 -261
  196. package/src/index.ts +0 -57
  197. package/src/server/mcp-server.ts +0 -446
  198. package/src/server/registration.ts +0 -141
  199. package/src/server/scheduler.ts +0 -283
  200. package/src/transports/http/handlers.ts +0 -78
  201. package/src/transports/http/index.ts +0 -8
  202. package/src/transports/http/security.ts +0 -147
  203. package/src/transports/http/server/index.ts +0 -397
  204. package/src/transports/http/server/legacy-sse.ts +0 -87
  205. package/src/transports/http/server/stateful.ts +0 -222
  206. package/src/transports/http/server/stateless.ts +0 -42
  207. package/src/transports/http/types.ts +0 -132
  208. package/src/types/entities.ts +0 -145
  209. package/src/types/error-types.ts +0 -92
  210. package/src/types/errors.ts +0 -200
  211. package/src/types/filtering.ts +0 -55
  212. package/src/types/github.ts +0 -216
  213. package/src/types/index.ts +0 -348
  214. package/src/utils/error-helpers.ts +0 -78
  215. package/src/utils/errors/error-response-fields.ts +0 -29
  216. package/src/utils/errors/suggestions.ts +0 -94
  217. package/src/utils/github-helpers.ts +0 -33
  218. package/src/utils/logger.ts +0 -107
  219. package/src/utils/mcp-logger.ts +0 -155
  220. package/src/utils/progress-utils.ts +0 -100
  221. package/src/utils/query-helpers.ts +0 -78
  222. package/src/utils/resource-annotations.ts +0 -75
  223. package/src/utils/security-utils.ts +0 -198
  224. package/src/utils/vector-index-helpers.ts +0 -24
  225. package/src/vector/vector-search-manager.ts +0 -409
  226. package/src/version.ts +0 -15
  227. package/test-server/README.md +0 -193
  228. package/test-server/code-map.md +0 -399
  229. package/test-server/test-agent-experience.md +0 -213
  230. package/test-server/test-filter-instructions.mjs +0 -295
  231. package/test-server/test-instruction-levels.mjs +0 -102
  232. package/test-server/test-preflight.md +0 -55
  233. package/test-server/test-prompts.mjs +0 -185
  234. package/test-server/test-scheduler.mjs +0 -174
  235. package/test-server/test-tool-annotations.mjs +0 -115
  236. package/test-server/test-tools-codemode.md +0 -632
  237. package/test-server/test-tools-codemode2.md +0 -1218
  238. package/test-server/test-tools-team.md +0 -215
  239. package/test-server/test-tools.md +0 -429
  240. package/test-server/test-tools2.md +0 -361
  241. package/test-server/test-tools3.md +0 -396
  242. package/test-server/tool-reference.md +0 -231
  243. package/tests/README.md +0 -54
  244. package/tests/auth/auth-context.test.ts +0 -162
  245. package/tests/auth/authorization-server-discovery.test.ts +0 -265
  246. package/tests/auth/errors.test.ts +0 -170
  247. package/tests/auth/middleware.test.ts +0 -585
  248. package/tests/auth/oauth-resource-server.test.ts +0 -173
  249. package/tests/auth/scope-map.test.ts +0 -66
  250. package/tests/auth/scopes.test.ts +0 -347
  251. package/tests/auth/token-validator.test.ts +0 -271
  252. package/tests/codemode/api.test.ts +0 -396
  253. package/tests/codemode/auto-return.test.ts +0 -167
  254. package/tests/codemode/codemode-tool-handlers.test.ts +0 -197
  255. package/tests/codemode/sandbox-factory.test.ts +0 -152
  256. package/tests/codemode/sandbox.test.ts +0 -190
  257. package/tests/codemode/security.test.ts +0 -242
  258. package/tests/codemode/worker-sandbox.test.ts +0 -106
  259. package/tests/constants/icons.test.ts +0 -101
  260. package/tests/constants/server-instructions.test.ts +0 -514
  261. package/tests/database/crud-workflow-branches.test.ts +0 -418
  262. package/tests/database/database-branches.test.ts +0 -132
  263. package/tests/database/entries-auth-branches.test.ts +0 -390
  264. package/tests/database/native-connection.test.ts +0 -249
  265. package/tests/database/shared-helpers.test.ts +0 -103
  266. package/tests/database/sqlite-adapter.bench.ts +0 -63
  267. package/tests/database/sqlite-adapter.test.ts +0 -690
  268. package/tests/database/tags.test.ts +0 -134
  269. package/tests/e2e/README.md +0 -39
  270. package/tests/e2e/auth.spec.ts +0 -106
  271. package/tests/e2e/codemode-abuse.spec.ts +0 -75
  272. package/tests/e2e/health.spec.ts +0 -63
  273. package/tests/e2e/helpers.ts +0 -139
  274. package/tests/e2e/oauth-discovery.spec.ts +0 -102
  275. package/tests/e2e/oauth-scopes.spec.ts +0 -222
  276. package/tests/e2e/payloads-admin.spec.ts +0 -76
  277. package/tests/e2e/payloads-analytics.spec.ts +0 -37
  278. package/tests/e2e/payloads-backup-restore.spec.ts +0 -102
  279. package/tests/e2e/payloads-backup.spec.ts +0 -44
  280. package/tests/e2e/payloads-codemode-api.spec.ts +0 -131
  281. package/tests/e2e/payloads-codemode-readonly.spec.ts +0 -116
  282. package/tests/e2e/payloads-codemode.spec.ts +0 -116
  283. package/tests/e2e/payloads-core.spec.ts +0 -82
  284. package/tests/e2e/payloads-error-contracts.spec.ts +0 -159
  285. package/tests/e2e/payloads-export.spec.ts +0 -46
  286. package/tests/e2e/payloads-github-degradation.spec.ts +0 -73
  287. package/tests/e2e/payloads-github.spec.ts +0 -176
  288. package/tests/e2e/payloads-relationships.spec.ts +0 -56
  289. package/tests/e2e/payloads-search.spec.ts +0 -64
  290. package/tests/e2e/payloads-team-happy.spec.ts +0 -231
  291. package/tests/e2e/payloads-team.spec.ts +0 -174
  292. package/tests/e2e/prompts-expanded.spec.ts +0 -137
  293. package/tests/e2e/prompts.spec.ts +0 -62
  294. package/tests/e2e/protocols.spec.ts +0 -134
  295. package/tests/e2e/rate-limiting.spec.ts +0 -291
  296. package/tests/e2e/resources-briefing-env.spec.ts +0 -106
  297. package/tests/e2e/resources-complete.spec.ts +0 -180
  298. package/tests/e2e/resources-expanded.spec.ts +0 -83
  299. package/tests/e2e/resources-instructions-levels.spec.ts +0 -145
  300. package/tests/e2e/resources-templates.spec.ts +0 -123
  301. package/tests/e2e/resources.spec.ts +0 -103
  302. package/tests/e2e/scheduler.spec.ts +0 -79
  303. package/tests/e2e/security.spec.ts +0 -112
  304. package/tests/e2e/session-advanced.spec.ts +0 -152
  305. package/tests/e2e/sessions.spec.ts +0 -95
  306. package/tests/e2e/stateless.spec.ts +0 -79
  307. package/tests/e2e/streaming.spec.ts +0 -176
  308. package/tests/e2e/tool-filtering-presets.spec.ts +0 -192
  309. package/tests/e2e/tool-filtering.spec.ts +0 -77
  310. package/tests/e2e/tools.spec.ts +0 -111
  311. package/tests/filtering/tool-filter.test.ts +0 -314
  312. package/tests/github/client-issues-errors.test.ts +0 -433
  313. package/tests/github/github-integration-branches.test.ts +0 -490
  314. package/tests/github/github-integration.test.ts +0 -1015
  315. package/tests/github/github-managers-branches.test.ts +0 -907
  316. package/tests/github/pull-requests.test.ts +0 -334
  317. package/tests/handlers/analytics-branches.test.ts +0 -222
  318. package/tests/handlers/backup-branches.test.ts +0 -270
  319. package/tests/handlers/briefing-context-section.test.ts +0 -388
  320. package/tests/handlers/briefing-github-section.test.ts +0 -392
  321. package/tests/handlers/briefing-user-message.test.ts +0 -405
  322. package/tests/handlers/codemode-tools.test.ts +0 -85
  323. package/tests/handlers/copilot-tools.test.ts +0 -126
  324. package/tests/handlers/error-path-coverage.test.ts +0 -324
  325. package/tests/handlers/export-tools.test.ts +0 -203
  326. package/tests/handlers/github-resource-handlers.test.ts +0 -929
  327. package/tests/handlers/github-tool-handlers.test.ts +0 -1452
  328. package/tests/handlers/handler-error-branches.test.ts +0 -346
  329. package/tests/handlers/help-resource.test.ts +0 -92
  330. package/tests/handlers/prompt-handler-coverage.test.ts +0 -108
  331. package/tests/handlers/prompt-handlers.test.ts +0 -131
  332. package/tests/handlers/resource-handler-coverage.test.ts +0 -281
  333. package/tests/handlers/resource-handlers.test.ts +0 -357
  334. package/tests/handlers/resource-prompt-branches.test.ts +0 -495
  335. package/tests/handlers/search-tool-handlers.test.ts +0 -379
  336. package/tests/handlers/targeted-gap-closure.test.ts +0 -387
  337. package/tests/handlers/team-admin.test.ts +0 -291
  338. package/tests/handlers/team-analytics.test.ts +0 -220
  339. package/tests/handlers/team-core.test.ts +0 -148
  340. package/tests/handlers/team-data.test.ts +0 -198
  341. package/tests/handlers/team-relationships.test.ts +0 -271
  342. package/tests/handlers/team-resource-handlers.test.ts +0 -161
  343. package/tests/handlers/team-search.test.ts +0 -134
  344. package/tests/handlers/team-tool-handlers.test.ts +0 -301
  345. package/tests/handlers/team-vector.test.ts +0 -213
  346. package/tests/handlers/template-github-branches.test.ts +0 -676
  347. package/tests/handlers/tool-annotations.test.ts +0 -90
  348. package/tests/handlers/tool-handler-coverage.test.ts +0 -514
  349. package/tests/handlers/tool-handlers.test.ts +0 -510
  350. package/tests/handlers/tool-output-schemas.test.ts +0 -116
  351. package/tests/handlers/vector-tool-handlers.test.ts +0 -238
  352. package/tests/security/sql-injection.test.ts +0 -284
  353. package/tests/server/mcp-server.bench.ts +0 -55
  354. package/tests/server/mcp-server.test.ts +0 -1326
  355. package/tests/server/scheduler.test.ts +0 -400
  356. package/tests/transports/http-legacy-sse.test.ts +0 -275
  357. package/tests/transports/http-security.test.ts +0 -322
  358. package/tests/transports/http-stateful.test.ts +0 -487
  359. package/tests/transports/http-transport-server.test.ts +0 -301
  360. package/tests/transports/http-transport.test.ts +0 -771
  361. package/tests/utils/github-helpers.test.ts +0 -58
  362. package/tests/utils/logger.test.ts +0 -180
  363. package/tests/utils/mcp-logger.test.ts +0 -211
  364. package/tests/utils/progress-utils.test.ts +0 -156
  365. package/tests/utils/query-helpers.test.ts +0 -80
  366. package/tests/utils/security-utils.test.ts +0 -82
  367. package/tests/vector/vector-search-branches.test.ts +0 -111
  368. package/tests/vector/vector-search-manager.test.ts +0 -375
  369. package/tests/vector/vector-search.bench.ts +0 -48
  370. package/tsconfig.json +0 -42
  371. package/tsup.config.ts +0 -19
  372. 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 {