multicorn-shield 0.13.0 → 1.1.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/CHANGELOG.md +53 -13
- package/README.md +5 -5
- package/dist/index.cjs +4 -0
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +4 -0
- package/dist/multicorn-proxy.js +550 -175
- package/dist/multicorn-shield.js +3297 -31
- package/dist/openclaw-plugin/multicorn-shield.js +2 -2
- package/dist/proxy.cjs +1 -1
- package/dist/proxy.js +1 -1
- package/dist/shield-extension.js +64 -1
- package/package.json +3 -3
- package/plugins/windsurf/README.md +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -5,7 +5,47 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
-
## [
|
|
8
|
+
## [1.1.0] - 2026-05-06
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Kilo Code as a hosted proxy platform
|
|
13
|
+
- GitHub Copilot as a hosted proxy platform
|
|
14
|
+
- Continue as a hosted proxy platform
|
|
15
|
+
- Goose as a hosted proxy platform
|
|
16
|
+
- Claude Desktop as a hosted proxy platform
|
|
17
|
+
- Prereq check step in CLI wizard for all hosted proxy platforms
|
|
18
|
+
- Platform filter and search in dashboard platform select
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- GitHub Copilot moved from native plugin to hosted proxy section in CLI wizard
|
|
23
|
+
- Kilo Code config snippet now includes `"type": "streamable-http"`
|
|
24
|
+
- Goose config snippet uses `"type": "streamable_http"` and `"url"` (SSE deprecated)
|
|
25
|
+
- ProxySetup is now a stepped wizard (prereq check, OS selection, proxy form, snippet, completion)
|
|
26
|
+
- Short name prompt removed from CLI wizard (uses agent name automatically)
|
|
27
|
+
|
|
28
|
+
### Removed
|
|
29
|
+
|
|
30
|
+
- Aider as a supported platform (no MCP client support)
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
|
|
34
|
+
- Proxy ALLOW_PRIVATE_TARGETS env var not bypassing localhost validation
|
|
35
|
+
- Goose prereq URL updated (moved from Block to the Agentic AI Foundation (AAIF))
|
|
36
|
+
- Continue prereq URL updated
|
|
37
|
+
- ProxySetup form input contrast (WCAG AA fix)
|
|
38
|
+
- Governance disclosure now lists all four native plugin platforms
|
|
39
|
+
|
|
40
|
+
## [1.0.0] - 2026-05-02
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
|
|
44
|
+
- CLI binary renamed from `multicorn-proxy` to `multicorn-shield`. The `multicorn-proxy` command still works but prints a deprecation warning. All user-facing documentation and dashboard references use `npx multicorn-shield`.
|
|
45
|
+
|
|
46
|
+
### Deprecated
|
|
47
|
+
|
|
48
|
+
- `multicorn-proxy` binary alias. Use `multicorn-shield` instead.
|
|
9
49
|
|
|
10
50
|
### Added
|
|
11
51
|
|
|
@@ -72,13 +112,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
72
112
|
### Added
|
|
73
113
|
|
|
74
114
|
- Windsurf native integration via Cascade Hooks (`pre_*` / `post_*` for reads, writes, terminal, and MCP). Hook scripts install to `~/.multicorn/windsurf-hooks/` and add entries to `~/.codeium/windsurf/hooks.json`.
|
|
75
|
-
- `npx multicorn-
|
|
115
|
+
- `npx multicorn-shield init`: when you pick Windsurf, choose Native plugin (recommended) or Hosted proxy. Native path registers Shield hooks and reminds you to restart Windsurf.
|
|
76
116
|
|
|
77
117
|
## [0.8.0] - 2026-04-12
|
|
78
118
|
|
|
79
119
|
### Added
|
|
80
120
|
|
|
81
|
-
- Windsurf IDE as a supported platform in `npx multicorn-
|
|
121
|
+
- Windsurf IDE as a supported platform in `npx multicorn-shield init`. Generates a proxy config and prints an `~/.codeium/windsurf/mcp_config.json` snippet using the Windsurf `mcpServers` / `serverUrl` schema.
|
|
82
122
|
- Auto-detection of existing Windsurf proxy entries (shows "● detected locally" in the platform selection list).
|
|
83
123
|
|
|
84
124
|
### Changed
|
|
@@ -89,23 +129,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
89
129
|
|
|
90
130
|
### Added
|
|
91
131
|
|
|
92
|
-
- New `--api-key <key>` CLI flag on `multicorn-
|
|
132
|
+
- New `--api-key <key>` CLI flag on `multicorn-shield --wrap`. Lets users run the proxy without first creating a config file.
|
|
93
133
|
- New `MULTICORN_API_KEY` environment variable support. Resolves with priority `--api-key` flag > `MULTICORN_API_KEY` env var > `~/.multicorn/config.json`.
|
|
94
|
-
- New "Local MCP / Other" option in the `multicorn-
|
|
134
|
+
- New "Local MCP / Other" option in the `multicorn-shield init` wizard. Skips the platform-specific setup steps and writes a minimal config suitable for wrapping any local MCP server with `--wrap`.
|
|
95
135
|
- SDK constructor now validates the API key format and rejects invalid keys (empty, wrong prefix, too short, or the literal placeholder `mcs_your_key_here`) with a clear error pointing at the settings page.
|
|
96
136
|
|
|
97
137
|
### Changed
|
|
98
138
|
|
|
99
|
-
- `multicorn-
|
|
100
|
-
- Error message when no API key is configured now mentions all three sources: the `--api-key` flag, the `MULTICORN_API_KEY` environment variable, and the `npx multicorn-
|
|
139
|
+
- `multicorn-shield init` platform menu now labels detected platforms as "detected locally" instead of "connected", with a dimmed dot icon instead of a green checkmark. The previous label implied account-level connection state, but the underlying detection only checks for local config files.
|
|
140
|
+
- Error message when no API key is configured now mentions all three sources: the `--api-key` flag, the `MULTICORN_API_KEY` environment variable, and the `npx multicorn-shield init` config file path.
|
|
101
141
|
- All references to the API keys settings page now use the fragment URL `https://app.multicorn.ai/settings#api-keys` instead of the previous `/settings/api-keys` path which did not exist.
|
|
102
142
|
|
|
103
143
|
### Fixed
|
|
104
144
|
|
|
105
|
-
- `multicorn-
|
|
106
|
-
- `multicorn-
|
|
107
|
-
- `multicorn-
|
|
108
|
-
- `multicorn-
|
|
145
|
+
- `multicorn-shield --wrap` now fails immediately at startup with a clear error if the configured API key is rejected by the Multicorn service. Previously the proxy logged "Agent resolved" and "Proxy ready" with empty agent state and only blocked tool calls at runtime, leaving users confused about why their setup was not working.
|
|
146
|
+
- `multicorn-shield --wrap` now correctly accepts proxy flags (`--api-key`, `--base-url`, `--log-level`, `--dashboard-url`, `--agent-name`) when they appear between `--wrap` and the wrap command. Previously the parser bailed with "requires a command to run" because the early-exit guard rejected any flag-shaped token in that position before the stripping logic ran.
|
|
147
|
+
- `multicorn-shield init` exit summary no longer renders a trailing dash for the "Local MCP / Other" option (which has no agent name). The summary line now reads `✓ Local MCP / Other` instead of `✓ Local MCP / Other -`.
|
|
148
|
+
- `multicorn-shield init` no longer prints a misleading "Next steps" block referencing "Other MCP Agent" and `--agent-name` after the "Local MCP / Other" option. The "Try it" example printed inside the option 4 branch is sufficient guidance.
|
|
109
149
|
|
|
110
150
|
## [0.6.2] - 2026-04-09
|
|
111
151
|
|
|
@@ -140,7 +180,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
140
180
|
### Added
|
|
141
181
|
|
|
142
182
|
- Multi-agent config support: `~/.multicorn/config.json` now stores an `agents` array with per-platform entries instead of a single `agentName`
|
|
143
|
-
- New CLI commands: `npx multicorn-
|
|
183
|
+
- New CLI commands: `npx multicorn-shield agents` (list configured agents) and `npx multicorn-shield delete-agent <name>` (remove an agent)
|
|
144
184
|
- New exported helpers: `getAgentByPlatform()`, `getDefaultAgent()`, `collectAgentsFromConfig()`, `deleteAgentByName()`
|
|
145
185
|
- `AgentEntry` interface exported from the SDK
|
|
146
186
|
- Automatic migration: legacy single-agent configs are upgraded to the new format on first read and written back to disk
|
|
@@ -160,7 +200,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
160
200
|
|
|
161
201
|
### Fixed
|
|
162
202
|
|
|
163
|
-
- Running `npx multicorn-
|
|
203
|
+
- Running `npx multicorn-shield init` for a second platform no longer overwrites the first agent's config
|
|
164
204
|
- `delete-agent` clears `defaultAgent` when deleting the default agent instead of leaving a dangling reference
|
|
165
205
|
|
|
166
206
|
### Security
|
package/README.md
CHANGED
|
@@ -35,21 +35,21 @@ npm install -g multicorn-shield
|
|
|
35
35
|
**Step 2: Set up your API key**
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
|
-
npx multicorn-
|
|
38
|
+
npx multicorn-shield init
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
-
The init wizard supports multiple agents. Run it again to add agents on different platforms (OpenClaw, Claude Code, Cursor) without losing existing config. Use `npx multicorn-
|
|
41
|
+
The init wizard supports multiple agents. Run it again to add agents on different platforms (OpenClaw, Claude Code, Cursor) without losing existing config. Use `npx multicorn-shield agents` to see configured agents.
|
|
42
42
|
|
|
43
43
|
**Step 3: Wrap your MCP server**
|
|
44
44
|
|
|
45
45
|
```bash
|
|
46
|
-
npx multicorn-
|
|
46
|
+
npx multicorn-shield --wrap <your-mcp-server>
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
For example, to wrap the MCP filesystem server:
|
|
50
50
|
|
|
51
51
|
```bash
|
|
52
|
-
npx multicorn-
|
|
52
|
+
npx multicorn-shield --wrap npx @modelcontextprotocol/server-filesystem /tmp
|
|
53
53
|
```
|
|
54
54
|
|
|
55
55
|
That's it. Every tool call now goes through Shield's permission layer, and activity appears in your [Multicorn dashboard](https://app.multicorn.ai) in real time.
|
|
@@ -86,7 +86,7 @@ If you're running [OpenClaw](https://openclaw.ai), Shield integrates directly as
|
|
|
86
86
|
|
|
87
87
|
```bash
|
|
88
88
|
npm install -g multicorn-shield
|
|
89
|
-
npx multicorn-
|
|
89
|
+
npx multicorn-shield init
|
|
90
90
|
```
|
|
91
91
|
|
|
92
92
|
Enter your API key when prompted. This saves your key to `~/.multicorn/config.json` and configures the OpenClaw hook environment.
|
package/dist/index.cjs
CHANGED
package/dist/index.d.cts
CHANGED
|
@@ -12,7 +12,7 @@ import { LitElement, PropertyValues, HTMLTemplateResult } from 'lit';
|
|
|
12
12
|
/**
|
|
13
13
|
* Agent client platforms supported by hosted proxy and native hooks (aligned with API validation).
|
|
14
14
|
*/
|
|
15
|
-
declare const AGENT_PLATFORM_SLUGS: readonly ["openclaw", "claude-code", "claude-desktop", "cursor", "windsurf", "cline", "gemini-cli", "other-mcp", "github-actions", "unknown"];
|
|
15
|
+
declare const AGENT_PLATFORM_SLUGS: readonly ["openclaw", "claude-code", "claude-desktop", "cursor", "windsurf", "cline", "gemini-cli", "continue-dev", "github-copilot", "goose", "kilo-code", "other-mcp", "github-actions", "unknown"];
|
|
16
16
|
type AgentPlatformSlug = (typeof AGENT_PLATFORM_SLUGS)[number];
|
|
17
17
|
/**
|
|
18
18
|
* Possible operational states for an agent.
|
package/dist/index.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ import { LitElement, PropertyValues, HTMLTemplateResult } from 'lit';
|
|
|
12
12
|
/**
|
|
13
13
|
* Agent client platforms supported by hosted proxy and native hooks (aligned with API validation).
|
|
14
14
|
*/
|
|
15
|
-
declare const AGENT_PLATFORM_SLUGS: readonly ["openclaw", "claude-code", "claude-desktop", "cursor", "windsurf", "cline", "gemini-cli", "other-mcp", "github-actions", "unknown"];
|
|
15
|
+
declare const AGENT_PLATFORM_SLUGS: readonly ["openclaw", "claude-code", "claude-desktop", "cursor", "windsurf", "cline", "gemini-cli", "continue-dev", "github-copilot", "goose", "kilo-code", "other-mcp", "github-actions", "unknown"];
|
|
16
16
|
type AgentPlatformSlug = (typeof AGENT_PLATFORM_SLUGS)[number];
|
|
17
17
|
/**
|
|
18
18
|
* Possible operational states for an agent.
|