@golproductions/check 3.2.10 → 3.2.11
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/package.json +45 -45
- package/src/index.js +16 -1
package/package.json
CHANGED
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@golproductions/check",
|
|
3
|
-
"version": "3.2.
|
|
4
|
-
"description": "Less hallucinations. A command firewall for AI agents: validates every shell command before execution, so fabricated commands are denied before they run.",
|
|
5
|
-
"bin": {
|
|
6
|
-
"check": "src/index.js",
|
|
7
|
-
"check-mcp": "src/mcp.js"
|
|
8
|
-
},
|
|
9
|
-
"type": "module",
|
|
10
|
-
"engines": {
|
|
11
|
-
"node": ">=18"
|
|
12
|
-
},
|
|
13
|
-
"files": [
|
|
14
|
-
"src/",
|
|
15
|
-
"LICENSE",
|
|
16
|
-
"README.md"
|
|
17
|
-
],
|
|
18
|
-
"keywords": [
|
|
19
|
-
"anti-hallucination",
|
|
20
|
-
"ai-hallucination",
|
|
21
|
-
"ai-agents",
|
|
22
|
-
"ai-coding-agent",
|
|
23
|
-
"claude-code",
|
|
24
|
-
"cursor",
|
|
25
|
-
"windsurf",
|
|
26
|
-
"gemini-cli",
|
|
27
|
-
"amazon-q",
|
|
28
|
-
"continue-dev",
|
|
29
|
-
"roo-code",
|
|
30
|
-
"mcp",
|
|
31
|
-
"model-context-protocol",
|
|
32
|
-
"ai-safety",
|
|
33
|
-
"developer-tools"
|
|
34
|
-
],
|
|
35
|
-
"dependencies": {
|
|
36
|
-
"@modelcontextprotocol/sdk": "^1.12.0",
|
|
37
|
-
"zod": "^3.24.0"
|
|
38
|
-
},
|
|
39
|
-
"license": "SEE LICENSE IN LICENSE",
|
|
40
|
-
"repository": {
|
|
41
|
-
"type": "git",
|
|
42
|
-
"url": "git+https://github.com/golproductions/check.git"
|
|
43
|
-
},
|
|
44
|
-
"homepage": "https://golproductions.com/check"
|
|
45
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@golproductions/check",
|
|
3
|
+
"version": "3.2.11",
|
|
4
|
+
"description": "Less hallucinations. A command firewall for AI agents: validates every shell command before execution, so fabricated commands are denied before they run.",
|
|
5
|
+
"bin": {
|
|
6
|
+
"check": "src/index.js",
|
|
7
|
+
"check-mcp": "src/mcp.js"
|
|
8
|
+
},
|
|
9
|
+
"type": "module",
|
|
10
|
+
"engines": {
|
|
11
|
+
"node": ">=18"
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"src/",
|
|
15
|
+
"LICENSE",
|
|
16
|
+
"README.md"
|
|
17
|
+
],
|
|
18
|
+
"keywords": [
|
|
19
|
+
"anti-hallucination",
|
|
20
|
+
"ai-hallucination",
|
|
21
|
+
"ai-agents",
|
|
22
|
+
"ai-coding-agent",
|
|
23
|
+
"claude-code",
|
|
24
|
+
"cursor",
|
|
25
|
+
"windsurf",
|
|
26
|
+
"gemini-cli",
|
|
27
|
+
"amazon-q",
|
|
28
|
+
"continue-dev",
|
|
29
|
+
"roo-code",
|
|
30
|
+
"mcp",
|
|
31
|
+
"model-context-protocol",
|
|
32
|
+
"ai-safety",
|
|
33
|
+
"developer-tools"
|
|
34
|
+
],
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"@modelcontextprotocol/sdk": "^1.12.0",
|
|
37
|
+
"zod": "^3.24.0"
|
|
38
|
+
},
|
|
39
|
+
"license": "SEE LICENSE IN LICENSE",
|
|
40
|
+
"repository": {
|
|
41
|
+
"type": "git",
|
|
42
|
+
"url": "git+https://github.com/golproductions/check.git"
|
|
43
|
+
},
|
|
44
|
+
"homepage": "https://golproductions.com/check"
|
|
45
|
+
}
|
package/src/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import { homedir, platform, arch } from "node:os";
|
|
|
6
6
|
import { pipeline } from "node:stream/promises";
|
|
7
7
|
import { Readable } from "node:stream";
|
|
8
8
|
|
|
9
|
-
const VERSION = "3.2.
|
|
9
|
+
const VERSION = "3.2.11";
|
|
10
10
|
const BINARY_VERSION = "3.0.0";
|
|
11
11
|
const API = "https://triage.golproductions.com/preflight";
|
|
12
12
|
const CDN = "https://pub-e55366a7f5994be9be04f0e205179f4a.r2.dev/releases";
|
|
@@ -888,6 +888,21 @@ async function main() {
|
|
|
888
888
|
// (HTTP 402) falls through to the generic "denied" below and reads like
|
|
889
889
|
// the command itself was rejected.
|
|
890
890
|
if (!res.ok) {
|
|
891
|
+
// Rate limit is a traffic state, not a verdict. A deny must mean "your
|
|
892
|
+
// command is wrong", never "you typed too fast" — heavy agent sessions
|
|
893
|
+
// hit 60/min in normal use. Same trade as the credits wall: warn, let
|
|
894
|
+
// the command run ungated, resume when the window clears.
|
|
895
|
+
if (res.status === 429 || /rate limit/i.test(d.reason || d.error || "")) {
|
|
896
|
+
outCreditsExhausted(f, "check: rate limited (60 checks/min), command ran unverified. Check resumes automatically.");
|
|
897
|
+
return;
|
|
898
|
+
}
|
|
899
|
+
// Server-side failure is the service breaking, not the command being
|
|
900
|
+
// wrong. Same law as an unreachable network (Terms, section 5): the
|
|
901
|
+
// gate's own outage must never block the user's work.
|
|
902
|
+
if (res.status >= 500) {
|
|
903
|
+
outCreditsExhausted(f, "check: validation service error (HTTP " + res.status + "), command ran unverified. Check resumes automatically.");
|
|
904
|
+
return;
|
|
905
|
+
}
|
|
891
906
|
if (res.status === 402) {
|
|
892
907
|
const free = d.daily_free || 120;
|
|
893
908
|
const upsell = d.upgrade || "Top up at https://www.golproductions.com/console.html";
|