Extend Silent Send to intercept API requests on all major AI chat services. Each service has different API shapes: - ChatGPT: /backend-api/conversation with content.parts arrays - Grok: GraphQL + /2/grok/add_response with message field - Gemini: form-encoded f.req with nested arrays (+ generateContent) - OpenWebUI: /api/chat and /ollama/api/chat (self-hosted) All services share the same substitution pipeline. Manifests updated for both Chrome and Firefox with host_permissions for all domains. OpenWebUI supported via localhost/127.0.0.1 for self-hosted instances. https://claude.ai/code/session_01Dvgwe7XMoSxnWXkih8p1Cw
73 lines
1.8 KiB
JSON
73 lines
1.8 KiB
JSON
{
|
|
"manifest_version": 3,
|
|
"name": "Silent Send",
|
|
"version": "0.2.0",
|
|
"description": "Intercepts personal info and substitutes it with user-defined replacements before sending to AI services.",
|
|
"permissions": [
|
|
"storage",
|
|
"activeTab",
|
|
"scripting"
|
|
],
|
|
"host_permissions": [
|
|
"https://claude.ai/*",
|
|
"https://chatgpt.com/*",
|
|
"https://chat.openai.com/*",
|
|
"https://grok.x.ai/*",
|
|
"https://x.com/i/grok*",
|
|
"https://gemini.google.com/*",
|
|
"http://localhost/*",
|
|
"http://127.0.0.1/*"
|
|
],
|
|
"background": {
|
|
"service_worker": "src/background/service-worker.js",
|
|
"type": "module"
|
|
},
|
|
"content_scripts": [
|
|
{
|
|
"matches": [
|
|
"https://claude.ai/*",
|
|
"https://chatgpt.com/*",
|
|
"https://chat.openai.com/*",
|
|
"https://grok.x.ai/*",
|
|
"https://x.com/i/grok*",
|
|
"https://gemini.google.com/*",
|
|
"http://localhost/*",
|
|
"http://127.0.0.1/*"
|
|
],
|
|
"js": ["src/content/injector.js"],
|
|
"css": ["src/content/content.css"],
|
|
"run_at": "document_start",
|
|
"all_frames": true
|
|
}
|
|
],
|
|
"action": {
|
|
"default_popup": "src/popup/popup.html",
|
|
"default_icon": {
|
|
"16": "icons/icon16.svg",
|
|
"48": "icons/icon48.svg",
|
|
"128": "icons/icon128.svg"
|
|
}
|
|
},
|
|
"options_page": "src/options/options.html",
|
|
"icons": {
|
|
"16": "icons/icon16.svg",
|
|
"48": "icons/icon48.svg",
|
|
"128": "icons/icon128.svg"
|
|
},
|
|
"web_accessible_resources": [
|
|
{
|
|
"resources": ["src/content/content.js"],
|
|
"matches": [
|
|
"https://claude.ai/*",
|
|
"https://chatgpt.com/*",
|
|
"https://chat.openai.com/*",
|
|
"https://grok.x.ai/*",
|
|
"https://x.com/*",
|
|
"https://gemini.google.com/*",
|
|
"http://localhost/*",
|
|
"http://127.0.0.1/*"
|
|
]
|
|
}
|
|
]
|
|
}
|