@steno-ai/mcp 0.1.14 → 0.1.15

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":"local-server.d.ts","sourceRoot":"","sources":["../src/local-server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAErF,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,QAAQ,EAAE,UAAU,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,kBAAkB,EAAE,gBAAgB,EAAE,CAAC;IAClE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAkDD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,CAwnBtE"}
1
+ {"version":3,"file":"local-server.d.ts","sourceRoot":"","sources":["../src/local-server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAErF,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,QAAQ,EAAE,UAAU,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,kBAAkB,EAAE,gBAAgB,EAAE,CAAC;IAClE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAkDD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,CA2rBtE"}
@@ -283,7 +283,8 @@ CRITICAL RULES:
283
283
  server.tool('steno_recall', 'ALWAYS search this memory before answering questions about the user, their life, work, projects, preferences, people they know, companies, events, or anything personal. This contains the user\'s persistent memory across all conversations. Search here FIRST before using web search or saying you don\'t know.', {
284
284
  query: z.string().describe('What to search for in memory'),
285
285
  limit: z.number().optional().describe('Max results (default 10)'),
286
- }, async ({ query, limit }) => {
286
+ max_tokens: z.number().optional().describe('Approximate token budget for the response. Results will be truncated from lowest-scored to fit.'),
287
+ }, async ({ query, limit, max_tokens }) => {
287
288
  // Auto-flush any pending buffered messages before searching
288
289
  const key = bufferKey();
289
290
  const active = activeSessions.get(key);
@@ -464,8 +465,12 @@ CRITICAL RULES:
464
465
  const enrichedLines = [];
465
466
  for (const r of sortedResults) {
466
467
  const meta = r.fact.metadata;
468
+ // Skip dismissed facts
469
+ if (meta?.dismissed === true)
470
+ continue;
467
471
  const status = meta?.status;
468
472
  const priorityOrder = meta?.priority_order;
473
+ const confidence = meta?.confidence;
469
474
  const deps = depMap.get(r.fact.id);
470
475
  const dateParts = [];
471
476
  if (r.fact.eventDate)
@@ -484,7 +489,7 @@ CRITICAL RULES:
484
489
  let line;
485
490
  if (isPriority) {
486
491
  line = `[Priority${priorityOrder ? ` #${priorityOrder}` : ''}] ${r.fact.content}`;
487
- line += `\n status: ${status || 'unknown'}`;
492
+ line += `\n status: ${status || 'unknown'}${confidence !== undefined ? ` (confidence: ${confidence})` : ''}`;
488
493
  if (blocks.length > 0)
489
494
  line += `\n blocks: → ${blocks.join(', ')}`;
490
495
  if (blockedBy.length > 0)
@@ -504,12 +509,30 @@ CRITICAL RULES:
504
509
  line += '\n---';
505
510
  enrichedLines.push(line);
506
511
  }
507
- const text = enrichedLines.join('\n');
512
+ // Token budget truncation: drop lowest-scored results to fit
513
+ let finalLines = enrichedLines;
514
+ let truncatedCount = 0;
515
+ if (max_tokens && max_tokens > 0) {
516
+ const budgetLines = [];
517
+ let tokenEstimate = 0;
518
+ for (const line of enrichedLines) {
519
+ const lineTokens = Math.ceil(line.length / 4);
520
+ if (tokenEstimate + lineTokens > max_tokens && budgetLines.length > 0) {
521
+ truncatedCount = enrichedLines.length - budgetLines.length;
522
+ break;
523
+ }
524
+ budgetLines.push(line);
525
+ tokenEstimate += lineTokens;
526
+ }
527
+ finalLines = budgetLines;
528
+ }
529
+ const text = finalLines.join('\n');
530
+ const truncNote = truncatedCount > 0 ? `\n\n(${truncatedCount} more results truncated to fit token budget)` : '';
508
531
  return {
509
532
  content: [
510
533
  {
511
534
  type: 'text',
512
- text: `Found ${results.results.length} memories (${results.durationMs}ms):\n\n${text}`,
535
+ text: `Found ${results.results.length} memories (${results.durationMs}ms):\n\n${text}${truncNote}`,
513
536
  },
514
537
  ],
515
538
  };
@@ -537,7 +560,8 @@ CRITICAL RULES:
537
560
  server.tool('steno_update_status', 'Update the status of a priority/roadmap item. Use when a task changes state (e.g., started working on it, completed it, or it became blocked).', {
538
561
  priority: z.number().describe('Priority number (1-6)'),
539
562
  status: z.enum(['not_started', 'in_progress', 'done', 'blocked']).describe('New status'),
540
- }, async ({ priority, status }) => {
563
+ confidence: z.number().min(0).max(1).optional().describe('Confidence level (0.0-1.0) that this status is accurate'),
564
+ }, async ({ priority, status, confidence }) => {
541
565
  try {
542
566
  // Find the fact with this priority_order
543
567
  const { data: facts, error: findError } = await config.storage.client
@@ -552,7 +576,7 @@ CRITICAL RULES:
552
576
  return { content: [{ type: 'text', text: `No priority #${priority} found.` }] };
553
577
  }
554
578
  const oldStatus = fact.metadata?.status || 'unknown';
555
- const newMetadata = { ...fact.metadata, status };
579
+ const newMetadata = { ...fact.metadata, status, ...(confidence !== undefined && { confidence }) };
556
580
  const { error: updateError } = await config.storage.client
557
581
  .from('facts')
558
582
  .update({ metadata: newMetadata })
@@ -564,7 +588,7 @@ CRITICAL RULES:
564
588
  return {
565
589
  content: [{
566
590
  type: 'text',
567
- text: `Priority #${priority} (${shortName}): ${oldStatus} → ${status}`,
591
+ text: `Priority #${priority} (${shortName}): ${oldStatus} → ${status}${confidence !== undefined ? ` (confidence: ${confidence})` : ''}`,
568
592
  }],
569
593
  };
570
594
  }
@@ -572,6 +596,39 @@ CRITICAL RULES:
572
596
  return { content: [{ type: 'text', text: `Error updating status: ${err?.message ?? err}` }] };
573
597
  }
574
598
  });
599
+ // ─── DISMISS ───
600
+ server.tool('steno_dismiss', 'Mark a memory/fact as dismissed without deleting it. Dismissed facts are hidden from future recall results. Use when a fact is outdated, irrelevant, or no longer useful.', {
601
+ fact_id: z.string().describe('The fact ID to dismiss'),
602
+ }, async ({ fact_id }) => {
603
+ try {
604
+ const { data: fact, error: findError } = await config.storage.client
605
+ .from('facts')
606
+ .select('id, content, metadata')
607
+ .eq('id', fact_id)
608
+ .eq('tenant_id', config.tenantId)
609
+ .maybeSingle();
610
+ if (findError)
611
+ throw findError;
612
+ if (!fact) {
613
+ return { content: [{ type: 'text', text: `Fact ${fact_id} not found.` }] };
614
+ }
615
+ const newMetadata = { ...fact.metadata, dismissed: true, dismissedAt: new Date().toISOString() };
616
+ const { error: updateError } = await config.storage.client
617
+ .from('facts')
618
+ .update({ metadata: newMetadata })
619
+ .eq('id', fact_id)
620
+ .eq('tenant_id', config.tenantId);
621
+ if (updateError)
622
+ throw updateError;
623
+ const preview = fact.content.slice(0, 60);
624
+ return {
625
+ content: [{ type: 'text', text: `Dismissed: "${preview}..."` }],
626
+ };
627
+ }
628
+ catch (err) {
629
+ return { content: [{ type: 'text', text: `Error dismissing fact: ${err?.message ?? err}` }] };
630
+ }
631
+ });
575
632
  // ─── STATS ───
576
633
  server.tool('steno_stats', 'Get memory statistics — how many facts, entities, and edges are stored.', {}, async () => {
577
634
  const facts = await config.storage.getFactsByScope(config.tenantId, config.scope, config.scopeId, { limit: 1 });
@@ -1 +1 @@
1
- {"version":3,"file":"local-server.js","sourceRoot":"","sources":["../src/local-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-server.js","sourceRoot":"","sources":["../src/local-server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steno-ai/mcp",
3
- "version": "0.1.14",
3
+ "version": "0.1.15",
4
4
  "description": "MCP server for Claude Code, Claude Desktop, and other MCP clients",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -364,8 +364,9 @@ CRITICAL RULES:
364
364
  {
365
365
  query: z.string().describe('What to search for in memory'),
366
366
  limit: z.number().optional().describe('Max results (default 10)'),
367
+ max_tokens: z.number().optional().describe('Approximate token budget for the response. Results will be truncated from lowest-scored to fit.'),
367
368
  },
368
- async ({ query, limit }) => {
369
+ async ({ query, limit, max_tokens }) => {
369
370
  // Auto-flush any pending buffered messages before searching
370
371
  const key = bufferKey();
371
372
  const active = activeSessions.get(key);
@@ -554,8 +555,13 @@ CRITICAL RULES:
554
555
  const enrichedLines: string[] = [];
555
556
  for (const r of sortedResults) {
556
557
  const meta = r.fact.metadata as Record<string, unknown> | undefined;
558
+
559
+ // Skip dismissed facts
560
+ if (meta?.dismissed === true) continue;
561
+
557
562
  const status = meta?.status as string | undefined;
558
563
  const priorityOrder = meta?.priority_order as number | undefined;
564
+ const confidence = meta?.confidence as number | undefined;
559
565
  const deps = depMap.get(r.fact.id);
560
566
 
561
567
  const dateParts: string[] = [];
@@ -574,7 +580,7 @@ CRITICAL RULES:
574
580
  let line: string;
575
581
  if (isPriority) {
576
582
  line = `[Priority${priorityOrder ? ` #${priorityOrder}` : ''}] ${r.fact.content}`;
577
- line += `\n status: ${status || 'unknown'}`;
583
+ line += `\n status: ${status || 'unknown'}${confidence !== undefined ? ` (confidence: ${confidence})` : ''}`;
578
584
  if (blocks.length > 0) line += `\n blocks: → ${blocks.join(', ')}`;
579
585
  if (blockedBy.length > 0) line += `\n blocked_by: ← ${blockedBy.join(', ')}`;
580
586
  else if (status === 'not_started') line += `\n blocked_by: none`;
@@ -590,13 +596,32 @@ CRITICAL RULES:
590
596
  enrichedLines.push(line);
591
597
  }
592
598
 
593
- const text = enrichedLines.join('\n');
599
+ // Token budget truncation: drop lowest-scored results to fit
600
+ let finalLines = enrichedLines;
601
+ let truncatedCount = 0;
602
+ if (max_tokens && max_tokens > 0) {
603
+ const budgetLines: string[] = [];
604
+ let tokenEstimate = 0;
605
+ for (const line of enrichedLines) {
606
+ const lineTokens = Math.ceil(line.length / 4);
607
+ if (tokenEstimate + lineTokens > max_tokens && budgetLines.length > 0) {
608
+ truncatedCount = enrichedLines.length - budgetLines.length;
609
+ break;
610
+ }
611
+ budgetLines.push(line);
612
+ tokenEstimate += lineTokens;
613
+ }
614
+ finalLines = budgetLines;
615
+ }
616
+
617
+ const text = finalLines.join('\n');
618
+ const truncNote = truncatedCount > 0 ? `\n\n(${truncatedCount} more results truncated to fit token budget)` : '';
594
619
 
595
620
  return {
596
621
  content: [
597
622
  {
598
623
  type: 'text' as const,
599
- text: `Found ${results.results.length} memories (${results.durationMs}ms):\n\n${text}`,
624
+ text: `Found ${results.results.length} memories (${results.durationMs}ms):\n\n${text}${truncNote}`,
600
625
  },
601
626
  ],
602
627
  };
@@ -635,8 +660,9 @@ CRITICAL RULES:
635
660
  {
636
661
  priority: z.number().describe('Priority number (1-6)'),
637
662
  status: z.enum(['not_started', 'in_progress', 'done', 'blocked']).describe('New status'),
663
+ confidence: z.number().min(0).max(1).optional().describe('Confidence level (0.0-1.0) that this status is accurate'),
638
664
  },
639
- async ({ priority, status }) => {
665
+ async ({ priority, status, confidence }) => {
640
666
  try {
641
667
  // Find the fact with this priority_order
642
668
  const { data: facts, error: findError } = await (config.storage as any).client
@@ -653,7 +679,7 @@ CRITICAL RULES:
653
679
  }
654
680
 
655
681
  const oldStatus = fact.metadata?.status || 'unknown';
656
- const newMetadata = { ...fact.metadata, status };
682
+ const newMetadata = { ...fact.metadata, status, ...(confidence !== undefined && { confidence }) };
657
683
 
658
684
  const { error: updateError } = await (config.storage as any).client
659
685
  .from('facts')
@@ -667,7 +693,7 @@ CRITICAL RULES:
667
693
  return {
668
694
  content: [{
669
695
  type: 'text' as const,
670
- text: `Priority #${priority} (${shortName}): ${oldStatus} → ${status}`,
696
+ text: `Priority #${priority} (${shortName}): ${oldStatus} → ${status}${confidence !== undefined ? ` (confidence: ${confidence})` : ''}`,
671
697
  }],
672
698
  };
673
699
  } catch (err: any) {
@@ -676,6 +702,47 @@ CRITICAL RULES:
676
702
  },
677
703
  );
678
704
 
705
+ // ─── DISMISS ───
706
+ server.tool(
707
+ 'steno_dismiss',
708
+ 'Mark a memory/fact as dismissed without deleting it. Dismissed facts are hidden from future recall results. Use when a fact is outdated, irrelevant, or no longer useful.',
709
+ {
710
+ fact_id: z.string().describe('The fact ID to dismiss'),
711
+ },
712
+ async ({ fact_id }) => {
713
+ try {
714
+ const { data: fact, error: findError } = await (config.storage as any).client
715
+ .from('facts')
716
+ .select('id, content, metadata')
717
+ .eq('id', fact_id)
718
+ .eq('tenant_id', config.tenantId)
719
+ .maybeSingle();
720
+
721
+ if (findError) throw findError;
722
+ if (!fact) {
723
+ return { content: [{ type: 'text' as const, text: `Fact ${fact_id} not found.` }] };
724
+ }
725
+
726
+ const newMetadata = { ...fact.metadata, dismissed: true, dismissedAt: new Date().toISOString() };
727
+
728
+ const { error: updateError } = await (config.storage as any).client
729
+ .from('facts')
730
+ .update({ metadata: newMetadata })
731
+ .eq('id', fact_id)
732
+ .eq('tenant_id', config.tenantId);
733
+
734
+ if (updateError) throw updateError;
735
+
736
+ const preview = fact.content.slice(0, 60);
737
+ return {
738
+ content: [{ type: 'text' as const, text: `Dismissed: "${preview}..."` }],
739
+ };
740
+ } catch (err: any) {
741
+ return { content: [{ type: 'text' as const, text: `Error dismissing fact: ${err?.message ?? err}` }] };
742
+ }
743
+ },
744
+ );
745
+
679
746
  // ─── STATS ───
680
747
  server.tool(
681
748
  'steno_stats',