kemdicode-mcp 1.18.0 → 1.19.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 (118) hide show
  1. package/README.md +16 -3
  2. package/dist/ai/execute.d.ts.map +1 -1
  3. package/dist/ai/execute.js +11 -1
  4. package/dist/ai/execute.js.map +1 -1
  5. package/dist/context/agent-monitor.d.ts +3 -3
  6. package/dist/context/agent-monitor.d.ts.map +1 -1
  7. package/dist/context/agent-monitor.js +15 -9
  8. package/dist/context/agent-monitor.js.map +1 -1
  9. package/dist/context/storage.d.ts.map +1 -1
  10. package/dist/context/storage.js +18 -2
  11. package/dist/context/storage.js.map +1 -1
  12. package/dist/kanban/kanban-store.d.ts +0 -18
  13. package/dist/kanban/kanban-store.d.ts.map +1 -1
  14. package/dist/kanban/kanban-store.js +97 -80
  15. package/dist/kanban/kanban-store.js.map +1 -1
  16. package/dist/recursive/tool-invoker.d.ts.map +1 -1
  17. package/dist/recursive/tool-invoker.js +5 -8
  18. package/dist/recursive/tool-invoker.js.map +1 -1
  19. package/dist/session/manager.d.ts.map +1 -1
  20. package/dist/session/manager.js +10 -3
  21. package/dist/session/manager.js.map +1 -1
  22. package/dist/tools/agents/agent-alert.tool.d.ts.map +1 -1
  23. package/dist/tools/agents/agent-alert.tool.js +7 -21
  24. package/dist/tools/agents/agent-alert.tool.js.map +1 -1
  25. package/dist/tools/agents/agent-inject.tool.d.ts.map +1 -1
  26. package/dist/tools/agents/agent-inject.tool.js +11 -23
  27. package/dist/tools/agents/agent-inject.tool.js.map +1 -1
  28. package/dist/tools/agents/agent-register.tool.d.ts.map +1 -1
  29. package/dist/tools/agents/agent-register.tool.js +1 -1
  30. package/dist/tools/agents/agent-register.tool.js.map +1 -1
  31. package/dist/tools/agents/queue-message.tool.js +2 -2
  32. package/dist/tools/agents/queue-message.tool.js.map +1 -1
  33. package/dist/tools/file/file-diff.tool.d.ts.map +1 -1
  34. package/dist/tools/file/file-diff.tool.js +86 -72
  35. package/dist/tools/file/file-diff.tool.js.map +1 -1
  36. package/dist/tools/file/file-read.tool.d.ts.map +1 -1
  37. package/dist/tools/file/file-read.tool.js +100 -123
  38. package/dist/tools/file/file-read.tool.js.map +1 -1
  39. package/dist/tools/file/file-write.tool.d.ts.map +1 -1
  40. package/dist/tools/file/file-write.tool.js +96 -102
  41. package/dist/tools/file/file-write.tool.js.map +1 -1
  42. package/dist/tools/git/git-log.tool.d.ts.map +1 -1
  43. package/dist/tools/git/git-log.tool.js +4 -1
  44. package/dist/tools/git/git-log.tool.js.map +1 -1
  45. package/dist/tools/kanban/board-create.tool.d.ts.map +1 -1
  46. package/dist/tools/kanban/board-create.tool.js +44 -35
  47. package/dist/tools/kanban/board-create.tool.js.map +1 -1
  48. package/dist/tools/kanban/board-invite.tool.d.ts.map +1 -1
  49. package/dist/tools/kanban/board-invite.tool.js +52 -42
  50. package/dist/tools/kanban/board-invite.tool.js.map +1 -1
  51. package/dist/tools/kanban/board-members.tool.d.ts.map +1 -1
  52. package/dist/tools/kanban/board-members.tool.js +123 -97
  53. package/dist/tools/kanban/board-members.tool.js.map +1 -1
  54. package/dist/tools/kanban/board-share.tool.d.ts.map +1 -1
  55. package/dist/tools/kanban/board-share.tool.js +48 -38
  56. package/dist/tools/kanban/board-share.tool.js.map +1 -1
  57. package/dist/tools/kanban/workspace-create.tool.d.ts.map +1 -1
  58. package/dist/tools/kanban/workspace-create.tool.js +41 -30
  59. package/dist/tools/kanban/workspace-create.tool.js.map +1 -1
  60. package/dist/tools/memory/checkpoint-restore.tool.d.ts.map +1 -1
  61. package/dist/tools/memory/checkpoint-restore.tool.js +1 -9
  62. package/dist/tools/memory/checkpoint-restore.tool.js.map +1 -1
  63. package/dist/tools/memory/checkpoint-save.tool.d.ts.map +1 -1
  64. package/dist/tools/memory/checkpoint-save.tool.js +2 -28
  65. package/dist/tools/memory/checkpoint-save.tool.js.map +1 -1
  66. package/dist/tools/memory/delete-memory.tool.d.ts.map +1 -1
  67. package/dist/tools/memory/delete-memory.tool.js +34 -35
  68. package/dist/tools/memory/delete-memory.tool.js.map +1 -1
  69. package/dist/tools/memory/edit-memory.tool.d.ts.map +1 -1
  70. package/dist/tools/memory/edit-memory.tool.js +89 -117
  71. package/dist/tools/memory/edit-memory.tool.js.map +1 -1
  72. package/dist/tools/memory/list-memories.tool.d.ts.map +1 -1
  73. package/dist/tools/memory/list-memories.tool.js +53 -46
  74. package/dist/tools/memory/list-memories.tool.js.map +1 -1
  75. package/dist/tools/memory/read-memory.tool.d.ts.map +1 -1
  76. package/dist/tools/memory/read-memory.tool.js +45 -39
  77. package/dist/tools/memory/read-memory.tool.js.map +1 -1
  78. package/dist/tools/memory/shared.d.ts +61 -0
  79. package/dist/tools/memory/shared.d.ts.map +1 -0
  80. package/dist/tools/memory/shared.js +63 -0
  81. package/dist/tools/memory/shared.js.map +1 -0
  82. package/dist/tools/memory/write-memory.tool.d.ts.map +1 -1
  83. package/dist/tools/memory/write-memory.tool.js +68 -107
  84. package/dist/tools/memory/write-memory.tool.js.map +1 -1
  85. package/dist/tools/multi-llm/consensus-prompt.tool.d.ts.map +1 -1
  86. package/dist/tools/multi-llm/consensus-prompt.tool.js +7 -3
  87. package/dist/tools/multi-llm/consensus-prompt.tool.js.map +1 -1
  88. package/dist/tools/registry.d.ts +13 -0
  89. package/dist/tools/registry.d.ts.map +1 -1
  90. package/dist/tools/registry.js +25 -0
  91. package/dist/tools/registry.js.map +1 -1
  92. package/dist/tools/session/session-create.tool.d.ts +8 -6
  93. package/dist/tools/session/session-create.tool.d.ts.map +1 -1
  94. package/dist/tools/session/session-create.tool.js +44 -34
  95. package/dist/tools/session/session-create.tool.js.map +1 -1
  96. package/dist/tools/session/session-delete.tool.d.ts +4 -2
  97. package/dist/tools/session/session-delete.tool.d.ts.map +1 -1
  98. package/dist/tools/session/session-delete.tool.js +51 -53
  99. package/dist/tools/session/session-delete.tool.js.map +1 -1
  100. package/dist/tools/specialized/code-review.tool.d.ts.map +1 -1
  101. package/dist/tools/specialized/code-review.tool.js +1 -0
  102. package/dist/tools/specialized/code-review.tool.js.map +1 -1
  103. package/dist/utils/format-helpers.d.ts +41 -0
  104. package/dist/utils/format-helpers.d.ts.map +1 -0
  105. package/dist/utils/format-helpers.js +76 -0
  106. package/dist/utils/format-helpers.js.map +1 -0
  107. package/dist/utils/projectContext.enhanced.d.ts.map +1 -1
  108. package/dist/utils/projectContext.enhanced.js +19 -4
  109. package/dist/utils/projectContext.enhanced.js.map +1 -1
  110. package/dist/utils/security.d.ts.map +1 -1
  111. package/dist/utils/security.js +11 -2
  112. package/dist/utils/security.js.map +1 -1
  113. package/dist/utils/validation.d.ts.map +1 -1
  114. package/dist/utils/validation.js +2 -4
  115. package/dist/utils/validation.js.map +1 -1
  116. package/dist/version.d.ts +1 -1
  117. package/dist/version.js +1 -1
  118. package/package.json +1 -1
@@ -26,21 +26,24 @@ import { z } from 'zod';
26
26
  import { Logger } from '../../utils/logger.js';
27
27
  import { checkRateLimit } from '../../utils/validation.js';
28
28
  import { shareBoard, hasPermission } from '../../kanban/index.js';
29
- const schema = z.object({
29
+ const shareItemSchema = z.object({
30
30
  boardId: z.string().min(1).describe('Board ID'),
31
31
  workspaceId: z.string().min(1).describe('Target workspace ID'),
32
32
  visibility: z
33
33
  .enum(['workspace', 'public'])
34
34
  .default('workspace')
35
35
  .describe('Visibility level'),
36
+ });
37
+ const schema = z.object({
38
+ shares: z.array(shareItemSchema).min(1).max(10).describe('Shares to create (1-10)'),
36
39
  agentId: z.string().min(1).describe('Agent ID (must have permission)'),
37
40
  });
38
41
  export const boardShareTool = {
39
42
  name: 'board-share',
40
- description: 'Share board with workspace for cross-session access',
43
+ description: 'Share 1-10 boards with workspaces. Returns results.',
41
44
  zodSchema: schema,
42
45
  execute: async (args) => {
43
- const input = args;
46
+ const { shares, agentId } = args;
44
47
  if (!checkRateLimit('kanban-operations', { maxRequests: 100, windowMs: 60000 })) {
45
48
  return JSON.stringify({
46
49
  success: false,
@@ -48,44 +51,51 @@ export const boardShareTool = {
48
51
  code: 'RATE_LIMIT_EXCEEDED',
49
52
  });
50
53
  }
51
- try {
52
- // Check permission
53
- const canManage = await hasPermission(input.boardId, input.agentId, 'canManageBoard');
54
- if (!canManage) {
55
- return JSON.stringify({
56
- success: false,
57
- error: 'Agent does not have permission to manage this board',
58
- code: 'PERMISSION_DENIED',
59
- });
60
- }
61
- const board = await shareBoard(input.boardId, input.workspaceId, input.visibility);
62
- if (!board) {
63
- return JSON.stringify({
64
- success: false,
65
- error: 'Board not found',
66
- code: 'NOT_FOUND',
67
- });
68
- }
69
- Logger.debug(`board-share: shared board ${input.boardId} with workspace ${input.workspaceId}`);
70
- return JSON.stringify({
71
- success: true,
72
- board: {
73
- id: board.id,
54
+ const results = await Promise.all(shares.map(async (item) => {
55
+ try {
56
+ const canManage = await hasPermission(item.boardId, agentId, 'canManageBoard');
57
+ if (!canManage) {
58
+ return {
59
+ boardId: item.boardId,
60
+ success: false,
61
+ error: 'Permission denied',
62
+ code: 'PERMISSION_DENIED',
63
+ };
64
+ }
65
+ const board = await shareBoard(item.boardId, item.workspaceId, item.visibility);
66
+ if (!board) {
67
+ return {
68
+ boardId: item.boardId,
69
+ success: false,
70
+ error: 'Board not found',
71
+ code: 'NOT_FOUND',
72
+ };
73
+ }
74
+ Logger.debug(`board-share: shared board ${item.boardId} with workspace ${item.workspaceId}`);
75
+ return {
76
+ boardId: board.id,
74
77
  name: board.name,
75
78
  workspaceId: board.workspaceId,
76
79
  visibility: board.visibility,
77
- },
78
- });
79
- }
80
- catch (error) {
81
- const errorMessage = error instanceof Error ? error.message : String(error);
82
- Logger.error(`board-share error: ${errorMessage}`);
83
- return JSON.stringify({
84
- success: false,
85
- error: errorMessage,
86
- code: 'SHARE_ERROR',
87
- });
88
- }
80
+ success: true,
81
+ };
82
+ }
83
+ catch (error) {
84
+ return {
85
+ boardId: item.boardId,
86
+ success: false,
87
+ error: error instanceof Error ? error.message : String(error),
88
+ };
89
+ }
90
+ }));
91
+ const successful = results.filter((r) => r.success);
92
+ const failed = results.filter((r) => !r.success);
93
+ return JSON.stringify({
94
+ success: failed.length === 0,
95
+ shared: successful.length,
96
+ failed: failed.length,
97
+ results,
98
+ });
89
99
  },
90
100
  };
91
101
  //# sourceMappingURL=board-share.tool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"board-share.tool.js","sourceRoot":"","sources":["../../../src/tools/kanban/board-share.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"board-share.tool.js","sourceRoot":"","sources":["../../../src/tools/kanban/board-share.tool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-create.tool.d.ts","sourceRoot":"","sources":["../../../src/tools/kanban/workspace-create.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAWH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAkB7C,eAAO,MAAM,mBAAmB,EAAE,WAiDjC,CAAC"}
1
+ {"version":3,"file":"workspace-create.tool.d.ts","sourceRoot":"","sources":["../../../src/tools/kanban/workspace-create.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAWH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAsB7C,eAAO,MAAM,mBAAmB,EAAE,WA4DjC,CAAC"}
@@ -26,22 +26,25 @@ import { z } from 'zod';
26
26
  import { Logger } from '../../utils/logger.js';
27
27
  import { checkRateLimit } from '../../utils/validation.js';
28
28
  import { createWorkspace } from '../../kanban/index.js';
29
- const schema = z.object({
29
+ const wsItemSchema = z.object({
30
30
  name: z.string().min(1).max(100).describe('Workspace name'),
31
31
  description: z.string().max(500).optional().describe('Workspace description'),
32
- ownerSessionId: z.string().min(1).describe('Creator session ID'),
33
- ownerId: z.string().min(1).describe('Creator agent ID'),
34
32
  initialMemberSessions: z
35
33
  .array(z.string())
36
34
  .optional()
37
35
  .describe('Session IDs to invite immediately'),
38
36
  });
37
+ const schema = z.object({
38
+ workspaces: z.array(wsItemSchema).min(1).max(5).describe('Workspaces to create (1-5)'),
39
+ ownerSessionId: z.string().min(1).describe('Creator session ID'),
40
+ ownerId: z.string().min(1).describe('Creator agent ID'),
41
+ });
39
42
  export const workspaceCreateTool = {
40
43
  name: 'workspace-create',
41
- description: 'Create workspace for cross-session board sharing',
44
+ description: 'Create 1-5 workspaces for cross-session board sharing. Returns IDs.',
42
45
  zodSchema: schema,
43
46
  execute: async (args) => {
44
- const input = args;
47
+ const { workspaces, ownerSessionId, ownerId } = args;
45
48
  if (!checkRateLimit('kanban-operations', { maxRequests: 100, windowMs: 60000 })) {
46
49
  return JSON.stringify({
47
50
  success: false,
@@ -49,36 +52,44 @@ export const workspaceCreateTool = {
49
52
  code: 'RATE_LIMIT_EXCEEDED',
50
53
  });
51
54
  }
52
- try {
53
- const workspace = await createWorkspace({
54
- name: input.name,
55
- description: input.description,
56
- ownerSessionId: input.ownerSessionId,
57
- ownerId: input.ownerId,
58
- initialMemberSessions: input.initialMemberSessions,
59
- });
60
- Logger.debug(`workspace-create: created workspace ${workspace.id}: ${workspace.name}`);
61
- return JSON.stringify({
62
- success: true,
63
- workspace: {
55
+ const results = await Promise.all(workspaces.map(async (item) => {
56
+ try {
57
+ const workspace = await createWorkspace({
58
+ name: item.name,
59
+ description: item.description,
60
+ ownerSessionId,
61
+ ownerId,
62
+ initialMemberSessions: item.initialMemberSessions,
63
+ });
64
+ Logger.debug(`workspace-create: created workspace ${workspace.id}: ${workspace.name}`);
65
+ return {
64
66
  id: workspace.id,
65
67
  name: workspace.name,
66
68
  description: workspace.description,
67
- ownerId: workspace.ownerId,
68
69
  memberSessions: workspace.memberSessions,
69
70
  createdAt: workspace.createdAt,
70
- },
71
- });
72
- }
73
- catch (error) {
74
- const errorMessage = error instanceof Error ? error.message : String(error);
75
- Logger.error(`workspace-create error: ${errorMessage}`);
76
- return JSON.stringify({
77
- success: false,
78
- error: errorMessage,
79
- code: 'CREATE_ERROR',
80
- });
81
- }
71
+ success: true,
72
+ };
73
+ }
74
+ catch (error) {
75
+ return {
76
+ name: item.name,
77
+ success: false,
78
+ error: error instanceof Error ? error.message : String(error),
79
+ };
80
+ }
81
+ }));
82
+ const successful = results.filter((r) => r.success);
83
+ const failed = results.filter((r) => !r.success);
84
+ return JSON.stringify({
85
+ success: failed.length === 0,
86
+ ownerSessionId,
87
+ ownerId,
88
+ created: successful.length,
89
+ failed: failed.length,
90
+ workspaces: results,
91
+ workspaceIds: successful.map((r) => r.id),
92
+ });
82
93
  },
83
94
  };
84
95
  //# sourceMappingURL=workspace-create.tool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-create.tool.js","sourceRoot":"","sources":["../../../src/tools/kanban/workspace-create.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-create.tool.js","sourceRoot":"","sources":["../../../src/tools/kanban/workspace-create.tool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint-restore.tool.d.ts","sourceRoot":"","sources":["../../../src/tools/memory/checkpoint-restore.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAaH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AA8B7C,eAAO,MAAM,qBAAqB,EAAE,WA6DnC,CAAC"}
1
+ {"version":3,"file":"checkpoint-restore.tool.d.ts","sourceRoot":"","sources":["../../../src/tools/memory/checkpoint-restore.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAWH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAW7C,eAAO,MAAM,qBAAqB,EAAE,WA6DnC,CAAC"}
@@ -23,17 +23,9 @@
23
23
  * @module tools/memory/checkpoint-restore
24
24
  */
25
25
  import { z } from 'zod';
26
- import { getSharedRedis } from '../../infrastructure/redis/connection.js';
27
- import { createHash } from 'crypto';
28
26
  import { Logger } from '../../utils/logger.js';
29
27
  import { checkRateLimit } from '../../utils/validation.js';
30
- /** Redis key prefix for checkpoints */
31
- const CHECKPOINT_PREFIX = 'mcp:checkpoint:';
32
- const getRedis = getSharedRedis;
33
- function getProjectId() {
34
- const cwd = process.cwd();
35
- return createHash('sha256').update(cwd).digest('hex').slice(0, 16);
36
- }
28
+ import { CHECKPOINT_PREFIX, getRedis, getProjectId } from './shared.js';
37
29
  const schema = z.object({
38
30
  name: z.string().min(1).describe('Checkpoint name'),
39
31
  });
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint-restore.tool.js","sourceRoot":"","sources":["../../../src/tools/memory/checkpoint-restore.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkpoint-restore.tool.js","sourceRoot":"","sources":["../../../src/tools/memory/checkpoint-restore.tool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint-save.tool.d.ts","sourceRoot":"","sources":["../../../src/tools/memory/checkpoint-save.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAeH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AA8C7C,eAAO,MAAM,kBAAkB,EAAE,WAkFhC,CAAC"}
1
+ {"version":3,"file":"checkpoint-save.tool.d.ts","sourceRoot":"","sources":["../../../src/tools/memory/checkpoint-save.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAYH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AA6B7C,eAAO,MAAM,kBAAkB,EAAE,WAkFhC,CAAC"}
@@ -24,22 +24,9 @@
24
24
  * @module tools/memory/checkpoint-save
25
25
  */
26
26
  import { z } from 'zod';
27
- import { getSharedRedis } from '../../infrastructure/redis/connection.js';
28
- import { createHash } from 'crypto';
29
27
  import { Logger } from '../../utils/logger.js';
30
28
  import { checkRateLimit } from '../../utils/validation.js';
31
- /** Redis key prefix for checkpoints */
32
- const CHECKPOINT_PREFIX = 'mcp:checkpoint:';
33
- const CHECKPOINT_INDEX_PREFIX = 'mcp:checkpoint:index:';
34
- /** Default TTL: 7 days in seconds */
35
- const DEFAULT_TTL = 7 * 24 * 60 * 60;
36
- /** Maximum checkpoint content size: 1MB */
37
- const MAX_CONTENT_SIZE = 1024 * 1024;
38
- const getRedis = getSharedRedis;
39
- function getProjectId() {
40
- const cwd = process.cwd();
41
- return createHash('sha256').update(cwd).digest('hex').slice(0, 16);
42
- }
29
+ import { CHECKPOINT_PREFIX, CHECKPOINT_INDEX_PREFIX, DEFAULT_CHECKPOINT_TTL, MAX_CONTENT_SIZE, getRedis, getProjectId, getExistingCreatedAt, } from './shared.js';
43
30
  const schema = z.object({
44
31
  name: z
45
32
  .string()
@@ -99,7 +86,7 @@ export const checkpointSaveTool = {
99
86
  const ttl = ttlDays * 24 * 60 * 60;
100
87
  await client.setex(checkpointKey, ttl, JSON.stringify(checkpoint));
101
88
  await client.sadd(indexKey, name);
102
- await client.expire(indexKey, DEFAULT_TTL);
89
+ await client.expire(indexKey, DEFAULT_CHECKPOINT_TTL);
103
90
  Logger.debug(`checkpoint-save: stored '${name}' for project ${projectId}`);
104
91
  return JSON.stringify({
105
92
  success: true,
@@ -124,17 +111,4 @@ export const checkpointSaveTool = {
124
111
  }
125
112
  },
126
113
  };
127
- async function getExistingCreatedAt(client, key) {
128
- try {
129
- const data = await client.get(key);
130
- if (data) {
131
- const checkpoint = JSON.parse(data);
132
- return checkpoint.createdAt;
133
- }
134
- }
135
- catch {
136
- // Ignore parse errors
137
- }
138
- return null;
139
- }
140
114
  //# sourceMappingURL=checkpoint-save.tool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint-save.tool.js","sourceRoot":"","sources":["../../../src/tools/memory/checkpoint-save.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkpoint-save.tool.js","sourceRoot":"","sources":["../../../src/tools/memory/checkpoint-save.tool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"delete-memory.tool.d.ts","sourceRoot":"","sources":["../../../src/tools/memory/delete-memory.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAaH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAwB7C,eAAO,MAAM,gBAAgB,EAAE,WA2D9B,CAAC"}
1
+ {"version":3,"file":"delete-memory.tool.d.ts","sourceRoot":"","sources":["../../../src/tools/memory/delete-memory.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAWH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAW7C,eAAO,MAAM,gBAAgB,EAAE,WAwE9B,CAAC"}
@@ -23,31 +23,18 @@
23
23
  * @module tools/memory/delete-memory
24
24
  */
25
25
  import { z } from 'zod';
26
- import { getSharedRedis } from '../../infrastructure/redis/connection.js';
27
- import { createHash } from 'crypto';
28
26
  import { Logger } from '../../utils/logger.js';
29
27
  import { checkRateLimit } from '../../utils/validation.js';
30
- /** Redis key prefix for memories */
31
- const MEMORY_PREFIX = 'mcp:memory:';
32
- const MEMORY_INDEX_PREFIX = 'mcp:memory:index:';
33
- const getRedis = getSharedRedis;
34
- /**
35
- * Generate project ID from current working directory
36
- */
37
- function getProjectId() {
38
- const cwd = process.cwd();
39
- return createHash('sha256').update(cwd).digest('hex').slice(0, 16);
40
- }
28
+ import { MEMORY_PREFIX, MEMORY_INDEX_PREFIX, getRedis, getProjectId } from './shared.js';
41
29
  const schema = z.object({
42
- name: z.string().min(1).describe('Memory name'),
30
+ names: z.array(z.string().min(1)).min(1).max(20).describe('Memory names to delete (1-20)'),
43
31
  });
44
32
  export const deleteMemoryTool = {
45
33
  name: 'delete-memory',
46
- description: 'Delete named memory from current project',
34
+ description: 'Delete 1-20 named memories from current project.',
47
35
  zodSchema: schema,
48
36
  execute: async (args) => {
49
- const { name } = args;
50
- // Rate limit check
37
+ const { names } = args;
51
38
  if (!checkRateLimit('memory-operations', { maxRequests: 50, windowMs: 60000 })) {
52
39
  return JSON.stringify({
53
40
  success: false,
@@ -56,30 +43,42 @@ export const deleteMemoryTool = {
56
43
  });
57
44
  }
58
45
  const projectId = getProjectId();
59
- const memoryKey = `${MEMORY_PREFIX}${projectId}:${name}`;
60
46
  const indexKey = `${MEMORY_INDEX_PREFIX}${projectId}`;
61
47
  try {
62
48
  const client = await getRedis();
63
- // Check if memory exists
64
- const exists = await client.exists(memoryKey);
65
- if (!exists) {
66
- return JSON.stringify({
67
- success: false,
68
- error: `Memory '${name}' not found`,
69
- code: 'MEMORY_NOT_FOUND',
70
- name,
71
- projectId,
72
- });
49
+ // Pipeline: check existence
50
+ const existsPipeline = client.pipeline();
51
+ for (const name of names) {
52
+ existsPipeline.exists(`${MEMORY_PREFIX}${projectId}:${name}`);
53
+ }
54
+ const existsResults = await existsPipeline.exec();
55
+ // Pipeline: delete existing + remove from index
56
+ const delPipeline = client.pipeline();
57
+ const results = names.map((name, i) => {
58
+ const exists = existsResults?.[i]?.[1] > 0;
59
+ if (!exists) {
60
+ return { name, success: false, error: `Memory '${name}' not found`, code: 'MEMORY_NOT_FOUND' };
61
+ }
62
+ delPipeline.del(`${MEMORY_PREFIX}${projectId}:${name}`);
63
+ delPipeline.srem(indexKey, name);
64
+ return { name, success: true };
65
+ });
66
+ if (results.some((r) => r.success)) {
67
+ await delPipeline.exec();
68
+ }
69
+ for (const r of results) {
70
+ if (r.success) {
71
+ Logger.debug(`delete-memory: deleted '${r.name}' from project ${projectId}`);
72
+ }
73
73
  }
74
- // Delete memory and remove from index
75
- await client.del(memoryKey);
76
- await client.srem(indexKey, name);
77
- Logger.debug(`delete-memory: deleted '${name}' from project ${projectId}`);
74
+ const successful = results.filter((r) => r.success);
75
+ const failed = results.filter((r) => !r.success);
78
76
  return JSON.stringify({
79
- success: true,
80
- name,
77
+ success: failed.length === 0,
81
78
  projectId,
82
- message: `Memory '${name}' deleted successfully`,
79
+ deleted: successful.length,
80
+ notFound: failed.length,
81
+ results,
83
82
  });
84
83
  }
85
84
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"delete-memory.tool.js","sourceRoot":"","sources":["../../../src/tools/memory/delete-memory.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delete-memory.tool.js","sourceRoot":"","sources":["../../../src/tools/memory/delete-memory.tool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"edit-memory.tool.d.ts","sourceRoot":"","sources":["../../../src/tools/memory/edit-memory.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAcH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AA0C7C,eAAO,MAAM,cAAc,EAAE,WAwI5B,CAAC"}
1
+ {"version":3,"file":"edit-memory.tool.d.ts","sourceRoot":"","sources":["../../../src/tools/memory/edit-memory.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAYH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AA2B7C,eAAO,MAAM,cAAc,EAAE,WAoH5B,CAAC"}