@solongate/proxy 0.81.97 → 0.81.99

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,72 +1,74 @@
1
- # @solongate/proxy
1
+ <div align="center">
2
+ <img src="https://solongate.com/hero.png" alt="SolonGate. For AI agents to execute tools safely. Make agents secure again." width="900" />
3
+ </div>
2
4
 
3
- > **Don't `npm i` this.** There's nothing to import. Run the two commands below to pair your machine:
4
- > ```bash
5
- > npm i -g @solongate/proxy
6
- > solongate
7
- > ```
5
+ <a href="https://github.com/Solongate"><img alt="GitHub" src="https://img.shields.io/badge/GitHub-111111?style=flat-square&logo=github&logoColor=white" height="24" /></a>
6
+ <a href="https://www.linkedin.com/company/solongate/"><img alt="LinkedIn" src="https://img.shields.io/badge/LinkedIn-111111?style=flat-square&logo=linkedin&logoColor=white" height="24" /></a>
8
7
 
9
- **Security for AI agents.** SolonGate checks every action an AI agent takes. Each tool call (shell command, file read or write, network request) is allowed, blocked, or logged before it runs, based on a policy you control. No code changes.
8
+ <p align="center">
9
+ <a href="https://nodejs.org"><img alt="Node.js" src="https://img.shields.io/node/v/@solongate/proxy?style=flat-square&label=Node.js&labelColor=111111&color=eeeeee&logo=nodedotjs&logoColor=white" /></a>
10
+ <a href="https://www.npmjs.com/package/@solongate/proxy"><img alt="npm" src="https://img.shields.io/npm/v/@solongate/proxy?style=flat-square&color=eeeeee&labelColor=111111&logo=npm&logoColor=white" /></a>
11
+ </p>
10
12
 
11
- ```
12
- AI agent ──(tool call)──> SolonGate guard ──> Tool runs
13
-
14
- [ policy check ]
15
- [ allow / block / log ]
16
- ```
13
+ SolonGate is the guardrail for AI agents. It checks every action an agent takes (each shell command, file read or write, and network request) and allows, blocks, or logs it before it runs, based on a policy you control. No code changes.
17
14
 
18
- SolonGate is fully managed. There is nothing to host: pair your machine with one command, then manage policies and review logs at [dashboard.solongate.com](https://dashboard.solongate.com).
15
+ **[solongate.com](https://solongate.com)** | [Documentation](https://solongate.com/docs) | [Dashboard](https://dashboard.solongate.com)
19
16
 
20
- ## Quick start
17
+ <div align="center">
18
+ <img src="https://solongate.com/flow.gif" alt="A tool call from an AI agent passes through SolonGate, which runs a policy check, DLP scan, and rate limit, then allows, blocks, or logs it before the tool runs" width="900" />
19
+ </div>
21
20
 
22
- **You need:** a free [SolonGate account](https://auth.solongate.com), Node.js 18+ on the machine you want to protect, and an AI tool that makes tool calls (Claude Code; Gemini CLI is also supported).
21
+ ## Get started
23
22
 
24
- Pair the machine and turn on the guard. There are no API keys to copy. First fetch SolonGate, then log in:
23
+ > **Don't `npm i` this.** There's nothing to import. Run the two commands below to pair your machine.
25
24
 
26
- ```bash
25
+ You need a free [SolonGate account](https://auth.solongate.com) and Node.js 20+ on the machine you want to protect.
26
+
27
+ ```sh
27
28
  npm i -g @solongate/proxy
28
29
  solongate
29
30
  ```
30
31
 
31
- This opens your browser to authorize the device. Approve it from your signed-in dashboard and SolonGate installs a global guard hook that intercepts every tool call from every AI session on the machine and checks it against your active policy.
32
+ `solongate` opens your browser to authorize the device. Approve it and SolonGate installs a global guard hook that checks every tool call from every AI session on the machine against your active policy. No API keys to copy.
32
33
 
33
34
  > Start a **new** terminal session afterwards. Hooks load when a session starts, so already-open terminals aren't guarded yet.
34
35
 
35
- ## Write a policy
36
+ ## Guarding a live Claude Code session
37
+
38
+ Drops in front of any MCP-speaking agent over stdio, SSE, or HTTP. Every tool call is checked in real time, and each allow or deny decision streams to your dashboard with the full arguments attached.
36
39
 
37
- Open **Policies** in the dashboard and create one. A policy is a set of rules. Each rule targets a tool plus a constraint (path, command, filename, or URL) and is either ALLOW or DENY. Two modes:
40
+ <img src="https://solongate.com/claudecode.gif" alt="SolonGate guarding a live Claude Code session" width="720" />
38
41
 
39
- - **Denylist:** everything is allowed except what you block (for example, deny any file named `*.env`, or commands matching `*rm -rf*`).
40
- - **Whitelist:** nothing is allowed except what you permit.
42
+ ## Command center for every decision area
41
43
 
42
- Click **Activate** to make a policy the one the guard enforces. It takes effect on the next tool call.
44
+ Live analytics by tool, agent, and policy. Version your policies with cloud sync and one-click rollback. Every decision lands in a tamper-evident, searchable audit trail you can export as CSV.
45
+
46
+ <img src="https://solongate.com/solongatedashboard.gif" alt="SolonGate dashboard: analytics, policies, and audit trail" width="720" />
43
47
 
44
48
  ## What SolonGate can enforce
45
49
 
46
50
  - **Policy rules:** allow or block tool calls by path, command, filename, or URL.
47
- - **Ghost paths:** make chosen files and folders invisible to the agent. They don't show up in listings and can't be read.
48
- - **Data loss prevention (DLP):** if a call contains a secret (API key, token, private key), block it, or hide the secret in the output the model sees.
51
+ - **Ghost paths:** make chosen files and folders invisible to the agent, unlistable and unreadable.
52
+ - **Data loss prevention (DLP):** when a call carries a secret (API key, token, private key), block it or hide it from the model.
49
53
  - **Rate limiting:** cap how many tool calls an agent can make per minute, hour, or day.
50
54
 
51
- ## Review the audit log
52
-
53
- Every decision shows up under **Audit**: what was allowed, what was blocked, and which rule matched. Each agent run is also grouped as a **session** with its own timeline. When a legitimate action is blocked, open the entry and click **Whitelist this**: SolonGate adds a narrow ALLOW exception for exactly that action. Revoke any exception from **Granted exceptions**.
54
-
55
- ## Keep logs on your own machine
56
-
57
- Prefer to keep everything local? In **Settings**, turn on **Local log storage** and pick a folder. Every decision is written there as a JSON line, and nothing is sent to SolonGate cloud.
58
-
59
- ## Get alerted
60
-
61
- Set a threshold in **Settings** and SolonGate notifies you by Telegram, email, or webhook when blocks spike.
62
-
63
- ## Why SolonGate?
64
-
65
- AI agents get direct access to your system: shell, file system, databases, network. SolonGate sits between the agent and the action, enforcing your policy on every tool call before it runs, and recording every decision for audit.
66
-
67
- - **Docs:** [solongate.com/docs](https://solongate.com/docs)
68
- - **Dashboard:** [dashboard.solongate.com](https://dashboard.solongate.com)
69
-
70
- ## License
71
-
72
- MIT
55
+ Manage everything from the **Policies**, **Audit**, and **Settings** pages in the [dashboard](https://dashboard.solongate.com). When a legitimate action is blocked, click **Whitelist this** to add a narrow exception. Keep logs local instead of in the cloud, and get alerted by Telegram, email, or webhook when blocks spike.
56
+
57
+ ## Integrations
58
+
59
+ **Compatible with every tool.** SolonGate guards any MCP-speaking agent out of the box. Missing yours? [Reach out](https://solongate.com/contact) and we will consider it.
60
+
61
+ <table>
62
+ <tr>
63
+ <td align="center" width="140"><a href="https://claude.com/claude-code"><img src="https://solongate.com/platforms/claude.png" width="44" height="44" alt="Claude Code" /><br/>Claude Code</a></td>
64
+ <td align="center" width="140"><a href="https://github.com/google-gemini/gemini-cli"><img src="https://solongate.com/platforms/gemini.png" width="44" height="44" alt="Gemini CLI" /><br/>Gemini CLI</a></td>
65
+ <td align="center" width="140"><a href="https://openclaw.ai"><img src="https://solongate.com/platforms/openclaw.png" width="44" height="44" alt="OpenClaw" /><br/>OpenClaw<br/><sub>soon</sub></a></td>
66
+ <td align="center" width="140"><a href="https://openai.com/codex"><img src="https://solongate.com/platforms/codex.png" width="44" height="44" alt="Codex" /><br/>Codex<br/><sub>soon</sub></a></td>
67
+ </tr>
68
+ <tr>
69
+ <td align="center" width="140"><a href="https://hermes.nousresearch.com"><img src="https://solongate.com/platforms/hermes.png" width="44" height="44" alt="Hermes" /><br/>Hermes<br/><sub>soon</sub></a></td>
70
+ <td align="center" width="140"><a href="https://opencode.ai"><img src="https://solongate.com/platforms/opencode.png" width="44" height="44" alt="OpenCode" /><br/>OpenCode<br/><sub>soon</sub></a></td>
71
+ <td align="center" width="140"><a href="https://kilocode.ai"><img src="https://solongate.com/platforms/kilo.png" width="44" height="44" alt="Kilo" /><br/>Kilo<br/><sub>soon</sub></a></td>
72
+ <td align="center" width="140"><a href="https://solongate.com/contact"><b>+</b><br/>Your tool</a></td>
73
+ </tr>
74
+ </table>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solongate/proxy",
3
- "version": "0.81.97",
3
+ "version": "0.81.99",
4
4
  "description": "AI tool security proxy: protect any AI tool server with customizable policies, path/command constraints, rate limiting, and audit logging. No code changes required.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -23,7 +23,7 @@
23
23
  },
24
24
  "files": [
25
25
  "dist",
26
- "hooks",
26
+ "hooks/*.mjs",
27
27
  "README.md"
28
28
  ],
29
29
  "scripts": {
@@ -56,7 +56,7 @@
56
56
  "url": "https://github.com/solongate/solongate"
57
57
  },
58
58
  "engines": {
59
- "node": ">=18.0.0"
59
+ "node": ">=20.0.0"
60
60
  },
61
61
  "dependencies": {
62
62
  "@modelcontextprotocol/sdk": "^1.26.0",
@@ -1,71 +0,0 @@
1
- {"ms":2,"ts":1784136532559,"tool":"Bash","session":"4aefeb66-3bff-4335-b710-e4f70d3adadf"}
2
- {"ms":4,"ts":1784136544239,"tool":"Bash","session":"4aefeb66-3bff-4335-b710-e4f70d3adadf"}
3
- {"ms":2,"ts":1784136555335,"tool":"Bash","session":"4aefeb66-3bff-4335-b710-e4f70d3adadf"}
4
- {"ms":4,"ts":1784136601528,"tool":"Bash","session":"4aefeb66-3bff-4335-b710-e4f70d3adadf"}
5
- {"ms":2,"ts":1784137482457,"tool":"Bash","session":"4aefeb66-3bff-4335-b710-e4f70d3adadf"}
6
- {"ms":4,"ts":1784137524268,"tool":"Bash","session":"4aefeb66-3bff-4335-b710-e4f70d3adadf"}
7
- {"ms":5,"ts":1784138159970,"tool":"Bash","session":"4aefeb66-3bff-4335-b710-e4f70d3adadf"}
8
- {"ms":2,"ts":1784138167398,"tool":"Bash","session":"4aefeb66-3bff-4335-b710-e4f70d3adadf"}
9
- {"ms":3,"ts":1784325350846,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
10
- {"ms":6,"ts":1784325372017,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
11
- {"ms":3,"ts":1784325440597,"tool":"AskUserQuestion","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
12
- {"ms":4,"ts":1784325486162,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
13
- {"ms":2,"ts":1784325515528,"tool":"AskUserQuestion","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
14
- {"ms":3,"ts":1784326355922,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
15
- {"ms":2,"ts":1784326365762,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
16
- {"ms":3,"ts":1784326398280,"tool":"Edit","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
17
- {"ms":1,"ts":1784326403539,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
18
- {"ms":2,"ts":1784359530309,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
19
- {"ms":4,"ts":1784359565744,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
20
- {"ms":3,"ts":1784359892056,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
21
- {"ms":2,"ts":1784359899408,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
22
- {"ms":3,"ts":1784359942766,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
23
- {"ms":3,"ts":1784359948446,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
24
- {"ms":5,"ts":1784360088630,"tool":"Write","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
25
- {"ms":2,"ts":1784360093227,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
26
- {"ms":4,"ts":1784360125661,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
27
- {"ms":2,"ts":1784360134508,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
28
- {"ms":5,"ts":1784360234461,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
29
- {"ms":4,"ts":1784360256656,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
30
- {"ms":5,"ts":1784365255204,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
31
- {"ms":4,"ts":1784365279092,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
32
- {"ms":4,"ts":1784365328385,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
33
- {"ms":4,"ts":1784365360712,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
34
- {"ms":4,"ts":1784365375478,"tool":"Write","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
35
- {"ms":3,"ts":1784365383985,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
36
- {"ms":9,"ts":1784365415903,"tool":"Write","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
37
- {"ms":4,"ts":1784365422626,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
38
- {"ms":5,"ts":1784365497358,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
39
- {"ms":4,"ts":1784365509533,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
40
- {"ms":4,"ts":1784365523577,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
41
- {"ms":1,"ts":1784365524083,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
42
- {"ms":2,"ts":1784365525077,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
43
- {"ms":3,"ts":1784365525605,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
44
- {"ms":3,"ts":1784365526627,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
45
- {"ms":2,"ts":1784365527031,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
46
- {"ms":5,"ts":1784366243066,"tool":"Write","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
47
- {"ms":3,"ts":1784366250503,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
48
- {"ms":4,"ts":1784366281171,"tool":"Write","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
49
- {"ms":2,"ts":1784366288049,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
50
- {"ms":3,"ts":1784367337998,"tool":"Write","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
51
- {"ms":2,"ts":1784367345104,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
52
- {"ms":4,"ts":1784367420866,"tool":"Write","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
53
- {"ms":2,"ts":1784367428790,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
54
- {"ms":3,"ts":1784369708978,"tool":"Write","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
55
- {"ms":4,"ts":1784369720104,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
56
- {"ms":4,"ts":1784374757475,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
57
- {"ms":2,"ts":1784374762962,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
58
- {"ms":4,"ts":1784374792946,"tool":"Write","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
59
- {"ms":4,"ts":1784374838495,"tool":"Write","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
60
- {"ms":3,"ts":1784374848281,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
61
- {"ms":4,"ts":1784375224287,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
62
- {"ms":5,"ts":1784375813890,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
63
- {"ms":3,"ts":1784376258704,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
64
- {"ms":6,"ts":1784376281596,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
65
- {"ms":6,"ts":1784376313566,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
66
- {"ms":6,"ts":1784376391108,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
67
- {"ms":5,"ts":1784376414971,"tool":"Write","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
68
- {"ms":3,"ts":1784376423302,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
69
- {"ms":2,"ts":1784376491365,"tool":"Bash","session":"t2"}
70
- {"ms":3,"ts":1784376536945,"tool":"Bash","session":"t2"}
71
- {"ms":6,"ts":1784376555716,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
@@ -1 +0,0 @@
1
- {"tool":"Bash","ts":1784376536900}
@@ -1 +0,0 @@
1
- {"ms":6,"ts":1784376555716,"tool":"Bash","session":"f5933c65-c315-4440-9afb-7136fce6b695"}
@@ -1 +0,0 @@
1
- 1784376536991