@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,183 @@
1
+ /**
2
+ * Vector store for semantic search.
3
+ * Stores embedding vectors in a .vectors.json file per knowledge group.
4
+ * Uses brute-force cosine similarity for search (fast at 50-500 entries).
5
+ * Write operations are serialized via a mutex to prevent corruption.
6
+ */
7
+ import fs from "fs-extra";
8
+ import path from "path";
9
+ export function cosineSimilarity(a, b) {
10
+ let dot = 0;
11
+ let normA = 0;
12
+ let normB = 0;
13
+ for (let i = 0; i < a.length; i++) {
14
+ dot += a[i] * b[i];
15
+ normA += a[i] * a[i];
16
+ normB += b[i] * b[i];
17
+ }
18
+ const denom = Math.sqrt(normA) * Math.sqrt(normB);
19
+ if (denom === 0)
20
+ return 0;
21
+ return dot / denom;
22
+ }
23
+ export function truncateForSnippet(text, maxLen = 150) {
24
+ if (text.length <= maxLen)
25
+ return text;
26
+ return text.slice(0, maxLen) + "...";
27
+ }
28
+ export class VectorStore {
29
+ data;
30
+ filePath;
31
+ engine;
32
+ writeLock = false;
33
+ writeQueue = [];
34
+ constructor(filePath, engine) {
35
+ this.filePath = filePath;
36
+ this.engine = engine;
37
+ this.data = {
38
+ model: engine.modelName,
39
+ dimensions: engine.dimensions,
40
+ entries: [],
41
+ };
42
+ }
43
+ get entryCount() {
44
+ return this.data.entries.length;
45
+ }
46
+ has(id) {
47
+ return this.data.entries.some(e => e.id === id);
48
+ }
49
+ async load(onRebuildNeeded) {
50
+ try {
51
+ if (!(await fs.pathExists(this.filePath))) {
52
+ if (onRebuildNeeded && this.engine.isReady) {
53
+ const entries = await onRebuildNeeded();
54
+ await this.rebuild(entries);
55
+ }
56
+ return;
57
+ }
58
+ const raw = await fs.readFile(this.filePath, "utf-8");
59
+ const parsed = JSON.parse(raw);
60
+ if (parsed.model !== this.engine.modelName || parsed.dimensions !== this.engine.dimensions) {
61
+ process.stderr.write("Vector model mismatch, rebuilding...\n");
62
+ if (onRebuildNeeded && this.engine.isReady) {
63
+ const entries = await onRebuildNeeded();
64
+ await this.rebuild(entries);
65
+ }
66
+ return;
67
+ }
68
+ const validEntries = parsed.entries.filter(e => e.vector && e.vector.length === this.engine.dimensions);
69
+ if (validEntries.length !== parsed.entries.length) {
70
+ process.stderr.write("Some vector entries have invalid dimensions, filtered " +
71
+ (parsed.entries.length - validEntries.length) + " entries.\n");
72
+ }
73
+ this.data = { ...parsed, entries: validEntries };
74
+ }
75
+ catch (err) {
76
+ const message = err instanceof Error ? err.message : String(err);
77
+ process.stderr.write(".vectors.json corrupt or unreadable (" + message + "), rebuilding...\n");
78
+ if (onRebuildNeeded && this.engine.isReady) {
79
+ const entries = await onRebuildNeeded();
80
+ await this.rebuild(entries);
81
+ }
82
+ }
83
+ }
84
+ async save() {
85
+ await this.acquireLock();
86
+ try {
87
+ const dir = path.dirname(this.filePath);
88
+ await fs.ensureDir(dir);
89
+ const tmpPath = this.filePath + ".tmp." + Date.now();
90
+ await fs.writeFile(tmpPath, JSON.stringify(this.data, null, 2), "utf-8");
91
+ await fs.rename(tmpPath, this.filePath);
92
+ }
93
+ finally {
94
+ this.releaseLock();
95
+ }
96
+ }
97
+ async add(id, vector, metadata) {
98
+ const existing = this.data.entries.findIndex(e => e.id === id);
99
+ const entry = {
100
+ id,
101
+ vector,
102
+ category: metadata.category,
103
+ title: metadata.title,
104
+ snippetText: truncateForSnippet(metadata.content),
105
+ };
106
+ if (existing >= 0) {
107
+ this.data.entries[existing] = entry;
108
+ }
109
+ else {
110
+ this.data.entries.push(entry);
111
+ }
112
+ await this.save();
113
+ }
114
+ async remove(id) {
115
+ const before = this.data.entries.length;
116
+ this.data.entries = this.data.entries.filter(e => e.id !== id);
117
+ if (this.data.entries.length < before) {
118
+ await this.save();
119
+ }
120
+ }
121
+ search(queryVector, topK = 5) {
122
+ if (this.data.entries.length === 0)
123
+ return [];
124
+ const scored = this.data.entries.map(entry => ({
125
+ id: entry.id,
126
+ title: entry.title,
127
+ category: entry.category,
128
+ snippet: entry.snippetText,
129
+ score: cosineSimilarity(queryVector, entry.vector),
130
+ }));
131
+ scored.sort((a, b) => b.score - a.score);
132
+ return scored.slice(0, topK);
133
+ }
134
+ async rebuild(entries) {
135
+ if (!this.engine.isReady) {
136
+ process.stderr.write("Cannot rebuild vector store: embedding engine not ready.\n");
137
+ return;
138
+ }
139
+ const newEntries = [];
140
+ for (const entry of entries) {
141
+ try {
142
+ const textToEmbed = entry.title + " " + entry.content;
143
+ const vector = await this.engine.embed(textToEmbed);
144
+ newEntries.push({
145
+ id: entry.id,
146
+ vector,
147
+ category: entry.category,
148
+ title: entry.title,
149
+ snippetText: truncateForSnippet(entry.content),
150
+ });
151
+ }
152
+ catch (err) {
153
+ process.stderr.write("Failed to embed entry " + entry.id + ": " +
154
+ (err instanceof Error ? err.message : String(err)) + "\n");
155
+ }
156
+ }
157
+ this.data = {
158
+ model: this.engine.modelName,
159
+ dimensions: this.engine.dimensions,
160
+ entries: newEntries,
161
+ };
162
+ await this.save();
163
+ }
164
+ async acquireLock() {
165
+ if (!this.writeLock) {
166
+ this.writeLock = true;
167
+ return;
168
+ }
169
+ return new Promise(resolve => {
170
+ this.writeQueue.push(resolve);
171
+ });
172
+ }
173
+ releaseLock() {
174
+ const next = this.writeQueue.shift();
175
+ if (next) {
176
+ next();
177
+ }
178
+ else {
179
+ this.writeLock = false;
180
+ }
181
+ }
182
+ }
183
+ //# sourceMappingURL=vector-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector-store.js","sourceRoot":"","sources":["../../src/mcp/vector-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function copyCoreAgents(): Promise<void>;
2
+ //# sourceMappingURL=copy-core-agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copy-core-agents.d.ts","sourceRoot":"","sources":["../../src/scaffold/copy-core-agents.ts"],"names":[],"mappings":"AA0BA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAsEpD"}
@@ -0,0 +1,90 @@
1
+ import fs from 'fs-extra';
2
+ import path from 'path';
3
+ import { fileURLToPath } from 'url';
4
+ const __filename = fileURLToPath(import.meta.url);
5
+ const __dirname = path.dirname(__filename);
6
+ // Core agents that are always installed
7
+ const CORE_AGENTS = [
8
+ 'maestro-agent',
9
+ 'maestro-headless-agent',
10
+ 'boss-agent',
11
+ 'deep-analyst',
12
+ 'plan-validator',
13
+ 'tdd-designer',
14
+ 'critical-reviewer',
15
+ 'implementation-agent',
16
+ 'code-reviewer',
17
+ 'cleanup-agent',
18
+ 'finalization-agent',
19
+ 'task-orchestrator',
20
+ 'task-prep',
21
+ 'quick-fix',
22
+ 'git-coordinator',
23
+ ];
24
+ export async function copyCoreAgents() {
25
+ // Find templates directory (relative to compiled JS location)
26
+ // In dev: src/scaffold/copy-core-agents.ts -> templates/
27
+ // In dist: dist/scaffold/copy-core-agents.js -> templates/
28
+ const templatesDir = path.resolve(__dirname, '../../templates/core-agents');
29
+ // Ensure target directory exists
30
+ await fs.ensureDir('.claude/agents');
31
+ // Copy each core agent
32
+ for (const agent of CORE_AGENTS) {
33
+ const sourcePath = path.join(templatesDir, `${agent}.md`);
34
+ const targetPath = `.claude/agents/${agent}.md`;
35
+ if (await fs.pathExists(sourcePath)) {
36
+ await fs.copy(sourcePath, targetPath);
37
+ }
38
+ else {
39
+ // If template doesn't exist, create a placeholder
40
+ console.warn(`Warning: Template for ${agent} not found at ${sourcePath}`);
41
+ }
42
+ }
43
+ // Copy specialist meta-template
44
+ const metaSource = path.join(templatesDir, '../specialist-meta.md');
45
+ if (await fs.pathExists(metaSource)) {
46
+ await fs.copy(metaSource, '.claude/templates/specialist-meta.md');
47
+ }
48
+ // Create README for agents folder
49
+ const readmeContent = `# Agent Definitions
50
+
51
+ This folder contains the agent definitions for the archai multi-agent system.
52
+
53
+ ## Core Agents (15)
54
+
55
+ | Agent | Purpose |
56
+ |-------|---------|
57
+ | maestro-agent | Orchestrates the 3-phase workflow |
58
+ | maestro-headless-agent | Headless orchestration for boss dispatch |
59
+ | boss-agent | Batch task dispatch & supervision |
60
+ | deep-analyst | Deep analysis before implementation |
61
+ | plan-validator | Validates plans, finds gaps |
62
+ | tdd-designer | Designs tests before code |
63
+ | critical-reviewer | Reviews plans for blind spots (SDK session) |
64
+ | implementation-agent | Autonomous code implementation |
65
+ | code-reviewer | Post-implementation review |
66
+ | cleanup-agent | Pre-commit cleanup |
67
+ | finalization-agent | Commit, push, CI/CD |
68
+ | task-orchestrator | Epic/task lifecycle |
69
+ | task-prep | Architect-level task preparation |
70
+ | quick-fix | Fast single-pass for small fixes |
71
+ | git-coordinator | Git coordination & merging |
72
+
73
+ ## Specialist Agents
74
+
75
+ Generated by \`archai generate\` based on your project configuration.
76
+
77
+ ## Usage
78
+
79
+ In Claude Code:
80
+ \`\`\`
81
+ # Manual mode (default) - user approves at gates
82
+ Use maestro-agent for: [your task]
83
+
84
+ # Critical review mode - auto-approve with SDK review
85
+ Use maestro-agent with critical-review for: [your task]
86
+ \`\`\`
87
+ `;
88
+ await fs.writeFile('.claude/agents/README.md', readmeContent);
89
+ }
90
+ //# sourceMappingURL=copy-core-agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copy-core-agents.js","sourceRoot":"","sources":["../../src/scaffold/copy-core-agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,wCAAwC;AACxC,MAAM,WAAW,GAAG;IAClB,eAAe;IACf,wBAAwB;IACxB,YAAY;IACZ,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,mBAAmB;IACnB,sBAAsB;IACtB,eAAe;IACf,eAAe;IACf,oBAAoB;IACpB,mBAAmB;IACnB,WAAW;IACX,WAAW;IACX,iBAAiB;CAClB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,8DAA8D;IAC9D,yDAAyD;IACzD,2DAA2D;IAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAC;IAE5E,iCAAiC;IACjC,MAAM,EAAE,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAErC,uBAAuB;IACvB,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,kBAAkB,KAAK,KAAK,CAAC;QAEhD,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,kDAAkD;YAClD,OAAO,CAAC,IAAI,CAAC,yBAAyB,KAAK,iBAAiB,UAAU,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC;IACpE,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACpC,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,sCAAsC,CAAC,CAAC;IACpE,CAAC;IAED,kCAAkC;IAClC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCvB,CAAC;IAEA,MAAM,EAAE,CAAC,SAAS,CAAC,0BAA0B,EAAE,aAAa,CAAC,CAAC;AAChE,CAAC"}
@@ -0,0 +1,40 @@
1
+ export type PermissionPreset = 'permissive' | 'strict' | 'custom' | 'skip';
2
+ export interface PermissionConfig {
3
+ preset: PermissionPreset;
4
+ packageManager: string;
5
+ customAllowCommands?: string[];
6
+ customDenyCommands?: string[];
7
+ }
8
+ /**
9
+ * Get the list of commands for a preset
10
+ */
11
+ export declare function getPresetCommands(preset: PermissionPreset, packageManager: string): {
12
+ allow: string[];
13
+ deny: string[];
14
+ };
15
+ /**
16
+ * Get human-readable description of a preset
17
+ */
18
+ export declare function getPresetDescription(preset: PermissionPreset): string;
19
+ /**
20
+ * Generate .claude/settings.local.json content
21
+ */
22
+ export declare function generateSettingsJson(config: PermissionConfig): string;
23
+ /**
24
+ * Generate permissions section for archai.config.md
25
+ */
26
+ export declare function generatePermissionsMarkdown(config: PermissionConfig): string;
27
+ /**
28
+ * Create or update .claude/settings.local.json
29
+ */
30
+ export declare function createClaudeSettings(config: PermissionConfig): Promise<void>;
31
+ /**
32
+ * Validate a command against allow/deny lists
33
+ * Handles && chained commands
34
+ */
35
+ export declare function validateCommand(fullCommand: string, allow: string[], deny: string[]): {
36
+ allowed: boolean;
37
+ reason?: string;
38
+ blockedSegment?: string;
39
+ };
40
+ //# sourceMappingURL=create-claude-settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-claude-settings.d.ts","sourceRoot":"","sources":["../../src/scaffold/create-claude-settings.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE3E,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,gBAAgB,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAsMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAqBvH;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAarE;AA+DD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAoBrE;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAkE5E;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAYlF;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EAAE,EACf,IAAI,EAAE,MAAM,EAAE,GACb;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,CAiChE"}