Skip to content

Commit ff5a843

Browse files
committed
Bumped ai-chat-apis.json
1 parent b529a64 commit ff5a843

File tree

4 files changed

+24
-20
lines changed

4 files changed

+24
-20
lines changed

amazongpt/greasemonkey/amazongpt.user.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
// @description Adds the magic of AI to Amazon shopping
44
// @author KudoAI
55
// @namespace https://kudoai.com
6-
// @version 2025.1.26
6+
// @version 2025.1.26.1
77
// @license MIT
88
// @icon https://amazongpt.kudoai.com/assets/images/icons/amazongpt/black-gold-teal/icon48.png?v=0fddfc7
99
// @icon64 https://amazongpt.kudoai.com/assets/images/icons/amazongpt/black-gold-teal/icon64.png?v=0fddfc7
@@ -226,7 +226,7 @@
226226

227227
// Init API data
228228
const apis = Object.assign(Object.create(null), await new Promise(resolve => xhr({
229-
method: 'GET', url: 'https://assets.aiwebextensions.com/data/ai-chat-apis.json?v=b7a8a8b',
229+
method: 'GET', url: 'https://assets.aiwebextensions.com/data/ai-chat-apis.json?v=b529a64',
230230
onload: resp => resolve(JSON.parse(resp.responseText))
231231
})))
232232
apis.AIchatOS.userID = '#/chat/' + Date.now()
@@ -2631,9 +2631,9 @@
26312631
const dataProcess = {
26322632

26332633
initFailFlags(api) { // escape/merge URLs w/ fail flags
2634-
const { failFlags = [], endpoint = apis[api].endpoints.completions, expectedOrigin } = apis[api],
2634+
const { respPatterns = {}, endpoint = apis[api].endpoints.completions, expectedOrigin } = apis[api],
26352635
escapedAPIurls = [endpoint, expectedOrigin.url].map(url => url.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'))
2636-
return new RegExp([...failFlags, ...escapedAPIurls].join('|'))
2636+
return new RegExp([respPatterns.fail, ...escapedAPIurls].filter(Boolean).join('|'))
26372637
},
26382638

26392639
stream(resp, { caller, callerAPI }) {
@@ -2649,7 +2649,8 @@
26492649

26502650
// Handle stream done
26512651
const respChunk = new TextDecoder('utf8').decode(new Uint8Array(value))
2652-
if (done || respChunk.includes(apis[callerAPI].watermark)) return handleProcessCompletion()
2652+
if (done || respChunk.includes(apis[callerAPI].respPatterns?.watermark))
2653+
return handleProcessCompletion()
26532654
if (env.browser.isChromium) { // clear/add timeout since ReadableStream.getReader() doesn't signal done
26542655
clearTimeout(this.timeout) ; this.timeout = setTimeout(handleProcessCompletion, 1500) }
26552656

bravegpt/greasemonkey/bravegpt.user.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@
148148
// @description:zu Yengeza izimpendulo ze-AI ku-Brave Search (inikwa amandla yi-GPT-4o!)
149149
// @author KudoAI
150150
// @namespace https://kudoai.com
151-
// @version 2025.1.26
151+
// @version 2025.1.26.1
152152
// @license MIT
153153
// @icon https://assets.bravegpt.com/images/icons/bravegpt/icon48.png?v=df624b0
154154
// @icon64 https://assets.bravegpt.com/images/icons/bravegpt/icon64.png?v=df624b0
@@ -380,7 +380,7 @@
380380

381381
// Init API data
382382
const apis = Object.assign(Object.create(null), await new Promise(resolve => xhr({
383-
method: 'GET', url: 'https://assets.aiwebextensions.com/data/ai-chat-apis.json?v=b7a8a8b',
383+
method: 'GET', url: 'https://assets.aiwebextensions.com/data/ai-chat-apis.json?v=b529a64',
384384
onload: resp => resolve(JSON.parse(resp.responseText))
385385
})))
386386
apis.AIchatOS.userID = '#/chat/' + Date.now()
@@ -3381,9 +3381,9 @@
33813381
const dataProcess = {
33823382

33833383
initFailFlags(api) { // escape/merge URLs w/ fail flags
3384-
const { failFlags = [], endpoint = apis[api].endpoints.completions, expectedOrigin } = apis[api],
3384+
const { respPatterns = {}, endpoint = apis[api].endpoints.completions, expectedOrigin } = apis[api],
33853385
escapedAPIurls = [endpoint, expectedOrigin.url].map(url => url.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'))
3386-
return new RegExp([...failFlags, ...escapedAPIurls].join('|'))
3386+
return new RegExp([respPatterns.fail, ...escapedAPIurls].filter(Boolean).join('|'))
33873387
},
33883388

33893389
stream(resp, { caller, callerAPI }) {
@@ -3399,7 +3399,8 @@
33993399

34003400
// Handle stream done
34013401
const respChunk = new TextDecoder('utf8').decode(new Uint8Array(value))
3402-
if (done || respChunk.includes(apis[callerAPI].watermark)) return handleProcessCompletion()
3402+
if (done || respChunk.includes(apis[callerAPI].respPatterns?.watermark))
3403+
return handleProcessCompletion()
34033404
if (env.browser.isChromium) { // clear/add timeout since ReadableStream.getReader() doesn't signal done
34043405
clearTimeout(this.timeout) ; this.timeout = setTimeout(handleProcessCompletion, 1500) }
34053406

duckduckgpt/greasemonkey/duckduckgpt.user.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@
148148
// @description:zu Yengeza izimpendulo ze-AI ku-DuckDuckGo (inikwa amandla yi-GPT-4o!)
149149
// @author KudoAI
150150
// @namespace https://kudoai.com
151-
// @version 2025.1.26
151+
// @version 2025.1.26.1
152152
// @license MIT
153153
// @icon https://assets.ddgpt.com/images/icons/duckduckgpt/icon48.png?v=06af076
154154
// @icon64 https://assets.ddgpt.com/images/icons/duckduckgpt/icon64.png?v=06af076
@@ -380,7 +380,7 @@
380380

381381
// Init API data
382382
const apis = Object.assign(Object.create(null), await new Promise(resolve => xhr({
383-
method: 'GET', url: 'https://assets.aiwebextensions.com/data/ai-chat-apis.json?v=b7a8a8b',
383+
method: 'GET', url: 'https://assets.aiwebextensions.com/data/ai-chat-apis.json?v=b529a64',
384384
onload: resp => resolve(JSON.parse(resp.responseText))
385385
})))
386386
apis.AIchatOS.userID = '#/chat/' + Date.now()
@@ -3265,9 +3265,9 @@
32653265
const dataProcess = {
32663266

32673267
initFailFlags(api) { // escape/merge URLs w/ fail flags
3268-
const { failFlags = [], endpoint = apis[api].endpoints.completions, expectedOrigin } = apis[api],
3268+
const { respPatterns = {}, endpoint = apis[api].endpoints.completions, expectedOrigin } = apis[api],
32693269
escapedAPIurls = [endpoint, expectedOrigin.url].map(url => url.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'))
3270-
return new RegExp([...failFlags, ...escapedAPIurls].join('|'))
3270+
return new RegExp([respPatterns.fail, ...escapedAPIurls].filter(Boolean).join('|'))
32713271
},
32723272

32733273
stream(resp, { caller, callerAPI }) {
@@ -3283,7 +3283,8 @@
32833283

32843284
// Handle stream done
32853285
const respChunk = new TextDecoder('utf8').decode(new Uint8Array(value))
3286-
if (done || respChunk.includes(apis[callerAPI].watermark)) return handleProcessCompletion()
3286+
if (done || respChunk.includes(apis[callerAPI].respPatterns?.watermark))
3287+
return handleProcessCompletion()
32873288
if (env.browser.isChromium) { // clear/add timeout since ReadableStream.getReader() doesn't signal done
32883289
clearTimeout(this.timeout) ; this.timeout = setTimeout(handleProcessCompletion, 1500) }
32893290

googlegpt/greasemonkey/googlegpt.user.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@
149149
// @description:zu Yengeza izimpendulo ze-AI ku-Google Search (inikwa amandla yi-Google Gemma + GPT-4o!)
150150
// @author KudoAI
151151
// @namespace https://kudoai.com
152-
// @version 2025.1.26
152+
// @version 2025.1.26.1
153153
// @license MIT
154154
// @icon https://assets.googlegpt.io/images/icons/googlegpt/black/icon48.png?v=59409b2
155155
// @icon64 https://assets.googlegpt.io/images/icons/googlegpt/black/icon64.png?v=59409b2
@@ -569,7 +569,7 @@
569569

570570
// Init API data
571571
const apis = Object.assign(Object.create(null), await new Promise(resolve => xhr({
572-
method: 'GET', url: 'https://assets.aiwebextensions.com/data/ai-chat-apis.json?v=b7a8a8b',
572+
method: 'GET', url: 'https://assets.aiwebextensions.com/data/ai-chat-apis.json?v=b529a64',
573573
onload: resp => resolve(JSON.parse(resp.responseText))
574574
})))
575575
apis.AIchatOS.userID = '#/chat/' + Date.now()
@@ -3562,9 +3562,9 @@
35623562
const dataProcess = {
35633563

35643564
initFailFlags(api) { // escape/merge URLs w/ fail flags
3565-
const { failFlags = [], endpoint = apis[api].endpoints.completions, expectedOrigin } = apis[api],
3565+
const { respPatterns = {}, endpoint = apis[api].endpoints.completions, expectedOrigin } = apis[api],
35663566
escapedAPIurls = [endpoint, expectedOrigin.url].map(url => url.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'))
3567-
return new RegExp([...failFlags, ...escapedAPIurls].join('|'))
3567+
return new RegExp([respPatterns.fail, ...escapedAPIurls].filter(Boolean).join('|'))
35683568
},
35693569

35703570
stream(resp, { caller, callerAPI }) {
@@ -3580,7 +3580,8 @@
35803580

35813581
// Handle stream done
35823582
const respChunk = new TextDecoder('utf8').decode(new Uint8Array(value))
3583-
if (done || respChunk.includes(apis[callerAPI].watermark)) return handleProcessCompletion()
3583+
if (done || respChunk.includes(apis[callerAPI].respPatterns?.watermark))
3584+
return handleProcessCompletion()
35843585
if (env.browser.isChromium) { // clear/add timeout since ReadableStream.getReader() doesn't signal done
35853586
clearTimeout(this.timeout) ; this.timeout = setTimeout(handleProcessCompletion, 1500) }
35863587

0 commit comments

Comments
 (0)