10x-chat 0.7.1 → 0.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/mode.d.ts +9 -0
- package/dist/browser/mode.d.ts.map +1 -0
- package/dist/browser/mode.js +15 -0
- package/dist/browser/mode.js.map +1 -0
- package/dist/cli/login.d.ts.map +1 -1
- package/dist/cli/login.js +4 -5
- package/dist/cli/login.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -1
- package/dist/config.js.map +1 -1
- package/dist/core/orchestrator.d.ts.map +1 -1
- package/dist/core/orchestrator.js +2 -7
- package/dist/core/orchestrator.js.map +1 -1
- package/dist/providers/gemini.d.ts.map +1 -1
- package/dist/providers/gemini.js +113 -6
- package/dist/providers/gemini.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ProviderName } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Resolve whether a provider should run headless for this invocation.
|
|
4
|
+
* Explicit --headed always wins. Some providers are more reliable with a
|
|
5
|
+
* visible browser because anti-bot checks or alternate DOM branches trigger
|
|
6
|
+
* under headless Chromium.
|
|
7
|
+
*/
|
|
8
|
+
export declare function resolveHeadlessMode(providerName: ProviderName, configHeadless: boolean, headedOverride?: boolean): boolean;
|
|
9
|
+
//# sourceMappingURL=mode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mode.d.ts","sourceRoot":"","sources":["../../src/browser/mode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIhD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,OAAO,EACvB,cAAc,UAAQ,GACrB,OAAO,CAIT"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const HEADED_PROVIDERS = new Set(['chatgpt', 'claude']);
|
|
2
|
+
/**
|
|
3
|
+
* Resolve whether a provider should run headless for this invocation.
|
|
4
|
+
* Explicit --headed always wins. Some providers are more reliable with a
|
|
5
|
+
* visible browser because anti-bot checks or alternate DOM branches trigger
|
|
6
|
+
* under headless Chromium.
|
|
7
|
+
*/
|
|
8
|
+
export function resolveHeadlessMode(providerName, configHeadless, headedOverride = false) {
|
|
9
|
+
if (headedOverride)
|
|
10
|
+
return false;
|
|
11
|
+
if (HEADED_PROVIDERS.has(providerName))
|
|
12
|
+
return false;
|
|
13
|
+
return configHeadless;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=mode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mode.js","sourceRoot":"","sources":["../../src/browser/mode.ts"],"names":[],"mappings":"AAEA,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEtE;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,YAA0B,EAC1B,cAAuB,EACvB,cAAc,GAAG,KAAK;IAEtB,IAAI,cAAc;QAAE,OAAO,KAAK,CAAC;IACjC,IAAI,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC;QAAE,OAAO,KAAK,CAAC;IACrD,OAAO,cAAc,CAAC;AACxB,CAAC"}
|
package/dist/cli/login.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/cli/login.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/cli/login.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,wBAAgB,kBAAkB,IAAI,OAAO,CA8D5C"}
|
package/dist/cli/login.js
CHANGED
|
@@ -3,6 +3,7 @@ import chalk from 'chalk';
|
|
|
3
3
|
import { Command } from 'commander';
|
|
4
4
|
import { chromium } from 'playwright';
|
|
5
5
|
import { acquireProfileLock, launchBrowser } from '../browser/index.js';
|
|
6
|
+
import { resolveHeadlessMode } from '../browser/mode.js';
|
|
6
7
|
import { saveStorageState } from '../browser/state.js';
|
|
7
8
|
import { loadConfig } from '../config.js';
|
|
8
9
|
import { getSharedProfileDir } from '../paths.js';
|
|
@@ -19,7 +20,7 @@ export function createLoginCommand() {
|
|
|
19
20
|
const config = await loadConfig();
|
|
20
21
|
const profileMode = options?.isolatedProfile ? 'isolated' : config.profileMode;
|
|
21
22
|
if (options?.status) {
|
|
22
|
-
await checkLoginStatus(profileMode);
|
|
23
|
+
await checkLoginStatus(profileMode, config.headless);
|
|
23
24
|
return;
|
|
24
25
|
}
|
|
25
26
|
if (profileMode === 'shared') {
|
|
@@ -165,19 +166,17 @@ async function loginAllWithTabs(providers, _profileMode = 'shared') {
|
|
|
165
166
|
await lock.release();
|
|
166
167
|
}
|
|
167
168
|
}
|
|
168
|
-
async function checkLoginStatus(profileMode = 'shared') {
|
|
169
|
+
async function checkLoginStatus(profileMode = 'shared', configHeadless = true) {
|
|
169
170
|
console.log(chalk.bold('Login Status\n'));
|
|
170
171
|
if (profileMode === 'shared') {
|
|
171
172
|
console.log(chalk.dim('(shared profile mode — all providers use the same browser profile)\n'));
|
|
172
173
|
}
|
|
173
174
|
for (const name of listProviders()) {
|
|
174
175
|
const provider = getProvider(name);
|
|
175
|
-
// headlessBlocked providers (e.g. ChatGPT/Cloudflare) need a real browser
|
|
176
|
-
const headless = !provider.config.headlessBlocked;
|
|
177
176
|
try {
|
|
178
177
|
const browser = await launchBrowser({
|
|
179
178
|
provider: name,
|
|
180
|
-
headless,
|
|
179
|
+
headless: resolveHeadlessMode(name, configHeadless),
|
|
181
180
|
url: provider.config.url,
|
|
182
181
|
profileMode,
|
|
183
182
|
});
|
package/dist/cli/login.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/cli/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGpF,MAAM,UAAU,kBAAkB;IAChC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;SAC7B,WAAW,CAAC,4DAA4D,CAAC;SACzE,QAAQ,CAAC,YAAY,EAAE,sDAAsD,CAAC;SAC9E,MAAM,CAAC,OAAO,EAAE,wBAAwB,CAAC;SACzC,MAAM,CAAC,QAAQ,EAAE,mEAAmE,CAAC;SACrF,MAAM,CAAC,UAAU,EAAE,sCAAsC,CAAC;SAC1D,MAAM,CAAC,oBAAoB,EAAE,qDAAqD,CAAC;SACnF,MAAM,CACL,KAAK,EACH,WAAoB,EACpB,OAAwF,EACxF,EAAE;QACF,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAClC,MAAM,WAAW,GAAgB,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;QAE5F,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/cli/login.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,SAAS,EAAkB,MAAM,YAAY,CAAC;AAE5D,wEAAwE;AACxE,wBAAsB,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,SAAS,EAAkB,MAAM,YAAY,CAAC;AAE5D,wEAAwE;AACxE,wBAAsB,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC,CAYrD;AAED,2BAA2B;AAC3B,wBAAsB,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAIjE"}
|
package/dist/config.js
CHANGED
|
@@ -8,7 +8,8 @@ export async function loadConfig() {
|
|
|
8
8
|
try {
|
|
9
9
|
const raw = await readFile(configPath, 'utf-8');
|
|
10
10
|
// Dynamic import JSON5 only when needed
|
|
11
|
-
const
|
|
11
|
+
const JSON5Module = await import('json5');
|
|
12
|
+
const JSON5 = JSON5Module.default ?? JSON5Module;
|
|
12
13
|
const parsed = JSON5.parse(raw);
|
|
13
14
|
return { ...DEFAULT_CONFIG, ...parsed };
|
|
14
15
|
}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAkB,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5D,wEAAwE;AACxE,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAChD,wCAAwC;QACxC,MAAM,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAkB,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5D,wEAAwE;AACxE,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAChD,wCAAwC;QACxC,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC;QACjD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAuB,CAAC;QACtD,OAAO,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,GAAG,cAAc,EAAE,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,2BAA2B;AAC3B,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAiB;IAChD,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,MAAM,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACxE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/core/orchestrator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/core/orchestrator.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQ7E,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAwHvE;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAsB/E"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import { launchBrowser } from '../browser/index.js';
|
|
3
|
+
import { resolveHeadlessMode } from '../browser/mode.js';
|
|
3
4
|
import { loadConfig } from '../config.js';
|
|
4
5
|
import { getProvider } from '../providers/index.js';
|
|
5
6
|
import { createSession, saveBundle, saveResponse, updateSession } from '../session/index.js';
|
|
@@ -22,13 +23,7 @@ export async function runChat(options) {
|
|
|
22
23
|
const providerName = options.provider ?? config.defaultProvider;
|
|
23
24
|
const provider = getProvider(providerName);
|
|
24
25
|
const timeoutMs = options.timeoutMs ?? config.defaultTimeoutMs;
|
|
25
|
-
|
|
26
|
-
// blocks headless Chromium. Force headed mode for those providers and warn the user.
|
|
27
|
-
let headless = options.headed === true ? false : config.headless;
|
|
28
|
-
if (headless && provider.config.headlessBlocked) {
|
|
29
|
-
console.log(chalk.yellow(`⚠ ${provider.config.displayName} requires a visible browser window (Cloudflare bot-protection blocks headless mode). Opening browser...`));
|
|
30
|
-
headless = false;
|
|
31
|
-
}
|
|
26
|
+
const headless = resolveHeadlessMode(providerName, config.headless, options.headed === true);
|
|
32
27
|
// Build the bundle
|
|
33
28
|
const bundle = await buildBundle({
|
|
34
29
|
prompt: options.prompt,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/core/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE7F,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,8EAA8E;AAC9E,MAAM,cAAc,GAAmB,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;AAY7F;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAoB;IAChD,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAClC,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,eAAe,CAAC;IAChE,MAAM,QAAQ,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,gBAAgB,CAAC;IAC/D
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/core/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGV,eAAe,EACf,cAAc,EACf,MAAM,aAAa,CAAC;AAGrB,eAAO,MAAM,aAAa,EAAE,cAQ3B,CAAC;
|
|
1
|
+
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGV,eAAe,EACf,cAAc,EACf,MAAM,aAAa,CAAC;AAGrB,eAAO,MAAM,aAAa,EAAE,cAQ3B,CAAC;AA+FF,eAAO,MAAM,aAAa,EAAE,eA+L3B,CAAC"}
|
package/dist/providers/gemini.js
CHANGED
|
@@ -14,7 +14,85 @@ const SELECTORS = {
|
|
|
14
14
|
sendButton: 'button.send-button, button[aria-label="Send message"]',
|
|
15
15
|
/** model-response is the Angular custom element wrapping each AI turn */
|
|
16
16
|
responseTurn: 'model-response .model-response-text, model-response message-content',
|
|
17
|
+
/** Indicators that Gemini is still generating (text streaming or image generation in flight) */
|
|
18
|
+
streamingIndicators: [
|
|
19
|
+
// Stop/cancel button visible while generating
|
|
20
|
+
'button[aria-label="Stop generating"], button[aria-label="Cancel"]',
|
|
21
|
+
// Imagen / Nano Banana loading spinner or status
|
|
22
|
+
'.image-generation-loading',
|
|
23
|
+
'.loading-indicator',
|
|
24
|
+
// "Generating image" / "Loading Nano Banana" text shown during image gen
|
|
25
|
+
'model-response [class*="loading"]',
|
|
26
|
+
'model-response [class*="progress"]',
|
|
27
|
+
].join(', '),
|
|
28
|
+
/** Generated images in the response (Imagen / Nano Banana) */
|
|
29
|
+
generatedImages: [
|
|
30
|
+
'img.image.loaded',
|
|
31
|
+
'img[alt*="AI generated"]',
|
|
32
|
+
'img[alt*="Generated"]',
|
|
33
|
+
// Imagen result containers
|
|
34
|
+
'model-response img[src*="lh3.googleusercontent.com"]',
|
|
35
|
+
'model-response img[src*="encrypted"]',
|
|
36
|
+
].join(', '),
|
|
17
37
|
};
|
|
38
|
+
/**
|
|
39
|
+
* Wait for Gemini image generation to complete.
|
|
40
|
+
* After text stabilizes, check if image generation is in progress and
|
|
41
|
+
* wait for images to appear and fully load (naturalWidth > 0).
|
|
42
|
+
*/
|
|
43
|
+
async function waitForImages(page, timeoutMs) {
|
|
44
|
+
const startTime = Date.now();
|
|
45
|
+
const pollInterval = 2_000;
|
|
46
|
+
// First, check if there are any signs of image generation in the last response
|
|
47
|
+
const lastTurnHtml = await page
|
|
48
|
+
.locator(SELECTORS.responseTurn)
|
|
49
|
+
.last()
|
|
50
|
+
.innerHTML()
|
|
51
|
+
.catch(() => '');
|
|
52
|
+
const lowerHtml = lastTurnHtml.toLowerCase();
|
|
53
|
+
const hasImageGenHints = lowerHtml.includes('nano banana') ||
|
|
54
|
+
lowerHtml.includes('imagen') ||
|
|
55
|
+
lowerHtml.includes('image-generation') ||
|
|
56
|
+
lowerHtml.includes('generating') ||
|
|
57
|
+
lowerHtml.includes('img');
|
|
58
|
+
if (!hasImageGenHints)
|
|
59
|
+
return;
|
|
60
|
+
// Wait for loading indicators to disappear and images to be fully loaded
|
|
61
|
+
while (Date.now() - startTime < timeoutMs) {
|
|
62
|
+
// Check if any loading indicators are still visible
|
|
63
|
+
const stillLoading = await page
|
|
64
|
+
.locator(SELECTORS.streamingIndicators)
|
|
65
|
+
.first()
|
|
66
|
+
.isVisible()
|
|
67
|
+
.catch(() => false);
|
|
68
|
+
if (stillLoading) {
|
|
69
|
+
await page.waitForTimeout(pollInterval);
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
// Check if images exist and are fully loaded
|
|
73
|
+
const imageState = await page.evaluate((imgSelector) => {
|
|
74
|
+
const imgs = Array.from(document.querySelectorAll(imgSelector));
|
|
75
|
+
if (imgs.length === 0)
|
|
76
|
+
return { count: 0, allLoaded: true };
|
|
77
|
+
const allLoaded = imgs.every((img) => {
|
|
78
|
+
const el = img;
|
|
79
|
+
return el.complete && el.naturalWidth > 0;
|
|
80
|
+
});
|
|
81
|
+
return { count: imgs.length, allLoaded };
|
|
82
|
+
}, SELECTORS.generatedImages);
|
|
83
|
+
if (imageState.count > 0 && imageState.allLoaded) {
|
|
84
|
+
// Images are present and fully loaded
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (imageState.count > 0 && !imageState.allLoaded) {
|
|
88
|
+
// Images exist but not yet loaded — keep waiting
|
|
89
|
+
await page.waitForTimeout(pollInterval);
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
// No loading indicators and no images — likely a text-only response
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
18
96
|
export const geminiActions = {
|
|
19
97
|
async isLoggedIn(page) {
|
|
20
98
|
try {
|
|
@@ -116,29 +194,58 @@ export const geminiActions = {
|
|
|
116
194
|
getText: async (p) => (await p.locator(SELECTORS.responseTurn).last().textContent())?.trim() ?? '',
|
|
117
195
|
timeoutMs: remainingMs,
|
|
118
196
|
onChunk,
|
|
197
|
+
isStreaming: async (p) => {
|
|
198
|
+
// Check if Gemini is still generating (text or images)
|
|
199
|
+
const indicatorVisible = await p
|
|
200
|
+
.locator(SELECTORS.streamingIndicators)
|
|
201
|
+
.first()
|
|
202
|
+
.isVisible()
|
|
203
|
+
.catch(() => false);
|
|
204
|
+
if (indicatorVisible)
|
|
205
|
+
return true;
|
|
206
|
+
// Also check for image-generation-specific text in the response
|
|
207
|
+
// (e.g. "Loading Nano Banana", "Generating image", "Creating image")
|
|
208
|
+
const lastTurnText = (await p.locator(SELECTORS.responseTurn).last().textContent())?.toLowerCase() ?? '';
|
|
209
|
+
if (lastTurnText.includes('loading nano banana') ||
|
|
210
|
+
lastTurnText.includes('generating image') ||
|
|
211
|
+
lastTurnText.includes('creating image') ||
|
|
212
|
+
lastTurnText.includes('loading imagen')) {
|
|
213
|
+
return true;
|
|
214
|
+
}
|
|
215
|
+
return false;
|
|
216
|
+
},
|
|
119
217
|
});
|
|
218
|
+
// Post-poll: wait for images to finish loading if image generation was triggered.
|
|
219
|
+
// Gemini image gen can take 10-30s after the text portion stabilizes.
|
|
220
|
+
const postPollRemainingMs = Math.max(timeoutMs - (Date.now() - startTime), 5_000);
|
|
221
|
+
await waitForImages(page, postPollRemainingMs);
|
|
120
222
|
const lastTurn = page.locator(SELECTORS.responseTurn).last();
|
|
121
223
|
const markdown = (await lastTurn.innerHTML()) ?? '';
|
|
122
|
-
// Extract generated images (Imagen)
|
|
123
|
-
const images = await page.evaluate(() => {
|
|
224
|
+
// Extract generated images (Imagen / Nano Banana)
|
|
225
|
+
const images = await page.evaluate((imgSelector) => {
|
|
124
226
|
const seen = new Set();
|
|
125
227
|
const results = [];
|
|
126
|
-
const imgs = Array.from(document.querySelectorAll(
|
|
228
|
+
const imgs = Array.from(document.querySelectorAll(imgSelector));
|
|
127
229
|
for (const img of imgs) {
|
|
128
230
|
const src = img.getAttribute('src') ?? '';
|
|
129
231
|
if (!src || seen.has(src))
|
|
130
232
|
continue;
|
|
233
|
+
// Skip tiny icons/avatars (likely UI elements, not generated images)
|
|
234
|
+
const w = img.naturalWidth;
|
|
235
|
+
const h = img.naturalHeight;
|
|
236
|
+
if (w > 0 && w < 64 && h > 0 && h < 64)
|
|
237
|
+
continue;
|
|
131
238
|
seen.add(src);
|
|
132
239
|
const fullSizeUrl = src.includes('=s') ? src : `${src}=s1024-rj`;
|
|
133
240
|
results.push({
|
|
134
241
|
url: fullSizeUrl,
|
|
135
242
|
alt: img.getAttribute('alt') ?? '',
|
|
136
|
-
width:
|
|
137
|
-
height:
|
|
243
|
+
width: w,
|
|
244
|
+
height: h,
|
|
138
245
|
});
|
|
139
246
|
}
|
|
140
247
|
return results;
|
|
141
|
-
});
|
|
248
|
+
}, SELECTORS.generatedImages);
|
|
142
249
|
const totalElapsed = Date.now() - startTime;
|
|
143
250
|
return {
|
|
144
251
|
text,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAOrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,CAAC,MAAM,aAAa,GAAmB;IAC3C,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,QAAQ;IACrB,GAAG,EAAE,+BAA+B;IACpC,QAAQ,EAAE,+BAA+B;IACzC,MAAM,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;IAC9C,YAAY,EAAE,gBAAgB;IAC9B,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;CAChC,CAAC;AAEF,MAAM,SAAS,GAAG;IAChB,QAAQ,EAAE,+EAA+E;IACzF,UAAU,EAAE,uDAAuD;IACnE,yEAAyE;IACzE,YAAY,EAAE,qEAAqE;
|
|
1
|
+
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"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"}
|