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.
- package/LICENSE +81 -0
- package/README.md +608 -0
- package/bin/cli.js +448 -0
- package/dist/agents/coding.d.ts +15 -0
- package/dist/agents/coding.d.ts.map +1 -0
- package/dist/agents/coding.js +189 -0
- package/dist/agents/coding.js.map +1 -0
- package/dist/agents/initializer.d.ts +15 -0
- package/dist/agents/initializer.d.ts.map +1 -0
- package/dist/agents/initializer.js +87 -0
- package/dist/agents/initializer.js.map +1 -0
- package/dist/agents/prompts/arbitrator.md +143 -0
- package/dist/agents/prompts/coding.md +247 -0
- package/dist/agents/prompts/initializer.md +98 -0
- package/dist/config/agent-config.d.ts +103 -0
- package/dist/config/agent-config.d.ts.map +1 -0
- package/dist/config/agent-config.js +138 -0
- package/dist/config/agent-config.js.map +1 -0
- package/dist/config/auth-config.d.ts +152 -0
- package/dist/config/auth-config.d.ts.map +1 -0
- package/dist/config/auth-config.js +139 -0
- package/dist/config/auth-config.js.map +1 -0
- package/dist/config/mcp-config.d.ts +109 -0
- package/dist/config/mcp-config.d.ts.map +1 -0
- package/dist/config/mcp-config.js +234 -0
- package/dist/config/mcp-config.js.map +1 -0
- package/dist/config/provider-config.d.ts +139 -0
- package/dist/config/provider-config.d.ts.map +1 -0
- package/dist/config/provider-config.js +344 -0
- package/dist/config/provider-config.js.map +1 -0
- package/dist/config/subagents-config.d.ts +85 -0
- package/dist/config/subagents-config.d.ts.map +1 -0
- package/dist/config/subagents-config.js +430 -0
- package/dist/config/subagents-config.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +385 -0
- package/dist/index.js.map +1 -0
- package/dist/orchestrator/arbitrator.d.ts +93 -0
- package/dist/orchestrator/arbitrator.d.ts.map +1 -0
- package/dist/orchestrator/arbitrator.js +330 -0
- package/dist/orchestrator/arbitrator.js.map +1 -0
- package/dist/orchestrator/index.d.ts +113 -0
- package/dist/orchestrator/index.d.ts.map +1 -0
- package/dist/orchestrator/index.js +217 -0
- package/dist/orchestrator/index.js.map +1 -0
- package/dist/orchestrator/review-coordinator.d.ts +143 -0
- package/dist/orchestrator/review-coordinator.d.ts.map +1 -0
- package/dist/orchestrator/review-coordinator.js +401 -0
- package/dist/orchestrator/review-coordinator.js.map +1 -0
- package/dist/orchestrator/task-classifier.d.ts +87 -0
- package/dist/orchestrator/task-classifier.d.ts.map +1 -0
- package/dist/orchestrator/task-classifier.js +250 -0
- package/dist/orchestrator/task-classifier.js.map +1 -0
- package/dist/providers/anthropic-provider.d.ts +64 -0
- package/dist/providers/anthropic-provider.d.ts.map +1 -0
- package/dist/providers/anthropic-provider.js +264 -0
- package/dist/providers/anthropic-provider.js.map +1 -0
- package/dist/providers/base-provider.d.ts +219 -0
- package/dist/providers/base-provider.d.ts.map +1 -0
- package/dist/providers/base-provider.js +143 -0
- package/dist/providers/base-provider.js.map +1 -0
- package/dist/providers/cursor-provider.d.ts +82 -0
- package/dist/providers/cursor-provider.d.ts.map +1 -0
- package/dist/providers/cursor-provider.js +321 -0
- package/dist/providers/cursor-provider.js.map +1 -0
- package/dist/providers/google-provider.d.ts +75 -0
- package/dist/providers/google-provider.d.ts.map +1 -0
- package/dist/providers/google-provider.js +274 -0
- package/dist/providers/google-provider.js.map +1 -0
- package/dist/providers/index.d.ts +92 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +233 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/openai-provider.d.ts +83 -0
- package/dist/providers/openai-provider.d.ts.map +1 -0
- package/dist/providers/openai-provider.js +295 -0
- package/dist/providers/openai-provider.js.map +1 -0
- package/dist/templates/feature_list.template.json +66 -0
- package/dist/templates/progress.template.txt +51 -0
- package/dist/utils/auth-manager.d.ts +121 -0
- package/dist/utils/auth-manager.d.ts.map +1 -0
- package/dist/utils/auth-manager.js +560 -0
- package/dist/utils/auth-manager.js.map +1 -0
- package/dist/utils/budget-enforcer.d.ts +181 -0
- package/dist/utils/budget-enforcer.d.ts.map +1 -0
- package/dist/utils/budget-enforcer.js +386 -0
- package/dist/utils/budget-enforcer.js.map +1 -0
- package/dist/utils/chatgpt-detector.d.ts +51 -0
- package/dist/utils/chatgpt-detector.d.ts.map +1 -0
- package/dist/utils/chatgpt-detector.js +274 -0
- package/dist/utils/chatgpt-detector.js.map +1 -0
- package/dist/utils/claude-code-detector.d.ts +39 -0
- package/dist/utils/claude-code-detector.d.ts.map +1 -0
- package/dist/utils/claude-code-detector.js +153 -0
- package/dist/utils/claude-code-detector.js.map +1 -0
- package/dist/utils/code-quality.d.ts +58 -0
- package/dist/utils/code-quality.d.ts.map +1 -0
- package/dist/utils/code-quality.js +258 -0
- package/dist/utils/code-quality.js.map +1 -0
- package/dist/utils/context-primer.d.ts +50 -0
- package/dist/utils/context-primer.d.ts.map +1 -0
- package/dist/utils/context-primer.js +429 -0
- package/dist/utils/context-primer.js.map +1 -0
- package/dist/utils/dependency-management.d.ts +40 -0
- package/dist/utils/dependency-management.d.ts.map +1 -0
- package/dist/utils/dependency-management.js +123 -0
- package/dist/utils/dependency-management.js.map +1 -0
- package/dist/utils/environment-validation.d.ts +33 -0
- package/dist/utils/environment-validation.d.ts.map +1 -0
- package/dist/utils/environment-validation.js +136 -0
- package/dist/utils/environment-validation.js.map +1 -0
- package/dist/utils/error-recovery.d.ts +60 -0
- package/dist/utils/error-recovery.d.ts.map +1 -0
- package/dist/utils/error-recovery.js +183 -0
- package/dist/utils/error-recovery.js.map +1 -0
- package/dist/utils/feature-list.d.ts +102 -0
- package/dist/utils/feature-list.d.ts.map +1 -0
- package/dist/utils/feature-list.js +191 -0
- package/dist/utils/feature-list.js.map +1 -0
- package/dist/utils/gemini-detector.d.ts +65 -0
- package/dist/utils/gemini-detector.d.ts.map +1 -0
- package/dist/utils/gemini-detector.js +340 -0
- package/dist/utils/gemini-detector.js.map +1 -0
- package/dist/utils/git-utils.d.ts +48 -0
- package/dist/utils/git-utils.d.ts.map +1 -0
- package/dist/utils/git-utils.js +110 -0
- package/dist/utils/git-utils.js.map +1 -0
- package/dist/utils/health-check.d.ts +32 -0
- package/dist/utils/health-check.d.ts.map +1 -0
- package/dist/utils/health-check.js +152 -0
- package/dist/utils/health-check.js.map +1 -0
- package/dist/utils/hooks-manager.d.ts +154 -0
- package/dist/utils/hooks-manager.d.ts.map +1 -0
- package/dist/utils/hooks-manager.js +359 -0
- package/dist/utils/hooks-manager.js.map +1 -0
- package/dist/utils/multi-auth-manager.d.ts +144 -0
- package/dist/utils/multi-auth-manager.d.ts.map +1 -0
- package/dist/utils/multi-auth-manager.js +588 -0
- package/dist/utils/multi-auth-manager.js.map +1 -0
- package/dist/utils/progress.d.ts +49 -0
- package/dist/utils/progress.d.ts.map +1 -0
- package/dist/utils/progress.js +209 -0
- package/dist/utils/progress.js.map +1 -0
- package/dist/utils/project-detection.d.ts +40 -0
- package/dist/utils/project-detection.d.ts.map +1 -0
- package/dist/utils/project-detection.js +230 -0
- package/dist/utils/project-detection.js.map +1 -0
- package/dist/utils/session-manager.d.ts +119 -0
- package/dist/utils/session-manager.d.ts.map +1 -0
- package/dist/utils/session-manager.js +389 -0
- package/dist/utils/session-manager.js.map +1 -0
- package/dist/utils/skills-manager.d.ts +113 -0
- package/dist/utils/skills-manager.d.ts.map +1 -0
- package/dist/utils/skills-manager.js +332 -0
- package/dist/utils/skills-manager.js.map +1 -0
- package/dist/utils/structured-output.d.ts +117 -0
- package/dist/utils/structured-output.d.ts.map +1 -0
- package/dist/utils/structured-output.js +191 -0
- package/dist/utils/structured-output.js.map +1 -0
- package/dist/utils/subagent-manager.d.ts +143 -0
- package/dist/utils/subagent-manager.d.ts.map +1 -0
- package/dist/utils/subagent-manager.js +326 -0
- package/dist/utils/subagent-manager.js.map +1 -0
- package/dist/utils/supabase-setup.d.ts +50 -0
- package/dist/utils/supabase-setup.d.ts.map +1 -0
- package/dist/utils/supabase-setup.js +151 -0
- package/dist/utils/supabase-setup.js.map +1 -0
- package/dist/utils/token-refresh.d.ts +21 -0
- package/dist/utils/token-refresh.d.ts.map +1 -0
- package/dist/utils/token-refresh.js +77 -0
- package/dist/utils/token-refresh.js.map +1 -0
- package/dist/utils/tos-warning.d.ts +115 -0
- package/dist/utils/tos-warning.d.ts.map +1 -0
- package/dist/utils/tos-warning.js +304 -0
- package/dist/utils/tos-warning.js.map +1 -0
- package/dist/utils/usage-monitor.d.ts +156 -0
- package/dist/utils/usage-monitor.d.ts.map +1 -0
- package/dist/utils/usage-monitor.js +296 -0
- package/dist/utils/usage-monitor.js.map +1 -0
- package/package.json +105 -0
- package/scripts/init.ps1 +73 -0
- package/scripts/init.sh +86 -0
- package/scripts/test-auth.sh +90 -0
- package/templates/feature_list.template.json +66 -0
- package/templates/progress.template.txt +51 -0
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code Quality Utilities
|
|
3
|
+
* Provides automated code quality checks, linting, and formatting validation.
|
|
4
|
+
* Helps maintain consistent code quality across sessions.
|
|
5
|
+
*/
|
|
6
|
+
import { existsSync, readFileSync } from "fs";
|
|
7
|
+
import { resolve } from "path";
|
|
8
|
+
import { agentConfig } from "../config/agent-config.js";
|
|
9
|
+
/**
|
|
10
|
+
* Check if TypeScript type checking passes
|
|
11
|
+
*/
|
|
12
|
+
export function checkTypeScript() {
|
|
13
|
+
const root = agentConfig.paths.projectRoot;
|
|
14
|
+
const tsconfigPath = resolve(root, "tsconfig.json");
|
|
15
|
+
if (!existsSync(tsconfigPath)) {
|
|
16
|
+
return {
|
|
17
|
+
status: "skip",
|
|
18
|
+
message: "No TypeScript configuration found",
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
// Check if typecheck script exists in package.json
|
|
22
|
+
try {
|
|
23
|
+
const packageJsonPath = resolve(root, "package.json");
|
|
24
|
+
if (existsSync(packageJsonPath)) {
|
|
25
|
+
const pkg = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
|
|
26
|
+
const scripts = pkg.scripts || {};
|
|
27
|
+
if (scripts.typecheck || scripts["type-check"]) {
|
|
28
|
+
return {
|
|
29
|
+
status: "unknown",
|
|
30
|
+
message: "TypeScript configuration found - run 'npm run typecheck' to verify",
|
|
31
|
+
command: "npm run typecheck",
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
// Silently fail
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
status: "unknown",
|
|
41
|
+
message: "TypeScript configuration found but no typecheck script",
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Check if linting is configured
|
|
46
|
+
*/
|
|
47
|
+
export function checkLinting() {
|
|
48
|
+
const root = agentConfig.paths.projectRoot;
|
|
49
|
+
// Check for common linting config files
|
|
50
|
+
const lintConfigs = [
|
|
51
|
+
".eslintrc.js",
|
|
52
|
+
".eslintrc.json",
|
|
53
|
+
".eslintrc.yml",
|
|
54
|
+
".eslintrc.yaml",
|
|
55
|
+
"eslint.config.js",
|
|
56
|
+
"eslint.config.mjs",
|
|
57
|
+
".eslintrc",
|
|
58
|
+
];
|
|
59
|
+
const hasLintConfig = lintConfigs.some(config => existsSync(resolve(root, config)));
|
|
60
|
+
if (!hasLintConfig) {
|
|
61
|
+
return {
|
|
62
|
+
status: "skip",
|
|
63
|
+
message: "No ESLint configuration found",
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
// Check for lint script
|
|
67
|
+
try {
|
|
68
|
+
const packageJsonPath = resolve(root, "package.json");
|
|
69
|
+
if (existsSync(packageJsonPath)) {
|
|
70
|
+
const pkg = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
|
|
71
|
+
const scripts = pkg.scripts || {};
|
|
72
|
+
if (scripts.lint) {
|
|
73
|
+
return {
|
|
74
|
+
status: "unknown",
|
|
75
|
+
message: "ESLint configured - run 'npm run lint' to check code quality",
|
|
76
|
+
command: "npm run lint",
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
// Silently fail
|
|
83
|
+
}
|
|
84
|
+
return {
|
|
85
|
+
status: "unknown",
|
|
86
|
+
message: "ESLint configuration found but no lint script",
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Check if code formatting is configured
|
|
91
|
+
*/
|
|
92
|
+
export function checkFormatting() {
|
|
93
|
+
const root = agentConfig.paths.projectRoot;
|
|
94
|
+
// Check for Prettier
|
|
95
|
+
const prettierConfigs = [
|
|
96
|
+
".prettierrc",
|
|
97
|
+
".prettierrc.json",
|
|
98
|
+
".prettierrc.js",
|
|
99
|
+
".prettierrc.yml",
|
|
100
|
+
"prettier.config.js",
|
|
101
|
+
".prettierrc.yaml",
|
|
102
|
+
];
|
|
103
|
+
const hasPrettier = prettierConfigs.some(config => existsSync(resolve(root, config))) || existsSync(resolve(root, ".prettierignore"));
|
|
104
|
+
// Check for format script
|
|
105
|
+
try {
|
|
106
|
+
const packageJsonPath = resolve(root, "package.json");
|
|
107
|
+
if (existsSync(packageJsonPath)) {
|
|
108
|
+
const pkg = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
|
|
109
|
+
const scripts = pkg.scripts || {};
|
|
110
|
+
const deps = { ...pkg.dependencies, ...pkg.devDependencies };
|
|
111
|
+
if (scripts.format || scripts.prettier) {
|
|
112
|
+
return {
|
|
113
|
+
status: "unknown",
|
|
114
|
+
message: "Prettier configured - run 'npm run format' to format code",
|
|
115
|
+
command: scripts.format ? "npm run format" : "npm run prettier",
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
else if (hasPrettier || deps.prettier) {
|
|
119
|
+
return {
|
|
120
|
+
status: "unknown",
|
|
121
|
+
message: "Prettier installed but no format script - add 'format' script to package.json",
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
// Silently fail
|
|
128
|
+
}
|
|
129
|
+
if (hasPrettier) {
|
|
130
|
+
return {
|
|
131
|
+
status: "unknown",
|
|
132
|
+
message: "Prettier configuration found",
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
return {
|
|
136
|
+
status: "skip",
|
|
137
|
+
message: "No code formatter configured",
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Check if project builds successfully
|
|
142
|
+
*/
|
|
143
|
+
export function checkBuild() {
|
|
144
|
+
const root = agentConfig.paths.projectRoot;
|
|
145
|
+
try {
|
|
146
|
+
const packageJsonPath = resolve(root, "package.json");
|
|
147
|
+
if (existsSync(packageJsonPath)) {
|
|
148
|
+
const pkg = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
|
|
149
|
+
const scripts = pkg.scripts || {};
|
|
150
|
+
if (scripts.build) {
|
|
151
|
+
return {
|
|
152
|
+
status: "unknown",
|
|
153
|
+
message: "Build script found - run 'npm run build' to verify build",
|
|
154
|
+
command: "npm run build",
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
catch {
|
|
160
|
+
// Silently fail
|
|
161
|
+
}
|
|
162
|
+
return {
|
|
163
|
+
status: "skip",
|
|
164
|
+
message: "No build script found",
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Run all code quality checks
|
|
169
|
+
*/
|
|
170
|
+
export function runQualityChecks() {
|
|
171
|
+
const typeChecking = checkTypeScript();
|
|
172
|
+
const linting = checkLinting();
|
|
173
|
+
const formatting = checkFormatting();
|
|
174
|
+
const build = checkBuild();
|
|
175
|
+
const errors = [];
|
|
176
|
+
const warnings = [];
|
|
177
|
+
// Collect errors and warnings
|
|
178
|
+
if (typeChecking.status === "fail") {
|
|
179
|
+
errors.push(`Type checking: ${typeChecking.message}`);
|
|
180
|
+
}
|
|
181
|
+
if (linting.status === "fail") {
|
|
182
|
+
errors.push(`Linting: ${linting.message}`);
|
|
183
|
+
}
|
|
184
|
+
if (formatting.status === "fail") {
|
|
185
|
+
warnings.push(`Formatting: ${formatting.message}`);
|
|
186
|
+
}
|
|
187
|
+
if (build.status === "fail") {
|
|
188
|
+
errors.push(`Build: ${build.message}`);
|
|
189
|
+
}
|
|
190
|
+
const passed = errors.length === 0;
|
|
191
|
+
return {
|
|
192
|
+
passed,
|
|
193
|
+
checks: {
|
|
194
|
+
typeChecking,
|
|
195
|
+
linting,
|
|
196
|
+
formatting,
|
|
197
|
+
build,
|
|
198
|
+
},
|
|
199
|
+
errors,
|
|
200
|
+
warnings,
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Generate quality check summary for agent prompts
|
|
205
|
+
*/
|
|
206
|
+
export function generateQualitySummary() {
|
|
207
|
+
const result = runQualityChecks();
|
|
208
|
+
let summary = "\n## CODE QUALITY STATUS\n\n";
|
|
209
|
+
// Type checking
|
|
210
|
+
if (result.checks.typeChecking.status !== "skip") {
|
|
211
|
+
const icon = result.checks.typeChecking.status === "pass" ? "✅" :
|
|
212
|
+
result.checks.typeChecking.status === "fail" ? "❌" : "⚠️";
|
|
213
|
+
summary += `${icon} Type Checking: ${result.checks.typeChecking.message}\n`;
|
|
214
|
+
}
|
|
215
|
+
// Linting
|
|
216
|
+
if (result.checks.linting.status !== "skip") {
|
|
217
|
+
const icon = result.checks.linting.status === "pass" ? "✅" :
|
|
218
|
+
result.checks.linting.status === "fail" ? "❌" : "⚠️";
|
|
219
|
+
summary += `${icon} Linting: ${result.checks.linting.message}\n`;
|
|
220
|
+
}
|
|
221
|
+
// Formatting
|
|
222
|
+
if (result.checks.formatting.status !== "skip") {
|
|
223
|
+
const icon = result.checks.formatting.status === "pass" ? "✅" :
|
|
224
|
+
result.checks.formatting.status === "fail" ? "❌" : "⚠️";
|
|
225
|
+
summary += `${icon} Formatting: ${result.checks.formatting.message}\n`;
|
|
226
|
+
}
|
|
227
|
+
// Build
|
|
228
|
+
if (result.checks.build.status !== "skip") {
|
|
229
|
+
const icon = result.checks.build.status === "pass" ? "✅" :
|
|
230
|
+
result.checks.build.status === "fail" ? "❌" : "⚠️";
|
|
231
|
+
summary += `${icon} Build: ${result.checks.build.message}\n`;
|
|
232
|
+
}
|
|
233
|
+
if (result.errors.length > 0) {
|
|
234
|
+
summary += "\n❌ Errors:\n";
|
|
235
|
+
result.errors.forEach(e => {
|
|
236
|
+
summary += ` - ${e}\n`;
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
if (result.warnings.length > 0) {
|
|
240
|
+
summary += "\n⚠️ Warnings:\n";
|
|
241
|
+
result.warnings.forEach(w => {
|
|
242
|
+
summary += ` - ${w}\n`;
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
if (result.passed && result.errors.length === 0 && result.warnings.length === 0) {
|
|
246
|
+
summary += "\n✅ All quality checks passed or skipped\n";
|
|
247
|
+
}
|
|
248
|
+
return summary;
|
|
249
|
+
}
|
|
250
|
+
export default {
|
|
251
|
+
checkTypeScript,
|
|
252
|
+
checkLinting,
|
|
253
|
+
checkFormatting,
|
|
254
|
+
checkBuild,
|
|
255
|
+
runQualityChecks,
|
|
256
|
+
generateQualitySummary,
|
|
257
|
+
};
|
|
258
|
+
//# sourceMappingURL=code-quality.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-quality.js","sourceRoot":"","sources":["../../src/utils/code-quality.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
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
|
+
/**
|
|
9
|
+
* Context section types
|
|
10
|
+
*/
|
|
11
|
+
export type ContextSection = 'project_overview' | 'architecture' | 'conventions' | 'recent_changes' | 'open_issues' | 'dependencies' | 'environment' | 'feature_progress' | 'session_history' | 'tool_recommendations';
|
|
12
|
+
/**
|
|
13
|
+
* Primed context result
|
|
14
|
+
*/
|
|
15
|
+
export interface PrimedContext {
|
|
16
|
+
sections: Record<ContextSection, string>;
|
|
17
|
+
summary: string;
|
|
18
|
+
token_estimate: number;
|
|
19
|
+
timestamp: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Tool recommendation based on project analysis
|
|
23
|
+
*/
|
|
24
|
+
export interface ToolRecommendation {
|
|
25
|
+
tool: string;
|
|
26
|
+
priority: 'required' | 'recommended' | 'optional' | 'skip';
|
|
27
|
+
reason: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Prime context for a session
|
|
31
|
+
*/
|
|
32
|
+
export declare function primeContext(projectRoot: string, agentDir: string, options?: {
|
|
33
|
+
includeSections?: ContextSection[];
|
|
34
|
+
maxTokens?: number;
|
|
35
|
+
}): PrimedContext;
|
|
36
|
+
/**
|
|
37
|
+
* Get compact context for continuation
|
|
38
|
+
*/
|
|
39
|
+
export declare function getCompactContext(projectRoot: string, agentDir: string): string;
|
|
40
|
+
/**
|
|
41
|
+
* Get tool recommendations only
|
|
42
|
+
*/
|
|
43
|
+
export declare function getToolRecommendationsOnly(projectRoot: string, agentDir: string): ToolRecommendation[];
|
|
44
|
+
declare const _default: {
|
|
45
|
+
primeContext: typeof primeContext;
|
|
46
|
+
getCompactContext: typeof getCompactContext;
|
|
47
|
+
getToolRecommendationsOnly: typeof getToolRecommendationsOnly;
|
|
48
|
+
};
|
|
49
|
+
export default _default;
|
|
50
|
+
//# sourceMappingURL=context-primer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-primer.d.ts","sourceRoot":"","sources":["../../src/utils/context-primer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,kBAAkB,GAClB,cAAc,GACd,aAAa,GACb,gBAAgB,GAChB,aAAa,GACb,cAAc,GACd,aAAa,GACb,kBAAkB,GAClB,iBAAiB,GACjB,sBAAsB,CAAC;AAE3B;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,UAAU,GAAG,aAAa,GAAG,UAAU,GAAG,MAAM,CAAC;IAC3D,MAAM,EAAE,MAAM,CAAC;CAChB;AAuWD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IACP,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,GACL,aAAa,CAmFf;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAO/E;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,kBAAkB,EAAE,CAEtB;;;;;;AAED,wBAIE"}
|