@prmichaelsen/remember-mcp 3.19.3 → 3.20.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 (102) hide show
  1. package/AGENT.md +10 -3
  2. package/CHANGELOG.md +19 -0
  3. package/README.md +1 -1
  4. package/agent/commands/acp.artifact-glossary.md +530 -0
  5. package/agent/commands/acp.artifact-reference.md +591 -0
  6. package/agent/commands/acp.artifact-research.md +594 -0
  7. package/agent/commands/acp.audit.md +345 -0
  8. package/agent/commands/acp.clarification-address.md +185 -88
  9. package/agent/commands/acp.clarification-capture.md +44 -44
  10. package/agent/commands/acp.clarification-create.md +41 -42
  11. package/agent/commands/acp.command-create.md +49 -49
  12. package/agent/commands/acp.design-create.md +53 -35
  13. package/agent/commands/acp.design-reference.md +42 -42
  14. package/agent/commands/acp.handoff.md +35 -35
  15. package/agent/commands/acp.index.md +47 -47
  16. package/agent/commands/acp.init.md +105 -69
  17. package/agent/commands/acp.package-create.md +41 -41
  18. package/agent/commands/acp.package-info.md +40 -40
  19. package/agent/commands/acp.package-install.md +48 -48
  20. package/agent/commands/acp.package-list.md +40 -40
  21. package/agent/commands/acp.package-publish.md +62 -62
  22. package/agent/commands/acp.package-remove.md +41 -41
  23. package/agent/commands/acp.package-search.md +48 -48
  24. package/agent/commands/acp.package-update.md +50 -50
  25. package/agent/commands/acp.package-validate.md +52 -52
  26. package/agent/commands/acp.pattern-create.md +61 -43
  27. package/agent/commands/acp.plan.md +70 -47
  28. package/agent/commands/acp.proceed.md +188 -66
  29. package/agent/commands/acp.project-create.md +42 -42
  30. package/agent/commands/acp.project-info.md +46 -46
  31. package/agent/commands/acp.project-list.md +41 -41
  32. package/agent/commands/acp.project-remove.md +36 -36
  33. package/agent/commands/acp.project-set.md +33 -33
  34. package/agent/commands/acp.project-update.md +57 -57
  35. package/agent/commands/acp.projects-restore.md +37 -37
  36. package/agent/commands/acp.projects-sync.md +39 -39
  37. package/agent/commands/acp.report.md +50 -50
  38. package/agent/commands/acp.resume.md +36 -36
  39. package/agent/commands/acp.sessions.md +46 -46
  40. package/agent/commands/acp.status.md +43 -43
  41. package/agent/commands/acp.sync.md +109 -56
  42. package/agent/commands/acp.task-create.md +51 -49
  43. package/agent/commands/acp.update.md +66 -45
  44. package/agent/commands/acp.validate.md +110 -52
  45. package/agent/commands/acp.version-check-for-updates.md +40 -40
  46. package/agent/commands/acp.version-check.md +36 -36
  47. package/agent/commands/acp.version-update.md +43 -43
  48. package/agent/commands/command.template.md +40 -40
  49. package/agent/commands/git.commit.md +28 -28
  50. package/agent/commands/git.init.md +48 -48
  51. package/agent/design/design.template.md +9 -9
  52. package/agent/design/local.admin-debugging-tools.md +242 -0
  53. package/agent/design/requirements.template.md +8 -8
  54. package/agent/index/.gitkeep +0 -0
  55. package/agent/index/acp.core.yaml +137 -0
  56. package/agent/index/local.main.template.yaml +37 -0
  57. package/agent/index/local.main.yaml +48 -0
  58. package/agent/manifest.yaml +64 -0
  59. package/agent/milestones/milestone-1-{title}.template.md +8 -8
  60. package/agent/milestones/milestone-22-admin-debugging-tools.md +61 -0
  61. package/agent/patterns/pattern.template.md +22 -22
  62. package/agent/progress.template.yaml +13 -3
  63. package/agent/progress.yaml +78 -1
  64. package/agent/schemas/package.schema.yaml +276 -0
  65. package/agent/scripts/acp.project-update.sh +5 -6
  66. package/agent/tasks/milestone-22-admin-debugging-tools/task-520-admin-gate-infrastructure.md +99 -0
  67. package/agent/tasks/milestone-22-admin-debugging-tools/task-521-schema-and-collection-tools.md +108 -0
  68. package/agent/tasks/milestone-22-admin-debugging-tools/task-522-memory-inspection-tools.md +120 -0
  69. package/agent/tasks/milestone-22-admin-debugging-tools/task-523-user-inspection-tools.md +126 -0
  70. package/agent/tasks/milestone-22-admin-debugging-tools/task-524-health-and-drift-tools.md +120 -0
  71. package/agent/tasks/task-1-{title}.template.md +18 -18
  72. package/dist/server-factory.js +637 -41
  73. package/dist/tools/admin-collection-stats.d.ts +24 -0
  74. package/dist/tools/admin-detect-weaviate-drift.d.ts +26 -0
  75. package/dist/tools/admin-get-weaviate-schema.d.ts +24 -0
  76. package/dist/tools/admin-health-drift.spec.d.ts +5 -0
  77. package/dist/tools/admin-health.d.ts +15 -0
  78. package/dist/tools/admin-inspect-memory.d.ts +29 -0
  79. package/dist/tools/admin-inspect-user.d.ts +73 -0
  80. package/dist/tools/admin-inspect-user.spec.d.ts +5 -0
  81. package/dist/tools/admin-list-collections.d.ts +23 -0
  82. package/dist/tools/admin-memory-inspection.spec.d.ts +7 -0
  83. package/dist/tools/admin-schema-collection.spec.d.ts +8 -0
  84. package/dist/tools/admin-search-across-users.d.ts +42 -0
  85. package/dist/utils/admin.d.ts +21 -0
  86. package/dist/utils/admin.spec.d.ts +2 -0
  87. package/package.json +2 -2
  88. package/src/server-factory.ts +131 -42
  89. package/src/tools/admin-collection-stats.ts +67 -0
  90. package/src/tools/admin-detect-weaviate-drift.ts +110 -0
  91. package/src/tools/admin-get-weaviate-schema.ts +68 -0
  92. package/src/tools/admin-health-drift.spec.ts +193 -0
  93. package/src/tools/admin-health.ts +88 -0
  94. package/src/tools/admin-inspect-memory.ts +86 -0
  95. package/src/tools/admin-inspect-user.spec.ts +130 -0
  96. package/src/tools/admin-inspect-user.ts +148 -0
  97. package/src/tools/admin-list-collections.ts +73 -0
  98. package/src/tools/admin-memory-inspection.spec.ts +206 -0
  99. package/src/tools/admin-schema-collection.spec.ts +167 -0
  100. package/src/tools/admin-search-across-users.ts +104 -0
  101. package/src/utils/admin.spec.ts +70 -0
  102. package/src/utils/admin.ts +27 -0
@@ -0,0 +1,70 @@
1
+ import { isAdmin, adminPermissionError } from './admin.js';
2
+
3
+ describe('isAdmin', () => {
4
+ const originalEnv = process.env.ADMIN_USER_IDS;
5
+
6
+ afterEach(() => {
7
+ if (originalEnv !== undefined) {
8
+ process.env.ADMIN_USER_IDS = originalEnv;
9
+ } else {
10
+ delete process.env.ADMIN_USER_IDS;
11
+ }
12
+ });
13
+
14
+ it('returns true when userId matches a single admin ID', () => {
15
+ process.env.ADMIN_USER_IDS = 'user123';
16
+ expect(isAdmin('user123')).toBe(true);
17
+ });
18
+
19
+ it('returns false when userId does not match', () => {
20
+ process.env.ADMIN_USER_IDS = 'user123';
21
+ expect(isAdmin('other_user')).toBe(false);
22
+ });
23
+
24
+ it('returns true when userId matches one of multiple admin IDs', () => {
25
+ process.env.ADMIN_USER_IDS = 'user1,user2,user3';
26
+ expect(isAdmin('user2')).toBe(true);
27
+ });
28
+
29
+ it('returns false when ADMIN_USER_IDS is empty string', () => {
30
+ process.env.ADMIN_USER_IDS = '';
31
+ expect(isAdmin('user123')).toBe(false);
32
+ });
33
+
34
+ it('returns false when ADMIN_USER_IDS is undefined', () => {
35
+ delete process.env.ADMIN_USER_IDS;
36
+ expect(isAdmin('user123')).toBe(false);
37
+ });
38
+
39
+ it('trims whitespace around IDs', () => {
40
+ process.env.ADMIN_USER_IDS = ' user1 , user2 , user3 ';
41
+ expect(isAdmin('user2')).toBe(true);
42
+ });
43
+
44
+ it('filters out empty entries from trailing commas', () => {
45
+ process.env.ADMIN_USER_IDS = 'user1,,user2,';
46
+ expect(isAdmin('user1')).toBe(true);
47
+ expect(isAdmin('user2')).toBe(true);
48
+ expect(isAdmin('')).toBe(false);
49
+ });
50
+
51
+ it('re-reads env var on each call (not cached)', () => {
52
+ process.env.ADMIN_USER_IDS = 'user1';
53
+ expect(isAdmin('user1')).toBe(true);
54
+ expect(isAdmin('user2')).toBe(false);
55
+
56
+ process.env.ADMIN_USER_IDS = 'user2';
57
+ expect(isAdmin('user1')).toBe(false);
58
+ expect(isAdmin('user2')).toBe(true);
59
+ });
60
+ });
61
+
62
+ describe('adminPermissionError', () => {
63
+ it('returns correct error structure', () => {
64
+ const result = adminPermissionError();
65
+ expect(result).toEqual({
66
+ content: [{ type: 'text', text: 'Permission denied: admin access required' }],
67
+ isError: true,
68
+ });
69
+ });
70
+ });
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Admin gate utilities
3
+ * Checks if a userId is in the ADMIN_USER_IDS env var.
4
+ * Re-reads env on each call (not cached) for hot-reload support.
5
+ */
6
+
7
+ /**
8
+ * Check if a userId is an admin.
9
+ * Reads ADMIN_USER_IDS env var on each call.
10
+ */
11
+ export function isAdmin(userId: string): boolean {
12
+ const adminIds = (process.env.ADMIN_USER_IDS || '')
13
+ .split(',')
14
+ .map(id => id.trim())
15
+ .filter(Boolean);
16
+ return adminIds.includes(userId);
17
+ }
18
+
19
+ /**
20
+ * Standard permission error response for non-admin users.
21
+ */
22
+ export function adminPermissionError() {
23
+ return {
24
+ content: [{ type: 'text' as const, text: 'Permission denied: admin access required' }],
25
+ isError: true,
26
+ };
27
+ }