infrawise 0.15.1 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -9
- package/dist/cli/commands/start.js +35 -1
- package/dist/cli/index.js +2 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,12 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="https://sidd27.github.io/infrawise/">
|
|
3
|
+
<img src="https://raw.githubusercontent.com/Sidd27/infrawise/main/website/public/logo-400.png" alt="Infrawise logo" width="130" />
|
|
4
|
+
</a>
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<h1 align="center">Infrawise</h1>
|
|
8
|
+
|
|
9
|
+
<p align="center"><b>Your AI coding assistant finally knows your infra.</b></p>
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
<a href="https://www.npmjs.com/package/infrawise"><img src="https://img.shields.io/npm/v/infrawise" alt="npm version" /></a>
|
|
13
|
+
<a href="https://github.com/Sidd27/infrawise/actions/workflows/npm-publish.yml"><img src="https://github.com/Sidd27/infrawise/actions/workflows/npm-publish.yml/badge.svg" alt="Publish to npm" /></a>
|
|
14
|
+
<a href="https://github.com/Sidd27/infrawise/actions/workflows/ci.yml"><img src="https://github.com/Sidd27/infrawise/actions/workflows/ci.yml/badge.svg" alt="CI" /></a>
|
|
15
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT" /></a>
|
|
16
|
+
<a href="https://scorecard.dev/viewer/?uri=github.com/Sidd27/infrawise"><img src="https://api.securityscorecards.dev/projects/github.com/Sidd27/infrawise/badge" alt="OpenSSF Scorecard" /></a>
|
|
17
|
+
<a href="https://glama.ai/mcp/servers/Sidd27/infrawise"><img src="https://glama.ai/mcp/servers/Sidd27/infrawise/badges/score.svg" alt="infrawise MCP server" /></a>
|
|
18
|
+
</p>
|
|
19
|
+
|
|
20
|
+
<p align="center">
|
|
21
|
+
<a href="https://sidd27.github.io/infrawise/">Website</a> ·
|
|
22
|
+
<a href="https://sidd27.github.io/infrawise/getting-started/installation/">Docs</a> ·
|
|
23
|
+
<a href="#quick-start">Quick start</a>
|
|
24
|
+
</p>
|
|
10
25
|
|
|
11
26
|
Infrawise gives AI coding assistants deterministic infrastructure awareness.
|
|
12
27
|
|
|
@@ -119,6 +134,14 @@ infrawise start --cursor
|
|
|
119
134
|
|
|
120
135
|
Writes `.cursor/mcp.json` and opens Cursor. All 21 infrawise tools are available in Cursor's MCP panel.
|
|
121
136
|
|
|
137
|
+
### VS Code
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
infrawise start --vscode
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Writes `.vscode/mcp.json` (merging with any existing MCP servers) and opens VS Code. The tools are available to Copilot agent mode via the MCP servers panel.
|
|
144
|
+
|
|
122
145
|
### Any editor (no flag)
|
|
123
146
|
|
|
124
147
|
```bash
|
|
@@ -182,6 +205,7 @@ Add to your editor's MCP config:
|
|
|
182
205
|
| `infrawise start` | **Primary command** — probe env, generate config, analyze, write editor MCP config |
|
|
183
206
|
| `infrawise start --claude` | Same as above, then opens Claude Code |
|
|
184
207
|
| `infrawise start --cursor` | Same as above, then opens Cursor |
|
|
208
|
+
| `infrawise start --vscode` | Same as above, then opens VS Code (merges into `.vscode/mcp.json`) |
|
|
185
209
|
| `infrawise start --interactive` | Run the guided setup wizard instead of auto-discovery |
|
|
186
210
|
| `infrawise start --rediscover` | Delete `infrawise.yaml` + `.infrawise/`, then re-probe and re-analyze |
|
|
187
211
|
| `infrawise analyze` | Force a full re-scan — useful after major infrastructure changes |
|
|
@@ -34,6 +34,31 @@ function writeCursorMcp(configAbsPath) {
|
|
|
34
34
|
fs.writeFileSync(path.join(dir, 'mcp.json'), JSON.stringify(entry, null, 2), 'utf-8');
|
|
35
35
|
log.success('Cursor config written', '.cursor/mcp.json');
|
|
36
36
|
}
|
|
37
|
+
export function writeVscodeMcp(configAbsPath) {
|
|
38
|
+
const dir = '.vscode';
|
|
39
|
+
if (!fs.existsSync(dir))
|
|
40
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
41
|
+
const file = path.join(dir, 'mcp.json');
|
|
42
|
+
// VS Code's mcp.json commonly holds other servers — merge, never overwrite
|
|
43
|
+
let existing = {};
|
|
44
|
+
if (fs.existsSync(file)) {
|
|
45
|
+
try {
|
|
46
|
+
existing = JSON.parse(fs.readFileSync(file, 'utf-8'));
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
log.warn('.vscode/mcp.json is not valid JSON — replacing it');
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
const servers = existing['servers'] ?? {};
|
|
53
|
+
servers['infrawise'] = {
|
|
54
|
+
type: 'stdio',
|
|
55
|
+
command: 'infrawise',
|
|
56
|
+
args: ['serve', '--stdio', '--config', configAbsPath],
|
|
57
|
+
};
|
|
58
|
+
existing['servers'] = servers;
|
|
59
|
+
fs.writeFileSync(file, JSON.stringify(existing, null, 2), 'utf-8');
|
|
60
|
+
log.success('VS Code config written', '.vscode/mcp.json');
|
|
61
|
+
}
|
|
37
62
|
function launchEditor(editor) {
|
|
38
63
|
return new Promise((resolve) => {
|
|
39
64
|
if (editor === 'claude') {
|
|
@@ -117,14 +142,23 @@ export async function runStart(options = {}) {
|
|
|
117
142
|
writeMcpJson(configAbsPath);
|
|
118
143
|
if (options.cursor)
|
|
119
144
|
writeCursorMcp(configAbsPath);
|
|
145
|
+
if (options.vscode)
|
|
146
|
+
writeVscodeMcp(configAbsPath);
|
|
120
147
|
// Launch editor or print instructions
|
|
121
|
-
const editor = options.claude
|
|
148
|
+
const editor = options.claude
|
|
149
|
+
? 'claude'
|
|
150
|
+
: options.cursor
|
|
151
|
+
? 'cursor'
|
|
152
|
+
: options.vscode
|
|
153
|
+
? 'code'
|
|
154
|
+
: null;
|
|
122
155
|
if (!editor) {
|
|
123
156
|
console.log('');
|
|
124
157
|
console.log(chalk.bold(' Setup complete — open your editor to start.'));
|
|
125
158
|
console.log('');
|
|
126
159
|
console.log(chalk.dim(' Claude Code: claude'));
|
|
127
160
|
console.log(chalk.dim(' Cursor: cursor .'));
|
|
161
|
+
console.log(chalk.dim(' VS Code: code .'));
|
|
128
162
|
console.log('');
|
|
129
163
|
console.log(chalk.dim(' Next time just open your editor — no infrawise command needed.'));
|
|
130
164
|
console.log('');
|
package/dist/cli/index.js
CHANGED
|
@@ -21,6 +21,7 @@ program
|
|
|
21
21
|
.option('-c, --config <path>', 'Path to infrawise.yaml', 'infrawise.yaml')
|
|
22
22
|
.option('--claude', 'Write .mcp.json and open Claude Code')
|
|
23
23
|
.option('--cursor', 'Write .cursor/mcp.json and open Cursor')
|
|
24
|
+
.option('--vscode', 'Write .vscode/mcp.json and open VS Code')
|
|
24
25
|
.option('--interactive', 'Run interactive setup wizard instead of auto-discovery')
|
|
25
26
|
.option('--rediscover', 'Delete existing infrawise.yaml and re-probe the environment')
|
|
26
27
|
.action(async (options) => {
|
|
@@ -29,6 +30,7 @@ program
|
|
|
29
30
|
config: options.config !== 'infrawise.yaml' ? options.config : undefined,
|
|
30
31
|
claude: options.claude,
|
|
31
32
|
cursor: options.cursor,
|
|
33
|
+
vscode: options.vscode,
|
|
32
34
|
interactive: options.interactive,
|
|
33
35
|
rediscover: options.rediscover,
|
|
34
36
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "infrawise",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"mcpName": "io.github.Sidd27/infrawise",
|
|
5
5
|
"description": "CLI-first infrastructure intelligence platform — analyzes DynamoDB, PostgreSQL, MySQL, MongoDB, SQS, SNS, SSM, Secrets Manager, Lambda, S3, API Gateway, CloudWatch Logs and exposes findings as an MCP server for Claude Code",
|
|
6
6
|
"keywords": [
|
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
},
|
|
112
112
|
"devDependencies": {
|
|
113
113
|
"@types/js-yaml": "^4.0.9",
|
|
114
|
-
"@types/node": "^
|
|
114
|
+
"@types/node": "^26.1.0",
|
|
115
115
|
"@types/pg": "^8.11.0",
|
|
116
116
|
"@typescript-eslint/eslint-plugin": "^8.61.1",
|
|
117
117
|
"@typescript-eslint/parser": "^8.61.1",
|