claude-cognitive 0.1.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 (196) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +256 -0
  3. package/bin/claude-cognitive.js +9 -0
  4. package/dist/agents/context.d.ts +40 -0
  5. package/dist/agents/context.d.ts.map +1 -0
  6. package/dist/agents/context.js +144 -0
  7. package/dist/agents/context.js.map +1 -0
  8. package/dist/agents/index.d.ts +9 -0
  9. package/dist/agents/index.d.ts.map +1 -0
  10. package/dist/agents/index.js +11 -0
  11. package/dist/agents/index.js.map +1 -0
  12. package/dist/agents/loader.d.ts +48 -0
  13. package/dist/agents/loader.d.ts.map +1 -0
  14. package/dist/agents/loader.js +157 -0
  15. package/dist/agents/loader.js.map +1 -0
  16. package/dist/agents/templates.d.ts +51 -0
  17. package/dist/agents/templates.d.ts.map +1 -0
  18. package/dist/agents/templates.js +186 -0
  19. package/dist/agents/templates.js.map +1 -0
  20. package/dist/agents/types.d.ts +52 -0
  21. package/dist/agents/types.d.ts.map +1 -0
  22. package/dist/agents/types.js +6 -0
  23. package/dist/agents/types.js.map +1 -0
  24. package/dist/cli/commands/config.d.ts +10 -0
  25. package/dist/cli/commands/config.d.ts.map +1 -0
  26. package/dist/cli/commands/config.js +22 -0
  27. package/dist/cli/commands/config.js.map +1 -0
  28. package/dist/cli/commands/index.d.ts +17 -0
  29. package/dist/cli/commands/index.d.ts.map +1 -0
  30. package/dist/cli/commands/index.js +17 -0
  31. package/dist/cli/commands/index.js.map +1 -0
  32. package/dist/cli/commands/init.d.ts +10 -0
  33. package/dist/cli/commands/init.d.ts.map +1 -0
  34. package/dist/cli/commands/init.js +109 -0
  35. package/dist/cli/commands/init.js.map +1 -0
  36. package/dist/cli/commands/install.d.ts +10 -0
  37. package/dist/cli/commands/install.d.ts.map +1 -0
  38. package/dist/cli/commands/install.js +440 -0
  39. package/dist/cli/commands/install.js.map +1 -0
  40. package/dist/cli/commands/learn.d.ts +10 -0
  41. package/dist/cli/commands/learn.d.ts.map +1 -0
  42. package/dist/cli/commands/learn.js +33 -0
  43. package/dist/cli/commands/learn.js.map +1 -0
  44. package/dist/cli/commands/recall.d.ts +10 -0
  45. package/dist/cli/commands/recall.d.ts.map +1 -0
  46. package/dist/cli/commands/recall.js +52 -0
  47. package/dist/cli/commands/recall.js.map +1 -0
  48. package/dist/cli/commands/reflect.d.ts +10 -0
  49. package/dist/cli/commands/reflect.d.ts.map +1 -0
  50. package/dist/cli/commands/reflect.js +48 -0
  51. package/dist/cli/commands/reflect.js.map +1 -0
  52. package/dist/cli/commands/semantic.d.ts +10 -0
  53. package/dist/cli/commands/semantic.d.ts.map +1 -0
  54. package/dist/cli/commands/semantic.js +67 -0
  55. package/dist/cli/commands/semantic.js.map +1 -0
  56. package/dist/cli/commands/serve.d.ts +10 -0
  57. package/dist/cli/commands/serve.d.ts.map +1 -0
  58. package/dist/cli/commands/serve.js +61 -0
  59. package/dist/cli/commands/serve.js.map +1 -0
  60. package/dist/cli/commands/status.d.ts +10 -0
  61. package/dist/cli/commands/status.d.ts.map +1 -0
  62. package/dist/cli/commands/status.js +44 -0
  63. package/dist/cli/commands/status.js.map +1 -0
  64. package/dist/cli/commands/sync.d.ts +10 -0
  65. package/dist/cli/commands/sync.d.ts.map +1 -0
  66. package/dist/cli/commands/sync.js +260 -0
  67. package/dist/cli/commands/sync.js.map +1 -0
  68. package/dist/cli/commands/uninstall.d.ts +10 -0
  69. package/dist/cli/commands/uninstall.d.ts.map +1 -0
  70. package/dist/cli/commands/uninstall.js +205 -0
  71. package/dist/cli/commands/uninstall.js.map +1 -0
  72. package/dist/cli/commands/update-bank.d.ts +10 -0
  73. package/dist/cli/commands/update-bank.d.ts.map +1 -0
  74. package/dist/cli/commands/update-bank.js +129 -0
  75. package/dist/cli/commands/update-bank.js.map +1 -0
  76. package/dist/cli/index.d.ts +6 -0
  77. package/dist/cli/index.d.ts.map +1 -0
  78. package/dist/cli/index.js +56 -0
  79. package/dist/cli/index.js.map +1 -0
  80. package/dist/cli/utils/errors.d.ts +42 -0
  81. package/dist/cli/utils/errors.d.ts.map +1 -0
  82. package/dist/cli/utils/errors.js +78 -0
  83. package/dist/cli/utils/errors.js.map +1 -0
  84. package/dist/cli/utils/index.d.ts +9 -0
  85. package/dist/cli/utils/index.d.ts.map +1 -0
  86. package/dist/cli/utils/index.js +7 -0
  87. package/dist/cli/utils/index.js.map +1 -0
  88. package/dist/cli/utils/output.d.ts +90 -0
  89. package/dist/cli/utils/output.d.ts.map +1 -0
  90. package/dist/cli/utils/output.js +164 -0
  91. package/dist/cli/utils/output.js.map +1 -0
  92. package/dist/client.d.ts +200 -0
  93. package/dist/client.d.ts.map +1 -0
  94. package/dist/client.js +447 -0
  95. package/dist/client.js.map +1 -0
  96. package/dist/config.d.ts +44 -0
  97. package/dist/config.d.ts.map +1 -0
  98. package/dist/config.js +264 -0
  99. package/dist/config.js.map +1 -0
  100. package/dist/errors.d.ts +72 -0
  101. package/dist/errors.d.ts.map +1 -0
  102. package/dist/errors.js +188 -0
  103. package/dist/errors.js.map +1 -0
  104. package/dist/events.d.ts +148 -0
  105. package/dist/events.d.ts.map +1 -0
  106. package/dist/events.js +115 -0
  107. package/dist/events.js.map +1 -0
  108. package/dist/hooks/index.d.ts +7 -0
  109. package/dist/hooks/index.d.ts.map +1 -0
  110. package/dist/hooks/index.js +7 -0
  111. package/dist/hooks/index.js.map +1 -0
  112. package/dist/hooks/inject-context.d.ts +18 -0
  113. package/dist/hooks/inject-context.d.ts.map +1 -0
  114. package/dist/hooks/inject-context.js +57 -0
  115. package/dist/hooks/inject-context.js.map +1 -0
  116. package/dist/hooks/process-session.d.ts +18 -0
  117. package/dist/hooks/process-session.d.ts.map +1 -0
  118. package/dist/hooks/process-session.js +119 -0
  119. package/dist/hooks/process-session.js.map +1 -0
  120. package/dist/index.d.ts +63 -0
  121. package/dist/index.d.ts.map +1 -0
  122. package/dist/index.js +59 -0
  123. package/dist/index.js.map +1 -0
  124. package/dist/learn/analyzers/git.d.ts +62 -0
  125. package/dist/learn/analyzers/git.d.ts.map +1 -0
  126. package/dist/learn/analyzers/git.js +183 -0
  127. package/dist/learn/analyzers/git.js.map +1 -0
  128. package/dist/learn/analyzers/index.d.ts +15 -0
  129. package/dist/learn/analyzers/index.d.ts.map +1 -0
  130. package/dist/learn/analyzers/index.js +10 -0
  131. package/dist/learn/analyzers/index.js.map +1 -0
  132. package/dist/learn/analyzers/package.d.ts +57 -0
  133. package/dist/learn/analyzers/package.d.ts.map +1 -0
  134. package/dist/learn/analyzers/package.js +245 -0
  135. package/dist/learn/analyzers/package.js.map +1 -0
  136. package/dist/learn/analyzers/readme.d.ts +27 -0
  137. package/dist/learn/analyzers/readme.d.ts.map +1 -0
  138. package/dist/learn/analyzers/readme.js +163 -0
  139. package/dist/learn/analyzers/readme.js.map +1 -0
  140. package/dist/learn/analyzers/source.d.ts +70 -0
  141. package/dist/learn/analyzers/source.d.ts.map +1 -0
  142. package/dist/learn/analyzers/source.js +231 -0
  143. package/dist/learn/analyzers/source.js.map +1 -0
  144. package/dist/learn/analyzers/structure.d.ts +39 -0
  145. package/dist/learn/analyzers/structure.d.ts.map +1 -0
  146. package/dist/learn/analyzers/structure.js +172 -0
  147. package/dist/learn/analyzers/structure.js.map +1 -0
  148. package/dist/learn/extractor.d.ts +76 -0
  149. package/dist/learn/extractor.d.ts.map +1 -0
  150. package/dist/learn/extractor.js +302 -0
  151. package/dist/learn/extractor.js.map +1 -0
  152. package/dist/learn/index.d.ts +31 -0
  153. package/dist/learn/index.d.ts.map +1 -0
  154. package/dist/learn/index.js +165 -0
  155. package/dist/learn/index.js.map +1 -0
  156. package/dist/mcp/handlers.d.ts +23 -0
  157. package/dist/mcp/handlers.d.ts.map +1 -0
  158. package/dist/mcp/handlers.js +124 -0
  159. package/dist/mcp/handlers.js.map +1 -0
  160. package/dist/mcp/index.d.ts +32 -0
  161. package/dist/mcp/index.d.ts.map +1 -0
  162. package/dist/mcp/index.js +40 -0
  163. package/dist/mcp/index.js.map +1 -0
  164. package/dist/mcp/server.d.ts +79 -0
  165. package/dist/mcp/server.d.ts.map +1 -0
  166. package/dist/mcp/server.js +277 -0
  167. package/dist/mcp/server.js.map +1 -0
  168. package/dist/mcp/tools.d.ts +59 -0
  169. package/dist/mcp/tools.d.ts.map +1 -0
  170. package/dist/mcp/tools.js +43 -0
  171. package/dist/mcp/tools.js.map +1 -0
  172. package/dist/mcp/types.d.ts +65 -0
  173. package/dist/mcp/types.d.ts.map +1 -0
  174. package/dist/mcp/types.js +6 -0
  175. package/dist/mcp/types.js.map +1 -0
  176. package/dist/mind.d.ts +250 -0
  177. package/dist/mind.d.ts.map +1 -0
  178. package/dist/mind.js +637 -0
  179. package/dist/mind.js.map +1 -0
  180. package/dist/promotion.d.ts +112 -0
  181. package/dist/promotion.d.ts.map +1 -0
  182. package/dist/promotion.js +196 -0
  183. package/dist/promotion.js.map +1 -0
  184. package/dist/retry.d.ts +70 -0
  185. package/dist/retry.d.ts.map +1 -0
  186. package/dist/retry.js +122 -0
  187. package/dist/retry.js.map +1 -0
  188. package/dist/semantic.d.ts +202 -0
  189. package/dist/semantic.d.ts.map +1 -0
  190. package/dist/semantic.js +424 -0
  191. package/dist/semantic.js.map +1 -0
  192. package/dist/types.d.ts +363 -0
  193. package/dist/types.d.ts.map +1 -0
  194. package/dist/types.js +30 -0
  195. package/dist/types.js.map +1 -0
  196. package/package.json +70 -0
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Learn operation - bootstrap memory from existing codebase.
3
+ * @module learn
4
+ */
5
+ import { analyzeReadme, analyzePackage, analyzeStructure, analyzeGitHistory, analyzeSource, } from "./analyzers/index.js";
6
+ import { createFactExtractor } from "./extractor.js";
7
+ /**
8
+ * Default options for learn().
9
+ */
10
+ const DEFAULT_OPTIONS = {
11
+ depth: "standard",
12
+ includeGitHistory: true,
13
+ maxCommits: 100,
14
+ includeDependencies: true,
15
+ };
16
+ /**
17
+ * Bootstrap memory from an existing codebase.
18
+ *
19
+ * This operation analyzes the project and stores facts in Hindsight,
20
+ * solving the cold start problem when adopting claude-cognitive.
21
+ *
22
+ * @param client - HindsightClient instance
23
+ * @param bankId - Memory bank ID
24
+ * @param projectPath - Project root directory
25
+ * @param options - Learn options
26
+ * @returns Learn result with summary and stats
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * const result = await learn(client, 'my-project', '/path/to/project', {
31
+ * depth: 'full',
32
+ * includeGitHistory: true
33
+ * });
34
+ *
35
+ * console.log(result.summary);
36
+ * // "Learned 47 world facts from 123 files, formed 5 opinions"
37
+ * ```
38
+ */
39
+ export async function learn(client, bankId, projectPath, options = {}) {
40
+ const startTime = Date.now();
41
+ const opts = { ...DEFAULT_OPTIONS, ...options };
42
+ // Phase 1: Run analysis based on depth
43
+ const analysis = await runAnalysis(projectPath, opts);
44
+ // Phase 2: Extract facts
45
+ const extractor = createFactExtractor();
46
+ const facts = extractor.extractFacts(analysis.results);
47
+ // Phase 3: Store facts via retain()
48
+ let worldFacts = 0;
49
+ const failedFacts = [];
50
+ for (const fact of facts) {
51
+ try {
52
+ await client.retain(bankId, fact.content, fact.context);
53
+ worldFacts++;
54
+ }
55
+ catch (error) {
56
+ // Log but continue - don't fail entire learn on single fact
57
+ const msg = error instanceof Error ? error.message : String(error);
58
+ failedFacts.push(`${fact.content.substring(0, 50)}...: ${msg}`);
59
+ }
60
+ }
61
+ // Phase 4: Form initial opinions via reflect()
62
+ const opinions = [];
63
+ const entities = [];
64
+ const entitySet = new Set();
65
+ const reflectionQueries = getReflectionQueries(opts.depth);
66
+ for (const query of reflectionQueries) {
67
+ try {
68
+ const result = await client.reflect(bankId, query);
69
+ opinions.push(...result.opinions);
70
+ // Collect entities from basedOn memories
71
+ const allMemories = [
72
+ ...result.basedOn.world,
73
+ ...result.basedOn.experience,
74
+ ...result.basedOn.opinion,
75
+ ];
76
+ for (const memory of allMemories) {
77
+ for (const entity of memory.entities ?? []) {
78
+ if (!entitySet.has(entity.id)) {
79
+ entitySet.add(entity.id);
80
+ entities.push(entity);
81
+ }
82
+ }
83
+ }
84
+ }
85
+ catch {
86
+ // Reflection failed, continue without opinions for this query
87
+ }
88
+ }
89
+ const duration = Date.now() - startTime;
90
+ return {
91
+ summary: generateSummary(worldFacts, opinions, analysis.filesAnalyzed, duration, failedFacts),
92
+ worldFacts,
93
+ opinions,
94
+ entities,
95
+ filesAnalyzed: analysis.filesAnalyzed,
96
+ duration,
97
+ };
98
+ }
99
+ /**
100
+ * Run analysis based on depth.
101
+ * @internal
102
+ */
103
+ async function runAnalysis(projectPath, opts) {
104
+ const results = {};
105
+ let filesAnalyzed = 0;
106
+ // Quick depth: README, package.json, structure (shallow)
107
+ results.readme = await analyzeReadme(projectPath);
108
+ results.package = await analyzePackage(projectPath);
109
+ results.structure = await analyzeStructure(projectPath, opts.depth === "quick" ? 2 : opts.depth === "standard" ? 4 : 10);
110
+ filesAnalyzed += results.structure?.totalFiles ?? 0;
111
+ // Standard and full depth: add git history
112
+ if (opts.depth !== "quick" && opts.includeGitHistory) {
113
+ const maxCommits = opts.depth === "standard" ? 50 : opts.maxCommits;
114
+ results.git = await analyzeGitHistory(projectPath, maxCommits);
115
+ }
116
+ // Full depth: add source code analysis
117
+ if (opts.depth === "full") {
118
+ // Get all source files from entry points and source directories
119
+ const sourceFiles = [];
120
+ if (results.structure?.entryPoints) {
121
+ sourceFiles.push(...results.structure.entryPoints);
122
+ }
123
+ // Add files from source directories (if available from structure scan)
124
+ // For now, we use entry points; a more complete implementation would
125
+ // recursively collect all source files
126
+ if (sourceFiles.length > 0) {
127
+ results.source = await analyzeSource(projectPath, sourceFiles);
128
+ }
129
+ }
130
+ return { results, filesAnalyzed };
131
+ }
132
+ /**
133
+ * Get reflection queries based on depth.
134
+ * @internal
135
+ */
136
+ function getReflectionQueries(depth) {
137
+ const queries = [
138
+ "What are the main technologies and patterns used in this codebase?",
139
+ ];
140
+ if (depth === "standard" || depth === "full") {
141
+ queries.push("What architectural decisions seem important in this project?", "What areas of the codebase might need attention based on its structure?");
142
+ }
143
+ if (depth === "full") {
144
+ queries.push("What coding conventions and patterns should be followed when making changes?", "What are the most critical files and components in this codebase?");
145
+ }
146
+ return queries;
147
+ }
148
+ /**
149
+ * Generate human-readable summary.
150
+ * @internal
151
+ */
152
+ function generateSummary(worldFacts, opinions, filesAnalyzed, duration, failedFacts) {
153
+ const parts = [];
154
+ parts.push(`Learned ${worldFacts} world facts from ${filesAnalyzed} files`);
155
+ if (opinions.length > 0) {
156
+ const avgConfidence = opinions.reduce((sum, o) => sum + o.confidence, 0) / opinions.length;
157
+ parts.push(`formed ${opinions.length} opinions with avg confidence ${avgConfidence.toFixed(2)}`);
158
+ }
159
+ parts.push(`Duration: ${(duration / 1000).toFixed(1)}s`);
160
+ if (failedFacts.length > 0) {
161
+ parts.push(`(${failedFacts.length} facts failed to store)`);
162
+ }
163
+ return parts.join("; ");
164
+ }
165
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/learn/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * MCP tool execution handlers.
3
+ * @module mcp/handlers
4
+ */
5
+ import type { Mind } from "../mind.js";
6
+ import type { RecallToolInput, ReflectToolInput, ToolResult } from "./types.js";
7
+ /**
8
+ * Handle memory_recall tool invocation.
9
+ *
10
+ * @param mind - Mind instance to use for recall
11
+ * @param input - Tool input with query and optional type filter
12
+ * @returns Tool result with formatted memories
13
+ */
14
+ export declare function handleRecall(mind: Mind, input: RecallToolInput): Promise<ToolResult>;
15
+ /**
16
+ * Handle memory_reflect tool invocation.
17
+ *
18
+ * @param mind - Mind instance to use for reflection
19
+ * @param input - Tool input with query
20
+ * @returns Tool result with formatted reflection
21
+ */
22
+ export declare function handleReflect(mind: Mind, input: ReflectToolInput): Promise<ToolResult>;
23
+ //# sourceMappingURL=handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/mcp/handlers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA8EhF;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,UAAU,CAAC,CAqBrB;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,UAAU,CAAC,CA8BrB"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * MCP tool execution handlers.
3
+ * @module mcp/handlers
4
+ */
5
+ // ============================================
6
+ // Formatters
7
+ // ============================================
8
+ /**
9
+ * Format memories as readable text for Claude.
10
+ */
11
+ function formatMemories(memories) {
12
+ if (memories.length === 0) {
13
+ return "No relevant memories found.";
14
+ }
15
+ const lines = [`Found ${memories.length} relevant memories:\n`];
16
+ for (const memory of memories) {
17
+ const date = new Date(memory.createdAt).toLocaleDateString();
18
+ const type = memory.factType;
19
+ lines.push(`[${type}] ${date}`);
20
+ lines.push(memory.text);
21
+ // Include confidence for opinions
22
+ if (memory.factType === "opinion" && memory.confidence !== undefined) {
23
+ lines.push(` Confidence: ${(memory.confidence * 100).toFixed(0)}%`);
24
+ }
25
+ // Include context if available
26
+ if (memory.context) {
27
+ lines.push(` Context: ${memory.context}`);
28
+ }
29
+ lines.push(""); // Blank line between memories
30
+ }
31
+ return lines.join("\n").trim();
32
+ }
33
+ /**
34
+ * Format reflect result as readable text for Claude.
35
+ */
36
+ function formatReflection(result) {
37
+ const lines = [];
38
+ // Main reflection text
39
+ lines.push(result.text);
40
+ lines.push("");
41
+ // List opinions formed
42
+ if (result.opinions.length > 0) {
43
+ lines.push("Opinions formed:");
44
+ for (const opinion of result.opinions) {
45
+ const confidence = (opinion.confidence * 100).toFixed(0);
46
+ lines.push(`- ${opinion.opinion} (${confidence}% confidence)`);
47
+ }
48
+ lines.push("");
49
+ }
50
+ // Summarize what the reflection was based on
51
+ const worldCount = result.basedOn.world.length;
52
+ const expCount = result.basedOn.experience.length;
53
+ const opinionCount = result.basedOn.opinion.length;
54
+ const total = worldCount + expCount + opinionCount;
55
+ if (total > 0) {
56
+ lines.push(`Based on ${total} memories: ${worldCount} world facts, ${expCount} experiences, ${opinionCount} prior opinions.`);
57
+ }
58
+ return lines.join("\n").trim();
59
+ }
60
+ // ============================================
61
+ // Handlers
62
+ // ============================================
63
+ /**
64
+ * Handle memory_recall tool invocation.
65
+ *
66
+ * @param mind - Mind instance to use for recall
67
+ * @param input - Tool input with query and optional type filter
68
+ * @returns Tool result with formatted memories
69
+ */
70
+ export async function handleRecall(mind, input) {
71
+ try {
72
+ const options = input.type && input.type !== "all" ? { factType: input.type } : undefined;
73
+ const memories = await mind.recall(input.query, options);
74
+ const text = formatMemories(memories);
75
+ return {
76
+ content: [{ type: "text", text }],
77
+ };
78
+ }
79
+ catch (error) {
80
+ const message = error instanceof Error ? error.message : "Unknown error occurred";
81
+ return {
82
+ content: [
83
+ { type: "text", text: `Error searching memories: ${message}` },
84
+ ],
85
+ isError: true,
86
+ };
87
+ }
88
+ }
89
+ /**
90
+ * Handle memory_reflect tool invocation.
91
+ *
92
+ * @param mind - Mind instance to use for reflection
93
+ * @param input - Tool input with query
94
+ * @returns Tool result with formatted reflection
95
+ */
96
+ export async function handleReflect(mind, input) {
97
+ try {
98
+ const result = await mind.reflect(input.query);
99
+ const text = formatReflection(result);
100
+ return {
101
+ content: [{ type: "text", text }],
102
+ };
103
+ }
104
+ catch (error) {
105
+ const message = error instanceof Error ? error.message : "Unknown error occurred";
106
+ // Check if this is a degraded mode error
107
+ if (message.includes("requires Hindsight connection")) {
108
+ return {
109
+ content: [
110
+ {
111
+ type: "text",
112
+ text: "Cannot reflect: Hindsight server is unavailable. Memory operations are in degraded mode.",
113
+ },
114
+ ],
115
+ isError: true,
116
+ };
117
+ }
118
+ return {
119
+ content: [{ type: "text", text: `Error reflecting: ${message}` }],
120
+ isError: true,
121
+ };
122
+ }
123
+ }
124
+ //# sourceMappingURL=handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/mcp/handlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * MCP (Model Context Protocol) server for claude-cognitive.
3
+ * @module mcp
4
+ */
5
+ export { ClaudeMindMcpServer } from "./server.js";
6
+ export { TOOL_DEFINITIONS, recallInputSchema, reflectInputSchema, } from "./tools.js";
7
+ export { handleRecall, handleReflect } from "./handlers.js";
8
+ export type { HttpTransportConfig, McpServerOptions, McpTransportType, RecallToolInput, ReflectToolInput, ToolResult, ToolResultContent, } from "./types.js";
9
+ import { ClaudeMindMcpServer } from "./server.js";
10
+ import type { McpServerOptions } from "./types.js";
11
+ /**
12
+ * Factory function to create and start an MCP server.
13
+ *
14
+ * @param options - Server configuration options
15
+ * @returns Started MCP server instance
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * import { createMcpServer } from 'claude-cognitive/mcp';
20
+ * import { Mind } from 'claude-cognitive';
21
+ *
22
+ * const mind = new Mind({ projectPath: process.cwd() });
23
+ * await mind.init();
24
+ *
25
+ * const server = await createMcpServer({
26
+ * mind,
27
+ * transport: 'stdio',
28
+ * });
29
+ * ```
30
+ */
31
+ export declare function createMcpServer(options: McpServerOptions): Promise<ClaudeMindMcpServer>;
32
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGlD,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG5D,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAMpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,mBAAmB,CAAC,CAI9B"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * MCP (Model Context Protocol) server for claude-cognitive.
3
+ * @module mcp
4
+ */
5
+ // Server
6
+ export { ClaudeMindMcpServer } from "./server.js";
7
+ // Tools
8
+ export { TOOL_DEFINITIONS, recallInputSchema, reflectInputSchema, } from "./tools.js";
9
+ // Handlers
10
+ export { handleRecall, handleReflect } from "./handlers.js";
11
+ // ============================================
12
+ // Factory Function
13
+ // ============================================
14
+ import { ClaudeMindMcpServer } from "./server.js";
15
+ /**
16
+ * Factory function to create and start an MCP server.
17
+ *
18
+ * @param options - Server configuration options
19
+ * @returns Started MCP server instance
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * import { createMcpServer } from 'claude-cognitive/mcp';
24
+ * import { Mind } from 'claude-cognitive';
25
+ *
26
+ * const mind = new Mind({ projectPath: process.cwd() });
27
+ * await mind.init();
28
+ *
29
+ * const server = await createMcpServer({
30
+ * mind,
31
+ * transport: 'stdio',
32
+ * });
33
+ * ```
34
+ */
35
+ export async function createMcpServer(options) {
36
+ const server = new ClaudeMindMcpServer(options);
37
+ await server.start();
38
+ return server;
39
+ }
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,SAAS;AACT,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,QAAQ;AACR,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,WAAW;AACX,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAa5D,+CAA+C;AAC/C,mBAAmB;AACnB,+CAA+C;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGlD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAyB;IAEzB,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACrB,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * MCP server implementation for claude-cognitive.
3
+ * @module mcp/server
4
+ */
5
+ import type { McpServerOptions, McpTransportType } from "./types.js";
6
+ /**
7
+ * ClaudeMindMcpServer wraps the MCP SDK and provides memory tools.
8
+ *
9
+ * Supports both STDIO and HTTP transports for flexible deployment:
10
+ * - STDIO: For local CLI integration with Claude Code
11
+ * - HTTP: For remote/networked deployments and testing
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * const mind = new Mind({ projectPath: '/path/to/project' });
16
+ * await mind.init();
17
+ *
18
+ * const server = new ClaudeMindMcpServer({
19
+ * mind,
20
+ * transport: 'stdio',
21
+ * });
22
+ *
23
+ * await server.start();
24
+ * ```
25
+ */
26
+ export declare class ClaudeMindMcpServer {
27
+ private readonly mind;
28
+ private readonly transportType;
29
+ private readonly serverName;
30
+ private readonly serverVersion;
31
+ private readonly httpConfig;
32
+ private mcpServer;
33
+ private httpServer;
34
+ private expressApp;
35
+ private running;
36
+ constructor(options: McpServerOptions);
37
+ /**
38
+ * Start the MCP server.
39
+ *
40
+ * @throws {Error} If server is already running
41
+ */
42
+ start(): Promise<void>;
43
+ /**
44
+ * Stop the MCP server.
45
+ */
46
+ stop(): Promise<void>;
47
+ /**
48
+ * Check if the server is running.
49
+ */
50
+ isRunning(): boolean;
51
+ /**
52
+ * Get the transport type.
53
+ */
54
+ getTransportType(): McpTransportType;
55
+ /**
56
+ * Get the HTTP port (only relevant for HTTP transport).
57
+ */
58
+ getHttpPort(): number;
59
+ /**
60
+ * Get the HTTP host (only relevant for HTTP transport).
61
+ */
62
+ getHttpHost(): string;
63
+ /**
64
+ * Register memory tools with the MCP server.
65
+ */
66
+ private registerTools;
67
+ /**
68
+ * Start STDIO transport.
69
+ */
70
+ private startStdioTransport;
71
+ /**
72
+ * Start HTTP transport with Express.
73
+ *
74
+ * Note: The MCP SDK's StreamableHTTPServerTransport is still experimental.
75
+ * For now, we implement a simple JSON-RPC endpoint.
76
+ */
77
+ private startHttpTransport;
78
+ }
79
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,OAAO,KAAK,EAEV,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAmBpB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAO;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmB;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgC;IAE3D,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,gBAAgB;IAarC;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB3B;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,gBAAgB,IAAI,gBAAgB;IAIpC;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,OAAO,CAAC,aAAa;IA2CrB;;OAEG;YACW,mBAAmB;IAUjC;;;;;OAKG;YACW,kBAAkB;CA0GjC"}