@vheins/local-memory-mcp 0.4.2 → 0.4.6
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.
- package/dist/dashboard/public/app.js +16 -7
- package/dist/dashboard/public/index.html +17 -6
- package/dist/prompts/registry.d.ts +92 -8
- package/dist/prompts/registry.d.ts.map +1 -1
- package/dist/prompts/registry.js +204 -41
- package/dist/prompts/registry.js.map +1 -1
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +18 -3
- package/dist/router.js.map +1 -1
- package/dist/storage/sqlite.d.ts.map +1 -1
- package/dist/storage/sqlite.js +23 -6
- package/dist/storage/sqlite.js.map +1 -1
- package/dist/tasks.archive.test.d.ts +2 -0
- package/dist/tasks.archive.test.d.ts.map +1 -0
- package/dist/tasks.archive.test.js +75 -0
- package/dist/tasks.archive.test.js.map +1 -0
- package/dist/tools/schemas.d.ts +12 -18
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +10 -11
- package/dist/tools/schemas.js.map +1 -1
- package/dist/tools/task.bulk-manage.d.ts +2 -1
- package/dist/tools/task.bulk-manage.d.ts.map +1 -1
- package/dist/tools/task.bulk-manage.js +20 -2
- package/dist/tools/task.bulk-manage.js.map +1 -1
- package/dist/tools/task.manage.d.ts +3 -1
- package/dist/tools/task.manage.d.ts.map +1 -1
- package/dist/tools/task.manage.js +66 -3
- package/dist/tools/task.manage.js.map +1 -1
- package/dist/tools/tasks-transition.test.js +71 -11
- package/dist/tools/tasks-transition.test.js.map +1 -1
- package/dist/tools/tasks.pending-limit-refined.test.d.ts +2 -0
- package/dist/tools/tasks.pending-limit-refined.test.d.ts.map +1 -0
- package/dist/tools/tasks.pending-limit-refined.test.js +72 -0
- package/dist/tools/tasks.pending-limit-refined.test.js.map +1 -0
- package/dist/types.d.ts +3 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -7,6 +7,7 @@ let totalItems = 0;
|
|
|
7
7
|
let selectedIds = new Set();
|
|
8
8
|
let currentPaginatedData = [];
|
|
9
9
|
let taskPagination = {
|
|
10
|
+
backlog: { page: 1, pageSize: 20, hasMore: true, loading: false },
|
|
10
11
|
todo: { page: 1, pageSize: 20, hasMore: true, loading: false },
|
|
11
12
|
in_progress: { page: 1, pageSize: 20, hasMore: true, loading: false },
|
|
12
13
|
completed: { page: 1, pageSize: 20, hasMore: true, loading: false }
|
|
@@ -637,6 +638,7 @@ async function loadStats() {
|
|
|
637
638
|
// Fill Task stats
|
|
638
639
|
if (data.taskStats) {
|
|
639
640
|
document.getElementById('totalTasks').textContent = data.taskStats.total || 0;
|
|
641
|
+
document.getElementById('backlogTasksCount').textContent = data.taskStats.backlog || 0;
|
|
640
642
|
document.getElementById('todoTasksCount').textContent = data.taskStats.todo || 0;
|
|
641
643
|
document.getElementById('inProgressTasksCount').textContent = data.taskStats.inProgress || 0;
|
|
642
644
|
document.getElementById('completedTasksCount').textContent = data.taskStats.completed || 0;
|
|
@@ -675,16 +677,19 @@ async function loadStats() {
|
|
|
675
677
|
document.getElementById('todayAvgTimeTasksCount').textContent = formatDuration(data.todayAvgDuration);
|
|
676
678
|
}
|
|
677
679
|
|
|
680
|
+
document.getElementById('backlogStatCount').textContent = data.taskStats.backlog || 0;
|
|
678
681
|
document.getElementById('todoStatCount').textContent = data.taskStats.todo || 0;
|
|
679
682
|
document.getElementById('inProgressStatCount').textContent = data.taskStats.inProgress || 0;
|
|
680
683
|
document.getElementById('completedStatCount').textContent = data.taskStats.completed || 0;
|
|
681
684
|
document.getElementById('blockedStatCount').textContent = data.taskStats.blocked || 0;
|
|
682
685
|
|
|
683
686
|
// Also update column headers
|
|
687
|
+
const backlogCountEl = document.getElementById('backlogCount');
|
|
684
688
|
const todoCountEl = document.getElementById('todoCount');
|
|
685
689
|
const inProgressCountEl = document.getElementById('inProgressCount');
|
|
686
690
|
const completedCountEl = document.getElementById('completedCount');
|
|
687
691
|
|
|
692
|
+
if (backlogCountEl) backlogCountEl.textContent = data.taskStats.backlog || 0;
|
|
688
693
|
if (todoCountEl) todoCountEl.textContent = data.taskStats.todo || 0;
|
|
689
694
|
if (inProgressCountEl) inProgressCountEl.textContent = data.taskStats.inProgress || 0;
|
|
690
695
|
if (completedCountEl) completedCountEl.textContent = data.taskStats.completed || 0;
|
|
@@ -755,6 +760,7 @@ function updateTaskStatusChart(taskStats) {
|
|
|
755
760
|
|
|
756
761
|
const isDark = document.documentElement.classList.contains('dark');
|
|
757
762
|
const counts = [
|
|
763
|
+
taskStats?.backlog || 0,
|
|
758
764
|
taskStats?.todo || 0,
|
|
759
765
|
taskStats?.inProgress || 0,
|
|
760
766
|
taskStats?.completed || 0,
|
|
@@ -764,10 +770,10 @@ function updateTaskStatusChart(taskStats) {
|
|
|
764
770
|
charts.taskStatusChart = new Chart(ctx, {
|
|
765
771
|
type: 'doughnut',
|
|
766
772
|
data: {
|
|
767
|
-
labels: ['To Do', 'In Progress', 'Completed', 'Blocked'],
|
|
773
|
+
labels: ['Backlog', 'To Do', 'In Progress', 'Completed', 'Blocked'],
|
|
768
774
|
datasets: [{
|
|
769
775
|
data: counts,
|
|
770
|
-
backgroundColor: ['#94a3b8', '#38bdf8', '#10b981', '#fb7185'],
|
|
776
|
+
backgroundColor: ['#64748b', '#94a3b8', '#38bdf8', '#10b981', '#fb7185'],
|
|
771
777
|
borderWidth: 2,
|
|
772
778
|
borderColor: isDark ? '#1e293b' : '#ffffff',
|
|
773
779
|
hoverOffset: 12
|
|
@@ -1753,16 +1759,19 @@ async function loadTasks() {
|
|
|
1753
1759
|
if (!currentRepo) return;
|
|
1754
1760
|
|
|
1755
1761
|
// Reset pagination
|
|
1762
|
+
taskPagination.backlog = { page: 1, pageSize: 20, hasMore: true, loading: false };
|
|
1756
1763
|
taskPagination.todo = { page: 1, pageSize: 20, hasMore: true, loading: false };
|
|
1757
1764
|
taskPagination.in_progress = { page: 1, pageSize: 20, hasMore: true, loading: false };
|
|
1758
1765
|
taskPagination.completed = { page: 1, pageSize: 20, hasMore: true, loading: false };
|
|
1759
1766
|
|
|
1760
1767
|
// Clear containers
|
|
1768
|
+
document.getElementById('backlogTasks').innerHTML = '';
|
|
1761
1769
|
document.getElementById('todoTasks').innerHTML = '';
|
|
1762
1770
|
document.getElementById('inProgressTasks').innerHTML = '';
|
|
1763
1771
|
document.getElementById('completedTasks').innerHTML = '';
|
|
1764
1772
|
|
|
1765
1773
|
await Promise.all([
|
|
1774
|
+
loadTaskCategory('backlog'),
|
|
1766
1775
|
loadTaskCategory('pending,blocked,canceled'),
|
|
1767
1776
|
loadTaskCategory('in_progress'),
|
|
1768
1777
|
loadTaskCategory('completed')
|
|
@@ -1772,13 +1781,13 @@ async function loadTasks() {
|
|
|
1772
1781
|
}
|
|
1773
1782
|
|
|
1774
1783
|
async function loadTaskCategory(status) {
|
|
1775
|
-
const category = (status.includes('pending') || status.includes('blocked') || status.includes('canceled')) ? 'todo' : (status === 'in_progress' ? 'in_progress' : 'completed');
|
|
1784
|
+
const category = status === 'backlog' ? 'backlog' : ((status.includes('pending') || status.includes('blocked') || status.includes('canceled')) ? 'todo' : (status === 'in_progress' ? 'in_progress' : 'completed'));
|
|
1776
1785
|
const pag = taskPagination[category];
|
|
1777
1786
|
|
|
1778
1787
|
if (!pag.hasMore || pag.loading) return;
|
|
1779
1788
|
|
|
1780
1789
|
pag.loading = true;
|
|
1781
|
-
const containerId = { todo: 'todoTasks', in_progress: 'inProgressTasks', completed: 'completedTasks' }[category];
|
|
1790
|
+
const containerId = { backlog: 'backlogTasks', todo: 'todoTasks', in_progress: 'inProgressTasks', completed: 'completedTasks' }[category];
|
|
1782
1791
|
const container = document.getElementById(containerId);
|
|
1783
1792
|
|
|
1784
1793
|
// Show loading indicator
|
|
@@ -1817,14 +1826,14 @@ async function loadTaskCategory(status) {
|
|
|
1817
1826
|
}
|
|
1818
1827
|
|
|
1819
1828
|
function setupTaskScrollListeners() {
|
|
1820
|
-
['todoTasks', 'inProgressTasks', 'completedTasks'].forEach(id => {
|
|
1829
|
+
['backlogTasks', 'todoTasks', 'inProgressTasks', 'completedTasks'].forEach(id => {
|
|
1821
1830
|
const el = document.getElementById(id);
|
|
1822
1831
|
if (!el) return;
|
|
1823
1832
|
|
|
1824
1833
|
el.onscroll = () => {
|
|
1825
1834
|
if (el.scrollTop + el.clientHeight >= el.scrollHeight - 50) {
|
|
1826
|
-
const category = id === 'todoTasks' ? 'todo' : (id === 'inProgressTasks' ? 'in_progress' : 'completed');
|
|
1827
|
-
const status = category === 'todo' ? 'pending,blocked,canceled' : (category === 'in_progress' ? 'in_progress' : 'completed');
|
|
1835
|
+
const category = id === 'backlogTasks' ? 'backlog' : (id === 'todoTasks' ? 'todo' : (id === 'inProgressTasks' ? 'in_progress' : 'completed'));
|
|
1836
|
+
const status = category === 'backlog' ? 'backlog' : (category === 'todo' ? 'pending,blocked,canceled' : (category === 'in_progress' ? 'in_progress' : 'completed'));
|
|
1828
1837
|
loadTaskCategory(status);
|
|
1829
1838
|
}
|
|
1830
1839
|
};
|
|
@@ -1107,11 +1107,15 @@
|
|
|
1107
1107
|
</div>
|
|
1108
1108
|
|
|
1109
1109
|
<!-- Task Summary Cards -->
|
|
1110
|
-
<div class="grid grid-cols-2 md:grid-cols-
|
|
1110
|
+
<div class="grid grid-cols-2 md:grid-cols-5 gap-4 mb-6">
|
|
1111
1111
|
<div class="bg-white dark:bg-gray-800 p-4 rounded-lg shadow-sm border border-indigo-100 dark:border-indigo-900/30">
|
|
1112
1112
|
<div class="text-xs text-indigo-500 dark:text-indigo-400 uppercase font-bold tracking-wider mb-1">Total Tasks</div>
|
|
1113
1113
|
<div id="totalTasks" class="text-2xl font-bold">0</div>
|
|
1114
1114
|
</div>
|
|
1115
|
+
<div class="bg-white dark:bg-gray-800 p-4 rounded-lg shadow-sm border border-gray-100 dark:border-gray-700">
|
|
1116
|
+
<div class="text-xs text-gray-500 dark:text-gray-400 uppercase font-bold tracking-wider mb-1">Backlog</div>
|
|
1117
|
+
<div id="backlogTasksCount" class="text-2xl font-bold text-gray-500">0</div>
|
|
1118
|
+
</div>
|
|
1115
1119
|
<div class="bg-white dark:bg-gray-800 p-4 rounded-lg shadow-sm border border-gray-100 dark:border-gray-700">
|
|
1116
1120
|
<div class="text-xs text-gray-500 dark:text-gray-400 uppercase font-bold tracking-wider mb-1">Task To Do</div>
|
|
1117
1121
|
<div id="todoTasksCount" class="text-2xl font-bold">0</div>
|
|
@@ -1187,6 +1191,7 @@
|
|
|
1187
1191
|
<canvas id="taskStatusChart"></canvas>
|
|
1188
1192
|
</div>
|
|
1189
1193
|
<div class="grid grid-cols-2 gap-1.5 mt-3 text-[10px]">
|
|
1194
|
+
<div class="flex items-center gap-1.5"><span class="w-2 h-2 rounded-full bg-slate-500 flex-shrink-0"></span> <span class="text-gray-500 dark:text-gray-400">Backlog:</span> <span id="backlogStatCount" class="font-bold">0</span></div>
|
|
1190
1195
|
<div class="flex items-center gap-1.5"><span class="w-2 h-2 rounded-full bg-slate-400 flex-shrink-0"></span> <span class="text-gray-500 dark:text-gray-400">To Do:</span> <span id="todoStatCount" class="font-bold">0</span></div>
|
|
1191
1196
|
<div class="flex items-center gap-1.5"><span class="w-2 h-2 rounded-full bg-sky-400 flex-shrink-0"></span> <span class="text-gray-500 dark:text-gray-400">In Progress:</span> <span id="inProgressStatCount" class="font-bold">0</span></div>
|
|
1192
1197
|
<div class="flex items-center gap-1.5"><span class="w-2 h-2 rounded-full bg-emerald-400 flex-shrink-0"></span> <span class="text-gray-500 dark:text-gray-400">Completed:</span> <span id="completedStatCount" class="font-bold">0</span></div>
|
|
@@ -1441,7 +1446,15 @@
|
|
|
1441
1446
|
</div>
|
|
1442
1447
|
</div>
|
|
1443
1448
|
|
|
1444
|
-
<div id="taskBoard" class="grid grid-cols-1 md:grid-cols-
|
|
1449
|
+
<div id="taskBoard" class="grid grid-cols-1 md:grid-cols-4 gap-6">
|
|
1450
|
+
<!-- Column: Backlog -->
|
|
1451
|
+
<div class="flex flex-col gap-4">
|
|
1452
|
+
<div class="flex items-center justify-between px-2">
|
|
1453
|
+
<h3 class="font-bold text-slate-400 uppercase tracking-wider text-xs">Backlog</h3>
|
|
1454
|
+
<span id="backlogCount" class="bg-slate-100 dark:bg-slate-800 text-slate-500 dark:text-slate-400 px-2 py-0.5 rounded-full text-[10px] font-bold">0</span>
|
|
1455
|
+
</div>
|
|
1456
|
+
<div id="backlogTasks" class="space-y-4 min-h-[200px] max-h-[70vh] overflow-y-auto pr-2 custom-scrollbar"></div>
|
|
1457
|
+
</div>
|
|
1445
1458
|
<!-- Column: Todo -->
|
|
1446
1459
|
<div class="flex flex-col gap-4">
|
|
1447
1460
|
<div class="flex items-center justify-between px-2">
|
|
@@ -1715,10 +1728,8 @@
|
|
|
1715
1728
|
<div>
|
|
1716
1729
|
<label class="block text-xs font-bold text-slate-400 uppercase mb-1">Status</label>
|
|
1717
1730
|
<select name="status" class="w-full bg-slate-50 dark:bg-slate-800 border border-slate-200 dark:border-slate-700 rounded-xl px-4 py-2.5 text-sm outline-none focus:ring-2 focus:ring-sky-500/50">
|
|
1718
|
-
<option value="
|
|
1719
|
-
<option value="
|
|
1720
|
-
<option value="completed">Completed</option>
|
|
1721
|
-
<option value="blocked">Blocked</option>
|
|
1731
|
+
<option value="backlog" selected>Backlog</option>
|
|
1732
|
+
<option value="pending">To Do</option>
|
|
1722
1733
|
</select>
|
|
1723
1734
|
</div>
|
|
1724
1735
|
</div>
|
|
@@ -48,6 +48,30 @@ export declare const PROMPTS: {
|
|
|
48
48
|
}[];
|
|
49
49
|
};
|
|
50
50
|
"import-github-issues": {
|
|
51
|
+
name: string;
|
|
52
|
+
description: string;
|
|
53
|
+
arguments: never[];
|
|
54
|
+
messages: {
|
|
55
|
+
role: string;
|
|
56
|
+
content: {
|
|
57
|
+
type: string;
|
|
58
|
+
text: string;
|
|
59
|
+
};
|
|
60
|
+
}[];
|
|
61
|
+
};
|
|
62
|
+
"project-briefing": {
|
|
63
|
+
name: string;
|
|
64
|
+
description: string;
|
|
65
|
+
arguments: never[];
|
|
66
|
+
messages: {
|
|
67
|
+
role: string;
|
|
68
|
+
content: {
|
|
69
|
+
type: string;
|
|
70
|
+
text: string;
|
|
71
|
+
};
|
|
72
|
+
}[];
|
|
73
|
+
};
|
|
74
|
+
"learning-retrospective": {
|
|
51
75
|
name: string;
|
|
52
76
|
description: string;
|
|
53
77
|
arguments: {
|
|
@@ -63,7 +87,7 @@ export declare const PROMPTS: {
|
|
|
63
87
|
};
|
|
64
88
|
}[];
|
|
65
89
|
};
|
|
66
|
-
"
|
|
90
|
+
"memory-guided-review": {
|
|
67
91
|
name: string;
|
|
68
92
|
description: string;
|
|
69
93
|
arguments: {
|
|
@@ -79,7 +103,7 @@ export declare const PROMPTS: {
|
|
|
79
103
|
};
|
|
80
104
|
}[];
|
|
81
105
|
};
|
|
82
|
-
"
|
|
106
|
+
"session-planner": {
|
|
83
107
|
name: string;
|
|
84
108
|
description: string;
|
|
85
109
|
arguments: {
|
|
@@ -95,7 +119,7 @@ export declare const PROMPTS: {
|
|
|
95
119
|
};
|
|
96
120
|
}[];
|
|
97
121
|
};
|
|
98
|
-
"
|
|
122
|
+
"tech-affinity-scout": {
|
|
99
123
|
name: string;
|
|
100
124
|
description: string;
|
|
101
125
|
arguments: {
|
|
@@ -111,7 +135,31 @@ export declare const PROMPTS: {
|
|
|
111
135
|
};
|
|
112
136
|
}[];
|
|
113
137
|
};
|
|
114
|
-
"
|
|
138
|
+
"documentation-sync": {
|
|
139
|
+
name: string;
|
|
140
|
+
description: string;
|
|
141
|
+
arguments: never[];
|
|
142
|
+
messages: {
|
|
143
|
+
role: string;
|
|
144
|
+
content: {
|
|
145
|
+
type: string;
|
|
146
|
+
text: string;
|
|
147
|
+
};
|
|
148
|
+
}[];
|
|
149
|
+
};
|
|
150
|
+
"task-memory-executor": {
|
|
151
|
+
name: string;
|
|
152
|
+
description: string;
|
|
153
|
+
arguments: never[];
|
|
154
|
+
messages: {
|
|
155
|
+
role: string;
|
|
156
|
+
content: {
|
|
157
|
+
type: string;
|
|
158
|
+
text: string;
|
|
159
|
+
};
|
|
160
|
+
}[];
|
|
161
|
+
};
|
|
162
|
+
"senior-code-review": {
|
|
115
163
|
name: string;
|
|
116
164
|
description: string;
|
|
117
165
|
arguments: {
|
|
@@ -127,7 +175,7 @@ export declare const PROMPTS: {
|
|
|
127
175
|
};
|
|
128
176
|
}[];
|
|
129
177
|
};
|
|
130
|
-
"
|
|
178
|
+
"fix-suggestion": {
|
|
131
179
|
name: string;
|
|
132
180
|
description: string;
|
|
133
181
|
arguments: {
|
|
@@ -143,7 +191,7 @@ export declare const PROMPTS: {
|
|
|
143
191
|
};
|
|
144
192
|
}[];
|
|
145
193
|
};
|
|
146
|
-
"
|
|
194
|
+
"root-cause-analysis": {
|
|
147
195
|
name: string;
|
|
148
196
|
description: string;
|
|
149
197
|
arguments: {
|
|
@@ -159,10 +207,46 @@ export declare const PROMPTS: {
|
|
|
159
207
|
};
|
|
160
208
|
}[];
|
|
161
209
|
};
|
|
162
|
-
"
|
|
210
|
+
"technical-planning": {
|
|
163
211
|
name: string;
|
|
164
212
|
description: string;
|
|
165
|
-
arguments:
|
|
213
|
+
arguments: {
|
|
214
|
+
name: string;
|
|
215
|
+
description: string;
|
|
216
|
+
required: boolean;
|
|
217
|
+
}[];
|
|
218
|
+
messages: {
|
|
219
|
+
role: string;
|
|
220
|
+
content: {
|
|
221
|
+
type: string;
|
|
222
|
+
text: string;
|
|
223
|
+
};
|
|
224
|
+
}[];
|
|
225
|
+
};
|
|
226
|
+
"security-triage": {
|
|
227
|
+
name: string;
|
|
228
|
+
description: string;
|
|
229
|
+
arguments: {
|
|
230
|
+
name: string;
|
|
231
|
+
description: string;
|
|
232
|
+
required: boolean;
|
|
233
|
+
}[];
|
|
234
|
+
messages: {
|
|
235
|
+
role: string;
|
|
236
|
+
content: {
|
|
237
|
+
type: string;
|
|
238
|
+
text: string;
|
|
239
|
+
};
|
|
240
|
+
}[];
|
|
241
|
+
};
|
|
242
|
+
"architecture-design": {
|
|
243
|
+
name: string;
|
|
244
|
+
description: string;
|
|
245
|
+
arguments: {
|
|
246
|
+
name: string;
|
|
247
|
+
description: string;
|
|
248
|
+
required: boolean;
|
|
249
|
+
}[];
|
|
166
250
|
messages: {
|
|
167
251
|
role: string;
|
|
168
252
|
content: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/prompts/registry.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/prompts/registry.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgfnB,CAAC"}
|