@weavelogic/knowledge-graph-agent 0.9.0 → 0.10.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 (40) hide show
  1. package/README.md +166 -2
  2. package/dist/_virtual/index10.js +2 -2
  3. package/dist/_virtual/index11.js +2 -2
  4. package/dist/_virtual/index8.js +2 -2
  5. package/dist/_virtual/index9.js +2 -2
  6. package/dist/claude/hook-capture.d.ts +209 -0
  7. package/dist/claude/hook-capture.d.ts.map +1 -0
  8. package/dist/claude/hook-capture.js +792 -0
  9. package/dist/claude/hook-capture.js.map +1 -0
  10. package/dist/claude/index.d.ts +15 -0
  11. package/dist/claude/index.d.ts.map +1 -0
  12. package/dist/claude/types.d.ts +1054 -0
  13. package/dist/claude/types.d.ts.map +1 -0
  14. package/dist/claude/types.js +61 -0
  15. package/dist/claude/types.js.map +1 -0
  16. package/dist/cli/commands/analyze.js +3 -3
  17. package/dist/cli/commands/analyze.js.map +1 -1
  18. package/dist/cli/commands/convert.js +1 -1
  19. package/dist/cli/commands/convert.js.map +1 -1
  20. package/dist/cli/commands/hooks.d.ts +11 -0
  21. package/dist/cli/commands/hooks.d.ts.map +1 -0
  22. package/dist/cli/commands/hooks.js +282 -0
  23. package/dist/cli/commands/hooks.js.map +1 -0
  24. package/dist/cli/index.d.ts.map +1 -1
  25. package/dist/cli/index.js +9 -1
  26. package/dist/cli/index.js.map +1 -1
  27. package/dist/generators/docs-analyzer.d.ts +2 -2
  28. package/dist/generators/docs-analyzer.d.ts.map +1 -1
  29. package/dist/generators/docs-analyzer.js +1 -1
  30. package/dist/generators/docs-analyzer.js.map +1 -1
  31. package/dist/generators/docs-convert.d.ts +1 -1
  32. package/dist/generators/docs-convert.d.ts.map +1 -1
  33. package/dist/generators/docs-convert.js +1 -1
  34. package/dist/generators/docs-convert.js.map +1 -1
  35. package/dist/node_modules/@typescript-eslint/project-service/dist/index.js +1 -1
  36. package/dist/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/index.js +1 -1
  37. package/dist/node_modules/fdir/dist/index.js +1 -1
  38. package/dist/node_modules/tinyglobby/dist/index.js +1 -1
  39. package/dist/node_modules/ts-api-utils/lib/index.js +1 -1
  40. package/package.json +1 -1
@@ -0,0 +1,282 @@
1
+ import { Command } from "commander";
2
+ import chalk from "chalk";
3
+ import ora from "ora";
4
+ import { existsSync, mkdirSync, writeFileSync, readFileSync } from "fs";
5
+ import { join, dirname } from "path";
6
+ import { validateProjectRoot } from "../../core/security.js";
7
+ import "../../claude/types.js";
8
+ import { generateHookConfig, processHookEvent, HookCaptureSystem } from "../../claude/hook-capture.js";
9
+ function getClaudeSettingsPath(scope) {
10
+ if (scope === "user") {
11
+ const home = process.env.HOME || process.env.USERPROFILE || "";
12
+ return join(home, ".claude", "settings.json");
13
+ }
14
+ return join(process.cwd(), ".claude", "settings.json");
15
+ }
16
+ function loadSettings(path) {
17
+ if (!existsSync(path)) {
18
+ return {};
19
+ }
20
+ try {
21
+ return JSON.parse(readFileSync(path, "utf-8"));
22
+ } catch {
23
+ return {};
24
+ }
25
+ }
26
+ function saveSettings(path, settings) {
27
+ const dir = dirname(path);
28
+ if (!existsSync(dir)) {
29
+ mkdirSync(dir, { recursive: true });
30
+ }
31
+ writeFileSync(path, JSON.stringify(settings, null, 2));
32
+ }
33
+ function createHooksCommand() {
34
+ const command = new Command("hooks");
35
+ command.description("Claude Code hooks for capturing interactions in the knowledge graph");
36
+ command.command("install").description("Install Claude Code hooks to capture all interactions").option("-p, --path <path>", "Project root path", ".").option("-s, --scope <scope>", "Installation scope: project or user", "project").option("-f, --force", "Overwrite existing hooks configuration").option("--no-markdown", "Disable markdown document generation").option("--no-tool-outputs", "Disable separate tool output storage").action(async (options) => {
37
+ const spinner = ora("Installing Claude Code hooks...").start();
38
+ try {
39
+ const projectRoot = validateProjectRoot(options.path);
40
+ const settingsPath = getClaudeSettingsPath(options.scope);
41
+ const settings = loadSettings(settingsPath);
42
+ if (settings.hooks && !options.force) {
43
+ spinner.warn("Hooks already configured. Use --force to overwrite.");
44
+ console.log();
45
+ console.log(chalk.gray(" Current settings:"), chalk.white(settingsPath));
46
+ return;
47
+ }
48
+ const hookConfig = generateHookConfig(projectRoot);
49
+ const newSettings = {
50
+ ...settings,
51
+ ...hookConfig
52
+ };
53
+ saveSettings(settingsPath, newSettings);
54
+ const storageDir = join(projectRoot, ".kg", "claude");
55
+ if (!existsSync(storageDir)) {
56
+ mkdirSync(storageDir, { recursive: true });
57
+ }
58
+ spinner.succeed("Claude Code hooks installed!");
59
+ console.log();
60
+ console.log(chalk.cyan(" Hook Configuration"));
61
+ console.log(chalk.gray(" Settings file:"), chalk.white(settingsPath));
62
+ console.log(chalk.gray(" Storage dir:"), chalk.white(storageDir));
63
+ console.log();
64
+ console.log(chalk.cyan(" Hooks Installed:"));
65
+ console.log(chalk.gray(" - UserPromptSubmit: Captures all user prompts"));
66
+ console.log(chalk.gray(" - PreToolUse: Captures tool invocations"));
67
+ console.log(chalk.gray(" - PostToolUse: Captures tool results"));
68
+ console.log(chalk.gray(" - Stop: Finalizes session on completion"));
69
+ console.log();
70
+ console.log(chalk.green(" All Claude interactions will now be stored in the knowledge graph."));
71
+ console.log();
72
+ } catch (error) {
73
+ spinner.fail("Failed to install hooks");
74
+ console.error(chalk.red(String(error)));
75
+ process.exit(1);
76
+ }
77
+ });
78
+ command.command("uninstall").description("Remove Claude Code hooks").option("-s, --scope <scope>", "Installation scope: project or user", "project").action(async (options) => {
79
+ const spinner = ora("Removing Claude Code hooks...").start();
80
+ try {
81
+ const settingsPath = getClaudeSettingsPath(options.scope);
82
+ const settings = loadSettings(settingsPath);
83
+ if (!settings.hooks) {
84
+ spinner.info("No hooks configured.");
85
+ return;
86
+ }
87
+ delete settings.hooks;
88
+ saveSettings(settingsPath, settings);
89
+ spinner.succeed("Claude Code hooks removed.");
90
+ } catch (error) {
91
+ spinner.fail("Failed to remove hooks");
92
+ console.error(chalk.red(String(error)));
93
+ process.exit(1);
94
+ }
95
+ });
96
+ command.command("capture").description("Capture a hook event (internal use)").option("-e, --event <type>", "Event type", "UserPromptSubmit").option("-p, --path <path>", "Project root path", ".").action(async (options) => {
97
+ try {
98
+ const projectRoot = validateProjectRoot(options.path);
99
+ const eventType = options.event;
100
+ await processHookEvent(projectRoot, eventType);
101
+ } catch (error) {
102
+ console.error(`Hook capture error: ${error}`);
103
+ }
104
+ });
105
+ command.command("status").description("Show hooks status and recent captures").option("-p, --path <path>", "Project root path", ".").option("-s, --scope <scope>", "Check scope: project or user", "project").action(async (options) => {
106
+ try {
107
+ const projectRoot = validateProjectRoot(options.path);
108
+ const settingsPath = getClaudeSettingsPath(options.scope);
109
+ const settings = loadSettings(settingsPath);
110
+ console.log();
111
+ console.log(chalk.cyan(" Claude Code Hooks Status"));
112
+ console.log();
113
+ if (settings.hooks) {
114
+ console.log(chalk.green(" ✓ Hooks installed"));
115
+ console.log(chalk.gray(" Settings:"), chalk.white(settingsPath));
116
+ const hooks = settings.hooks;
117
+ console.log(chalk.gray(" Configured hooks:"));
118
+ for (const [event, handlers] of Object.entries(hooks)) {
119
+ console.log(chalk.gray(` - ${event}:`), chalk.white(`${handlers.length} handler(s)`));
120
+ }
121
+ } else {
122
+ console.log(chalk.yellow(" ✗ Hooks not installed"));
123
+ console.log(chalk.gray(" Run:"), chalk.white("kg hooks install"));
124
+ }
125
+ console.log();
126
+ const storageDir = join(projectRoot, ".kg", "claude");
127
+ if (existsSync(storageDir)) {
128
+ console.log(chalk.green(" ✓ Storage directory exists"));
129
+ console.log(chalk.gray(" Path:"), chalk.white(storageDir));
130
+ const capture = new HookCaptureSystem(projectRoot);
131
+ const sessions = capture.listSessions();
132
+ if (sessions.length > 0) {
133
+ console.log(chalk.gray(" Sessions:"), chalk.white(`${sessions.length} stored`));
134
+ const recent = sessions.slice(-3);
135
+ for (const sessionId of recent) {
136
+ const session = capture.loadSession(sessionId);
137
+ if (session) {
138
+ console.log(
139
+ chalk.gray(` - ${sessionId}:`),
140
+ chalk.white(session.name),
141
+ chalk.gray(`(${session.status})`)
142
+ );
143
+ }
144
+ }
145
+ } else {
146
+ console.log(chalk.gray(" Sessions:"), chalk.white("None yet"));
147
+ }
148
+ } else {
149
+ console.log(chalk.yellow(" ✗ Storage directory not found"));
150
+ console.log(chalk.gray(" Will be created on first capture"));
151
+ }
152
+ console.log();
153
+ } catch (error) {
154
+ console.error(chalk.red("Failed to get status:"), String(error));
155
+ process.exit(1);
156
+ }
157
+ });
158
+ command.command("sessions").description("List captured sessions").option("-p, --path <path>", "Project root path", ".").option("-l, --limit <number>", "Limit number of sessions", "10").option("--json", "Output as JSON").action(async (options) => {
159
+ try {
160
+ const projectRoot = validateProjectRoot(options.path);
161
+ const limit = parseInt(options.limit, 10);
162
+ const capture = new HookCaptureSystem(projectRoot);
163
+ const sessions = capture.listSessions();
164
+ if (options.json) {
165
+ const sessionData = sessions.slice(-limit).map((id) => capture.loadSession(id));
166
+ console.log(JSON.stringify(sessionData, null, 2));
167
+ return;
168
+ }
169
+ console.log();
170
+ console.log(chalk.cyan(" Captured Sessions"));
171
+ console.log();
172
+ if (sessions.length === 0) {
173
+ console.log(chalk.gray(" No sessions captured yet."));
174
+ console.log();
175
+ return;
176
+ }
177
+ const recentSessions = sessions.slice(-limit);
178
+ for (const sessionId of recentSessions) {
179
+ const session = capture.loadSession(sessionId);
180
+ if (session) {
181
+ const statusColor = session.status === "completed" ? chalk.green : chalk.yellow;
182
+ console.log(
183
+ chalk.white(` ${session.id}`),
184
+ chalk.gray("|"),
185
+ chalk.cyan(session.name)
186
+ );
187
+ console.log(
188
+ chalk.gray(" Status:"),
189
+ statusColor(session.status),
190
+ chalk.gray("|"),
191
+ chalk.gray("Conversations:"),
192
+ chalk.white(String(session.conversationIds.length)),
193
+ chalk.gray("|"),
194
+ chalk.gray("Tokens:"),
195
+ chalk.white(String(session.tokenUsage.totalTokens))
196
+ );
197
+ console.log(
198
+ chalk.gray(" Started:"),
199
+ chalk.white(new Date(session.startedAt).toLocaleString())
200
+ );
201
+ console.log();
202
+ }
203
+ }
204
+ if (sessions.length > limit) {
205
+ console.log(chalk.gray(` ... and ${sessions.length - limit} more sessions`));
206
+ console.log();
207
+ }
208
+ } catch (error) {
209
+ console.error(chalk.red("Failed to list sessions:"), String(error));
210
+ process.exit(1);
211
+ }
212
+ });
213
+ command.command("export").description("Export captured sessions").option("-p, --path <path>", "Project root path", ".").option("-o, --output <file>", "Output file path").option("-f, --format <format>", "Output format: json or markdown", "json").option("--session <id>", "Export specific session").action(async (options) => {
214
+ const spinner = ora("Exporting sessions...").start();
215
+ try {
216
+ const projectRoot = validateProjectRoot(options.path);
217
+ const capture = new HookCaptureSystem(projectRoot);
218
+ let sessionsToExport;
219
+ if (options.session) {
220
+ sessionsToExport = [options.session];
221
+ } else {
222
+ sessionsToExport = capture.listSessions();
223
+ }
224
+ if (sessionsToExport.length === 0) {
225
+ spinner.info("No sessions to export.");
226
+ return;
227
+ }
228
+ const exportData = sessionsToExport.map((id) => capture.loadSession(id)).filter(Boolean);
229
+ if (options.format === "json") {
230
+ const output = JSON.stringify(exportData, null, 2);
231
+ if (options.output) {
232
+ writeFileSync(options.output, output);
233
+ spinner.succeed(`Exported ${exportData.length} session(s) to ${options.output}`);
234
+ } else {
235
+ spinner.stop();
236
+ console.log(output);
237
+ }
238
+ } else if (options.format === "markdown") {
239
+ let markdown = "# Claude Interaction Sessions\n\n";
240
+ for (const session of exportData) {
241
+ if (!session) continue;
242
+ markdown += `## ${session.name}
243
+
244
+ `;
245
+ markdown += `- **ID:** ${session.id}
246
+ `;
247
+ markdown += `- **Status:** ${session.status}
248
+ `;
249
+ markdown += `- **Purpose:** ${session.purpose || "N/A"}
250
+ `;
251
+ markdown += `- **Started:** ${new Date(session.startedAt).toISOString()}
252
+ `;
253
+ if (session.endedAt) {
254
+ markdown += `- **Ended:** ${new Date(session.endedAt).toISOString()}
255
+ `;
256
+ }
257
+ markdown += `- **Conversations:** ${session.conversationIds.length}
258
+ `;
259
+ markdown += `- **Tokens:** ${session.tokenUsage.totalTokens}
260
+
261
+ `;
262
+ }
263
+ if (options.output) {
264
+ writeFileSync(options.output, markdown);
265
+ spinner.succeed(`Exported ${exportData.length} session(s) to ${options.output}`);
266
+ } else {
267
+ spinner.stop();
268
+ console.log(markdown);
269
+ }
270
+ }
271
+ } catch (error) {
272
+ spinner.fail("Failed to export sessions");
273
+ console.error(chalk.red(String(error)));
274
+ process.exit(1);
275
+ }
276
+ });
277
+ return command;
278
+ }
279
+ export {
280
+ createHooksCommand
281
+ };
282
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sources":["../../../src/cli/commands/hooks.ts"],"sourcesContent":["/**\n * Hooks Command\n *\n * Manage Claude Code hooks for capturing interactions in the knowledge graph.\n */\n\nimport { Command } from 'commander';\nimport chalk from 'chalk';\nimport ora from 'ora';\nimport { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';\nimport { join, dirname } from 'path';\nimport { validateProjectRoot } from '../../core/security.js';\nimport {\n HookCaptureSystem,\n processHookEvent,\n generateHookConfig,\n type HookEventType,\n} from '../../claude/index.js';\n\n/**\n * Path to Claude settings\n */\nfunction getClaudeSettingsPath(scope: 'project' | 'user'): string {\n if (scope === 'user') {\n const home = process.env.HOME || process.env.USERPROFILE || '';\n return join(home, '.claude', 'settings.json');\n }\n return join(process.cwd(), '.claude', 'settings.json');\n}\n\n/**\n * Load existing settings or return empty object\n */\nfunction loadSettings(path: string): Record<string, unknown> {\n if (!existsSync(path)) {\n return {};\n }\n try {\n return JSON.parse(readFileSync(path, 'utf-8'));\n } catch {\n return {};\n }\n}\n\n/**\n * Save settings to file\n */\nfunction saveSettings(path: string, settings: Record<string, unknown>): void {\n const dir = dirname(path);\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true });\n }\n writeFileSync(path, JSON.stringify(settings, null, 2));\n}\n\n/**\n * Create hooks command\n */\nexport function createHooksCommand(): Command {\n const command = new Command('hooks');\n\n command.description('Claude Code hooks for capturing interactions in the knowledge graph');\n\n // Install hooks\n command\n .command('install')\n .description('Install Claude Code hooks to capture all interactions')\n .option('-p, --path <path>', 'Project root path', '.')\n .option('-s, --scope <scope>', 'Installation scope: project or user', 'project')\n .option('-f, --force', 'Overwrite existing hooks configuration')\n .option('--no-markdown', 'Disable markdown document generation')\n .option('--no-tool-outputs', 'Disable separate tool output storage')\n .action(async (options) => {\n const spinner = ora('Installing Claude Code hooks...').start();\n\n try {\n const projectRoot = validateProjectRoot(options.path);\n const settingsPath = getClaudeSettingsPath(options.scope);\n\n // Load existing settings\n const settings = loadSettings(settingsPath);\n\n // Check for existing hooks\n if (settings.hooks && !options.force) {\n spinner.warn('Hooks already configured. Use --force to overwrite.');\n console.log();\n console.log(chalk.gray(' Current settings:'), chalk.white(settingsPath));\n return;\n }\n\n // Generate hook configuration\n const hookConfig = generateHookConfig(projectRoot);\n\n // Merge with existing settings\n const newSettings = {\n ...settings,\n ...hookConfig,\n };\n\n // Save settings\n saveSettings(settingsPath, newSettings);\n\n // Ensure storage directory exists\n const storageDir = join(projectRoot, '.kg', 'claude');\n if (!existsSync(storageDir)) {\n mkdirSync(storageDir, { recursive: true });\n }\n\n spinner.succeed('Claude Code hooks installed!');\n\n console.log();\n console.log(chalk.cyan(' Hook Configuration'));\n console.log(chalk.gray(' Settings file:'), chalk.white(settingsPath));\n console.log(chalk.gray(' Storage dir:'), chalk.white(storageDir));\n console.log();\n console.log(chalk.cyan(' Hooks Installed:'));\n console.log(chalk.gray(' - UserPromptSubmit: Captures all user prompts'));\n console.log(chalk.gray(' - PreToolUse: Captures tool invocations'));\n console.log(chalk.gray(' - PostToolUse: Captures tool results'));\n console.log(chalk.gray(' - Stop: Finalizes session on completion'));\n console.log();\n console.log(chalk.green(' All Claude interactions will now be stored in the knowledge graph.'));\n console.log();\n\n } catch (error) {\n spinner.fail('Failed to install hooks');\n console.error(chalk.red(String(error)));\n process.exit(1);\n }\n });\n\n // Uninstall hooks\n command\n .command('uninstall')\n .description('Remove Claude Code hooks')\n .option('-s, --scope <scope>', 'Installation scope: project or user', 'project')\n .action(async (options) => {\n const spinner = ora('Removing Claude Code hooks...').start();\n\n try {\n const settingsPath = getClaudeSettingsPath(options.scope);\n const settings = loadSettings(settingsPath);\n\n if (!settings.hooks) {\n spinner.info('No hooks configured.');\n return;\n }\n\n // Remove hooks configuration\n delete settings.hooks;\n saveSettings(settingsPath, settings);\n\n spinner.succeed('Claude Code hooks removed.');\n\n } catch (error) {\n spinner.fail('Failed to remove hooks');\n console.error(chalk.red(String(error)));\n process.exit(1);\n }\n });\n\n // Capture event (used by hooks)\n command\n .command('capture')\n .description('Capture a hook event (internal use)')\n .option('-e, --event <type>', 'Event type', 'UserPromptSubmit')\n .option('-p, --path <path>', 'Project root path', '.')\n .action(async (options) => {\n try {\n const projectRoot = validateProjectRoot(options.path);\n const eventType = options.event as HookEventType;\n\n await processHookEvent(projectRoot, eventType);\n\n } catch (error) {\n // Silent failure - hooks should not disrupt Claude Code operation\n console.error(`Hook capture error: ${error}`);\n }\n });\n\n // Status command\n command\n .command('status')\n .description('Show hooks status and recent captures')\n .option('-p, --path <path>', 'Project root path', '.')\n .option('-s, --scope <scope>', 'Check scope: project or user', 'project')\n .action(async (options) => {\n try {\n const projectRoot = validateProjectRoot(options.path);\n const settingsPath = getClaudeSettingsPath(options.scope);\n const settings = loadSettings(settingsPath);\n\n console.log();\n console.log(chalk.cyan(' Claude Code Hooks Status'));\n console.log();\n\n // Check installation\n if (settings.hooks) {\n console.log(chalk.green(' ✓ Hooks installed'));\n console.log(chalk.gray(' Settings:'), chalk.white(settingsPath));\n\n const hooks = settings.hooks as Record<string, unknown[]>;\n console.log(chalk.gray(' Configured hooks:'));\n for (const [event, handlers] of Object.entries(hooks)) {\n console.log(chalk.gray(` - ${event}:`), chalk.white(`${(handlers as unknown[]).length} handler(s)`));\n }\n } else {\n console.log(chalk.yellow(' ✗ Hooks not installed'));\n console.log(chalk.gray(' Run:'), chalk.white('kg hooks install'));\n }\n\n console.log();\n\n // Check storage\n const storageDir = join(projectRoot, '.kg', 'claude');\n if (existsSync(storageDir)) {\n console.log(chalk.green(' ✓ Storage directory exists'));\n console.log(chalk.gray(' Path:'), chalk.white(storageDir));\n\n // List sessions\n const capture = new HookCaptureSystem(projectRoot);\n const sessions = capture.listSessions();\n\n if (sessions.length > 0) {\n console.log(chalk.gray(' Sessions:'), chalk.white(`${sessions.length} stored`));\n\n // Show recent sessions\n const recent = sessions.slice(-3);\n for (const sessionId of recent) {\n const session = capture.loadSession(sessionId);\n if (session) {\n console.log(\n chalk.gray(` - ${sessionId}:`),\n chalk.white(session.name),\n chalk.gray(`(${session.status})`)\n );\n }\n }\n } else {\n console.log(chalk.gray(' Sessions:'), chalk.white('None yet'));\n }\n } else {\n console.log(chalk.yellow(' ✗ Storage directory not found'));\n console.log(chalk.gray(' Will be created on first capture'));\n }\n\n console.log();\n\n } catch (error) {\n console.error(chalk.red('Failed to get status:'), String(error));\n process.exit(1);\n }\n });\n\n // List sessions\n command\n .command('sessions')\n .description('List captured sessions')\n .option('-p, --path <path>', 'Project root path', '.')\n .option('-l, --limit <number>', 'Limit number of sessions', '10')\n .option('--json', 'Output as JSON')\n .action(async (options) => {\n try {\n const projectRoot = validateProjectRoot(options.path);\n const limit = parseInt(options.limit, 10);\n\n const capture = new HookCaptureSystem(projectRoot);\n const sessions = capture.listSessions();\n\n if (options.json) {\n const sessionData = sessions.slice(-limit).map(id => capture.loadSession(id));\n console.log(JSON.stringify(sessionData, null, 2));\n return;\n }\n\n console.log();\n console.log(chalk.cyan(' Captured Sessions'));\n console.log();\n\n if (sessions.length === 0) {\n console.log(chalk.gray(' No sessions captured yet.'));\n console.log();\n return;\n }\n\n const recentSessions = sessions.slice(-limit);\n for (const sessionId of recentSessions) {\n const session = capture.loadSession(sessionId);\n if (session) {\n const statusColor = session.status === 'completed' ? chalk.green : chalk.yellow;\n console.log(\n chalk.white(` ${session.id}`),\n chalk.gray('|'),\n chalk.cyan(session.name)\n );\n console.log(\n chalk.gray(' Status:'),\n statusColor(session.status),\n chalk.gray('|'),\n chalk.gray('Conversations:'),\n chalk.white(String(session.conversationIds.length)),\n chalk.gray('|'),\n chalk.gray('Tokens:'),\n chalk.white(String(session.tokenUsage.totalTokens))\n );\n console.log(\n chalk.gray(' Started:'),\n chalk.white(new Date(session.startedAt).toLocaleString())\n );\n console.log();\n }\n }\n\n if (sessions.length > limit) {\n console.log(chalk.gray(` ... and ${sessions.length - limit} more sessions`));\n console.log();\n }\n\n } catch (error) {\n console.error(chalk.red('Failed to list sessions:'), String(error));\n process.exit(1);\n }\n });\n\n // Export sessions\n command\n .command('export')\n .description('Export captured sessions')\n .option('-p, --path <path>', 'Project root path', '.')\n .option('-o, --output <file>', 'Output file path')\n .option('-f, --format <format>', 'Output format: json or markdown', 'json')\n .option('--session <id>', 'Export specific session')\n .action(async (options) => {\n const spinner = ora('Exporting sessions...').start();\n\n try {\n const projectRoot = validateProjectRoot(options.path);\n const capture = new HookCaptureSystem(projectRoot);\n\n let sessionsToExport: string[];\n\n if (options.session) {\n sessionsToExport = [options.session];\n } else {\n sessionsToExport = capture.listSessions();\n }\n\n if (sessionsToExport.length === 0) {\n spinner.info('No sessions to export.');\n return;\n }\n\n const exportData = sessionsToExport\n .map(id => capture.loadSession(id as any))\n .filter(Boolean);\n\n if (options.format === 'json') {\n const output = JSON.stringify(exportData, null, 2);\n\n if (options.output) {\n writeFileSync(options.output, output);\n spinner.succeed(`Exported ${exportData.length} session(s) to ${options.output}`);\n } else {\n spinner.stop();\n console.log(output);\n }\n } else if (options.format === 'markdown') {\n let markdown = '# Claude Interaction Sessions\\n\\n';\n\n for (const session of exportData) {\n if (!session) continue;\n markdown += `## ${session.name}\\n\\n`;\n markdown += `- **ID:** ${session.id}\\n`;\n markdown += `- **Status:** ${session.status}\\n`;\n markdown += `- **Purpose:** ${session.purpose || 'N/A'}\\n`;\n markdown += `- **Started:** ${new Date(session.startedAt).toISOString()}\\n`;\n if (session.endedAt) {\n markdown += `- **Ended:** ${new Date(session.endedAt).toISOString()}\\n`;\n }\n markdown += `- **Conversations:** ${session.conversationIds.length}\\n`;\n markdown += `- **Tokens:** ${session.tokenUsage.totalTokens}\\n\\n`;\n }\n\n if (options.output) {\n writeFileSync(options.output, markdown);\n spinner.succeed(`Exported ${exportData.length} session(s) to ${options.output}`);\n } else {\n spinner.stop();\n console.log(markdown);\n }\n }\n\n } catch (error) {\n spinner.fail('Failed to export sessions');\n console.error(chalk.red(String(error)));\n process.exit(1);\n }\n });\n\n return command;\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8BpC;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAwJnC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+BpC;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAgKnC"}
package/dist/cli/index.js CHANGED
@@ -22,6 +22,7 @@ import { createServeCommand } from "./commands/serve.js";
22
22
  import { createDashboardCommand } from "./commands/dashboard.js";
23
23
  import { createPluginCommand } from "./commands/plugin.js";
24
24
  import { createHiveMindCommand } from "./commands/hive-mind/index.js";
25
+ import { createHooksCommand } from "./commands/hooks.js";
25
26
  const VERSION = "0.4.0";
26
27
  function createCLI() {
27
28
  const program = new Command();
@@ -54,6 +55,7 @@ function createCLI() {
54
55
  program.addCommand(createDashboardCommand());
55
56
  program.addCommand(createPluginCommand());
56
57
  program.addCommand(createHiveMindCommand());
58
+ program.addCommand(createHooksCommand());
57
59
  program.action(() => {
58
60
  console.log(chalk.cyan.bold("\n Knowledge Graph Agent\n"));
59
61
  console.log(chalk.gray(" Generate and manage knowledge graphs for Claude Code\n"));
@@ -67,7 +69,7 @@ function createCLI() {
67
69
  console.log(chalk.gray(" $ kg analyze # Analyze & migrate to knowledge graph"));
68
70
  console.log(chalk.gray(" $ kg analyze deep # Deep analysis with claude-flow"));
69
71
  console.log(chalk.gray(" $ kg analyze report # Generate analysis report"));
70
- console.log(chalk.gray(" $ kg convert docs # Convert docs/ docs-nn/"));
72
+ console.log(chalk.gray(" $ kg convert docs # Convert docs/ with proper structure"));
71
73
  console.log(chalk.gray(" $ kg frontmatter add # Add frontmatter to files"));
72
74
  console.log(chalk.gray(" $ kg frontmatter validate # Validate frontmatter\n"));
73
75
  console.log(chalk.white(" AI-SDLC SOP Compliance:"));
@@ -142,6 +144,12 @@ function createCLI() {
142
144
  console.log(chalk.gray(" $ kg hive-mind find-connections <vault> # Find potential links"));
143
145
  console.log(chalk.gray(" $ kg hive-mind validate-names <vault> # Validate file names"));
144
146
  console.log(chalk.gray(" $ kg hive-mind add-frontmatter <vault> # Add YAML frontmatter\n"));
147
+ console.log(chalk.white(" Claude Code Hooks:"));
148
+ console.log(chalk.gray(" $ kg hooks install # Install hooks to capture interactions"));
149
+ console.log(chalk.gray(" $ kg hooks uninstall # Remove hooks"));
150
+ console.log(chalk.gray(" $ kg hooks status # Show hooks status"));
151
+ console.log(chalk.gray(" $ kg hooks sessions # List captured sessions"));
152
+ console.log(chalk.gray(" $ kg hooks export # Export captured sessions\n"));
145
153
  console.log(chalk.white(" Commands:"));
146
154
  program.commands.forEach((cmd) => {
147
155
  console.log(chalk.cyan(` ${cmd.name().padEnd(20)}`), chalk.gray(cmd.description() || ""));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/cli/index.ts"],"sourcesContent":["/**\n * Knowledge Graph Agent CLI\n *\n * Main CLI setup and command registration.\n */\n\nimport { Command } from 'commander';\nimport chalk from 'chalk';\nimport { createInitCommand } from './commands/init.js';\nimport { createGraphCommand } from './commands/graph.js';\nimport { createDocsCommand } from './commands/docs.js';\nimport { createClaudeCommand } from './commands/claude.js';\nimport { createSyncCommand } from './commands/sync.js';\nimport { createStatsCommand } from './commands/stats.js';\nimport { createSearchCommand } from './commands/search.js';\nimport { createConvertCommand, createFrontmatterCommand } from './commands/convert.js';\nimport { createAnalyzeCommand } from './commands/analyze.js';\nimport { createSOPCommands } from './commands/sop.js';\nimport { createInitPrimitivesCommand, createAnalyzeCodebaseCommand } from './commands/init-primitives.js';\nimport { createCultivateCommand } from './commands/cultivate.js';\nimport { createCommitCommand } from './commands/commit.js';\nimport { createConfigCommand } from './commands/config.js';\nimport { createDiagnosticsCommand } from './commands/diagnostics.js';\nimport { createWorkflowCommand } from './commands/workflow.js';\nimport { createAuditCommand } from './commands/audit.js';\nimport { createVectorCommand } from './commands/vector.js';\nimport { createServeCommand } from './commands/serve.js';\nimport { createDashboardCommand } from './commands/dashboard.js';\nimport { createPluginCommand } from './commands/plugin.js';\nimport { createHiveMindCommand } from './commands/hive-mind/index.js';\n\n/**\n * CLI version\n */\nconst VERSION = '0.4.0';\n\n/**\n * Create and configure the CLI program\n */\nexport function createCLI(): Command {\n const program = new Command();\n\n program\n .name('kg')\n .description('Knowledge Graph Agent - Generate and manage knowledge graphs for Claude Code')\n .version(VERSION, '-v, --version', 'Display version number');\n\n // Configure help\n program.configureHelp({\n sortSubcommands: true,\n sortOptions: true,\n });\n\n // Add commands\n program.addCommand(createInitCommand());\n program.addCommand(createGraphCommand());\n program.addCommand(createDocsCommand());\n program.addCommand(createClaudeCommand());\n program.addCommand(createSyncCommand());\n program.addCommand(createStatsCommand());\n program.addCommand(createSearchCommand());\n program.addCommand(createConvertCommand());\n program.addCommand(createFrontmatterCommand());\n program.addCommand(createAnalyzeCommand());\n program.addCommand(createSOPCommands());\n program.addCommand(createInitPrimitivesCommand());\n program.addCommand(createAnalyzeCodebaseCommand());\n program.addCommand(createCultivateCommand());\n program.addCommand(createCommitCommand());\n program.addCommand(createConfigCommand());\n program.addCommand(createDiagnosticsCommand());\n program.addCommand(createWorkflowCommand());\n program.addCommand(createAuditCommand());\n program.addCommand(createVectorCommand());\n program.addCommand(createServeCommand());\n program.addCommand(createDashboardCommand());\n program.addCommand(createPluginCommand());\n program.addCommand(createHiveMindCommand());\n\n // Default action (show help)\n program.action(() => {\n console.log(chalk.cyan.bold('\\n Knowledge Graph Agent\\n'));\n console.log(chalk.gray(' Generate and manage knowledge graphs for Claude Code\\n'));\n\n console.log(chalk.white(' Quick Start:'));\n console.log(chalk.gray(' $ kg init # Initialize knowledge graph'));\n console.log(chalk.gray(' $ kg docs init # Initialize docs directory'));\n console.log(chalk.gray(' $ kg graph # Generate knowledge graph'));\n console.log(chalk.gray(' $ kg claude update # Update CLAUDE.md'));\n console.log(chalk.gray(' $ kg sync # Sync with claude-flow\\n'));\n\n console.log(chalk.white(' Migration & Analysis:'));\n console.log(chalk.gray(' $ kg analyze # Analyze & migrate to knowledge graph'));\n console.log(chalk.gray(' $ kg analyze deep # Deep analysis with claude-flow'));\n console.log(chalk.gray(' $ kg analyze report # Generate analysis report'));\n console.log(chalk.gray(' $ kg convert docs # Convert docs/ → docs-nn/'));\n console.log(chalk.gray(' $ kg frontmatter add # Add frontmatter to files'));\n console.log(chalk.gray(' $ kg frontmatter validate # Validate frontmatter\\n'));\n\n console.log(chalk.white(' AI-SDLC SOP Compliance:'));\n console.log(chalk.gray(' $ kg sop init # Initialize SOP standards layer'));\n console.log(chalk.gray(' $ kg sop check # Check compliance against SOPs'));\n console.log(chalk.gray(' $ kg sop gaps # Analyze compliance gaps'));\n console.log(chalk.gray(' $ kg sop report # Generate compliance report'));\n console.log(chalk.gray(' $ kg sop list # List available SOPs\\n'));\n\n console.log(chalk.white(' Cultivation & Primitives:'));\n console.log(chalk.gray(' $ kg init-primitives # Bootstrap primitives from codebase'));\n console.log(chalk.gray(' $ kg analyze-codebase # Analyze dependencies & services'));\n console.log(chalk.gray(' $ kg init-primitives --dry-run # Preview without writing\\n'));\n\n console.log(chalk.white(' Git Integration:'));\n console.log(chalk.gray(' $ kg commit # Show status and suggested message'));\n console.log(chalk.gray(' $ kg commit -a # Auto-commit with generated message'));\n console.log(chalk.gray(' $ kg commit -i # Interactive commit mode'));\n console.log(chalk.gray(' $ kg commit -m \"message\" # Commit with custom message'));\n console.log(chalk.gray(' $ kg commit status # Show git status with analysis'));\n console.log(chalk.gray(' $ kg commit log # Show recent commits'));\n console.log(chalk.gray(' $ kg commit diff # Show diff of changes\\n'));\n\n console.log(chalk.white(' Diagnostics & Health:'));\n console.log(chalk.gray(' $ kg diag run # Run full diagnostics'));\n console.log(chalk.gray(' $ kg diag run --fix # Attempt to fix issues'));\n console.log(chalk.gray(' $ kg diag health # Check system health'));\n console.log(chalk.gray(' $ kg diag repair # Repair database issues'));\n console.log(chalk.gray(' $ kg diag backup # Create database backup'));\n console.log(chalk.gray(' $ kg diag backup --list # List existing backups'));\n console.log(chalk.gray(' $ kg diag info # Show system information\\n'));\n\n console.log(chalk.white(' Workflow Management:'));\n console.log(chalk.gray(' $ kg workflow start <type> # Start a workflow'));\n console.log(chalk.gray(' $ kg workflow status [id] # Check workflow status'));\n console.log(chalk.gray(' $ kg workflow list # List active workflows'));\n console.log(chalk.gray(' $ kg workflow stop <id> # Stop a workflow'));\n console.log(chalk.gray(' $ kg workflow history # Show workflow history\\n'));\n\n console.log(chalk.white(' Vector Operations:'));\n console.log(chalk.gray(' $ kg vector search <query> # Semantic search'));\n console.log(chalk.gray(' $ kg vector stats # Vector store statistics'));\n console.log(chalk.gray(' $ kg vector rebuild # Rebuild vector index'));\n console.log(chalk.gray(' $ kg vector traj list # List trajectories'));\n console.log(chalk.gray(' $ kg vector traj show <id> # Show trajectory details'));\n console.log(chalk.gray(' $ kg vector traj patterns # Show detected patterns\\n'));\n\n console.log(chalk.white(' Audit & Exochain:'));\n console.log(chalk.gray(' $ kg audit query # Query the audit log'));\n console.log(chalk.gray(' $ kg audit checkpoint # Create a checkpoint'));\n console.log(chalk.gray(' $ kg audit verify # Verify chain integrity'));\n console.log(chalk.gray(' $ kg audit sync status # Check sync status'));\n console.log(chalk.gray(' $ kg audit sync peers # List sync peers'));\n console.log(chalk.gray(' $ kg audit export # Export audit log\\n'));\n\n console.log(chalk.white(' Server Mode:'));\n console.log(chalk.gray(' $ kg serve # Start MCP server (stdio)'));\n console.log(chalk.gray(' $ kg serve --graphql # Start GraphQL server'));\n console.log(chalk.gray(' $ kg serve --dashboard # Start web dashboard'));\n console.log(chalk.gray(' $ kg serve --all # Start all servers'));\n console.log(chalk.gray(' $ kg serve status # Show server status\\n'));\n\n console.log(chalk.white(' Dashboard:'));\n console.log(chalk.gray(' $ kg dashboard start # Start dashboard dev server'));\n console.log(chalk.gray(' $ kg dashboard build # Build dashboard for production'));\n console.log(chalk.gray(' $ kg dashboard serve # Serve built dashboard'));\n console.log(chalk.gray(' $ kg dashboard open # Open dashboard in browser'));\n console.log(chalk.gray(' $ kg dashboard status # Check dashboard status\\n'));\n\n console.log(chalk.white(' Plugin Management:'));\n console.log(chalk.gray(' $ kg plugin list # List installed plugins'));\n console.log(chalk.gray(' $ kg plugin install <pkg> # Install a plugin'));\n console.log(chalk.gray(' $ kg plugin uninstall <n> # Uninstall a plugin'));\n console.log(chalk.gray(' $ kg plugin enable <name> # Enable a plugin'));\n console.log(chalk.gray(' $ kg plugin disable <name> # Disable a plugin'));\n console.log(chalk.gray(' $ kg plugin info <name> # Show plugin details'));\n console.log(chalk.gray(' $ kg plugin run <n> <file> # Run analyzer plugin'));\n console.log(chalk.gray(' $ kg plugin create <name> # Create new plugin\\n'));\n\n console.log(chalk.white(' Hive Mind (Graph Reconnection):'));\n console.log(chalk.gray(' $ kg hive-mind analyze-links <vault> # Analyze wiki-links'));\n console.log(chalk.gray(' $ kg hive-mind find-connections <vault> # Find potential links'));\n console.log(chalk.gray(' $ kg hive-mind validate-names <vault> # Validate file names'));\n console.log(chalk.gray(' $ kg hive-mind add-frontmatter <vault> # Add YAML frontmatter\\n'));\n\n console.log(chalk.white(' Commands:'));\n program.commands.forEach(cmd => {\n console.log(chalk.cyan(` ${cmd.name().padEnd(20)}`), chalk.gray(cmd.description() || ''));\n });\n\n console.log('\\n Run', chalk.cyan('kg <command> --help'), 'for more information\\n');\n });\n\n return program;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/cli/index.ts"],"sourcesContent":["/**\n * Knowledge Graph Agent CLI\n *\n * Main CLI setup and command registration.\n */\n\nimport { Command } from 'commander';\nimport chalk from 'chalk';\nimport { createInitCommand } from './commands/init.js';\nimport { createGraphCommand } from './commands/graph.js';\nimport { createDocsCommand } from './commands/docs.js';\nimport { createClaudeCommand } from './commands/claude.js';\nimport { createSyncCommand } from './commands/sync.js';\nimport { createStatsCommand } from './commands/stats.js';\nimport { createSearchCommand } from './commands/search.js';\nimport { createConvertCommand, createFrontmatterCommand } from './commands/convert.js';\nimport { createAnalyzeCommand } from './commands/analyze.js';\nimport { createSOPCommands } from './commands/sop.js';\nimport { createInitPrimitivesCommand, createAnalyzeCodebaseCommand } from './commands/init-primitives.js';\nimport { createCultivateCommand } from './commands/cultivate.js';\nimport { createCommitCommand } from './commands/commit.js';\nimport { createConfigCommand } from './commands/config.js';\nimport { createDiagnosticsCommand } from './commands/diagnostics.js';\nimport { createWorkflowCommand } from './commands/workflow.js';\nimport { createAuditCommand } from './commands/audit.js';\nimport { createVectorCommand } from './commands/vector.js';\nimport { createServeCommand } from './commands/serve.js';\nimport { createDashboardCommand } from './commands/dashboard.js';\nimport { createPluginCommand } from './commands/plugin.js';\nimport { createHiveMindCommand } from './commands/hive-mind/index.js';\nimport { createHooksCommand } from './commands/hooks.js';\n\n/**\n * CLI version\n */\nconst VERSION = '0.4.0';\n\n/**\n * Create and configure the CLI program\n */\nexport function createCLI(): Command {\n const program = new Command();\n\n program\n .name('kg')\n .description('Knowledge Graph Agent - Generate and manage knowledge graphs for Claude Code')\n .version(VERSION, '-v, --version', 'Display version number');\n\n // Configure help\n program.configureHelp({\n sortSubcommands: true,\n sortOptions: true,\n });\n\n // Add commands\n program.addCommand(createInitCommand());\n program.addCommand(createGraphCommand());\n program.addCommand(createDocsCommand());\n program.addCommand(createClaudeCommand());\n program.addCommand(createSyncCommand());\n program.addCommand(createStatsCommand());\n program.addCommand(createSearchCommand());\n program.addCommand(createConvertCommand());\n program.addCommand(createFrontmatterCommand());\n program.addCommand(createAnalyzeCommand());\n program.addCommand(createSOPCommands());\n program.addCommand(createInitPrimitivesCommand());\n program.addCommand(createAnalyzeCodebaseCommand());\n program.addCommand(createCultivateCommand());\n program.addCommand(createCommitCommand());\n program.addCommand(createConfigCommand());\n program.addCommand(createDiagnosticsCommand());\n program.addCommand(createWorkflowCommand());\n program.addCommand(createAuditCommand());\n program.addCommand(createVectorCommand());\n program.addCommand(createServeCommand());\n program.addCommand(createDashboardCommand());\n program.addCommand(createPluginCommand());\n program.addCommand(createHiveMindCommand());\n program.addCommand(createHooksCommand());\n\n // Default action (show help)\n program.action(() => {\n console.log(chalk.cyan.bold('\\n Knowledge Graph Agent\\n'));\n console.log(chalk.gray(' Generate and manage knowledge graphs for Claude Code\\n'));\n\n console.log(chalk.white(' Quick Start:'));\n console.log(chalk.gray(' $ kg init # Initialize knowledge graph'));\n console.log(chalk.gray(' $ kg docs init # Initialize docs directory'));\n console.log(chalk.gray(' $ kg graph # Generate knowledge graph'));\n console.log(chalk.gray(' $ kg claude update # Update CLAUDE.md'));\n console.log(chalk.gray(' $ kg sync # Sync with claude-flow\\n'));\n\n console.log(chalk.white(' Migration & Analysis:'));\n console.log(chalk.gray(' $ kg analyze # Analyze & migrate to knowledge graph'));\n console.log(chalk.gray(' $ kg analyze deep # Deep analysis with claude-flow'));\n console.log(chalk.gray(' $ kg analyze report # Generate analysis report'));\n console.log(chalk.gray(' $ kg convert docs # Convert docs/ with proper structure'));\n console.log(chalk.gray(' $ kg frontmatter add # Add frontmatter to files'));\n console.log(chalk.gray(' $ kg frontmatter validate # Validate frontmatter\\n'));\n\n console.log(chalk.white(' AI-SDLC SOP Compliance:'));\n console.log(chalk.gray(' $ kg sop init # Initialize SOP standards layer'));\n console.log(chalk.gray(' $ kg sop check # Check compliance against SOPs'));\n console.log(chalk.gray(' $ kg sop gaps # Analyze compliance gaps'));\n console.log(chalk.gray(' $ kg sop report # Generate compliance report'));\n console.log(chalk.gray(' $ kg sop list # List available SOPs\\n'));\n\n console.log(chalk.white(' Cultivation & Primitives:'));\n console.log(chalk.gray(' $ kg init-primitives # Bootstrap primitives from codebase'));\n console.log(chalk.gray(' $ kg analyze-codebase # Analyze dependencies & services'));\n console.log(chalk.gray(' $ kg init-primitives --dry-run # Preview without writing\\n'));\n\n console.log(chalk.white(' Git Integration:'));\n console.log(chalk.gray(' $ kg commit # Show status and suggested message'));\n console.log(chalk.gray(' $ kg commit -a # Auto-commit with generated message'));\n console.log(chalk.gray(' $ kg commit -i # Interactive commit mode'));\n console.log(chalk.gray(' $ kg commit -m \"message\" # Commit with custom message'));\n console.log(chalk.gray(' $ kg commit status # Show git status with analysis'));\n console.log(chalk.gray(' $ kg commit log # Show recent commits'));\n console.log(chalk.gray(' $ kg commit diff # Show diff of changes\\n'));\n\n console.log(chalk.white(' Diagnostics & Health:'));\n console.log(chalk.gray(' $ kg diag run # Run full diagnostics'));\n console.log(chalk.gray(' $ kg diag run --fix # Attempt to fix issues'));\n console.log(chalk.gray(' $ kg diag health # Check system health'));\n console.log(chalk.gray(' $ kg diag repair # Repair database issues'));\n console.log(chalk.gray(' $ kg diag backup # Create database backup'));\n console.log(chalk.gray(' $ kg diag backup --list # List existing backups'));\n console.log(chalk.gray(' $ kg diag info # Show system information\\n'));\n\n console.log(chalk.white(' Workflow Management:'));\n console.log(chalk.gray(' $ kg workflow start <type> # Start a workflow'));\n console.log(chalk.gray(' $ kg workflow status [id] # Check workflow status'));\n console.log(chalk.gray(' $ kg workflow list # List active workflows'));\n console.log(chalk.gray(' $ kg workflow stop <id> # Stop a workflow'));\n console.log(chalk.gray(' $ kg workflow history # Show workflow history\\n'));\n\n console.log(chalk.white(' Vector Operations:'));\n console.log(chalk.gray(' $ kg vector search <query> # Semantic search'));\n console.log(chalk.gray(' $ kg vector stats # Vector store statistics'));\n console.log(chalk.gray(' $ kg vector rebuild # Rebuild vector index'));\n console.log(chalk.gray(' $ kg vector traj list # List trajectories'));\n console.log(chalk.gray(' $ kg vector traj show <id> # Show trajectory details'));\n console.log(chalk.gray(' $ kg vector traj patterns # Show detected patterns\\n'));\n\n console.log(chalk.white(' Audit & Exochain:'));\n console.log(chalk.gray(' $ kg audit query # Query the audit log'));\n console.log(chalk.gray(' $ kg audit checkpoint # Create a checkpoint'));\n console.log(chalk.gray(' $ kg audit verify # Verify chain integrity'));\n console.log(chalk.gray(' $ kg audit sync status # Check sync status'));\n console.log(chalk.gray(' $ kg audit sync peers # List sync peers'));\n console.log(chalk.gray(' $ kg audit export # Export audit log\\n'));\n\n console.log(chalk.white(' Server Mode:'));\n console.log(chalk.gray(' $ kg serve # Start MCP server (stdio)'));\n console.log(chalk.gray(' $ kg serve --graphql # Start GraphQL server'));\n console.log(chalk.gray(' $ kg serve --dashboard # Start web dashboard'));\n console.log(chalk.gray(' $ kg serve --all # Start all servers'));\n console.log(chalk.gray(' $ kg serve status # Show server status\\n'));\n\n console.log(chalk.white(' Dashboard:'));\n console.log(chalk.gray(' $ kg dashboard start # Start dashboard dev server'));\n console.log(chalk.gray(' $ kg dashboard build # Build dashboard for production'));\n console.log(chalk.gray(' $ kg dashboard serve # Serve built dashboard'));\n console.log(chalk.gray(' $ kg dashboard open # Open dashboard in browser'));\n console.log(chalk.gray(' $ kg dashboard status # Check dashboard status\\n'));\n\n console.log(chalk.white(' Plugin Management:'));\n console.log(chalk.gray(' $ kg plugin list # List installed plugins'));\n console.log(chalk.gray(' $ kg plugin install <pkg> # Install a plugin'));\n console.log(chalk.gray(' $ kg plugin uninstall <n> # Uninstall a plugin'));\n console.log(chalk.gray(' $ kg plugin enable <name> # Enable a plugin'));\n console.log(chalk.gray(' $ kg plugin disable <name> # Disable a plugin'));\n console.log(chalk.gray(' $ kg plugin info <name> # Show plugin details'));\n console.log(chalk.gray(' $ kg plugin run <n> <file> # Run analyzer plugin'));\n console.log(chalk.gray(' $ kg plugin create <name> # Create new plugin\\n'));\n\n console.log(chalk.white(' Hive Mind (Graph Reconnection):'));\n console.log(chalk.gray(' $ kg hive-mind analyze-links <vault> # Analyze wiki-links'));\n console.log(chalk.gray(' $ kg hive-mind find-connections <vault> # Find potential links'));\n console.log(chalk.gray(' $ kg hive-mind validate-names <vault> # Validate file names'));\n console.log(chalk.gray(' $ kg hive-mind add-frontmatter <vault> # Add YAML frontmatter\\n'));\n\n console.log(chalk.white(' Claude Code Hooks:'));\n console.log(chalk.gray(' $ kg hooks install # Install hooks to capture interactions'));\n console.log(chalk.gray(' $ kg hooks uninstall # Remove hooks'));\n console.log(chalk.gray(' $ kg hooks status # Show hooks status'));\n console.log(chalk.gray(' $ kg hooks sessions # List captured sessions'));\n console.log(chalk.gray(' $ kg hooks export # Export captured sessions\\n'));\n\n console.log(chalk.white(' Commands:'));\n program.commands.forEach(cmd => {\n console.log(chalk.cyan(` ${cmd.name().padEnd(20)}`), chalk.gray(cmd.description() || ''));\n });\n\n console.log('\\n Run', chalk.cyan('kg <command> --help'), 'for more information\\n');\n });\n\n return program;\n}\n"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ import type { NodeType } from '../core/types.js';
12
12
  export interface AnalyzerOptions {
13
13
  /** Source directory with existing docs */
14
14
  sourceDir: string;
15
- /** Target directory (default: docs-nn) */
15
+ /** Target directory (default: docs) */
16
16
  targetDir?: string;
17
17
  /** Project root for path resolution */
18
18
  projectRoot: string;
@@ -35,7 +35,7 @@ export interface AnalyzerOptions {
35
35
  export interface AnalyzedDoc {
36
36
  /** Original file path */
37
37
  originalPath: string;
38
- /** New file path in docs-nn */
38
+ /** New file path in target directory */
39
39
  newPath: string;
40
40
  /** Document title */
41
41
  title: string;
@@ -1 +1 @@
1
- {"version":3,"file":"docs-analyzer.d.ts","sourceRoot":"","sources":["../../src/generators/docs-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EAAE,QAAQ,EAA+B,MAAM,kBAAkB,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wCAAwC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iCAAiC;IACjC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qBAAqB;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,yBAAyB;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,qBAAqB;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,oCAAoC;IACpC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,6BAA6B;IAC7B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,+BAA+B;IAC/B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAClC;AAgDD;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAoHnF"}
1
+ {"version":3,"file":"docs-analyzer.d.ts","sourceRoot":"","sources":["../../src/generators/docs-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EAAE,QAAQ,EAA+B,MAAM,kBAAkB,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wCAAwC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iCAAiC;IACjC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qBAAqB;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,yBAAyB;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,qBAAqB;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,oCAAoC;IACpC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,6BAA6B;IAC7B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,+BAA+B;IAC/B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAClC;AAgDD;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAoHnF"}
@@ -47,7 +47,7 @@ const CATEGORY_STRUCTURE = {
47
47
  async function analyzeDocs(options) {
48
48
  const {
49
49
  sourceDir,
50
- targetDir = "docs-nn",
50
+ targetDir = "docs",
51
51
  projectRoot,
52
52
  useClaudeFlow = false,
53
53
  createMOC = true,