@vheins/local-memory-mcp 0.19.14 → 0.19.16
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.
|
@@ -1748,7 +1748,7 @@ var TaskEntity = class extends BaseEntity {
|
|
|
1748
1748
|
handleDuplicateTaskCode(err, taskCode, repo) {
|
|
1749
1749
|
if (isSqliteError(err) && err.code === "SQLITE_CONSTRAINT_UNIQUE") {
|
|
1750
1750
|
throw new Error(
|
|
1751
|
-
`Duplicate task_code: '${taskCode}' already exists in repository '${repo}'. The task_code must be unique within the repository.`
|
|
1751
|
+
`Duplicate task_code: '${taskCode}' already exists in repository '${repo}'. The task_code must be unique within the repository. Omit task_code to auto-generate a new unique code.`
|
|
1752
1752
|
);
|
|
1753
1753
|
}
|
|
1754
1754
|
throw err;
|
|
@@ -4442,7 +4442,10 @@ var TASK_TOOL_DEFINITIONS = [
|
|
|
4442
4442
|
type: "string",
|
|
4443
4443
|
description: "Repository/project name (e.g., 'local-memory-mcp'). Auto-inferred from session when omitted."
|
|
4444
4444
|
},
|
|
4445
|
-
task_code: {
|
|
4445
|
+
task_code: {
|
|
4446
|
+
type: "string",
|
|
4447
|
+
description: "Unique task code (e.g. TASK-001, REFACTOR-2). Optional \u2014 auto-generated as TASK-xxx if omitted."
|
|
4448
|
+
},
|
|
4446
4449
|
phase: { type: "string", description: "Project phase (Required for single task)" },
|
|
4447
4450
|
title: {
|
|
4448
4451
|
type: "string",
|
|
@@ -6611,19 +6614,19 @@ var MemoryScopeSchema = z2.object({
|
|
|
6611
6614
|
});
|
|
6612
6615
|
var MemoryTypeSchema = z2.enum(["code_fact", "decision", "mistake", "pattern", "task_archive"]);
|
|
6613
6616
|
var TaskStatusSchema = z2.enum(["backlog", "pending", "in_progress", "completed", "canceled", "blocked"]);
|
|
6614
|
-
var TaskPrioritySchema = z2.number().min(1).max(5);
|
|
6617
|
+
var TaskPrioritySchema = z2.coerce.number().min(1).max(5);
|
|
6615
6618
|
var HandoffStatusSchema = z2.enum(["pending", "accepted", "rejected", "expired"]);
|
|
6616
6619
|
var SingleMemorySchema = z2.object({
|
|
6617
6620
|
code: z2.string().max(20).optional(),
|
|
6618
6621
|
type: MemoryTypeSchema,
|
|
6619
6622
|
title: z2.string().min(3).max(255),
|
|
6620
6623
|
content: z2.string().min(10),
|
|
6621
|
-
importance: z2.number().min(1).max(5),
|
|
6624
|
+
importance: z2.coerce.number().min(1).max(5),
|
|
6622
6625
|
agent: z2.string().min(1),
|
|
6623
6626
|
role: z2.string().optional().default("unknown"),
|
|
6624
6627
|
model: z2.string().min(1),
|
|
6625
6628
|
scope: MemoryScopeSchema,
|
|
6626
|
-
ttlDays: z2.number().min(1).optional(),
|
|
6629
|
+
ttlDays: z2.coerce.number().min(1).optional(),
|
|
6627
6630
|
supersedes: z2.string().optional(),
|
|
6628
6631
|
tags: z2.array(z2.string()).optional(),
|
|
6629
6632
|
metadata: z2.record(z2.string(), z2.unknown()).optional(),
|
|
@@ -6676,12 +6679,12 @@ var MemoryStoreSchema = z3.object({
|
|
|
6676
6679
|
type: MemoryTypeSchema,
|
|
6677
6680
|
title: z3.string().min(3).max(255),
|
|
6678
6681
|
content: z3.string().min(10),
|
|
6679
|
-
importance: z3.number().min(1).max(5),
|
|
6682
|
+
importance: z3.coerce.number().min(1).max(5),
|
|
6680
6683
|
agent: z3.string().min(1),
|
|
6681
6684
|
role: z3.string().optional().default("unknown"),
|
|
6682
6685
|
model: z3.string().min(1),
|
|
6683
6686
|
scope: MemoryScopeSchema,
|
|
6684
|
-
ttlDays: z3.number().min(1).optional(),
|
|
6687
|
+
ttlDays: z3.coerce.number().min(1).optional(),
|
|
6685
6688
|
supersedes: z3.string().optional(),
|
|
6686
6689
|
tags: z3.array(z3.string()).optional(),
|
|
6687
6690
|
metadata: z3.record(z3.string(), z3.unknown()).optional(),
|
|
@@ -6697,7 +6700,7 @@ var MemoryUpdateSchema = z3.object({
|
|
|
6697
6700
|
type: MemoryTypeSchema.optional(),
|
|
6698
6701
|
title: z3.string().min(3).max(255).optional(),
|
|
6699
6702
|
content: z3.string().min(10).optional(),
|
|
6700
|
-
importance: z3.number().min(1).max(5).optional(),
|
|
6703
|
+
importance: z3.coerce.number().min(1).max(5).optional(),
|
|
6701
6704
|
agent: z3.string().optional(),
|
|
6702
6705
|
role: z3.string().optional(),
|
|
6703
6706
|
status: z3.enum(["active", "archived"]).optional(),
|
|
@@ -6719,9 +6722,9 @@ var MemorySearchSchema = z3.object({
|
|
|
6719
6722
|
owner: z3.string().min(1),
|
|
6720
6723
|
repo: z3.string().min(1).transform(normalizeRepo),
|
|
6721
6724
|
types: z3.array(MemoryTypeSchema).optional(),
|
|
6722
|
-
minImportance: z3.number().min(1).max(5).optional(),
|
|
6723
|
-
limit: z3.number().min(1).max(100).default(5),
|
|
6724
|
-
offset: z3.number().min(0).default(0),
|
|
6725
|
+
minImportance: z3.coerce.number().min(1).max(5).optional(),
|
|
6726
|
+
limit: z3.coerce.number().min(1).max(100).default(5),
|
|
6727
|
+
offset: z3.coerce.number().min(0).default(0),
|
|
6725
6728
|
includeRecap: z3.boolean().default(false),
|
|
6726
6729
|
current_file_path: z3.string().optional(),
|
|
6727
6730
|
include_archived: z3.boolean().default(false),
|
|
@@ -6743,8 +6746,8 @@ var MemoryAcknowledgeSchema = z3.object({
|
|
|
6743
6746
|
var MemoryRecapSchema = z3.object({
|
|
6744
6747
|
owner: z3.string().min(1, "owner is required \u2014 provide it explicitly or configure MCP workspace roots"),
|
|
6745
6748
|
repo: z3.string().min(1, "repo is required \u2014 provide it explicitly or configure MCP workspace roots").transform(normalizeRepo),
|
|
6746
|
-
limit: z3.number().min(1).max(50).default(20),
|
|
6747
|
-
offset: z3.number().min(0).default(0),
|
|
6749
|
+
limit: z3.coerce.number().min(1).max(50).default(20),
|
|
6750
|
+
offset: z3.coerce.number().min(0).default(0),
|
|
6748
6751
|
structured: z3.boolean().default(false)
|
|
6749
6752
|
});
|
|
6750
6753
|
var MemoryDeleteSchema = z3.object({
|
|
@@ -6784,8 +6787,8 @@ var MemorySynthesizeSchema = z3.object({
|
|
|
6784
6787
|
include_summary: z3.boolean().default(true),
|
|
6785
6788
|
include_tasks: z3.boolean().default(true),
|
|
6786
6789
|
use_tools: z3.boolean().default(true),
|
|
6787
|
-
max_iterations: z3.number().int().min(1).max(5).default(3),
|
|
6788
|
-
max_tokens: z3.number().int().min(128).max(4e3).default(1200),
|
|
6790
|
+
max_iterations: z3.coerce.number().int().min(1).max(5).default(3),
|
|
6791
|
+
max_tokens: z3.coerce.number().int().min(128).max(4e3).default(1200),
|
|
6789
6792
|
structured: z3.boolean().default(false)
|
|
6790
6793
|
});
|
|
6791
6794
|
|
|
@@ -6851,7 +6854,7 @@ var SingleTaskCreateSchema = z4.object({
|
|
|
6851
6854
|
metadata: TaskMetadataSchema,
|
|
6852
6855
|
parent_id: z4.string().optional(),
|
|
6853
6856
|
depends_on: z4.string().optional(),
|
|
6854
|
-
est_tokens: z4.number().int().min(0).optional()
|
|
6857
|
+
est_tokens: z4.coerce.number().int().min(0).optional()
|
|
6855
6858
|
});
|
|
6856
6859
|
var TaskStatusListSchema = z4.string().refine(
|
|
6857
6860
|
(val) => {
|
|
@@ -6880,7 +6883,7 @@ var TaskCreateSchema = z4.object({
|
|
|
6880
6883
|
metadata: z4.record(z4.string(), z4.unknown()).optional(),
|
|
6881
6884
|
parent_id: z4.string().optional(),
|
|
6882
6885
|
depends_on: z4.string().optional(),
|
|
6883
|
-
est_tokens: z4.number().int().min(0).optional(),
|
|
6886
|
+
est_tokens: z4.coerce.number().int().min(0).optional(),
|
|
6884
6887
|
// Allow bulk tasks
|
|
6885
6888
|
tasks: z4.array(SingleTaskCreateSchema).min(1).optional(),
|
|
6886
6889
|
structured: z4.boolean().default(false)
|
|
@@ -6918,7 +6921,7 @@ var TaskUpdateSchema = z4.object({
|
|
|
6918
6921
|
suggested_skills: z4.array(z4.string()).optional(),
|
|
6919
6922
|
parent_id: z4.string().optional(),
|
|
6920
6923
|
depends_on: z4.string().optional(),
|
|
6921
|
-
est_tokens: z4.number().int().min(0).optional(),
|
|
6924
|
+
est_tokens: z4.coerce.number().int().min(0).optional(),
|
|
6922
6925
|
commit_id: z4.string().optional(),
|
|
6923
6926
|
changed_files: z4.array(z4.string()).optional(),
|
|
6924
6927
|
force: z4.boolean().optional(),
|
|
@@ -6937,8 +6940,8 @@ var TaskListSchema = z4.object({
|
|
|
6937
6940
|
status: TaskStatusListSchema.default("backlog,pending,in_progress,blocked"),
|
|
6938
6941
|
phase: z4.string().optional(),
|
|
6939
6942
|
query: z4.string().optional(),
|
|
6940
|
-
limit: z4.number().min(1).max(100).default(15),
|
|
6941
|
-
offset: z4.number().min(0).default(0),
|
|
6943
|
+
limit: z4.coerce.number().min(1).max(100).default(15),
|
|
6944
|
+
offset: z4.coerce.number().min(0).default(0),
|
|
6942
6945
|
structured: z4.boolean().default(false)
|
|
6943
6946
|
});
|
|
6944
6947
|
var TaskSearchSchema = z4.object({
|
|
@@ -6947,9 +6950,9 @@ var TaskSearchSchema = z4.object({
|
|
|
6947
6950
|
query: z4.string().min(1),
|
|
6948
6951
|
status: z4.string().optional(),
|
|
6949
6952
|
phase: z4.string().optional(),
|
|
6950
|
-
priority: z4.number().min(1).max(5).optional(),
|
|
6951
|
-
limit: z4.number().min(1).max(100).default(10),
|
|
6952
|
-
offset: z4.number().min(0).default(0),
|
|
6953
|
+
priority: z4.coerce.number().min(1).max(5).optional(),
|
|
6954
|
+
limit: z4.coerce.number().min(1).max(100).default(10),
|
|
6955
|
+
offset: z4.coerce.number().min(0).default(0),
|
|
6953
6956
|
structured: z4.boolean().default(false)
|
|
6954
6957
|
});
|
|
6955
6958
|
var TaskDeleteSchema = z4.object({
|
|
@@ -7009,8 +7012,8 @@ var HandoffListSchema = z5.object({
|
|
|
7009
7012
|
status: HandoffStatusSchema.optional(),
|
|
7010
7013
|
from_agent: z5.string().min(1).optional(),
|
|
7011
7014
|
to_agent: z5.string().min(1).optional(),
|
|
7012
|
-
limit: z5.number().min(1).max(100).default(20),
|
|
7013
|
-
offset: z5.number().min(0).default(0),
|
|
7015
|
+
limit: z5.coerce.number().min(1).max(100).default(20),
|
|
7016
|
+
offset: z5.coerce.number().min(0).default(0),
|
|
7014
7017
|
structured: z5.boolean().default(false)
|
|
7015
7018
|
});
|
|
7016
7019
|
var TaskClaimSchema = z5.object({
|
|
@@ -7032,8 +7035,8 @@ var ClaimListSchema = z5.object({
|
|
|
7032
7035
|
repo: z5.string().transform(normalizeRepo).optional().default(""),
|
|
7033
7036
|
agent: z5.string().min(1).optional(),
|
|
7034
7037
|
active_only: z5.boolean().default(true),
|
|
7035
|
-
limit: z5.number().min(1).max(100).default(20),
|
|
7036
|
-
offset: z5.number().min(0).default(0),
|
|
7038
|
+
limit: z5.coerce.number().min(1).max(100).default(20),
|
|
7039
|
+
offset: z5.coerce.number().min(0).default(0),
|
|
7037
7040
|
structured: z5.boolean().default(false)
|
|
7038
7041
|
});
|
|
7039
7042
|
var ClaimReleaseSchema = z5.object({
|
|
@@ -7113,8 +7116,8 @@ var StandardSearchSchema = z6.object({
|
|
|
7113
7116
|
owner: z6.string().optional().default(""),
|
|
7114
7117
|
repo: z6.string().transform(normalizeRepo).optional(),
|
|
7115
7118
|
is_global: z6.boolean().optional(),
|
|
7116
|
-
limit: z6.number().min(1).max(100).default(20),
|
|
7117
|
-
offset: z6.number().min(0).default(0),
|
|
7119
|
+
limit: z6.coerce.number().min(1).max(100).default(20),
|
|
7120
|
+
offset: z6.coerce.number().min(0).default(0),
|
|
7118
7121
|
structured: z6.boolean().default(false)
|
|
7119
7122
|
});
|
|
7120
7123
|
var StandardDeleteSchema = z6.object({
|
|
@@ -7148,7 +7151,7 @@ var AgentContextSchema = z7.object({
|
|
|
7148
7151
|
repo: z7.string().min(1),
|
|
7149
7152
|
objective: z7.string().optional(),
|
|
7150
7153
|
type_filter: z7.enum(["code_fact", "decision", "mistake", "pattern", "task_archive"]).optional(),
|
|
7151
|
-
limit: z7.number().min(1).max(100).default(5),
|
|
7154
|
+
limit: z7.coerce.number().min(1).max(100).default(5),
|
|
7152
7155
|
structured: z7.boolean().default(false)
|
|
7153
7156
|
});
|
|
7154
7157
|
var DecisionLogSchema = z7.object({
|
package/dist/dashboard/server.js
CHANGED
package/dist/mcp/server.js
CHANGED
|
@@ -62,7 +62,7 @@ import {
|
|
|
62
62
|
parseRepoInput,
|
|
63
63
|
rankCompletionValues,
|
|
64
64
|
toContextSlug
|
|
65
|
-
} from "../chunk-
|
|
65
|
+
} from "../chunk-ZG2WJU7H.js";
|
|
66
66
|
|
|
67
67
|
// src/mcp/server.ts
|
|
68
68
|
import { serveStdio } from "@modelcontextprotocol/server/stdio";
|
|
@@ -75,8 +75,8 @@ import path from "path";
|
|
|
75
75
|
import { fileURLToPath } from "url";
|
|
76
76
|
var __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
77
77
|
var pkgVersion = "0.1.0";
|
|
78
|
-
if ("0.19.
|
|
79
|
-
pkgVersion = "0.19.
|
|
78
|
+
if ("0.19.16") {
|
|
79
|
+
pkgVersion = "0.19.16";
|
|
80
80
|
} else {
|
|
81
81
|
let searchDir = __dirname;
|
|
82
82
|
for (let i = 0; i < 5; i++) {
|
|
@@ -2391,7 +2391,9 @@ async function handleTaskCreate(args, storage) {
|
|
|
2391
2391
|
throw new Error(`Duplicate task_code in request: '${code}'`);
|
|
2392
2392
|
}
|
|
2393
2393
|
if (existingCodes.has(code)) {
|
|
2394
|
-
throw new Error(
|
|
2394
|
+
throw new Error(
|
|
2395
|
+
`Duplicate task_code: '${code}' already exists in repository '${repo}'. Omit task_code to auto-generate, or use task-list/task-search to find available codes.`
|
|
2396
|
+
);
|
|
2395
2397
|
}
|
|
2396
2398
|
codesInRequest.add(code);
|
|
2397
2399
|
let normalizedStatus = taskData.status || "backlog";
|
|
@@ -2472,7 +2474,9 @@ async function handleTaskCreate(args, storage) {
|
|
|
2472
2474
|
let effectiveStatus = requestedStatus || "backlog";
|
|
2473
2475
|
const resolvedCode = task_code || generateNextCode(owner ?? "", repo, "task", storage);
|
|
2474
2476
|
if (storage.tasks.isTaskCodeDuplicate(owner, repo, resolvedCode)) {
|
|
2475
|
-
throw new Error(
|
|
2477
|
+
throw new Error(
|
|
2478
|
+
`Duplicate task_code: '${resolvedCode}' already exists in repository '${repo}'. Omit task_code to auto-generate, or use task-list/task-search to find available codes.`
|
|
2479
|
+
);
|
|
2476
2480
|
}
|
|
2477
2481
|
if (requestedStatus !== "backlog" && requestedStatus !== "pending" && requestedStatus !== void 0) {
|
|
2478
2482
|
throw new Error("New tasks must be created with status 'backlog' or 'pending'.");
|