@bhimudev/gnanai 0.4.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 (274) hide show
  1. package/README.md +270 -0
  2. package/dist/bin/cli.d.ts +3 -0
  3. package/dist/bin/cli.d.ts.map +1 -0
  4. package/dist/bin/cli.js +188 -0
  5. package/dist/bin/cli.js.map +1 -0
  6. package/dist/commands/cleanup.d.ts +21 -0
  7. package/dist/commands/cleanup.d.ts.map +1 -0
  8. package/dist/commands/cleanup.js +380 -0
  9. package/dist/commands/cleanup.js.map +1 -0
  10. package/dist/commands/dispatch.d.ts +13 -0
  11. package/dist/commands/dispatch.d.ts.map +1 -0
  12. package/dist/commands/dispatch.js +85 -0
  13. package/dist/commands/dispatch.js.map +1 -0
  14. package/dist/commands/doctor.d.ts +2 -0
  15. package/dist/commands/doctor.d.ts.map +1 -0
  16. package/dist/commands/doctor.js +155 -0
  17. package/dist/commands/doctor.js.map +1 -0
  18. package/dist/commands/generate.d.ts +3 -0
  19. package/dist/commands/generate.d.ts.map +1 -0
  20. package/dist/commands/generate.js +167 -0
  21. package/dist/commands/generate.js.map +1 -0
  22. package/dist/commands/init.d.ts +10 -0
  23. package/dist/commands/init.d.ts.map +1 -0
  24. package/dist/commands/init.js +711 -0
  25. package/dist/commands/init.js.map +1 -0
  26. package/dist/commands/knowledge-sync.d.ts +69 -0
  27. package/dist/commands/knowledge-sync.d.ts.map +1 -0
  28. package/dist/commands/knowledge-sync.js +661 -0
  29. package/dist/commands/knowledge-sync.js.map +1 -0
  30. package/dist/commands/knowledge.d.ts +35 -0
  31. package/dist/commands/knowledge.d.ts.map +1 -0
  32. package/dist/commands/knowledge.js +254 -0
  33. package/dist/commands/knowledge.js.map +1 -0
  34. package/dist/commands/rollback.d.ts +13 -0
  35. package/dist/commands/rollback.d.ts.map +1 -0
  36. package/dist/commands/rollback.js +186 -0
  37. package/dist/commands/rollback.js.map +1 -0
  38. package/dist/commands/setup-config.d.ts +6 -0
  39. package/dist/commands/setup-config.d.ts.map +1 -0
  40. package/dist/commands/setup-config.js +663 -0
  41. package/dist/commands/setup-config.js.map +1 -0
  42. package/dist/commands/setup-project.d.ts +6 -0
  43. package/dist/commands/setup-project.d.ts.map +1 -0
  44. package/dist/commands/setup-project.js +361 -0
  45. package/dist/commands/setup-project.js.map +1 -0
  46. package/dist/commands/setup.d.ts +3 -0
  47. package/dist/commands/setup.d.ts.map +1 -0
  48. package/dist/commands/setup.js +293 -0
  49. package/dist/commands/setup.js.map +1 -0
  50. package/dist/commands/status.d.ts +51 -0
  51. package/dist/commands/status.d.ts.map +1 -0
  52. package/dist/commands/status.js +182 -0
  53. package/dist/commands/status.js.map +1 -0
  54. package/dist/commands/uninstall.d.ts +3 -0
  55. package/dist/commands/uninstall.d.ts.map +1 -0
  56. package/dist/commands/uninstall.js +173 -0
  57. package/dist/commands/uninstall.js.map +1 -0
  58. package/dist/commands/update.d.ts +10 -0
  59. package/dist/commands/update.d.ts.map +1 -0
  60. package/dist/commands/update.js +435 -0
  61. package/dist/commands/update.js.map +1 -0
  62. package/dist/commands/worktree.d.ts +30 -0
  63. package/dist/commands/worktree.d.ts.map +1 -0
  64. package/dist/commands/worktree.js +262 -0
  65. package/dist/commands/worktree.js.map +1 -0
  66. package/dist/generator/claude-cli.d.ts +24 -0
  67. package/dist/generator/claude-cli.d.ts.map +1 -0
  68. package/dist/generator/claude-cli.js +239 -0
  69. package/dist/generator/claude-cli.js.map +1 -0
  70. package/dist/generator/prompt-builder.d.ts +7 -0
  71. package/dist/generator/prompt-builder.d.ts.map +1 -0
  72. package/dist/generator/prompt-builder.js +144 -0
  73. package/dist/generator/prompt-builder.js.map +1 -0
  74. package/dist/index.d.ts +36 -0
  75. package/dist/index.d.ts.map +1 -0
  76. package/dist/index.js +45 -0
  77. package/dist/index.js.map +1 -0
  78. package/dist/mcp/embeddings.d.ts +53 -0
  79. package/dist/mcp/embeddings.d.ts.map +1 -0
  80. package/dist/mcp/embeddings.js +68 -0
  81. package/dist/mcp/embeddings.js.map +1 -0
  82. package/dist/mcp/hybrid-search.d.ts +25 -0
  83. package/dist/mcp/hybrid-search.d.ts.map +1 -0
  84. package/dist/mcp/hybrid-search.js +72 -0
  85. package/dist/mcp/hybrid-search.js.map +1 -0
  86. package/dist/mcp/knowledge-server.d.ts +4 -0
  87. package/dist/mcp/knowledge-server.d.ts.map +1 -0
  88. package/dist/mcp/knowledge-server.js +294 -0
  89. package/dist/mcp/knowledge-server.js.map +1 -0
  90. package/dist/mcp/knowledge-utils.d.ts +65 -0
  91. package/dist/mcp/knowledge-utils.d.ts.map +1 -0
  92. package/dist/mcp/knowledge-utils.js +207 -0
  93. package/dist/mcp/knowledge-utils.js.map +1 -0
  94. package/dist/mcp/search-factory.d.ts +9 -0
  95. package/dist/mcp/search-factory.d.ts.map +1 -0
  96. package/dist/mcp/search-factory.js +23 -0
  97. package/dist/mcp/search-factory.js.map +1 -0
  98. package/dist/mcp/search-index.d.ts +45 -0
  99. package/dist/mcp/search-index.d.ts.map +1 -0
  100. package/dist/mcp/search-index.js +2 -0
  101. package/dist/mcp/search-index.js.map +1 -0
  102. package/dist/mcp/search-minisearch.d.ts +46 -0
  103. package/dist/mcp/search-minisearch.d.ts.map +1 -0
  104. package/dist/mcp/search-minisearch.js +99 -0
  105. package/dist/mcp/search-minisearch.js.map +1 -0
  106. package/dist/mcp/search-sqlite.d.ts +30 -0
  107. package/dist/mcp/search-sqlite.d.ts.map +1 -0
  108. package/dist/mcp/search-sqlite.js +188 -0
  109. package/dist/mcp/search-sqlite.js.map +1 -0
  110. package/dist/mcp/vector-store.d.ts +52 -0
  111. package/dist/mcp/vector-store.d.ts.map +1 -0
  112. package/dist/mcp/vector-store.js +183 -0
  113. package/dist/mcp/vector-store.js.map +1 -0
  114. package/dist/scaffold/copy-core-agents.d.ts +2 -0
  115. package/dist/scaffold/copy-core-agents.d.ts.map +1 -0
  116. package/dist/scaffold/copy-core-agents.js +90 -0
  117. package/dist/scaffold/copy-core-agents.js.map +1 -0
  118. package/dist/scaffold/create-claude-settings.d.ts +40 -0
  119. package/dist/scaffold/create-claude-settings.d.ts.map +1 -0
  120. package/dist/scaffold/create-claude-settings.js +422 -0
  121. package/dist/scaffold/create-claude-settings.js.map +1 -0
  122. package/dist/scaffold/create-config.d.ts +14 -0
  123. package/dist/scaffold/create-config.d.ts.map +1 -0
  124. package/dist/scaffold/create-config.js +199 -0
  125. package/dist/scaffold/create-config.js.map +1 -0
  126. package/dist/scaffold/create-project-description.d.ts +12 -0
  127. package/dist/scaffold/create-project-description.d.ts.map +1 -0
  128. package/dist/scaffold/create-project-description.js +104 -0
  129. package/dist/scaffold/create-project-description.js.map +1 -0
  130. package/dist/scaffold/create-structure.d.ts +2 -0
  131. package/dist/scaffold/create-structure.d.ts.map +1 -0
  132. package/dist/scaffold/create-structure.js +146 -0
  133. package/dist/scaffold/create-structure.js.map +1 -0
  134. package/dist/types/dependency-analysis.d.ts +11 -0
  135. package/dist/types/dependency-analysis.d.ts.map +1 -0
  136. package/dist/types/dependency-analysis.js +2 -0
  137. package/dist/types/dependency-analysis.js.map +1 -0
  138. package/dist/types/index.d.ts +526 -0
  139. package/dist/types/index.d.ts.map +1 -0
  140. package/dist/types/index.js +3 -0
  141. package/dist/types/index.js.map +1 -0
  142. package/dist/types/task.d.ts +25 -0
  143. package/dist/types/task.d.ts.map +1 -0
  144. package/dist/types/task.js +3 -0
  145. package/dist/types/task.js.map +1 -0
  146. package/dist/utils/analyze-files.d.ts +7 -0
  147. package/dist/utils/analyze-files.d.ts.map +1 -0
  148. package/dist/utils/analyze-files.js +27 -0
  149. package/dist/utils/analyze-files.js.map +1 -0
  150. package/dist/utils/backup.d.ts +102 -0
  151. package/dist/utils/backup.d.ts.map +1 -0
  152. package/dist/utils/backup.js +352 -0
  153. package/dist/utils/backup.js.map +1 -0
  154. package/dist/utils/ci-provider.d.ts +23 -0
  155. package/dist/utils/ci-provider.d.ts.map +1 -0
  156. package/dist/utils/ci-provider.js +525 -0
  157. package/dist/utils/ci-provider.js.map +1 -0
  158. package/dist/utils/ci-status.d.ts +57 -0
  159. package/dist/utils/ci-status.d.ts.map +1 -0
  160. package/dist/utils/ci-status.js +349 -0
  161. package/dist/utils/ci-status.js.map +1 -0
  162. package/dist/utils/dependency-analysis.d.ts +34 -0
  163. package/dist/utils/dependency-analysis.d.ts.map +1 -0
  164. package/dist/utils/dependency-analysis.js +298 -0
  165. package/dist/utils/dependency-analysis.js.map +1 -0
  166. package/dist/utils/detect-git.d.ts +57 -0
  167. package/dist/utils/detect-git.d.ts.map +1 -0
  168. package/dist/utils/detect-git.js +439 -0
  169. package/dist/utils/detect-git.js.map +1 -0
  170. package/dist/utils/detect-mcp.d.ts +32 -0
  171. package/dist/utils/detect-mcp.d.ts.map +1 -0
  172. package/dist/utils/detect-mcp.js +178 -0
  173. package/dist/utils/detect-mcp.js.map +1 -0
  174. package/dist/utils/detect-project.d.ts +3 -0
  175. package/dist/utils/detect-project.d.ts.map +1 -0
  176. package/dist/utils/detect-project.js +155 -0
  177. package/dist/utils/detect-project.js.map +1 -0
  178. package/dist/utils/file-comparison.d.ts +89 -0
  179. package/dist/utils/file-comparison.d.ts.map +1 -0
  180. package/dist/utils/file-comparison.js +301 -0
  181. package/dist/utils/file-comparison.js.map +1 -0
  182. package/dist/utils/file-merger.d.ts +74 -0
  183. package/dist/utils/file-merger.d.ts.map +1 -0
  184. package/dist/utils/file-merger.js +350 -0
  185. package/dist/utils/file-merger.js.map +1 -0
  186. package/dist/utils/logger.d.ts +26 -0
  187. package/dist/utils/logger.d.ts.map +1 -0
  188. package/dist/utils/logger.js +72 -0
  189. package/dist/utils/logger.js.map +1 -0
  190. package/dist/utils/managed-process.d.ts +109 -0
  191. package/dist/utils/managed-process.d.ts.map +1 -0
  192. package/dist/utils/managed-process.js +481 -0
  193. package/dist/utils/managed-process.js.map +1 -0
  194. package/dist/utils/merge-claude-settings.d.ts +65 -0
  195. package/dist/utils/merge-claude-settings.d.ts.map +1 -0
  196. package/dist/utils/merge-claude-settings.js +133 -0
  197. package/dist/utils/merge-claude-settings.js.map +1 -0
  198. package/dist/utils/migration.d.ts +74 -0
  199. package/dist/utils/migration.d.ts.map +1 -0
  200. package/dist/utils/migration.js +345 -0
  201. package/dist/utils/migration.js.map +1 -0
  202. package/dist/utils/process-health.d.ts +51 -0
  203. package/dist/utils/process-health.d.ts.map +1 -0
  204. package/dist/utils/process-health.js +123 -0
  205. package/dist/utils/process-health.js.map +1 -0
  206. package/dist/utils/process-registry.d.ts +20 -0
  207. package/dist/utils/process-registry.d.ts.map +1 -0
  208. package/dist/utils/process-registry.js +151 -0
  209. package/dist/utils/process-registry.js.map +1 -0
  210. package/dist/utils/process-tree.d.ts +51 -0
  211. package/dist/utils/process-tree.d.ts.map +1 -0
  212. package/dist/utils/process-tree.js +499 -0
  213. package/dist/utils/process-tree.js.map +1 -0
  214. package/dist/utils/repair-mcp-config.d.ts +15 -0
  215. package/dist/utils/repair-mcp-config.d.ts.map +1 -0
  216. package/dist/utils/repair-mcp-config.js +129 -0
  217. package/dist/utils/repair-mcp-config.js.map +1 -0
  218. package/dist/utils/task-lifecycle.d.ts +60 -0
  219. package/dist/utils/task-lifecycle.d.ts.map +1 -0
  220. package/dist/utils/task-lifecycle.js +310 -0
  221. package/dist/utils/task-lifecycle.js.map +1 -0
  222. package/dist/utils/update-agent-mcp.d.ts +7 -0
  223. package/dist/utils/update-agent-mcp.d.ts.map +1 -0
  224. package/dist/utils/update-agent-mcp.js +115 -0
  225. package/dist/utils/update-agent-mcp.js.map +1 -0
  226. package/dist/utils/update-agent-templates.d.ts +6 -0
  227. package/dist/utils/update-agent-templates.d.ts.map +1 -0
  228. package/dist/utils/update-agent-templates.js +56 -0
  229. package/dist/utils/update-agent-templates.js.map +1 -0
  230. package/dist/utils/update-config-ci.d.ts +7 -0
  231. package/dist/utils/update-config-ci.d.ts.map +1 -0
  232. package/dist/utils/update-config-ci.js +72 -0
  233. package/dist/utils/update-config-ci.js.map +1 -0
  234. package/dist/utils/update-config-git.d.ts +18 -0
  235. package/dist/utils/update-config-git.d.ts.map +1 -0
  236. package/dist/utils/update-config-git.js +146 -0
  237. package/dist/utils/update-config-git.js.map +1 -0
  238. package/dist/utils/update-config-mcp.d.ts +7 -0
  239. package/dist/utils/update-config-mcp.d.ts.map +1 -0
  240. package/dist/utils/update-config-mcp.js +98 -0
  241. package/dist/utils/update-config-mcp.js.map +1 -0
  242. package/dist/utils/validate-config.d.ts +3 -0
  243. package/dist/utils/validate-config.d.ts.map +1 -0
  244. package/dist/utils/validate-config.js +109 -0
  245. package/dist/utils/validate-config.js.map +1 -0
  246. package/dist/utils/version-tracker.d.ts +130 -0
  247. package/dist/utils/version-tracker.d.ts.map +1 -0
  248. package/dist/utils/version-tracker.js +298 -0
  249. package/dist/utils/version-tracker.js.map +1 -0
  250. package/dist/utils/worktree.d.ts +68 -0
  251. package/dist/utils/worktree.d.ts.map +1 -0
  252. package/dist/utils/worktree.js +446 -0
  253. package/dist/utils/worktree.js.map +1 -0
  254. package/package.json +77 -0
  255. package/templates/ARCHAI_README.md +329 -0
  256. package/templates/CLAUDE.md +67 -0
  257. package/templates/PROMPTS.md +506 -0
  258. package/templates/core-agents/boss-agent.md +671 -0
  259. package/templates/core-agents/cleanup-agent.md +145 -0
  260. package/templates/core-agents/code-reviewer.md +175 -0
  261. package/templates/core-agents/critical-reviewer.md +117 -0
  262. package/templates/core-agents/deep-analyst.md +216 -0
  263. package/templates/core-agents/finalization-agent.md +252 -0
  264. package/templates/core-agents/git-coordinator.md +240 -0
  265. package/templates/core-agents/implementation-agent.md +151 -0
  266. package/templates/core-agents/maestro-agent.md +413 -0
  267. package/templates/core-agents/maestro-headless-agent.md +422 -0
  268. package/templates/core-agents/plan-validator.md +198 -0
  269. package/templates/core-agents/quick-fix.md +56 -0
  270. package/templates/core-agents/routing-templates.md +338 -0
  271. package/templates/core-agents/task-orchestrator.md +143 -0
  272. package/templates/core-agents/task-prep.md +202 -0
  273. package/templates/core-agents/tdd-designer.md +143 -0
  274. package/templates/specialist-meta.md +275 -0
@@ -0,0 +1,144 @@
1
+ import fs from 'fs-extra';
2
+ import { logger } from '../utils/logger.js';
3
+ // Cache for project description to avoid repeated reads
4
+ let cachedProjectDescription = null;
5
+ /**
6
+ * Clear the cached project description (useful for testing).
7
+ */
8
+ export function clearPromptCache() {
9
+ cachedProjectDescription = null;
10
+ }
11
+ export async function buildGenerationPrompt(config, specialist, projectDescription // Optional pre-loaded content
12
+ ) {
13
+ // Use provided description or read from cache/file
14
+ let description;
15
+ if (projectDescription) {
16
+ description = projectDescription;
17
+ }
18
+ else if (cachedProjectDescription !== null) {
19
+ description = cachedProjectDescription;
20
+ logger.debug('Using cached project description');
21
+ }
22
+ else {
23
+ try {
24
+ description = await fs.readFile('.knowledge/context/project-description.md', 'utf-8');
25
+ cachedProjectDescription = description;
26
+ logger.debug('Loaded and cached project description');
27
+ }
28
+ catch (error) {
29
+ logger.debug('Failed to read project description', error);
30
+ description = 'Project description not found.';
31
+ }
32
+ }
33
+ // Read the full config for context
34
+ const configContent = config.rawContent || '';
35
+ if (specialist) {
36
+ return buildSpecialistPrompt(config, specialist, description, configContent);
37
+ }
38
+ // Overview prompt
39
+ return `
40
+ # Specialist Generation Request
41
+
42
+ ## Project: ${config.projectName}
43
+ ## Type: ${config.projectType}
44
+ ## Languages: ${config.languages}
45
+ ## Frameworks: ${config.frameworks}
46
+
47
+ ## Project Description
48
+ ${projectDescription}
49
+
50
+ ## Specialists to Generate
51
+ ${config.specialists.map(s => `- ${s.name}: ${s.focus}`).join('\n')}
52
+ `;
53
+ }
54
+ function buildSpecialistPrompt(config, specialist, projectDescription, configContent) {
55
+ return `
56
+ You are generating a specialist agent definition for the archai multi-agent system.
57
+
58
+ # Task
59
+ Generate a complete markdown agent definition file for a "${specialist.name}-specialist" agent.
60
+
61
+ # Project Context
62
+ - **Name**: ${config.projectName}
63
+ - **Type**: ${config.projectType}
64
+ - **Languages**: ${config.languages}
65
+ - **Frameworks**: ${config.frameworks}
66
+ - **Testing**: ${config.testing}
67
+
68
+ ## Project Description
69
+ ${projectDescription}
70
+
71
+ ## Full Project Configuration
72
+ ${configContent}
73
+
74
+ ## Specialist Requirements
75
+ - **Name**: ${specialist.name}-specialist
76
+ - **Focus**: ${specialist.focus}
77
+ - **Key Concerns**:
78
+ ${specialist.key_concerns.map(c => ` - ${c}`).join('\n') || ' - General best practices'}
79
+
80
+ ---
81
+
82
+ # Output Format
83
+
84
+ Generate a complete agent definition following this structure:
85
+
86
+ \`\`\`markdown
87
+ ---
88
+ name: ${specialist.name}-specialist
89
+ description: "[Brief description of when to use this specialist]"
90
+ tools: Read, Grep, Glob, Edit, Bash
91
+ model: sonnet
92
+ ---
93
+
94
+ You are a {DOMAIN} expert specializing in {SPECIFIC_TECHNOLOGIES}.
95
+
96
+ ## Project Context: ${config.projectName}
97
+
98
+ {Relevant project context}
99
+
100
+ **Stack relevant to this specialist:**
101
+ {List technologies this specialist works with}
102
+
103
+ **Key Files:**
104
+ {List files/directories this specialist focuses on}
105
+
106
+ ## Domain Expertise
107
+
108
+ ### Core Concepts
109
+ {Domain-specific concepts}
110
+
111
+ ### Best Practices
112
+ {Patterns and practices}
113
+
114
+ ### Common Pitfalls
115
+ {Things to avoid}
116
+
117
+ ### Code Patterns
118
+ {Example patterns with code}
119
+
120
+ ## When Working on {DOMAIN}
121
+
122
+ 1. {Guidance 1}
123
+ 2. {Guidance 2}
124
+ ...
125
+
126
+ ## Testing Approach
127
+
128
+ {How to test code in this domain}
129
+
130
+ ## Output
131
+
132
+ When called for {DOMAIN} work, provide:
133
+ 1. Domain-specific analysis
134
+ 2. Recommended patterns
135
+ 3. Pitfall warnings
136
+ 4. Testing strategy
137
+ \`\`\`
138
+
139
+ IMPORTANT: Output ONLY the markdown content starting with --- frontmatter. Do not include any explanation before or after. The output should be ready to save directly to a .md file.
140
+
141
+ Generate the complete agent definition now. Be specific to the project and technologies. Include real, practical guidance.
142
+ `;
143
+ }
144
+ //# sourceMappingURL=prompt-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../../src/generator/prompt-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAE1B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,wDAAwD;AACxD,IAAI,wBAAwB,GAAkB,IAAI,CAAC;AAEnD;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,wBAAwB,GAAG,IAAI,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAc,EACd,UAAuB,EACvB,kBAA2B,CAAE,8BAA8B;;IAE3D,mDAAmD;IACnD,IAAI,WAAmB,CAAC;IAExB,IAAI,kBAAkB,EAAE,CAAC;QACvB,WAAW,GAAG,kBAAkB,CAAC;IACnC,CAAC;SAAM,IAAI,wBAAwB,KAAK,IAAI,EAAE,CAAC;QAC7C,WAAW,GAAG,wBAAwB,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,EAAE,OAAO,CAAC,CAAC;YACtF,wBAAwB,GAAG,WAAW,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;YAC1D,WAAW,GAAG,gCAAgC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;IAE9C,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,qBAAqB,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;IAC/E,CAAC;IAED,kBAAkB;IAClB,OAAO;;;cAGK,MAAM,CAAC,WAAW;WACrB,MAAM,CAAC,WAAW;gBACb,MAAM,CAAC,SAAS;iBACf,MAAM,CAAC,UAAU;;;EAGhC,kBAAkB;;;EAGlB,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;CAClE,CAAC;AACF,CAAC;AAED,SAAS,qBAAqB,CAC5B,MAAc,EACd,UAAsB,EACtB,kBAA0B,EAC1B,aAAqB;IAErB,OAAO;;;;4DAImD,UAAU,CAAC,IAAI;;;cAG7D,MAAM,CAAC,WAAW;cAClB,MAAM,CAAC,WAAW;mBACb,MAAM,CAAC,SAAS;oBACf,MAAM,CAAC,UAAU;iBACpB,MAAM,CAAC,OAAO;;;EAG7B,kBAAkB;;;EAGlB,aAAa;;;cAGD,UAAU,CAAC,IAAI;eACd,UAAU,CAAC,KAAK;;EAE7B,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,4BAA4B;;;;;;;;;;QAUjF,UAAU,CAAC,IAAI;;;;;;;;sBAQD,MAAM,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CvC,CAAC;AACF,CAAC"}
@@ -0,0 +1,36 @@
1
+ export { init } from './commands/init.js';
2
+ export { generate } from './commands/generate.js';
3
+ export { doctor } from './commands/doctor.js';
4
+ export { setupProject } from './commands/setup-project.js';
5
+ export { setupConfig } from './commands/setup-config.js';
6
+ export { uninstall } from './commands/uninstall.js';
7
+ export { update } from './commands/update.js';
8
+ export { rollback, type RollbackOptions } from './commands/rollback.js';
9
+ export { cleanup, type CleanupOptions } from './commands/cleanup.js';
10
+ export { dispatch } from './commands/dispatch.js';
11
+ export { worktreeCreate, worktreeList, worktreeCleanup, } from './commands/worktree.js';
12
+ export { knowledgeCreate, knowledgeJoin, knowledgeLeave, knowledgeList, validateGroupName, } from './commands/knowledge.js';
13
+ export { readClaudeSettings, writeClaudeSettings, readSettingsLocal, readMcpJson, addMcpServer, removeMcpServer, addAllowPermission, removeAllowPermission, } from './utils/merge-claude-settings.js';
14
+ export { startKnowledgeMcpServer } from './mcp/knowledge-server.js';
15
+ export { scaffoldProject } from './scaffold/create-structure.js';
16
+ export { copyCoreAgents } from './scaffold/copy-core-agents.js';
17
+ export { createConfigTemplate } from './scaffold/create-config.js';
18
+ export { createProjectDescription } from './scaffold/create-project-description.js';
19
+ export { createClaudeSettings } from './scaffold/create-claude-settings.js';
20
+ export { detectProject } from './utils/detect-project.js';
21
+ export { validateConfig } from './utils/validate-config.js';
22
+ export { logger } from './utils/logger.js';
23
+ export { backupIfExists, restoreFromBackup, cleanupOldBackups, createBackup, restoreBackupFull, listBackups, pruneOldBackups, getLatestBackup, backupExists, getBackupsDir, type BackupManifest, type BackupFileEntry, type BackupInfo, type BackupResult, type RestoreResult, } from './utils/backup.js';
24
+ export { loadVersionFile, saveVersionFile, createVersionFile, updateVersionInfo, updateFileHash, markAsGenerated, removeFile, getFileRecord, getBaseHash, isFileGenerated, getTrackedFiles, getExpectedFiles, setExpectedFiles, addExpectedFile, removeExpectedFile, getMissingFiles, getOrphanedFiles, getGeneratedFiles, versionFileExists, normalizePath, bulkUpdateFileHashes, createFromInstall, getVersionFilePath, CURRENT_SCHEMA_VERSION, VERSION_FILE, type FileRecord, type VersionFile, } from './utils/version-tracker.js';
25
+ export { detectLegacyInstall, hasExistingInstall, migrateFromLegacy, ensureMigrated, getTemplateHashes, getTemplateFiles, getTemplatePath, getArchaiVersion, getCustomFiles, getTemplatesDir, getCoreAgentsTemplatesDir, type MigrationResult, type TemplateFile, } from './utils/migration.js';
26
+ export { analyzeAllFiles } from './utils/analyze-files.js';
27
+ export { parseTaskFile, serializeTaskFile, sortByPriority, validateTransition, findTaskFile, moveTask, blockTask, listTasks, listInbox, getStatusForDirectory, getDirectoryForStatus, PRIORITY_ORDER, ALLOWED_TRANSITIONS, } from './utils/task-lifecycle.js';
28
+ export { buildGenerationPrompt, clearPromptCache } from './generator/prompt-builder.js';
29
+ export { runClaudeCli, checkClaudeCliAvailable, getClaudeVersion, getClaudeCliInfo } from './generator/claude-cli.js';
30
+ export { detectGitRepo, isWorktree, discoverGitDefaults, validateGitignore, fixGitignore, } from './utils/detect-git.js';
31
+ export { sanitize, bootstrapWorktree, createWorktree, removeWorktree, listWorktrees, isInsideWorktree, getMainWorktreePath, pruneWorktrees, detectStaleWorktrees, } from './utils/worktree.js';
32
+ export { detectCIProvider, createCIProvider, getCIProvider, normalizeGitHubStatus, normalizeGitLabStatus, } from './utils/ci-provider.js';
33
+ export type { Specialist, Config, ValidationResult, DetectedProject, WizardAnswers, PermissionPreset, PermissionConfig, ClaudeCliInfo, InitOptions, GenerateOptions, UninstallOptions, UpdateOptions, RollbackContext, KnowledgeGroup, WorktreeInfo, GitConfig, GitignoreValidation, SetupOptions, McpServer, TaskManagerProvider, McpBoard, McpConceptMapping, McpIntrospectionResult, McpConfig, DispatchOptions, } from './types/index.js';
34
+ export type { TaskPriority, TaskStatus, TaskFrontmatter, TaskSpec, } from './types/index.js';
35
+ export type { CIProviderName, CIPipelineStatusValue, CIDetectedVia, CIAuthMethod, CIProviderConfig, CIPipelineStatus, CIJobLog, CIPipelineLogs, CIWaitOptions, CIWaitResult, CIDetectionResult, CIProvider, } from './types/index.js';
36
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,45 @@
1
+ // archai - Multi-Agent Development Workflow Setup
2
+ // https://github.com/xxx/archai
3
+ // Commands
4
+ export { init } from './commands/init.js';
5
+ export { generate } from './commands/generate.js';
6
+ export { doctor } from './commands/doctor.js';
7
+ export { setupProject } from './commands/setup-project.js';
8
+ export { setupConfig } from './commands/setup-config.js';
9
+ export { uninstall } from './commands/uninstall.js';
10
+ export { update } from './commands/update.js';
11
+ export { rollback } from './commands/rollback.js';
12
+ export { cleanup } from './commands/cleanup.js';
13
+ export { dispatch } from './commands/dispatch.js';
14
+ // Worktree CLI commands
15
+ export { worktreeCreate, worktreeList, worktreeCleanup, } from './commands/worktree.js';
16
+ // Knowledge group management
17
+ export { knowledgeCreate, knowledgeJoin, knowledgeLeave, knowledgeList, validateGroupName, } from './commands/knowledge.js';
18
+ export { readClaudeSettings, writeClaudeSettings, readSettingsLocal, readMcpJson, addMcpServer, removeMcpServer, addAllowPermission, removeAllowPermission, } from './utils/merge-claude-settings.js';
19
+ export { startKnowledgeMcpServer } from './mcp/knowledge-server.js';
20
+ // Scaffold functions
21
+ export { scaffoldProject } from './scaffold/create-structure.js';
22
+ export { copyCoreAgents } from './scaffold/copy-core-agents.js';
23
+ export { createConfigTemplate } from './scaffold/create-config.js';
24
+ export { createProjectDescription } from './scaffold/create-project-description.js';
25
+ export { createClaudeSettings } from './scaffold/create-claude-settings.js';
26
+ // Utilities
27
+ export { detectProject } from './utils/detect-project.js';
28
+ export { validateConfig } from './utils/validate-config.js';
29
+ export { logger } from './utils/logger.js';
30
+ export { backupIfExists, restoreFromBackup, cleanupOldBackups, createBackup, restoreBackupFull, listBackups, pruneOldBackups, getLatestBackup, backupExists, getBackupsDir, } from './utils/backup.js';
31
+ export { loadVersionFile, saveVersionFile, createVersionFile, updateVersionInfo, updateFileHash, markAsGenerated, removeFile, getFileRecord, getBaseHash, isFileGenerated, getTrackedFiles, getExpectedFiles, setExpectedFiles, addExpectedFile, removeExpectedFile, getMissingFiles, getOrphanedFiles, getGeneratedFiles, versionFileExists, normalizePath, bulkUpdateFileHashes, createFromInstall, getVersionFilePath, CURRENT_SCHEMA_VERSION, VERSION_FILE, } from './utils/version-tracker.js';
32
+ export { detectLegacyInstall, hasExistingInstall, migrateFromLegacy, ensureMigrated, getTemplateHashes, getTemplateFiles, getTemplatePath, getArchaiVersion, getCustomFiles, getTemplatesDir, getCoreAgentsTemplatesDir, } from './utils/migration.js';
33
+ // Analysis
34
+ export { analyzeAllFiles } from './utils/analyze-files.js';
35
+ export { parseTaskFile, serializeTaskFile, sortByPriority, validateTransition, findTaskFile, moveTask, blockTask, listTasks, listInbox, getStatusForDirectory, getDirectoryForStatus, PRIORITY_ORDER, ALLOWED_TRANSITIONS, } from './utils/task-lifecycle.js';
36
+ // Generator
37
+ export { buildGenerationPrompt, clearPromptCache } from './generator/prompt-builder.js';
38
+ export { runClaudeCli, checkClaudeCliAvailable, getClaudeVersion, getClaudeCliInfo } from './generator/claude-cli.js';
39
+ // Git detection
40
+ export { detectGitRepo, isWorktree, discoverGitDefaults, validateGitignore, fixGitignore, } from './utils/detect-git.js';
41
+ // Worktree management
42
+ export { sanitize, bootstrapWorktree, createWorktree, removeWorktree, listWorktrees, isInsideWorktree, getMainWorktreePath, pruneWorktrees, detectStaleWorktrees, } from './utils/worktree.js';
43
+ // CI provider detection and management
44
+ export { detectCIProvider, createCIProvider, getCIProvider, normalizeGitHubStatus, normalizeGitLabStatus, } from './utils/ci-provider.js';
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Embedding engine for semantic search.
3
+ * Uses @huggingface/transformers with Xenova/all-MiniLM-L6-v2 for local embeddings.
4
+ * No API keys needed — runs entirely locally via WASM/ONNX.
5
+ */
6
+ /**
7
+ * Abstract embedding engine interface.
8
+ * Implementations can use different models or backends.
9
+ */
10
+ export interface EmbeddingEngine {
11
+ /** Embed a single text string into a vector. */
12
+ embed(text: string): Promise<number[]>;
13
+ /** Embed multiple texts into vectors. */
14
+ embedBatch(texts: string[]): Promise<number[][]>;
15
+ /** Number of dimensions in the output vectors. */
16
+ readonly dimensions: number;
17
+ /** Model identifier. */
18
+ readonly modelName: string;
19
+ /** Whether the engine is initialized and ready to embed. */
20
+ readonly isReady: boolean;
21
+ }
22
+ /**
23
+ * Local embedding engine using @huggingface/transformers.
24
+ *
25
+ * - Model: Xenova/all-MiniLM-L6-v2 (384-dimensional, ~25MB)
26
+ * - Pooling: mean, normalized
27
+ * - Loads via dynamic import — gracefully handles missing package
28
+ * - Model cached after first download (subsequent loads ~200ms)
29
+ */
30
+ export declare class LocalEmbeddingEngine implements EmbeddingEngine {
31
+ private extractor;
32
+ readonly dimensions = 384;
33
+ readonly modelName = "all-MiniLM-L6-v2";
34
+ get isReady(): boolean;
35
+ /**
36
+ * Initialize the embedding engine.
37
+ * Downloads the model on first run (~25MB).
38
+ * Never throws — sets isReady=false on failure.
39
+ */
40
+ initialize(): Promise<void>;
41
+ /**
42
+ * Embed a single text string.
43
+ * @throws if engine is not initialized
44
+ */
45
+ embed(text: string): Promise<number[]>;
46
+ /**
47
+ * Embed multiple texts sequentially.
48
+ * At our scale (50-500 entries), sequential is fast enough and simpler.
49
+ * @throws if engine is not initialized
50
+ */
51
+ embedBatch(texts: string[]): Promise<number[][]>;
52
+ }
53
+ //# sourceMappingURL=embeddings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../../src/mcp/embeddings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,gDAAgD;IAChD,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACvC,yCAAyC;IACzC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACjD,kDAAkD;IAClD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,wBAAwB;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,qBAAa,oBAAqB,YAAW,eAAe;IAC1D,OAAO,CAAC,SAAS,CAAa;IAC9B,QAAQ,CAAC,UAAU,OAAO;IAC1B,QAAQ,CAAC,SAAS,sBAAsB;IAExC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBjC;;;OAGG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAW5C;;;;OAIG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;CAUvD"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Embedding engine for semantic search.
3
+ * Uses @huggingface/transformers with Xenova/all-MiniLM-L6-v2 for local embeddings.
4
+ * No API keys needed — runs entirely locally via WASM/ONNX.
5
+ */
6
+ /**
7
+ * Local embedding engine using @huggingface/transformers.
8
+ *
9
+ * - Model: Xenova/all-MiniLM-L6-v2 (384-dimensional, ~25MB)
10
+ * - Pooling: mean, normalized
11
+ * - Loads via dynamic import — gracefully handles missing package
12
+ * - Model cached after first download (subsequent loads ~200ms)
13
+ */
14
+ export class LocalEmbeddingEngine {
15
+ extractor = null;
16
+ dimensions = 384;
17
+ modelName = 'all-MiniLM-L6-v2';
18
+ get isReady() {
19
+ return this.extractor !== null;
20
+ }
21
+ /**
22
+ * Initialize the embedding engine.
23
+ * Downloads the model on first run (~25MB).
24
+ * Never throws — sets isReady=false on failure.
25
+ */
26
+ async initialize() {
27
+ try {
28
+ const { pipeline } = await import('@huggingface/transformers');
29
+ this.extractor = await pipeline('feature-extraction', 'Xenova/all-MiniLM-L6-v2', { dtype: 'fp32' });
30
+ }
31
+ catch (err) {
32
+ const message = err instanceof Error ? err.message : String(err);
33
+ process.stderr.write('Embedding model initialization failed. Semantic search unavailable — using keyword search only. ' +
34
+ 'Reason: ' + message + '\n');
35
+ this.extractor = null;
36
+ }
37
+ }
38
+ /**
39
+ * Embed a single text string.
40
+ * @throws if engine is not initialized
41
+ */
42
+ async embed(text) {
43
+ if (!this.extractor) {
44
+ throw new Error('Embedding engine not initialized');
45
+ }
46
+ const result = await this.extractor(text, {
47
+ pooling: 'mean',
48
+ normalize: true,
49
+ });
50
+ return Array.from(result.data);
51
+ }
52
+ /**
53
+ * Embed multiple texts sequentially.
54
+ * At our scale (50-500 entries), sequential is fast enough and simpler.
55
+ * @throws if engine is not initialized
56
+ */
57
+ async embedBatch(texts) {
58
+ if (!this.extractor) {
59
+ throw new Error('Embedding engine not initialized');
60
+ }
61
+ const vectors = [];
62
+ for (const text of texts) {
63
+ vectors.push(await this.embed(text));
64
+ }
65
+ return vectors;
66
+ }
67
+ }
68
+ //# sourceMappingURL=embeddings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../src/mcp/embeddings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAmBH;;;;;;;GAOG;AACH,MAAM,OAAO,oBAAoB;IACvB,SAAS,GAAQ,IAAI,CAAC;IACrB,UAAU,GAAG,GAAG,CAAC;IACjB,SAAS,GAAG,kBAAkB,CAAC;IAExC,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;YAC/D,IAAI,CAAC,SAAS,GAAG,MAAM,QAAQ,CAC7B,oBAAoB,EACpB,yBAAyB,EACzB,EAAE,KAAK,EAAE,MAAM,EAAS,CACzB,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,kGAAkG;gBAClG,UAAU,GAAG,OAAO,GAAG,IAAI,CAC5B,CAAC;YACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK,CAAC,IAAY;QACtB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;YACxC,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAoB,CAAC,CAAC;IACjD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,KAAe;QAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,OAAO,GAAe,EAAE,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Hybrid search combining keyword (FTS5) and semantic (cosine similarity) results.
3
+ * Uses Reciprocal Rank Fusion (RRF) to merge rankings from both engines.
4
+ */
5
+ import type { SearchIndex, SearchResult } from "./search-index.js";
6
+ import type { VectorStore } from "./vector-store.js";
7
+ import type { EmbeddingEngine } from "./embeddings.js";
8
+ /**
9
+ * Merge multiple ranked result lists using Reciprocal Rank Fusion.
10
+ * RRF score = sum(1 / (k + rank + 1)) across all lists containing the result.
11
+ * Higher k dampens the effect of high ranks (k=60 is standard).
12
+ */
13
+ export declare function reciprocalRankFusion(resultSets: SearchResult[][], opts: {
14
+ k: number;
15
+ limit: number;
16
+ }): SearchResult[];
17
+ /**
18
+ * Perform hybrid search combining keyword and semantic results.
19
+ * Falls back gracefully to keyword-only if embedding engine is not ready.
20
+ */
21
+ export declare function hybridSearch(query: string, searchIndex: SearchIndex, vectorStore: VectorStore, embeddingEngine: EmbeddingEngine, options: {
22
+ limit?: number;
23
+ category?: string;
24
+ }): Promise<SearchResult[]>;
25
+ //# sourceMappingURL=hybrid-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hybrid-search.d.ts","sourceRoot":"","sources":["../../src/mcp/hybrid-search.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAsB,MAAM,mBAAmB,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,YAAY,EAAE,EAAE,EAC5B,IAAI,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC,YAAY,EAAE,CAyBhB;AAeD;;;GAGG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7C,OAAO,CAAC,YAAY,EAAE,CAAC,CAyBzB"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Hybrid search combining keyword (FTS5) and semantic (cosine similarity) results.
3
+ * Uses Reciprocal Rank Fusion (RRF) to merge rankings from both engines.
4
+ */
5
+ /**
6
+ * Merge multiple ranked result lists using Reciprocal Rank Fusion.
7
+ * RRF score = sum(1 / (k + rank + 1)) across all lists containing the result.
8
+ * Higher k dampens the effect of high ranks (k=60 is standard).
9
+ */
10
+ export function reciprocalRankFusion(resultSets, opts) {
11
+ const scores = new Map();
12
+ for (const results of resultSets) {
13
+ results.forEach((result, rank) => {
14
+ const rrfScore = 1 / (opts.k + rank + 1);
15
+ const current = scores.get(result.id);
16
+ if (current) {
17
+ current.score += rrfScore;
18
+ // Prefer keyword snippet (has match context from FTS5)
19
+ if (!current.hasKeywordSnippet && result.snippet && result.snippet.includes(">>")) {
20
+ current.entry = { ...current.entry, snippet: result.snippet };
21
+ current.hasKeywordSnippet = true;
22
+ }
23
+ }
24
+ else {
25
+ const hasKeywordSnippet = !!(result.snippet && result.snippet.includes(">>"));
26
+ scores.set(result.id, { score: rrfScore, entry: result, hasKeywordSnippet });
27
+ }
28
+ });
29
+ }
30
+ return [...scores.values()]
31
+ .sort((a, b) => b.score - a.score)
32
+ .slice(0, opts.limit)
33
+ .map(({ entry, score }) => ({ ...entry, score }));
34
+ }
35
+ /**
36
+ * Convert vector search results to the standard SearchResult format.
37
+ */
38
+ function vectorToSearchResults(results) {
39
+ return results.map(r => ({
40
+ id: r.id,
41
+ title: r.title,
42
+ category: r.category,
43
+ snippet: r.snippet,
44
+ score: r.score,
45
+ }));
46
+ }
47
+ /**
48
+ * Perform hybrid search combining keyword and semantic results.
49
+ * Falls back gracefully to keyword-only if embedding engine is not ready.
50
+ */
51
+ export async function hybridSearch(query, searchIndex, vectorStore, embeddingEngine, options) {
52
+ const limit = options.limit ?? 5;
53
+ // 1. Keyword search (FTS5)
54
+ const keywordResults = searchIndex.search(query, { limit: 20, category: options.category });
55
+ // 2. Semantic search (embed query -> cosine sim)
56
+ if (!embeddingEngine.isReady) {
57
+ // Degrade gracefully: return keyword results with degraded flag
58
+ return keywordResults.slice(0, limit).map(r => ({ ...r, degraded: true }));
59
+ }
60
+ const queryVector = await embeddingEngine.embed(query);
61
+ let semanticResults = vectorToSearchResults(vectorStore.search(queryVector, 20));
62
+ // Apply category filter to semantic results
63
+ if (options.category) {
64
+ semanticResults = semanticResults.filter(r => r.category === options.category);
65
+ }
66
+ // 3. Merge with Reciprocal Rank Fusion (k=60)
67
+ return reciprocalRankFusion([keywordResults, semanticResults], {
68
+ k: 60,
69
+ limit,
70
+ });
71
+ }
72
+ //# sourceMappingURL=hybrid-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hybrid-search.js","sourceRoot":"","sources":["../../src/mcp/hybrid-search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function startKnowledgeMcpServer(options: {
2
+ group: string;
3
+ }): Promise<void>;
4
+ //# sourceMappingURL=knowledge-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-server.d.ts","sourceRoot":"","sources":["../../src/mcp/knowledge-server.ts"],"names":[],"mappings":"AA0BA,wBAAsB,uBAAuB,CAAC,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyJvF"}