rebranding
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"manifest_version": 3,
|
||||
"name": "ShieldAI",
|
||||
"name": "Kordant",
|
||||
"version": "0.1.0",
|
||||
"description": "AI-powered spam call, SMS, and phishing protection",
|
||||
"permissions": [
|
||||
@@ -10,8 +10,8 @@
|
||||
"notifications"
|
||||
],
|
||||
"host_permissions": [
|
||||
"https://api.shieldai.com/*",
|
||||
"https://*.shieldai.com/*"
|
||||
"https://api.kordant.ai/*",
|
||||
"https://*.kordant.ai/*"
|
||||
],
|
||||
"background": {
|
||||
"service_worker": "background.js",
|
||||
|
||||
@@ -15,10 +15,10 @@ chrome.runtime.onInstalled.addListener(async (details) => {
|
||||
const client = await getClient();
|
||||
await client.extension.linkDevice.mutate({
|
||||
extensionId,
|
||||
deviceName: "ShieldAI Browser Extension",
|
||||
deviceName: "Kordant Browser Extension",
|
||||
});
|
||||
} catch {
|
||||
console.warn("[ShieldAI] Device linking failed (will retry on auth)");
|
||||
console.warn("[Kordant] Device linking failed (will retry on auth)");
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -37,7 +37,7 @@ function addDetection(
|
||||
if (detectionHistory.length > 50) detectionHistory.pop();
|
||||
|
||||
chrome.storage.local.set({
|
||||
"shieldai:detections": detectionHistory.slice(0, 20),
|
||||
"kordant:detections": detectionHistory.slice(0, 20),
|
||||
});
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ export async function checkPhoneNumber(phoneNumber: string): Promise<SpamCheckRe
|
||||
addDetection("spam_call", phoneNumber);
|
||||
return result;
|
||||
} catch (err) {
|
||||
console.error("[ShieldAI] Failed to check number:", err);
|
||||
console.error("[Kordant] Failed to check number:", err);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -70,7 +70,7 @@ export async function classifySMS(text: string): Promise<SpamCheckResult | null>
|
||||
addDetection("spam_sms", text.slice(0, 200));
|
||||
return result;
|
||||
} catch (err) {
|
||||
console.error("[ShieldAI] Failed to classify SMS:", err);
|
||||
console.error("[Kordant] Failed to classify SMS:", err);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -84,8 +84,8 @@ chrome.runtime.onMessage.addListener((message, _sender, sendResponse) => {
|
||||
classifySMS(message.text).then(sendResponse);
|
||||
return true;
|
||||
case "GET_DETECTIONS":
|
||||
chrome.storage.local.get("shieldai:detections").then((result) => {
|
||||
sendResponse(result["shieldai:detections"] ?? []);
|
||||
chrome.storage.local.get("kordant:detections").then((result) => {
|
||||
sendResponse(result["kordant:detections"] ?? []);
|
||||
});
|
||||
return true;
|
||||
case "GET_AUTH_STATUS":
|
||||
|
||||
@@ -10,7 +10,7 @@ async function checkCurrentPage() {
|
||||
const result = checkUrlForPhishing(url);
|
||||
|
||||
if (result.isPhishing) {
|
||||
console.warn("[ShieldAI] Phishing detected:", result);
|
||||
console.warn("[Kordant] Phishing detected:", result);
|
||||
|
||||
if (settings.autoReportPhishing) {
|
||||
try {
|
||||
@@ -20,7 +20,7 @@ async function checkCurrentPage() {
|
||||
source: "content-script",
|
||||
});
|
||||
} catch (err) {
|
||||
console.error("[ShieldAI] Failed to report phishing:", err);
|
||||
console.error("[Kordant] Failed to report phishing:", err);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -11,8 +11,8 @@ const SUSPICIOUS_PATTERNS = [
|
||||
];
|
||||
|
||||
const KNOWN_PHISHING_DOMAINS = [
|
||||
"shieldai-secure.com",
|
||||
"shieldai-verify.com",
|
||||
"kordant-secure.com",
|
||||
"kordant-verify.com",
|
||||
"shield-ai-login.com",
|
||||
];
|
||||
|
||||
|
||||
@@ -2,13 +2,13 @@ import type { ExtensionSettings } from "../types";
|
||||
|
||||
const DEFAULT_SETTINGS: ExtensionSettings = {
|
||||
apiKey: null,
|
||||
apiUrl: "https://api.shieldai.com/api/trpc",
|
||||
apiUrl: "https://api.kordant.ai/api/trpc",
|
||||
notificationsEnabled: true,
|
||||
phishingDetectionEnabled: true,
|
||||
autoReportPhishing: false,
|
||||
};
|
||||
|
||||
const STORAGE_KEY = "shieldai:settings";
|
||||
const STORAGE_KEY = "kordant:settings";
|
||||
|
||||
export async function getSettings(): Promise<ExtensionSettings> {
|
||||
const result = await chrome.storage.sync.get(STORAGE_KEY);
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>ShieldAI Settings</title>
|
||||
<title>Kordant Settings</title>
|
||||
<style>
|
||||
:root {
|
||||
--primary: #6366f1;
|
||||
@@ -112,13 +112,13 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>ShieldAI Settings</h1>
|
||||
<h1>Kordant Settings</h1>
|
||||
|
||||
<div class="card">
|
||||
<h2>API Configuration</h2>
|
||||
<div class="field">
|
||||
<label for="apiUrl">API URL</label>
|
||||
<input type="url" id="apiUrl" placeholder="https://api.shieldai.com/api/trpc" />
|
||||
<input type="url" id="apiUrl" placeholder="https://api.kordant.ai/api/trpc" />
|
||||
</div>
|
||||
<div class="field">
|
||||
<label for="apiKey">API Key</label>
|
||||
|
||||
@@ -59,7 +59,7 @@ linkDeviceBtn.addEventListener("click", async () => {
|
||||
);
|
||||
const result = await client.extension.linkDevice.mutate({
|
||||
extensionId,
|
||||
deviceName: "ShieldAI Browser Extension",
|
||||
deviceName: "Kordant Browser Extension",
|
||||
});
|
||||
linkStatusEl.className = "status success";
|
||||
linkStatusEl.textContent = `Device linked! (ID: ${result.deviceId.slice(0, 8)}...)`;
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>ShieldAI</title>
|
||||
<title>Kordant</title>
|
||||
<style>
|
||||
:root {
|
||||
--primary: #6366f1;
|
||||
@@ -103,7 +103,7 @@
|
||||
<body>
|
||||
<div class="header">
|
||||
<div class="logo">S</div>
|
||||
<span style="font-weight:600;font-size:15px;">ShieldAI</span>
|
||||
<span style="font-weight:600;font-size:15px;">Kordant</span>
|
||||
<span id="authBadge" class="status-badge unlinked">Unlinked</span>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ describe("createApiClient", () => {
|
||||
let client: ReturnType<typeof createApiClient>;
|
||||
|
||||
beforeEach(() => {
|
||||
client = createApiClient("https://api.shieldai.com/api/trpc", "test-key");
|
||||
client = createApiClient("https://api.kordant.ai/api/trpc", "test-key");
|
||||
});
|
||||
|
||||
it("should create a client", () => {
|
||||
|
||||
@@ -10,9 +10,9 @@ describe("checkUrlForPhishing", () => {
|
||||
});
|
||||
|
||||
it("should detect known phishing domains", () => {
|
||||
const result = checkUrlForPhishing("https://shieldai-secure.com/login");
|
||||
const result = checkUrlForPhishing("https://kordant-secure.com/login");
|
||||
expect(result.isPhishing).toBe(true);
|
||||
expect(result.reasons).toContain("Known phishing domain: shieldai-secure.com");
|
||||
expect(result.reasons).toContain("Known phishing domain: kordant-secure.com");
|
||||
});
|
||||
|
||||
it("should detect suspicious URL patterns", () => {
|
||||
@@ -23,7 +23,7 @@ describe("checkUrlForPhishing", () => {
|
||||
|
||||
it("should detect phishing with multiple signals for high confidence", () => {
|
||||
const result = checkUrlForPhishing(
|
||||
"https://shieldai-verify.com/account-update/verify",
|
||||
"https://kordant-verify.com/account-update/verify",
|
||||
);
|
||||
expect(result.isPhishing).toBe(true);
|
||||
expect(result.confidence).toBeGreaterThan(0.5);
|
||||
@@ -37,12 +37,12 @@ describe("checkUrlForPhishing", () => {
|
||||
});
|
||||
|
||||
it("should detect phishing with subdomain of known domain", () => {
|
||||
const result = checkUrlForPhishing("https://login.shieldai-secure.com");
|
||||
const result = checkUrlForPhishing("https://login.kordant-secure.com");
|
||||
expect(result.isPhishing).toBe(true);
|
||||
});
|
||||
|
||||
it("should not flag legitimate shieldai.com URLs", () => {
|
||||
const result = checkUrlForPhishing("https://api.shieldai.com/api/trpc");
|
||||
it("should not flag legitimate kordant.ai URLs", () => {
|
||||
const result = checkUrlForPhishing("https://api.kordant.ai/api/trpc");
|
||||
expect(result.isPhishing).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user