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,138 @@
1
+ /**
2
+ * Agent Configuration
3
+ * Central configuration for the long-running agent framework.
4
+ * Based on Anthropic's best practices for effective agent harnesses.
5
+ *
6
+ * Copyright (c) 2025 Dobeu Tech Solutions LLC
7
+ * Licensed under CC BY-NC 4.0
8
+ */
9
+ import { resolve } from 'path';
10
+ import { existsSync } from 'fs';
11
+ // Get the project root (where the agent is invoked from)
12
+ const projectRoot = process.cwd();
13
+ const agentDir = resolve(projectRoot, '.agent');
14
+ /**
15
+ * Default agent configuration
16
+ */
17
+ export const agentConfig = {
18
+ paths: {
19
+ agentDir,
20
+ featureList: resolve(agentDir, 'feature_list.json'),
21
+ progressFile: resolve(agentDir, 'claude-progress.txt'),
22
+ templatesDir: resolve(projectRoot, 'templates'),
23
+ projectRoot,
24
+ sessionState: resolve(agentDir, 'session_state.json'),
25
+ usageLog: resolve(agentDir, 'usage_log.jsonl'),
26
+ auditLog: resolve(agentDir, 'audit_log.jsonl'),
27
+ checkpointsDir: resolve(agentDir, 'checkpoints'),
28
+ },
29
+ tools: {
30
+ // Initializer needs write access to create files
31
+ initializer: ['Read', 'Write', 'Bash', 'Glob', 'Grep'],
32
+ // Coding agent needs edit for incremental changes + browser for testing
33
+ coding: ['Read', 'Edit', 'Bash', 'Glob', 'Grep', 'Browser', 'Task'],
34
+ // Review agent needs read-only access
35
+ review: ['Read', 'Glob', 'Grep'],
36
+ },
37
+ permissionMode: 'acceptEdits',
38
+ git: {
39
+ autoCommit: true,
40
+ commitMessagePrefix: '[monty]',
41
+ preventForcePush: true,
42
+ protectMainBranch: true,
43
+ },
44
+ session: {
45
+ maxRetries: 3,
46
+ verifyBasicFunctionality: true,
47
+ autoSaveCheckpoints: true,
48
+ checkpointInterval: 3, // checkpoint every 3 features
49
+ maxCheckpoints: 10,
50
+ },
51
+ features: {
52
+ enableTDD: true,
53
+ enableAuditLog: true,
54
+ enableSecurityHooks: true,
55
+ enableUsageTracking: true,
56
+ enableContextPriming: true,
57
+ enableFileCheckpointing: true,
58
+ enableSubagents: true,
59
+ strictTDD: false, // Set to true to block edits without tests
60
+ },
61
+ model: {
62
+ default: 'claude-3-5-sonnet',
63
+ subagents: 'claude-3-5-sonnet',
64
+ },
65
+ };
66
+ /**
67
+ * Get the full path for a config path relative to project root
68
+ */
69
+ export function getAgentPath(key) {
70
+ return agentConfig.paths[key];
71
+ }
72
+ /**
73
+ * Check if this is the first run (no .agent directory exists)
74
+ */
75
+ export function isFirstRun() {
76
+ return !existsSync(agentConfig.paths.agentDir);
77
+ }
78
+ /**
79
+ * Check if project is initialized
80
+ */
81
+ export function isProjectInitialized() {
82
+ return existsSync(agentConfig.paths.featureList);
83
+ }
84
+ /**
85
+ * Get tools based on project state
86
+ */
87
+ export function getOptimizedTools(projectRoot) {
88
+ const tools = [...agentConfig.tools.coding];
89
+ // Check if we need browser (has dev server scripts)
90
+ const pkgPath = resolve(projectRoot, 'package.json');
91
+ if (existsSync(pkgPath)) {
92
+ try {
93
+ const pkg = JSON.parse(require('fs').readFileSync(pkgPath, 'utf-8'));
94
+ const hasDevServer = pkg.scripts?.dev || pkg.scripts?.start;
95
+ if (!hasDevServer) {
96
+ // Remove Browser if no dev server
97
+ const browserIdx = tools.indexOf('Browser');
98
+ if (browserIdx > -1) {
99
+ tools.splice(browserIdx, 1);
100
+ }
101
+ }
102
+ }
103
+ catch {
104
+ // Keep browser by default
105
+ }
106
+ }
107
+ return tools;
108
+ }
109
+ /**
110
+ * Get SDK options based on configuration
111
+ */
112
+ export function getSDKOptions() {
113
+ return {
114
+ permissionMode: agentConfig.permissionMode,
115
+ maxTurns: 50,
116
+ model: agentConfig.model.default,
117
+ enableFileCheckpointing: agentConfig.features.enableFileCheckpointing,
118
+ };
119
+ }
120
+ /**
121
+ * Update feature flag at runtime
122
+ */
123
+ export function setFeatureFlag(flag, value) {
124
+ agentConfig.features[flag] = value;
125
+ }
126
+ /**
127
+ * Get feature flags summary
128
+ */
129
+ export function getFeatureFlagsSummary() {
130
+ const lines = ['Feature Flags:'];
131
+ for (const [key, value] of Object.entries(agentConfig.features)) {
132
+ const status = value ? '✓' : '✗';
133
+ lines.push(` ${status} ${key}`);
134
+ }
135
+ return lines.join('\n');
136
+ }
137
+ export default agentConfig;
138
+ //# sourceMappingURL=agent-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-config.js","sourceRoot":"","sources":["../../src/config/agent-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAmEhC,yDAAyD;AACzD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAClC,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAgB;IACtC,KAAK,EAAE;QACL,QAAQ;QACR,WAAW,EAAE,OAAO,CAAC,QAAQ,EAAE,mBAAmB,CAAC;QACnD,YAAY,EAAE,OAAO,CAAC,QAAQ,EAAE,qBAAqB,CAAC;QACtD,YAAY,EAAE,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC;QAC/C,WAAW;QACX,YAAY,EAAE,OAAO,CAAC,QAAQ,EAAE,oBAAoB,CAAC;QACrD,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,iBAAiB,CAAC;QAC9C,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,iBAAiB,CAAC;QAC9C,cAAc,EAAE,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC;KACjD;IACD,KAAK,EAAE;QACL,iDAAiD;QACjD,WAAW,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QACtD,wEAAwE;QACxE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC;QACnE,sCAAsC;QACtC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;KACjC;IACD,cAAc,EAAE,aAAa;IAC7B,GAAG,EAAE;QACH,UAAU,EAAE,IAAI;QAChB,mBAAmB,EAAE,SAAS;QAC9B,gBAAgB,EAAE,IAAI;QACtB,iBAAiB,EAAE,IAAI;KACxB;IACD,OAAO,EAAE;QACP,UAAU,EAAE,CAAC;QACb,wBAAwB,EAAE,IAAI;QAC9B,mBAAmB,EAAE,IAAI;QACzB,kBAAkB,EAAE,CAAC,EAAE,8BAA8B;QACrD,cAAc,EAAE,EAAE;KACnB;IACD,QAAQ,EAAE;QACR,SAAS,EAAE,IAAI;QACf,cAAc,EAAE,IAAI;QACpB,mBAAmB,EAAE,IAAI;QACzB,mBAAmB,EAAE,IAAI;QACzB,oBAAoB,EAAE,IAAI;QAC1B,uBAAuB,EAAE,IAAI;QAC7B,eAAe,EAAE,IAAI;QACrB,SAAS,EAAE,KAAK,EAAE,2CAA2C;KAC9D;IACD,KAAK,EAAE;QACL,OAAO,EAAE,mBAAmB;QAC5B,SAAS,EAAE,mBAAmB;KAC/B;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,GAA+B;IAC1D,OAAO,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,MAAM,KAAK,GAAG,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAE5C,oDAAoD;IACpD,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACrD,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YACrE,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;YAC5D,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,kCAAkC;gBAClC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC5C,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC;oBACpB,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO;QACL,cAAc,EAAE,WAAW,CAAC,cAAc;QAC1C,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO;QAChC,uBAAuB,EAAE,WAAW,CAAC,QAAQ,CAAC,uBAAuB;KACtE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAwB,EAAE,KAAc;IACrE,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,KAAK,GAAa,CAAC,gBAAgB,CAAC,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChE,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,eAAe,WAAW,CAAC"}
@@ -0,0 +1,152 @@
1
+ /**
2
+ * Authentication Configuration
3
+ * Configuration for multi-provider authentication (Anthropic, OpenAI, Google, Cursor).
4
+ * Supports Claude subscription, API keys, and OAuth flows.
5
+ *
6
+ * Copyright (c) 2025 Dobeu Tech Solutions LLC
7
+ * Licensed under CC BY-NC 4.0
8
+ */
9
+ import type { ProviderName } from './provider-config.js';
10
+ /**
11
+ * Authentication method types
12
+ * - subscription: Subscription-based auth (Claude.ai, OpenAI Plus, etc.) via OAuth
13
+ * - api_key: API key from provider console
14
+ * - oauth: OAuth 2.0 flow
15
+ */
16
+ export type AuthMethod = 'api_key' | 'subscription' | 'oauth';
17
+ /**
18
+ * Authentication source - how credentials were obtained
19
+ */
20
+ export type AuthSource = 'oauth' | 'auto-detect' | 'manual';
21
+ /**
22
+ * Subscription tier levels
23
+ */
24
+ export type SubscriptionTier = 'free' | 'pro' | 'max' | 'team' | 'enterprise';
25
+ /**
26
+ * User credentials interface
27
+ */
28
+ export interface UserCredentials {
29
+ method: AuthMethod;
30
+ source?: AuthSource;
31
+ apiKey?: string;
32
+ subscriptionKey?: string;
33
+ accessToken?: string;
34
+ refreshToken?: string;
35
+ expiresAt?: number;
36
+ userId?: string;
37
+ email?: string;
38
+ tier?: SubscriptionTier;
39
+ }
40
+ /**
41
+ * Auth session state
42
+ */
43
+ export interface AuthSession {
44
+ isAuthenticated: boolean;
45
+ credentials: UserCredentials | null;
46
+ lastValidated: number | null;
47
+ }
48
+ /**
49
+ * Auth configuration interface
50
+ */
51
+ export interface AuthConfig {
52
+ /** Path to store credentials */
53
+ credentialsPath: string;
54
+ /** Path to store session info */
55
+ sessionPath: string;
56
+ /** Config directory */
57
+ configDir: string;
58
+ /** Claude.ai subscription OAuth endpoints */
59
+ oauth: {
60
+ authorizationUrl: string;
61
+ tokenUrl: string;
62
+ clientId: string;
63
+ redirectUri: string;
64
+ scopes: string[];
65
+ };
66
+ /** Paths to check for Claude Code credentials (auto-detection) */
67
+ claudeCodePaths: string[];
68
+ /** Token validation settings */
69
+ validation: {
70
+ /** How often to revalidate credentials (ms) */
71
+ revalidateInterval: number;
72
+ /** Grace period before token expiry to refresh (ms) */
73
+ refreshGracePeriod: number;
74
+ };
75
+ /** Supported authentication methods */
76
+ supportedMethods: AuthMethod[];
77
+ }
78
+ /**
79
+ * Default authentication configuration
80
+ */
81
+ export declare const authConfig: AuthConfig;
82
+ /**
83
+ * Environment variable names for auth (legacy - Anthropic only)
84
+ */
85
+ export declare const AUTH_ENV_VARS: {
86
+ readonly API_KEY: "ANTHROPIC_API_KEY";
87
+ readonly SUBSCRIPTION_KEY: "ANTHROPIC_SUBSCRIPTION_KEY";
88
+ readonly ACCESS_TOKEN: "ANTHROPIC_ACCESS_TOKEN";
89
+ };
90
+ /**
91
+ * Environment variable names per provider
92
+ */
93
+ export declare const PROVIDER_ENV_VARS: Record<ProviderName, {
94
+ API_KEY: string;
95
+ SUBSCRIPTION_KEY?: string;
96
+ ACCESS_TOKEN?: string;
97
+ }>;
98
+ /**
99
+ * Provider-specific credentials
100
+ */
101
+ export interface ProviderCredentials {
102
+ enabled: boolean;
103
+ method: AuthMethod;
104
+ source: AuthSource | null;
105
+ apiKey?: string;
106
+ accessToken?: string;
107
+ refreshToken?: string;
108
+ expiresAt?: number;
109
+ organizationId?: string;
110
+ projectId?: string;
111
+ email?: string;
112
+ tier?: string;
113
+ }
114
+ /**
115
+ * Multi-provider credentials store (v2.0)
116
+ */
117
+ export interface MultiProviderCredentials {
118
+ version: string;
119
+ default_provider: ProviderName;
120
+ providers: Partial<Record<ProviderName, ProviderCredentials>>;
121
+ preferences: {
122
+ cost_tracking: boolean;
123
+ monthly_budget_usd: number;
124
+ prefer_subscription: boolean;
125
+ };
126
+ }
127
+ /**
128
+ * Default multi-provider credentials structure
129
+ */
130
+ export declare const DEFAULT_MULTI_PROVIDER_CREDENTIALS: MultiProviderCredentials;
131
+ /**
132
+ * Check if credentials are in v2 (multi-provider) format
133
+ */
134
+ export declare function isMultiProviderCredentials(data: unknown): data is MultiProviderCredentials;
135
+ /**
136
+ * Migrate v1 credentials to v2 format
137
+ */
138
+ export declare function migrateToMultiProvider(v1Credentials: UserCredentials): MultiProviderCredentials;
139
+ /**
140
+ * Get the credentials file path
141
+ */
142
+ export declare function getCredentialsPath(): string;
143
+ /**
144
+ * Get the session file path
145
+ */
146
+ export declare function getSessionPath(): string;
147
+ /**
148
+ * Get the config directory path
149
+ */
150
+ export declare function getConfigDir(): string;
151
+ export default authConfig;
152
+ //# sourceMappingURL=auth-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-config.d.ts","sourceRoot":"","sources":["../../src/config/auth-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Authentication Configuration
3
+ * Configuration for multi-provider authentication (Anthropic, OpenAI, Google, Cursor).
4
+ * Supports Claude subscription, API keys, and OAuth flows.
5
+ *
6
+ * Copyright (c) 2025 Dobeu Tech Solutions LLC
7
+ * Licensed under CC BY-NC 4.0
8
+ */
9
+ import { join } from 'path';
10
+ import { homedir } from 'os';
11
+ // Get user's home config directory
12
+ const configDir = join(homedir(), '.monty');
13
+ /**
14
+ * Default authentication configuration
15
+ */
16
+ export const authConfig = {
17
+ credentialsPath: join(configDir, 'credentials.json'),
18
+ sessionPath: join(configDir, 'session.json'),
19
+ configDir,
20
+ oauth: {
21
+ // Claude.ai subscription OAuth endpoints
22
+ authorizationUrl: 'https://claude.ai/oauth/authorize',
23
+ tokenUrl: 'https://claude.ai/oauth/token',
24
+ clientId: 'monty-autonomous-fullstack-dev-multillm',
25
+ redirectUri: 'http://localhost:9876/callback',
26
+ scopes: ['subscription', 'agent'],
27
+ },
28
+ // Claude Code credential paths for auto-detection
29
+ claudeCodePaths: [
30
+ join(homedir(), '.config', 'claude-code', 'auth.json'), // Linux/Windows standard
31
+ join(homedir(), '.claude', 'credentials.json'), // Alternative location
32
+ join(homedir(), '.claude', 'auth.json'), // Alternative location
33
+ ],
34
+ validation: {
35
+ revalidateInterval: 24 * 60 * 60 * 1000, // 24 hours
36
+ refreshGracePeriod: 5 * 60 * 1000, // 5 minutes
37
+ },
38
+ supportedMethods: ['api_key', 'subscription'],
39
+ };
40
+ /**
41
+ * Environment variable names for auth (legacy - Anthropic only)
42
+ */
43
+ export const AUTH_ENV_VARS = {
44
+ API_KEY: 'ANTHROPIC_API_KEY',
45
+ SUBSCRIPTION_KEY: 'ANTHROPIC_SUBSCRIPTION_KEY',
46
+ ACCESS_TOKEN: 'ANTHROPIC_ACCESS_TOKEN',
47
+ };
48
+ /**
49
+ * Environment variable names per provider
50
+ */
51
+ export const PROVIDER_ENV_VARS = {
52
+ anthropic: {
53
+ API_KEY: 'ANTHROPIC_API_KEY',
54
+ SUBSCRIPTION_KEY: 'ANTHROPIC_SUBSCRIPTION_KEY',
55
+ ACCESS_TOKEN: 'ANTHROPIC_ACCESS_TOKEN',
56
+ },
57
+ openai: {
58
+ API_KEY: 'OPENAI_API_KEY',
59
+ ACCESS_TOKEN: 'OPENAI_ACCESS_TOKEN',
60
+ },
61
+ google: {
62
+ API_KEY: 'GOOGLE_API_KEY',
63
+ ACCESS_TOKEN: 'GOOGLE_ACCESS_TOKEN',
64
+ },
65
+ cursor: {
66
+ API_KEY: 'CURSOR_API_KEY',
67
+ },
68
+ };
69
+ /**
70
+ * Default multi-provider credentials structure
71
+ */
72
+ export const DEFAULT_MULTI_PROVIDER_CREDENTIALS = {
73
+ version: '2.0.0',
74
+ default_provider: 'anthropic',
75
+ providers: {},
76
+ preferences: {
77
+ cost_tracking: true,
78
+ monthly_budget_usd: 100,
79
+ prefer_subscription: true,
80
+ },
81
+ };
82
+ /**
83
+ * Check if credentials are in v2 (multi-provider) format
84
+ */
85
+ export function isMultiProviderCredentials(data) {
86
+ if (typeof data !== 'object' || data === null)
87
+ return false;
88
+ const obj = data;
89
+ return (typeof obj.version === 'string' &&
90
+ obj.version.startsWith('2.') &&
91
+ typeof obj.providers === 'object');
92
+ }
93
+ /**
94
+ * Migrate v1 credentials to v2 format
95
+ */
96
+ export function migrateToMultiProvider(v1Credentials) {
97
+ return {
98
+ version: '2.0.0',
99
+ default_provider: 'anthropic',
100
+ providers: {
101
+ anthropic: {
102
+ enabled: true,
103
+ method: v1Credentials.method,
104
+ source: v1Credentials.source ?? null,
105
+ apiKey: v1Credentials.apiKey,
106
+ accessToken: v1Credentials.accessToken ?? v1Credentials.subscriptionKey,
107
+ refreshToken: v1Credentials.refreshToken,
108
+ expiresAt: v1Credentials.expiresAt,
109
+ email: v1Credentials.email,
110
+ tier: v1Credentials.tier,
111
+ },
112
+ },
113
+ preferences: {
114
+ cost_tracking: true,
115
+ monthly_budget_usd: 100,
116
+ prefer_subscription: v1Credentials.method === 'subscription',
117
+ },
118
+ };
119
+ }
120
+ /**
121
+ * Get the credentials file path
122
+ */
123
+ export function getCredentialsPath() {
124
+ return authConfig.credentialsPath;
125
+ }
126
+ /**
127
+ * Get the session file path
128
+ */
129
+ export function getSessionPath() {
130
+ return authConfig.sessionPath;
131
+ }
132
+ /**
133
+ * Get the config directory path
134
+ */
135
+ export function getConfigDir() {
136
+ return authConfig.configDir;
137
+ }
138
+ export default authConfig;
139
+ //# sourceMappingURL=auth-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-config.js","sourceRoot":"","sources":["../../src/config/auth-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * MCP (Model Context Protocol) Configuration (Feature A4)
3
+ * Settings for browser automation, GitHub, database, and other integrations
4
+ *
5
+ * Copyright (c) 2025 Dobeu Tech Solutions LLC
6
+ * Licensed under CC BY-NC 4.0
7
+ */
8
+ /**
9
+ * MCP Server types
10
+ */
11
+ export type MCPTransportType = 'stdio' | 'sse' | 'sdk';
12
+ /**
13
+ * Base MCP server configuration
14
+ */
15
+ export interface MCPServerBase {
16
+ name: string;
17
+ description: string;
18
+ enabled: boolean;
19
+ type: MCPTransportType;
20
+ }
21
+ /**
22
+ * Stdio MCP server (external process)
23
+ */
24
+ export interface StdioMCPServer extends MCPServerBase {
25
+ type: 'stdio';
26
+ command: string;
27
+ args: string[];
28
+ env?: Record<string, string>;
29
+ }
30
+ /**
31
+ * SSE MCP server (remote HTTP)
32
+ */
33
+ export interface SSEMCPServer extends MCPServerBase {
34
+ type: 'sse';
35
+ url: string;
36
+ headers?: Record<string, string>;
37
+ }
38
+ /**
39
+ * All MCP server types
40
+ */
41
+ export type MCPServer = StdioMCPServer | SSEMCPServer;
42
+ /**
43
+ * Browser automation config
44
+ */
45
+ export interface BrowserConfig {
46
+ defaultTimeout: number;
47
+ headless: boolean;
48
+ viewport: {
49
+ width: number;
50
+ height: number;
51
+ };
52
+ screenshotDir: string;
53
+ }
54
+ /**
55
+ * Full MCP configuration
56
+ */
57
+ export interface MCPConfig {
58
+ browser: BrowserConfig;
59
+ servers: Record<string, MCPServer>;
60
+ }
61
+ /**
62
+ * Playwright MCP Server - Browser automation
63
+ */
64
+ export declare const playwrightServer: StdioMCPServer;
65
+ /**
66
+ * GitHub MCP Server - Repository management
67
+ */
68
+ export declare const githubServer: StdioMCPServer;
69
+ /**
70
+ * Filesystem MCP Server - Advanced file operations
71
+ */
72
+ export declare const filesystemServer: StdioMCPServer;
73
+ /**
74
+ * PostgreSQL MCP Server - Database operations
75
+ */
76
+ export declare const postgresServer: StdioMCPServer;
77
+ /**
78
+ * Slack MCP Server - Notifications
79
+ */
80
+ export declare const slackServer: SSEMCPServer;
81
+ /**
82
+ * Default MCP configuration
83
+ */
84
+ export declare const mcpConfig: MCPConfig;
85
+ /**
86
+ * Get enabled MCP servers for SDK
87
+ */
88
+ export declare function getEnabledServersForSDK(): Record<string, object>;
89
+ /**
90
+ * Enable/disable MCP server
91
+ */
92
+ export declare function setServerEnabled(serverName: string, enabled: boolean): boolean;
93
+ /**
94
+ * Check if required environment variables are set for a server
95
+ */
96
+ export declare function checkServerRequirements(serverName: string): {
97
+ ready: boolean;
98
+ missing: string[];
99
+ };
100
+ /**
101
+ * Get browser automation instructions for the agent prompt
102
+ */
103
+ export declare function getBrowserInstructions(): string;
104
+ /**
105
+ * Get MCP servers summary for logging
106
+ */
107
+ export declare function getMCPSummary(): string;
108
+ export default mcpConfig;
109
+ //# sourceMappingURL=mcp-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-config.d.ts","sourceRoot":"","sources":["../../src/config/mcp-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,YAAY,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,cAO9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,cAU1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,cAO9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,cAU5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,YASzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,SAiBvB,CAAC;AAEF;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA0DhE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAM9E;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG;IAC3D,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CA+BA;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAsB/C;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAWtC;AAED,eAAe,SAAS,CAAC"}