@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.
Files changed (2) hide show
  1. package/package.json +45 -45
  2. package/src/index.js +16 -1
package/package.json CHANGED
@@ -1,45 +1,45 @@
1
- {
2
- "name": "@golproductions/check",
3
- "version": "3.2.10",
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.10";
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";