midas-mcp 3.0.0 → 3.3.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 (118) hide show
  1. package/LICENSE +21 -0
  2. package/dist/ai.d.ts +2 -0
  3. package/dist/ai.d.ts.map +1 -1
  4. package/dist/ai.js +28 -45
  5. package/dist/ai.js.map +1 -1
  6. package/dist/analyzer.d.ts.map +1 -1
  7. package/dist/analyzer.js +129 -135
  8. package/dist/analyzer.js.map +1 -1
  9. package/dist/config.d.ts +16 -0
  10. package/dist/config.d.ts.map +1 -1
  11. package/dist/config.js +109 -15
  12. package/dist/config.js.map +1 -1
  13. package/dist/context.d.ts +8 -1
  14. package/dist/context.d.ts.map +1 -1
  15. package/dist/context.js +76 -7
  16. package/dist/context.js.map +1 -1
  17. package/dist/docs/DEPLOYMENT.md +190 -0
  18. package/dist/index.js +4 -0
  19. package/dist/index.js.map +1 -1
  20. package/dist/monitoring.d.ts +97 -0
  21. package/dist/monitoring.d.ts.map +1 -0
  22. package/dist/monitoring.js +258 -0
  23. package/dist/monitoring.js.map +1 -0
  24. package/dist/prompts/grow.d.ts.map +1 -1
  25. package/dist/prompts/grow.js +155 -47
  26. package/dist/prompts/grow.js.map +1 -1
  27. package/dist/providers.d.ts +46 -0
  28. package/dist/providers.d.ts.map +1 -0
  29. package/dist/providers.js +349 -0
  30. package/dist/providers.js.map +1 -0
  31. package/dist/server.d.ts.map +1 -1
  32. package/dist/server.js +28 -3
  33. package/dist/server.js.map +1 -1
  34. package/dist/state/phase.d.ts +19 -4
  35. package/dist/state/phase.d.ts.map +1 -1
  36. package/dist/state/phase.js +19 -10
  37. package/dist/state/phase.js.map +1 -1
  38. package/dist/tools/analyze.d.ts.map +1 -1
  39. package/dist/tools/analyze.js +21 -9
  40. package/dist/tools/analyze.js.map +1 -1
  41. package/dist/tools/completeness.d.ts +36 -0
  42. package/dist/tools/completeness.d.ts.map +1 -0
  43. package/dist/tools/completeness.js +838 -0
  44. package/dist/tools/completeness.js.map +1 -0
  45. package/dist/tools/config.d.ts +73 -0
  46. package/dist/tools/config.d.ts.map +1 -0
  47. package/dist/tools/config.js +94 -0
  48. package/dist/tools/config.js.map +1 -0
  49. package/dist/tools/grow.d.ts +157 -0
  50. package/dist/tools/grow.d.ts.map +1 -0
  51. package/dist/tools/grow.js +532 -0
  52. package/dist/tools/grow.js.map +1 -0
  53. package/dist/tools/index.d.ts +4 -0
  54. package/dist/tools/index.d.ts.map +1 -1
  55. package/dist/tools/index.js +8 -0
  56. package/dist/tools/index.js.map +1 -1
  57. package/dist/tools/validate.d.ts +60 -0
  58. package/dist/tools/validate.d.ts.map +1 -0
  59. package/dist/tools/validate.js +234 -0
  60. package/dist/tools/validate.js.map +1 -0
  61. package/dist/tools/verify.d.ts +4 -4
  62. package/dist/tui.d.ts.map +1 -1
  63. package/dist/tui.js +302 -180
  64. package/dist/tui.js.map +1 -1
  65. package/docs/DEPLOYMENT.md +190 -0
  66. package/package.json +17 -5
  67. package/dist/tests/analyze.test.d.ts +0 -2
  68. package/dist/tests/analyze.test.d.ts.map +0 -1
  69. package/dist/tests/analyze.test.js +0 -120
  70. package/dist/tests/analyze.test.js.map +0 -1
  71. package/dist/tests/context.test.d.ts +0 -2
  72. package/dist/tests/context.test.d.ts.map +0 -1
  73. package/dist/tests/context.test.js +0 -213
  74. package/dist/tests/context.test.js.map +0 -1
  75. package/dist/tests/edge-cases.test.d.ts +0 -2
  76. package/dist/tests/edge-cases.test.d.ts.map +0 -1
  77. package/dist/tests/edge-cases.test.js +0 -234
  78. package/dist/tests/edge-cases.test.js.map +0 -1
  79. package/dist/tests/journal.test.d.ts +0 -2
  80. package/dist/tests/journal.test.d.ts.map +0 -1
  81. package/dist/tests/journal.test.js +0 -184
  82. package/dist/tests/journal.test.js.map +0 -1
  83. package/dist/tests/metrics.test.d.ts +0 -2
  84. package/dist/tests/metrics.test.d.ts.map +0 -1
  85. package/dist/tests/metrics.test.js +0 -178
  86. package/dist/tests/metrics.test.js.map +0 -1
  87. package/dist/tests/phase.test.d.ts +0 -2
  88. package/dist/tests/phase.test.d.ts.map +0 -1
  89. package/dist/tests/phase.test.js +0 -110
  90. package/dist/tests/phase.test.js.map +0 -1
  91. package/dist/tests/prompts.test.d.ts +0 -2
  92. package/dist/tests/prompts.test.d.ts.map +0 -1
  93. package/dist/tests/prompts.test.js +0 -157
  94. package/dist/tests/prompts.test.js.map +0 -1
  95. package/dist/tests/search.test.d.ts +0 -2
  96. package/dist/tests/search.test.d.ts.map +0 -1
  97. package/dist/tests/search.test.js +0 -228
  98. package/dist/tests/search.test.js.map +0 -1
  99. package/dist/tests/security.test.d.ts +0 -2
  100. package/dist/tests/security.test.d.ts.map +0 -1
  101. package/dist/tests/security.test.js +0 -105
  102. package/dist/tests/security.test.js.map +0 -1
  103. package/dist/tests/server.test.d.ts +0 -2
  104. package/dist/tests/server.test.d.ts.map +0 -1
  105. package/dist/tests/server.test.js +0 -93
  106. package/dist/tests/server.test.js.map +0 -1
  107. package/dist/tests/techstack.test.d.ts +0 -2
  108. package/dist/tests/techstack.test.d.ts.map +0 -1
  109. package/dist/tests/techstack.test.js +0 -187
  110. package/dist/tests/techstack.test.js.map +0 -1
  111. package/dist/tests/tools.test.d.ts +0 -2
  112. package/dist/tests/tools.test.d.ts.map +0 -1
  113. package/dist/tests/tools.test.js +0 -137
  114. package/dist/tests/tools.test.js.map +0 -1
  115. package/dist/tests/tracker.test.d.ts +0 -2
  116. package/dist/tests/tracker.test.d.ts.map +0 -1
  117. package/dist/tests/tracker.test.js +0 -197
  118. package/dist/tests/tracker.test.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,WAAW;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAQD,wBAAgB,UAAU,IAAI,WAAW,CAmBxC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAIpD;AAED,wBAAgB,SAAS,IAAI,MAAM,GAAG,SAAS,CAS9C;AAED,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA2CnE;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAWhE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEnE,MAAM,WAAW,WAAW;IAE1B,QAAQ,EAAE,UAAU,CAAC;IAGrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAQD,wBAAgB,UAAU,IAAI,WAAW,CA0BxC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAIpD;AAED,wBAAgB,iBAAiB,IAAI,UAAU,CAG9C;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,UAAU,GAAG,IAAI,CAI5D;AAGD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAqB1E;AAGD,wBAAgB,SAAS,IAAI,MAAM,GAAG,SAAS,CAG9C;AAED,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAGD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAS5E;AAGD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAazE;AAGD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAalG;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAgDnE;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAchE;AAGD,wBAAgB,uBAAuB,IAAI,UAAU,EAAE,CAGtD"}
package/dist/config.js CHANGED
@@ -13,16 +13,23 @@ export function loadConfig() {
13
13
  ensureConfigDir();
14
14
  if (!existsSync(CONFIG_FILE)) {
15
15
  return {
16
+ provider: 'anthropic',
16
17
  createdAt: new Date().toISOString(),
17
18
  lastUsed: new Date().toISOString(),
18
19
  };
19
20
  }
20
21
  try {
21
22
  const raw = readFileSync(CONFIG_FILE, 'utf-8');
22
- return JSON.parse(raw);
23
+ const parsed = JSON.parse(raw);
24
+ // Ensure provider field exists (migration)
25
+ if (!parsed.provider) {
26
+ parsed.provider = 'anthropic';
27
+ }
28
+ return parsed;
23
29
  }
24
30
  catch {
25
31
  return {
32
+ provider: 'anthropic',
26
33
  createdAt: new Date().toISOString(),
27
34
  lastUsed: new Date().toISOString(),
28
35
  };
@@ -33,51 +40,131 @@ export function saveConfig(config) {
33
40
  config.lastUsed = new Date().toISOString();
34
41
  writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2));
35
42
  }
36
- export function getApiKey() {
43
+ export function getActiveProvider() {
44
+ const config = loadConfig();
45
+ return config.provider;
46
+ }
47
+ export function setActiveProvider(provider) {
48
+ const config = loadConfig();
49
+ config.provider = provider;
50
+ saveConfig(config);
51
+ }
52
+ // Get API key for a specific provider
53
+ export function getProviderApiKey(provider) {
54
+ const envKeys = {
55
+ anthropic: 'ANTHROPIC_API_KEY',
56
+ openai: 'OPENAI_API_KEY',
57
+ google: 'GOOGLE_API_KEY',
58
+ xai: 'XAI_API_KEY',
59
+ };
37
60
  // Check env var first
38
- if (process.env.ANTHROPIC_API_KEY) {
39
- return process.env.ANTHROPIC_API_KEY;
40
- }
61
+ const envKey = process.env[envKeys[provider]];
62
+ if (envKey)
63
+ return envKey;
41
64
  // Then check config
42
65
  const config = loadConfig();
43
- return config.anthropicApiKey;
66
+ switch (provider) {
67
+ case 'anthropic': return config.anthropicApiKey;
68
+ case 'openai': return config.openaiApiKey;
69
+ case 'google': return config.googleApiKey;
70
+ case 'xai': return config.xaiApiKey;
71
+ default: return undefined;
72
+ }
73
+ }
74
+ // Get API key for active provider (backward compatible)
75
+ export function getApiKey() {
76
+ const provider = getActiveProvider();
77
+ return getProviderApiKey(provider);
44
78
  }
45
79
  export function hasApiKey() {
46
80
  return !!getApiKey();
47
81
  }
82
+ // Set API key for a specific provider
83
+ export function setProviderApiKey(provider, apiKey) {
84
+ const config = loadConfig();
85
+ switch (provider) {
86
+ case 'anthropic':
87
+ config.anthropicApiKey = apiKey;
88
+ break;
89
+ case 'openai':
90
+ config.openaiApiKey = apiKey;
91
+ break;
92
+ case 'google':
93
+ config.googleApiKey = apiKey;
94
+ break;
95
+ case 'xai':
96
+ config.xaiApiKey = apiKey;
97
+ break;
98
+ }
99
+ saveConfig(config);
100
+ }
101
+ // Validate API key format
102
+ export function validateApiKey(provider, key) {
103
+ switch (provider) {
104
+ case 'anthropic':
105
+ return key.startsWith('sk-ant-');
106
+ case 'openai':
107
+ return key.startsWith('sk-') && !key.startsWith('sk-ant-');
108
+ case 'google':
109
+ return key.startsWith('AIza');
110
+ case 'xai':
111
+ return key.startsWith('xai-');
112
+ default:
113
+ return key.length > 10;
114
+ }
115
+ }
116
+ // Get provider display info
117
+ export function getProviderInfo(provider) {
118
+ switch (provider) {
119
+ case 'anthropic':
120
+ return { name: 'Anthropic', model: 'claude-opus-4-20250514', url: 'console.anthropic.com' };
121
+ case 'openai':
122
+ return { name: 'OpenAI', model: 'gpt-4o', url: 'platform.openai.com' };
123
+ case 'google':
124
+ return { name: 'Google', model: 'gemini-2.0-flash', url: 'ai.google.dev' };
125
+ case 'xai':
126
+ return { name: 'xAI', model: 'grok-2', url: 'console.x.ai' };
127
+ default:
128
+ return { name: 'Unknown', model: 'unknown', url: '' };
129
+ }
130
+ }
48
131
  export async function promptForApiKey() {
49
132
  const rl = createInterface({
50
133
  input: process.stdin,
51
134
  output: process.stdout,
52
135
  });
53
136
  return new Promise((resolve) => {
137
+ const config = loadConfig();
138
+ const provider = config.provider;
139
+ const info = getProviderInfo(provider);
54
140
  console.log('\n');
55
141
  console.log(' ┌─────────────────────────────────────────────────┐');
56
142
  console.log(' │ MIDAS - First Time Setup │');
57
143
  console.log(' ├─────────────────────────────────────────────────┤');
58
144
  console.log(' │ │');
145
+ console.log(` │ Provider: ${info.name.padEnd(37)}│`);
146
+ console.log(` │ Model: ${info.model.padEnd(40)}│`);
147
+ console.log(' │ │');
59
148
  console.log(' │ For AI-powered features (smart prompts, │');
60
149
  console.log(' │ codebase analysis, auto-detection), Midas │');
61
- console.log(' │ needs an Anthropic API key. │');
150
+ console.log(' │ needs an API key. │');
62
151
  console.log(' │ │');
63
- console.log(' │ Get one at: console.anthropic.com │');
152
+ console.log(` │ Get one at: ${info.url.padEnd(35)}│`);
64
153
  console.log(' │ │');
65
154
  console.log(' │ This is optional. Press Enter to skip. │');
66
155
  console.log(' │ │');
67
156
  console.log(' └─────────────────────────────────────────────────┘');
68
157
  console.log('');
69
- rl.question(' Anthropic API Key: ', (answer) => {
158
+ rl.question(` ${info.name} API Key: `, (answer) => {
70
159
  rl.close();
71
160
  const key = answer.trim();
72
- if (key && key.startsWith('sk-ant-')) {
73
- const config = loadConfig();
74
- config.anthropicApiKey = key;
75
- saveConfig(config);
161
+ if (key && validateApiKey(provider, key)) {
162
+ setProviderApiKey(provider, key);
76
163
  console.log('\n OK - API key saved to ~/.midas/config.json\n');
77
164
  resolve(key);
78
165
  }
79
166
  else if (key) {
80
- console.log('\n Invalid key format. Skipping.\n');
167
+ console.log('\n Invalid key format. Skipping.\n');
81
168
  resolve(undefined);
82
169
  }
83
170
  else {
@@ -93,9 +180,16 @@ export async function ensureApiKey() {
93
180
  return existing;
94
181
  // Check if this is first run
95
182
  const config = loadConfig();
96
- if (!config.anthropicApiKey && !process.env.ANTHROPIC_API_KEY) {
183
+ const provider = config.provider;
184
+ const hasKey = getProviderApiKey(provider);
185
+ if (!hasKey) {
97
186
  return promptForApiKey();
98
187
  }
99
188
  return undefined;
100
189
  }
190
+ // List configured providers (those with API keys)
191
+ export function listConfiguredProviders() {
192
+ const providers = ['anthropic', 'openai', 'google', 'xai'];
193
+ return providers.filter(p => !!getProviderApiKey(p));
194
+ }
101
195
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAQpD,SAAS,eAAe;IACtB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,eAAe,EAAE,CAAC;IAElB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACnC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACnC,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAmB;IAC5C,eAAe,EAAE,CAAC;IAClB,MAAM,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,sBAAsB;IACtB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACvC,CAAC;IAED,oBAAoB;IACpB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,OAAO,MAAM,CAAC,eAAe,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,EAAE,GAAG,eAAe,CAAC;QACzB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,EAAE,CAAC,QAAQ,CAAC,uBAAuB,EAAE,CAAC,MAAM,EAAE,EAAE;YAC9C,EAAE,CAAC,KAAK,EAAE,CAAC;YAEX,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAE1B,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;gBAC5B,MAAM,CAAC,eAAe,GAAG,GAAG,CAAC;gBAC7B,UAAU,CAAC,MAAM,CAAC,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;gBAChE,OAAO,CAAC,GAAG,CAAC,CAAC;YACf,CAAC;iBAAM,IAAI,GAAG,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;gBACrD,OAAO,CAAC,SAAS,CAAC,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;gBAC3E,OAAO,CAAC,SAAS,CAAC,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,QAAQ,GAAG,SAAS,EAAE,CAAC;IAC7B,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,6BAA6B;IAC7B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAC9D,OAAO,eAAe,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/context.d.ts CHANGED
@@ -40,13 +40,20 @@ export declare function truncateToTokens(text: string, maxTokens: number): strin
40
40
  */
41
41
  export declare function extractKeyPoints(text: string, maxPoints?: number): string[];
42
42
  /**
43
- * Summarize journal entries to titles + key decisions
43
+ * Hierarchical summarization - more detail for recent, less for old
44
+ * Level 1 (most recent): Title + 3 key points
45
+ * Level 2 (recent): Title + 1 key point
46
+ * Level 3 (older): Just title
44
47
  */
45
48
  export declare function summarizeJournalEntries(entries: Array<{
46
49
  title: string;
47
50
  conversation: string;
48
51
  timestamp: string;
49
52
  }>): string;
53
+ /**
54
+ * Get code snippets from recently modified files
55
+ */
56
+ export declare function getCodeSnippets(projectPath: string, maxFiles?: number, maxLinesPerFile?: number): string;
50
57
  export declare function buildCompressedContext(projectPath: string, options?: {
51
58
  maxTokens?: number;
52
59
  includeCode?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAaH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAMD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,QAAQ,EAAE,WAAW,GAAG,QAAQ,GAAG,KAAK,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB;AAuCD,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CASvG;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAqB/G;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAaA;AAgBD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAiBxE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,MAAU,GAAG,MAAM,EAAE,CAwB9E;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,CAY1H;AAWD,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;CACrB,GACL,iBAAiB,CAsKnB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAoBlE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG;IACpD,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAqBA"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAaH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAMD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,QAAQ,EAAE,WAAW,GAAG,QAAQ,GAAG,KAAK,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB;AAuCD,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CASvG;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAqB/G;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAaA;AAgBD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAiBxE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,MAAU,GAAG,MAAM,EAAE,CAwB9E;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,CA4B1H;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,EAAE,eAAe,GAAE,MAAW,GAAG,MAAM,CA0B/G;AAWD,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;CACrB,GACL,iBAAiB,CA+LnB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAoBlE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG;IACpD,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAqBA"}
package/dist/context.js CHANGED
@@ -140,20 +140,66 @@ export function extractKeyPoints(text, maxPoints = 5) {
140
140
  return points;
141
141
  }
142
142
  /**
143
- * Summarize journal entries to titles + key decisions
143
+ * Hierarchical summarization - more detail for recent, less for old
144
+ * Level 1 (most recent): Title + 3 key points
145
+ * Level 2 (recent): Title + 1 key point
146
+ * Level 3 (older): Just title
144
147
  */
145
148
  export function summarizeJournalEntries(entries) {
146
149
  if (entries.length === 0)
147
150
  return 'No journal entries.';
148
151
  const lines = [];
149
- for (const entry of entries.slice(0, 5)) {
152
+ for (let i = 0; i < entries.length && i < 7; i++) {
153
+ const entry = entries[i];
150
154
  const date = entry.timestamp.slice(0, 10);
151
- const keyPoints = extractKeyPoints(entry.conversation, 2);
152
- lines.push(`- ${date}: ${entry.title}`);
153
- keyPoints.forEach(p => lines.push(` > ${p.slice(0, 80)}`));
155
+ if (i === 0) {
156
+ // Most recent: full detail
157
+ const keyPoints = extractKeyPoints(entry.conversation, 3);
158
+ lines.push(`- ${date}: ${entry.title}`);
159
+ keyPoints.forEach(p => lines.push(` > ${p.slice(0, 100)}`));
160
+ }
161
+ else if (i < 3) {
162
+ // Recent: title + 1 key point
163
+ const keyPoints = extractKeyPoints(entry.conversation, 1);
164
+ lines.push(`- ${date}: ${entry.title}`);
165
+ if (keyPoints.length > 0) {
166
+ lines.push(` > ${keyPoints[0].slice(0, 80)}`);
167
+ }
168
+ }
169
+ else {
170
+ // Older: just title
171
+ lines.push(`- ${date}: ${entry.title}`);
172
+ }
154
173
  }
155
174
  return lines.join('\n');
156
175
  }
176
+ /**
177
+ * Get code snippets from recently modified files
178
+ */
179
+ export function getCodeSnippets(projectPath, maxFiles = 3, maxLinesPerFile = 20) {
180
+ const tracker = loadTracker(projectPath);
181
+ const snippets = [];
182
+ const codeExtensions = ['.ts', '.tsx', '.js', '.jsx', '.py', '.go', '.rs'];
183
+ const recentCodeFiles = tracker.recentFiles
184
+ .filter(f => codeExtensions.some(ext => f.path.endsWith(ext)))
185
+ .slice(0, maxFiles);
186
+ for (const file of recentCodeFiles) {
187
+ try {
188
+ const fullPath = join(projectPath, file.path);
189
+ if (!existsSync(fullPath))
190
+ continue;
191
+ const content = readFileSync(fullPath, 'utf-8');
192
+ const lines = content.split('\n');
193
+ // Get first N lines (usually imports + key code)
194
+ const snippet = lines.slice(0, maxLinesPerFile).join('\n');
195
+ snippets.push(`--- ${file.path} ---\n${snippet}`);
196
+ }
197
+ catch {
198
+ // Skip files we can't read
199
+ }
200
+ }
201
+ return snippets.join('\n\n');
202
+ }
157
203
  // ============================================================================
158
204
  // CONTEXT BUILDING
159
205
  // ============================================================================
@@ -163,7 +209,13 @@ If stuck: Tornado (research + logs + tests). If output doesn't fit: Horizon (exp
163
209
  Gates must pass (build/test/lint) before advancing.`;
164
210
  export function buildCompressedContext(projectPath, options = {}) {
165
211
  const safePath = sanitizePath(projectPath);
166
- const maxTokens = options.maxTokens || 4000;
212
+ // Dynamic budget: increase when errors present
213
+ const errors = getUnresolvedErrors(safePath);
214
+ const hasErrors = errors.length > 0;
215
+ const baseTokens = options.maxTokens || 4000;
216
+ // Give 50% more budget when debugging errors
217
+ const maxTokens = hasErrors ? Math.floor(baseTokens * 1.5) : baseTokens;
218
+ const includeCode = options.includeCode ?? true; // Default to including code
167
219
  const layers = [];
168
220
  let totalTokens = 0;
169
221
  // ─────────────────────────────────────────────────────────────────────────
@@ -217,11 +269,28 @@ export function buildCompressedContext(projectPath, options = {}) {
217
269
  tokens: estimateTokens(fileList) + 20,
218
270
  });
219
271
  }
272
+ // Layer 4b: Code snippets (if enabled and budget allows)
273
+ if (includeCode && tracker.recentFiles.length > 0) {
274
+ const snippets = getCodeSnippets(safePath, 3, 15);
275
+ if (snippets.length > 0) {
276
+ const snippetTokens = estimateTokens(snippets);
277
+ // Only include if it fits in 20% of budget
278
+ if (snippetTokens < maxTokens * 0.2) {
279
+ layers.push({
280
+ name: 'code_snippets',
281
+ priority: 'medium',
282
+ position: 'middle',
283
+ content: `Recent code:\n${snippets}`,
284
+ tokens: snippetTokens + 20,
285
+ });
286
+ }
287
+ }
288
+ }
220
289
  // ─────────────────────────────────────────────────────────────────────────
221
290
  // END: Recent context (high attention, full detail)
222
291
  // ─────────────────────────────────────────────────────────────────────────
223
292
  // Layer 5: Unresolved errors (FULL - critical for debugging)
224
- const errors = getUnresolvedErrors(safePath);
293
+ // Note: 'errors' already loaded at top for dynamic budget calculation
225
294
  if (errors.length > 0) {
226
295
  const errorContent = errors.slice(0, 3).map(e => {
227
296
  const attempts = e.fixAttempts.length > 0
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.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"}