feat: Random.org dice and daily word matrix, interpreter voices, curated lexicon
Wire cleromancy rolls and the once-per-UTC-day 000-999 word shuffle to RANDOM.ORG JSON-RPC, with a local CSPRNG fallback. Add settings for interpreter personas and a cleaner default oracle prompt. Replace proper names and bureaucratic filler in the 1000-word lexicon with sacred symbols.
This commit is contained in:
@@ -63,9 +63,7 @@ class CopilotApp extends BaseProvider {
|
||||
startReq.headers.addAll({
|
||||
'content-type': 'application/json',
|
||||
'user-agent': _ua,
|
||||
'origin': url,
|
||||
'referer': '$url/',
|
||||
'X-Search-UILang': 'en-US',
|
||||
'X-Search-UILang': 'en-US', 'Host': 'copilot.microsoft.com',
|
||||
});
|
||||
startReq.body = jsonEncode({
|
||||
'timeZone': 'Europe/Moscow',
|
||||
@@ -94,7 +92,6 @@ class CopilotApp extends BaseProvider {
|
||||
wsUrl,
|
||||
headers: {
|
||||
'User-Agent': _ua,
|
||||
'Origin': url,
|
||||
'Pragma': 'no-cache',
|
||||
'Cache-Control': 'no-cache',
|
||||
if (cookieHeader.isNotEmpty) 'Cookie': cookieHeader,
|
||||
@@ -239,7 +236,7 @@ class CopilotApp extends BaseProvider {
|
||||
List<CookieSeed> _fakeCookieSeeds() {
|
||||
return [
|
||||
CookieSeed(name: '_C_ETH', value: '1', domain: '.microsoft.com'),
|
||||
CookieSeed(name: '_C_Auth', value: '', domain: '.microsoft.com'),
|
||||
|
||||
CookieSeed(name: 'MUID', value: _hex(32), domain: '.microsoft.com'),
|
||||
CookieSeed(name: 'MUIDB', value: _hex(32), domain: '.microsoft.com'),
|
||||
CookieSeed(
|
||||
|
||||
@@ -27,7 +27,7 @@ class DuckDuckGo extends WebViewBaseProvider {
|
||||
String get defaultModel => 'gpt-5.6-luna';
|
||||
|
||||
@override
|
||||
String get baseUrl => 'https://duck.ai/';
|
||||
String get baseUrl => 'https://duckduckgo.com/';
|
||||
|
||||
@override
|
||||
String get apiEndpoint => 'https://duckduckgo.com/duckchat/v1/chat';
|
||||
|
||||
@@ -51,7 +51,7 @@ class HuggingChat extends WebViewBaseProvider {
|
||||
if (!convRes.ok) {
|
||||
return JSON.stringify({error: 'HuggingChat login required: ' + convRes.status + ' ' + await convRes.text()});
|
||||
}
|
||||
const conv = await convRes.json();
|
||||
const text = await convRes.text(); const conv = text ? JSON.parse(text) : {};
|
||||
const id = conv.json?.id || conv.id || conv.conversationId;
|
||||
if (!id) return JSON.stringify({error: 'no conversation id', raw: conv});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user