memory-journal-mcp 4.4.2 → 5.0.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 (291) hide show
  1. package/.github/workflows/codeql.yml +1 -6
  2. package/.github/workflows/docker-publish.yml +15 -49
  3. package/.github/workflows/lint-and-test.yml +1 -1
  4. package/.github/workflows/secrets-scanning.yml +4 -3
  5. package/.github/workflows/security-update.yml +3 -3
  6. package/CHANGELOG.md +213 -0
  7. package/CONTRIBUTING.md +132 -97
  8. package/DOCKER_README.md +184 -235
  9. package/Dockerfile +27 -24
  10. package/README.md +218 -190
  11. package/SECURITY.md +27 -35
  12. package/dist/cli.js +16 -1
  13. package/dist/cli.js.map +1 -1
  14. package/dist/constants/ServerInstructions.d.ts +5 -1
  15. package/dist/constants/ServerInstructions.d.ts.map +1 -1
  16. package/dist/constants/ServerInstructions.js +133 -73
  17. package/dist/constants/ServerInstructions.js.map +1 -1
  18. package/dist/constants/icons.d.ts +2 -2
  19. package/dist/constants/icons.d.ts.map +1 -1
  20. package/dist/constants/icons.js +7 -6
  21. package/dist/constants/icons.js.map +1 -1
  22. package/dist/database/SqliteAdapter.d.ts +37 -24
  23. package/dist/database/SqliteAdapter.d.ts.map +1 -1
  24. package/dist/database/SqliteAdapter.js +319 -157
  25. package/dist/database/SqliteAdapter.js.map +1 -1
  26. package/dist/database/schema.d.ts +45 -0
  27. package/dist/database/schema.d.ts.map +1 -0
  28. package/dist/database/schema.js +92 -0
  29. package/dist/database/schema.js.map +1 -0
  30. package/dist/filtering/ToolFilter.d.ts +1 -1
  31. package/dist/filtering/ToolFilter.d.ts.map +1 -1
  32. package/dist/filtering/ToolFilter.js +13 -2
  33. package/dist/filtering/ToolFilter.js.map +1 -1
  34. package/dist/github/GitHubIntegration.d.ts.map +1 -1
  35. package/dist/github/GitHubIntegration.js +1 -3
  36. package/dist/github/GitHubIntegration.js.map +1 -1
  37. package/dist/handlers/prompts/github.d.ts +12 -0
  38. package/dist/handlers/prompts/github.d.ts.map +1 -0
  39. package/dist/handlers/prompts/github.js +178 -0
  40. package/dist/handlers/prompts/github.js.map +1 -0
  41. package/dist/handlers/prompts/index.d.ts +23 -2
  42. package/dist/handlers/prompts/index.d.ts.map +1 -1
  43. package/dist/handlers/prompts/index.js +7 -432
  44. package/dist/handlers/prompts/index.js.map +1 -1
  45. package/dist/handlers/prompts/workflow.d.ts +12 -0
  46. package/dist/handlers/prompts/workflow.d.ts.map +1 -0
  47. package/dist/handlers/prompts/workflow.js +277 -0
  48. package/dist/handlers/prompts/workflow.js.map +1 -0
  49. package/dist/handlers/resources/core.d.ts +11 -0
  50. package/dist/handlers/resources/core.d.ts.map +1 -0
  51. package/dist/handlers/resources/core.js +433 -0
  52. package/dist/handlers/resources/core.js.map +1 -0
  53. package/dist/handlers/resources/github.d.ts +11 -0
  54. package/dist/handlers/resources/github.d.ts.map +1 -0
  55. package/dist/handlers/resources/github.js +314 -0
  56. package/dist/handlers/resources/github.js.map +1 -0
  57. package/dist/handlers/resources/graph.d.ts +11 -0
  58. package/dist/handlers/resources/graph.d.ts.map +1 -0
  59. package/dist/handlers/resources/graph.js +204 -0
  60. package/dist/handlers/resources/graph.js.map +1 -0
  61. package/dist/handlers/resources/index.d.ts +5 -20
  62. package/dist/handlers/resources/index.d.ts.map +1 -1
  63. package/dist/handlers/resources/index.js +16 -1278
  64. package/dist/handlers/resources/index.js.map +1 -1
  65. package/dist/handlers/resources/shared.d.ts +60 -0
  66. package/dist/handlers/resources/shared.d.ts.map +1 -0
  67. package/dist/handlers/resources/shared.js +49 -0
  68. package/dist/handlers/resources/shared.js.map +1 -0
  69. package/dist/handlers/resources/team.d.ts +13 -0
  70. package/dist/handlers/resources/team.d.ts.map +1 -0
  71. package/dist/handlers/resources/team.js +119 -0
  72. package/dist/handlers/resources/team.js.map +1 -0
  73. package/dist/handlers/resources/templates.d.ts +13 -0
  74. package/dist/handlers/resources/templates.d.ts.map +1 -0
  75. package/dist/handlers/resources/templates.js +310 -0
  76. package/dist/handlers/resources/templates.js.map +1 -0
  77. package/dist/handlers/tools/admin.d.ts +8 -0
  78. package/dist/handlers/tools/admin.d.ts.map +1 -0
  79. package/dist/handlers/tools/admin.js +270 -0
  80. package/dist/handlers/tools/admin.js.map +1 -0
  81. package/dist/handlers/tools/analytics.d.ts +8 -0
  82. package/dist/handlers/tools/analytics.d.ts.map +1 -0
  83. package/dist/handlers/tools/analytics.js +256 -0
  84. package/dist/handlers/tools/analytics.js.map +1 -0
  85. package/dist/handlers/tools/backup.d.ts +8 -0
  86. package/dist/handlers/tools/backup.d.ts.map +1 -0
  87. package/dist/handlers/tools/backup.js +224 -0
  88. package/dist/handlers/tools/backup.js.map +1 -0
  89. package/dist/handlers/tools/core.d.ts +9 -0
  90. package/dist/handlers/tools/core.d.ts.map +1 -0
  91. package/dist/handlers/tools/core.js +326 -0
  92. package/dist/handlers/tools/core.js.map +1 -0
  93. package/dist/handlers/tools/export.d.ts +8 -0
  94. package/dist/handlers/tools/export.d.ts.map +1 -0
  95. package/dist/handlers/tools/export.js +89 -0
  96. package/dist/handlers/tools/export.js.map +1 -0
  97. package/dist/handlers/tools/github/helpers.d.ts +34 -0
  98. package/dist/handlers/tools/github/helpers.d.ts.map +1 -0
  99. package/dist/handlers/tools/github/helpers.js +52 -0
  100. package/dist/handlers/tools/github/helpers.js.map +1 -0
  101. package/dist/handlers/tools/github/insights-tools.d.ts +8 -0
  102. package/dist/handlers/tools/github/insights-tools.d.ts.map +1 -0
  103. package/dist/handlers/tools/github/insights-tools.js +104 -0
  104. package/dist/handlers/tools/github/insights-tools.js.map +1 -0
  105. package/dist/handlers/tools/github/issue-tools.d.ts +8 -0
  106. package/dist/handlers/tools/github/issue-tools.d.ts.map +1 -0
  107. package/dist/handlers/tools/github/issue-tools.js +359 -0
  108. package/dist/handlers/tools/github/issue-tools.js.map +1 -0
  109. package/dist/handlers/tools/github/kanban-tools.d.ts +8 -0
  110. package/dist/handlers/tools/github/kanban-tools.d.ts.map +1 -0
  111. package/dist/handlers/tools/github/kanban-tools.js +108 -0
  112. package/dist/handlers/tools/github/kanban-tools.js.map +1 -0
  113. package/dist/handlers/tools/github/milestone-tools.d.ts +9 -0
  114. package/dist/handlers/tools/github/milestone-tools.d.ts.map +1 -0
  115. package/dist/handlers/tools/github/milestone-tools.js +302 -0
  116. package/dist/handlers/tools/github/milestone-tools.js.map +1 -0
  117. package/dist/handlers/tools/github/mutation-tools.d.ts +12 -0
  118. package/dist/handlers/tools/github/mutation-tools.d.ts.map +1 -0
  119. package/dist/handlers/tools/github/mutation-tools.js +15 -0
  120. package/dist/handlers/tools/github/mutation-tools.js.map +1 -0
  121. package/dist/handlers/tools/github/read-tools.d.ts +8 -0
  122. package/dist/handlers/tools/github/read-tools.d.ts.map +1 -0
  123. package/dist/handlers/tools/github/read-tools.js +260 -0
  124. package/dist/handlers/tools/github/read-tools.js.map +1 -0
  125. package/dist/handlers/tools/github/schemas.d.ts +467 -0
  126. package/dist/handlers/tools/github/schemas.d.ts.map +1 -0
  127. package/dist/handlers/tools/github/schemas.js +335 -0
  128. package/dist/handlers/tools/github/schemas.js.map +1 -0
  129. package/dist/handlers/tools/github.d.ts +14 -0
  130. package/dist/handlers/tools/github.d.ts.map +1 -0
  131. package/dist/handlers/tools/github.js +28 -0
  132. package/dist/handlers/tools/github.js.map +1 -0
  133. package/dist/handlers/tools/index.d.ts +15 -20
  134. package/dist/handlers/tools/index.d.ts.map +1 -1
  135. package/dist/handlers/tools/index.js +117 -2909
  136. package/dist/handlers/tools/index.js.map +1 -1
  137. package/dist/handlers/tools/relationships.d.ts +8 -0
  138. package/dist/handlers/tools/relationships.d.ts.map +1 -0
  139. package/dist/handlers/tools/relationships.js +308 -0
  140. package/dist/handlers/tools/relationships.js.map +1 -0
  141. package/dist/handlers/tools/schemas.d.ts +108 -0
  142. package/dist/handlers/tools/schemas.d.ts.map +1 -0
  143. package/dist/handlers/tools/schemas.js +122 -0
  144. package/dist/handlers/tools/schemas.js.map +1 -0
  145. package/dist/handlers/tools/search.d.ts +8 -0
  146. package/dist/handlers/tools/search.d.ts.map +1 -0
  147. package/dist/handlers/tools/search.js +282 -0
  148. package/dist/handlers/tools/search.js.map +1 -0
  149. package/dist/handlers/tools/team.d.ts +11 -0
  150. package/dist/handlers/tools/team.d.ts.map +1 -0
  151. package/dist/handlers/tools/team.js +239 -0
  152. package/dist/handlers/tools/team.js.map +1 -0
  153. package/dist/server/McpServer.d.ts +4 -0
  154. package/dist/server/McpServer.d.ts.map +1 -1
  155. package/dist/server/McpServer.js +48 -297
  156. package/dist/server/McpServer.js.map +1 -1
  157. package/dist/server/Scheduler.d.ts +91 -0
  158. package/dist/server/Scheduler.d.ts.map +1 -0
  159. package/dist/server/Scheduler.js +201 -0
  160. package/dist/server/Scheduler.js.map +1 -0
  161. package/dist/transports/http.d.ts +66 -0
  162. package/dist/transports/http.d.ts.map +1 -0
  163. package/dist/transports/http.js +519 -0
  164. package/dist/transports/http.js.map +1 -0
  165. package/dist/types/entities.d.ts +101 -0
  166. package/dist/types/entities.d.ts.map +1 -0
  167. package/dist/types/entities.js +5 -0
  168. package/dist/types/entities.js.map +1 -0
  169. package/dist/types/filtering.d.ts +34 -0
  170. package/dist/types/filtering.d.ts.map +1 -0
  171. package/dist/types/filtering.js +5 -0
  172. package/dist/types/filtering.js.map +1 -0
  173. package/dist/types/github.d.ts +166 -0
  174. package/dist/types/github.d.ts.map +1 -0
  175. package/dist/types/github.js +5 -0
  176. package/dist/types/github.js.map +1 -0
  177. package/dist/types/index.d.ts +35 -292
  178. package/dist/types/index.d.ts.map +1 -1
  179. package/dist/types/index.js +2 -2
  180. package/dist/types/index.js.map +1 -1
  181. package/dist/utils/error-helpers.d.ts +37 -0
  182. package/dist/utils/error-helpers.d.ts.map +1 -0
  183. package/dist/utils/error-helpers.js +47 -0
  184. package/dist/utils/error-helpers.js.map +1 -0
  185. package/dist/utils/logger.d.ts.map +1 -1
  186. package/dist/utils/logger.js +6 -3
  187. package/dist/utils/logger.js.map +1 -1
  188. package/dist/utils/security-utils.d.ts +0 -21
  189. package/dist/utils/security-utils.d.ts.map +1 -1
  190. package/dist/utils/security-utils.js +0 -47
  191. package/dist/utils/security-utils.js.map +1 -1
  192. package/dist/vector/VectorSearchManager.d.ts.map +1 -1
  193. package/dist/vector/VectorSearchManager.js +9 -32
  194. package/dist/vector/VectorSearchManager.js.map +1 -1
  195. package/docker-compose.yml +11 -2
  196. package/hooks/README.md +107 -0
  197. package/hooks/cursor/hooks.json +10 -0
  198. package/hooks/cursor/memory-journal.mdc +22 -0
  199. package/hooks/cursor/session-end.sh +19 -0
  200. package/hooks/kilo-code/session-end-mode.json +11 -0
  201. package/hooks/kiro/session-end.md +13 -0
  202. package/mcp-config-example.json +1 -0
  203. package/package.json +11 -9
  204. package/playwright.config.ts +29 -0
  205. package/releases/v4.5.0.md +116 -0
  206. package/releases/v5.0.0.md +105 -0
  207. package/scripts/generate-server-instructions.ts +176 -0
  208. package/scripts/server-instructions-function-body.ts +77 -0
  209. package/server.json +3 -3
  210. package/src/cli.ts +45 -1
  211. package/src/constants/ServerInstructions.ts +133 -73
  212. package/src/constants/icons.ts +8 -7
  213. package/src/constants/server-instructions.md +268 -0
  214. package/src/database/SqliteAdapter.ts +358 -192
  215. package/src/database/schema.ts +125 -0
  216. package/src/filtering/ToolFilter.ts +13 -2
  217. package/src/github/GitHubIntegration.ts +1 -3
  218. package/src/handlers/prompts/github.ts +209 -0
  219. package/src/handlers/prompts/index.ts +10 -499
  220. package/src/handlers/prompts/workflow.ts +314 -0
  221. package/src/handlers/resources/core.ts +528 -0
  222. package/src/handlers/resources/github.ts +358 -0
  223. package/src/handlers/resources/graph.ts +254 -0
  224. package/src/handlers/resources/index.ts +23 -1570
  225. package/src/handlers/resources/shared.ts +103 -0
  226. package/src/handlers/resources/team.ts +133 -0
  227. package/src/handlers/resources/templates.ts +374 -0
  228. package/src/handlers/tools/admin.ts +285 -0
  229. package/src/handlers/tools/analytics.ts +301 -0
  230. package/src/handlers/tools/backup.ts +242 -0
  231. package/src/handlers/tools/core.ts +350 -0
  232. package/src/handlers/tools/export.ts +115 -0
  233. package/src/handlers/tools/github/helpers.ts +86 -0
  234. package/src/handlers/tools/github/insights-tools.ts +119 -0
  235. package/src/handlers/tools/github/issue-tools.ts +439 -0
  236. package/src/handlers/tools/github/kanban-tools.ts +134 -0
  237. package/src/handlers/tools/github/milestone-tools.ts +392 -0
  238. package/src/handlers/tools/github/mutation-tools.ts +17 -0
  239. package/src/handlers/tools/github/read-tools.ts +328 -0
  240. package/src/handlers/tools/github/schemas.ts +369 -0
  241. package/src/handlers/tools/github.ts +36 -0
  242. package/src/handlers/tools/index.ts +144 -3325
  243. package/src/handlers/tools/relationships.ts +358 -0
  244. package/src/handlers/tools/schemas.ts +132 -0
  245. package/src/handlers/tools/search.ts +343 -0
  246. package/src/handlers/tools/team.ts +273 -0
  247. package/src/server/McpServer.ts +63 -358
  248. package/src/server/Scheduler.ts +278 -0
  249. package/src/transports/http.ts +635 -0
  250. package/src/types/entities.ts +145 -0
  251. package/src/types/filtering.ts +54 -0
  252. package/src/types/github.ts +180 -0
  253. package/src/types/index.ts +67 -375
  254. package/src/utils/error-helpers.ts +52 -0
  255. package/src/utils/logger.ts +6 -3
  256. package/src/utils/security-utils.ts +0 -52
  257. package/src/vector/VectorSearchManager.ts +9 -33
  258. package/tests/constants/icons.test.ts +1 -2
  259. package/tests/constants/server-instructions.test.ts +30 -4
  260. package/tests/database/sqlite-adapter.test.ts +91 -7
  261. package/tests/e2e/auth.spec.ts +154 -0
  262. package/tests/e2e/health.spec.ts +63 -0
  263. package/tests/e2e/protocols.spec.ts +134 -0
  264. package/tests/e2e/resources.spec.ts +103 -0
  265. package/tests/e2e/scheduler.spec.ts +79 -0
  266. package/tests/e2e/security.spec.ts +91 -0
  267. package/tests/e2e/sessions.spec.ts +95 -0
  268. package/tests/e2e/stateless.spec.ts +121 -0
  269. package/tests/e2e/tools.spec.ts +111 -0
  270. package/tests/filtering/tool-filter.test.ts +46 -0
  271. package/tests/handlers/error-path-coverage.test.ts +324 -0
  272. package/tests/handlers/github-resource-handlers.test.ts +453 -0
  273. package/tests/handlers/github-tool-handlers.test.ts +899 -0
  274. package/tests/handlers/prompt-handler-coverage.test.ts +106 -0
  275. package/tests/handlers/prompt-handlers.test.ts +40 -0
  276. package/tests/handlers/resource-handler-coverage.test.ts +181 -0
  277. package/tests/handlers/resource-handlers.test.ts +33 -9
  278. package/tests/handlers/search-tool-handlers.test.ts +272 -0
  279. package/tests/handlers/targeted-gap-closure.test.ts +387 -0
  280. package/tests/handlers/team-resource-handlers.test.ts +156 -0
  281. package/tests/handlers/team-tool-handlers.test.ts +301 -0
  282. package/tests/handlers/tool-handler-coverage.test.ts +469 -0
  283. package/tests/handlers/tool-handlers.test.ts +2 -2
  284. package/tests/security/sql-injection.test.ts +3 -54
  285. package/tests/server/mcp-server.test.ts +503 -8
  286. package/tests/server/scheduler.test.ts +400 -0
  287. package/tests/transports/http-transport.test.ts +620 -0
  288. package/tests/vector/vector-search-manager.test.ts +60 -0
  289. package/vitest.config.ts +4 -1
  290. package/.memory-journal-team.db +0 -0
  291. package/.vscode/settings.json +0 -84
@@ -0,0 +1,433 @@
1
+ /**
2
+ * Memory Journal MCP Server - Core Resource Definitions
3
+ *
4
+ * Resources: briefing, instructions, recent, significant, tags, statistics, health
5
+ */
6
+ import { getAllToolNames } from '../../filtering/ToolFilter.js';
7
+ import { generateInstructions } from '../../constants/ServerInstructions.js';
8
+ import { getPrompts } from '../prompts/index.js';
9
+ import { ICON_BRIEFING, ICON_CLOCK, ICON_HEALTH, ICON_STAR, ICON_TAG, ICON_ANALYTICS, } from '../../constants/icons.js';
10
+ import pkg from '../../../package.json' with { type: 'json' };
11
+ import { execQuery, transformEntryRow } from './shared.js';
12
+ /**
13
+ * Get total tool count for health status
14
+ */
15
+ function getTotalToolCount() {
16
+ return getAllToolNames().length;
17
+ }
18
+ /**
19
+ * Get core resource definitions
20
+ */
21
+ export function getCoreResourceDefinitions() {
22
+ return [
23
+ // Session initialization resource - highest priority
24
+ {
25
+ uri: 'memory://briefing',
26
+ name: 'Initial Briefing',
27
+ title: 'Session Initialization Context',
28
+ description: 'AUTO-READ AT SESSION START: Project context for AI agents (~300 tokens). Contains userMessage to show user.',
29
+ mimeType: 'application/json',
30
+ icons: [ICON_BRIEFING],
31
+ annotations: {
32
+ audience: ['assistant'],
33
+ priority: 1.0,
34
+ autoRead: true,
35
+ sessionInit: true,
36
+ },
37
+ handler: async (_uri, context) => {
38
+ // Get latest 3 entries (compact)
39
+ const recentEntries = context.db.getRecentEntries(3);
40
+ const latestEntries = recentEntries.map((e) => ({
41
+ id: e.id,
42
+ timestamp: e.timestamp,
43
+ type: e.entryType,
44
+ preview: e.content.slice(0, 80) + (e.content.length > 80 ? '...' : ''),
45
+ }));
46
+ // Get compact GitHub status if available
47
+ let github = null;
48
+ if (context.github) {
49
+ try {
50
+ const repoInfo = await context.github.getRepoInfo();
51
+ const owner = repoInfo.owner;
52
+ const repo = repoInfo.repo;
53
+ if (owner && repo) {
54
+ // Get CI status (based on latest run only)
55
+ let ciStatus = 'unknown';
56
+ try {
57
+ const runs = await context.github.getWorkflowRuns(owner, repo, 1);
58
+ if (runs.length > 0) {
59
+ const latestRun = runs[0];
60
+ if (!latestRun) {
61
+ ciStatus = 'unknown';
62
+ }
63
+ else if (latestRun.status !== 'completed') {
64
+ ciStatus = 'pending';
65
+ }
66
+ else {
67
+ switch (latestRun.conclusion) {
68
+ case 'success':
69
+ ciStatus = 'passing';
70
+ break;
71
+ case 'failure':
72
+ ciStatus = 'failing';
73
+ break;
74
+ case 'cancelled':
75
+ ciStatus = 'cancelled';
76
+ break;
77
+ default:
78
+ ciStatus = 'unknown';
79
+ }
80
+ }
81
+ }
82
+ }
83
+ catch {
84
+ // CI status unavailable
85
+ }
86
+ // Get issue/PR counts
87
+ let openIssues = 0;
88
+ let openPRs = 0;
89
+ try {
90
+ const issues = await context.github.getIssues(owner, repo, 'open', 1);
91
+ openIssues = issues.length > 0 ? issues.length : 0;
92
+ const prs = await context.github.getPullRequests(owner, repo, 'open', 1);
93
+ openPRs = prs.length > 0 ? prs.length : 0;
94
+ }
95
+ catch {
96
+ // Counts unavailable
97
+ }
98
+ // Get milestone summary for briefing
99
+ let milestones = [];
100
+ try {
101
+ const msList = await context.github.getMilestones(owner, repo, 'open', 3);
102
+ milestones = msList.map((m) => {
103
+ const total = m.closedIssues + m.openIssues;
104
+ const pct = total > 0 ? Math.round((m.closedIssues / total) * 100) : 0;
105
+ return {
106
+ title: m.title,
107
+ progress: `${String(pct)}%`,
108
+ dueOn: m.dueOn,
109
+ };
110
+ });
111
+ }
112
+ catch {
113
+ // Milestones unavailable
114
+ }
115
+ // Get repo insights (stars, forks, traffic)
116
+ let insights = undefined;
117
+ try {
118
+ const repoStats = await context.github.getRepoStats(owner, repo);
119
+ if (repoStats) {
120
+ insights = {
121
+ stars: repoStats.stars ?? null,
122
+ forks: repoStats.forks ?? null,
123
+ };
124
+ // Traffic requires push access - may fail
125
+ try {
126
+ const trafficData = await context.github.getTrafficData(owner, repo);
127
+ if (trafficData) {
128
+ insights.clones14d = trafficData.clones.total;
129
+ insights.views14d = trafficData.views.total;
130
+ }
131
+ }
132
+ catch {
133
+ // Traffic data unavailable (requires push access)
134
+ }
135
+ }
136
+ }
137
+ catch {
138
+ // Repo stats unavailable
139
+ }
140
+ github = {
141
+ repo: `${owner}/${repo}`,
142
+ branch: repoInfo.branch ?? null,
143
+ ci: ciStatus,
144
+ openIssues,
145
+ openPRs,
146
+ milestones,
147
+ insights,
148
+ };
149
+ }
150
+ }
151
+ catch {
152
+ // GitHub unavailable
153
+ }
154
+ }
155
+ // Get entry count for context
156
+ const stats = context.db.getStatistics('week');
157
+ const totalEntries = stats.totalEntries ?? 0;
158
+ // Team DB context (if configured)
159
+ let teamContext = undefined;
160
+ if (context.teamDb) {
161
+ try {
162
+ const teamStats = context.teamDb.getStatistics('week');
163
+ const teamRecent = context.teamDb.getRecentEntries(1);
164
+ const teamLatest = teamRecent[0]
165
+ ? `#${teamRecent[0].id}: ${teamRecent[0].content.slice(0, 60)}${teamRecent[0].content.length > 60 ? '...' : ''}`
166
+ : null;
167
+ teamContext = {
168
+ totalEntries: teamStats.totalEntries ?? 0,
169
+ latestPreview: teamLatest,
170
+ };
171
+ }
172
+ catch {
173
+ // Team DB unavailable
174
+ }
175
+ }
176
+ // Determine lastModified from most recent entry or current time
177
+ const lastModified = recentEntries[0]?.timestamp ?? new Date().toISOString();
178
+ // Build acknowledgment message for user
179
+ const repoName = github?.repo ?? 'local';
180
+ const branchName = github?.branch ?? 'unknown';
181
+ const ciStatus = github?.ci ?? 'unknown';
182
+ const latestPreview = latestEntries[0]
183
+ ? `#${latestEntries[0].id} (${latestEntries[0].type}): ${latestEntries[0].preview}`
184
+ : 'No entries yet';
185
+ const milestoneRow = github?.milestones && github.milestones.length > 0
186
+ ? `\n| **Milestones** | ${github.milestones.map((m) => `${m.title} (${m.progress}${m.dueOn ? `, due ${m.dueOn.split('T')[0] ?? ''}` : ''})`).join(', ')} |`
187
+ : '';
188
+ // Build insights row for userMessage
189
+ let insightsRow = '';
190
+ if (github?.insights) {
191
+ const parts = [];
192
+ if (github.insights.stars !== null)
193
+ parts.push(`⭐ ${String(github.insights.stars)} stars`);
194
+ if (github.insights.forks !== null)
195
+ parts.push(`🍴 ${String(github.insights.forks)} forks`);
196
+ if (github.insights.clones14d !== undefined)
197
+ parts.push(`📦 ${String(github.insights.clones14d)} clones`);
198
+ if (github.insights.views14d !== undefined)
199
+ parts.push(`👁️ ${String(github.insights.views14d)} views`);
200
+ if (parts.length > 0) {
201
+ const trafficNote = github.insights.clones14d !== undefined ? ' (14d)' : '';
202
+ insightsRow = `\n| **Insights** | ${parts.join(' · ')}${trafficNote} |`;
203
+ }
204
+ }
205
+ return {
206
+ data: {
207
+ version: pkg.version,
208
+ serverTime: new Date().toISOString(),
209
+ journal: {
210
+ totalEntries,
211
+ latestEntries,
212
+ },
213
+ github,
214
+ teamContext,
215
+ behaviors: {
216
+ create: 'implementations, decisions, bug-fixes, milestones',
217
+ search: 'before decisions, referencing prior work',
218
+ link: 'implementation→spec, bugfix→issue',
219
+ },
220
+ templateResources: [
221
+ 'memory://projects/{number}/timeline',
222
+ 'memory://issues/{issue_number}/entries',
223
+ 'memory://prs/{pr_number}/entries',
224
+ 'memory://prs/{pr_number}/timeline',
225
+ 'memory://kanban/{project_number}',
226
+ 'memory://kanban/{project_number}/diagram',
227
+ 'memory://milestones/{number}',
228
+ ],
229
+ more: {
230
+ fullHealth: 'memory://health',
231
+ allRecent: 'memory://recent',
232
+ githubStatus: 'memory://github/status',
233
+ repoInsights: 'memory://github/insights',
234
+ contextBundle: 'get-context-bundle prompt',
235
+ },
236
+ // IMPORTANT: Agent should relay this message to the user
237
+ userMessage: `📋 **Session Context Loaded**
238
+ | Context | Value |
239
+ |---------|-------|
240
+ | **Project** | ${repoName} |
241
+ | **Branch** | ${branchName} |
242
+ | **CI Status** | ${ciStatus} |
243
+ | **Journal** | ${totalEntries} entries |${teamContext ? `\n| **Team DB** | ${teamContext.totalEntries} entries |` : ''}
244
+ | **Latest** | ${latestPreview} |${milestoneRow}${insightsRow}
245
+
246
+ I have project memory access and will create entries for significant work.`,
247
+ // Note for clients that don't auto-inject ServerInstructions
248
+ clientNote: 'For complete tool reference and field notes, read memory://instructions.',
249
+ },
250
+ annotations: { lastModified },
251
+ };
252
+ },
253
+ },
254
+ // Server instructions resource
255
+ {
256
+ uri: 'memory://instructions',
257
+ name: 'Server Instructions',
258
+ title: 'Full Server Behavioral Guidance',
259
+ description: 'Full server instructions for AI agents.',
260
+ mimeType: 'text/markdown',
261
+ icons: [ICON_BRIEFING],
262
+ annotations: {
263
+ audience: ['assistant'],
264
+ priority: 0.95,
265
+ },
266
+ handler: async (_uri, context) => {
267
+ const level = 'full';
268
+ const allToolNames = new Set(getAllToolNames());
269
+ const enabledTools = context.filterConfig?.enabledTools ?? allToolNames;
270
+ const prompts = getPrompts().map((p) => {
271
+ const prompt = p;
272
+ return { name: prompt.name, description: prompt.description };
273
+ });
274
+ // Deferred import to avoid circular dependency (core → index → core)
275
+ const { getResources } = await import('./index.js');
276
+ const resources = getResources().map((r) => {
277
+ const res = r;
278
+ return { uri: res.uri, name: res.name, description: res.description };
279
+ });
280
+ const instructions = generateInstructions(enabledTools, resources, prompts, undefined, level);
281
+ return {
282
+ data: instructions,
283
+ };
284
+ },
285
+ },
286
+ {
287
+ uri: 'memory://recent',
288
+ name: 'Recent Entries',
289
+ title: 'Recent Journal Entries',
290
+ description: '10 most recent journal entries',
291
+ mimeType: 'application/json',
292
+ icons: [ICON_CLOCK],
293
+ annotations: {
294
+ audience: ['assistant'],
295
+ priority: 0.8,
296
+ },
297
+ handler: (_uri, context) => {
298
+ const entries = context.db.getRecentEntries(10);
299
+ const lastModified = entries[0]?.timestamp ?? new Date().toISOString();
300
+ return {
301
+ data: { entries, count: entries.length },
302
+ annotations: { lastModified },
303
+ };
304
+ },
305
+ },
306
+ {
307
+ uri: 'memory://significant',
308
+ name: 'Significant Entries',
309
+ title: 'Significant Milestones',
310
+ description: 'Significant milestones and breakthroughs',
311
+ mimeType: 'application/json',
312
+ icons: [ICON_STAR],
313
+ annotations: {
314
+ audience: ['assistant'],
315
+ priority: 0.7,
316
+ },
317
+ handler: (_uri, context) => {
318
+ const rows = execQuery(context.db, `
319
+ SELECT * FROM memory_journal
320
+ WHERE significance_type IS NOT NULL
321
+ AND deleted_at IS NULL
322
+ `);
323
+ const entriesWithImportance = rows.map((row) => {
324
+ const entry = transformEntryRow(row);
325
+ const { score: importance } = context.db.calculateImportance(entry['id']);
326
+ return { ...entry, importance };
327
+ });
328
+ entriesWithImportance.sort((a, b) => {
329
+ if (b.importance !== a.importance) {
330
+ return b.importance - a.importance;
331
+ }
332
+ const aTime = new Date(a['timestamp']).getTime();
333
+ const bTime = new Date(b['timestamp']).getTime();
334
+ return bTime - aTime;
335
+ });
336
+ const top20 = entriesWithImportance.slice(0, 20);
337
+ return { entries: top20, count: top20.length };
338
+ },
339
+ },
340
+ {
341
+ uri: 'memory://tags',
342
+ name: 'All Tags',
343
+ title: 'Tag List',
344
+ description: 'All available tags with usage counts',
345
+ mimeType: 'application/json',
346
+ icons: [ICON_TAG],
347
+ annotations: {
348
+ audience: ['assistant'],
349
+ priority: 0.4,
350
+ },
351
+ handler: (_uri, context) => {
352
+ const tags = context.db.listTags();
353
+ const mappedTags = tags.map((t) => ({
354
+ id: t.id,
355
+ name: t.name,
356
+ count: t.usageCount,
357
+ }));
358
+ return { tags: mappedTags, count: mappedTags.length };
359
+ },
360
+ },
361
+ {
362
+ uri: 'memory://statistics',
363
+ name: 'Statistics',
364
+ title: 'Journal Statistics',
365
+ description: 'Overall journal statistics',
366
+ mimeType: 'application/json',
367
+ icons: [ICON_ANALYTICS],
368
+ annotations: {
369
+ audience: ['assistant'],
370
+ priority: 0.4,
371
+ },
372
+ handler: (_uri, context) => {
373
+ return context.db.getStatistics('week');
374
+ },
375
+ },
376
+ {
377
+ uri: 'memory://health',
378
+ name: 'Server Health',
379
+ title: 'Server Health & Diagnostics',
380
+ description: 'Server health status including database, backups, vector index (real-time stats), and tool filter status',
381
+ mimeType: 'application/json',
382
+ icons: [ICON_HEALTH],
383
+ annotations: {
384
+ audience: ['assistant'],
385
+ priority: 0.9,
386
+ },
387
+ handler: async (_uri, context) => {
388
+ const dbHealth = context.db.getHealthStatus();
389
+ let vectorIndex = null;
390
+ if (context.vectorManager) {
391
+ try {
392
+ const stats = await context.vectorManager.getStats();
393
+ vectorIndex = {
394
+ available: true,
395
+ itemCount: stats.itemCount,
396
+ modelName: stats.modelName,
397
+ };
398
+ }
399
+ catch {
400
+ vectorIndex = { available: false, itemCount: 0, modelName: null };
401
+ }
402
+ }
403
+ const totalTools = getTotalToolCount();
404
+ const toolFilter = {
405
+ active: context.filterConfig !== null && context.filterConfig !== undefined,
406
+ enabledCount: context.filterConfig?.enabledTools.size ?? totalTools,
407
+ totalCount: totalTools,
408
+ filterString: context.filterConfig?.raw ?? null,
409
+ };
410
+ const lastModified = new Date().toISOString();
411
+ return {
412
+ data: {
413
+ ...dbHealth,
414
+ vectorIndex,
415
+ toolFilter,
416
+ teamDatabase: context.teamDb
417
+ ? {
418
+ configured: true,
419
+ ...context.teamDb.getHealthStatus(),
420
+ }
421
+ : { configured: false },
422
+ scheduler: context.scheduler
423
+ ? context.scheduler.getStatus()
424
+ : { active: false, jobs: [] },
425
+ timestamp: lastModified,
426
+ },
427
+ annotations: { lastModified },
428
+ };
429
+ },
430
+ },
431
+ ];
432
+ }
433
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/handlers/resources/core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Memory Journal MCP Server - GitHub Resource Definitions
3
+ *
4
+ * Resources: github/status, github/insights, github/milestones, milestones/{number}
5
+ */
6
+ import type { InternalResourceDef } from './shared.js';
7
+ /**
8
+ * Get GitHub resource definitions
9
+ */
10
+ export declare function getGitHubResourceDefinitions(): InternalResourceDef[];
11
+ //# sourceMappingURL=github.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../../src/handlers/resources/github.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAmC,MAAM,aAAa,CAAA;AAEvF;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,mBAAmB,EAAE,CAyVpE"}