From: maximiliancw Date: Fri, 9 Jan 2026 14:21:23 +0000 (+0100) Subject: Prepare for merge with breaking changes from remote origin X-Git-Url: http://git.99rst.org/?a=commitdiff_plain;h=b24568fb64bfa82c17f1939ad9a2998af820cab0;p=sgasser-llm-shield.git Prepare for merge with breaking changes from remote origin --- diff --git a/src/index.ts b/src/index.ts index 2019698..a1e4358 100644 --- a/src/index.ts +++ b/src/index.ts @@ -165,8 +165,8 @@ Provider: console.log(` ╔═══════════════════════════════════════════════════════════╗ -║ LLM-Shield ║ -║ Intelligent privacy-aware LLM proxy ║ +║ PasteGuard ║ +║ Guard your paste - Privacy-aware LLM proxy ║ ╚═══════════════════════════════════════════════════════════╝ Server: http://${host}:${port} diff --git a/src/routes/proxy.test.ts b/src/routes/proxy.test.ts index 44067ef..9c7da94 100644 --- a/src/routes/proxy.test.ts +++ b/src/routes/proxy.test.ts @@ -84,8 +84,8 @@ NhAAAAAwEAAQAAAIEAyK8v5Q8v5Q8v5Q8v5Q8v5Q8v5Q8v5Q8v5Q8v5Q8v5Q8v5Q8v5Q8v expect(body.error.details.secrets_detected).toContain("OPENSSH_PRIVATE_KEY"); // Check headers - expect(res.headers.get("X-LLM-Shield-Secrets-Detected")).toBe("true"); - expect(res.headers.get("X-LLM-Shield-Secrets-Types")).toContain("OPENSSH_PRIVATE_KEY"); + expect(res.headers.get("X-PasteGuard-Secrets-Detected")).toBe("true"); + expect(res.headers.get("X-PasteGuard-Secrets-Types")).toContain("OPENSSH_PRIVATE_KEY"); }); test("blocks request with PEM private key", async () => { @@ -114,7 +114,7 @@ MIIEpAIBAAKCAQEAyK8v5Q8v5Q8v5Q8v5Q8v5Q8v5Q8v5Q8v5Q8v5Q8v5Q8v5Q8v error: { details: { secrets_detected: string[] } }; }; expect(body.error.details.secrets_detected).toContain("PEM_PRIVATE_KEY"); - expect(res.headers.get("X-LLM-Shield-Secrets-Detected")).toBe("true"); + expect(res.headers.get("X-PasteGuard-Secrets-Detected")).toBe("true"); }); test("allows request without secrets", async () => { @@ -135,7 +135,7 @@ MIIEpAIBAAKCAQEAyK8v5Q8v5Q8v5Q8v5Q8v5Q8v5Q8v5Q8v5Q8v5Q8v5Q8v5Q8v // Should not be blocked (may fail for other reasons like missing auth, but not 422) expect(res.status).not.toBe(422); // Should not have secrets detection headers - expect(res.headers.get("X-LLM-Shield-Secrets-Detected")).toBeNull(); + expect(res.headers.get("X-PasteGuard-Secrets-Detected")).toBeNull(); }); test("does not set secrets headers when no secrets detected", async () => { @@ -154,7 +154,7 @@ MIIEpAIBAAKCAQEAyK8v5Q8v5Q8v5Q8v5Q8v5Q8v5Q8v5Q8v5Q8v5Q8v5Q8v5Q8v }); // Should not have secrets headers - expect(res.headers.get("X-LLM-Shield-Secrets-Detected")).toBeNull(); - expect(res.headers.get("X-LLM-Shield-Secrets-Types")).toBeNull(); + expect(res.headers.get("X-PasteGuard-Secrets-Detected")).toBeNull(); + expect(res.headers.get("X-PasteGuard-Secrets-Types")).toBeNull(); }); }); diff --git a/src/routes/proxy.ts b/src/routes/proxy.ts index 3466f2f..5a79c39 100644 --- a/src/routes/proxy.ts +++ b/src/routes/proxy.ts @@ -85,8 +85,8 @@ proxyRoutes.post( const secretTypesStr = secretTypes.join(", "); // Set headers before returning error - c.header("X-LLM-Shield-Secrets-Detected", "true"); - c.header("X-LLM-Shield-Secrets-Types", secretTypesStr); + c.header("X-PasteGuard-Secrets-Detected", "true"); + c.header("X-PasteGuard-Secrets-Types", secretTypesStr); // Block action (Phase 1) - return 422 error if (config.secrets_detection.action === "block") { @@ -179,7 +179,7 @@ async function handleCompletion( } } - setShieldHeaders(c, decision, secretsDetected, secretsTypes); + setPasteGuardHeaders(c, decision, secretsDetected, secretsTypes); if (result.isStreaming) { return handleStreamingResponse( @@ -212,27 +212,27 @@ async function handleCompletion( } /** - * Set X-LLM-Shield response headers + * Set X-PasteGuard response headers */ -function setShieldHeaders( +function setPasteGuardHeaders( c: Context, decision: RoutingDecision, secretsDetected?: boolean, secretsTypes?: string[], ) { - c.header("X-LLM-Shield-Mode", decision.mode); - c.header("X-LLM-Shield-Provider", decision.provider); - c.header("X-LLM-Shield-PII-Detected", decision.piiResult.hasPII.toString()); - c.header("X-LLM-Shield-Language", decision.piiResult.language); + c.header("X-PasteGuard-Mode", decision.mode); + c.header("X-PasteGuard-Provider", decision.provider); + c.header("X-PasteGuard-PII-Detected", decision.piiResult.hasPII.toString()); + c.header("X-PasteGuard-Language", decision.piiResult.language); if (decision.piiResult.languageFallback) { - c.header("X-LLM-Shield-Language-Fallback", "true"); + c.header("X-PasteGuard-Language-Fallback", "true"); } if (decision.mode === "mask") { - c.header("X-LLM-Shield-PII-Masked", decision.piiResult.hasPII.toString()); + c.header("X-PasteGuard-PII-Masked", decision.piiResult.hasPII.toString()); } if (secretsDetected && secretsTypes) { - c.header("X-LLM-Shield-Secrets-Detected", "true"); - c.header("X-LLM-Shield-Secrets-Types", secretsTypes.join(",")); + c.header("X-PasteGuard-Secrets-Detected", "true"); + c.header("X-PasteGuard-Secrets-Types", secretsTypes.join(",")); } }