midas-mcp 3.2.0 → 3.4.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 (48) hide show
  1. package/dist/analyzer.d.ts.map +1 -1
  2. package/dist/analyzer.js +93 -49
  3. package/dist/analyzer.js.map +1 -1
  4. package/dist/docs/DEPLOYMENT.md +190 -0
  5. package/dist/index.js +4 -0
  6. package/dist/index.js.map +1 -1
  7. package/dist/monitoring.d.ts +97 -0
  8. package/dist/monitoring.d.ts.map +1 -0
  9. package/dist/monitoring.js +258 -0
  10. package/dist/monitoring.js.map +1 -0
  11. package/dist/prompts/grow.d.ts.map +1 -1
  12. package/dist/prompts/grow.js +155 -47
  13. package/dist/prompts/grow.js.map +1 -1
  14. package/dist/providers.d.ts.map +1 -1
  15. package/dist/providers.js +77 -15
  16. package/dist/providers.js.map +1 -1
  17. package/dist/server.d.ts.map +1 -1
  18. package/dist/server.js +21 -3
  19. package/dist/server.js.map +1 -1
  20. package/dist/state/phase.d.ts +19 -4
  21. package/dist/state/phase.d.ts.map +1 -1
  22. package/dist/state/phase.js +19 -10
  23. package/dist/state/phase.js.map +1 -1
  24. package/dist/tools/analyze.d.ts.map +1 -1
  25. package/dist/tools/analyze.js +21 -9
  26. package/dist/tools/analyze.js.map +1 -1
  27. package/dist/tools/completeness.d.ts +36 -0
  28. package/dist/tools/completeness.d.ts.map +1 -0
  29. package/dist/tools/completeness.js +838 -0
  30. package/dist/tools/completeness.js.map +1 -0
  31. package/dist/tools/grow.d.ts +157 -0
  32. package/dist/tools/grow.d.ts.map +1 -0
  33. package/dist/tools/grow.js +532 -0
  34. package/dist/tools/grow.js.map +1 -0
  35. package/dist/tools/index.d.ts +3 -0
  36. package/dist/tools/index.d.ts.map +1 -1
  37. package/dist/tools/index.js +6 -0
  38. package/dist/tools/index.js.map +1 -1
  39. package/dist/tools/validate.d.ts +60 -0
  40. package/dist/tools/validate.d.ts.map +1 -0
  41. package/dist/tools/validate.js +234 -0
  42. package/dist/tools/validate.js.map +1 -0
  43. package/dist/tools/verify.d.ts +4 -4
  44. package/dist/tui.d.ts.map +1 -1
  45. package/dist/tui.js +66 -12
  46. package/dist/tui.js.map +1 -1
  47. package/docs/DEPLOYMENT.md +190 -0
  48. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAiD,MAAM,kBAAkB,CAAC;AAkG7F;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,YAAY,GAAE,MAAY,GACzB,OAAO,CAAC,MAAM,CAAC,CAejB;AAiED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,KAAK,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA8LlF;AAMD;;;GAGG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/D,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC,CAmBD;AAMD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,CAAC,CAyF3B"}
1
+ {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAiD,MAAM,kBAAkB,CAAC;AAkG7F;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,YAAY,GAAE,MAAY,GACzB,OAAO,CAAC,MAAM,CAAC,CAejB;AAiED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,KAAK,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAyOlF;AAMD;;;GAGG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/D,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC,CAmBD;AAMD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,CAAC,CAyF3B"}
package/dist/analyzer.js CHANGED
@@ -213,81 +213,125 @@ export async function analyzeProject(projectPath) {
213
213
  const errorContext = unresolvedErrors.length > 0
214
214
  ? unresolvedErrors.slice(0, 3).map(e => `- ${e.error.slice(0, 100)}${e.fixAttempts.length > 0 ? ` (tried ${e.fixAttempts.length}x)` : ''}`).join('\n')
215
215
  : 'No unresolved errors';
216
- // Context stacking: STABLE FIRST (high attention at beginning)
217
- // Then PROJECT CONTEXT (middle, lower attention)
218
- // Then RECENT ACTIVITY LAST (high attention at end)
219
- const prompt = `# GOLDEN CODE METHODOLOGY (Stable Context - Beginning)
216
+ // =========================================================================
217
+ // OPTIMIZED CONTEXT STACKING FOR MAXIMUM CACHE HITS
218
+ // =========================================================================
219
+ // System prompt (CACHED - 90% savings on repeated calls):
220
+ // - Full methodology (stable across ALL calls)
221
+ // - Response format instructions (stable)
222
+ // - Project conventions (stable per project)
223
+ //
224
+ // User prompt (NOT cached - keep minimal):
225
+ // - Current state (dynamic)
226
+ // - Recent errors (dynamic)
227
+ // - Recent activity (dynamic)
228
+ // =========================================================================
229
+ // SYSTEM PROMPT - Large, stable content (will be cached)
230
+ const systemPrompt = `You are Midas, a Golden Code coach. You analyze projects and determine their exact phase in the development lifecycle.
220
231
 
221
- ## The 4 Phases with Steps:
222
- PLAN (Planning): IDEA → RESEARCH → BRAINLIFT → PRD → GAMEPLAN
223
- BUILD (7-step cycle): RULES → INDEX → READ → RESEARCH → IMPLEMENT → TEST → DEBUG
224
- SHIP: REVIEW → DEPLOY → MONITOR
225
- GROW: FEEDBACK → ANALYZE → ITERATE
232
+ # GOLDEN CODE METHODOLOGY (Stable Reference)
226
233
 
227
- ## Current State (from Midas tracking):
234
+ ## The 4 Development Phases:
235
+
236
+ ### PLAN (Planning Phase)
237
+ Steps: IDEA → RESEARCH → BRAINLIFT → PRD → GAMEPLAN
238
+ Purpose: Understand the problem before writing code.
239
+ - IDEA: Capture the core concept and motivation
240
+ - RESEARCH: Study existing solutions, dependencies, constraints
241
+ - BRAINLIFT: Extract key decisions and mental models
242
+ - PRD: Define requirements, scope, success criteria
243
+ - GAMEPLAN: Break into ordered implementation tasks
244
+
245
+ ### BUILD (Implementation Phase)
246
+ Steps: RULES → INDEX → READ → RESEARCH → IMPLEMENT → TEST → DEBUG
247
+ Purpose: Code methodically with verification at each step.
248
+ - RULES: Set up .cursorrules with project conventions
249
+ - INDEX: Understand codebase structure
250
+ - READ: Study relevant existing code
251
+ - RESEARCH: Look up APIs, patterns, best practices
252
+ - IMPLEMENT: Write the code
253
+ - TEST: Verify with automated tests
254
+ - DEBUG: Fix any issues (use Tornado if stuck)
255
+
256
+ ### SHIP (Deployment Phase)
257
+ Steps: REVIEW → DEPLOY → MONITOR
258
+ Purpose: Get code into production safely.
259
+ - REVIEW: Code review, security audit, performance check
260
+ - DEPLOY: Push to production with proper CI/CD
261
+ - MONITOR: Watch for errors, performance issues
262
+
263
+ ### GROW (Iteration Phase)
264
+ Steps: MONITOR → COLLECT → TRIAGE → RETROSPECT → PLAN_NEXT → LOOP
265
+ Purpose: Learn from production and improve.
266
+ - MONITOR: Track error rates, performance, engagement
267
+ - COLLECT: Gather user feedback, bug reports
268
+ - TRIAGE: Prioritize by impact/effort
269
+ - RETROSPECT: What worked, what didn't
270
+ - PLAN_NEXT: Define next iteration scope
271
+ - LOOP: Return to PLAN with new context
272
+
273
+ ## Key Rules:
274
+ 1. GATES MUST PASS: Build, tests, and lint must pass before advancing
275
+ 2. TORNADO DEBUGGING: If stuck on same error 3+ times, use Research + Logs + Tests
276
+ 3. ONE TASK PER PROMPT: Each suggested prompt should be specific and actionable
277
+ 4. ERRORS FIRST: If gates are failing, the next action MUST fix them
278
+
279
+ ## Response Format:
280
+ Respond ONLY with valid JSON matching this schema:
281
+ {
282
+ "phase": "EAGLE_SIGHT" | "BUILD" | "SHIP" | "GROW" | "IDLE",
283
+ "step": "step name within phase",
284
+ "summary": "one-line project summary",
285
+ "techStack": ["detected", "technologies"],
286
+ "whatsDone": ["completed item 1", "completed item 2"],
287
+ "whatsNext": "specific next action description",
288
+ "suggestedPrompt": "exact actionable prompt for Cursor",
289
+ "confidence": 0-100
290
+ }`;
291
+ // USER PROMPT - Minimal, dynamic content only (NOT cached)
292
+ const userPrompt = `# CURRENT PROJECT STATE
293
+
294
+ ## Midas Tracking:
228
295
  - Phase: ${currentState.current.phase}${('step' in currentState.current) ? ` → ${currentState.current.step}` : ''}
229
296
  - Confidence: ${tracker.confidence}%
230
297
  - Gates: ${gatesStatus.allPass ? 'ALL PASS' : gatesStatus.failing.length > 0 ? `FAILING: ${gatesStatus.failing.join(', ')}` : 'Not yet run'}
231
298
 
299
+ ## Unresolved Errors:
300
+ ${errorContext}
301
+
302
+ ## Recent Activity:
303
+ ${activityContext}
304
+
232
305
  ---
233
306
 
234
- # PROJECT CONTEXT (Middle - Architecture/Docs)
307
+ # PROJECT STRUCTURE
235
308
 
236
- ## Project Files (${files.length} total):
309
+ ## Files (${files.length} total):
237
310
  ${fileList}
238
311
 
239
312
  ## Planning Docs:
240
313
  - brainlift.md: ${hasbrainlift ? 'exists' : 'missing'}
241
- - prd.md: ${hasPrd ? 'exists' : 'missing'}
314
+ - prd.md: ${hasPrd ? 'exists' : 'missing'}
242
315
  - gameplan.md: ${hasGameplan ? 'exists' : 'missing'}
243
316
 
244
- ${brainliftContent ? `brainlift.md preview:\n${brainliftContent.slice(0, 300)}` : ''}
317
+ ${brainliftContent ? `brainlift.md preview:\n${brainliftContent.slice(0, 200)}` : ''}
245
318
 
246
319
  ## Infrastructure:
247
320
  - Tests: ${hasTests ? 'yes' : 'no'}
248
321
  - Dockerfile/compose: ${hasDockerfile ? 'yes' : 'no'}
249
322
  - CI/CD: ${hasCI ? 'yes' : 'no'}
250
323
 
251
- ## Code Samples:
252
- ${codeSamples || 'No code files yet'}
253
-
254
- ---
324
+ ## Recent Code (samples):
325
+ ${(codeSamples || 'No code files yet').slice(0, 500)}
255
326
 
256
- # RECENT CONTEXT (End - High Attention)
257
-
258
- ## Unresolved Errors:
259
- ${errorContext}
260
-
261
- ## Recent Activity:
262
- ${activityContext}
263
-
264
- ## Journal (Most Recent Conversations):
265
- ${journalContext}
327
+ ## Recent Conversations:
328
+ ${journalContext.slice(0, 400)}
266
329
 
267
330
  ---
268
331
 
269
- Based on ALL evidence above, determine:
270
- 1. Verify/adjust the current phase and step
271
- 2. What's completed
272
- 3. What's the single most important next action
273
- 4. Specific prompt for Cursor (actionable, one task)
274
-
275
- CRITICAL: If gates are failing (build/tests/lint), the next action MUST be to fix them.
276
- If there are unresolved errors with multiple fix attempts, suggest Tornado debugging.
277
-
278
- Respond ONLY with valid JSON:
279
- {
280
- "phase": "EAGLE_SIGHT" | "BUILD" | "SHIP" | "GROW" | "IDLE",
281
- "step": "step name",
282
- "summary": "one-line project summary",
283
- "techStack": ["tech1", "tech2"],
284
- "whatsDone": ["done1", "done2"],
285
- "whatsNext": "specific next action",
286
- "suggestedPrompt": "exact prompt to paste in Cursor",
287
- "confidence": 0-100
288
- }`;
332
+ Analyze this project and provide the JSON response.`;
289
333
  try {
290
- const response = await callAI(prompt, 'You are Midas, a Golden Code coach. Analyze projects and determine their exact phase in the development lifecycle. Be specific and actionable. Respond only with valid JSON.');
334
+ const response = await callAI(userPrompt, systemPrompt);
291
335
  // Parse JSON from response
292
336
  let jsonStr = response;
293
337
  if (response.includes('```')) {
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,190 @@
1
+ # Deployment Checklist
2
+
3
+ Pre-flight checks, environment validation, and rollback procedures.
4
+
5
+ ## Pre-Flight Checklist
6
+
7
+ Before every deployment, verify:
8
+
9
+ ### 1. Code Quality Gates
10
+
11
+ ```bash
12
+ # All must pass before deploy
13
+ npm run build # TypeScript compiles
14
+ npm run test # Tests pass
15
+ npm run lint # No lint errors
16
+ ```
17
+
18
+ ### 2. Security Audit
19
+
20
+ - [ ] No API keys in code (`git log -p | grep -i "api_key\|secret\|password"`)
21
+ - [ ] Dependencies checked (`npm audit`)
22
+ - [ ] Sensitive files in `.gitignore`
23
+ - [ ] Rate limiting configured
24
+ - [ ] Input validation on all endpoints
25
+
26
+ ### 3. Environment Variables
27
+
28
+ Required for production:
29
+
30
+ ```bash
31
+ # Core
32
+ ANTHROPIC_API_KEY= # Required for AI features
33
+ NODE_ENV=production # Must be 'production'
34
+
35
+ # Optional providers
36
+ OPENAI_API_KEY= # If using OpenAI
37
+ GOOGLE_API_KEY= # If using Gemini
38
+ XAI_API_KEY= # If using Grok
39
+ ```
40
+
41
+ Verify with:
42
+
43
+ ```bash
44
+ node -e "require('./dist/config.js').getApiKey() ? console.log('OK') : console.error('MISSING')"
45
+ ```
46
+
47
+ ### 4. Version Bump
48
+
49
+ ```bash
50
+ # Bump version appropriately
51
+ npm version patch # Bug fixes
52
+ npm version minor # New features
53
+ npm version major # Breaking changes
54
+
55
+ # Verify
56
+ cat package.json | grep version
57
+ ```
58
+
59
+ ### 5. Changelog Updated
60
+
61
+ Ensure `CHANGELOG.md` reflects:
62
+
63
+ - What changed
64
+ - Breaking changes (if any)
65
+ - Migration steps (if needed)
66
+
67
+ ## Deployment Steps
68
+
69
+ ### NPM Publish
70
+
71
+ ```bash
72
+ # 1. Verify you're logged in
73
+ npm whoami
74
+
75
+ # 2. Dry run first
76
+ npm publish --dry-run
77
+
78
+ # 3. Publish
79
+ npm publish
80
+
81
+ # 4. Verify on npm
82
+ npm view midas-mcp
83
+ ```
84
+
85
+ ### Post-Deploy Verification
86
+
87
+ ```bash
88
+ # Install fresh and test
89
+ npm install -g midas-mcp@latest
90
+ midas-mcp --version
91
+ midas-mcp status
92
+ ```
93
+
94
+ ## Rollback Procedures
95
+
96
+ ### NPM Rollback
97
+
98
+ ```bash
99
+ # Unpublish broken version (within 72 hours only)
100
+ npm unpublish midas-mcp@x.y.z
101
+
102
+ # Or deprecate
103
+ npm deprecate midas-mcp@x.y.z "Critical bug, use x.y.z-1"
104
+ ```
105
+
106
+ ### Git Rollback
107
+
108
+ ```bash
109
+ # Revert to last known good
110
+ git revert HEAD
111
+ git push
112
+
113
+ # Or hard reset (destructive)
114
+ git reset --hard <last-good-commit>
115
+ git push --force
116
+ ```
117
+
118
+ ## Health Checks
119
+
120
+ ### Local Validation
121
+
122
+ ```bash
123
+ # Check MCP server starts
124
+ node dist/index.js &
125
+ PID=$!
126
+ sleep 2
127
+ kill $PID 2>/dev/null && echo "Server started OK" || echo "FAILED"
128
+ ```
129
+
130
+ ### TUI Validation
131
+
132
+ ```bash
133
+ # Check TUI renders
134
+ echo 'q' | timeout 5 midas-mcp tui && echo "TUI OK" || echo "TUI FAILED"
135
+ ```
136
+
137
+ ## Monitoring Integration
138
+
139
+ ### Error Tracking (Sentry)
140
+
141
+ If configured:
142
+
143
+ ```typescript
144
+ import * as Sentry from '@sentry/node';
145
+
146
+ Sentry.init({
147
+ dsn: process.env.SENTRY_DSN,
148
+ environment: process.env.NODE_ENV,
149
+ release: require('../package.json').version,
150
+ });
151
+ ```
152
+
153
+ ### Metrics Export (OpenTelemetry)
154
+
155
+ ```typescript
156
+ import { metrics } from '@opentelemetry/api';
157
+
158
+ const meter = metrics.getMeter('midas-mcp');
159
+ const analysisCounter = meter.createCounter('midas.analysis.count');
160
+ const analysisLatency = meter.createHistogram('midas.analysis.latency');
161
+ ```
162
+
163
+ ## Canary Deployment
164
+
165
+ For critical updates:
166
+
167
+ 1. Publish as `next` tag: `npm publish --tag next`
168
+ 2. Test on staging projects
169
+ 3. Monitor for 24 hours
170
+ 4. Promote: `npm dist-tag add midas-mcp@x.y.z latest`
171
+
172
+ ## Emergency Procedures
173
+
174
+ ### Critical Bug in Production
175
+
176
+ 1. **Stop the bleeding**: Deprecate broken version immediately
177
+ 2. **Communicate**: Update README with known issue
178
+ 3. **Fix**: Create hotfix branch, minimal change only
179
+ 4. **Test**: Full test suite + manual verification
180
+ 5. **Deploy**: Publish patch version
181
+ 6. **Verify**: Monitor for 1 hour post-deploy
182
+ 7. **Retrospect**: Document what went wrong
183
+
184
+ ### API Key Leaked
185
+
186
+ 1. Immediately rotate the key at provider dashboard
187
+ 2. Update `~/.midas/config.json` with new key
188
+ 3. Audit git history: `git filter-branch` or BFG
189
+ 4. Force push cleaned history
190
+ 5. Notify affected users if applicable
package/dist/index.js CHANGED
@@ -3,6 +3,9 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
3
3
  import { createServer } from './server.js';
4
4
  import { runCLI } from './cli.js';
5
5
  import { runInteractive } from './tui.js';
6
+ import { initMonitoring, captureError } from './monitoring.js';
7
+ // Initialize monitoring on startup (no-op if not configured)
8
+ initMonitoring();
6
9
  async function startMCPServer() {
7
10
  const server = createServer();
8
11
  const transport = new StdioServerTransport();
@@ -25,6 +28,7 @@ async function main() {
25
28
  }
26
29
  }
27
30
  main().catch((error) => {
31
+ captureError(error, { tool: 'main' });
28
32
  console.error('Fatal error:', error);
29
33
  process.exit(1);
30
34
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,KAAK,UAAU,cAAc;IAC3B,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAE5B,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,cAAc,EAAE,CAAC;YACvB,MAAM;QACR,KAAK,aAAa;YAChB,MAAM,cAAc,EAAE,CAAC;YACvB,MAAM;IACV,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/D,6DAA6D;AAC7D,cAAc,EAAE,CAAC;AAEjB,KAAK,UAAU,cAAc;IAC3B,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAE5B,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,cAAc,EAAE,CAAC;YACvB,MAAM;QACR,KAAK,aAAa;YAChB,MAAM,cAAc,EAAE,CAAC;YACvB,MAAM;IACV,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,YAAY,CAAC,KAAc,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Production Monitoring Integration
3
+ *
4
+ * Provides hooks for:
5
+ * - Error tracking (Sentry)
6
+ * - Observability (OpenTelemetry)
7
+ * - Custom metrics
8
+ *
9
+ * These are optional integrations - if the libraries aren't installed,
10
+ * the hooks gracefully degrade to no-ops.
11
+ */
12
+ interface ErrorContext {
13
+ phase?: string;
14
+ step?: string;
15
+ tool?: string;
16
+ projectPath?: string;
17
+ userId?: string;
18
+ extra?: Record<string, unknown>;
19
+ }
20
+ interface MetricTags {
21
+ provider?: string;
22
+ phase?: string;
23
+ cached?: boolean;
24
+ [key: string]: string | boolean | number | undefined;
25
+ }
26
+ /**
27
+ * Initialize Sentry if SENTRY_DSN is set
28
+ *
29
+ * Sentry cost estimate (free tier):
30
+ * - 5,000 errors/month free
31
+ * - 10,000 performance samples/month free
32
+ * - Beyond free: ~$0.000029 per error
33
+ *
34
+ * MAX MONTHLY COST: ~$15 at 500k errors (extreme case)
35
+ * Expected: $0 (well under free tier for dev tools)
36
+ */
37
+ export declare function initSentry(): boolean;
38
+ /**
39
+ * Capture an error with context
40
+ */
41
+ export declare function captureError(error: Error, context?: ErrorContext): void;
42
+ /**
43
+ * Add a breadcrumb for debugging context
44
+ */
45
+ export declare function addBreadcrumb(message: string, category: string, data?: Record<string, unknown>): void;
46
+ /**
47
+ * Initialize OpenTelemetry metrics if OTEL_EXPORTER_OTLP_ENDPOINT is set
48
+ *
49
+ * OpenTelemetry is free (self-hosted) or pay-per-use with vendors:
50
+ * - Datadog: ~$0.10 per million custom metrics
51
+ * - Grafana Cloud: 10k series free, then ~$8/1k series
52
+ * - Self-hosted: Infrastructure costs only
53
+ *
54
+ * MAX MONTHLY COST: ~$10 at typical usage
55
+ */
56
+ export declare function initOpenTelemetry(): boolean;
57
+ /**
58
+ * Record an analysis event
59
+ */
60
+ export declare function recordAnalysis(latencyMs: number, tags?: MetricTags): void;
61
+ /**
62
+ * Record token usage
63
+ */
64
+ export declare function recordTokens(inputTokens: number, outputTokens: number, tags?: MetricTags): void;
65
+ /**
66
+ * Initialize all monitoring integrations
67
+ * Call this once at startup
68
+ */
69
+ export declare function initMonitoring(): {
70
+ sentry: boolean;
71
+ otel: boolean;
72
+ };
73
+ /**
74
+ * Wrap an async function with error tracking
75
+ */
76
+ export declare function withErrorTracking<T>(fn: () => Promise<T>, context?: ErrorContext): Promise<T>;
77
+ /**
78
+ * Create a timed operation for metrics
79
+ */
80
+ export declare function startTimer(): {
81
+ end: (tags?: MetricTags) => number;
82
+ };
83
+ /**
84
+ * Health check for monitoring systems
85
+ */
86
+ export declare function getMonitoringHealth(): {
87
+ sentry: {
88
+ initialized: boolean;
89
+ configured: boolean;
90
+ };
91
+ otel: {
92
+ initialized: boolean;
93
+ configured: boolean;
94
+ };
95
+ };
96
+ export {};
97
+ //# sourceMappingURL=monitoring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitoring.d.ts","sourceRoot":"","sources":["../src/monitoring.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,UAAU,UAAU;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;CACtD;AASD;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAuCpC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,CAqBvE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAgBrG;AAcD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAgD3C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAkBzE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAgB/F;AAMD;;;GAGG;AACH,wBAAgB,cAAc,IAAI;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CASnE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,CAAC,CAAC,CAKZ;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI;IAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,KAAK,MAAM,CAAA;CAAE,CASnE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI;IACrC,MAAM,EAAE;QAAE,WAAW,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC;IACtD,IAAI,EAAE;QAAE,WAAW,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC;CACrD,CAWA"}