cuemap-mcp 0.7.4 → 0.7.5

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/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
  <img src="https://cuemap.dev/cuemap-logo.PNG" alt="CueMap" width="120">
3
3
  </p>
4
4
 
5
- <h1 align="center">CueMap MCP Server v0.7.3</h1>
5
+ <h1 align="center">CueMap MCP Server v0.7.5</h1>
6
6
 
7
7
  <p align="center">A premium MCP bridge for explainable, repository-aware agent memory.</p>
8
8
 
@@ -154,7 +154,7 @@ These tools are for explicit ingestion requests. Repository initialization conti
154
154
  - `cues` (string[], optional): Specific cue tags to filter the search.
155
155
  - `query_time` (string, optional): Timestamp or natural-language time anchor for v0.7 temporal query intent.
156
156
  - `depth` (number, optional): Depth of multi-hop recall expander (default: 1).
157
- - `expansion_depth` (number, optional): Neighbor context expansion (default: 1). Values above 1 include nearby parent chunks or source-ordered context, using a radius of `expansion_depth - 1` when linkage exists.
157
+ - `expansion_depth` (number or `"conversation_round"`, optional): Neighbor context expansion (default: `"conversation_round"`). Values above 1 include nearby parent chunks or source-ordered context, using a radius of `expansion_depth - 1` when linkage exists. `"conversation_round"` prepends the message each result replies to (for an assistant reply, the user message that prompted it) when memories carry session, turn and role metadata, for example after ingesting with `segmenter: "conversation"`. The top result also gets the message that replies to it (for a user message, the assistant's answer). Memories without conversation metadata are returned as they are; pass `1` for matched memories only. A message that would also appear lower in the results is moved up instead of repeated, so fewer than `limit` results can come back.
158
158
  - `auto_reinforce` (boolean, optional): Automatically reinforce retrieved memories (default: false).
159
159
  - `min_intersection` (number, optional): Minimum required cue intersection count (default: 0).
160
160
  - `explain` (boolean, optional): Include scoring explanation data in results (default: false).
package/SKILL.md CHANGED
@@ -362,10 +362,13 @@ Start with defaults. Add only the knobs that match the question.
362
362
  evidence. Unnecessary constraints can exclude useful results.
363
363
  - `depth`: keep at `1` for direct questions. Use `2` or `3` for a deliberate
364
364
  multi-hop chain; increase gradually and verify each hop.
365
- - `expansion_depth`: keep at `1` for the matched chunk alone. Use `2` to
366
- include immediate neighboring parent chunks or source-ordered context when
367
- linkage exists; larger values widen the window. This expands returned
368
- content, not aliases, and adds reads and tokens to each affected hit.
365
+ - `expansion_depth`: leave it unset. The default, `"conversation_round"`,
366
+ attaches the message a result replies to, and the answer to the top result,
367
+ when memories carry conversation metadata (for example after ingesting with
368
+ `segmenter: "conversation"`); other memories come back unchanged. Use `1`
369
+ for the matched chunk alone and the smallest output. Use `2` or more to
370
+ include neighboring parent chunks or source-ordered context when linkage
371
+ exists; this adds reads and tokens to each affected hit.
369
372
  - `disable_alias_expansion`: it defaults to `true` in the MCP wrapper. Keep it
370
373
  disabled when exactness matters. Set it to `false` only when the project has
371
374
  trustworthy aliases or the user explicitly wants related terminology.
@@ -564,7 +567,7 @@ Obtain confirmation from the user in the current interaction.
564
567
  ## Performance-aware defaults
565
568
 
566
569
  For the normal hot path, use hybrid recall with a focused query, one explicit
567
- project, `limit` around 3–5 initially, `depth: 1`, `expansion_depth: 1`, no automatic
570
+ project, `limit` around 3–5 initially, `depth: 1`, the default `expansion_depth`, no automatic
568
571
  reinforcement, and no reconstruction mode unless the question needs it. Keep
569
572
  `explain` and `trace_timing` off after diagnosis.
570
573
 
@@ -577,9 +580,9 @@ semantic-model-free in the default hybrid path.
577
580
  ## Configuration and troubleshooting
578
581
 
579
582
  The MCP server launches over stdio and normally starts or attaches to a local
580
- embedded engine. The v0.7.3 defaults are:
583
+ embedded engine. The v0.7.5 defaults are:
581
584
 
582
- - package: `cuemap-mcp@0.7.3`;
585
+ - package: `cuemap-mcp@0.7.5`;
583
586
  - engine port: `8735`;
584
587
  - default project: stable repository-scoped identity when available;
585
588
  - logs: `~/.cuemap/server.log` unless overridden.
package/build/index.js CHANGED
@@ -48,7 +48,7 @@ function defaultProjectId(cwd) {
48
48
  const DEFAULT_PROJECT = defaultProjectId(process.cwd());
49
49
  const server = new mcp_js_1.McpServer({
50
50
  name: "cuemap-mcp",
51
- version: "0.7.3",
51
+ version: "0.7.5",
52
52
  });
53
53
  async function startEngine() {
54
54
  const configuredPort = process.env.CUEMAP_PORT
@@ -625,7 +625,7 @@ async function main() {
625
625
  metadata: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
626
626
  structural_cues: zod_1.z.array(zod_1.z.string()).optional().describe("Normally omit: CueMap extracts structural cues automatically. Optionally add reliable source structure or a reusable category such as type:conversation."),
627
627
  embeddings: zod_1.z.array(zod_1.z.array(zod_1.z.number()).nonempty()).optional().describe("Optional one-vector-per-produced-chunk embeddings."),
628
- segmenter: zod_1.z.enum(["sentence_window", "logical_block"]).optional(),
628
+ segmenter: zod_1.z.enum(["sentence_window", "logical_block", "conversation"]).optional().describe("How content is split. \"conversation\" is for chat histories (Claude or ChatGPT exports, JSON message lists, or transcripts whose lines start with User:/Assistant: or speaker names): one memory per message with conversation, turn and role metadata, which recall's expansion_depth \"conversation_round\" uses."),
629
629
  segment_window_size: zod_1.z.number().int().positive().optional(),
630
630
  segment_overlap: zod_1.z.number().int().nonnegative().optional(),
631
631
  segment_min_chunk_chars: zod_1.z.number().int().positive().optional(),
@@ -836,7 +836,7 @@ async function main() {
836
836
  cues: zod_1.z.array(zod_1.z.string()).optional().describe("Normally omit: CueMap generates cues from the query. Supply known tags only to deliberately narrow lexical/hybrid recall, e.g. type:conversation to search tagged conversations."),
837
837
  query_time: zod_1.z.string().optional().describe("Optional timestamp or natural-language time anchor used by v0.7 temporal query intent."),
838
838
  depth: zod_1.z.number().optional().describe("Depth of multi-hop recall. Default is 1."),
839
- expansion_depth: zod_1.z.number().optional().describe("Neighbor context expansion. 1 returns the matched chunk; values above 1 include nearby parent chunks or source-ordered context with radius expansion_depth - 1 when linkage exists. Default is 1."),
839
+ expansion_depth: zod_1.z.union([zod_1.z.number(), zod_1.z.literal("conversation_round")]).optional().describe("Neighbor context expansion. 1 returns the matched chunk; values above 1 include nearby parent chunks or source-ordered context with radius expansion_depth - 1 when linkage exists. \"conversation_round\" prepends the message each result replies to (for an assistant reply, the user message that prompted it) and appends the answer to the top result when memories carry session, turn and role metadata. Default is \"conversation_round\"; memories without that metadata are returned as they are."),
840
840
  auto_reinforce: zod_1.z.boolean().optional().describe("Automatically reinforce retrieved memories. Default is false."),
841
841
  min_intersection: zod_1.z.number().optional().describe("Minimum intersection count for retrieval. Default is 0."),
842
842
  explain: zod_1.z.boolean().optional().describe("Include explain component for debug information in results. Default is false."),
@@ -861,7 +861,7 @@ async function main() {
861
861
  }),
862
862
  }, async (args) => {
863
863
  try {
864
- const { query, limit = 10, projects, cues, query_time, response_mode = "full", preview_chars = 200, depth = 1, expansion_depth = 1, auto_reinforce = false, min_intersection, explain = false, trace_timing = false, disable_salience_bias = false, disable_alias_expansion = true, parent_fusion = "off", parent_fusion_limit = 80, parent_fusion_min_chunks = 2, ordered_reconstruction = "off", ordered_reconstruction_limit = 80, ordered_session_scan_limit = 4096, ordered_max_sessions = 3, evidence_coverage = "off", evidence_coverage_limit = 100, evidence_coverage_session_scan_limit = 4096, evidence_coverage_max_sessions = 3, disable_cuebridge_artifacts = false, cuebridge_gap_limit = 6, semantic_mode = "hybrid", query_embedding } = args;
864
+ const { query, limit = 10, projects, cues, query_time, response_mode = "full", preview_chars = 200, depth = 1, expansion_depth, auto_reinforce = false, min_intersection, explain = false, trace_timing = false, disable_salience_bias = false, disable_alias_expansion = true, parent_fusion = "off", parent_fusion_limit = 80, parent_fusion_min_chunks = 2, ordered_reconstruction = "off", ordered_reconstruction_limit = 80, ordered_session_scan_limit = 4096, ordered_max_sessions = 3, evidence_coverage = "off", evidence_coverage_limit = 100, evidence_coverage_session_scan_limit = 4096, evidence_coverage_max_sessions = 3, disable_cuebridge_artifacts = false, cuebridge_gap_limit = 6, semantic_mode = "hybrid", query_embedding } = args;
865
865
  const results = await client.recall({
866
866
  query_text: query,
867
867
  response_mode,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cuemap-mcp",
3
- "version": "0.7.4",
3
+ "version": "0.7.5",
4
4
  "mcpName": "io.github.cuemap-dev/cuemap-mcp",
5
5
  "description": "MCP server for CueMap",
6
6
  "main": "build/index.js",
@@ -38,7 +38,7 @@
38
38
  "type": "commonjs",
39
39
  "dependencies": {
40
40
  "@modelcontextprotocol/sdk": "^1.27.1",
41
- "cuemap": "0.7.3",
41
+ "cuemap": "0.7.5",
42
42
  "zod": "^4.3.6"
43
43
  },
44
44
  "devDependencies": {
@@ -46,10 +46,10 @@
46
46
  "typescript": "^5.9.3"
47
47
  },
48
48
  "optionalDependencies": {
49
- "@cuemap-dev/engine-darwin-arm64": "0.7.3",
50
- "@cuemap-dev/engine-darwin-x64": "0.7.3",
51
- "@cuemap-dev/engine-linux-arm64": "0.7.3",
52
- "@cuemap-dev/engine-linux-x64": "0.7.3",
53
- "@cuemap-dev/engine-win32-x64": "0.7.3"
49
+ "@cuemap-dev/engine-darwin-arm64": "0.7.5",
50
+ "@cuemap-dev/engine-darwin-x64": "0.7.5",
51
+ "@cuemap-dev/engine-linux-arm64": "0.7.5",
52
+ "@cuemap-dev/engine-linux-x64": "0.7.5",
53
+ "@cuemap-dev/engine-win32-x64": "0.7.5"
54
54
  }
55
55
  }