infrawise 0.10.2 → 0.10.3

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
@@ -6,7 +6,7 @@
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
7
7
  [![infrawise MCP server](https://glama.ai/mcp/servers/Sidd27/infrawise/badges/score.svg)](https://glama.ai/mcp/servers/Sidd27/infrawise)
8
8
 
9
- **Understand your infrastructure, not just your code.**
9
+ **[sidd27.github.io/infrawise](https://sidd27.github.io/infrawise/) — Understand your infrastructure, not just your code.**
10
10
 
11
11
  Infrawise gives AI coding assistants deterministic infrastructure awareness.
12
12
 
@@ -117,14 +117,6 @@ infrawise start --cursor
117
117
 
118
118
  Writes `.cursor/mcp.json` and opens Cursor. All 15 infrawise tools are available in Cursor's MCP panel.
119
119
 
120
- ### Windsurf
121
-
122
- ```bash
123
- infrawise start --windsurf
124
- ```
125
-
126
- Writes to `~/.codeium/windsurf/mcp_config.json` and opens Windsurf.
127
-
128
120
  ### Any editor (no flag)
129
121
 
130
122
  ```bash
@@ -168,7 +160,7 @@ Add to your editor's MCP config:
168
160
  | `get_topic_details` | SNS topics — subscription counts, protocols, and filter policies (required message attributes per subscription) |
169
161
  | `get_secrets_overview` | Secrets Manager — names and rotation status (values never included) |
170
162
  | `get_parameter_overview` | SSM Parameter Store — names, types, tiers (values never included) |
171
- | `get_lambda_overview` | Lambda functions — runtime, memory, timeout, triggers (SQS/DynamoDB/Kinesis/EventBridge/S3), env var key names |
163
+ | `get_lambda_overview` | Lambda functions — runtime, memory, timeout, triggers (SQS/SNS/DynamoDB/Kinesis/MSK/EventBridge/S3), env var key names |
172
164
  | `get_eventbridge_details` | EventBridge rules — name, state, schedule/event pattern, target functions |
173
165
  | `get_s3_overview` | S3 buckets — versioning, encryption, public access, event notifications |
174
166
  | `get_log_errors` | CloudWatch error patterns and counts (no raw log messages) |
@@ -182,7 +174,6 @@ Add to your editor's MCP config:
182
174
  | `infrawise start` | **Primary command** — init + analyze + write editor MCP config, then exit |
183
175
  | `infrawise start --claude` | Same as above, then opens Claude Code |
184
176
  | `infrawise start --cursor` | Same as above, then opens Cursor |
185
- | `infrawise start --windsurf` | Same as above, then opens Windsurf |
186
177
  | `infrawise init` | Generate `infrawise.yaml` only (no analysis, no editor config) |
187
178
  | `infrawise auth` | Select or switch AWS profile |
188
179
  | `infrawise analyze` | Force a full re-scan — useful after major infrastructure changes |
@@ -400,6 +391,10 @@ Infrawise does not use an LLM to analyze your infrastructure. All extraction and
400
391
  - **No telemetry** — zero data collection
401
392
  - **Credentials** — uses your existing AWS credential chain, never stored by infrawise
402
393
 
394
+ ### 🔒 Security & Project Naming Note
395
+
396
+ You might see this package flagged on certain supply-chain security scanners under "deceptive naming." This is a false positive triggered by automated tools because of the prefix "infra." This project is completely safe, independent, and unaffiliated with any commercial trademarks.
397
+
403
398
  ---
404
399
 
405
400
  ## Architecture overview
@@ -414,10 +409,10 @@ src/
414
409
  core/ Config (Zod + YAML), logger (Pino), local cache
415
410
  graph/ Graph engine — nodes, edges, builder
416
411
  adapters/
417
- aws/ DynamoDB, Lambda, SQS/SNS/SSM/Secrets/EventBridge/RDS, CloudWatch
412
+ aws/ DynamoDB, S3, Lambda, SQS/SNS/SSM/Secrets/EventBridge/RDS, CloudWatch
418
413
  db/ PostgreSQL, MySQL, MongoDB
419
414
  iac/ Terraform, CDK, CloudFormation (local file parsing)
420
- analyzers/ 23 rule-based analyzers
415
+ analyzers/ 27 rule-based analyzers
421
416
  context/ Repository scanner (ts-morph AST)
422
417
  server/ Fastify MCP server (@modelcontextprotocol/sdk, Streamable HTTP)
423
418
  cli/ CLI commands (Commander.js)
@@ -34,29 +34,6 @@ 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
- function writeWindsurfMcp(configAbsPath) {
38
- const windsurfDir = path.join(process.env.HOME ?? '', '.codeium', 'windsurf');
39
- if (!fs.existsSync(windsurfDir))
40
- fs.mkdirSync(windsurfDir, { recursive: true });
41
- const mcpConfigPath = path.join(windsurfDir, 'mcp_config.json');
42
- let existing = {};
43
- if (fs.existsSync(mcpConfigPath)) {
44
- try {
45
- existing = JSON.parse(fs.readFileSync(mcpConfigPath, 'utf-8'));
46
- }
47
- catch {
48
- // corrupt file — overwrite cleanly
49
- }
50
- }
51
- const servers = existing.mcpServers ?? {};
52
- servers['infrawise'] = {
53
- command: 'infrawise',
54
- args: ['stdio', '--config', configAbsPath],
55
- };
56
- existing.mcpServers = servers;
57
- fs.writeFileSync(mcpConfigPath, JSON.stringify(existing, null, 2), 'utf-8');
58
- log.success('Windsurf config written', mcpConfigPath);
59
- }
60
37
  function launchEditor(editor) {
61
38
  return new Promise((resolve) => {
62
39
  if (editor === 'claude') {
@@ -77,7 +54,7 @@ function launchEditor(editor) {
77
54
  const cmd = editor;
78
55
  const args = ['.'];
79
56
  console.log('');
80
- console.log(chalk.dim(` Opening ${editor === 'cursor' ? 'Cursor' : 'Windsurf'}...`));
57
+ console.log(chalk.dim(' Opening Cursor...'));
81
58
  const child = spawn(cmd, args, { detached: true, stdio: 'ignore' });
82
59
  child.on('error', (err) => {
83
60
  if (err.code === 'ENOENT') {
@@ -128,23 +105,14 @@ export async function runStart(options = {}) {
128
105
  writeMcpJson(configAbsPath);
129
106
  if (options.cursor)
130
107
  writeCursorMcp(configAbsPath);
131
- if (options.windsurf)
132
- writeWindsurfMcp(configAbsPath);
133
108
  // Step 4 — launch editor or print instructions
134
- const editor = options.claude
135
- ? 'claude'
136
- : options.cursor
137
- ? 'cursor'
138
- : options.windsurf
139
- ? 'windsurf'
140
- : null;
109
+ const editor = options.claude ? 'claude' : options.cursor ? 'cursor' : null;
141
110
  if (!editor) {
142
111
  console.log('');
143
112
  console.log(chalk.bold(' Setup complete — open your editor to start.'));
144
113
  console.log('');
145
114
  console.log(chalk.dim(' Claude Code: claude'));
146
115
  console.log(chalk.dim(' Cursor: cursor .'));
147
- console.log(chalk.dim(' Windsurf: windsurf .'));
148
116
  console.log('');
149
117
  console.log(chalk.dim(' Next time just open your editor — no infrawise command needed.'));
150
118
  console.log('');
package/dist/cli/index.js CHANGED
@@ -22,14 +22,12 @@ program
22
22
  .option('-c, --config <path>', 'Path to infrawise.yaml', 'infrawise.yaml')
23
23
  .option('--claude', 'Write .mcp.json and open Claude Code')
24
24
  .option('--cursor', 'Write .cursor/mcp.json and open Cursor')
25
- .option('--windsurf', 'Write Windsurf MCP config and open Windsurf')
26
25
  .action(async (options) => {
27
26
  printBanner();
28
27
  await runStart({
29
28
  config: options.config !== 'infrawise.yaml' ? options.config : undefined,
30
29
  claude: options.claude,
31
30
  cursor: options.cursor,
32
- windsurf: options.windsurf,
33
31
  });
34
32
  });
35
33
  program
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "infrawise",
3
- "version": "0.10.2",
3
+ "version": "0.10.3",
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, CloudWatch Logs and exposes findings as an MCP server for Claude Code",
6
6
  "keywords": [
@@ -37,7 +37,7 @@
37
37
  "agentskills": {
38
38
  "infrawise": "./AGENTS.md"
39
39
  },
40
- "homepage": "https://github.com/Sidd27/infrawise#readme",
40
+ "homepage": "https://sidd27.github.io/infrawise/",
41
41
  "repository": {
42
42
  "type": "git",
43
43
  "url": "git+https://github.com/Sidd27/infrawise.git"
@@ -60,7 +60,8 @@
60
60
  "lint": "eslint src",
61
61
  "typecheck": "tsc",
62
62
  "format": "prettier --write src",
63
- "generate-diagrams": "mmdc -i docs/architecture.mmd -o docs/architecture.svg --backgroundColor transparent",
63
+ "build-arch": "node scripts/build-arch.mjs",
64
+ "generate-diagrams": "node scripts/build-arch.mjs",
64
65
  "record": "bash docs/demo/record.sh",
65
66
  "dev": "node dist/cli/index.js dev",
66
67
  "release": "node scripts/release.js",
@@ -106,6 +107,7 @@
106
107
  "@typescript-eslint/eslint-plugin": "^8.59.3",
107
108
  "@typescript-eslint/parser": "^8.59.3",
108
109
  "@vitest/coverage-v8": "^4.1.6",
110
+ "@xmldom/xmldom": "^0.9.10",
109
111
  "eslint": "^10.4.0",
110
112
  "prettier": "^3.8.3",
111
113
  "simple-git-hooks": "^2.13.1",
@@ -122,7 +124,8 @@
122
124
  },
123
125
  "pnpm": {
124
126
  "overrides": {
125
- "qs": ">=6.15.2"
127
+ "qs": ">=6.15.2",
128
+ "vite": "^7"
126
129
  },
127
130
  "allowedBuildScripts": [
128
131
  "puppeteer",