@danielmarbach/mnemonic-mcp 0.26.0 → 0.26.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"semantic-patch.d.ts","sourceRoot":"","sources":["../src/semantic-patch.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,gBAAgB,GACxB;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GACnB;IAAE,iBAAiB,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GACpB;IAAE,SAAS,EAAE,IAAI,CAAA;CAAE,CAAC;AAExB,MAAM,MAAM,iBAAiB,GACzB;IAAE,EAAE,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,EAAE,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,EAAE,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,EAAE,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,EAAE,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,EAAE,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,EAAE,EAAE,QAAQ,CAAA;CAAE,CAAC;AAErB,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,SAAS,EAAE,iBAAiB,CAAC;CAC9B;AA6ED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA8EvI"}
1
+ {"version":3,"file":"semantic-patch.d.ts","sourceRoot":"","sources":["../src/semantic-patch.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,gBAAgB,GACxB;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GACnB;IAAE,iBAAiB,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GACpB;IAAE,SAAS,EAAE,IAAI,CAAA;CAAE,CAAC;AAExB,MAAM,MAAM,iBAAiB,GACzB;IAAE,EAAE,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,EAAE,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,EAAE,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,EAAE,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,EAAE,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,EAAE,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,EAAE,EAAE,QAAQ,CAAA;CAAE,CAAC;AAErB,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,SAAS,EAAE,iBAAiB,CAAC;CAC9B;AA6ED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAiFvI"}
@@ -73,7 +73,10 @@ export async function applySemanticPatches(body, patches) {
73
73
  let diagnostic = `Selector not found: ${JSON.stringify(patch.selector)}`;
74
74
  if (headings.length > 0) {
75
75
  diagnostic += `\nAvailable headings:\n${headings.map((h) => ` - ${h}`).join("\n")}`;
76
- diagnostic += `\nUse exact heading text (without ## prefix), e.g.: { \"selector\": { \"heading\": \"${headings[0]}\" } }`;
76
+ diagnostic += `\nUse exact heading text (without ## prefix), e.g.: { "selector": { "heading": "${headings[0]}" } }`;
77
+ if ("heading" in patch.selector) {
78
+ diagnostic += `\nTip: use headingStartsWith for prefix matching when exact headings are uncertain.`;
79
+ }
77
80
  }
78
81
  else {
79
82
  diagnostic += "\nNo headings in document.";
@@ -1 +1 @@
1
- {"version":3,"file":"semantic-patch.js","sourceRoot":"","sources":["../src/semantic-patch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"semantic-patch.js","sourceRoot":"","sources":["../src/semantic-patch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ export interface ChangeDetectionInput {
2
+ content?: string;
3
+ originalContent: string;
4
+ title?: string;
5
+ originalTitle: string;
6
+ tags?: string[];
7
+ originalTags: string[];
8
+ lifecycle?: string;
9
+ originalLifecycle: string;
10
+ role?: string;
11
+ originalRole?: string;
12
+ roleExplicitlySet?: boolean;
13
+ alwaysLoad?: boolean;
14
+ originalAlwaysLoad?: boolean;
15
+ semanticPatchApplied?: boolean;
16
+ relatedToChanged?: boolean;
17
+ }
18
+ export declare function hasActualChanges(input: ChangeDetectionInput): boolean;
19
+ export interface FieldsModifiedInput {
20
+ patchedContent?: string;
21
+ originalContent: string;
22
+ contentExplicitlyProvided?: boolean;
23
+ semanticPatchProvided?: boolean;
24
+ newTitle: string;
25
+ originalTitle: string;
26
+ titleExplicitlyProvided?: boolean;
27
+ newLifecycle: string;
28
+ originalLifecycle: string;
29
+ lifecycleExplicitlyProvided?: boolean;
30
+ newRole?: string;
31
+ originalRole?: string;
32
+ roleExplicitlySet: boolean;
33
+ newTags: string[];
34
+ originalTags: string[];
35
+ tagsExplicitlyProvided?: boolean;
36
+ newAlwaysLoad?: boolean;
37
+ originalAlwaysLoad?: boolean;
38
+ alwaysLoadExplicitlyProvided?: boolean;
39
+ relatedToChanged?: boolean;
40
+ }
41
+ export declare function computeFieldsModified(input: FieldsModifiedInput): string[];
42
+ //# sourceMappingURL=update-detect-changes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-detect-changes.d.ts","sourceRoot":"","sources":["../src/update-detect-changes.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAerE;AAED,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAuB1E"}
@@ -0,0 +1,57 @@
1
+ export function hasActualChanges(input) {
2
+ if (input.semanticPatchApplied)
3
+ return true;
4
+ if (input.content !== undefined && input.content !== input.originalContent)
5
+ return true;
6
+ if (input.title !== undefined && input.title !== input.originalTitle)
7
+ return true;
8
+ if (input.lifecycle !== undefined && input.lifecycle !== input.originalLifecycle)
9
+ return true;
10
+ if (input.alwaysLoad !== undefined && input.alwaysLoad !== input.originalAlwaysLoad)
11
+ return true;
12
+ if (input.roleExplicitlySet && input.role !== input.originalRole)
13
+ return true;
14
+ if (input.tags !== undefined && !arraysEqual(input.tags, input.originalTags))
15
+ return true;
16
+ if (input.relatedToChanged)
17
+ return true;
18
+ return false;
19
+ }
20
+ export function computeFieldsModified(input) {
21
+ const changes = [];
22
+ if (input.semanticPatchProvided) {
23
+ changes.push("semanticPatch");
24
+ if (input.patchedContent !== undefined && input.patchedContent !== input.originalContent) {
25
+ changes.push("content");
26
+ }
27
+ }
28
+ else if (input.contentExplicitlyProvided) {
29
+ const effectiveContent = input.patchedContent ?? input.originalContent;
30
+ if (effectiveContent !== input.originalContent) {
31
+ changes.push("content");
32
+ }
33
+ }
34
+ if (input.titleExplicitlyProvided && input.newTitle !== input.originalTitle)
35
+ changes.push("title");
36
+ if (input.lifecycleExplicitlyProvided && input.newLifecycle !== input.originalLifecycle)
37
+ changes.push("lifecycle");
38
+ if (input.roleExplicitlySet && input.newRole !== input.originalRole)
39
+ changes.push("role");
40
+ if (input.tagsExplicitlyProvided && !arraysEqual(input.newTags, input.originalTags))
41
+ changes.push("tags");
42
+ if (input.alwaysLoadExplicitlyProvided && input.newAlwaysLoad !== input.originalAlwaysLoad)
43
+ changes.push("alwaysLoad");
44
+ if (input.relatedToChanged)
45
+ changes.push("relatedTo");
46
+ return changes;
47
+ }
48
+ function arraysEqual(a, b) {
49
+ if (a.length !== b.length)
50
+ return false;
51
+ for (let i = 0; i < a.length; i++) {
52
+ if (a[i] !== b[i])
53
+ return false;
54
+ }
55
+ return true;
56
+ }
57
+ //# sourceMappingURL=update-detect-changes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-detect-changes.js","sourceRoot":"","sources":["../src/update-detect-changes.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danielmarbach/mnemonic-mcp",
3
- "version": "0.26.0",
3
+ "version": "0.26.2",
4
4
  "description": "A local MCP memory server backed by markdown + JSON files, synced via git",
5
5
  "type": "module",
6
6
  "repository": {
@@ -23,6 +23,15 @@ Use `derives-from` for lineage and `follows` for sequence by default. Fall back
23
23
  - Distill when findings are scattered.
24
24
  - Link research to request root (`derives-from` preferred).
25
25
 
26
+ ### 1a. Research → Plan Handoff
27
+
28
+ Before creating a plan note:
29
+ 1. Present research findings to the user
30
+ 2. Confirm direction, priorities, and constraints
31
+ 3. Do not assume the plan direction based on research alone — the user may have refinements that reshape the plan materially
32
+
33
+ Only after confirmation: proceed to Plan checklist.
34
+
26
35
  ### 2. Plan
27
36
 
28
37
  - Create or update one current plan note: `role: plan`, `lifecycle: temporary`.
@@ -32,6 +41,14 @@ Use `derives-from` for lineage and `follows` for sequence by default. Fall back
32
41
  - One current plan per request; update or supersede as needed.
33
42
  - Update plan note before continuing if scope, architecture, dependencies, or assumptions change materially.
34
43
 
44
+ ### 2a. Plan → Implement Handoff
45
+
46
+ Before dispatching subagents or starting implementation:
47
+ 1. Confirm the plan is endorsed
48
+ 2. Confirm scope and priorities haven't shifted since planning
49
+
50
+ Only after confirmation: proceed to Implement checklist.
51
+
35
52
  ### 3. Implement
36
53
 
37
54
  - Create apply/task notes: `lifecycle: temporary`, tagged `apply`.