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
package/SECURITY.md CHANGED
@@ -4,29 +4,19 @@ The Memory Journal MCP server implements comprehensive security measures to prot
4
4
 
5
5
  ## 🛡️ **Database Security**
6
6
 
7
- ### **WAL Mode Enabled**
8
-
9
- - **Write-Ahead Logging (WAL)** enabled for better concurrency and crash recovery
10
- - ✅ **Atomic transactions** ensure data consistency
11
- - ✅ **Better performance** with concurrent read/write operations
12
-
13
- ### **Optimized PRAGMA Settings**
14
-
15
- ```sql
16
- PRAGMA foreign_keys = ON -- Enforce referential integrity
17
- PRAGMA journal_mode = WAL -- Enable WAL mode
18
- PRAGMA synchronous = NORMAL -- Balance safety and performance
19
- PRAGMA cache_size = -64000 -- 64MB cache for better performance
20
- PRAGMA mmap_size = 268435456 -- 256MB memory-mapped I/O
21
- PRAGMA temp_store = MEMORY -- Store temp tables in memory
22
- PRAGMA busy_timeout = 30000 -- 30-second timeout for busy database
23
- ```
7
+ ### **sql.js In-Memory Architecture**
8
+
9
+ The server uses **sql.js** (pure JavaScript SQLite compiled to WebAssembly) which operates on an in-memory database copy with periodic flushing to disk. This differs from native SQLite:
24
10
 
25
- ### **File Permissions**
11
+ - **PRAGMA foreign_keys = ON** — enforces referential integrity and `ON DELETE CASCADE`
12
+ - ✅ **Parameterized queries** — all user input bound via `?` placeholders
13
+ - ✅ **Debounced disk writes** — periodic flushing with immediate flush on critical operations
14
+ - ⚠️ WAL mode, mmap, busy_timeout, and other file-level PRAGMAs are **not applicable** to sql.js
26
15
 
27
- - **Database files**: `600` (read/write for owner only)
28
- - ✅ **Data directory**: `700` (full access for owner only)
29
- - ✅ **Automatic permission setting** on database creation
16
+ ### **File Permissions (Docker)**
17
+
18
+ - ✅ **Data directory**: `700` (full access for owner only) in Docker
19
+ - ✅ **Non-root user** (`appuser:appgroup`) owns data directory
30
20
 
31
21
  ## 🔐 **Input Validation**
32
22
 
@@ -38,11 +28,10 @@ PRAGMA busy_timeout = 30000 -- 30-second timeout for busy database
38
28
  - **Significance types**: 50 characters maximum
39
29
  - **HTTP request body**: 1MB maximum (prevents memory exhaustion)
40
30
 
41
- ### **Character Filtering**
42
-
43
- Dangerous characters are blocked in tags:
31
+ ### **Character Handling**
44
32
 
45
- - `<` `>` `"` `'` `&` `\x00`
33
+ Tags are stored as-is via parameterized queries. Special characters in tags
34
+ are safely handled by the database layer and do not pose injection risks.
46
35
 
47
36
  ### **SQL Injection Prevention**
48
37
 
@@ -77,8 +66,12 @@ export MCP_CORS_ORIGIN="http://localhost:3000"
77
66
 
78
67
  ### **Security Headers**
79
68
 
80
- - ✅ **X-Content-Type-Options: nosniff** - prevents MIME sniffing
81
- - ✅ **X-Frame-Options: DENY** - prevents clickjacking
69
+ - ✅ **X-Content-Type-Options: nosniff** prevents MIME sniffing
70
+ - ✅ **X-Frame-Options: DENY** prevents clickjacking
71
+ - ✅ **Content-Security-Policy: default-src 'none'; frame-ancestors 'none'** — prevents XSS and framing
72
+ - ✅ **Cache-Control: no-store** — prevents caching of sensitive journal data
73
+ - ✅ **Referrer-Policy: no-referrer** — prevents referrer leakage
74
+ - ⚠️ **CORS wildcard warning** — server logs a warning when CORS origin is `*`
82
75
 
83
76
  ### **Session Management (Stateful Mode)**
84
77
 
@@ -187,17 +180,16 @@ docker run --memory=1g --cpus=1 memory-journal-mcp
187
180
 
188
181
  ## 📋 **Security Checklist**
189
182
 
190
- - [x] WAL mode enabled for database consistency
191
- - [x] Proper file permissions (600/700)
183
+ - [x] Foreign key enforcement (`PRAGMA foreign_keys = ON`)
192
184
  - [x] Input validation and length limits (Zod schemas)
193
185
  - [x] Parameterized SQL queries
194
- - [x] SQL injection detection heuristics
195
- - [x] Path traversal protection
196
- - [x] LIKE pattern sanitization
197
- - [x] Date format whitelisting
186
+ - [x] SQL injection detection heuristics (defense-in-depth)
187
+ - [x] Path traversal protection (`assertNoPathTraversal`)
188
+ - [x] LIKE pattern sanitization (`sanitizeSearchQuery`)
189
+ - [x] Date format whitelisting (`validateDateFormatPattern`)
198
190
  - [x] HTTP body size limit (1MB)
199
- - [x] Configurable CORS origin
200
- - [x] Security headers (X-Content-Type-Options, X-Frame-Options)
191
+ - [x] Configurable CORS origin (with wildcard warning)
192
+ - [x] Security headers (CSP, X-Content-Type-Options, X-Frame-Options, Cache-Control, Referrer-Policy)
201
193
  - [x] Session timeout (30 minutes)
202
194
  - [x] Non-root Docker user
203
195
  - [x] Multi-stage Docker build
package/dist/cli.js CHANGED
@@ -14,12 +14,18 @@ program
14
14
  .option('--port <number>', 'HTTP port (for http transport)', '3000')
15
15
  .option('--server-host <host>', 'Server bind host for HTTP transport (default: localhost)')
16
16
  .option('--stateless', 'Use stateless HTTP mode (no session management)')
17
- .option('--db <path>', 'Database path', './memory_journal.db')
17
+ .option('--db <path>', 'Database path (env: DB_PATH)', process.env['DB_PATH'] ?? './memory_journal.db')
18
+ .option('--team-db <path>', 'Team database path (env: TEAM_DB_PATH)', process.env['TEAM_DB_PATH'] ?? undefined)
18
19
  .option('--tool-filter <filter>', 'Tool filter string (e.g., "starter", "core,search")')
19
20
  .option('--default-project <number>', 'Default GitHub Project number')
20
21
  .option('--auto-rebuild-index', 'Rebuild vector index on server startup')
21
22
  .option('--cors-origin <origin>', 'CORS allowed origin for HTTP transport (default: *)')
23
+ .option('--auth-token <token>', 'Bearer token for HTTP transport authentication (env: MCP_AUTH_TOKEN)')
22
24
  .option('--log-level <level>', 'Log level: debug, info, warning, error', 'info')
25
+ .option('--backup-interval <minutes>', 'Automated backup interval in minutes, HTTP only (0 = disabled)', '0')
26
+ .option('--keep-backups <count>', 'Max backups to retain during automated cleanup', '5')
27
+ .option('--vacuum-interval <minutes>', 'Database optimize interval in minutes, HTTP only (0 = disabled)', '0')
28
+ .option('--rebuild-index-interval <minutes>', 'Vector index rebuild interval in minutes, HTTP only (0 = disabled)', '0')
23
29
  .action(async (options) => {
24
30
  // Set log level
25
31
  logger.setLevel(options.logLevel);
@@ -30,6 +36,7 @@ program
30
36
  transport: options.transport,
31
37
  stateless: options.stateless ?? false,
32
38
  db: options.db,
39
+ ...(options.teamDb ? { teamDb: options.teamDb } : {}),
33
40
  ...(host ? { host } : {}),
34
41
  });
35
42
  try {
@@ -39,6 +46,7 @@ program
39
46
  host,
40
47
  statelessHttp: options.stateless === true,
41
48
  dbPath: options.db,
49
+ teamDbPath: options.teamDb,
42
50
  toolFilter: options.toolFilter,
43
51
  defaultProjectNumber: options.defaultProject
44
52
  ? parseInt(options.defaultProject, 10)
@@ -47,6 +55,13 @@ program
47
55
  : undefined,
48
56
  autoRebuildIndex: options.autoRebuildIndex ?? process.env['AUTO_REBUILD_INDEX'] === 'true',
49
57
  corsOrigin: options.corsOrigin,
58
+ authToken: options.authToken,
59
+ scheduler: {
60
+ backupIntervalMinutes: parseInt(options.backupInterval, 10),
61
+ keepBackups: parseInt(options.keepBackups, 10),
62
+ vacuumIntervalMinutes: parseInt(options.vacuumInterval, 10),
63
+ rebuildIndexIntervalMinutes: parseInt(options.rebuildIndexInterval, 10),
64
+ },
50
65
  });
51
66
  }
52
67
  catch (error) {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAEvD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACF,IAAI,CAAC,oBAAoB,CAAC;KAC1B,WAAW,CAAC,wDAAwD,CAAC;KACrE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;KACpB,MAAM,CAAC,oBAAoB,EAAE,+BAA+B,EAAE,OAAO,CAAC;KACtE,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,EAAE,MAAM,CAAC;KACnE,MAAM,CAAC,sBAAsB,EAAE,0DAA0D,CAAC;KAC1F,MAAM,CAAC,aAAa,EAAE,iDAAiD,CAAC;KACxE,MAAM,CACH,aAAa,EACb,8BAA8B,EAC9B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAClD;KACA,MAAM,CACH,kBAAkB,EAClB,wCAAwC,EACxC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,SAAS,CAC3C;KACA,MAAM,CAAC,wBAAwB,EAAE,qDAAqD,CAAC;KACvF,MAAM,CAAC,4BAA4B,EAAE,+BAA+B,CAAC;KACrE,MAAM,CAAC,sBAAsB,EAAE,wCAAwC,CAAC;KACxE,MAAM,CAAC,wBAAwB,EAAE,qDAAqD,CAAC;KACvF,MAAM,CACH,sBAAsB,EACtB,sEAAsE,CACzE;KACA,MAAM,CAAC,qBAAqB,EAAE,wCAAwC,EAAE,MAAM,CAAC;KAC/E,MAAM,CACH,6BAA6B,EAC7B,gEAAgE,EAChE,GAAG,CACN;KACA,MAAM,CAAC,wBAAwB,EAAE,gDAAgD,EAAE,GAAG,CAAC;KACvF,MAAM,CACH,6BAA6B,EAC7B,iEAAiE,EACjE,GAAG,CACN;KACA,MAAM,CACH,oCAAoC,EACpC,oEAAoE,EACpE,GAAG,CACN;KACA,MAAM,CACH,KAAK,EAAE,OAiBN,EAAE,EAAE;IACD,gBAAgB;IAChB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAkD,CAAC,CAAA;IAE3E,yDAAyD;IACzD,MAAM,IAAI,GACN,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAA;IAErF,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE;QAC9C,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,KAAK;QACrC,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5B,CAAC,CAAA;IAEF,IAAI,CAAC;QACD,MAAM,YAAY,CAAC;YACf,SAAS,EAAE,OAAO,CAAC,SAA6B;YAChD,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAChC,IAAI;YACJ,aAAa,EAAE,OAAO,CAAC,SAAS,KAAK,IAAI;YACzC,MAAM,EAAE,OAAO,CAAC,EAAE;YAClB,UAAU,EAAE,OAAO,CAAC,MAAM;YAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,oBAAoB,EAAE,OAAO,CAAC,cAAc;gBACxC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;gBACtC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;oBACrC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE,EAAE,CAAC;oBACrD,CAAC,CAAC,SAAS;YACjB,gBAAgB,EACZ,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,KAAK,MAAM;YAC5E,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS,EAAE;gBACP,qBAAqB,EAAE,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC3D,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC9C,qBAAqB,EAAE,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC3D,2BAA2B,EAAE,QAAQ,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC;aAC1E;SACJ,CAAC,CAAA;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE;YACnC,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAChE,CAAC,CAAA;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC;AACL,CAAC,CACJ,CAAA;AAEL,OAAO,CAAC,KAAK,EAAE,CAAA"}
@@ -1,10 +1,14 @@
1
1
  /**
2
2
  * Server instructions for Memory Journal MCP.
3
3
  *
4
+ * ⚠️ AUTO-GENERATED — DO NOT EDIT THIS FILE DIRECTLY
5
+ * Edit src/constants/server-instructions.md instead,
6
+ * then run: npm run generate:instructions
7
+ *
4
8
  * These instructions are automatically sent to MCP clients during initialization,
5
9
  * providing guidance for AI agents on tool usage.
6
10
  *
7
- * Unreleased: Optimized for token efficiency with tiered instruction levels.
11
+ * Optimized for token efficiency with tiered instruction levels.
8
12
  */
9
13
  /**
10
14
  * Resource definition for instruction generation
@@ -1 +1 @@
1
- {"version":3,"file":"ServerInstructions.d.ts","sourceRoot":"","sources":["../../src/constants/ServerInstructions.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAClB;AAED;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,CAAA;AAmOhE;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAChC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,EACzB,UAAU,EAAE,kBAAkB,EAAE,EAChC,OAAO,EAAE,gBAAgB,EAAE,EAC3B,WAAW,CAAC,EAAE,mBAAmB,EACjC,KAAK,GAAE,gBAA6B,GACrC,MAAM,CAuCR;AAkBD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,QAA+C,CAAA"}
1
+ {"version":3,"file":"ServerInstructions.d.ts","sourceRoot":"","sources":["../../src/constants/ServerInstructions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAClB;AAED;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,CAAA;AA2RhE;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAChC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,EACzB,UAAU,EAAE,kBAAkB,EAAE,EAChC,OAAO,EAAE,gBAAgB,EAAE,EAC3B,WAAW,CAAC,EAAE,mBAAmB,EACjC,KAAK,GAAE,gBAA6B,GACrC,MAAM,CAuCR;AAkBD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,QAA+C,CAAA"}
@@ -1,10 +1,14 @@
1
1
  /**
2
2
  * Server instructions for Memory Journal MCP.
3
3
  *
4
+ * ⚠️ AUTO-GENERATED — DO NOT EDIT THIS FILE DIRECTLY
5
+ * Edit src/constants/server-instructions.md instead,
6
+ * then run: npm run generate:instructions
7
+ *
4
8
  * These instructions are automatically sent to MCP clients during initialization,
5
9
  * providing guidance for AI agents on tool usage.
6
10
  *
7
- * Unreleased: Optimized for token efficiency with tiered instruction levels.
11
+ * Optimized for token efficiency with tiered instruction levels.
8
12
  */
9
13
  import { TOOL_GROUPS } from '../filtering/ToolFilter.js';
10
14
  /**
@@ -14,29 +18,55 @@ import { TOOL_GROUPS } from '../filtering/ToolFilter.js';
14
18
  const ESSENTIAL_INSTRUCTIONS = `# memory-journal-mcp
15
19
 
16
20
  ## Session Start
21
+
17
22
  1. Read \`memory://briefing\` for project context
23
+ - In Cursor, use \`FetchMcpResource(server: "user-memory-journal-mcp", uri: "memory://briefing")\`
18
24
  2. **Show the \`userMessage\` to the user** (it contains a formatted summary of project context)
19
25
  3. Proceed with the user's request
20
26
 
21
27
  ## Behaviors
28
+
22
29
  - **Create entries for**: implementations, decisions, bug fixes, milestones, user requests to "remember"
23
30
  - **Search before**: major decisions, referencing prior work, understanding project context
24
31
  - **Link entries**: implementation→spec, bugfix→issue, followup→prior work
25
32
 
33
+ ## Session End
34
+
35
+ When a conversation or task is wrapping up (user says "thanks," final deliverable complete, no more work planned):
36
+
37
+ 1. Create a journal entry summarizing the session:
38
+ - **What was accomplished** (key changes, decisions, files modified)
39
+ - **What's unfinished or blocked** (pending items, open questions)
40
+ - **Context for next session** (relevant entry IDs, branch names, PR numbers)
41
+ 2. Use \`entry_type: "retrospective"\` and tag with \`session-summary\`
42
+ 3. This is opt-out — ALWAYS create the entry, even for short/trivial sessions, unless the user explicitly says to skip it
43
+
44
+ > If your client has hooks configured for session-end journaling (e.g., Cursor \`sessionEnd\` hook), this is handled automatically. Otherwise, follow the steps above.
45
+
46
+ ## Rule & Skill Suggestions
47
+
48
+ When you notice the user consistently applies patterns, preferences, or workflows that could be codified:
49
+
50
+ - **Offer to create a rule or skill** — always ask the user first, never create silently
51
+ - Examples: coding conventions, testing patterns, deployment steps, project-specific commands
52
+ - Frame it as: "I noticed you always [pattern]. Would you like me to save this as a rule/skill so future agents follow it automatically?"
53
+
26
54
  ## Quick Access
27
- | Purpose | Action |
28
- |---------|--------|
29
- | Session context | \`memory://briefing\` |
30
- | Recent entries | \`memory://recent\` |
31
- | Health/time | \`memory://health\` |
32
- | Semantic search | \`semantic_search(query)\` |
33
- | Full context | \`get-context-bundle\` prompt |
55
+
56
+ | Purpose | Action |
57
+ | --------------- | --------------------------- |
58
+ | Session context | \`memory://briefing\` |
59
+ | Recent entries | \`memory://recent\` |
60
+ | Health/time | \`memory://health\` |
61
+ | Semantic search | \`semantic_search(query)\` |
62
+ | Full context | \`get-context-bundle\` prompt |
34
63
  `;
35
64
  /**
36
65
  * GitHub integration patterns (~150 additional tokens)
37
66
  */
38
67
  const GITHUB_INSTRUCTIONS = `
39
68
  ## GitHub Integration
69
+
40
70
  - Include \`issue_number\`/\`pr_number\` in \`create_entry\` to auto-link
41
71
  - After closing issue/merging PR → create summary entry with learnings
42
72
  - CI failures → \`actions-failure-digest\` prompt or \`memory://actions/recent\`
@@ -51,26 +81,34 @@ const SERVER_ACCESS_INSTRUCTIONS = `
51
81
  ## How to Access This Server
52
82
 
53
83
  ### Calling Tools
84
+
54
85
  Use \`CallMcpTool\` with server name \`user-memory-journal-mcp\`:
86
+
55
87
  \`\`\`
56
88
  CallMcpTool(server: "user-memory-journal-mcp", toolName: "create_entry", arguments: {...})
57
89
  \`\`\`
58
90
 
59
91
  ### Listing Resources
92
+
60
93
  Use \`ListMcpResources\` with server name:
94
+
61
95
  \`\`\`
62
96
  ListMcpResources(server: "user-memory-journal-mcp")
63
97
  \`\`\`
98
+
64
99
  Do NOT try to browse filesystem paths for MCP tool/resource definitions - use the MCP protocol directly.
65
100
 
66
101
  ### Fetching Resources
102
+
67
103
  Use \`FetchMcpResource\` with server name and \`memory://\` URI:
104
+
68
105
  \`\`\`
69
106
  FetchMcpResource(server: "user-memory-journal-mcp", uri: "memory://recent")
70
107
  FetchMcpResource(server: "user-memory-journal-mcp", uri: "memory://kanban/1")
71
108
  \`\`\`
72
109
 
73
110
  ## Quick Health Check
111
+
74
112
  Fetch \`memory://health\` to verify server status, database stats, and tool availability.
75
113
  `;
76
114
  /**
@@ -80,57 +118,64 @@ const TOOL_PARAMETER_REFERENCE = `
80
118
  ## Tool Parameter Reference
81
119
 
82
120
  ### Entry Operations
83
- | Tool | Required Parameters | Optional Parameters |
84
- |------|---------------------|---------------------|
85
- | \`create_entry\` | \`content\` (string) | \`entry_type\`, \`tags\` (array), \`is_personal\`, \`significance_type\`, \`share_with_team\`, \`auto_context\`, \`issue_number\`, \`issue_url\`, \`pr_number\`, \`pr_url\`, \`pr_status\`, \`project_number\`, \`project_owner\`, \`workflow_run_id\`, \`workflow_name\`, \`workflow_status\` |
86
- | \`create_entry_minimal\` | \`content\` (string) | none |
87
- | \`get_entry_by_id\` | \`entry_id\` (number) | \`include_relationships\` (bool, default true) |
88
- | \`get_recent_entries\` | none | \`limit\` (default 5), \`is_personal\` (bool) |
89
- | \`update_entry\` | \`entry_id\` (number) | \`content\`, \`tags\`, \`entry_type\`, \`is_personal\` |
90
- | \`delete_entry\` | \`entry_id\` (number) | \`permanent\` (bool, default false) |
91
- | \`list_tags\` | none | none |
121
+
122
+ | Tool | Required Parameters | Optional Parameters |
123
+ | ---------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
124
+ | \`create_entry\` | \`content\` (string) | \`entry_type\`, \`tags\` (array), \`is_personal\`, \`significance_type\`, \`auto_context\`, \`issue_number\`, \`issue_url\`, \`pr_number\`, \`pr_url\`, \`pr_status\`, \`project_number\`, \`project_owner\`, \`workflow_run_id\`, \`workflow_name\`, \`workflow_status\` |
125
+ | \`create_entry_minimal\` | \`content\` (string) | none |
126
+ | \`get_entry_by_id\` | \`entry_id\` (number) | \`include_relationships\` (bool, default true) |
127
+ | \`get_recent_entries\` | none | \`limit\` (default 5), \`is_personal\` (bool) |
128
+ | \`update_entry\` | \`entry_id\` (number) | \`content\`, \`tags\`, \`entry_type\`, \`is_personal\` |
129
+ | \`delete_entry\` | \`entry_id\` (number) | \`permanent\` (bool, default false) |
130
+ | \`list_tags\` | none | none |
92
131
 
93
132
  ### Search Tools
94
- | Tool | Required Parameters | Optional Parameters |
95
- |------|---------------------|---------------------|
96
- | \`search_entries\` | none | \`query\`, \`limit\`, \`is_personal\`, \`issue_number\`, \`pr_number\`, \`pr_status\`, \`project_number\`, \`workflow_run_id\` |
97
- | \`search_by_date_range\` | \`start_date\`, \`end_date\` (YYYY-MM-DD) | \`tags\`, \`entry_type\`, \`is_personal\`, \`issue_number\`, \`pr_number\`, \`project_number\`, \`workflow_run_id\` |
98
- | \`semantic_search\` | \`query\` (string) | \`limit\`, \`similarity_threshold\` (default 0.25), \`is_personal\`, \`hint_on_empty\` (bool, default true) |
99
- | \`get_vector_index_stats\` | none | none |
133
+
134
+ | Tool | Required Parameters | Optional Parameters |
135
+ | ------------------------ | ------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
136
+ | \`search_entries\` | none | \`query\`, \`limit\`, \`is_personal\`, \`issue_number\`, \`pr_number\`, \`pr_status\`, \`project_number\`, \`workflow_run_id\` |
137
+ | \`search_by_date_range\` | \`start_date\`, \`end_date\` (YYYY-MM-DD) | \`tags\`, \`entry_type\`, \`is_personal\`, \`issue_number\`, \`pr_number\`, \`project_number\`, \`workflow_run_id\` |
138
+ | \`semantic_search\` | \`query\` (string) | \`limit\`, \`similarity_threshold\` (default 0.25), \`is_personal\`, \`hint_on_empty\` (bool, default true) |
139
+ | \`get_vector_index_stats\` | none | none |
100
140
 
101
141
  ### Relationship Tools
102
- | Tool | Required Parameters | Notes |
103
- |------|---------------------|-------|
104
- | \`link_entries\` | \`from_entry_id\`, \`to_entry_id\` (numbers) | Types: \`evolves_from\`, \`references\`, \`implements\`, \`clarifies\`, \`response_to\`, \`blocked_by\`, \`resolved\`, \`caused\`. Optional \`description\`. |
105
- | \`visualize_relationships\` | none | Optional \`entry_id\`, \`tags\` (array), \`depth\` (1-3, default 2), \`limit\` (default 20). Returns Mermaid diagram. |
142
+
143
+ | Tool | Required Parameters | Notes |
144
+ | ------------------------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
145
+ | \`link_entries\` | \`from_entry_id\`, \`to_entry_id\` (numbers) | Types: \`evolves_from\`, \`references\`, \`implements\`, \`clarifies\`, \`response_to\`, \`blocked_by\`, \`resolved\`, \`caused\`. Optional \`description\`. |
146
+ | \`visualize_relationships\` | none | Optional \`entry_id\`, \`tags\` (array), \`depth\` (1-3, default 2), \`limit\` (default 20). Returns Mermaid diagram. |
106
147
 
107
148
  ### GitHub Tools
108
- | Tool | Required Parameters | Notes |
109
- |------|---------------------|-------|
110
- | \`get_github_context\` | none | Returns repo info, open issues/PRs. Only counts OPEN items. |
111
- | \`get_github_issues\` | none | Optional \`state\` (open/closed/all), \`limit\`, \`owner\`, \`repo\` |
112
- | \`get_github_prs\` | none | Optional \`state\`, \`limit\`, \`owner\`, \`repo\` |
113
- | \`get_github_issue\` | \`issue_number\` (number) | Optional \`owner\`, \`repo\`. Fetches single issue details. |
114
- | \`get_github_pr\` | \`pr_number\` (number) | Optional \`owner\`, \`repo\`. Fetches single PR details. |
115
- | \`get_repo_insights\` | none | Optional \`sections\` (stars/traffic/referrers/paths/all, default "stars"), \`owner\`, \`repo\`. Requires push access for traffic. |
149
+
150
+ | Tool | Required Parameters | Notes |
151
+ | -------------------- | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
152
+ | \`get_github_context\` | none | Returns repo info, open issues/PRs. Only counts OPEN items. |
153
+ | \`get_github_issues\` | none | Optional \`state\` (open/closed/all), \`limit\`, \`owner\`, \`repo\` |
154
+ | \`get_github_prs\` | none | Optional \`state\`, \`limit\`, \`owner\`, \`repo\` |
155
+ | \`get_github_issue\` | \`issue_number\` (number) | Optional \`owner\`, \`repo\`. Fetches single issue details. |
156
+ | \`get_github_pr\` | \`pr_number\` (number) | Optional \`owner\`, \`repo\`. Fetches single PR details. |
157
+ | \`get_repo_insights\` | none | Optional \`sections\` (stars/traffic/referrers/paths/all, default "stars"), \`owner\`, \`repo\`. Requires push access for traffic. |
116
158
 
117
159
  GitHub tools auto-detect owner/repo from GITHUB_REPO_PATH. If \`detectedOwner\`/\`detectedRepo\` are null in response, specify \`owner\` and \`repo\` parameters explicitly.
118
160
 
119
161
  ### Issue Lifecycle Tools
120
- | Tool | Required Parameters | Notes |
121
- |------|---------------------|-------|
122
- | \`create_github_issue_with_entry\` | \`title\` (string) | Optional \`body\`, \`labels\` (array), \`assignees\` (array), \`project_number\`, \`initial_status\`, \`milestone_number\`, \`entry_content\`, \`tags\`, \`owner\`, \`repo\` |
123
- | \`close_github_issue_with_entry\` | \`issue_number\` (number) | Optional \`comment\`, \`resolution_notes\`, \`tags\`, \`move_to_done\` (bool), \`project_number\`, \`owner\`, \`repo\` |
162
+
163
+ | Tool | Required Parameters | Notes |
164
+ | -------------------------------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
165
+ | \`create_github_issue_with_entry\` | \`title\` (string) | Optional \`body\`, \`labels\` (array), \`assignees\` (array), \`project_number\`, \`initial_status\`, \`milestone_number\`, \`entry_content\`, \`tags\`, \`owner\`, \`repo\` |
166
+ | \`close_github_issue_with_entry\` | \`issue_number\` (number) | Optional \`comment\`, \`resolution_notes\`, \`tags\`, \`move_to_done\` (bool), \`project_number\`, \`owner\`, \`repo\` |
124
167
 
125
168
  ### Kanban Tools (GitHub Projects v2)
126
- | Tool | Required Parameters | Notes |
127
- |------|---------------------|-------|
128
- | \`get_kanban_board\` | \`project_number\` (number) | Optional \`owner\`. Returns columns with items grouped by Status |
169
+
170
+ | Tool | Required Parameters | Notes |
171
+ | ------------------ | -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
172
+ | \`get_kanban_board\` | \`project_number\` (number) | Optional \`owner\`. Returns columns with items grouped by Status |
129
173
  | \`move_kanban_item\` | \`project_number\`, \`item_id\` (string), \`target_status\` (string) | Optional \`owner\`. \`item_id\` is the GraphQL node ID from board items. Status matching is case-insensitive. |
130
174
 
131
175
  **Finding the right project**: User may have multiple projects. Use \`get_kanban_board\` with different project numbers (1, 2, 3...) to find the correct one by checking \`projectTitle\`.
132
176
 
133
177
  **Default Status columns** (typical GitHub Projects v2):
178
+
134
179
  - \`Backlog\` - Items not yet started
135
180
  - \`Ready\` - Ready to be picked up
136
181
  - \`In progress\` - Actively being worked on
@@ -140,39 +185,46 @@ GitHub tools auto-detect owner/repo from GITHUB_REPO_PATH. If \`detectedOwner\`/
140
185
  Note: Status columns are dynamic per project. The \`statusOptions\` in the response shows available statuses for that specific project.
141
186
 
142
187
  Kanban resources:
188
+
143
189
  - \`memory://kanban/{project_number}\` - JSON board data
144
190
  - \`memory://kanban/{project_number}/diagram\` - Mermaid visualization
145
191
 
146
192
  ### Milestone Tools
147
- | Tool | Required Parameters | Notes |
148
- |------|---------------------|-------|
149
- | \`get_github_milestones\` | none | Optional \`state\` (open/closed/all), \`limit\`, \`owner\`, \`repo\` |
150
- | \`get_github_milestone\` | \`milestone_number\` (number) | Optional \`owner\`, \`repo\`. Single milestone with completion %. |
151
- | \`create_github_milestone\` | \`title\` (string) | Optional \`description\`, \`due_on\` (YYYY-MM-DD), \`owner\`, \`repo\` |
152
- | \`update_github_milestone\` | \`milestone_number\` (number) | Optional \`title\`, \`description\`, \`due_on\`, \`state\` (open/closed), \`owner\`, \`repo\` |
153
- | \`delete_github_milestone\` | \`milestone_number\`, \`confirm: true\` | Optional \`owner\`, \`repo\`. Permanent deletion. |
193
+
194
+ | Tool | Required Parameters | Notes |
195
+ | ------------------------- | ----------------------------------- | --------------------------------------------------------------------------------- |
196
+ | \`get_github_milestones\` | none | Optional \`state\` (open/closed/all), \`limit\`, \`owner\`, \`repo\` |
197
+ | \`get_github_milestone\` | \`milestone_number\` (number) | Optional \`owner\`, \`repo\`. Single milestone with completion %. |
198
+ | \`create_github_milestone\` | \`title\` (string) | Optional \`description\`, \`due_on\` (YYYY-MM-DD), \`owner\`, \`repo\` |
199
+ | \`update_github_milestone\` | \`milestone_number\` (number) | Optional \`title\`, \`description\`, \`due_on\`, \`state\` (open/closed), \`owner\`, \`repo\` |
200
+ | \`delete_github_milestone\` | \`milestone_number\`, \`confirm: true\` | Optional \`owner\`, \`repo\`. Permanent deletion. |
154
201
 
155
202
  Milestone resources:
203
+
156
204
  - \`memory://github/milestones\` - Open milestones with completion %
157
205
  - \`memory://milestones/{number}\` - Single milestone detail
158
206
 
159
207
  ### Admin Tools
160
- | Tool | Required Parameters | Notes |
161
- |------|---------------------|-------|
162
- | \`backup_journal\` | none | Optional \`name\` (custom backup name) |
163
- | \`list_backups\` | none | Returns available backup files |
164
- | \`cleanup_backups\` | none | Optional \`keep_count\` (default 5). Deletes old backups, keeps N most recent. |
165
- | \`restore_backup\` | \`filename\`, \`confirm: true\` | Creates auto-backup before restore |
166
- | \`add_to_vector_index\` | \`entry_id\` (single number) | Indexes one entry for semantic search |
167
- | \`rebuild_vector_index\` | none | Re-indexes all entries |
208
+
209
+ | Tool | Required Parameters | Notes |
210
+ | ---------------------- | --------------------------- | ---------------------------------------------------------------------------- |
211
+ | \`backup_journal\` | none | Optional \`name\` (custom backup name) |
212
+ | \`list_backups\` | none | Returns available backup files |
213
+ | \`cleanup_backups\` | none | Optional \`keep_count\` (default 5). Deletes old backups, keeps N most recent. |
214
+ | \`restore_backup\` | \`filename\`, \`confirm: true\` | Creates auto-backup before restore |
215
+ | \`add_to_vector_index\` | \`entry_id\` (single number) | Indexes one entry for semantic search |
216
+ | \`rebuild_vector_index\` | none | Re-indexes all entries |
168
217
 
169
218
  ### Export Tools
170
- | Tool | Required Parameters | Notes |
171
- |------|---------------------|-------|
172
- | \`export_entries\` | none | Optional \`format\` (json/markdown), \`limit\` (default 100), \`tags\`, \`start_date\`, \`end_date\`, \`entry_types\` |
219
+
220
+ | Tool | Required Parameters | Notes |
221
+ | ---------------- | ------------------- | --------------------------------------------------------------------------------------------------------- |
222
+ | \`export_entries\` | none | Optional \`format\` (json/markdown), \`limit\` (default 100), \`tags\`, \`start_date\`, \`end_date\`, \`entry_types\` |
173
223
 
174
224
  ## Entry Types
225
+
175
226
  Valid values for \`entry_type\` parameter:
227
+
176
228
  - \`personal_reflection\` (default) - Personal thoughts and notes
177
229
  - \`project_decision\` - Architectural and team decisions
178
230
  - \`technical_achievement\` - Milestones and breakthroughs
@@ -185,9 +237,16 @@ Valid values for \`entry_type\` parameter:
185
237
  - \`planning\` - Planning sessions and roadmaps (\`create_github_issue_with_entry\` uses this type)
186
238
  - \`retrospective\` - Sprint and project retrospectives
187
239
  - \`standup\` - Daily standup notes
240
+ - \`technical_note\` - Technical notes and observations
241
+ - \`development_note\` - Development process notes
242
+ - \`enhancement\` - Enhancement tracking
243
+ - \`milestone\` - Milestone documentation
244
+ - \`system_integration_test\` - Integration test records
245
+ - \`test_entry\` - Test and scratch entries
188
246
  - \`other\` - Miscellaneous
189
247
 
190
248
  ## Field Notes
249
+
191
250
  - **\`autoContext\`**: Reserved for future automatic context capture. Currently always \`null\`.
192
251
  - **\`memory://tags\` vs \`list_tags\`**: Resource includes \`id\`, \`name\`, \`count\`; tool returns only \`name\`, \`count\`. Neither returns orphan tags with zero usage.
193
252
  - **Tag naming**: Use lowercase with dashes (e.g., \`bug-fix\`, \`phase-2\`). Use \`merge_tags\` to consolidate duplicates (e.g., merge \`phase2\` into \`phase-2\`).
@@ -204,19 +263,20 @@ Valid values for \`entry_type\` parameter:
204
263
  - **\`delete_entry\` on soft-deleted**: \`delete_entry(id, permanent: true)\` works on previously soft-deleted entries. Returns \`success: false\` for nonexistent entries.
205
264
 
206
265
  ## Key Resources
207
- | URI | Description |
208
- |-----|-------------|
209
- | \`memory://health\` | Server health, DB stats, tool filter status |
210
- | \`memory://briefing\` | Session context with userMessage to show user |
211
- | \`memory://instructions\` | Full server instructions and tool reference |
212
- | \`memory://statistics\` | Entry counts by type and period |
213
- | \`memory://recent\` | 10 most recent entries |
214
- | \`memory://tags\` | All tags with usage counts |
215
- | \`memory://significant\` | Entries sorted by importance score |
216
- | \`memory://graph/recent\` | Mermaid diagram of recent relationships |
217
- | \`memory://graph/actions\` | CI/CD narrative graph |
218
- | \`memory://actions/recent\` | Recent workflow runs |
219
- | \`memory://team/recent\` | Team-shared entries |
266
+
267
+ | URI | Description |
268
+ | ------------------------- | --------------------------------------------- |
269
+ | \`memory://health\` | Server health, DB stats, tool filter status |
270
+ | \`memory://briefing\` | Session context with userMessage to show user |
271
+ | \`memory://instructions\` | Full server instructions and tool reference |
272
+ | \`memory://statistics\` | Entry counts by type and period |
273
+ | \`memory://recent\` | 10 most recent entries |
274
+ | \`memory://tags\` | All tags with usage counts |
275
+ | \`memory://significant\` | Entries sorted by importance score |
276
+ | \`memory://graph/recent\` | Mermaid diagram of recent relationships |
277
+ | \`memory://graph/actions\` | CI/CD narrative graph |
278
+ | \`memory://actions/recent\` | Recent workflow runs |
279
+
220
280
  | \`memory://github/status\` | GitHub repo overview (CI, issues, PRs, milestones) |
221
281
  | \`memory://github/milestones\` | Open milestones with completion % |
222
282
  | \`memory://github/insights\` | Stars, forks, and 14-day traffic summary |
@@ -1 +1 @@
1
- {"version":3,"file":"ServerInstructions.js","sourceRoot":"","sources":["../../src/constants/ServerInstructions.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAqCxD;;;GAGG;AACH,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;CAoB9B,CAAA;AAED;;GAEG;AACH,MAAM,mBAAmB,GAAG;;;;;;;;CAQ3B,CAAA;AAED;;GAEG;AACH,MAAM,0BAA0B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CAyBlC,CAAA;AAED;;GAEG;AACH,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuJhC,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAChC,YAAyB,EACzB,UAAgC,EAChC,OAA2B,EAC3B,WAAiC,EACjC,QAA0B,UAAU;IAEpC,IAAI,YAAY,GAAG,sBAAsB,CAAA;IAEzC,mEAAmE;IACnE,IAAI,WAAW,EAAE,CAAC;QACd,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QACjD,YAAY,IAAI,kBAAkB,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,WAAW,CAAC,SAAS,KAAK,WAAW,CAAC,SAAS,OAAO,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAA;IAClL,CAAC;IAED,mDAAmD;IACnD,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QAC3C,YAAY,IAAI,mBAAmB,CAAA;IACvC,CAAC;IAED,8EAA8E;IAC9E,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACnB,YAAY,IAAI,0BAA0B,CAAA;QAC1C,YAAY,IAAI,wBAAwB,CAAA;QAExC,2BAA2B;QAC3B,MAAM,YAAY,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAA;QACtD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,YAAY,IAAI,sBAAsB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAA;YACpE,KAAK,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,YAAY,EAAE,CAAC;gBAC1C,YAAY,IAAI,KAAK,KAAK,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;YAChF,CAAC;QACL,CAAC;QAED,sBAAsB;QACtB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,YAAY,IAAI,iBAAiB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAA;YAC5D,YAAY,IAAI,6CAA6C,CAAA;YAC7D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC3B,YAAY,IAAI,OAAO,MAAM,CAAC,IAAI,QAAQ,MAAM,CAAC,WAAW,IAAI,EAAE,IAAI,CAAA;YAC1E,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,YAAY,CAAA;AACvB,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,YAAyB;IAClD,MAAM,YAAY,GAA4C,EAAE,CAAA;IAEhE,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAA4B,EAAE,CAAC;QACrF,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QACxE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAA;QACvD,CAAC;IACL,CAAC;IAED,OAAO,YAAY,CAAA;AACvB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,sBAAsB,GAAG,mBAAmB,CAAA"}
1
+ {"version":3,"file":"ServerInstructions.js","sourceRoot":"","sources":["../../src/constants/ServerInstructions.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,8 @@ export declare const ICON_ADMIN: McpIcon;
23
23
  export declare const ICON_GITHUB: McpIcon;
24
24
  /** Archive/box for backup */
25
25
  export declare const ICON_BACKUP: McpIcon;
26
+ /** Users group for team collaboration */
27
+ export declare const ICON_TEAM: McpIcon;
26
28
  /** Document for briefing/instructions */
27
29
  export declare const ICON_BRIEFING: McpIcon;
28
30
  /** Network/share for graph resources */
@@ -37,8 +39,6 @@ export declare const ICON_KANBAN: McpIcon;
37
39
  export declare const ICON_STAR: McpIcon;
38
40
  /** Tag for tags resource */
39
41
  export declare const ICON_TAG: McpIcon;
40
- /** Users for team resources */
41
- export declare const ICON_TEAM: McpIcon;
42
42
  /** Issue icon for GitHub issues */
43
43
  export declare const ICON_ISSUE: McpIcon;
44
44
  /** Git merge for PR resources */
@@ -1 +1 @@
1
- {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/constants/icons.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAMhD,gDAAgD;AAChD,eAAO,MAAM,SAAS,EAAE,OAIvB,CAAA;AAED,6CAA6C;AAC7C,eAAO,MAAM,WAAW,EAAE,OAIzB,CAAA;AAED,8BAA8B;AAC9B,eAAO,MAAM,cAAc,EAAE,OAI5B,CAAA;AAED,6BAA6B;AAC7B,eAAO,MAAM,kBAAkB,EAAE,OAIhC,CAAA;AAED,2BAA2B;AAC3B,eAAO,MAAM,WAAW,EAAE,OAIzB,CAAA;AAED,6BAA6B;AAC7B,eAAO,MAAM,UAAU,EAAE,OAIxB,CAAA;AAED,mCAAmC;AACnC,eAAO,MAAM,WAAW,EAAE,OAIzB,CAAA;AAED,6BAA6B;AAC7B,eAAO,MAAM,WAAW,EAAE,OAIzB,CAAA;AAMD,yCAAyC;AACzC,eAAO,MAAM,aAAa,EAAE,OAI3B,CAAA;AAED,wCAAwC;AACxC,eAAO,MAAM,UAAU,EAAE,OAIxB,CAAA;AAED,0CAA0C;AAC1C,eAAO,MAAM,UAAU,EAAE,OAIxB,CAAA;AAED,kCAAkC;AAClC,eAAO,MAAM,WAAW,EAAE,OAIzB,CAAA;AAED,2BAA2B;AAC3B,eAAO,MAAM,WAAW,EAAE,OAIzB,CAAA;AAED,iCAAiC;AACjC,eAAO,MAAM,SAAS,EAAE,OAIvB,CAAA;AAED,4BAA4B;AAC5B,eAAO,MAAM,QAAQ,EAAE,OAItB,CAAA;AAED,+BAA+B;AAC/B,eAAO,MAAM,SAAS,EAAE,OAIvB,CAAA;AAED,mCAAmC;AACnC,eAAO,MAAM,UAAU,EAAE,OAIxB,CAAA;AAED,iCAAiC;AACjC,eAAO,MAAM,OAAO,EAAE,OAIrB,CAAA;AAED,kCAAkC;AAClC,eAAO,MAAM,cAAc,EAAE,OAI5B,CAAA;AAED,iCAAiC;AACjC,eAAO,MAAM,WAAW,EAAE,OAIzB,CAAA;AAMD,kCAAkC;AAClC,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CASpD,CAAA;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,SAAS,CAGhE"}
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/constants/icons.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAMhD,gDAAgD;AAChD,eAAO,MAAM,SAAS,EAAE,OAIvB,CAAA;AAED,6CAA6C;AAC7C,eAAO,MAAM,WAAW,EAAE,OAIzB,CAAA;AAED,8BAA8B;AAC9B,eAAO,MAAM,cAAc,EAAE,OAI5B,CAAA;AAED,6BAA6B;AAC7B,eAAO,MAAM,kBAAkB,EAAE,OAIhC,CAAA;AAED,2BAA2B;AAC3B,eAAO,MAAM,WAAW,EAAE,OAIzB,CAAA;AAED,6BAA6B;AAC7B,eAAO,MAAM,UAAU,EAAE,OAIxB,CAAA;AAED,mCAAmC;AACnC,eAAO,MAAM,WAAW,EAAE,OAIzB,CAAA;AAED,6BAA6B;AAC7B,eAAO,MAAM,WAAW,EAAE,OAIzB,CAAA;AAED,yCAAyC;AACzC,eAAO,MAAM,SAAS,EAAE,OAIvB,CAAA;AAMD,yCAAyC;AACzC,eAAO,MAAM,aAAa,EAAE,OAI3B,CAAA;AAED,wCAAwC;AACxC,eAAO,MAAM,UAAU,EAAE,OAIxB,CAAA;AAED,0CAA0C;AAC1C,eAAO,MAAM,UAAU,EAAE,OAIxB,CAAA;AAED,kCAAkC;AAClC,eAAO,MAAM,WAAW,EAAE,OAIzB,CAAA;AAED,2BAA2B;AAC3B,eAAO,MAAM,WAAW,EAAE,OAIzB,CAAA;AAED,iCAAiC;AACjC,eAAO,MAAM,SAAS,EAAE,OAIvB,CAAA;AAED,4BAA4B;AAC5B,eAAO,MAAM,QAAQ,EAAE,OAItB,CAAA;AAED,mCAAmC;AACnC,eAAO,MAAM,UAAU,EAAE,OAIxB,CAAA;AAED,iCAAiC;AACjC,eAAO,MAAM,OAAO,EAAE,OAIrB,CAAA;AAED,kCAAkC;AAClC,eAAO,MAAM,cAAc,EAAE,OAI5B,CAAA;AAED,iCAAiC;AACjC,eAAO,MAAM,WAAW,EAAE,OAIzB,CAAA;AAMD,kCAAkC;AAClC,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAUpD,CAAA;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,SAAS,CAGhE"}
@@ -57,6 +57,12 @@ export const ICON_BACKUP = {
57
57
  mimeType: 'image/svg+xml',
58
58
  sizes: ['24x24'],
59
59
  };
60
+ /** Users group for team collaboration */
61
+ export const ICON_TEAM = {
62
+ src: 'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"%3E%3Cpath d="M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2"/%3E%3Ccircle cx="9" cy="7" r="4"/%3E%3Cpath d="M23 21v-2a4 4 0 00-3-3.87"/%3E%3Cpath d="M16 3.13a4 4 0 010 7.75"/%3E%3C/svg%3E',
63
+ mimeType: 'image/svg+xml',
64
+ sizes: ['24x24'],
65
+ };
60
66
  // ============================================================================
61
67
  // Resource Icons
62
68
  // ============================================================================
@@ -102,12 +108,6 @@ export const ICON_TAG = {
102
108
  mimeType: 'image/svg+xml',
103
109
  sizes: ['24x24'],
104
110
  };
105
- /** Users for team resources */
106
- export const ICON_TEAM = {
107
- src: 'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"%3E%3Cpath d="M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2"/%3E%3Ccircle cx="9" cy="7" r="4"/%3E%3Cpath d="M23 21v-2a4 4 0 00-3-3.87"/%3E%3Cpath d="M16 3.13a4 4 0 010 7.75"/%3E%3C/svg%3E',
108
- mimeType: 'image/svg+xml',
109
- sizes: ['24x24'],
110
- };
111
111
  /** Issue icon for GitHub issues */
112
112
  export const ICON_ISSUE = {
113
113
  src: 'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"%3E%3Ccircle cx="12" cy="12" r="10"/%3E%3Cline x1="12" y1="8" x2="12" y2="12"/%3E%3Cline x1="12" y1="16" x2="12.01" y2="16"/%3E%3C/svg%3E',
@@ -145,6 +145,7 @@ export const TOOL_GROUP_ICONS = {
145
145
  admin: ICON_ADMIN,
146
146
  github: ICON_GITHUB,
147
147
  backup: ICON_BACKUP,
148
+ team: ICON_TEAM,
148
149
  };
149
150
  /**
150
151
  * Get icons array for a tool based on its group