@vheins/local-memory-mcp 0.4.7 → 0.4.10

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 (168) hide show
  1. package/dist/capabilities.d.ts +7 -7
  2. package/dist/capabilities.d.ts.map +1 -1
  3. package/dist/capabilities.js +7 -7
  4. package/dist/capabilities.js.map +1 -1
  5. package/dist/completion.d.ts +25 -0
  6. package/dist/completion.d.ts.map +1 -0
  7. package/dist/completion.js +127 -0
  8. package/dist/completion.js.map +1 -0
  9. package/dist/mcp/client.d.ts.map +1 -1
  10. package/dist/mcp/client.js +8 -1
  11. package/dist/mcp/client.js.map +1 -1
  12. package/dist/mcp/elicitation.d.ts +24 -0
  13. package/dist/mcp/elicitation.d.ts.map +1 -0
  14. package/dist/mcp/elicitation.js +13 -0
  15. package/dist/mcp/elicitation.js.map +1 -0
  16. package/dist/mcp/sampling.d.ts +69 -0
  17. package/dist/mcp/sampling.d.ts.map +1 -0
  18. package/dist/mcp/sampling.js +13 -0
  19. package/dist/mcp/sampling.js.map +1 -0
  20. package/dist/mcp/session.d.ts +28 -0
  21. package/dist/mcp/session.d.ts.map +1 -0
  22. package/dist/mcp/session.js +106 -0
  23. package/dist/mcp/session.js.map +1 -0
  24. package/dist/prompts/registry.d.ts +55 -0
  25. package/dist/prompts/registry.d.ts.map +1 -1
  26. package/dist/prompts/registry.js +455 -7
  27. package/dist/prompts/registry.js.map +1 -1
  28. package/dist/resources/index.d.ts +55 -4
  29. package/dist/resources/index.d.ts.map +1 -1
  30. package/dist/resources/index.js +223 -52
  31. package/dist/resources/index.js.map +1 -1
  32. package/dist/router.d.ts +11 -1
  33. package/dist/router.d.ts.map +1 -1
  34. package/dist/router.js +151 -34
  35. package/dist/router.js.map +1 -1
  36. package/dist/server.js +212 -13
  37. package/dist/server.js.map +1 -1
  38. package/dist/storage/sqlite.d.ts +2 -0
  39. package/dist/storage/sqlite.d.ts.map +1 -1
  40. package/dist/storage/sqlite.js +81 -23
  41. package/dist/storage/sqlite.js.map +1 -1
  42. package/dist/tasks.bulk.test.js +43 -6
  43. package/dist/tasks.bulk.test.js.map +1 -1
  44. package/dist/tasks.e2e.test.js +30 -6
  45. package/dist/tasks.e2e.test.js.map +1 -1
  46. package/dist/tests/client.test.d.ts +2 -0
  47. package/dist/tests/client.test.d.ts.map +1 -0
  48. package/dist/tests/client.test.js +130 -0
  49. package/dist/tests/client.test.js.map +1 -0
  50. package/dist/tests/dashboard.test.d.ts +2 -0
  51. package/dist/tests/dashboard.test.d.ts.map +1 -0
  52. package/dist/tests/dashboard.test.js +370 -0
  53. package/dist/tests/dashboard.test.js.map +1 -0
  54. package/dist/tests/e2e.test.d.ts +2 -0
  55. package/dist/tests/e2e.test.d.ts.map +1 -0
  56. package/dist/tests/e2e.test.js +250 -0
  57. package/dist/tests/e2e.test.js.map +1 -0
  58. package/dist/tests/index.test.d.ts +2 -0
  59. package/dist/tests/index.test.d.ts.map +1 -0
  60. package/dist/tests/index.test.js +185 -0
  61. package/dist/tests/index.test.js.map +1 -0
  62. package/dist/tests/logger.test.d.ts +2 -0
  63. package/dist/tests/logger.test.d.ts.map +1 -0
  64. package/dist/tests/logger.test.js +104 -0
  65. package/dist/tests/logger.test.js.map +1 -0
  66. package/dist/tests/memory.bulk.test.d.ts +2 -0
  67. package/dist/tests/memory.bulk.test.d.ts.map +1 -0
  68. package/dist/tests/memory.bulk.test.js +52 -0
  69. package/dist/tests/memory.bulk.test.js.map +1 -0
  70. package/dist/tests/memory.search.test.d.ts +2 -0
  71. package/dist/tests/memory.search.test.d.ts.map +1 -0
  72. package/dist/tests/memory.search.test.js +181 -0
  73. package/dist/tests/memory.search.test.js.map +1 -0
  74. package/dist/tests/normalize.test.d.ts +2 -0
  75. package/dist/tests/normalize.test.d.ts.map +1 -0
  76. package/dist/tests/normalize.test.js +159 -0
  77. package/dist/tests/normalize.test.js.map +1 -0
  78. package/dist/tests/query-expander.test.d.ts +2 -0
  79. package/dist/tests/query-expander.test.d.ts.map +1 -0
  80. package/dist/tests/query-expander.test.js +33 -0
  81. package/dist/tests/query-expander.test.js.map +1 -0
  82. package/dist/tests/router.test.d.ts +2 -0
  83. package/dist/tests/router.test.d.ts.map +1 -0
  84. package/dist/tests/router.test.js +470 -0
  85. package/dist/tests/router.test.js.map +1 -0
  86. package/dist/tests/sqlite.test.d.ts +2 -0
  87. package/dist/tests/sqlite.test.d.ts.map +1 -0
  88. package/dist/tests/sqlite.test.js +367 -0
  89. package/dist/tests/sqlite.test.js.map +1 -0
  90. package/dist/tests/tasks-search.test.d.ts +2 -0
  91. package/dist/tests/tasks-search.test.d.ts.map +1 -0
  92. package/dist/tests/tasks-search.test.js +154 -0
  93. package/dist/tests/tasks-search.test.js.map +1 -0
  94. package/dist/tests/tasks-transition.test.d.ts +2 -0
  95. package/dist/tests/tasks-transition.test.d.ts.map +1 -0
  96. package/dist/tests/tasks-transition.test.js +174 -0
  97. package/dist/tests/tasks-transition.test.js.map +1 -0
  98. package/dist/tests/tasks.bulk.test.d.ts +2 -0
  99. package/dist/tests/tasks.bulk.test.d.ts.map +1 -0
  100. package/dist/tests/tasks.bulk.test.js +254 -0
  101. package/dist/tests/tasks.bulk.test.js.map +1 -0
  102. package/dist/tests/tasks.e2e.test.d.ts +2 -0
  103. package/dist/tests/tasks.e2e.test.d.ts.map +1 -0
  104. package/dist/tests/tasks.e2e.test.js +289 -0
  105. package/dist/tests/tasks.e2e.test.js.map +1 -0
  106. package/dist/tests/tasks.pending-limit-refined.test.d.ts +2 -0
  107. package/dist/tests/tasks.pending-limit-refined.test.d.ts.map +1 -0
  108. package/dist/tests/tasks.pending-limit-refined.test.js +72 -0
  109. package/dist/tests/tasks.pending-limit-refined.test.js.map +1 -0
  110. package/dist/tests/v2-features.test.d.ts +2 -0
  111. package/dist/tests/v2-features.test.d.ts.map +1 -0
  112. package/dist/tests/v2-features.test.js +209 -0
  113. package/dist/tests/v2-features.test.js.map +1 -0
  114. package/dist/tools/memory.bulk-delete.d.ts +1 -7
  115. package/dist/tools/memory.bulk-delete.d.ts.map +1 -1
  116. package/dist/tools/memory.bulk-delete.js +30 -8
  117. package/dist/tools/memory.bulk-delete.js.map +1 -1
  118. package/dist/tools/memory.delete.d.ts.map +1 -1
  119. package/dist/tools/memory.delete.js +18 -1
  120. package/dist/tools/memory.delete.js.map +1 -1
  121. package/dist/tools/memory.recap.d.ts.map +1 -1
  122. package/dist/tools/memory.recap.js +24 -1
  123. package/dist/tools/memory.recap.js.map +1 -1
  124. package/dist/tools/memory.search.d.ts.map +1 -1
  125. package/dist/tools/memory.search.js +16 -1
  126. package/dist/tools/memory.search.js.map +1 -1
  127. package/dist/tools/memory.store.d.ts.map +1 -1
  128. package/dist/tools/memory.store.js +31 -1
  129. package/dist/tools/memory.store.js.map +1 -1
  130. package/dist/tools/memory.summarize.d.ts.map +1 -1
  131. package/dist/tools/memory.summarize.js +19 -1
  132. package/dist/tools/memory.summarize.js.map +1 -1
  133. package/dist/tools/memory.synthesize.d.ts +14 -0
  134. package/dist/tools/memory.synthesize.d.ts.map +1 -0
  135. package/dist/tools/memory.synthesize.js +227 -0
  136. package/dist/tools/memory.synthesize.js.map +1 -0
  137. package/dist/tools/memory.update.d.ts.map +1 -1
  138. package/dist/tools/memory.update.js +19 -1
  139. package/dist/tools/memory.update.js.map +1 -1
  140. package/dist/tools/schemas.d.ts +1735 -248
  141. package/dist/tools/schemas.d.ts.map +1 -1
  142. package/dist/tools/schemas.js +471 -4
  143. package/dist/tools/schemas.js.map +1 -1
  144. package/dist/tools/task.bulk-manage.d.ts +1 -7
  145. package/dist/tools/task.bulk-manage.d.ts.map +1 -1
  146. package/dist/tools/task.bulk-manage.js +60 -15
  147. package/dist/tools/task.bulk-manage.js.map +1 -1
  148. package/dist/tools/task.manage.d.ts +12 -28
  149. package/dist/tools/task.manage.d.ts.map +1 -1
  150. package/dist/tools/task.manage.js +198 -31
  151. package/dist/tools/task.manage.js.map +1 -1
  152. package/dist/utils/completion.d.ts +2 -0
  153. package/dist/utils/completion.d.ts.map +1 -0
  154. package/dist/utils/completion.js +28 -0
  155. package/dist/utils/completion.js.map +1 -0
  156. package/dist/utils/logger.d.ts +18 -0
  157. package/dist/utils/logger.d.ts.map +1 -1
  158. package/dist/utils/logger.js +101 -29
  159. package/dist/utils/logger.js.map +1 -1
  160. package/dist/utils/mcp-response.d.ts +50 -0
  161. package/dist/utils/mcp-response.d.ts.map +1 -1
  162. package/dist/utils/mcp-response.js +54 -7
  163. package/dist/utils/mcp-response.js.map +1 -1
  164. package/dist/utils/pagination.d.ts +6 -0
  165. package/dist/utils/pagination.d.ts.map +1 -0
  166. package/dist/utils/pagination.js +32 -0
  167. package/dist/utils/pagination.js.map +1 -0
  168. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,iBAAiB;;;;;iBAK5B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;EAA6H,CAAC;AAG3J,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAc5B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiB9B,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;iBAY7B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;iBAIlC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;iBAI5B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;iBAGjC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;iBAGhC,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;EAAoF,CAAC;AAClH,eAAO,MAAM,kBAAkB,aAA2B,CAAC;AAE3D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;iBAgB3B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsB5B,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;iBAMzB,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuBhC,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;iBAG3B,CAAC;AAGH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmV5B,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,iBAAiB;;;;;iBAK5B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;EAA6H,CAAC;AAG3J,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAc5B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiB9B,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;iBAY7B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;iBAIlC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;iBAI5B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;iBAGjC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;iBAGhC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;iBASjC,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;EAAoF,CAAC;AAClH,eAAO,MAAM,kBAAkB,aAA2B,CAAC;AAE3D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;iBAgB3B,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;iBAEtC,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsB5B,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;iBAOzB,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;iBAM3B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuBhC,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;iBAG3B,CAAC;AAGH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAixB5B,CAAC"}
@@ -69,6 +69,16 @@ export const MemorySummarizeSchema = z.object({
69
69
  repo: z.string().min(1),
70
70
  signals: z.array(z.string().max(200)).min(1)
71
71
  });
72
+ export const MemorySynthesizeSchema = z.object({
73
+ repo: z.string().min(1).optional(),
74
+ objective: z.string().min(5),
75
+ current_file_path: z.string().optional(),
76
+ include_summary: z.boolean().default(true),
77
+ include_tasks: z.boolean().default(true),
78
+ use_tools: z.boolean().default(true),
79
+ max_iterations: z.number().int().min(1).max(5).default(3),
80
+ max_tokens: z.number().int().min(128).max(4000).default(1200)
81
+ });
72
82
  export const TaskStatusSchema = z.enum(["backlog", "pending", "in_progress", "completed", "canceled", "blocked"]);
73
83
  export const TaskPrioritySchema = z.number().min(1).max(5);
74
84
  export const TaskCreateSchema = z.object({
@@ -88,6 +98,9 @@ export const TaskCreateSchema = z.object({
88
98
  depends_on: z.string().uuid().optional(),
89
99
  est_tokens: z.number().int().min(0).optional()
90
100
  });
101
+ export const TaskCreateInteractiveSchema = TaskCreateSchema.partial().extend({
102
+ repo: z.string().min(1).optional(),
103
+ });
91
104
  export const TaskUpdateSchema = z.object({
92
105
  repo: z.string().min(1),
93
106
  id: z.string().uuid(),
@@ -110,8 +123,16 @@ export const TaskUpdateSchema = z.object({
110
123
  }).refine((data) => Object.keys(data).length > 2, { message: "At least one field besides repo and id must be provided for update" });
111
124
  export const TaskListSchema = z.object({
112
125
  repo: z.string().min(1),
113
- status: TaskStatusSchema.optional(),
126
+ status: z.string().optional(),
114
127
  phase: z.string().optional(),
128
+ search: z.string().optional(),
129
+ limit: z.number().min(1).max(100).default(15),
130
+ offset: z.number().min(0).default(0)
131
+ });
132
+ export const TaskSearchSchema = z.object({
133
+ repo: z.string().min(1),
134
+ query: z.string().min(1),
135
+ status: z.string().optional(),
115
136
  limit: z.number().min(1).max(100).default(15),
116
137
  offset: z.number().min(0).default(0)
117
138
  });
@@ -142,9 +163,94 @@ export const TaskDeleteSchema = z.object({
142
163
  });
143
164
  // Tool definitions for MCP
144
165
  export const TOOL_DEFINITIONS = [
166
+ {
167
+ name: "memory-synthesize",
168
+ title: "Memory Synthesize",
169
+ description: "Use client sampling to synthesize a grounded answer from local memory and tasks. Best for project briefings, tradeoff summaries, and context-aware answers.",
170
+ annotations: {
171
+ readOnlyHint: true,
172
+ idempotentHint: true,
173
+ openWorldHint: false
174
+ },
175
+ execution: {
176
+ taskSupport: "optional"
177
+ },
178
+ inputSchema: {
179
+ type: "object",
180
+ properties: {
181
+ repo: { type: "string", description: "Repository name. Optional when a single MCP root is active." },
182
+ objective: { type: "string", minLength: 5, description: "Question or synthesis objective." },
183
+ current_file_path: { type: "string", description: "Optional absolute file path for workspace-local grounding." },
184
+ include_summary: { type: "boolean", default: true },
185
+ include_tasks: { type: "boolean", default: true },
186
+ use_tools: { type: "boolean", default: true, description: "Allow the sampled model to call local memory/task tools during synthesis when the client supports sampling.tools." },
187
+ max_iterations: { type: "number", minimum: 1, maximum: 5, default: 3 },
188
+ max_tokens: { type: "number", minimum: 128, maximum: 4000, default: 1200 }
189
+ },
190
+ required: ["objective"]
191
+ },
192
+ outputSchema: {
193
+ type: "object",
194
+ properties: {
195
+ repo: { type: "string" },
196
+ objective: { type: "string" },
197
+ answer: { type: "string" },
198
+ model: { type: "string" },
199
+ stopReason: { type: "string" },
200
+ iterations: { type: "number" },
201
+ toolCalls: { type: "number" }
202
+ },
203
+ required: ["repo", "objective", "answer", "iterations", "toolCalls"]
204
+ }
205
+ },
206
+ {
207
+ name: "task-create-interactive",
208
+ title: "Interactive Task Create",
209
+ description: "Create a task with MCP elicitation fallback for any missing required fields. Best when an agent knows a task is needed but still needs user confirmation for repo, title, or phase.",
210
+ annotations: {
211
+ readOnlyHint: false,
212
+ idempotentHint: false,
213
+ destructiveHint: false,
214
+ openWorldHint: false
215
+ },
216
+ inputSchema: {
217
+ type: "object",
218
+ properties: {
219
+ repo: { type: "string", description: "Repository name. Optional when it can be inferred from MCP roots or elicited from the user." },
220
+ task_code: { type: "string" },
221
+ phase: { type: "string" },
222
+ title: { type: "string", minLength: 3, maxLength: 100 },
223
+ description: { type: "string", minLength: 1 },
224
+ status: { type: "string", enum: ["backlog", "pending"], default: "backlog" },
225
+ priority: { type: "number", minimum: 1, maximum: 5, default: 3 },
226
+ agent: { type: "string" },
227
+ role: { type: "string" },
228
+ doc_path: { type: "string" }
229
+ }
230
+ },
231
+ outputSchema: {
232
+ type: "object",
233
+ properties: {
234
+ repo: { type: "string" },
235
+ task_code: { type: "string" },
236
+ phase: { type: "string" },
237
+ title: { type: "string" },
238
+ status: { type: "string" },
239
+ priority: { type: "number" }
240
+ },
241
+ required: ["repo", "task_code", "phase", "title", "status", "priority"]
242
+ }
243
+ },
145
244
  {
146
245
  name: "memory-store",
246
+ title: "Memory Store",
147
247
  description: "Store a new memory entry. Keep 'title' concise and human-readable; do not embed agent/role/date metadata in the title. Put auxiliary context into 'metadata'. Use 'tags' for tech-stack and 'is_global' for universal rules.",
248
+ annotations: {
249
+ readOnlyHint: false,
250
+ idempotentHint: false,
251
+ destructiveHint: false,
252
+ openWorldHint: false
253
+ },
148
254
  inputSchema: {
149
255
  type: "object",
150
256
  properties: {
@@ -205,11 +311,30 @@ export const TOOL_DEFINITIONS = [
205
311
  supersedes: { type: "string", format: "uuid" }
206
312
  },
207
313
  required: ["type", "title", "content", "importance", "scope", "agent", "model"]
314
+ },
315
+ outputSchema: {
316
+ type: "object",
317
+ properties: {
318
+ success: { type: "boolean" },
319
+ id: { type: "string" },
320
+ repo: { type: "string" },
321
+ type: { type: "string" },
322
+ title: { type: "string" },
323
+ error: { type: "string" },
324
+ message: { type: "string" }
325
+ },
326
+ required: ["success"]
208
327
  }
209
328
  },
210
329
  {
211
330
  name: "memory-acknowledge",
331
+ title: "Memory Acknowledge",
212
332
  description: "Acknowledge the use of a memory or report its irrelevance/contradiction. Mandatory after using memory to generate code.",
333
+ annotations: {
334
+ readOnlyHint: false,
335
+ idempotentHint: false,
336
+ openWorldHint: false
337
+ },
213
338
  inputSchema: {
214
339
  type: "object",
215
340
  properties: {
@@ -218,11 +343,27 @@ export const TOOL_DEFINITIONS = [
218
343
  application_context: { type: "string", minLength: 10 }
219
344
  },
220
345
  required: ["memory_id", "status"]
346
+ },
347
+ outputSchema: {
348
+ type: "object",
349
+ properties: {
350
+ success: { type: "boolean" },
351
+ id: { type: "string" },
352
+ status: { type: "string" }
353
+ },
354
+ required: ["success", "id", "status"]
221
355
  }
222
356
  },
223
357
  {
224
358
  name: "memory-update",
359
+ title: "Memory Update",
225
360
  description: "Update an existing memory entry. Keep 'title' concise and move agent/role/date or claim context into 'metadata' instead of the title.",
361
+ annotations: {
362
+ readOnlyHint: false,
363
+ idempotentHint: false,
364
+ destructiveHint: false,
365
+ openWorldHint: false
366
+ },
226
367
  inputSchema: {
227
368
  type: "object",
228
369
  properties: {
@@ -238,11 +379,30 @@ export const TOOL_DEFINITIONS = [
238
379
  is_global: { type: "boolean" }
239
380
  },
240
381
  required: ["id"]
382
+ },
383
+ outputSchema: {
384
+ type: "object",
385
+ properties: {
386
+ success: { type: "boolean" },
387
+ id: { type: "string" },
388
+ repo: { type: "string" },
389
+ updatedFields: {
390
+ type: "array",
391
+ items: { type: "string" }
392
+ }
393
+ },
394
+ required: ["success", "id", "repo", "updatedFields"]
241
395
  }
242
396
  },
243
397
  {
244
398
  name: "memory-search",
399
+ title: "Memory Search",
245
400
  description: "Search for relevant memories. Use 'current_tags' to find tech-stack specific knowledge from other projects.",
401
+ annotations: {
402
+ readOnlyHint: true,
403
+ idempotentHint: true,
404
+ openWorldHint: false
405
+ },
246
406
  inputSchema: {
247
407
  type: "object",
248
408
  properties: {
@@ -264,11 +424,39 @@ export const TOOL_DEFINITIONS = [
264
424
  include_archived: { type: "boolean", default: false }
265
425
  },
266
426
  required: ["query", "repo"]
427
+ },
428
+ outputSchema: {
429
+ type: "object",
430
+ properties: {
431
+ query: { type: "string" },
432
+ recapContext: { type: "string" },
433
+ results: {
434
+ type: "array",
435
+ items: {
436
+ type: "object",
437
+ properties: {
438
+ id: { type: "string" },
439
+ type: { type: "string" },
440
+ title: { type: "string" },
441
+ content: { type: "string" },
442
+ importance: { type: "number" }
443
+ },
444
+ required: ["id", "type", "content", "importance"]
445
+ }
446
+ }
447
+ },
448
+ required: ["query", "results"]
267
449
  }
268
450
  },
269
451
  {
270
452
  name: "memory-summarize",
453
+ title: "Memory Summarize",
271
454
  description: "Update the summary for a repository",
455
+ annotations: {
456
+ readOnlyHint: false,
457
+ idempotentHint: false,
458
+ openWorldHint: false
459
+ },
272
460
  inputSchema: {
273
461
  type: "object",
274
462
  properties: {
@@ -281,22 +469,55 @@ export const TOOL_DEFINITIONS = [
281
469
  }
282
470
  },
283
471
  required: ["repo", "signals"]
472
+ },
473
+ outputSchema: {
474
+ type: "object",
475
+ properties: {
476
+ success: { type: "boolean" },
477
+ repo: { type: "string" },
478
+ summary: { type: "string" },
479
+ signalCount: { type: "number" }
480
+ },
481
+ required: ["success", "repo", "summary", "signalCount"]
284
482
  }
285
483
  },
286
484
  {
287
485
  name: "memory-delete",
486
+ title: "Memory Delete",
288
487
  description: "Soft-delete a memory entry (remove from active use)",
488
+ annotations: {
489
+ readOnlyHint: false,
490
+ idempotentHint: false,
491
+ destructiveHint: true,
492
+ openWorldHint: false
493
+ },
289
494
  inputSchema: {
290
495
  type: "object",
291
496
  properties: {
292
497
  id: { type: "string", format: "uuid", description: "Memory entry ID to delete" }
293
498
  },
294
499
  required: ["id"]
500
+ },
501
+ outputSchema: {
502
+ type: "object",
503
+ properties: {
504
+ success: { type: "boolean" },
505
+ id: { type: "string" },
506
+ repo: { type: "string" }
507
+ },
508
+ required: ["success", "id", "repo"]
295
509
  }
296
510
  },
297
511
  {
298
512
  name: "memory-bulk-delete",
513
+ title: "Memory Bulk Delete",
299
514
  description: "Delete multiple memory entries at once.",
515
+ annotations: {
516
+ readOnlyHint: false,
517
+ idempotentHint: false,
518
+ destructiveHint: true,
519
+ openWorldHint: false
520
+ },
300
521
  inputSchema: {
301
522
  type: "object",
302
523
  properties: {
@@ -304,11 +525,30 @@ export const TOOL_DEFINITIONS = [
304
525
  ids: { type: "array", items: { type: "string", format: "uuid" }, minItems: 1, description: "Array of memory IDs to delete" }
305
526
  },
306
527
  required: ["repo", "ids"]
528
+ },
529
+ outputSchema: {
530
+ type: "object",
531
+ properties: {
532
+ success: { type: "boolean" },
533
+ repo: { type: "string" },
534
+ deletedCount: { type: "number" },
535
+ ids: {
536
+ type: "array",
537
+ items: { type: "string" }
538
+ }
539
+ },
540
+ required: ["success", "repo", "deletedCount", "ids"]
307
541
  }
308
542
  },
309
543
  {
310
544
  name: "memory-recap",
545
+ title: "Memory Recap",
311
546
  description: "Get the last 20 memories from a repository for context",
547
+ annotations: {
548
+ readOnlyHint: true,
549
+ idempotentHint: true,
550
+ openWorldHint: false
551
+ },
312
552
  inputSchema: {
313
553
  type: "object",
314
554
  properties: {
@@ -328,11 +568,57 @@ export const TOOL_DEFINITIONS = [
328
568
  }
329
569
  },
330
570
  required: ["repo"]
571
+ },
572
+ outputSchema: {
573
+ type: "object",
574
+ properties: {
575
+ repo: { type: "string" },
576
+ count: { type: "number" },
577
+ total: { type: "number" },
578
+ offset: { type: "number" },
579
+ summary: { type: "string" },
580
+ memories: {
581
+ type: "array",
582
+ items: {
583
+ type: "object",
584
+ properties: {
585
+ number: { type: "number" },
586
+ id: { type: "string" },
587
+ type: { type: "string" },
588
+ importance: { type: "number" },
589
+ preview: { type: "string" },
590
+ created_at: { type: "string" }
591
+ },
592
+ required: ["number", "id", "type", "importance", "preview", "created_at"]
593
+ }
594
+ },
595
+ tasks: {
596
+ type: "array",
597
+ items: {
598
+ type: "object",
599
+ properties: {
600
+ id: { type: "string" },
601
+ task_code: { type: "string" },
602
+ title: { type: "string" },
603
+ status: { type: "string" },
604
+ priority: { type: "number" }
605
+ },
606
+ required: ["id", "task_code", "title", "status", "priority"]
607
+ }
608
+ }
609
+ },
610
+ required: ["repo", "count", "total", "offset", "memories", "tasks", "summary"]
331
611
  }
332
612
  },
333
613
  {
334
614
  name: "task-create",
615
+ title: "Task Create",
335
616
  description: "Create a new task in a repository. task_code must be unique within the repository. 'est_tokens' is optional during planning/creation.",
617
+ annotations: {
618
+ readOnlyHint: false,
619
+ idempotentHint: false,
620
+ openWorldHint: false
621
+ },
336
622
  inputSchema: {
337
623
  type: "object",
338
624
  properties: {
@@ -353,11 +639,31 @@ export const TOOL_DEFINITIONS = [
353
639
  est_tokens: { type: "number", minimum: 0, description: "Estimated tokens budget for this task" }
354
640
  },
355
641
  required: ["repo", "task_code", "phase", "title", "description", "status"]
642
+ },
643
+ outputSchema: {
644
+ type: "object",
645
+ properties: {
646
+ success: { type: "boolean" },
647
+ id: { type: "string" },
648
+ repo: { type: "string" },
649
+ task_code: { type: "string" },
650
+ phase: { type: "string" },
651
+ title: { type: "string" },
652
+ status: { type: "string" },
653
+ priority: { type: "number" }
654
+ },
655
+ required: ["success", "id", "repo", "task_code", "phase", "title", "status", "priority"]
356
656
  }
357
657
  },
358
658
  {
359
659
  name: "task-update",
660
+ title: "Task Update",
360
661
  description: "Update an existing task. Provide only the fields that need to be changed. MANDATORY WORKFLOW: You cannot move a task from 'pending' or 'blocked' directly to 'completed'. You MUST move it to 'in_progress' first. When changing status to 'completed', include 'est_tokens' with the estimated total tokens actually used for the task.",
662
+ annotations: {
663
+ readOnlyHint: false,
664
+ idempotentHint: false,
665
+ openWorldHint: false
666
+ },
361
667
  inputSchema: {
362
668
  type: "object",
363
669
  properties: {
@@ -381,11 +687,33 @@ export const TOOL_DEFINITIONS = [
381
687
  est_tokens: { type: "number", minimum: 0, description: "Estimated total tokens actually used for this task. Required when status changes to 'completed'." }
382
688
  },
383
689
  required: ["repo", "id"]
690
+ },
691
+ outputSchema: {
692
+ type: "object",
693
+ properties: {
694
+ success: { type: "boolean" },
695
+ id: { type: "string" },
696
+ repo: { type: "string" },
697
+ status: { type: "string" },
698
+ archivedToMemory: { type: "boolean" },
699
+ updatedFields: {
700
+ type: "array",
701
+ items: { type: "string" }
702
+ }
703
+ },
704
+ required: ["success", "id", "repo", "status", "archivedToMemory", "updatedFields"]
384
705
  }
385
706
  },
386
707
  {
387
708
  name: "task-delete",
709
+ title: "Task Delete",
388
710
  description: "Delete a task from a repository.",
711
+ annotations: {
712
+ readOnlyHint: false,
713
+ idempotentHint: false,
714
+ destructiveHint: true,
715
+ openWorldHint: false
716
+ },
389
717
  inputSchema: {
390
718
  type: "object",
391
719
  properties: {
@@ -393,11 +721,26 @@ export const TOOL_DEFINITIONS = [
393
721
  id: { type: "string", format: "uuid", description: "Task ID" }
394
722
  },
395
723
  required: ["repo", "id"]
724
+ },
725
+ outputSchema: {
726
+ type: "object",
727
+ properties: {
728
+ success: { type: "boolean" },
729
+ id: { type: "string" },
730
+ repo: { type: "string" }
731
+ },
732
+ required: ["success", "id", "repo"]
396
733
  }
397
734
  },
398
735
  {
399
736
  name: "task-list",
400
- description: "List tasks for a repository to understand current progress and next steps. MANDATORY: Always call this at the start of a session to sync with other agents.",
737
+ title: "Task List",
738
+ description: "List or search tasks for a repository. Use 'search' to filter by code, title, or description. Use 'status' (comma-separated) to filter by status (backlog, pending, in_progress, completed, canceled, blocked). Defaults to active tasks.",
739
+ annotations: {
740
+ readOnlyHint: true,
741
+ idempotentHint: true,
742
+ openWorldHint: false
743
+ },
401
744
  inputSchema: {
402
745
  type: "object",
403
746
  properties: {
@@ -407,13 +750,16 @@ export const TOOL_DEFINITIONS = [
407
750
  },
408
751
  status: {
409
752
  type: "string",
410
- enum: ["pending", "in_progress", "completed", "canceled", "blocked"],
411
- description: "Filter by status"
753
+ description: "Filter by status (e.g. 'pending,in_progress' or 'completed'). Defaults to active tasks if omitted."
412
754
  },
413
755
  phase: {
414
756
  type: "string",
415
757
  description: "Filter by phase"
416
758
  },
759
+ search: {
760
+ type: "string",
761
+ description: "Search query to filter by task code, title, or description"
762
+ },
417
763
  limit: {
418
764
  type: "number",
419
765
  minimum: 1,
@@ -429,11 +775,113 @@ export const TOOL_DEFINITIONS = [
429
775
  }
430
776
  },
431
777
  required: ["repo"]
778
+ },
779
+ outputSchema: {
780
+ type: "object",
781
+ properties: {
782
+ repo: { type: "string" },
783
+ count: { type: "number" },
784
+ offset: { type: "number" },
785
+ limit: { type: "number" },
786
+ tasks: {
787
+ type: "array",
788
+ items: {
789
+ type: "object",
790
+ properties: {
791
+ id: { type: "string" },
792
+ repo: { type: "string" },
793
+ task_code: { type: "string" },
794
+ phase: { type: "string" },
795
+ title: { type: "string" },
796
+ description: { type: "string" },
797
+ status: { type: "string" },
798
+ priority: { type: "number" }
799
+ },
800
+ required: ["id", "repo", "task_code", "phase", "title", "description", "status", "priority"]
801
+ }
802
+ }
803
+ },
804
+ required: ["repo", "count", "offset", "limit", "tasks"]
805
+ }
806
+ },
807
+ {
808
+ name: "task-search",
809
+ title: "Task Search",
810
+ description: "Search for tasks by code, title, or description across any status.",
811
+ annotations: {
812
+ readOnlyHint: true,
813
+ idempotentHint: true,
814
+ openWorldHint: false
815
+ },
816
+ inputSchema: {
817
+ type: "object",
818
+ properties: {
819
+ repo: {
820
+ type: "string",
821
+ description: "Repository name"
822
+ },
823
+ query: {
824
+ type: "string",
825
+ description: "Search query"
826
+ },
827
+ status: {
828
+ type: "string",
829
+ description: "Optional status filter (comma-separated). Defaults to 'all' if omitted."
830
+ },
831
+ limit: {
832
+ type: "number",
833
+ minimum: 1,
834
+ maximum: 100,
835
+ default: 15,
836
+ description: "Maximum number of tasks to return"
837
+ },
838
+ offset: {
839
+ type: "number",
840
+ minimum: 0,
841
+ default: 0,
842
+ description: "Offset for pagination"
843
+ }
844
+ },
845
+ required: ["repo", "query"]
846
+ },
847
+ outputSchema: {
848
+ type: "object",
849
+ properties: {
850
+ repo: { type: "string" },
851
+ count: { type: "number" },
852
+ offset: { type: "number" },
853
+ limit: { type: "number" },
854
+ tasks: {
855
+ type: "array",
856
+ items: {
857
+ type: "object",
858
+ properties: {
859
+ id: { type: "string" },
860
+ repo: { type: "string" },
861
+ task_code: { type: "string" },
862
+ phase: { type: "string" },
863
+ title: { type: "string" },
864
+ description: { type: "string" },
865
+ status: { type: "string" },
866
+ priority: { type: "number" }
867
+ },
868
+ required: ["id", "repo", "task_code", "phase", "title", "description", "status", "priority"]
869
+ }
870
+ }
871
+ },
872
+ required: ["repo", "count", "offset", "limit", "tasks"]
432
873
  }
433
874
  },
434
875
  {
435
876
  name: "task-bulk-manage",
877
+ title: "Task Bulk Manage",
436
878
  description: "Perform bulk operations on tasks (e.g., bulk creation, bulk deletion). For bulk_create, 'est_tokens' is optional and can be filled later when the task is completed.",
879
+ annotations: {
880
+ readOnlyHint: false,
881
+ idempotentHint: false,
882
+ destructiveHint: false,
883
+ openWorldHint: false
884
+ },
437
885
  inputSchema: {
438
886
  type: "object",
439
887
  properties: {
@@ -478,6 +926,25 @@ export const TOOL_DEFINITIONS = [
478
926
  }
479
927
  },
480
928
  required: ["action", "repo"]
929
+ },
930
+ outputSchema: {
931
+ type: "object",
932
+ properties: {
933
+ success: { type: "boolean" },
934
+ action: { type: "string" },
935
+ repo: { type: "string" },
936
+ createdCount: { type: "number" },
937
+ deletedCount: { type: "number" },
938
+ taskCodes: {
939
+ type: "array",
940
+ items: { type: "string" }
941
+ },
942
+ ids: {
943
+ type: "array",
944
+ items: { type: "string" }
945
+ }
946
+ },
947
+ required: ["success", "action", "repo"]
481
948
  }
482
949
  }
483
950
  ];