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 CHANGED
@@ -1,12 +1,27 @@
1
- # Infrawise
2
-
3
- [![npm version](https://img.shields.io/npm/v/infrawise)](https://www.npmjs.com/package/infrawise)
4
- [![Publish to npm](https://github.com/Sidd27/infrawise/actions/workflows/npm-publish.yml/badge.svg)](https://github.com/Sidd27/infrawise/actions/workflows/npm-publish.yml)
5
- [![CI](https://github.com/Sidd27/infrawise/actions/workflows/ci.yml/badge.svg)](https://github.com/Sidd27/infrawise/actions/workflows/ci.yml)
6
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
7
- [![infrawise MCP server](https://glama.ai/mcp/servers/Sidd27/infrawise/badges/score.svg)](https://glama.ai/mcp/servers/Sidd27/infrawise)
8
-
9
- **[sidd27.github.io/infrawise](https://sidd27.github.io/infrawise/) Understand your infrastructure, not just your code.**
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 ? 'claude' : options.cursor ? 'cursor' : null;
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.15.1",
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": "^25.8.0",
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",