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,109 @@
1
+ /**
2
+ * CLI init command - initialize claude-cognitive for a project.
3
+ * @module cli/commands/init
4
+ */
5
+ import { mkdir, writeFile, access } from "node:fs/promises";
6
+ import { join } from "node:path";
7
+ import { Mind } from "../../mind.js";
8
+ import { CLIError, ExitCode, info, output } from "../utils/index.js";
9
+ /**
10
+ * Register the init command.
11
+ */
12
+ export function registerInitCommand(cli) {
13
+ cli
14
+ .command("init", "Initialize claude-cognitive for the current project")
15
+ .option("--project <path>", "Project directory (default: current directory)")
16
+ .option("--bank-id <id>", "Memory bank ID (default: derived from project name)")
17
+ .option("--force", "Overwrite existing configuration")
18
+ .option("--json", "Output as JSON")
19
+ .option("--quiet", "Suppress output")
20
+ .action(async (options) => {
21
+ const projectPath = options.project ?? process.cwd();
22
+ const rcPath = join(projectPath, ".claudemindrc");
23
+ const semanticDir = join(projectPath, ".claude");
24
+ const semanticPath = join(semanticDir, "memory.md");
25
+ const result = {
26
+ rcPath,
27
+ semanticPath,
28
+ bankId: "",
29
+ created: {
30
+ rc: false,
31
+ semantic: false,
32
+ bank: false,
33
+ },
34
+ };
35
+ // Check if .claudemindrc exists
36
+ const rcExists = await access(rcPath)
37
+ .then(() => true)
38
+ .catch(() => false);
39
+ if (rcExists && !options.force) {
40
+ throw new CLIError("Configuration already exists. Use --force to overwrite.", ExitCode.CONFIG_ERROR, `Existing file: ${rcPath}`);
41
+ }
42
+ // Create default configuration
43
+ const defaultConfig = {
44
+ hindsight: {
45
+ host: "localhost",
46
+ port: 8888,
47
+ },
48
+ bankId: options.bankId,
49
+ disposition: {
50
+ skepticism: 3,
51
+ literalism: 3,
52
+ empathy: 3,
53
+ },
54
+ semantic: {
55
+ path: ".claude/memory.md",
56
+ },
57
+ };
58
+ // Write .claudemindrc
59
+ await writeFile(rcPath, JSON.stringify(defaultConfig, null, 2) + "\n");
60
+ result.created.rc = true;
61
+ info(`Created ${rcPath}`, options);
62
+ // Create .claude directory and memory.md if they don't exist
63
+ const semanticExists = await access(semanticPath)
64
+ .then(() => true)
65
+ .catch(() => false);
66
+ if (!semanticExists) {
67
+ await mkdir(semanticDir, { recursive: true });
68
+ const defaultSemantic = `# Project Memory
69
+
70
+ ## Tech Stack
71
+
72
+ <!-- Add your tech stack here -->
73
+
74
+ ## Key Decisions
75
+
76
+ <!-- Document important architectural decisions -->
77
+
78
+ ## Critical Paths
79
+
80
+ <!-- List important code paths -->
81
+
82
+ ## Observations
83
+
84
+ <!-- Promoted insights from Hindsight -->
85
+ `;
86
+ await writeFile(semanticPath, defaultSemantic);
87
+ result.created.semantic = true;
88
+ info(`Created ${semanticPath}`, options);
89
+ }
90
+ // Initialize Mind to create bank
91
+ try {
92
+ const mind = new Mind({ projectPath });
93
+ await mind.init();
94
+ result.bankId = mind.getBankId();
95
+ result.created.bank = !mind.isDegraded;
96
+ if (mind.isDegraded) {
97
+ info("Warning: Hindsight unavailable. Bank not created.", options);
98
+ }
99
+ else {
100
+ info(`Bank '${result.bankId}' ready`, options);
101
+ }
102
+ }
103
+ catch (error) {
104
+ info(`Warning: Could not connect to Hindsight: ${error instanceof Error ? error.message : error}`, options);
105
+ }
106
+ output(result, (r) => `Initialized claude-cognitive:\n Config: ${r.rcPath}\n Semantic: ${r.semanticPath}\n Bank: ${r.bankId || "(not created)"}`, options);
107
+ });
108
+ }
109
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * CLI install command - interactive installer for claude-cognitive.
3
+ * @module cli/commands/install
4
+ */
5
+ import type { CAC } from "cac";
6
+ /**
7
+ * Register the install command.
8
+ */
9
+ export declare function registerInstallCommand(cli: CAC): void;
10
+ //# sourceMappingURL=install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAuM/B;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAgXrD"}
@@ -0,0 +1,440 @@
1
+ /**
2
+ * CLI install command - interactive installer for claude-cognitive.
3
+ * @module cli/commands/install
4
+ */
5
+ import { createInterface } from "node:readline";
6
+ import { mkdir, writeFile, readFile, access } from "node:fs/promises";
7
+ import { join, basename } from "node:path";
8
+ import { homedir } from "node:os";
9
+ import { Mind } from "../../mind.js";
10
+ const COLORS = {
11
+ reset: "\x1b[0m",
12
+ bright: "\x1b[1m",
13
+ dim: "\x1b[2m",
14
+ green: "\x1b[32m",
15
+ yellow: "\x1b[33m",
16
+ blue: "\x1b[34m",
17
+ cyan: "\x1b[36m",
18
+ };
19
+ function color(text, c) {
20
+ return `${COLORS[c]}${text}${COLORS.reset}`;
21
+ }
22
+ function print(text) {
23
+ console.log(text);
24
+ }
25
+ function printHeader() {
26
+ print("");
27
+ print(color("╔═══════════════════════════════════════════╗", "cyan"));
28
+ print(color("║ claude-cognitive interactive setup ║", "cyan"));
29
+ print(color("╚═══════════════════════════════════════════╝", "cyan"));
30
+ print("");
31
+ print(color("LLM thinks. Hindsight remembers. Together = mind.", "dim"));
32
+ print("");
33
+ }
34
+ function printStep(step, total, title) {
35
+ print("");
36
+ print(color(`[${step}/${total}] ${title}`, "bright"));
37
+ print(color("─".repeat(45), "dim"));
38
+ }
39
+ function printSuccess(text) {
40
+ print(color(`✓ ${text}`, "green"));
41
+ }
42
+ function printInfo(text) {
43
+ print(color(` ${text}`, "dim"));
44
+ }
45
+ /**
46
+ * Create a readline interface for prompts.
47
+ */
48
+ function createPrompt() {
49
+ const rl = createInterface({
50
+ input: process.stdin,
51
+ output: process.stdout,
52
+ });
53
+ const ask = (question, defaultValue) => {
54
+ const defaultHint = defaultValue ? color(` (${defaultValue})`, "dim") : "";
55
+ return new Promise((resolve) => {
56
+ rl.question(` ${question}${defaultHint}: `, (answer) => {
57
+ resolve(answer.trim() || defaultValue || "");
58
+ });
59
+ });
60
+ };
61
+ const confirm = (question, defaultValue = true) => {
62
+ const hint = defaultValue ? "[Y/n]" : "[y/N]";
63
+ return new Promise((resolve) => {
64
+ rl.question(` ${question} ${color(hint, "dim")}: `, (answer) => {
65
+ if (!answer.trim()) {
66
+ resolve(defaultValue);
67
+ }
68
+ else {
69
+ resolve(answer.toLowerCase().startsWith("y"));
70
+ }
71
+ });
72
+ });
73
+ };
74
+ const select = (question, options, defaultIndex = 0) => {
75
+ print(` ${question}`);
76
+ options.forEach((opt, i) => {
77
+ const marker = i === defaultIndex ? color("→", "cyan") : " ";
78
+ const num = color(`${i + 1}`, "cyan");
79
+ print(` ${marker} ${num}. ${opt.label}`);
80
+ });
81
+ return new Promise((resolve) => {
82
+ rl.question(` ${color(`Enter choice (1-${options.length})`, "dim")}: `, (answer) => {
83
+ const idx = parseInt(answer.trim(), 10) - 1;
84
+ const selected = options[idx];
85
+ const defaultOpt = options[defaultIndex];
86
+ if (selected) {
87
+ resolve(selected.value);
88
+ }
89
+ else if (defaultOpt) {
90
+ resolve(defaultOpt.value);
91
+ }
92
+ else {
93
+ // This should never happen since we require minItems: 2
94
+ const firstOpt = options[0];
95
+ resolve(firstOpt ? firstOpt.value : "");
96
+ }
97
+ });
98
+ });
99
+ };
100
+ const close = () => {
101
+ rl.close();
102
+ };
103
+ return { ask, confirm, select, close };
104
+ }
105
+ /**
106
+ * Check if a file exists.
107
+ */
108
+ async function fileExists(path) {
109
+ try {
110
+ await access(path);
111
+ return true;
112
+ }
113
+ catch {
114
+ return false;
115
+ }
116
+ }
117
+ /**
118
+ * Get the Claude Code MCP config path.
119
+ * - Global: ~/.claude.json
120
+ * - Project: .mcp.json in project root
121
+ */
122
+ function getMcpConfigPath(global, projectPath) {
123
+ if (global) {
124
+ return join(homedir(), ".claude.json");
125
+ }
126
+ return join(projectPath, ".mcp.json");
127
+ }
128
+ /**
129
+ * Read existing MCP config or return empty object.
130
+ */
131
+ async function readMcpConfig(path) {
132
+ try {
133
+ const content = await readFile(path, "utf-8");
134
+ return JSON.parse(content);
135
+ }
136
+ catch {
137
+ return {};
138
+ }
139
+ }
140
+ /**
141
+ * Get the command to run claude-cognitive serve.
142
+ * Detects if globally installed or uses local path.
143
+ */
144
+ async function getServeCommand() {
145
+ // Check if claude-cognitive is globally installed
146
+ try {
147
+ const { execSync } = await import("node:child_process");
148
+ execSync("which claude-cognitive", { stdio: "ignore" });
149
+ return {
150
+ command: "claude-cognitive",
151
+ args: ["serve"],
152
+ };
153
+ }
154
+ catch {
155
+ // Use npx as fallback, or direct node path
156
+ return {
157
+ command: "npx",
158
+ args: ["claude-cognitive", "serve"],
159
+ };
160
+ }
161
+ }
162
+ /**
163
+ * Register the install command.
164
+ */
165
+ export function registerInstallCommand(cli) {
166
+ cli
167
+ .command("install", "Interactive installer for claude-cognitive")
168
+ .option("--project <path>", "Project directory (skips prompt)")
169
+ .action(async (options) => {
170
+ const prompt = createPrompt();
171
+ try {
172
+ printHeader();
173
+ const answers = {
174
+ projectPath: options.project || process.cwd(),
175
+ bankId: "",
176
+ disposition: { skepticism: 3, literalism: 3, empathy: 3 },
177
+ background: "",
178
+ configureClaudeCode: true,
179
+ globalInstall: false,
180
+ runLearn: false,
181
+ learnDepth: "standard",
182
+ };
183
+ // Step 1: Project path
184
+ printStep(1, 5, "Project Configuration");
185
+ if (!options.project) {
186
+ answers.projectPath = await prompt.ask("Project path", process.cwd());
187
+ }
188
+ printInfo(`Using: ${answers.projectPath}`);
189
+ // Derive default bank ID from project name
190
+ const defaultBankId = basename(answers.projectPath)
191
+ .toLowerCase()
192
+ .replace(/[^a-z0-9-]/g, "-");
193
+ answers.bankId = await prompt.ask("Memory bank ID", defaultBankId);
194
+ answers.background = await prompt.ask("Project description (optional)", "");
195
+ // Step 2: Disposition
196
+ printStep(2, 5, "Disposition (personality traits)");
197
+ print(color(" These traits shape how claude-cognitive reasons about your project.", "dim"));
198
+ print("");
199
+ const dispositionPreset = await prompt.select("Choose a preset or customize:", [
200
+ {
201
+ label: "Balanced (3/3/3) - Good for general use",
202
+ value: "balanced",
203
+ },
204
+ {
205
+ label: "Code Review (4/5/2) - Precise, questioning",
206
+ value: "review",
207
+ },
208
+ {
209
+ label: "Documentation (3/3/3) - Balanced interpretation",
210
+ value: "docs",
211
+ },
212
+ { label: "Custom - Set each trait individually", value: "custom" },
213
+ ]);
214
+ if (dispositionPreset === "review") {
215
+ answers.disposition = { skepticism: 4, literalism: 5, empathy: 2 };
216
+ }
217
+ else if (dispositionPreset === "custom") {
218
+ print("");
219
+ print(color(" Rate each trait from 1 (low) to 5 (high):", "dim"));
220
+ const skepticism = await prompt.ask(" Skepticism (1-5)", "3");
221
+ const literalism = await prompt.ask(" Literalism (1-5)", "3");
222
+ const empathy = await prompt.ask(" Empathy (1-5)", "3");
223
+ const parseTraitValue = (val) => {
224
+ const num = Math.min(5, Math.max(1, parseInt(val, 10) || 3));
225
+ return num;
226
+ };
227
+ answers.disposition = {
228
+ skepticism: parseTraitValue(skepticism),
229
+ literalism: parseTraitValue(literalism),
230
+ empathy: parseTraitValue(empathy),
231
+ };
232
+ }
233
+ printInfo(`Disposition: skepticism=${answers.disposition.skepticism}, literalism=${answers.disposition.literalism}, empathy=${answers.disposition.empathy}`);
234
+ // Step 3: Claude Code integration
235
+ printStep(3, 5, "Claude Code Integration");
236
+ answers.configureClaudeCode = await prompt.confirm("Configure Claude Code MCP server?", true);
237
+ if (answers.configureClaudeCode) {
238
+ answers.globalInstall = await prompt.confirm("Install globally (for all projects)?", true);
239
+ }
240
+ // Step 4: Learn
241
+ printStep(4, 5, "Bootstrap Memory");
242
+ answers.runLearn = await prompt.confirm("Run 'learn' to bootstrap from codebase?", true);
243
+ if (answers.runLearn) {
244
+ answers.learnDepth = await prompt.select("Analysis depth:", [
245
+ { label: "Quick - README, package.json, structure", value: "quick" },
246
+ {
247
+ label: "Standard - + source patterns, recent git",
248
+ value: "standard",
249
+ },
250
+ {
251
+ label: "Full - all source files, full git history",
252
+ value: "full",
253
+ },
254
+ ], 1);
255
+ }
256
+ // Step 5: Install
257
+ printStep(5, 5, "Installing");
258
+ // Create .claudemindrc
259
+ const rcPath = join(answers.projectPath, ".claudemindrc");
260
+ const config = {
261
+ hindsight: {
262
+ host: "localhost",
263
+ port: 8888,
264
+ },
265
+ bankId: answers.bankId,
266
+ disposition: answers.disposition,
267
+ ...(answers.background ? { background: answers.background } : {}),
268
+ semantic: {
269
+ path: ".claude/memory.md",
270
+ },
271
+ };
272
+ await writeFile(rcPath, JSON.stringify(config, null, 2) + "\n");
273
+ printSuccess(`Created ${rcPath}`);
274
+ // Create .claude/memory.md
275
+ const semanticDir = join(answers.projectPath, ".claude");
276
+ const semanticPath = join(semanticDir, "memory.md");
277
+ if (!(await fileExists(semanticPath))) {
278
+ await mkdir(semanticDir, { recursive: true });
279
+ const semanticContent = `# Project Memory
280
+
281
+ ## Tech Stack
282
+
283
+ <!-- Add your tech stack here -->
284
+
285
+ ## Key Decisions
286
+
287
+ <!-- Document important architectural decisions -->
288
+
289
+ ## Critical Paths
290
+
291
+ <!-- List important code paths -->
292
+
293
+ ## Observations
294
+
295
+ <!-- Promoted insights from Hindsight -->
296
+ `;
297
+ await writeFile(semanticPath, semanticContent);
298
+ printSuccess(`Created ${semanticPath}`);
299
+ }
300
+ else {
301
+ printInfo(`${semanticPath} already exists, skipping`);
302
+ }
303
+ // Configure Claude Code MCP
304
+ if (answers.configureClaudeCode) {
305
+ const mcpConfigPath = getMcpConfigPath(answers.globalInstall, answers.projectPath);
306
+ const existing = await readMcpConfig(mcpConfigPath);
307
+ const serveCmd = await getServeCommand();
308
+ if (answers.globalInstall) {
309
+ // Global config: ~/.claude.json with projects key
310
+ const projects = existing.projects || {};
311
+ const projectConfig = projects[answers.projectPath] || {};
312
+ const mcpServers = projectConfig.mcpServers || {};
313
+ mcpServers["claude-cognitive"] = {
314
+ command: serveCmd.command,
315
+ args: [...serveCmd.args, "--project", answers.projectPath],
316
+ };
317
+ projects[answers.projectPath] = {
318
+ ...projectConfig,
319
+ mcpServers,
320
+ };
321
+ const newConfig = {
322
+ ...existing,
323
+ projects,
324
+ };
325
+ await writeFile(mcpConfigPath, JSON.stringify(newConfig, null, 2) + "\n");
326
+ }
327
+ else {
328
+ // Project config: .mcp.json in project root
329
+ const mcpServers = existing.mcpServers || {};
330
+ mcpServers["claude-cognitive"] = {
331
+ command: serveCmd.command,
332
+ args: serveCmd.args,
333
+ };
334
+ const newConfig = {
335
+ ...existing,
336
+ mcpServers,
337
+ };
338
+ await writeFile(mcpConfigPath, JSON.stringify(newConfig, null, 2) + "\n");
339
+ }
340
+ printSuccess(`Configured MCP server: ${answers.globalInstall ? "global (~/.claude.json)" : "project (.mcp.json)"}`);
341
+ printInfo(mcpConfigPath);
342
+ }
343
+ // Inject memory instructions into CLAUDE.md
344
+ const claudeMdPath = join(answers.projectPath, "CLAUDE.md");
345
+ if (await fileExists(claudeMdPath)) {
346
+ const claudeMdContent = await readFile(claudeMdPath, "utf-8");
347
+ // Check if memory section already exists
348
+ if (!claudeMdContent.includes("## 🧠 MEMORY SYSTEM") && !claudeMdContent.includes("memory_recall")) {
349
+ const memorySection = `
350
+ ## 🧠 MEMORY SYSTEM
351
+
352
+ This project uses **claude-cognitive** for persistent memory across sessions.
353
+
354
+ ### Always Use Memory Tools
355
+ - **Before starting work:** Use \`memory_recall\` to get context about the area you're working on
356
+ - **When asked about the project:** Use \`memory_recall\` to retrieve what you know
357
+ - **When forming opinions:** Use \`memory_reflect\` to reason through your knowledge
358
+
359
+ ### Examples
360
+ \`\`\`
361
+ memory_recall("authentication") # Before working on auth
362
+ memory_recall("database schema") # Before working on DB
363
+ memory_reflect("What patterns does this codebase follow?")
364
+ \`\`\`
365
+
366
+ ---
367
+ `;
368
+ // Find first --- after the title and insert after it
369
+ const firstDividerIndex = claudeMdContent.indexOf("---");
370
+ let newContent;
371
+ if (firstDividerIndex !== -1) {
372
+ // Insert after the first ---
373
+ const insertPoint = firstDividerIndex + 3;
374
+ newContent = claudeMdContent.slice(0, insertPoint) + "\n" + memorySection + claudeMdContent.slice(insertPoint);
375
+ }
376
+ else {
377
+ // No divider found, prepend to file
378
+ newContent = memorySection + "\n" + claudeMdContent;
379
+ }
380
+ await writeFile(claudeMdPath, newContent);
381
+ printSuccess("Injected memory instructions into CLAUDE.md");
382
+ }
383
+ else {
384
+ printInfo("CLAUDE.md already has memory instructions");
385
+ }
386
+ }
387
+ else {
388
+ printInfo("No CLAUDE.md found (skipping memory instructions)");
389
+ }
390
+ // Initialize Mind
391
+ print("");
392
+ print(color("Connecting to Hindsight...", "dim"));
393
+ let hindsightConnected = false;
394
+ try {
395
+ const mind = new Mind({
396
+ projectPath: answers.projectPath,
397
+ bankId: answers.bankId,
398
+ disposition: answers.disposition,
399
+ background: answers.background,
400
+ });
401
+ await mind.init();
402
+ hindsightConnected = !mind.isDegraded;
403
+ if (hindsightConnected) {
404
+ printSuccess(`Bank '${answers.bankId}' ready`);
405
+ // Run learn if requested
406
+ if (answers.runLearn) {
407
+ print("");
408
+ print(color(`Learning from codebase (${answers.learnDepth})...`, "dim"));
409
+ const result = await mind.learn({ depth: answers.learnDepth });
410
+ printSuccess(`Learned ${result.worldFacts} facts from ${result.filesAnalyzed} files`);
411
+ }
412
+ }
413
+ else {
414
+ print(color(" ⚠ Hindsight unavailable - running in degraded mode", "yellow"));
415
+ printInfo("Start Hindsight and run 'claude-cognitive learn' later");
416
+ }
417
+ }
418
+ catch (error) {
419
+ print(color(` ⚠ Could not connect to Hindsight: ${error instanceof Error ? error.message : error}`, "yellow"));
420
+ }
421
+ // Done!
422
+ print("");
423
+ print(color("═".repeat(45), "green"));
424
+ print(color(" Installation complete!", "green"));
425
+ print(color("═".repeat(45), "green"));
426
+ print("");
427
+ print("Next steps:");
428
+ print(color(" 1. Restart Claude Code to load the MCP server", "dim"));
429
+ print(color(" 2. Ask Claude to use memory_recall to verify", "dim"));
430
+ if (!hindsightConnected) {
431
+ print(color(" 3. Start Hindsight and run: claude-cognitive learn", "dim"));
432
+ }
433
+ print("");
434
+ }
435
+ finally {
436
+ prompt.close();
437
+ }
438
+ });
439
+ }
440
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * CLI learn command - bootstrap memory from codebase.
3
+ * @module cli/commands/learn
4
+ */
5
+ import type { CAC } from "cac";
6
+ /**
7
+ * Register the learn command.
8
+ */
9
+ export declare function registerLearnCommand(cli: CAC): void;
10
+ //# sourceMappingURL=learn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learn.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/learn.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAY/B;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAsCnD"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * CLI learn command - bootstrap memory from codebase.
3
+ * @module cli/commands/learn
4
+ */
5
+ import { Mind } from "../../mind.js";
6
+ import { CLIError, ExitCode, info, output, formatLearnResult } from "../utils/index.js";
7
+ /**
8
+ * Register the learn command.
9
+ */
10
+ export function registerLearnCommand(cli) {
11
+ cli
12
+ .command("learn", "Bootstrap memory from codebase")
13
+ .option("--project <path>", "Project directory (default: current directory)")
14
+ .option("--depth <level>", "Analysis depth: quick, standard, or full (default: standard)")
15
+ .option("--json", "Output as JSON")
16
+ .option("--quiet", "Suppress output")
17
+ .action(async (options) => {
18
+ const projectPath = options.project ?? process.cwd();
19
+ const depth = (options.depth ?? "standard");
20
+ if (!["quick", "standard", "full"].includes(depth)) {
21
+ throw new CLIError(`Invalid depth: ${depth}. Use 'quick', 'standard', or 'full'.`, ExitCode.CONFIG_ERROR);
22
+ }
23
+ const mind = new Mind({ projectPath });
24
+ await mind.init();
25
+ if (mind.isDegraded) {
26
+ throw new CLIError("Cannot learn: Hindsight is unavailable.", ExitCode.CONNECTION_ERROR, "Make sure Hindsight is running and accessible.");
27
+ }
28
+ info(`Learning from codebase (depth: ${depth})...`, options);
29
+ const result = await mind.learn({ depth });
30
+ output(result, formatLearnResult, options);
31
+ });
32
+ }
33
+ //# sourceMappingURL=learn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learn.js","sourceRoot":"","sources":["../../../src/cli/commands/learn.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AASxF;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAQ;IAC3C,GAAG;SACA,OAAO,CAAC,OAAO,EAAE,gCAAgC,CAAC;SAClD,MAAM,CAAC,kBAAkB,EAAE,gDAAgD,CAAC;SAC5E,MAAM,CACL,iBAAiB,EACjB,8DAA8D,CAC/D;SACA,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAAC;SACpC,MAAM,CAAC,KAAK,EAAE,OAAqB,EAAE,EAAE;QACtC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,UAAU,CAAe,CAAC;QAE1D,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,QAAQ,CAChB,kBAAkB,KAAK,uCAAuC,EAC9D,QAAQ,CAAC,YAAY,CACtB,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;QACvC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAElB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,QAAQ,CAChB,yCAAyC,EACzC,QAAQ,CAAC,gBAAgB,EACzB,gDAAgD,CACjD,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,kCAAkC,KAAK,MAAM,EAAE,OAAO,CAAC,CAAC;QAE7D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAE3C,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * CLI recall command - search memories.
3
+ * @module cli/commands/recall
4
+ */
5
+ import type { CAC } from "cac";
6
+ /**
7
+ * Register the recall command.
8
+ */
9
+ export declare function registerRecallCommand(cli: CAC): void;
10
+ //# sourceMappingURL=recall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recall.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/recall.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAc/B;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CA6DpD"}