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,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":"AAAA;;;;;;;GAOG;AAIH;;GAEG;AACH,MAAM,MAAM,SAAS,GACjB,eAAe,GACf,aAAa,GACb,cAAc,GACd,aAAa,GACb,aAAa,GACb,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,WAAW,GACX,cAAc,GACd,eAAe,GACf,kBAAkB,GAClB,cAAc,GACd,mBAAmB,GACnB,oBAAoB,GACpB,YAAY,GACZ,kBAAkB,GAClB,gBAAgB,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;AAErF;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAeD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,sBAAsB,EAAE,OAAO,CAAC;IAChC,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,kBAmCrC,CAAC;AAEF;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,OAAO,CAAU;gBAEb,cAAc,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC;IAUxD;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,QAAQ,CACN,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,GACA,MAAM;IA0BT;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAWnC;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAW/B;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAWhC;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAkDpF;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA6F7B;;OAEG;IACH,WAAW,IAAI,WAAW,EAAE;IAI5B;;OAEG;IACH,aAAa,IAAI,IAAI;IAIrB;;OAEG;IACH,SAAS,IAAI,KAAK,CAAC;QAAE,KAAK,EAAE,SAAS,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAiB1F;;OAEG;IACH,UAAU,IAAI,MAAM;IAQpB;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAI/D;;OAEG;IACH,iBAAiB,IAAI,kBAAkB;CAGxC;AAID;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,GACpC,WAAW,CAKb;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,GAAG,MAAM,GACnD,WAAW,CAab;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3D,WAAW,CAKb;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,cAAc,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAC3C,YAAY,CAEd;AAED,eAAe,YAAY,CAAC"}