monty-autonomous-fullstack-dev-multillm 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 (186) hide show
  1. package/LICENSE +81 -0
  2. package/README.md +608 -0
  3. package/bin/cli.js +448 -0
  4. package/dist/agents/coding.d.ts +15 -0
  5. package/dist/agents/coding.d.ts.map +1 -0
  6. package/dist/agents/coding.js +189 -0
  7. package/dist/agents/coding.js.map +1 -0
  8. package/dist/agents/initializer.d.ts +15 -0
  9. package/dist/agents/initializer.d.ts.map +1 -0
  10. package/dist/agents/initializer.js +87 -0
  11. package/dist/agents/initializer.js.map +1 -0
  12. package/dist/agents/prompts/arbitrator.md +143 -0
  13. package/dist/agents/prompts/coding.md +247 -0
  14. package/dist/agents/prompts/initializer.md +98 -0
  15. package/dist/config/agent-config.d.ts +103 -0
  16. package/dist/config/agent-config.d.ts.map +1 -0
  17. package/dist/config/agent-config.js +138 -0
  18. package/dist/config/agent-config.js.map +1 -0
  19. package/dist/config/auth-config.d.ts +152 -0
  20. package/dist/config/auth-config.d.ts.map +1 -0
  21. package/dist/config/auth-config.js +139 -0
  22. package/dist/config/auth-config.js.map +1 -0
  23. package/dist/config/mcp-config.d.ts +109 -0
  24. package/dist/config/mcp-config.d.ts.map +1 -0
  25. package/dist/config/mcp-config.js +234 -0
  26. package/dist/config/mcp-config.js.map +1 -0
  27. package/dist/config/provider-config.d.ts +139 -0
  28. package/dist/config/provider-config.d.ts.map +1 -0
  29. package/dist/config/provider-config.js +344 -0
  30. package/dist/config/provider-config.js.map +1 -0
  31. package/dist/config/subagents-config.d.ts +85 -0
  32. package/dist/config/subagents-config.d.ts.map +1 -0
  33. package/dist/config/subagents-config.js +430 -0
  34. package/dist/config/subagents-config.js.map +1 -0
  35. package/dist/index.d.ts +14 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +385 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/orchestrator/arbitrator.d.ts +93 -0
  40. package/dist/orchestrator/arbitrator.d.ts.map +1 -0
  41. package/dist/orchestrator/arbitrator.js +330 -0
  42. package/dist/orchestrator/arbitrator.js.map +1 -0
  43. package/dist/orchestrator/index.d.ts +113 -0
  44. package/dist/orchestrator/index.d.ts.map +1 -0
  45. package/dist/orchestrator/index.js +217 -0
  46. package/dist/orchestrator/index.js.map +1 -0
  47. package/dist/orchestrator/review-coordinator.d.ts +143 -0
  48. package/dist/orchestrator/review-coordinator.d.ts.map +1 -0
  49. package/dist/orchestrator/review-coordinator.js +401 -0
  50. package/dist/orchestrator/review-coordinator.js.map +1 -0
  51. package/dist/orchestrator/task-classifier.d.ts +87 -0
  52. package/dist/orchestrator/task-classifier.d.ts.map +1 -0
  53. package/dist/orchestrator/task-classifier.js +250 -0
  54. package/dist/orchestrator/task-classifier.js.map +1 -0
  55. package/dist/providers/anthropic-provider.d.ts +64 -0
  56. package/dist/providers/anthropic-provider.d.ts.map +1 -0
  57. package/dist/providers/anthropic-provider.js +264 -0
  58. package/dist/providers/anthropic-provider.js.map +1 -0
  59. package/dist/providers/base-provider.d.ts +219 -0
  60. package/dist/providers/base-provider.d.ts.map +1 -0
  61. package/dist/providers/base-provider.js +143 -0
  62. package/dist/providers/base-provider.js.map +1 -0
  63. package/dist/providers/cursor-provider.d.ts +82 -0
  64. package/dist/providers/cursor-provider.d.ts.map +1 -0
  65. package/dist/providers/cursor-provider.js +321 -0
  66. package/dist/providers/cursor-provider.js.map +1 -0
  67. package/dist/providers/google-provider.d.ts +75 -0
  68. package/dist/providers/google-provider.d.ts.map +1 -0
  69. package/dist/providers/google-provider.js +274 -0
  70. package/dist/providers/google-provider.js.map +1 -0
  71. package/dist/providers/index.d.ts +92 -0
  72. package/dist/providers/index.d.ts.map +1 -0
  73. package/dist/providers/index.js +233 -0
  74. package/dist/providers/index.js.map +1 -0
  75. package/dist/providers/openai-provider.d.ts +83 -0
  76. package/dist/providers/openai-provider.d.ts.map +1 -0
  77. package/dist/providers/openai-provider.js +295 -0
  78. package/dist/providers/openai-provider.js.map +1 -0
  79. package/dist/templates/feature_list.template.json +66 -0
  80. package/dist/templates/progress.template.txt +51 -0
  81. package/dist/utils/auth-manager.d.ts +121 -0
  82. package/dist/utils/auth-manager.d.ts.map +1 -0
  83. package/dist/utils/auth-manager.js +560 -0
  84. package/dist/utils/auth-manager.js.map +1 -0
  85. package/dist/utils/budget-enforcer.d.ts +181 -0
  86. package/dist/utils/budget-enforcer.d.ts.map +1 -0
  87. package/dist/utils/budget-enforcer.js +386 -0
  88. package/dist/utils/budget-enforcer.js.map +1 -0
  89. package/dist/utils/chatgpt-detector.d.ts +51 -0
  90. package/dist/utils/chatgpt-detector.d.ts.map +1 -0
  91. package/dist/utils/chatgpt-detector.js +274 -0
  92. package/dist/utils/chatgpt-detector.js.map +1 -0
  93. package/dist/utils/claude-code-detector.d.ts +39 -0
  94. package/dist/utils/claude-code-detector.d.ts.map +1 -0
  95. package/dist/utils/claude-code-detector.js +153 -0
  96. package/dist/utils/claude-code-detector.js.map +1 -0
  97. package/dist/utils/code-quality.d.ts +58 -0
  98. package/dist/utils/code-quality.d.ts.map +1 -0
  99. package/dist/utils/code-quality.js +258 -0
  100. package/dist/utils/code-quality.js.map +1 -0
  101. package/dist/utils/context-primer.d.ts +50 -0
  102. package/dist/utils/context-primer.d.ts.map +1 -0
  103. package/dist/utils/context-primer.js +429 -0
  104. package/dist/utils/context-primer.js.map +1 -0
  105. package/dist/utils/dependency-management.d.ts +40 -0
  106. package/dist/utils/dependency-management.d.ts.map +1 -0
  107. package/dist/utils/dependency-management.js +123 -0
  108. package/dist/utils/dependency-management.js.map +1 -0
  109. package/dist/utils/environment-validation.d.ts +33 -0
  110. package/dist/utils/environment-validation.d.ts.map +1 -0
  111. package/dist/utils/environment-validation.js +136 -0
  112. package/dist/utils/environment-validation.js.map +1 -0
  113. package/dist/utils/error-recovery.d.ts +60 -0
  114. package/dist/utils/error-recovery.d.ts.map +1 -0
  115. package/dist/utils/error-recovery.js +183 -0
  116. package/dist/utils/error-recovery.js.map +1 -0
  117. package/dist/utils/feature-list.d.ts +102 -0
  118. package/dist/utils/feature-list.d.ts.map +1 -0
  119. package/dist/utils/feature-list.js +191 -0
  120. package/dist/utils/feature-list.js.map +1 -0
  121. package/dist/utils/gemini-detector.d.ts +65 -0
  122. package/dist/utils/gemini-detector.d.ts.map +1 -0
  123. package/dist/utils/gemini-detector.js +340 -0
  124. package/dist/utils/gemini-detector.js.map +1 -0
  125. package/dist/utils/git-utils.d.ts +48 -0
  126. package/dist/utils/git-utils.d.ts.map +1 -0
  127. package/dist/utils/git-utils.js +110 -0
  128. package/dist/utils/git-utils.js.map +1 -0
  129. package/dist/utils/health-check.d.ts +32 -0
  130. package/dist/utils/health-check.d.ts.map +1 -0
  131. package/dist/utils/health-check.js +152 -0
  132. package/dist/utils/health-check.js.map +1 -0
  133. package/dist/utils/hooks-manager.d.ts +154 -0
  134. package/dist/utils/hooks-manager.d.ts.map +1 -0
  135. package/dist/utils/hooks-manager.js +359 -0
  136. package/dist/utils/hooks-manager.js.map +1 -0
  137. package/dist/utils/multi-auth-manager.d.ts +144 -0
  138. package/dist/utils/multi-auth-manager.d.ts.map +1 -0
  139. package/dist/utils/multi-auth-manager.js +588 -0
  140. package/dist/utils/multi-auth-manager.js.map +1 -0
  141. package/dist/utils/progress.d.ts +49 -0
  142. package/dist/utils/progress.d.ts.map +1 -0
  143. package/dist/utils/progress.js +209 -0
  144. package/dist/utils/progress.js.map +1 -0
  145. package/dist/utils/project-detection.d.ts +40 -0
  146. package/dist/utils/project-detection.d.ts.map +1 -0
  147. package/dist/utils/project-detection.js +230 -0
  148. package/dist/utils/project-detection.js.map +1 -0
  149. package/dist/utils/session-manager.d.ts +119 -0
  150. package/dist/utils/session-manager.d.ts.map +1 -0
  151. package/dist/utils/session-manager.js +389 -0
  152. package/dist/utils/session-manager.js.map +1 -0
  153. package/dist/utils/skills-manager.d.ts +113 -0
  154. package/dist/utils/skills-manager.d.ts.map +1 -0
  155. package/dist/utils/skills-manager.js +332 -0
  156. package/dist/utils/skills-manager.js.map +1 -0
  157. package/dist/utils/structured-output.d.ts +117 -0
  158. package/dist/utils/structured-output.d.ts.map +1 -0
  159. package/dist/utils/structured-output.js +191 -0
  160. package/dist/utils/structured-output.js.map +1 -0
  161. package/dist/utils/subagent-manager.d.ts +143 -0
  162. package/dist/utils/subagent-manager.d.ts.map +1 -0
  163. package/dist/utils/subagent-manager.js +326 -0
  164. package/dist/utils/subagent-manager.js.map +1 -0
  165. package/dist/utils/supabase-setup.d.ts +50 -0
  166. package/dist/utils/supabase-setup.d.ts.map +1 -0
  167. package/dist/utils/supabase-setup.js +151 -0
  168. package/dist/utils/supabase-setup.js.map +1 -0
  169. package/dist/utils/token-refresh.d.ts +21 -0
  170. package/dist/utils/token-refresh.d.ts.map +1 -0
  171. package/dist/utils/token-refresh.js +77 -0
  172. package/dist/utils/token-refresh.js.map +1 -0
  173. package/dist/utils/tos-warning.d.ts +115 -0
  174. package/dist/utils/tos-warning.d.ts.map +1 -0
  175. package/dist/utils/tos-warning.js +304 -0
  176. package/dist/utils/tos-warning.js.map +1 -0
  177. package/dist/utils/usage-monitor.d.ts +156 -0
  178. package/dist/utils/usage-monitor.d.ts.map +1 -0
  179. package/dist/utils/usage-monitor.js +296 -0
  180. package/dist/utils/usage-monitor.js.map +1 -0
  181. package/package.json +105 -0
  182. package/scripts/init.ps1 +73 -0
  183. package/scripts/init.sh +86 -0
  184. package/scripts/test-auth.sh +90 -0
  185. package/templates/feature_list.template.json +66 -0
  186. package/templates/progress.template.txt +51 -0
@@ -0,0 +1,429 @@
1
+ /**
2
+ * Context Primer (Feature B6)
3
+ * Systematically load project context at session start
4
+ *
5
+ * Copyright (c) 2025 Dobeu Tech Solutions LLC
6
+ * Licensed under CC BY-NC 4.0
7
+ */
8
+ import { existsSync, readFileSync, readdirSync, statSync } from 'fs';
9
+ import { join } from 'path';
10
+ import { execSync } from 'child_process';
11
+ /**
12
+ * Get project overview from package.json and README
13
+ */
14
+ function getProjectOverview(projectRoot) {
15
+ const lines = ['## Project Overview\n'];
16
+ // Package.json
17
+ const pkgPath = join(projectRoot, 'package.json');
18
+ if (existsSync(pkgPath)) {
19
+ try {
20
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
21
+ lines.push(`**Name:** ${pkg.name || 'Unknown'}`);
22
+ lines.push(`**Version:** ${pkg.version || '0.0.0'}`);
23
+ if (pkg.description)
24
+ lines.push(`**Description:** ${pkg.description}`);
25
+ // Scripts
26
+ if (pkg.scripts) {
27
+ const importantScripts = ['dev', 'build', 'test', 'lint', 'start'];
28
+ const available = importantScripts.filter(s => pkg.scripts[s]);
29
+ if (available.length > 0) {
30
+ lines.push(`**Scripts:** ${available.join(', ')}`);
31
+ }
32
+ }
33
+ }
34
+ catch {
35
+ lines.push('*Could not parse package.json*');
36
+ }
37
+ }
38
+ // README excerpt
39
+ const readmePath = join(projectRoot, 'README.md');
40
+ if (existsSync(readmePath)) {
41
+ try {
42
+ const readme = readFileSync(readmePath, 'utf-8');
43
+ const firstSection = readme.split('\n## ')[0];
44
+ if (firstSection && firstSection.length < 1000) {
45
+ lines.push('\n### README Excerpt\n');
46
+ lines.push(firstSection.substring(0, 500));
47
+ }
48
+ }
49
+ catch {
50
+ // Ignore
51
+ }
52
+ }
53
+ return lines.join('\n');
54
+ }
55
+ /**
56
+ * Get architecture information from CLAUDE.md or docs
57
+ */
58
+ function getArchitecture(projectRoot, agentDir) {
59
+ const lines = ['## Architecture\n'];
60
+ // Check CLAUDE.md
61
+ const claudeMd = join(projectRoot, 'CLAUDE.md');
62
+ if (existsSync(claudeMd)) {
63
+ try {
64
+ const content = readFileSync(claudeMd, 'utf-8');
65
+ // Extract architecture section if present
66
+ const archMatch = content.match(/## Architecture([\s\S]*?)(?=\n## |$)/);
67
+ if (archMatch?.[1]) {
68
+ lines.push(archMatch[1].trim().substring(0, 1500));
69
+ }
70
+ else {
71
+ lines.push(content.substring(0, 1000));
72
+ }
73
+ }
74
+ catch {
75
+ // Ignore
76
+ }
77
+ }
78
+ // List key directories
79
+ const keyDirs = ['src', 'app', 'pages', 'components', 'lib', 'utils', 'api', 'services'];
80
+ const existingDirs = keyDirs.filter(d => existsSync(join(projectRoot, d)));
81
+ if (existingDirs.length > 0) {
82
+ lines.push('\n### Directory Structure');
83
+ for (const dir of existingDirs) {
84
+ const dirPath = join(projectRoot, dir);
85
+ try {
86
+ const files = readdirSync(dirPath).slice(0, 10);
87
+ lines.push(`- **${dir}/**: ${files.join(', ')}${files.length >= 10 ? '...' : ''}`);
88
+ }
89
+ catch {
90
+ lines.push(`- **${dir}/**`);
91
+ }
92
+ }
93
+ }
94
+ return lines.join('\n');
95
+ }
96
+ /**
97
+ * Get coding conventions from configs
98
+ */
99
+ function getConventions(projectRoot) {
100
+ const lines = ['## Coding Conventions\n'];
101
+ // TypeScript config
102
+ if (existsSync(join(projectRoot, 'tsconfig.json'))) {
103
+ lines.push('- TypeScript enabled');
104
+ try {
105
+ const tsconfig = JSON.parse(readFileSync(join(projectRoot, 'tsconfig.json'), 'utf-8'));
106
+ if (tsconfig.compilerOptions?.strict)
107
+ lines.push('- Strict mode enabled');
108
+ if (tsconfig.compilerOptions?.target)
109
+ lines.push(`- Target: ${tsconfig.compilerOptions.target}`);
110
+ }
111
+ catch {
112
+ // Ignore
113
+ }
114
+ }
115
+ // ESLint
116
+ const eslintConfigs = ['.eslintrc', '.eslintrc.js', '.eslintrc.json', 'eslint.config.js'];
117
+ if (eslintConfigs.some(c => existsSync(join(projectRoot, c)))) {
118
+ lines.push('- ESLint configured');
119
+ }
120
+ // Prettier
121
+ const prettierConfigs = ['.prettierrc', '.prettierrc.js', '.prettierrc.json', 'prettier.config.js'];
122
+ if (prettierConfigs.some(c => existsSync(join(projectRoot, c)))) {
123
+ lines.push('- Prettier configured');
124
+ }
125
+ // Tailwind
126
+ if (existsSync(join(projectRoot, 'tailwind.config.js')) || existsSync(join(projectRoot, 'tailwind.config.ts'))) {
127
+ lines.push('- Tailwind CSS configured');
128
+ }
129
+ return lines.join('\n');
130
+ }
131
+ /**
132
+ * Get recent git changes
133
+ */
134
+ function getRecentChanges(projectRoot, days = 7) {
135
+ const lines = [`## Recent Changes (last ${days} days)\n`];
136
+ try {
137
+ // Recent commits
138
+ const commits = execSync(`git log --oneline --since="${days} days ago" -10`, { cwd: projectRoot, encoding: 'utf-8', timeout: 5000 }).trim();
139
+ if (commits) {
140
+ lines.push('### Recent Commits');
141
+ lines.push('```');
142
+ lines.push(commits);
143
+ lines.push('```');
144
+ }
145
+ // Files changed
146
+ const filesChanged = execSync(`git diff --stat HEAD~5 HEAD 2>/dev/null || echo ""`, { cwd: projectRoot, encoding: 'utf-8', timeout: 5000 }).trim();
147
+ if (filesChanged) {
148
+ lines.push('\n### Files Changed');
149
+ lines.push('```');
150
+ lines.push(filesChanged.substring(0, 500));
151
+ lines.push('```');
152
+ }
153
+ }
154
+ catch {
155
+ lines.push('*Git history not available*');
156
+ }
157
+ return lines.join('\n');
158
+ }
159
+ /**
160
+ * Get feature progress from agent dir
161
+ */
162
+ function getFeatureProgress(agentDir) {
163
+ const lines = ['## Feature Progress\n'];
164
+ const featureListPath = join(agentDir, 'feature_list.json');
165
+ if (!existsSync(featureListPath)) {
166
+ lines.push('*Feature list not initialized*');
167
+ return lines.join('\n');
168
+ }
169
+ try {
170
+ const data = JSON.parse(readFileSync(featureListPath, 'utf-8'));
171
+ const features = data.features || [];
172
+ const total = features.length;
173
+ const passing = features.filter((f) => f.passes).length;
174
+ const percentage = total > 0 ? Math.round((passing / total) * 100) : 0;
175
+ lines.push(`**Progress:** ${passing}/${total} features passing (${percentage}%)`);
176
+ // Next features to work on
177
+ const nextFeatures = features
178
+ .filter((f) => !f.passes)
179
+ .sort((a, b) => a.priority - b.priority)
180
+ .slice(0, 3);
181
+ if (nextFeatures.length > 0) {
182
+ lines.push('\n### Next Features');
183
+ for (const f of nextFeatures) {
184
+ lines.push(`- [Priority ${f.priority}] ${f.description}`);
185
+ }
186
+ }
187
+ // Categories breakdown
188
+ const categories = {};
189
+ for (const f of features) {
190
+ const cat = f.category || 'unknown';
191
+ if (!categories[cat])
192
+ categories[cat] = { total: 0, passing: 0 };
193
+ categories[cat].total++;
194
+ if (f.passes)
195
+ categories[cat].passing++;
196
+ }
197
+ lines.push('\n### By Category');
198
+ for (const [cat, data] of Object.entries(categories)) {
199
+ const pct = Math.round((data.passing / data.total) * 100);
200
+ lines.push(`- ${cat}: ${data.passing}/${data.total} (${pct}%)`);
201
+ }
202
+ }
203
+ catch {
204
+ lines.push('*Could not parse feature list*');
205
+ }
206
+ return lines.join('\n');
207
+ }
208
+ /**
209
+ * Get session history summary
210
+ */
211
+ function getSessionHistory(agentDir) {
212
+ const lines = ['## Session History\n'];
213
+ const progressPath = join(agentDir, 'claude-progress.txt');
214
+ if (existsSync(progressPath)) {
215
+ try {
216
+ const content = readFileSync(progressPath, 'utf-8');
217
+ // Extract last session info
218
+ const sessions = content.split('### Session:').slice(-3);
219
+ if (sessions.length > 0) {
220
+ lines.push('### Recent Sessions');
221
+ for (const session of sessions) {
222
+ const firstLine = session.split('\n')[0]?.trim();
223
+ if (firstLine) {
224
+ lines.push(`- ${firstLine}`);
225
+ }
226
+ }
227
+ }
228
+ // Known issues
229
+ const issuesMatch = content.match(/## Known Issues([\s\S]*?)(?=\n## |$)/);
230
+ if (issuesMatch?.[1]) {
231
+ const issues = issuesMatch[1].trim();
232
+ if (issues && issues !== 'None at this time.') {
233
+ lines.push('\n### Known Issues');
234
+ lines.push(issues.substring(0, 500));
235
+ }
236
+ }
237
+ }
238
+ catch {
239
+ // Ignore
240
+ }
241
+ }
242
+ // Session notation
243
+ const notationPath = join(agentDir, 'session_notation.json');
244
+ if (existsSync(notationPath)) {
245
+ try {
246
+ const notation = JSON.parse(readFileSync(notationPath, 'utf-8'));
247
+ if (notation.next_steps?.length > 0) {
248
+ lines.push('\n### Next Steps (from last session)');
249
+ for (const step of notation.next_steps.slice(0, 5)) {
250
+ lines.push(`- ${step}`);
251
+ }
252
+ }
253
+ if (notation.blockers?.length > 0) {
254
+ lines.push('\n### Blockers');
255
+ for (const blocker of notation.blockers) {
256
+ lines.push(`- ${blocker}`);
257
+ }
258
+ }
259
+ }
260
+ catch {
261
+ // Ignore
262
+ }
263
+ }
264
+ return lines.join('\n');
265
+ }
266
+ /**
267
+ * Generate tool recommendations based on project
268
+ */
269
+ function getToolRecommendations(projectRoot, agentDir) {
270
+ const recommendations = [];
271
+ // Always need Read, Edit, Bash, Glob
272
+ recommendations.push({ tool: 'Read', priority: 'required', reason: 'Core file reading' });
273
+ recommendations.push({ tool: 'Edit', priority: 'required', reason: 'Core file editing' });
274
+ recommendations.push({ tool: 'Bash', priority: 'required', reason: 'Command execution' });
275
+ recommendations.push({ tool: 'Glob', priority: 'required', reason: 'File discovery' });
276
+ // Check for browser testing need
277
+ const hasFeatureList = existsSync(join(agentDir, 'feature_list.json'));
278
+ if (hasFeatureList) {
279
+ recommendations.push({ tool: 'Browser', priority: 'required', reason: 'Feature verification' });
280
+ }
281
+ // Check for Grep need based on codebase size
282
+ try {
283
+ const srcDir = join(projectRoot, 'src');
284
+ if (existsSync(srcDir)) {
285
+ const fileCount = countFilesRecursive(srcDir);
286
+ if (fileCount > 20) {
287
+ recommendations.push({ tool: 'Grep', priority: 'recommended', reason: `Large codebase (${fileCount} files)` });
288
+ }
289
+ else {
290
+ recommendations.push({ tool: 'Grep', priority: 'optional', reason: 'Small codebase' });
291
+ }
292
+ }
293
+ }
294
+ catch {
295
+ recommendations.push({ tool: 'Grep', priority: 'optional', reason: 'Default' });
296
+ }
297
+ // WebSearch for external docs
298
+ const hasDependencies = existsSync(join(projectRoot, 'package.json'));
299
+ if (hasDependencies) {
300
+ recommendations.push({ tool: 'WebSearch', priority: 'optional', reason: 'External documentation' });
301
+ }
302
+ return recommendations;
303
+ }
304
+ /**
305
+ * Helper: count files recursively
306
+ */
307
+ function countFilesRecursive(dir) {
308
+ let count = 0;
309
+ try {
310
+ const entries = readdirSync(dir);
311
+ for (const entry of entries) {
312
+ if (entry.startsWith('.') || entry === 'node_modules' || entry === 'dist')
313
+ continue;
314
+ const fullPath = join(dir, entry);
315
+ const stat = statSync(fullPath);
316
+ if (stat.isDirectory()) {
317
+ count += countFilesRecursive(fullPath);
318
+ }
319
+ else {
320
+ count++;
321
+ }
322
+ }
323
+ }
324
+ catch {
325
+ // Ignore
326
+ }
327
+ return count;
328
+ }
329
+ /**
330
+ * Estimate token count for text
331
+ */
332
+ function estimateTokens(text) {
333
+ // Rough estimate: ~4 characters per token
334
+ return Math.ceil(text.length / 4);
335
+ }
336
+ /**
337
+ * Prime context for a session
338
+ */
339
+ export function primeContext(projectRoot, agentDir, options = {}) {
340
+ const { includeSections = [
341
+ 'project_overview',
342
+ 'architecture',
343
+ 'conventions',
344
+ 'recent_changes',
345
+ 'feature_progress',
346
+ 'session_history',
347
+ 'tool_recommendations',
348
+ ], maxTokens = 8000, } = options;
349
+ const sections = {
350
+ project_overview: '',
351
+ architecture: '',
352
+ conventions: '',
353
+ recent_changes: '',
354
+ open_issues: '',
355
+ dependencies: '',
356
+ environment: '',
357
+ feature_progress: '',
358
+ session_history: '',
359
+ tool_recommendations: '',
360
+ };
361
+ // Generate each section
362
+ if (includeSections.includes('project_overview')) {
363
+ sections.project_overview = getProjectOverview(projectRoot);
364
+ }
365
+ if (includeSections.includes('architecture')) {
366
+ sections.architecture = getArchitecture(projectRoot, agentDir);
367
+ }
368
+ if (includeSections.includes('conventions')) {
369
+ sections.conventions = getConventions(projectRoot);
370
+ }
371
+ if (includeSections.includes('recent_changes')) {
372
+ sections.recent_changes = getRecentChanges(projectRoot);
373
+ }
374
+ if (includeSections.includes('feature_progress')) {
375
+ sections.feature_progress = getFeatureProgress(agentDir);
376
+ }
377
+ if (includeSections.includes('session_history')) {
378
+ sections.session_history = getSessionHistory(agentDir);
379
+ }
380
+ if (includeSections.includes('tool_recommendations')) {
381
+ const recs = getToolRecommendations(projectRoot, agentDir);
382
+ const lines = ['## Tool Recommendations\n'];
383
+ for (const rec of recs) {
384
+ lines.push(`- **${rec.tool}** [${rec.priority}]: ${rec.reason}`);
385
+ }
386
+ sections.tool_recommendations = lines.join('\n');
387
+ }
388
+ // Build summary
389
+ const allSections = Object.entries(sections)
390
+ .filter(([_, content]) => content.length > 0)
391
+ .map(([_, content]) => content);
392
+ let summary = allSections.join('\n\n---\n\n');
393
+ let tokenEstimate = estimateTokens(summary);
394
+ // Truncate if needed
395
+ if (tokenEstimate > maxTokens) {
396
+ const ratio = maxTokens / tokenEstimate;
397
+ const targetLength = Math.floor(summary.length * ratio * 0.9); // 10% buffer
398
+ summary = summary.substring(0, targetLength) + '\n\n[Context truncated to fit token limit]';
399
+ tokenEstimate = maxTokens;
400
+ }
401
+ return {
402
+ sections,
403
+ summary,
404
+ token_estimate: tokenEstimate,
405
+ timestamp: new Date().toISOString(),
406
+ };
407
+ }
408
+ /**
409
+ * Get compact context for continuation
410
+ */
411
+ export function getCompactContext(projectRoot, agentDir) {
412
+ const context = primeContext(projectRoot, agentDir, {
413
+ includeSections: ['feature_progress', 'session_history'],
414
+ maxTokens: 2000,
415
+ });
416
+ return context.summary;
417
+ }
418
+ /**
419
+ * Get tool recommendations only
420
+ */
421
+ export function getToolRecommendationsOnly(projectRoot, agentDir) {
422
+ return getToolRecommendations(projectRoot, agentDir);
423
+ }
424
+ export default {
425
+ primeContext,
426
+ getCompactContext,
427
+ getToolRecommendationsOnly,
428
+ };
429
+ //# sourceMappingURL=context-primer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-primer.js","sourceRoot":"","sources":["../../src/utils/context-primer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Dependency Management Utilities
3
+ * Checks for outdated dependencies, security vulnerabilities, and provides update recommendations.
4
+ */
5
+ /**
6
+ * Dependency information
7
+ */
8
+ export interface DependencyInfo {
9
+ name: string;
10
+ current: string;
11
+ latest?: string;
12
+ outdated: boolean;
13
+ securityVulnerable: boolean;
14
+ type: "dependency" | "devDependency";
15
+ }
16
+ /**
17
+ * Dependency audit result
18
+ */
19
+ export interface DependencyAudit {
20
+ total: number;
21
+ outdated: number;
22
+ vulnerable: number;
23
+ recommendations: string[];
24
+ critical: DependencyInfo[];
25
+ warnings: DependencyInfo[];
26
+ }
27
+ /**
28
+ * Check package.json for dependency information
29
+ */
30
+ export declare function analyzeDependencies(): DependencyAudit;
31
+ /**
32
+ * Generate dependency summary for agent prompts
33
+ */
34
+ export declare function generateDependencySummary(): string;
35
+ declare const _default: {
36
+ analyzeDependencies: typeof analyzeDependencies;
37
+ generateDependencySummary: typeof generateDependencySummary;
38
+ };
39
+ export default _default;
40
+ //# sourceMappingURL=dependency-management.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-management.d.ts","sourceRoot":"","sources":["../../src/utils/dependency-management.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,IAAI,EAAE,YAAY,GAAG,eAAe,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,eAAe,CAuFrD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAiClD;;;;;AAED,wBAGE"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Dependency Management Utilities
3
+ * Checks for outdated dependencies, security vulnerabilities, and provides update recommendations.
4
+ */
5
+ import { readFileSync, existsSync } from "fs";
6
+ import { resolve } from "path";
7
+ import { agentConfig } from "../config/agent-config.js";
8
+ /**
9
+ * Check package.json for dependency information
10
+ */
11
+ export function analyzeDependencies() {
12
+ const root = agentConfig.paths.projectRoot;
13
+ const packageJsonPath = resolve(root, "package.json");
14
+ if (!existsSync(packageJsonPath)) {
15
+ return {
16
+ total: 0,
17
+ outdated: 0,
18
+ vulnerable: 0,
19
+ recommendations: ["No package.json found"],
20
+ critical: [],
21
+ warnings: [],
22
+ };
23
+ }
24
+ try {
25
+ const content = readFileSync(packageJsonPath, "utf-8");
26
+ const pkg = JSON.parse(content);
27
+ const deps = Object.entries(pkg.dependencies || {}).map(([name, version]) => ({
28
+ name,
29
+ current: version,
30
+ type: "dependency",
31
+ outdated: false,
32
+ securityVulnerable: false,
33
+ }));
34
+ const devDeps = Object.entries(pkg.devDependencies || {}).map(([name, version]) => ({
35
+ name,
36
+ current: version,
37
+ type: "devDependency",
38
+ outdated: false,
39
+ securityVulnerable: false,
40
+ }));
41
+ const allDeps = [...deps, ...devDeps];
42
+ const total = allDeps.length;
43
+ // Check for common security issues
44
+ const vulnerable = [];
45
+ const warnings = [];
46
+ // Check for known vulnerable patterns
47
+ allDeps.forEach(dep => {
48
+ // Check for very old versions (heuristic)
49
+ if (dep.current.includes("^0.") || dep.current.includes("~0.")) {
50
+ warnings.push(dep);
51
+ }
52
+ // Check for missing version (shouldn't happen but check anyway)
53
+ if (!dep.current || dep.current === "*") {
54
+ vulnerable.push(dep);
55
+ }
56
+ });
57
+ const recommendations = [];
58
+ if (vulnerable.length > 0) {
59
+ recommendations.push(`Found ${vulnerable.length} potentially vulnerable dependencies - run 'npm audit'`);
60
+ }
61
+ if (warnings.length > 0) {
62
+ recommendations.push(`Found ${warnings.length} dependencies that may need updates`);
63
+ }
64
+ recommendations.push("Run 'npm outdated' to check for newer versions");
65
+ recommendations.push("Run 'npm audit' to check for security vulnerabilities");
66
+ recommendations.push("Consider running 'npm update' to update dependencies");
67
+ return {
68
+ total,
69
+ outdated: warnings.length,
70
+ vulnerable: vulnerable.length,
71
+ recommendations,
72
+ critical: vulnerable,
73
+ warnings,
74
+ };
75
+ }
76
+ catch (error) {
77
+ return {
78
+ total: 0,
79
+ outdated: 0,
80
+ vulnerable: 0,
81
+ recommendations: [`Error reading package.json: ${error instanceof Error ? error.message : String(error)}`],
82
+ critical: [],
83
+ warnings: [],
84
+ };
85
+ }
86
+ }
87
+ /**
88
+ * Generate dependency summary for agent prompts
89
+ */
90
+ export function generateDependencySummary() {
91
+ const audit = analyzeDependencies();
92
+ let summary = "\n## DEPENDENCY STATUS\n\n";
93
+ summary += `Total Dependencies: ${audit.total}\n`;
94
+ summary += `Potentially Outdated: ${audit.outdated}\n`;
95
+ summary += `Security Vulnerabilities: ${audit.vulnerable}\n`;
96
+ if (audit.critical.length > 0) {
97
+ summary += "\n🚨 Critical Issues:\n";
98
+ audit.critical.slice(0, 5).forEach(dep => {
99
+ summary += ` - ${dep.name} (${dep.current})\n`;
100
+ });
101
+ if (audit.critical.length > 5) {
102
+ summary += ` ... and ${audit.critical.length - 5} more\n`;
103
+ }
104
+ }
105
+ if (audit.warnings.length > 0 && audit.warnings.length <= 10) {
106
+ summary += "\n⚠️ Dependencies to Review:\n";
107
+ audit.warnings.slice(0, 10).forEach(dep => {
108
+ summary += ` - ${dep.name} (${dep.current})\n`;
109
+ });
110
+ }
111
+ if (audit.recommendations.length > 0) {
112
+ summary += "\n💡 Recommendations:\n";
113
+ audit.recommendations.forEach(rec => {
114
+ summary += ` - ${rec}\n`;
115
+ });
116
+ }
117
+ return summary;
118
+ }
119
+ export default {
120
+ analyzeDependencies,
121
+ generateDependencySummary,
122
+ };
123
+ //# sourceMappingURL=dependency-management.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-management.js","sourceRoot":"","sources":["../../src/utils/dependency-management.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Environment Validation Utilities
3
+ * Validates environment variables, configuration files, and required setup.
4
+ */
5
+ /**
6
+ * Environment validation result
7
+ */
8
+ export interface EnvValidationResult {
9
+ valid: boolean;
10
+ missing: string[];
11
+ invalid: string[];
12
+ warnings: string[];
13
+ recommendations: string[];
14
+ }
15
+ /**
16
+ * Validate environment variables from .env file
17
+ */
18
+ export declare function validateEnvironment(): EnvValidationResult;
19
+ /**
20
+ * Check for required configuration files
21
+ */
22
+ export declare function checkRequiredConfigs(): string[];
23
+ /**
24
+ * Generate environment validation summary
25
+ */
26
+ export declare function generateEnvironmentSummary(): string;
27
+ declare const _default: {
28
+ validateEnvironment: typeof validateEnvironment;
29
+ checkRequiredConfigs: typeof checkRequiredConfigs;
30
+ generateEnvironmentSummary: typeof generateEnvironmentSummary;
31
+ };
32
+ export default _default;
33
+ //# sourceMappingURL=environment-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment-validation.d.ts","sourceRoot":"","sources":["../../src/utils/environment-validation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,mBAAmB,CAkEzD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAoB/C;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAuCnD;;;;;;AAED,wBAIE"}