claude-cortex 1.0.0

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 (102) hide show
  1. package/README.md +291 -0
  2. package/dist/api/events.d.ts +134 -0
  3. package/dist/api/events.d.ts.map +1 -0
  4. package/dist/api/events.js +73 -0
  5. package/dist/api/events.js.map +1 -0
  6. package/dist/api/visualization-server.d.ts +11 -0
  7. package/dist/api/visualization-server.d.ts.map +1 -0
  8. package/dist/api/visualization-server.js +653 -0
  9. package/dist/api/visualization-server.js.map +1 -0
  10. package/dist/context/project-context.d.ts +57 -0
  11. package/dist/context/project-context.d.ts.map +1 -0
  12. package/dist/context/project-context.js +135 -0
  13. package/dist/context/project-context.js.map +1 -0
  14. package/dist/database/init.d.ts +49 -0
  15. package/dist/database/init.d.ts.map +1 -0
  16. package/dist/database/init.js +336 -0
  17. package/dist/database/init.js.map +1 -0
  18. package/dist/embeddings/generator.d.ts +20 -0
  19. package/dist/embeddings/generator.d.ts.map +1 -0
  20. package/dist/embeddings/generator.js +77 -0
  21. package/dist/embeddings/generator.js.map +1 -0
  22. package/dist/embeddings/index.d.ts +2 -0
  23. package/dist/embeddings/index.d.ts.map +1 -0
  24. package/dist/embeddings/index.js +2 -0
  25. package/dist/embeddings/index.js.map +1 -0
  26. package/dist/errors.d.ts +74 -0
  27. package/dist/errors.d.ts.map +1 -0
  28. package/dist/errors.js +131 -0
  29. package/dist/errors.js.map +1 -0
  30. package/dist/index.d.ts +16 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +83 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/memory/activation.d.ts +69 -0
  35. package/dist/memory/activation.d.ts.map +1 -0
  36. package/dist/memory/activation.js +168 -0
  37. package/dist/memory/activation.js.map +1 -0
  38. package/dist/memory/consolidate.d.ts +96 -0
  39. package/dist/memory/consolidate.d.ts.map +1 -0
  40. package/dist/memory/consolidate.js +400 -0
  41. package/dist/memory/consolidate.js.map +1 -0
  42. package/dist/memory/contradiction.d.ts +69 -0
  43. package/dist/memory/contradiction.d.ts.map +1 -0
  44. package/dist/memory/contradiction.js +286 -0
  45. package/dist/memory/contradiction.js.map +1 -0
  46. package/dist/memory/decay.d.ts +62 -0
  47. package/dist/memory/decay.d.ts.map +1 -0
  48. package/dist/memory/decay.js +184 -0
  49. package/dist/memory/decay.js.map +1 -0
  50. package/dist/memory/salience.d.ts +36 -0
  51. package/dist/memory/salience.d.ts.map +1 -0
  52. package/dist/memory/salience.js +200 -0
  53. package/dist/memory/salience.js.map +1 -0
  54. package/dist/memory/similarity.d.ts +57 -0
  55. package/dist/memory/similarity.d.ts.map +1 -0
  56. package/dist/memory/similarity.js +114 -0
  57. package/dist/memory/similarity.js.map +1 -0
  58. package/dist/memory/store.d.ts +170 -0
  59. package/dist/memory/store.d.ts.map +1 -0
  60. package/dist/memory/store.js +973 -0
  61. package/dist/memory/store.js.map +1 -0
  62. package/dist/memory/types.d.ts +91 -0
  63. package/dist/memory/types.d.ts.map +1 -0
  64. package/dist/memory/types.js +30 -0
  65. package/dist/memory/types.js.map +1 -0
  66. package/dist/server.d.ts +12 -0
  67. package/dist/server.d.ts.map +1 -0
  68. package/dist/server.js +466 -0
  69. package/dist/server.js.map +1 -0
  70. package/dist/tools/context.d.ts +135 -0
  71. package/dist/tools/context.d.ts.map +1 -0
  72. package/dist/tools/context.js +273 -0
  73. package/dist/tools/context.js.map +1 -0
  74. package/dist/tools/forget.d.ts +53 -0
  75. package/dist/tools/forget.d.ts.map +1 -0
  76. package/dist/tools/forget.js +179 -0
  77. package/dist/tools/forget.js.map +1 -0
  78. package/dist/tools/recall.d.ts +74 -0
  79. package/dist/tools/recall.d.ts.map +1 -0
  80. package/dist/tools/recall.js +140 -0
  81. package/dist/tools/recall.js.map +1 -0
  82. package/dist/tools/remember.d.ts +65 -0
  83. package/dist/tools/remember.d.ts.map +1 -0
  84. package/dist/tools/remember.js +147 -0
  85. package/dist/tools/remember.js.map +1 -0
  86. package/dist/worker/brain-worker.d.ts +100 -0
  87. package/dist/worker/brain-worker.d.ts.map +1 -0
  88. package/dist/worker/brain-worker.js +261 -0
  89. package/dist/worker/brain-worker.js.map +1 -0
  90. package/dist/worker/link-discovery.d.ts +47 -0
  91. package/dist/worker/link-discovery.d.ts.map +1 -0
  92. package/dist/worker/link-discovery.js +103 -0
  93. package/dist/worker/link-discovery.js.map +1 -0
  94. package/dist/worker/predictive-consolidation.d.ts +46 -0
  95. package/dist/worker/predictive-consolidation.d.ts.map +1 -0
  96. package/dist/worker/predictive-consolidation.js +110 -0
  97. package/dist/worker/predictive-consolidation.js.map +1 -0
  98. package/dist/worker/types.d.ts +91 -0
  99. package/dist/worker/types.d.ts.map +1 -0
  100. package/dist/worker/types.js +22 -0
  101. package/dist/worker/types.js.map +1 -0
  102. package/package.json +59 -0
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Recall Tool
3
+ *
4
+ * Search and retrieve memories using semantic search and filters.
5
+ */
6
+ import { z } from 'zod';
7
+ import { searchMemories, accessMemory, getRecentMemories, getHighPriorityMemories } from '../memory/store.js';
8
+ import { formatTimeSinceAccess } from '../memory/decay.js';
9
+ import { MemoryNotFoundError, formatErrorForMcp } from '../errors.js';
10
+ import { resolveProject } from '../context/project-context.js';
11
+ // Input schema for the recall tool
12
+ export const recallSchema = z.object({
13
+ query: z.string().optional().describe('Search query (semantic search)'),
14
+ category: z.enum([
15
+ 'architecture', 'pattern', 'preference', 'error',
16
+ 'context', 'learning', 'todo', 'note', 'relationship', 'custom'
17
+ ]).optional().describe('Filter by category'),
18
+ type: z.enum(['short_term', 'long_term', 'episodic']).optional()
19
+ .describe('Filter by memory type'),
20
+ project: z.string().optional().describe('Filter by project'),
21
+ tags: z.array(z.string()).optional().describe('Filter by tags'),
22
+ limit: z.number().min(1).max(50).optional().default(10)
23
+ .describe('Maximum number of results'),
24
+ includeDecayed: z.boolean().optional().default(false)
25
+ .describe('Include memories that have decayed below threshold'),
26
+ includeGlobal: z.boolean().optional().default(true)
27
+ .describe('Include global memories in search results (default: true)'),
28
+ mode: z.enum(['search', 'recent', 'important']).optional().default('search')
29
+ .describe('Recall mode: search (query-based), recent (by time), important (by salience)'),
30
+ });
31
+ /**
32
+ * Execute the recall tool
33
+ */
34
+ export async function executeRecall(input) {
35
+ try {
36
+ // Resolve project (auto-detect if not provided)
37
+ const resolvedProject = resolveProject(input.project);
38
+ const projectFilter = resolvedProject ?? undefined;
39
+ let memories = [];
40
+ switch (input.mode) {
41
+ case 'recent':
42
+ memories = getRecentMemories(input.limit, projectFilter);
43
+ break;
44
+ case 'important':
45
+ memories = getHighPriorityMemories(input.limit, projectFilter);
46
+ break;
47
+ case 'search':
48
+ default:
49
+ const results = await searchMemories({
50
+ query: input.query || '',
51
+ category: input.category,
52
+ type: input.type,
53
+ project: projectFilter,
54
+ tags: input.tags,
55
+ limit: input.limit,
56
+ includeDecayed: input.includeDecayed,
57
+ includeGlobal: input.includeGlobal,
58
+ });
59
+ memories = results.map(r => r.memory);
60
+ break;
61
+ }
62
+ // Access each memory to reinforce it
63
+ memories = memories.map(m => accessMemory(m.id) || m);
64
+ return {
65
+ success: true,
66
+ memories,
67
+ count: memories.length,
68
+ };
69
+ }
70
+ catch (error) {
71
+ return {
72
+ success: false,
73
+ error: formatErrorForMcp(error),
74
+ };
75
+ }
76
+ }
77
+ /**
78
+ * Format a single memory for display
79
+ */
80
+ export function formatMemory(memory, verbose = false) {
81
+ const lines = [
82
+ `[${memory.id}] **${memory.title}**`,
83
+ ` ${memory.content.slice(0, 200)}${memory.content.length > 200 ? '...' : ''}`,
84
+ ];
85
+ if (verbose) {
86
+ lines.push(` Type: ${memory.type} | Category: ${memory.category}`);
87
+ lines.push(` Salience: ${(memory.salience * 100).toFixed(0)}% | Accessed: ${memory.accessCount}x`);
88
+ lines.push(` Last access: ${formatTimeSinceAccess(memory)}`);
89
+ if (memory.tags.length > 0) {
90
+ lines.push(` Tags: ${memory.tags.join(', ')}`);
91
+ }
92
+ if (memory.project) {
93
+ lines.push(` Project: ${memory.project}`);
94
+ }
95
+ }
96
+ else {
97
+ lines.push(` (${memory.type}, ${memory.category}, ${formatTimeSinceAccess(memory)})`);
98
+ }
99
+ return lines.join('\n');
100
+ }
101
+ /**
102
+ * Format the recall result for MCP response
103
+ */
104
+ export function formatRecallResult(result, verbose = false) {
105
+ if (!result.success) {
106
+ return `Failed to recall: ${result.error}`;
107
+ }
108
+ if (!result.memories || result.memories.length === 0) {
109
+ return 'No memories found matching your query.';
110
+ }
111
+ const header = `Found ${result.count} ${result.count === 1 ? 'memory' : 'memories'}:\n`;
112
+ const formattedMemories = result.memories.map(m => formatMemory(m, verbose)).join('\n\n');
113
+ return header + formattedMemories;
114
+ }
115
+ /**
116
+ * Get a single memory by ID
117
+ */
118
+ export const getMemorySchema = z.object({
119
+ id: z.number().describe('Memory ID to retrieve'),
120
+ });
121
+ export function executeGetMemory(input) {
122
+ try {
123
+ const memory = accessMemory(input.id);
124
+ if (!memory) {
125
+ const error = new MemoryNotFoundError(input.id);
126
+ return {
127
+ success: false,
128
+ error: error.toUserMessage(),
129
+ };
130
+ }
131
+ return { success: true, memory };
132
+ }
133
+ catch (error) {
134
+ return {
135
+ success: false,
136
+ error: formatErrorForMcp(error),
137
+ };
138
+ }
139
+ }
140
+ //# sourceMappingURL=recall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recall.js","sourceRoot":"","sources":["../../src/tools/recall.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Remember Tool
3
+ *
4
+ * Store memories with automatic salience detection and categorization.
5
+ */
6
+ import { z } from 'zod';
7
+ import { MemoryCategory, MemoryType } from '../memory/types.js';
8
+ export declare const rememberSchema: z.ZodObject<{
9
+ title: z.ZodString;
10
+ content: z.ZodString;
11
+ category: z.ZodOptional<z.ZodEnum<["architecture", "pattern", "preference", "error", "context", "learning", "todo", "note", "relationship", "custom"]>>;
12
+ type: z.ZodOptional<z.ZodEnum<["short_term", "long_term", "episodic"]>>;
13
+ project: z.ZodOptional<z.ZodString>;
14
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
15
+ importance: z.ZodOptional<z.ZodEnum<["low", "normal", "high", "critical"]>>;
16
+ scope: z.ZodOptional<z.ZodEnum<["project", "global"]>>;
17
+ transferable: z.ZodOptional<z.ZodBoolean>;
18
+ }, "strip", z.ZodTypeAny, {
19
+ title: string;
20
+ content: string;
21
+ scope?: "project" | "global" | undefined;
22
+ transferable?: boolean | undefined;
23
+ project?: string | undefined;
24
+ category?: "architecture" | "pattern" | "preference" | "error" | "context" | "learning" | "todo" | "note" | "relationship" | "custom" | undefined;
25
+ type?: "short_term" | "long_term" | "episodic" | undefined;
26
+ tags?: string[] | undefined;
27
+ importance?: "critical" | "low" | "normal" | "high" | undefined;
28
+ }, {
29
+ title: string;
30
+ content: string;
31
+ scope?: "project" | "global" | undefined;
32
+ transferable?: boolean | undefined;
33
+ project?: string | undefined;
34
+ category?: "architecture" | "pattern" | "preference" | "error" | "context" | "learning" | "todo" | "note" | "relationship" | "custom" | undefined;
35
+ type?: "short_term" | "long_term" | "episodic" | undefined;
36
+ tags?: string[] | undefined;
37
+ importance?: "critical" | "low" | "normal" | "high" | undefined;
38
+ }>;
39
+ export type RememberInput = z.infer<typeof rememberSchema>;
40
+ /**
41
+ * Execute the remember tool
42
+ */
43
+ export declare function executeRemember(input: RememberInput): Promise<{
44
+ success: boolean;
45
+ memory?: {
46
+ id: number;
47
+ title: string;
48
+ salience: number;
49
+ type: MemoryType;
50
+ category: MemoryCategory;
51
+ reason: string;
52
+ linksCreated?: number;
53
+ truncated?: {
54
+ wasTruncated: boolean;
55
+ originalLength: number;
56
+ truncatedLength: number;
57
+ };
58
+ };
59
+ error?: string;
60
+ }>;
61
+ /**
62
+ * Format the remember result for MCP response
63
+ */
64
+ export declare function formatRememberResult(result: Awaited<ReturnType<typeof executeRemember>>): string;
65
+ //# sourceMappingURL=remember.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remember.d.ts","sourceRoot":"","sources":["../../src/tools/remember.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAKhE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBzB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE3D;;GAEG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC;IACnE,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,UAAU,CAAC;QACjB,QAAQ,EAAE,cAAc,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE;YACV,YAAY,EAAE,OAAO,CAAC;YACtB,cAAc,EAAE,MAAM,CAAC;YACvB,eAAe,EAAE,MAAM,CAAC;SACzB,CAAC;KACH,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CA2FD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,GAAG,MAAM,CAwBhG"}
@@ -0,0 +1,147 @@
1
+ /**
2
+ * Remember Tool
3
+ *
4
+ * Store memories with automatic salience detection and categorization.
5
+ */
6
+ import { z } from 'zod';
7
+ import { addMemory, searchMemories, detectRelationships, createMemoryLink, getLastTruncationInfo } from '../memory/store.js';
8
+ import { analyzeSalienceFactors, explainSalience } from '../memory/salience.js';
9
+ import { formatErrorForMcp } from '../errors.js';
10
+ import { resolveProject } from '../context/project-context.js';
11
+ // Input schema for the remember tool
12
+ export const rememberSchema = z.object({
13
+ title: z.string().describe('Short title for the memory (what to remember)'),
14
+ content: z.string().describe('Detailed content of the memory'),
15
+ category: z.enum([
16
+ 'architecture', 'pattern', 'preference', 'error',
17
+ 'context', 'learning', 'todo', 'note', 'relationship', 'custom'
18
+ ]).optional().describe('Category of memory (auto-detected if not provided)'),
19
+ type: z.enum(['short_term', 'long_term', 'episodic']).optional()
20
+ .describe('Memory type (auto-determined based on salience if not provided)'),
21
+ project: z.string().optional().describe('Project this memory belongs to'),
22
+ tags: z.array(z.string()).optional().describe('Tags for categorization'),
23
+ importance: z.enum(['low', 'normal', 'high', 'critical']).optional()
24
+ .describe('Override automatic salience detection'),
25
+ scope: z.enum(['project', 'global']).optional()
26
+ .describe('Memory scope: project (default) or global (cross-project)'),
27
+ transferable: z.boolean().optional()
28
+ .describe('Whether this memory can be transferred to other projects'),
29
+ });
30
+ /**
31
+ * Execute the remember tool
32
+ */
33
+ export async function executeRemember(input) {
34
+ try {
35
+ // Resolve project (auto-detect if not provided)
36
+ const resolvedProject = resolveProject(input.project);
37
+ // Map importance to salience override
38
+ let salienceOverride;
39
+ if (input.importance) {
40
+ const importanceMap = {
41
+ low: 0.3,
42
+ normal: 0.5,
43
+ high: 0.8,
44
+ critical: 1.0,
45
+ };
46
+ salienceOverride = importanceMap[input.importance];
47
+ }
48
+ // Check for duplicates
49
+ const existing = await searchMemories({
50
+ query: input.title,
51
+ project: resolvedProject ?? undefined,
52
+ limit: 3,
53
+ });
54
+ // If very similar memory exists, update instead
55
+ if (existing.length > 0 && existing[0].relevanceScore > 0.9) {
56
+ const existingMemory = existing[0].memory;
57
+ return {
58
+ success: true,
59
+ memory: {
60
+ id: existingMemory.id,
61
+ title: existingMemory.title,
62
+ salience: existingMemory.salience,
63
+ type: existingMemory.type,
64
+ category: existingMemory.category,
65
+ reason: 'Updated existing similar memory',
66
+ },
67
+ };
68
+ }
69
+ // Create the memory
70
+ const memory = addMemory({
71
+ title: input.title,
72
+ content: input.content,
73
+ category: input.category,
74
+ type: input.type,
75
+ project: resolvedProject ?? undefined,
76
+ tags: input.tags,
77
+ salience: salienceOverride,
78
+ scope: input.scope,
79
+ transferable: input.transferable,
80
+ });
81
+ // Auto-detect and create relationships with existing memories
82
+ let linksCreated = 0;
83
+ try {
84
+ const potentialLinks = detectRelationships(memory, 3);
85
+ for (const link of potentialLinks) {
86
+ const created = createMemoryLink(memory.id, link.targetId, link.relationship, link.strength);
87
+ if (created)
88
+ linksCreated++;
89
+ }
90
+ }
91
+ catch {
92
+ // Silently ignore relationship detection errors
93
+ }
94
+ // Explain why this was remembered
95
+ const factors = analyzeSalienceFactors({ title: input.title, content: input.content });
96
+ const reason = explainSalience(factors);
97
+ // Check if content was truncated
98
+ const truncationInfo = getLastTruncationInfo();
99
+ return {
100
+ success: true,
101
+ memory: {
102
+ id: memory.id,
103
+ title: memory.title,
104
+ salience: memory.salience,
105
+ type: memory.type,
106
+ category: memory.category,
107
+ reason,
108
+ linksCreated,
109
+ truncated: truncationInfo?.wasTruncated ? truncationInfo : undefined,
110
+ },
111
+ };
112
+ }
113
+ catch (error) {
114
+ return {
115
+ success: false,
116
+ error: formatErrorForMcp(error),
117
+ };
118
+ }
119
+ }
120
+ /**
121
+ * Format the remember result for MCP response
122
+ */
123
+ export function formatRememberResult(result) {
124
+ if (!result.success) {
125
+ return `Failed to remember: ${result.error}`;
126
+ }
127
+ const m = result.memory;
128
+ const lines = [
129
+ `✓ Remembered: "${m.title}"`,
130
+ ` ID: ${m.id}`,
131
+ ` Type: ${m.type}`,
132
+ ` Category: ${m.category}`,
133
+ ` Salience: ${(m.salience * 100).toFixed(0)}%`,
134
+ ` Reason: ${m.reason}`,
135
+ ];
136
+ if (m.linksCreated && m.linksCreated > 0) {
137
+ lines.push(` Links: ${m.linksCreated} related memories connected`);
138
+ }
139
+ if (m.truncated && m.truncated.wasTruncated) {
140
+ const originalKB = (m.truncated.originalLength / 1024).toFixed(1);
141
+ const truncatedKB = (m.truncated.truncatedLength / 1024).toFixed(1);
142
+ lines.push(` ⚠️ WARNING: Content truncated from ${originalKB}KB to ${truncatedKB}KB (10KB limit)`);
143
+ lines.push(` Consider splitting large memories into smaller, focused pieces.`);
144
+ }
145
+ return lines.join('\n');
146
+ }
147
+ //# sourceMappingURL=remember.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remember.js","sourceRoot":"","sources":["../../src/tools/remember.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Brain Worker
3
+ *
4
+ * Phase 4 Organic Brain Feature
5
+ *
6
+ * Background worker that performs brain-like maintenance operations:
7
+ * - Light tick (5 min): Prune activation cache, check predictive consolidation
8
+ * - Medium tick (30 min): Discover missing links, scan for contradictions
9
+ *
10
+ * This transforms the memory system from reactive to continuously organic.
11
+ */
12
+ import { WorkerConfig, LightTickResult, MediumTickResult, WorkerStatus } from './types.js';
13
+ /**
14
+ * Brain Worker Class
15
+ *
16
+ * Manages background processing timers and operations.
17
+ * Designed to be started by the visualization server and run continuously.
18
+ */
19
+ export declare class BrainWorker {
20
+ private lightTimer;
21
+ private mediumTimer;
22
+ private isRunning;
23
+ private config;
24
+ private stats;
25
+ private lastLightTick;
26
+ private lastMediumTick;
27
+ private lastConsolidation;
28
+ /**
29
+ * Create a new BrainWorker
30
+ *
31
+ * @param config - Partial configuration to override defaults
32
+ */
33
+ constructor(config?: Partial<WorkerConfig>);
34
+ /**
35
+ * Start the background worker
36
+ * Sets up interval timers for light and medium ticks
37
+ */
38
+ start(): void;
39
+ /**
40
+ * Stop the background worker
41
+ * Clears all interval timers
42
+ */
43
+ stop(): void;
44
+ /**
45
+ * Check if the worker is currently running
46
+ */
47
+ isActive(): boolean;
48
+ /**
49
+ * Light tick - runs every 5 minutes
50
+ *
51
+ * Operations:
52
+ * 1. Prune stale activation cache entries
53
+ * 2. Check if predictive consolidation should run
54
+ */
55
+ lightTick(): Promise<LightTickResult>;
56
+ /**
57
+ * Medium tick - runs every 30 minutes
58
+ *
59
+ * Operations:
60
+ * 1. Discover and create missing links
61
+ * 2. Scan for contradictions
62
+ */
63
+ mediumTick(): Promise<MediumTickResult>;
64
+ /**
65
+ * Get current worker status
66
+ */
67
+ getStatus(): WorkerStatus;
68
+ /**
69
+ * Get current configuration
70
+ */
71
+ getConfig(): WorkerConfig;
72
+ /**
73
+ * Update configuration
74
+ * Note: Changes won't affect running timers until restart
75
+ */
76
+ updateConfig(config: Partial<WorkerConfig>): void;
77
+ /**
78
+ * Manually trigger a light tick
79
+ * Useful for testing or immediate cache pruning
80
+ */
81
+ triggerLightTick(): Promise<LightTickResult>;
82
+ /**
83
+ * Manually trigger a medium tick
84
+ * Useful for testing or immediate link discovery
85
+ */
86
+ triggerMediumTick(): Promise<MediumTickResult>;
87
+ }
88
+ /**
89
+ * Get or create the default worker instance
90
+ */
91
+ export declare function getDefaultWorker(): BrainWorker;
92
+ /**
93
+ * Start the default worker if not already running
94
+ */
95
+ export declare function startDefaultWorker(): BrainWorker;
96
+ /**
97
+ * Stop the default worker
98
+ */
99
+ export declare function stopDefaultWorker(): void;
100
+ //# sourceMappingURL=brain-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brain-worker.d.ts","sourceRoot":"","sources":["../../src/worker/brain-worker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,YAAY,EAEZ,eAAe,EACf,gBAAgB,EAChB,YAAY,EACb,MAAM,YAAY,CAAC;AAgBpB;;;;;GAKG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAe;IAG7B,OAAO,CAAC,KAAK,CAIX;IAGF,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,iBAAiB,CAAqB;IAE9C;;;;OAIG;gBACS,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM;IAI9C;;;OAGG;IACH,KAAK,IAAI,IAAI;IAgCb;;;OAGG;IACH,IAAI,IAAI,IAAI;IAqBZ;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;;;;;OAMG;IACG,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC;IAqD3C;;;;;;OAMG;IACG,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC;IA4C7C;;OAEG;IACH,SAAS,IAAI,YAAY;IAUzB;;OAEG;IACH,SAAS,IAAI,YAAY;IAIzB;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAMjD;;;OAGG;IACH,gBAAgB,IAAI,OAAO,CAAC,eAAe,CAAC;IAI5C;;;OAGG;IACH,iBAAiB,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAG/C;AAKD;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,WAAW,CAK9C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,WAAW,CAMhD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAIxC"}