solvdex 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +274 -0
  3. package/dist/hooks/error-lookup.d.ts +4 -0
  4. package/dist/hooks/error-lookup.d.ts.map +1 -0
  5. package/dist/hooks/error-lookup.js +92 -0
  6. package/dist/hooks/error-lookup.js.map +1 -0
  7. package/dist/hooks/post-task.d.ts +15 -0
  8. package/dist/hooks/post-task.d.ts.map +1 -0
  9. package/dist/hooks/post-task.js +246 -0
  10. package/dist/hooks/post-task.js.map +1 -0
  11. package/dist/hooks/prompt-enrich.d.ts +16 -0
  12. package/dist/hooks/prompt-enrich.d.ts.map +1 -0
  13. package/dist/hooks/prompt-enrich.js +141 -0
  14. package/dist/hooks/prompt-enrich.js.map +1 -0
  15. package/dist/hooks/session-start-cli.d.ts +3 -0
  16. package/dist/hooks/session-start-cli.d.ts.map +1 -0
  17. package/dist/hooks/session-start-cli.js +81 -0
  18. package/dist/hooks/session-start-cli.js.map +1 -0
  19. package/dist/hooks/session-start.d.ts +4 -0
  20. package/dist/hooks/session-start.d.ts.map +1 -0
  21. package/dist/hooks/session-start.js +134 -0
  22. package/dist/hooks/session-start.js.map +1 -0
  23. package/dist/src/audit.d.ts +63 -0
  24. package/dist/src/audit.d.ts.map +1 -0
  25. package/dist/src/audit.js +229 -0
  26. package/dist/src/audit.js.map +1 -0
  27. package/dist/src/cache.d.ts +54 -0
  28. package/dist/src/cache.d.ts.map +1 -0
  29. package/dist/src/cache.js +167 -0
  30. package/dist/src/cache.js.map +1 -0
  31. package/dist/src/config.d.ts +52 -0
  32. package/dist/src/config.d.ts.map +1 -0
  33. package/dist/src/config.js +175 -0
  34. package/dist/src/config.js.map +1 -0
  35. package/dist/src/entry.d.ts +154 -0
  36. package/dist/src/entry.d.ts.map +1 -0
  37. package/dist/src/entry.js +469 -0
  38. package/dist/src/entry.js.map +1 -0
  39. package/dist/src/errors.d.ts +65 -0
  40. package/dist/src/errors.d.ts.map +1 -0
  41. package/dist/src/errors.js +121 -0
  42. package/dist/src/errors.js.map +1 -0
  43. package/dist/src/frontmatter.d.ts +28 -0
  44. package/dist/src/frontmatter.d.ts.map +1 -0
  45. package/dist/src/frontmatter.js +111 -0
  46. package/dist/src/frontmatter.js.map +1 -0
  47. package/dist/src/index.d.ts +35 -0
  48. package/dist/src/index.d.ts.map +1 -0
  49. package/dist/src/index.js +188 -0
  50. package/dist/src/index.js.map +1 -0
  51. package/dist/src/maturity.d.ts +31 -0
  52. package/dist/src/maturity.d.ts.map +1 -0
  53. package/dist/src/maturity.js +96 -0
  54. package/dist/src/maturity.js.map +1 -0
  55. package/dist/src/quality.d.ts +23 -0
  56. package/dist/src/quality.d.ts.map +1 -0
  57. package/dist/src/quality.js +236 -0
  58. package/dist/src/quality.js.map +1 -0
  59. package/dist/src/search.d.ts +35 -0
  60. package/dist/src/search.d.ts.map +1 -0
  61. package/dist/src/search.js +263 -0
  62. package/dist/src/search.js.map +1 -0
  63. package/dist/src/similarity.d.ts +42 -0
  64. package/dist/src/similarity.d.ts.map +1 -0
  65. package/dist/src/similarity.js +111 -0
  66. package/dist/src/similarity.js.map +1 -0
  67. package/dist/src/stats.d.ts +56 -0
  68. package/dist/src/stats.d.ts.map +1 -0
  69. package/dist/src/stats.js +198 -0
  70. package/dist/src/stats.js.map +1 -0
  71. package/dist/src/templates.d.ts +63 -0
  72. package/dist/src/templates.d.ts.map +1 -0
  73. package/dist/src/templates.js +347 -0
  74. package/dist/src/templates.js.map +1 -0
  75. package/dist/src/transfer.d.ts +92 -0
  76. package/dist/src/transfer.d.ts.map +1 -0
  77. package/dist/src/transfer.js +215 -0
  78. package/dist/src/transfer.js.map +1 -0
  79. package/dist/src/types.d.ts +270 -0
  80. package/dist/src/types.d.ts.map +1 -0
  81. package/dist/src/types.js +153 -0
  82. package/dist/src/types.js.map +1 -0
  83. package/dist/src/validate.d.ts +90 -0
  84. package/dist/src/validate.d.ts.map +1 -0
  85. package/dist/src/validate.js +295 -0
  86. package/dist/src/validate.js.map +1 -0
  87. package/hooks/error-lookup.ts +110 -0
  88. package/hooks/hooks.json +49 -0
  89. package/hooks/post-task.ts +309 -0
  90. package/hooks/prompt-enrich.ts +162 -0
  91. package/hooks/session-start-cli.ts +96 -0
  92. package/hooks/session-start.ts +159 -0
  93. package/package.json +40 -0
  94. package/scripts/error-lookup.py +64 -0
  95. package/scripts/post-task.py +60 -0
  96. package/scripts/prompt-enrich.py +64 -0
  97. package/scripts/session-start.py +64 -0
  98. package/skills/wiki/SKILL.md +61 -0
  99. package/skills/wiki-add/SKILL.md +90 -0
  100. package/skills/wiki-browse/SKILL.md +108 -0
  101. package/skills/wiki-capture/SKILL.md +265 -0
  102. package/skills/wiki-explorer/SKILL.md +223 -0
  103. package/skills/wiki-export/SKILL.md +101 -0
  104. package/skills/wiki-fix/SKILL.md +86 -0
  105. package/skills/wiki-flag/SKILL.md +47 -0
  106. package/skills/wiki-import/SKILL.md +128 -0
  107. package/skills/wiki-init/SKILL.md +72 -0
  108. package/skills/wiki-scan/SKILL.md +98 -0
  109. package/skills/wiki-search/SKILL.md +86 -0
  110. package/skills/wiki-stats/SKILL.md +129 -0
  111. package/skills/wiki-status/SKILL.md +78 -0
  112. package/skills/wiki-test-trigger/SKILL.md +173 -0
  113. package/skills/wiki-validate/SKILL.md +62 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-task.js","sourceRoot":"","sources":["../../hooks/post-task.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { PromptEnrichOutput } from '../src/index.js';
2
+ /**
3
+ * Hook input from Claude Code's UserPromptSubmit event.
4
+ */
5
+ interface HookInput {
6
+ projectRoot: string;
7
+ prompt: string;
8
+ filePaths?: string[];
9
+ }
10
+ /**
11
+ * UserPromptSubmit hook - enriches prompts with relevant wiki context.
12
+ * Outputs to stdout for Claude Code to include in context.
13
+ */
14
+ export declare function onPromptEnrich(input: HookInput): Promise<PromptEnrichOutput | null>;
15
+ export default onPromptEnrich;
16
+ //# sourceMappingURL=prompt-enrich.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-enrich.d.ts","sourceRoot":"","sources":["../../hooks/prompt-enrich.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,kBAAkB,EAAgB,MAAM,iBAAiB,CAAC;AAE3F;;GAEG;AACH,UAAU,SAAS;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAyBD;;;GAGG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAmFzF;AAuCD,eAAe,cAAc,CAAC"}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.onPromptEnrich = onPromptEnrich;
4
+ // hooks/prompt-enrich.ts
5
+ const index_js_1 = require("../src/index.js");
6
+ /**
7
+ * Category keywords for detecting relevant wiki categories from prompt.
8
+ */
9
+ const CATEGORY_KEYWORDS = {
10
+ issues: ['error', 'fix', 'bug', 'broken', 'fails', 'crash', 'exception'],
11
+ patterns: ['pattern', 'template', 'reusable', 'design', 'approach'],
12
+ gotchas: ['careful', 'watch out', 'pitfall', 'gotcha', 'trap', 'avoid'],
13
+ testing: ['test', 'mock', 'fixture', 'assert', 'spec', 'coverage'],
14
+ docs: ['document', 'readme', 'guide', 'tutorial', 'api docs'],
15
+ security: ['auth', 'token', 'vulnerability', 'permission', 'csrf', 'xss', 'injection'],
16
+ performance: ['slow', 'optimize', 'memory', 'latency', 'benchmark', 'profiling']
17
+ };
18
+ /**
19
+ * Path hints for detecting relevant categories from file paths.
20
+ */
21
+ const PATH_HINTS = {
22
+ testing: ['test', 'spec', 'fixture', 'mock', '__tests__'],
23
+ docs: ['doc', 'readme', 'wiki', 'guide'],
24
+ security: ['auth', 'secret', 'cred', 'permission'],
25
+ performance: ['perf', 'bench', 'profile', 'optim']
26
+ };
27
+ /**
28
+ * UserPromptSubmit hook - enriches prompts with relevant wiki context.
29
+ * Outputs to stdout for Claude Code to include in context.
30
+ */
31
+ async function onPromptEnrich(input) {
32
+ try {
33
+ const { projectRoot, prompt, filePaths } = input;
34
+ if (!(0, index_js_1.wikiExists)(projectRoot)) {
35
+ return null;
36
+ }
37
+ // Detect relevant categories from prompt keywords
38
+ const relevantCategories = detectRelevantCategories(prompt, filePaths || []);
39
+ // Search wiki for relevant entries
40
+ const searchResults = await (0, index_js_1.searchWiki)(projectRoot, { query: prompt });
41
+ if (searchResults.length === 0 && relevantCategories.length === 0) {
42
+ return null;
43
+ }
44
+ // Format entries for output
45
+ const entries = searchResults.slice(0, 5).map(r => ({
46
+ title: r.entry.frontmatter.title,
47
+ category: r.entry.category,
48
+ path: r.entry.path,
49
+ confidence: r.entry.frontmatter.confidence
50
+ }));
51
+ // Record usage for matched entries
52
+ if (entries.length > 0) {
53
+ try {
54
+ const { recordEntryUsage } = await import('../src/index.js');
55
+ for (const entry of entries) {
56
+ recordEntryUsage(projectRoot, entry.path);
57
+ }
58
+ }
59
+ catch {
60
+ // Usage tracking failure is non-critical
61
+ }
62
+ }
63
+ // Output for Claude Code hook integration (user-facing console logs)
64
+ if (entries.length > 0) {
65
+ console.log(`\u{1F4DA} Solvdex: Found ${entries.length} relevant entries for your task:`);
66
+ for (const entry of entries.slice(0, 3)) {
67
+ console.log(` - ${entry.title} (${entry.category}, confidence: ${entry.confidence})`);
68
+ }
69
+ if (entries.length > 3) {
70
+ console.log(` ... and ${entries.length - 3} more`);
71
+ }
72
+ }
73
+ else if (relevantCategories.length > 0) {
74
+ console.log(`\u{1F4DA} Solvdex: Check ${relevantCategories.join(', ')} for related knowledge`);
75
+ }
76
+ // Structured output for Claude Code (includes both old and new format for backward compatibility)
77
+ const output = {
78
+ // Old format (for backward compatibility)
79
+ type: 'wiki_context',
80
+ message: entries.length > 0
81
+ ? `Found ${entries.length} relevant wiki entries`
82
+ : `Relevant categories: ${relevantCategories.join(', ')}`,
83
+ entries,
84
+ // New format (Claude Code integration)
85
+ continue: true,
86
+ hookSpecificOutput: {
87
+ type: 'context_added',
88
+ message: entries.length > 0
89
+ ? `Found ${entries.length} relevant wiki entries`
90
+ : `Relevant categories: ${relevantCategories.join(', ')}`,
91
+ entryCount: entries.length
92
+ },
93
+ additionalContext: entries.length > 0
94
+ ? formatEntriesForContext(searchResults.slice(0, 5))
95
+ : undefined
96
+ };
97
+ // Output JSON marker + JSON (MUST be last output)
98
+ console.log('\n__HOOK_OUTPUT__');
99
+ console.log(JSON.stringify(output));
100
+ return output;
101
+ }
102
+ catch (error) {
103
+ // Graceful degradation - log error but don't crash
104
+ console.error(`[Solvdex] Error in prompt-enrich hook: ${error instanceof Error ? error.message : 'Unknown error'}`);
105
+ return null;
106
+ }
107
+ }
108
+ /**
109
+ * Detects relevant categories based on prompt keywords and file paths.
110
+ */
111
+ function detectRelevantCategories(prompt, filePaths) {
112
+ const detected = new Set();
113
+ const promptLower = prompt.toLowerCase();
114
+ // Check keywords in prompt
115
+ for (const [category, keywords] of Object.entries(CATEGORY_KEYWORDS)) {
116
+ if (keywords.some(kw => promptLower.includes(kw))) {
117
+ detected.add(category);
118
+ }
119
+ }
120
+ // Check path hints
121
+ for (const filePath of filePaths) {
122
+ const pathLower = filePath.toLowerCase();
123
+ for (const [category, hints] of Object.entries(PATH_HINTS)) {
124
+ if (hints.some(hint => pathLower.includes(hint))) {
125
+ detected.add(category);
126
+ }
127
+ }
128
+ }
129
+ return Array.from(detected);
130
+ }
131
+ /**
132
+ * Formats search results into a readable context string for Claude Code.
133
+ */
134
+ function formatEntriesForContext(results) {
135
+ return results.map(r => {
136
+ const e = r.entry;
137
+ return `## ${e.frontmatter.title} (${e.category})\nConfidence: ${e.frontmatter.confidence}\nTags: ${e.frontmatter.tags.join(', ')}\n\n${e.content.substring(0, 300)}...`;
138
+ }).join('\n\n');
139
+ }
140
+ exports.default = onPromptEnrich;
141
+ //# sourceMappingURL=prompt-enrich.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-enrich.js","sourceRoot":"","sources":["../../hooks/prompt-enrich.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=session-start-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-start-cli.d.ts","sourceRoot":"","sources":["../../hooks/session-start-cli.ts"],"names":[],"mappings":""}
@@ -0,0 +1,81 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ // CLI wrapper for session-start hook
5
+ const index_js_1 = require("../src/index.js");
6
+ const CATEGORY_KEYWORDS = {
7
+ issues: ['error', 'fix', 'bug', 'broken', 'fails', 'crash', 'exception', 'trouble'],
8
+ patterns: ['pattern', 'template', 'reusable', 'design', 'approach', 'best practice'],
9
+ gotchas: ['careful', 'watch out', 'pitfall', 'gotcha', 'trap', 'avoid', 'never'],
10
+ testing: ['test', 'mock', 'fixture', 'assert', 'spec', 'coverage', 'jest', 'vitest'],
11
+ docs: ['document', 'readme', 'guide', 'tutorial', 'api docs', 'documentation'],
12
+ security: ['auth', 'token', 'vulnerability', 'permission', 'csrf', 'xss', 'injection', 'security'],
13
+ performance: ['slow', 'optimize', 'memory', 'latency', 'benchmark', 'profiling', 'performance']
14
+ };
15
+ const CATEGORY_PATH_HINTS = {
16
+ testing: ['test', 'spec', 'fixture', 'mock', '__tests__'],
17
+ docs: ['doc', 'readme', 'wiki', 'guide', 'docs'],
18
+ security: ['auth', 'secret', 'cred', 'permission', 'security'],
19
+ performance: ['perf', 'bench', 'profile', 'optim']
20
+ };
21
+ function detectCategoryFromPaths(paths) {
22
+ const detected = new Set();
23
+ for (const filePath of paths) {
24
+ const pathLower = filePath.toLowerCase();
25
+ for (const [category, hints] of Object.entries(CATEGORY_PATH_HINTS)) {
26
+ if (hints.some(hint => pathLower.includes(hint))) {
27
+ detected.add(category);
28
+ }
29
+ }
30
+ }
31
+ return Array.from(detected);
32
+ }
33
+ function isRelevantCategory(task, category) {
34
+ const categoryKeywords = CATEGORY_KEYWORDS[category] || [];
35
+ const taskLower = task.toLowerCase();
36
+ return categoryKeywords.some(kw => taskLower.includes(kw));
37
+ }
38
+ async function main() {
39
+ try {
40
+ // Read JSON from stdin
41
+ const chunks = [];
42
+ for await (const chunk of process.stdin) {
43
+ chunks.push(chunk);
44
+ }
45
+ const inputData = JSON.parse(Buffer.concat(chunks).toString());
46
+ const { projectRoot, taskDescription, filePaths } = inputData;
47
+ if (!(0, index_js_1.wikiExists)(projectRoot) || !taskDescription) {
48
+ process.exit(0);
49
+ }
50
+ // Check which categories might be relevant
51
+ const relevantCategories = [];
52
+ for (const category of index_js_1.DEFAULT_CATEGORIES) {
53
+ if (isRelevantCategory(taskDescription, category)) {
54
+ relevantCategories.push(category);
55
+ }
56
+ }
57
+ // Also check paths for category hints
58
+ if (filePaths && filePaths.length > 0) {
59
+ const pathCategories = detectCategoryFromPaths(filePaths);
60
+ for (const cat of pathCategories) {
61
+ if (!relevantCategories.includes(cat)) {
62
+ relevantCategories.push(cat);
63
+ }
64
+ }
65
+ }
66
+ // Search wiki for relevant entries
67
+ const searchResults = await (0, index_js_1.searchWiki)(projectRoot, { query: taskDescription });
68
+ if (searchResults.length > 0) {
69
+ console.log(`📚 Solvdex: Found ${searchResults.length} relevant entries`);
70
+ for (const r of searchResults.slice(0, 3)) {
71
+ console.log(` - ${r.entry.frontmatter.title} (${r.entry.category})`);
72
+ }
73
+ }
74
+ process.exit(0);
75
+ }
76
+ catch (error) {
77
+ process.exit(0); // Silent fail
78
+ }
79
+ }
80
+ main();
81
+ //# sourceMappingURL=session-start-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-start-cli.js","sourceRoot":"","sources":["../../hooks/session-start-cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { SessionStartOutput } from '../src/index.js';
2
+ export declare function onSessionStart(context: unknown): Promise<SessionStartOutput | null>;
3
+ export default onSessionStart;
4
+ //# sourceMappingURL=session-start.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-start.d.ts","sourceRoot":"","sources":["../../hooks/session-start.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,kBAAkB,EAKnB,MAAM,iBAAiB,CAAC;AAkCzB,wBAAsB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAgGzF;AAkBD,eAAe,cAAc,CAAC"}
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.onSessionStart = onSessionStart;
4
+ // hooks/session-start.ts
5
+ const index_js_1 = require("../src/index.js");
6
+ const CATEGORY_KEYWORDS = {
7
+ issues: ['error', 'fix', 'bug', 'broken', 'fails', 'crash', 'exception', 'trouble'],
8
+ patterns: ['pattern', 'template', 'reusable', 'design', 'approach', 'best practice'],
9
+ gotchas: ['careful', 'watch out', 'pitfall', 'gotcha', 'trap', 'avoid', 'never'],
10
+ testing: ['test', 'mock', 'fixture', 'assert', 'spec', 'coverage', 'jest', 'vitest'],
11
+ docs: ['document', 'readme', 'guide', 'tutorial', 'api docs', 'documentation'],
12
+ security: ['auth', 'token', 'vulnerability', 'permission', 'csrf', 'xss', 'injection', 'security'],
13
+ performance: ['slow', 'optimize', 'memory', 'latency', 'benchmark', 'profiling', 'performance']
14
+ };
15
+ const CATEGORY_PATH_HINTS = {
16
+ testing: ['test', 'spec', 'fixture', 'mock', '__tests__'],
17
+ docs: ['doc', 'readme', 'wiki', 'guide', 'docs'],
18
+ security: ['auth', 'secret', 'cred', 'permission', 'security'],
19
+ performance: ['perf', 'bench', 'profile', 'optim']
20
+ };
21
+ function detectCategoryFromPaths(paths) {
22
+ const detected = new Set();
23
+ for (const filePath of paths) {
24
+ const pathLower = filePath.toLowerCase();
25
+ for (const [category, hints] of Object.entries(CATEGORY_PATH_HINTS)) {
26
+ if (hints.some(hint => pathLower.includes(hint))) {
27
+ detected.add(category);
28
+ }
29
+ }
30
+ }
31
+ return Array.from(detected);
32
+ }
33
+ async function onSessionStart(context) {
34
+ try {
35
+ // Validate input first
36
+ const validatedContext = (0, index_js_1.validateSessionStartInput)(context);
37
+ const { projectRoot, taskDescription, filePaths } = validatedContext;
38
+ if (!(0, index_js_1.wikiExists)(projectRoot)) {
39
+ return null;
40
+ }
41
+ if (!taskDescription) {
42
+ return null;
43
+ }
44
+ // Check which categories might be relevant based on keywords
45
+ const relevantCategories = [];
46
+ for (const category of index_js_1.DEFAULT_CATEGORIES) {
47
+ if (isRelevantCategory(taskDescription, category)) {
48
+ relevantCategories.push(category);
49
+ }
50
+ }
51
+ // Also check paths for category hints
52
+ if (filePaths && filePaths.length > 0) {
53
+ const pathCategories = detectCategoryFromPaths(filePaths);
54
+ for (const cat of pathCategories) {
55
+ if (!relevantCategories.includes(cat)) {
56
+ relevantCategories.push(cat);
57
+ }
58
+ }
59
+ }
60
+ // Search wiki for relevant entries
61
+ const searchResults = await (0, index_js_1.searchWiki)(projectRoot, { query: taskDescription });
62
+ if (searchResults.length > 0 || relevantCategories.length > 0) {
63
+ const entries = searchResults.map(r => ({
64
+ title: r.entry.frontmatter.title,
65
+ category: r.entry.category,
66
+ path: r.entry.path
67
+ }));
68
+ const categories = relevantCategories.length > 0
69
+ ? relevantCategories
70
+ : [...new Set(searchResults.map(r => r.entry.category))];
71
+ // Output for Claude Code hook integration (user-facing console logs)
72
+ if (searchResults.length > 0) {
73
+ console.log(`\u{1F4DA} Solvdex: Found ${searchResults.length} relevant entries`);
74
+ for (const r of searchResults.slice(0, 3)) {
75
+ console.log(` - ${r.entry.frontmatter.title} (${r.entry.category})`);
76
+ }
77
+ }
78
+ // Structured output for Claude Code (includes both old and new format for backward compatibility)
79
+ const output = {
80
+ // Old format (for backward compatibility)
81
+ type: 'wiki_context',
82
+ message: searchResults.length > 0
83
+ ? `Wiki: Found ${searchResults.length} relevant entries`
84
+ : `Wiki: Check ${categories.join(', ')} for related knowledge`,
85
+ categories,
86
+ entries: entries.length > 0 ? entries : undefined,
87
+ // New format (Claude Code integration)
88
+ continue: true,
89
+ hookSpecificOutput: {
90
+ type: 'wiki_context',
91
+ message: searchResults.length > 0
92
+ ? `Found ${searchResults.length} wiki entries`
93
+ : `Relevant categories: ${categories.join(', ')}`,
94
+ categories,
95
+ entries: entries.length > 0 ? entries.slice(0, 3) : undefined
96
+ },
97
+ additionalContext: searchResults.length > 0
98
+ ? formatEntriesForContext(searchResults.slice(0, 3))
99
+ : undefined
100
+ };
101
+ // Output JSON marker + JSON (MUST be last output)
102
+ console.log('\n__HOOK_OUTPUT__');
103
+ console.log(JSON.stringify(output));
104
+ return output;
105
+ }
106
+ return null;
107
+ }
108
+ catch (error) {
109
+ // Handle validation errors separately
110
+ if (error instanceof index_js_1.ValidationError) {
111
+ console.error(`[Solvdex] Invalid input: ${error.message}`);
112
+ return null;
113
+ }
114
+ // Graceful degradation - log error but don't crash
115
+ console.error(`[Solvdex] Error in session-start hook: ${error instanceof Error ? error.message : 'Unknown error'}`);
116
+ return null;
117
+ }
118
+ }
119
+ function isRelevantCategory(task, category) {
120
+ const categoryKeywords = CATEGORY_KEYWORDS[category] || [];
121
+ const taskLower = task.toLowerCase();
122
+ return categoryKeywords.some(kw => taskLower.includes(kw));
123
+ }
124
+ /**
125
+ * Formats search results into a readable context string for Claude Code.
126
+ */
127
+ function formatEntriesForContext(results) {
128
+ return results.map(r => {
129
+ const e = r.entry;
130
+ return `## ${e.frontmatter.title} (${e.category})\nConfidence: ${e.frontmatter.confidence}\n\n${e.content.substring(0, 300)}...`;
131
+ }).join('\n\n');
132
+ }
133
+ exports.default = onSessionStart;
134
+ //# sourceMappingURL=session-start.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../hooks/session-start.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import { AuditAction } from './types.js';
2
+ /**
3
+ * Represents a parsed audit log entry.
4
+ */
5
+ export interface AuditLogEntry {
6
+ timestamp: string;
7
+ action: AuditAction;
8
+ entryPath: string;
9
+ by: string;
10
+ details?: string;
11
+ }
12
+ /**
13
+ * Options for reading the audit log.
14
+ */
15
+ export interface ReadAuditLogOptions {
16
+ limit?: number;
17
+ entryPath?: string;
18
+ }
19
+ /**
20
+ * Represents an audit summary report.
21
+ */
22
+ export interface AuditReport {
23
+ totalEntries: number;
24
+ activeCount: number;
25
+ flaggedCount: number;
26
+ deprecatedCount: number;
27
+ last7DaysActivity: Record<AuditAction, number>;
28
+ recentActivity: AuditLogEntry[];
29
+ }
30
+ /**
31
+ * Logs an audit action to the audit log file.
32
+ *
33
+ * @param projectRoot - The root directory of the project
34
+ * @param action - The audit action (created, updated, validated, flagged, deprecated)
35
+ * @param entryPath - The path to the entry being audited
36
+ * @param by - Who performed the action (e.g., "user", "claude", "auto-capture")
37
+ * @param details - Optional additional details about the action
38
+ */
39
+ export declare function logAudit(projectRoot: string, action: AuditAction, entryPath: string, by: string, details?: string): void;
40
+ /**
41
+ * Reads audit log entries from the audit log file.
42
+ *
43
+ * @param projectRoot - The root directory of the project
44
+ * @param options - Optional filters (limit, entryPath)
45
+ * @returns Array of AuditLogEntry objects, most recent first
46
+ */
47
+ export declare function readAuditLog(projectRoot: string, options?: ReadAuditLogOptions): AuditLogEntry[];
48
+ /**
49
+ * Gets the audit history for a specific wiki entry.
50
+ *
51
+ * @param projectRoot - The root directory of the project
52
+ * @param entryPath - The path to the entry
53
+ * @returns Array of AuditLogEntry objects for the entry, most recent first
54
+ */
55
+ export declare function getEntryAuditHistory(projectRoot: string, entryPath: string): AuditLogEntry[];
56
+ /**
57
+ * Generates an audit summary report for the wiki.
58
+ *
59
+ * @param projectRoot - The root directory of the project
60
+ * @returns AuditReport with stats and recent activity
61
+ */
62
+ export declare function generateAuditReport(projectRoot: string): Promise<AuditReport>;
63
+ //# sourceMappingURL=audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/audit.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAOzC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC/C,cAAc,EAAE,aAAa,EAAE,CAAC;CACjC;AA+ED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CACtB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,MAAM,GACf,IAAI,CAwBN;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,mBAAwB,GAChC,aAAa,EAAE,CAkCjB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,aAAa,EAAE,CAEjB;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,WAAW,CAAC,CA4CtB"}