claude-cognitive 0.3.4 → 0.4.1

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.
Files changed (86) hide show
  1. package/README.md +52 -2
  2. package/dist/agents/context.d.ts.map +1 -1
  3. package/dist/agents/context.js +7 -7
  4. package/dist/agents/context.js.map +1 -1
  5. package/dist/cli/commands/feedback-stats.d.ts +10 -0
  6. package/dist/cli/commands/feedback-stats.d.ts.map +1 -0
  7. package/dist/cli/commands/feedback-stats.js +70 -0
  8. package/dist/cli/commands/feedback-stats.js.map +1 -0
  9. package/dist/cli/commands/feedback-sync.d.ts +10 -0
  10. package/dist/cli/commands/feedback-sync.d.ts.map +1 -0
  11. package/dist/cli/commands/feedback-sync.js +117 -0
  12. package/dist/cli/commands/feedback-sync.js.map +1 -0
  13. package/dist/cli/commands/index.d.ts +2 -0
  14. package/dist/cli/commands/index.d.ts.map +1 -1
  15. package/dist/cli/commands/index.js +2 -0
  16. package/dist/cli/commands/index.js.map +1 -1
  17. package/dist/cli/commands/init.d.ts.map +1 -1
  18. package/dist/cli/commands/init.js +32 -37
  19. package/dist/cli/commands/init.js.map +1 -1
  20. package/dist/cli/index.js +4 -2
  21. package/dist/cli/index.js.map +1 -1
  22. package/dist/client.d.ts +121 -22
  23. package/dist/client.d.ts.map +1 -1
  24. package/dist/client.js +203 -31
  25. package/dist/client.js.map +1 -1
  26. package/dist/events.d.ts +20 -0
  27. package/dist/events.d.ts.map +1 -1
  28. package/dist/events.js.map +1 -1
  29. package/dist/feedback/constants.d.ts +72 -0
  30. package/dist/feedback/constants.d.ts.map +1 -0
  31. package/dist/feedback/constants.js +145 -0
  32. package/dist/feedback/constants.js.map +1 -0
  33. package/dist/feedback/detector.d.ts +75 -0
  34. package/dist/feedback/detector.d.ts.map +1 -0
  35. package/dist/feedback/detector.js +393 -0
  36. package/dist/feedback/detector.js.map +1 -0
  37. package/dist/feedback/index.d.ts +85 -0
  38. package/dist/feedback/index.d.ts.map +1 -0
  39. package/dist/feedback/index.js +194 -0
  40. package/dist/feedback/index.js.map +1 -0
  41. package/dist/feedback/offline-queue.d.ts +110 -0
  42. package/dist/feedback/offline-queue.d.ts.map +1 -0
  43. package/dist/feedback/offline-queue.js +188 -0
  44. package/dist/feedback/offline-queue.js.map +1 -0
  45. package/dist/feedback/scorer.d.ts +81 -0
  46. package/dist/feedback/scorer.d.ts.map +1 -0
  47. package/dist/feedback/scorer.js +194 -0
  48. package/dist/feedback/scorer.js.map +1 -0
  49. package/dist/feedback/similarity.d.ts +19 -0
  50. package/dist/feedback/similarity.d.ts.map +1 -0
  51. package/dist/feedback/similarity.js +49 -0
  52. package/dist/feedback/similarity.js.map +1 -0
  53. package/dist/feedback/tracker.d.ts +104 -0
  54. package/dist/feedback/tracker.d.ts.map +1 -0
  55. package/dist/feedback/tracker.js +324 -0
  56. package/dist/feedback/tracker.js.map +1 -0
  57. package/dist/hooks/process-session.d.ts.map +1 -1
  58. package/dist/hooks/process-session.js +13 -1
  59. package/dist/hooks/process-session.js.map +1 -1
  60. package/dist/index.d.ts +7 -0
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +13 -0
  63. package/dist/index.js.map +1 -1
  64. package/dist/learn/index.d.ts.map +1 -1
  65. package/dist/learn/index.js +6 -2
  66. package/dist/learn/index.js.map +1 -1
  67. package/dist/mcp/handlers.d.ts +9 -1
  68. package/dist/mcp/handlers.d.ts.map +1 -1
  69. package/dist/mcp/handlers.js +66 -0
  70. package/dist/mcp/handlers.js.map +1 -1
  71. package/dist/mcp/server.d.ts.map +1 -1
  72. package/dist/mcp/server.js +42 -2
  73. package/dist/mcp/server.js.map +1 -1
  74. package/dist/mcp/tools.d.ts +77 -0
  75. package/dist/mcp/tools.d.ts.map +1 -1
  76. package/dist/mcp/tools.js +30 -0
  77. package/dist/mcp/tools.js.map +1 -1
  78. package/dist/mcp/types.d.ts +16 -0
  79. package/dist/mcp/types.d.ts.map +1 -1
  80. package/dist/mind.d.ts +25 -1
  81. package/dist/mind.d.ts.map +1 -1
  82. package/dist/mind.js +196 -11
  83. package/dist/mind.js.map +1 -1
  84. package/dist/types.d.ts +166 -1
  85. package/dist/types.d.ts.map +1 -1
  86. package/package.json +1 -1
package/dist/mind.js CHANGED
@@ -9,6 +9,8 @@ import { HindsightClient } from "./client.js";
9
9
  import { loadConfig } from "./config.js";
10
10
  import { HindsightError } from "./errors.js";
11
11
  import { TypedEventEmitter } from "./events.js";
12
+ import { createFeedbackService } from "./feedback/index.js";
13
+ import { OfflineFeedbackQueue } from "./feedback/offline-queue.js";
12
14
  import { OfflineMemoryStore } from "./offline.js";
13
15
  // ============================================
14
16
  // Default Values
@@ -66,6 +68,10 @@ export class Mind extends TypedEventEmitter {
66
68
  client = null;
67
69
  // Offline memory store (always available)
68
70
  offlineStore = null;
71
+ // Feedback service (optional, enabled via config)
72
+ feedbackService = null;
73
+ // Offline feedback queue (for degraded mode)
74
+ feedbackQueue = null;
69
75
  // State
70
76
  initialized = false;
71
77
  initializing = false;
@@ -73,6 +79,8 @@ export class Mind extends TypedEventEmitter {
73
79
  sessionActive = false;
74
80
  /** Session start time. Used for duration tracking. */
75
81
  sessionStartTime = null;
82
+ /** Current session ID for feedback tracking */
83
+ sessionId = null;
76
84
  // Agent templates (loaded in init())
77
85
  customAgents = [];
78
86
  // Context settings
@@ -172,6 +180,14 @@ export class Mind extends TypedEventEmitter {
172
180
  this.offlineStore = new OfflineMemoryStore({
173
181
  projectPath: this.projectPath,
174
182
  });
183
+ // Initialize feedback service if enabled
184
+ if (config.feedback?.enabled) {
185
+ this.feedbackService = createFeedbackService(config.feedback, this.projectPath);
186
+ // Initialize offline feedback queue alongside the service
187
+ this.feedbackQueue = new OfflineFeedbackQueue({
188
+ projectPath: this.projectPath,
189
+ });
190
+ }
175
191
  // Mark initialized
176
192
  this.initialized = true;
177
193
  // Emit ready event
@@ -256,6 +272,7 @@ export class Mind extends TypedEventEmitter {
256
272
  }
257
273
  this.sessionActive = true;
258
274
  this.sessionStartTime = new Date();
275
+ this.sessionId = `session-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
259
276
  const contextParts = [];
260
277
  // Add agent orchestration instructions
261
278
  const agentInstructions = this.formatAgentInstructions();
@@ -314,7 +331,11 @@ export class Mind extends TypedEventEmitter {
314
331
  if (!this.degraded && this.client) {
315
332
  // Online mode: store to Hindsight
316
333
  try {
317
- await this.client.retain(this.bankId, transcript, "Session transcript");
334
+ await this.client.retain({
335
+ bankId: this.bankId,
336
+ content: transcript,
337
+ context: "Session transcript",
338
+ });
318
339
  this.emit("memory:retained", transcript);
319
340
  }
320
341
  catch (error) {
@@ -339,11 +360,47 @@ export class Mind extends TypedEventEmitter {
339
360
  }
340
361
  }
341
362
  }
363
+ // Process feedback if enabled
364
+ if (this.feedbackService && this.sessionId && transcript) {
365
+ try {
366
+ const feedbackResult = await this.feedbackService.processFeedback(this.sessionId, {
367
+ conversationText: transcript,
368
+ });
369
+ if (feedbackResult.success && feedbackResult.feedback.length > 0) {
370
+ if (!this.degraded && this.client) {
371
+ // Online mode: Submit feedback signals to Hindsight
372
+ await this.client.signal({
373
+ bankId: this.bankId,
374
+ signals: feedbackResult.feedback,
375
+ });
376
+ this.emit("feedback:processed", {
377
+ sessionId: this.sessionId,
378
+ summary: feedbackResult.summary,
379
+ });
380
+ }
381
+ else if (this.feedbackQueue) {
382
+ // Degraded mode: Queue signals for later sync
383
+ await this.feedbackQueue.enqueueBatch(feedbackResult.feedback);
384
+ this.emit("feedback:queued", {
385
+ sessionId: this.sessionId,
386
+ count: feedbackResult.feedback.length,
387
+ });
388
+ }
389
+ }
390
+ }
391
+ catch (error) {
392
+ // Silently ignore feedback processing errors - non-critical
393
+ this.emit("error", error instanceof Error ? error : new Error("Feedback processing failed"));
394
+ }
395
+ }
342
396
  // Reflect on session (if not degraded)
343
397
  let result = null;
344
398
  if (!this.degraded && this.client) {
345
399
  try {
346
- result = await this.client.reflect(this.bankId, "What insights can I draw from this session?");
400
+ result = await this.client.reflect({
401
+ bankId: this.bankId,
402
+ query: "What insights can I draw from this session?",
403
+ });
347
404
  // Emit opinion events
348
405
  for (const opinion of result.opinions) {
349
406
  this.emit("opinion:formed", opinion);
@@ -356,6 +413,7 @@ export class Mind extends TypedEventEmitter {
356
413
  // Reset session state
357
414
  this.sessionActive = false;
358
415
  this.sessionStartTime = null;
416
+ this.sessionId = null;
359
417
  return result;
360
418
  }
361
419
  // ============================================
@@ -375,8 +433,36 @@ export class Mind extends TypedEventEmitter {
375
433
  // Online mode: use Hindsight
376
434
  if (!this.degraded && this.client) {
377
435
  try {
378
- const memories = await this.client.recall(this.bankId, query, options);
436
+ // Build recall input, only including defined properties
437
+ const recallInput = {
438
+ bankId: this.bankId,
439
+ query,
440
+ };
441
+ if (options?.budget !== undefined)
442
+ recallInput.budget = options.budget;
443
+ if (options?.factType !== undefined)
444
+ recallInput.factType = options.factType;
445
+ if (options?.maxTokens !== undefined)
446
+ recallInput.maxTokens = options.maxTokens;
447
+ if (options?.includeEntities !== undefined)
448
+ recallInput.includeEntities = options.includeEntities;
449
+ if (options?.boostByUsefulness !== undefined)
450
+ recallInput.boostByUsefulness = options.boostByUsefulness;
451
+ if (options?.usefulnessWeight !== undefined)
452
+ recallInput.usefulnessWeight = options.usefulnessWeight;
453
+ if (options?.minUsefulness !== undefined)
454
+ recallInput.minUsefulness = options.minUsefulness;
455
+ const memories = await this.client.recall(recallInput);
379
456
  this.emit("memory:recalled", memories);
457
+ // Track recall for feedback if enabled
458
+ if (this.feedbackService && this.sessionId && memories.length > 0) {
459
+ try {
460
+ await this.feedbackService.trackRecall(this.sessionId, query, memories);
461
+ }
462
+ catch {
463
+ // Silently ignore feedback tracking errors
464
+ }
465
+ }
380
466
  return memories;
381
467
  }
382
468
  catch (error) {
@@ -419,13 +505,33 @@ export class Mind extends TypedEventEmitter {
419
505
  if (this.degraded || !this.client) {
420
506
  throw new HindsightError("reflect() requires Hindsight connection", "HINDSIGHT_UNAVAILABLE", { isRetryable: false });
421
507
  }
422
- const result = await this.client.reflect(this.bankId, query);
508
+ const result = await this.client.reflect({
509
+ bankId: this.bankId,
510
+ query,
511
+ });
423
512
  // Emit opinion events
424
513
  for (const opinion of result.opinions) {
425
514
  this.emit("opinion:formed", opinion);
426
515
  }
427
516
  return result;
428
517
  }
518
+ /**
519
+ * Submit feedback signals for recalled facts.
520
+ *
521
+ * @param signals - Array of signal items with factId, signalType, etc.
522
+ * @returns Signal result
523
+ * @throws {HindsightError} If in degraded mode (signal requires Hindsight)
524
+ */
525
+ async signal(signals) {
526
+ this.assertInitialized();
527
+ if (this.degraded || !this.client) {
528
+ throw new HindsightError("signal() requires Hindsight connection", "HINDSIGHT_UNAVAILABLE", { isRetryable: false });
529
+ }
530
+ return this.client.signal({
531
+ bankId: this.bankId,
532
+ signals,
533
+ });
534
+ }
429
535
  /**
430
536
  * Store content in memory.
431
537
  *
@@ -440,7 +546,14 @@ export class Mind extends TypedEventEmitter {
440
546
  // Online mode: use Hindsight
441
547
  if (!this.degraded && this.client) {
442
548
  try {
443
- await this.client.retain(this.bankId, content, context);
549
+ // Build retain input, only including defined properties
550
+ const retainInput = {
551
+ bankId: this.bankId,
552
+ content,
553
+ };
554
+ if (context !== undefined)
555
+ retainInput.context = context;
556
+ await this.client.retain(retainInput);
444
557
  this.emit("memory:retained", content);
445
558
  return;
446
559
  }
@@ -588,6 +701,8 @@ ${template.outputFormat}
588
701
  await this.ensureBank();
589
702
  // Auto-sync offline memories
590
703
  await this.syncOfflineMemories();
704
+ // Auto-sync offline feedback signals
705
+ await this.syncOfflineFeedback();
591
706
  return true;
592
707
  }
593
708
  return false;
@@ -611,7 +726,14 @@ ${template.outputFormat}
611
726
  const syncedIds = [];
612
727
  for (const memory of unsynced) {
613
728
  try {
614
- await this.client.retain(this.bankId, memory.text, memory.context);
729
+ // Build retain input, only including defined properties
730
+ const retainInput = {
731
+ bankId: this.bankId,
732
+ content: memory.text,
733
+ };
734
+ if (memory.context !== undefined)
735
+ retainInput.context = memory.context;
736
+ await this.client.retain(retainInput);
615
737
  syncedIds.push(memory.id);
616
738
  }
617
739
  catch (error) {
@@ -635,6 +757,48 @@ ${template.outputFormat}
635
757
  return 0;
636
758
  }
637
759
  }
760
+ /**
761
+ * Sync offline feedback signals to Hindsight.
762
+ * Called automatically on recovery from degraded mode.
763
+ *
764
+ * @returns Number of feedback signals synced
765
+ */
766
+ async syncOfflineFeedback() {
767
+ if (!this.client || this.degraded || !this.feedbackQueue) {
768
+ return 0;
769
+ }
770
+ try {
771
+ await this.feedbackQueue.recordSyncAttempt();
772
+ const unsynced = await this.feedbackQueue.getUnsynced();
773
+ if (unsynced.length === 0) {
774
+ return 0;
775
+ }
776
+ // Convert offline signals back to SignalItem format
777
+ const signals = unsynced.map(OfflineFeedbackQueue.toSignalItem);
778
+ // Submit all signals in one batch
779
+ await this.client.signal({
780
+ bankId: this.bankId,
781
+ signals,
782
+ });
783
+ // Mark all as synced
784
+ const ids = unsynced.map((s) => s.id);
785
+ await this.feedbackQueue.markSynced(ids);
786
+ this.emit("feedback:synced", { count: ids.length });
787
+ // Clear synced signals to save space
788
+ await this.feedbackQueue.clearSynced();
789
+ return ids.length;
790
+ }
791
+ catch (error) {
792
+ this.emit("error", error instanceof Error ? error : new Error(String(error)));
793
+ return 0;
794
+ }
795
+ }
796
+ /**
797
+ * Get offline feedback queue (for CLI commands).
798
+ */
799
+ getOfflineFeedbackQueue() {
800
+ return this.feedbackQueue;
801
+ }
638
802
  /**
639
803
  * Get offline memory store (for CLI commands).
640
804
  */
@@ -752,7 +916,22 @@ ${template.outputFormat}
752
916
  const lines = [];
753
917
  lines.push("## Agent Orchestration");
754
918
  lines.push("");
755
- lines.push("You are the **orchestrator**. Delegate complex tasks to specialized agents using the Task tool.");
919
+ lines.push("You are the **orchestrator**. You do NOT write code directly. Delegate ALL coding tasks to specialized agents using the Task tool.");
920
+ lines.push("");
921
+ // Critical rule section
922
+ lines.push("### Critical Rule: Agents Write Code, You Orchestrate");
923
+ lines.push("");
924
+ lines.push("**YOU (the main Claude instance) MUST NOT write code directly.** Your role is to:");
925
+ lines.push("- Plan and coordinate work");
926
+ lines.push("- Provide context and requirements to agents");
927
+ lines.push("- Review agent outputs");
928
+ lines.push("- Communicate with the user");
929
+ lines.push("");
930
+ lines.push("**Agents write ALL code.** Delegate implementation to:");
931
+ lines.push("- Built-in agents (code-explorer, code-architect, code-reviewer)");
932
+ lines.push("- Custom agents in `.claude/agents/` directory");
933
+ lines.push("");
934
+ lines.push("**Exception**: You may write code ONLY if no agents are available (e.g., no built-in agents accessible, no custom agents in `.claude/agents/`).");
756
935
  lines.push("");
757
936
  lines.push("### Built-in Agents");
758
937
  lines.push("");
@@ -763,7 +942,9 @@ ${template.outputFormat}
763
942
  lines.push("| `code-reviewer` | After writing code - review for bugs, security issues, adherence to patterns |");
764
943
  lines.push("");
765
944
  if (custom.length > 0) {
766
- lines.push("### Project Agents");
945
+ lines.push("### Custom Project Agents");
946
+ lines.push("");
947
+ lines.push("The following project-specific agents are available in `.claude/agents/`:");
767
948
  lines.push("");
768
949
  for (const agent of custom) {
769
950
  const firstLine = agent.mission.split("\n")[0] ?? "";
@@ -774,16 +955,17 @@ ${template.outputFormat}
774
955
  }
775
956
  lines.push("### Orchestration Workflow");
776
957
  lines.push("");
777
- lines.push("For non-trivial features, follow this workflow:");
958
+ lines.push("For ALL coding tasks, follow this workflow:");
778
959
  lines.push("");
779
960
  lines.push("1. **Explore**: Launch `code-explorer` agents to understand existing patterns");
780
961
  lines.push("2. **Clarify**: Ask user questions about unclear requirements");
781
962
  lines.push("3. **Design**: Launch `code-architect` agents to create implementation plans");
782
- lines.push("4. **Implement**: Write code following the chosen architecture");
783
- lines.push("5. **Review**: Launch `code-reviewer` agents to check your work");
963
+ lines.push("4. **Implement**: Launch implementation agents to write code (NEVER write code yourself)");
964
+ lines.push("5. **Review**: Launch `code-reviewer` agents to check the work");
784
965
  lines.push("");
785
966
  lines.push("**Parallelization**: Launch multiple agents with different focuses simultaneously.");
786
967
  lines.push("**Memory**: Only YOU (orchestrator) access memory - agents receive context from you.");
968
+ lines.push("**Code Ownership**: Agents own ALL code changes - you coordinate and review.");
787
969
  lines.push("");
788
970
  return lines.join("\n");
789
971
  }
@@ -802,11 +984,14 @@ ${template.outputFormat}
802
984
  // Clear references
803
985
  this.client = null;
804
986
  this.offlineStore = null;
987
+ this.feedbackService = null;
988
+ this.feedbackQueue = null;
805
989
  this.customAgents = [];
806
990
  // Reset state
807
991
  this.initialized = false;
808
992
  this.sessionActive = false;
809
993
  this.sessionStartTime = null;
994
+ this.sessionId = null;
810
995
  this.degraded = false;
811
996
  }
812
997
  }
package/dist/mind.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mind.js","sourceRoot":"","sources":["../src/mind.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mind.js","sourceRoot":"","sources":["../src/mind.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -129,7 +129,7 @@ export interface Memory {
129
129
  }
130
130
  /** Search budget affecting thoroughness */
131
131
  export type RecallBudget = "low" | "mid" | "high";
132
- /** Filter options for recall() */
132
+ /** Filter options for recall() - used internally by Mind */
133
133
  export interface RecallOptions {
134
134
  /**
135
135
  * Search thoroughness:
@@ -144,6 +144,85 @@ export interface RecallOptions {
144
144
  maxTokens?: number;
145
145
  /** Include entity metadata in results */
146
146
  includeEntities?: boolean;
147
+ /** Enable usefulness boosting (default: false) */
148
+ boostByUsefulness?: boolean;
149
+ /** Weight for usefulness vs semantic (0.0-1.0, default: 0.3) */
150
+ usefulnessWeight?: number;
151
+ /** Minimum usefulness score threshold (default: 0.0) */
152
+ minUsefulness?: number;
153
+ }
154
+ /**
155
+ * Input for HindsightClient.recall() operation.
156
+ * Uses object-based parameters for cleaner API.
157
+ */
158
+ export interface RecallInput {
159
+ /** Memory bank identifier */
160
+ bankId: string;
161
+ /** Search query */
162
+ query: string;
163
+ /**
164
+ * Search thoroughness:
165
+ * - low: ~2048 tokens, 1 graph hop
166
+ * - mid: ~4096 tokens, 2 graph hops (default)
167
+ * - high: ~8192 tokens, 3+ graph hops
168
+ */
169
+ budget?: RecallBudget;
170
+ /** Filter by memory type ('all' returns all types) */
171
+ factType?: FactType | "all";
172
+ /** Maximum tokens in response */
173
+ maxTokens?: number;
174
+ /** Include entity metadata in results */
175
+ includeEntities?: boolean;
176
+ /** Enable usefulness boosting (default: false) */
177
+ boostByUsefulness?: boolean;
178
+ /** Weight for usefulness vs semantic (0.0-1.0, default: 0.3) */
179
+ usefulnessWeight?: number;
180
+ /** Minimum usefulness score threshold (default: 0.0) */
181
+ minUsefulness?: number;
182
+ }
183
+ /**
184
+ * Input for HindsightClient.retain() operation.
185
+ */
186
+ export interface RetainInput {
187
+ /** Memory bank identifier */
188
+ bankId: string;
189
+ /** Content to store */
190
+ content: string;
191
+ /** Optional additional context */
192
+ context?: string;
193
+ /** Use async mode for processing (default: auto based on content length) */
194
+ async?: boolean;
195
+ /** User-provided entities to combine with auto-extracted entities */
196
+ entities?: EntityInput[];
197
+ }
198
+ /**
199
+ * Input for HindsightClient.reflect() operation.
200
+ */
201
+ export interface ReflectInput {
202
+ /** Memory bank identifier */
203
+ bankId: string;
204
+ /** What to think about or reason through */
205
+ query: string;
206
+ /** Optional additional context */
207
+ context?: string;
208
+ }
209
+ /**
210
+ * Input for HindsightClient.signal() operation.
211
+ */
212
+ export interface SignalInput {
213
+ /** Memory bank identifier */
214
+ bankId: string;
215
+ /** Array of feedback signals */
216
+ signals: SignalItem[];
217
+ }
218
+ /**
219
+ * Input for HindsightClient.getFactStats() operation.
220
+ */
221
+ export interface FactStatsInput {
222
+ /** Memory bank identifier */
223
+ bankId: string;
224
+ /** Fact UUID */
225
+ factId: string;
147
226
  }
148
227
  /** An opinion formed through reflect() */
149
228
  export interface Opinion {
@@ -168,6 +247,59 @@ export interface ReflectResult {
168
247
  opinion: Memory[];
169
248
  };
170
249
  }
250
+ /** Types of usefulness signals for facts */
251
+ export type SignalType = "used" | "ignored" | "helpful" | "not_helpful";
252
+ /** A single feedback signal for a fact */
253
+ export interface SignalItem {
254
+ /** UUID of the fact to signal */
255
+ factId: string;
256
+ /** Type of signal */
257
+ signalType: SignalType;
258
+ /** Confidence in the signal (0.0-1.0), default 1.0 */
259
+ confidence?: number;
260
+ /** The query that triggered the recall (required for query-context aware scoring) */
261
+ query: string;
262
+ /** Optional context about the signal */
263
+ context?: string;
264
+ }
265
+ /** Result from submitting feedback signals */
266
+ export interface SignalResult {
267
+ /** Whether the operation succeeded */
268
+ success: boolean;
269
+ /** Number of signals processed */
270
+ signalsProcessed: number;
271
+ /** Fact IDs that were updated */
272
+ updatedFacts: string[];
273
+ }
274
+ /** Usefulness statistics for a single fact */
275
+ export interface FactUsefulnessStats {
276
+ /** Fact UUID */
277
+ factId: string;
278
+ /** Current usefulness score (0.0-1.0) */
279
+ usefulnessScore: number;
280
+ /** Total number of signals received */
281
+ signalCount: number;
282
+ /** Count of signals by type */
283
+ signalBreakdown: Record<SignalType, number>;
284
+ /** When the last signal was received (ISO 8601) */
285
+ lastSignalAt?: string;
286
+ /** When the fact was created (ISO 8601) */
287
+ createdAt: string;
288
+ }
289
+ /** Entity to associate with retained content */
290
+ export interface EntityInput {
291
+ /** The entity name/text */
292
+ text: string;
293
+ /** Optional entity type (e.g., 'PERSON', 'ORG', 'CONCEPT') */
294
+ type?: string;
295
+ }
296
+ /** Options for retain operation */
297
+ export interface RetainOptions {
298
+ /** Use async mode for processing */
299
+ async?: boolean;
300
+ /** User-provided entities to combine with auto-extracted entities */
301
+ entities?: EntityInput[];
302
+ }
171
303
  /** Health check response */
172
304
  export interface HealthStatus {
173
305
  /** Whether Hindsight is healthy and reachable */
@@ -221,6 +353,37 @@ export interface RetainFilterConfig {
221
353
  /** Skip sessions that are mostly tool outputs (default: true) */
222
354
  skipToolOnlySessions?: boolean;
223
355
  }
356
+ /** Detection method configuration for feedback loop */
357
+ export interface FeedbackDetectionConfig {
358
+ /** Enable explicit reference detection (default: true) */
359
+ explicit?: boolean;
360
+ /** Enable semantic similarity matching (default: true) */
361
+ semantic?: boolean;
362
+ /** Enable behavioral signal detection (default: true) */
363
+ behavioral?: boolean;
364
+ /** Jaccard similarity threshold for semantic matching (default: 0.5) */
365
+ semanticThreshold?: number;
366
+ }
367
+ /** Hindsight API integration settings for feedback */
368
+ export interface FeedbackHindsightConfig {
369
+ /** Send feedback signals to Hindsight API (default: true) */
370
+ sendFeedback?: boolean;
371
+ /** Enable usefulness boosting in recalls (default: true) */
372
+ boostByUsefulness?: boolean;
373
+ /** Default usefulness weight for boosted recalls (default: 0.3) */
374
+ boostWeight?: number;
375
+ }
376
+ /** Full feedback loop configuration */
377
+ export interface FeedbackConfig {
378
+ /** Enable feedback loop (default: false) */
379
+ enabled?: boolean;
380
+ /** Detection method configuration */
381
+ detection?: FeedbackDetectionConfig;
382
+ /** Hindsight API integration settings */
383
+ hindsight?: FeedbackHindsightConfig;
384
+ /** Enable debug logging (default: false) */
385
+ debug?: boolean;
386
+ }
224
387
  /** Full configuration schema for claude-cognitive */
225
388
  export interface ClaudeMindConfig {
226
389
  /** Hindsight server connection settings */
@@ -250,6 +413,8 @@ export interface ClaudeMindConfig {
250
413
  /** Maximum number of recent memories to inject (default: 3) */
251
414
  recentMemoryLimit?: number;
252
415
  };
416
+ /** Feedback loop configuration for tracking fact usefulness */
417
+ feedback?: FeedbackConfig;
253
418
  }
254
419
  /** @internal Raw API response for entity */
255
420
  export interface EntityResponseDTO {