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,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enhanced Git Utilities
|
|
3
|
+
* Provides git operations, conflict detection, branch management, and change tracking.
|
|
4
|
+
*/
|
|
5
|
+
import { existsSync } from "fs";
|
|
6
|
+
import { resolve } from "path";
|
|
7
|
+
import { agentConfig } from "../config/agent-config.js";
|
|
8
|
+
/**
|
|
9
|
+
* Check if git is initialized
|
|
10
|
+
*/
|
|
11
|
+
export function isGitInitialized() {
|
|
12
|
+
const root = agentConfig.paths.projectRoot;
|
|
13
|
+
return existsSync(resolve(root, ".git"));
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Get git status summary
|
|
17
|
+
* Note: This provides hints - actual status requires running git commands
|
|
18
|
+
*/
|
|
19
|
+
export function getGitStatus() {
|
|
20
|
+
const root = agentConfig.paths.projectRoot;
|
|
21
|
+
const gitDir = resolve(root, ".git");
|
|
22
|
+
if (!existsSync(gitDir)) {
|
|
23
|
+
return {
|
|
24
|
+
hasChanges: false,
|
|
25
|
+
hasUncommittedChanges: false,
|
|
26
|
+
hasUntrackedFiles: false,
|
|
27
|
+
hasConflicts: false,
|
|
28
|
+
currentBranch: null,
|
|
29
|
+
aheadOfRemote: 0,
|
|
30
|
+
behindRemote: 0,
|
|
31
|
+
lastCommit: null,
|
|
32
|
+
lastCommitMessage: null,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
// We can't actually run git commands here, so we provide a structure
|
|
36
|
+
// The agent should run: git status, git branch, git log, etc.
|
|
37
|
+
return {
|
|
38
|
+
hasChanges: true, // Unknown - agent should check
|
|
39
|
+
hasUncommittedChanges: true, // Unknown - agent should check
|
|
40
|
+
hasUntrackedFiles: true, // Unknown - agent should check
|
|
41
|
+
hasConflicts: false, // Check for .git/MERGE_HEAD, .git/CHERRY_PICK_HEAD, etc.
|
|
42
|
+
currentBranch: null, // Agent should run: git branch --show-current
|
|
43
|
+
aheadOfRemote: 0, // Agent should run: git rev-list --count @{u}..HEAD
|
|
44
|
+
behindRemote: 0, // Agent should run: git rev-list --count HEAD..@{u}
|
|
45
|
+
lastCommit: null, // Agent should run: git log -1 --format=%H
|
|
46
|
+
lastCommitMessage: null, // Agent should run: git log -1 --format=%s
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Check for merge conflicts
|
|
51
|
+
*/
|
|
52
|
+
export function hasMergeConflicts() {
|
|
53
|
+
const root = agentConfig.paths.projectRoot;
|
|
54
|
+
const gitDir = resolve(root, ".git");
|
|
55
|
+
if (!existsSync(gitDir)) {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
// Check for conflict markers
|
|
59
|
+
const conflictMarkers = [
|
|
60
|
+
resolve(gitDir, "MERGE_HEAD"),
|
|
61
|
+
resolve(gitDir, "CHERRY_PICK_HEAD"),
|
|
62
|
+
resolve(gitDir, "REBASE_HEAD"),
|
|
63
|
+
];
|
|
64
|
+
return conflictMarkers.some(marker => existsSync(marker));
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Generate git status summary for agent prompts
|
|
68
|
+
*/
|
|
69
|
+
export function generateGitSummary() {
|
|
70
|
+
const initialized = isGitInitialized();
|
|
71
|
+
const conflicts = hasMergeConflicts();
|
|
72
|
+
let summary = "\n## GIT STATUS\n\n";
|
|
73
|
+
if (!initialized) {
|
|
74
|
+
summary += "❌ Git not initialized\n";
|
|
75
|
+
summary += " Recommendation: Run 'git init' to initialize repository\n";
|
|
76
|
+
return summary;
|
|
77
|
+
}
|
|
78
|
+
summary += "✅ Git repository initialized\n";
|
|
79
|
+
if (conflicts) {
|
|
80
|
+
summary += "🚨 Merge conflicts detected!\n";
|
|
81
|
+
summary += " Check for conflict markers (<<<<<<, =======, >>>>>>)\n";
|
|
82
|
+
summary += " Resolve conflicts before continuing\n";
|
|
83
|
+
}
|
|
84
|
+
summary += "\n💡 Git Commands to Run:\n";
|
|
85
|
+
summary += " - git status (check for uncommitted changes)\n";
|
|
86
|
+
summary += " - git branch --show-current (current branch)\n";
|
|
87
|
+
summary += " - git log --oneline -10 (recent commits)\n";
|
|
88
|
+
summary += " - git diff (see uncommitted changes)\n";
|
|
89
|
+
return summary;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Get recommended git workflow
|
|
93
|
+
*/
|
|
94
|
+
export function getGitWorkflow() {
|
|
95
|
+
return [
|
|
96
|
+
"Before starting work: git status",
|
|
97
|
+
"After completing a feature: git add -A && git commit -m '[agent] <description>'",
|
|
98
|
+
"Before ending session: Ensure all changes are committed",
|
|
99
|
+
"If conflicts occur: Resolve manually, then commit",
|
|
100
|
+
"Never force push to main/master branch",
|
|
101
|
+
];
|
|
102
|
+
}
|
|
103
|
+
export default {
|
|
104
|
+
isGitInitialized,
|
|
105
|
+
getGitStatus,
|
|
106
|
+
hasMergeConflicts,
|
|
107
|
+
generateGitSummary,
|
|
108
|
+
getGitWorkflow,
|
|
109
|
+
};
|
|
110
|
+
//# sourceMappingURL=git-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-utils.js","sourceRoot":"","sources":["../../src/utils/git-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Health Check Utilities
|
|
3
|
+
* Monitors system health, build status, and application state.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Health check result
|
|
7
|
+
*/
|
|
8
|
+
export interface HealthCheckResult {
|
|
9
|
+
healthy: boolean;
|
|
10
|
+
checks: {
|
|
11
|
+
projectStructure: boolean;
|
|
12
|
+
dependencies: boolean;
|
|
13
|
+
build: boolean;
|
|
14
|
+
devServer: boolean;
|
|
15
|
+
};
|
|
16
|
+
issues: string[];
|
|
17
|
+
recommendations: string[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Run comprehensive health check
|
|
21
|
+
*/
|
|
22
|
+
export declare function runHealthCheck(): HealthCheckResult;
|
|
23
|
+
/**
|
|
24
|
+
* Generate health check summary
|
|
25
|
+
*/
|
|
26
|
+
export declare function generateHealthSummary(): string;
|
|
27
|
+
declare const _default: {
|
|
28
|
+
runHealthCheck: typeof runHealthCheck;
|
|
29
|
+
generateHealthSummary: typeof generateHealthSummary;
|
|
30
|
+
};
|
|
31
|
+
export default _default;
|
|
32
|
+
//# sourceMappingURL=health-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health-check.d.ts","sourceRoot":"","sources":["../../src/utils/health-check.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE;QACN,gBAAgB,EAAE,OAAO,CAAC;QAC1B,YAAY,EAAE,OAAO,CAAC;QACtB,KAAK,EAAE,OAAO,CAAC;QACf,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAyFD;;GAEG;AACH,wBAAgB,cAAc,IAAI,iBAAiB,CAwClD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CA+B9C;;;;;AAED,wBAGE"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Health Check Utilities
|
|
3
|
+
* Monitors system health, build status, and application state.
|
|
4
|
+
*/
|
|
5
|
+
import { existsSync } from "fs";
|
|
6
|
+
import { resolve } from "path";
|
|
7
|
+
import { agentConfig } from "../config/agent-config.js";
|
|
8
|
+
/**
|
|
9
|
+
* Check project structure health
|
|
10
|
+
*/
|
|
11
|
+
function checkProjectStructure() {
|
|
12
|
+
const root = agentConfig.paths.projectRoot;
|
|
13
|
+
const issues = [];
|
|
14
|
+
// Check for essential directories
|
|
15
|
+
const essentialDirs = ["src", "public", "node_modules"];
|
|
16
|
+
const optionalDirs = ["components", "utils", "hooks", "pages", "app"];
|
|
17
|
+
for (const dir of essentialDirs) {
|
|
18
|
+
if (!existsSync(resolve(root, dir))) {
|
|
19
|
+
if (dir !== "node_modules") {
|
|
20
|
+
issues.push(`Missing directory: ${dir}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
// Check for package.json
|
|
25
|
+
if (!existsSync(resolve(root, "package.json"))) {
|
|
26
|
+
issues.push("Missing package.json");
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
healthy: issues.length === 0,
|
|
30
|
+
issues,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Check if dependencies are installed
|
|
35
|
+
*/
|
|
36
|
+
function checkDependencies() {
|
|
37
|
+
const root = agentConfig.paths.projectRoot;
|
|
38
|
+
const issues = [];
|
|
39
|
+
if (!existsSync(resolve(root, "node_modules"))) {
|
|
40
|
+
issues.push("node_modules not found - run 'npm install'");
|
|
41
|
+
}
|
|
42
|
+
if (!existsSync(resolve(root, "package-lock.json")) &&
|
|
43
|
+
!existsSync(resolve(root, "yarn.lock")) &&
|
|
44
|
+
!existsSync(resolve(root, "pnpm-lock.yaml"))) {
|
|
45
|
+
issues.push("No lock file found - dependencies may not be installed");
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
healthy: issues.length === 0,
|
|
49
|
+
issues,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Check build status (heuristic)
|
|
54
|
+
*/
|
|
55
|
+
function checkBuild() {
|
|
56
|
+
const root = agentConfig.paths.projectRoot;
|
|
57
|
+
const issues = [];
|
|
58
|
+
// Check for build output directories
|
|
59
|
+
const buildDirs = ["dist", "build", ".next", "out"];
|
|
60
|
+
const hasBuildDir = buildDirs.some(dir => existsSync(resolve(root, dir)));
|
|
61
|
+
// This is just a heuristic - actual build status requires running build
|
|
62
|
+
if (!hasBuildDir) {
|
|
63
|
+
issues.push("No build output directory found - may need to run build");
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
healthy: issues.length === 0,
|
|
67
|
+
issues,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Check dev server status (heuristic)
|
|
72
|
+
*/
|
|
73
|
+
function checkDevServer() {
|
|
74
|
+
// We can't actually check if dev server is running without making HTTP requests
|
|
75
|
+
// This is a placeholder - the agent should check by navigating to localhost
|
|
76
|
+
return {
|
|
77
|
+
healthy: true, // Unknown - agent should verify
|
|
78
|
+
issues: [],
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Run comprehensive health check
|
|
83
|
+
*/
|
|
84
|
+
export function runHealthCheck() {
|
|
85
|
+
const structure = checkProjectStructure();
|
|
86
|
+
const dependencies = checkDependencies();
|
|
87
|
+
const build = checkBuild();
|
|
88
|
+
const devServer = checkDevServer();
|
|
89
|
+
const allIssues = [
|
|
90
|
+
...structure.issues,
|
|
91
|
+
...dependencies.issues,
|
|
92
|
+
...build.issues,
|
|
93
|
+
...devServer.issues,
|
|
94
|
+
];
|
|
95
|
+
const recommendations = [];
|
|
96
|
+
if (dependencies.issues.length > 0) {
|
|
97
|
+
recommendations.push("Run 'npm install' to install dependencies");
|
|
98
|
+
}
|
|
99
|
+
if (build.issues.length > 0) {
|
|
100
|
+
recommendations.push("Run 'npm run build' to create build output");
|
|
101
|
+
}
|
|
102
|
+
if (structure.issues.length > 0) {
|
|
103
|
+
recommendations.push("Check project structure - some directories may be missing");
|
|
104
|
+
}
|
|
105
|
+
const healthy = allIssues.length === 0;
|
|
106
|
+
return {
|
|
107
|
+
healthy,
|
|
108
|
+
checks: {
|
|
109
|
+
projectStructure: structure.healthy,
|
|
110
|
+
dependencies: dependencies.healthy,
|
|
111
|
+
build: build.healthy,
|
|
112
|
+
devServer: devServer.healthy,
|
|
113
|
+
},
|
|
114
|
+
issues: allIssues,
|
|
115
|
+
recommendations,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Generate health check summary
|
|
120
|
+
*/
|
|
121
|
+
export function generateHealthSummary() {
|
|
122
|
+
const health = runHealthCheck();
|
|
123
|
+
let summary = "\n## SYSTEM HEALTH CHECK\n\n";
|
|
124
|
+
if (health.healthy) {
|
|
125
|
+
summary += "✅ System is healthy\n";
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
summary += "⚠️ System health issues detected\n";
|
|
129
|
+
}
|
|
130
|
+
summary += `Project Structure: ${health.checks.projectStructure ? "✅" : "❌"}\n`;
|
|
131
|
+
summary += `Dependencies: ${health.checks.dependencies ? "✅" : "❌"}\n`;
|
|
132
|
+
summary += `Build: ${health.checks.build ? "✅" : "⚠️"}\n`;
|
|
133
|
+
summary += `Dev Server: ${health.checks.devServer ? "✅" : "⚠️"}\n`;
|
|
134
|
+
if (health.issues.length > 0) {
|
|
135
|
+
summary += "\n🚨 Issues:\n";
|
|
136
|
+
health.issues.forEach(issue => {
|
|
137
|
+
summary += ` - ${issue}\n`;
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
if (health.recommendations.length > 0) {
|
|
141
|
+
summary += "\n💡 Recommendations:\n";
|
|
142
|
+
health.recommendations.forEach(rec => {
|
|
143
|
+
summary += ` - ${rec}\n`;
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
return summary;
|
|
147
|
+
}
|
|
148
|
+
export default {
|
|
149
|
+
runHealthCheck,
|
|
150
|
+
generateHealthSummary,
|
|
151
|
+
};
|
|
152
|
+
//# sourceMappingURL=health-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health-check.js","sourceRoot":"","sources":["../../src/utils/health-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hooks Manager
|
|
3
|
+
* Implements lifecycle hooks for the Claude Agent SDK.
|
|
4
|
+
* Hooks allow customization of agent behavior at key points.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) 2025 Dobeu Tech Solutions LLC
|
|
7
|
+
* Licensed under CC BY-NC 4.0
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Hook event types
|
|
11
|
+
*/
|
|
12
|
+
export type HookEvent = 'session.start' | 'session.end' | 'query.before' | 'query.after' | 'tool.before' | 'tool.after' | 'file.read' | 'file.write' | 'file.edit' | 'error.caught' | 'feature.start' | 'feature.complete' | 'feature.fail' | 'checkpoint.create' | 'checkpoint.restore' | 'git.commit' | 'browser.navigate' | 'browser.action';
|
|
13
|
+
/**
|
|
14
|
+
* Hook context passed to hook handlers
|
|
15
|
+
*/
|
|
16
|
+
export interface HookContext {
|
|
17
|
+
event: HookEvent;
|
|
18
|
+
timestamp: number;
|
|
19
|
+
sessionId?: string;
|
|
20
|
+
featureId?: string;
|
|
21
|
+
data?: Record<string, unknown>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Hook handler function type
|
|
25
|
+
*/
|
|
26
|
+
export type HookHandler = (context: HookContext) => Promise<HookResult> | HookResult;
|
|
27
|
+
/**
|
|
28
|
+
* Hook result that can modify agent behavior
|
|
29
|
+
*/
|
|
30
|
+
export interface HookResult {
|
|
31
|
+
continue: boolean;
|
|
32
|
+
modified?: Record<string, unknown>;
|
|
33
|
+
message?: string;
|
|
34
|
+
warnings?: string[];
|
|
35
|
+
block?: {
|
|
36
|
+
reason: string;
|
|
37
|
+
suggestion?: string;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Security hook configuration
|
|
42
|
+
*/
|
|
43
|
+
export interface SecurityHookConfig {
|
|
44
|
+
blockSensitiveFiles: boolean;
|
|
45
|
+
sensitivePatterns: RegExp[];
|
|
46
|
+
blockDangerousCommands: boolean;
|
|
47
|
+
dangerousCommandPatterns: RegExp[];
|
|
48
|
+
requireConfirmation: boolean;
|
|
49
|
+
confirmationPatterns: RegExp[];
|
|
50
|
+
auditAllActions: boolean;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Default security hook configuration
|
|
54
|
+
*/
|
|
55
|
+
export declare const DEFAULT_SECURITY_CONFIG: SecurityHookConfig;
|
|
56
|
+
/**
|
|
57
|
+
* Hooks Manager class
|
|
58
|
+
*/
|
|
59
|
+
export declare class HooksManager {
|
|
60
|
+
private hooks;
|
|
61
|
+
private securityConfig;
|
|
62
|
+
private hookIdCounter;
|
|
63
|
+
private auditLog;
|
|
64
|
+
private enabled;
|
|
65
|
+
constructor(securityConfig?: Partial<SecurityHookConfig>);
|
|
66
|
+
/**
|
|
67
|
+
* Check if hooks are enabled
|
|
68
|
+
*/
|
|
69
|
+
isEnabled(): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Enable or disable hooks
|
|
72
|
+
*/
|
|
73
|
+
setEnabled(enabled: boolean): void;
|
|
74
|
+
/**
|
|
75
|
+
* Generate unique hook ID
|
|
76
|
+
*/
|
|
77
|
+
private generateId;
|
|
78
|
+
/**
|
|
79
|
+
* Register a hook
|
|
80
|
+
*/
|
|
81
|
+
register(event: HookEvent, handler: HookHandler, options?: {
|
|
82
|
+
name?: string;
|
|
83
|
+
description?: string;
|
|
84
|
+
priority?: number;
|
|
85
|
+
enabled?: boolean;
|
|
86
|
+
}): string;
|
|
87
|
+
/**
|
|
88
|
+
* Unregister a hook
|
|
89
|
+
*/
|
|
90
|
+
unregister(hookId: string): boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Enable a hook
|
|
93
|
+
*/
|
|
94
|
+
enable(hookId: string): boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Disable a hook
|
|
97
|
+
*/
|
|
98
|
+
disable(hookId: string): boolean;
|
|
99
|
+
/**
|
|
100
|
+
* Trigger hooks for an event
|
|
101
|
+
*/
|
|
102
|
+
trigger(event: HookEvent, data?: Record<string, unknown>): Promise<HookResult>;
|
|
103
|
+
/**
|
|
104
|
+
* Register default security hooks
|
|
105
|
+
*/
|
|
106
|
+
private registerSecurityHooks;
|
|
107
|
+
/**
|
|
108
|
+
* Get audit log
|
|
109
|
+
*/
|
|
110
|
+
getAuditLog(): HookContext[];
|
|
111
|
+
/**
|
|
112
|
+
* Clear audit log
|
|
113
|
+
*/
|
|
114
|
+
clearAuditLog(): void;
|
|
115
|
+
/**
|
|
116
|
+
* Get all registered hooks
|
|
117
|
+
*/
|
|
118
|
+
listHooks(): Array<{
|
|
119
|
+
event: HookEvent;
|
|
120
|
+
name: string;
|
|
121
|
+
enabled: boolean;
|
|
122
|
+
priority: number;
|
|
123
|
+
}>;
|
|
124
|
+
/**
|
|
125
|
+
* Get hooks summary
|
|
126
|
+
*/
|
|
127
|
+
getSummary(): string;
|
|
128
|
+
/**
|
|
129
|
+
* Update security configuration
|
|
130
|
+
*/
|
|
131
|
+
updateSecurityConfig(config: Partial<SecurityHookConfig>): void;
|
|
132
|
+
/**
|
|
133
|
+
* Get current security configuration
|
|
134
|
+
*/
|
|
135
|
+
getSecurityConfig(): SecurityHookConfig;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Create a logging hook
|
|
139
|
+
*/
|
|
140
|
+
export declare function createLoggingHook(logFn: (context: HookContext) => void): HookHandler;
|
|
141
|
+
/**
|
|
142
|
+
* Create a validation hook
|
|
143
|
+
*/
|
|
144
|
+
export declare function createValidationHook(validate: (context: HookContext) => boolean | string): HookHandler;
|
|
145
|
+
/**
|
|
146
|
+
* Create a transformation hook
|
|
147
|
+
*/
|
|
148
|
+
export declare function createTransformationHook(transform: (context: HookContext) => Record<string, unknown>): HookHandler;
|
|
149
|
+
/**
|
|
150
|
+
* Create a hooks manager instance
|
|
151
|
+
*/
|
|
152
|
+
export declare function createHooksManager(securityConfig?: Partial<SecurityHookConfig>): HooksManager;
|
|
153
|
+
export default HooksManager;
|
|
154
|
+
//# sourceMappingURL=hooks-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks-manager.d.ts","sourceRoot":"","sources":["../../src/utils/hooks-manager.ts"],"names":[],"mappings":"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"}
|