PSF: Mass-regeneration complete. 53/53 high-fidelity blueprints and TDD suites established. Zero-cost Pro bridge active.
This commit is contained in:
37
projects/org-skill-web-research/src/gemini-web.js
Normal file
37
projects/org-skill-web-research/src/gemini-web.js
Normal file
@@ -0,0 +1,37 @@
|
||||
const { chromium } = require('playwright');
|
||||
|
||||
async function askGemini(prompt, cookies) {
|
||||
const browser = await chromium.launch({ headless: true });
|
||||
const context = await browser.newContext();
|
||||
|
||||
// Set session cookies
|
||||
await context.addCookies(cookies.map(c => ({
|
||||
name: c.name,
|
||||
value: c.value,
|
||||
domain: '.google.com',
|
||||
path: '/'
|
||||
})));
|
||||
|
||||
const page = await context.newPage();
|
||||
await page.goto('https://gemini.google.com/app');
|
||||
|
||||
// Wait for chat box and type prompt
|
||||
await page.fill('div[role="textbox"]', prompt);
|
||||
await page.keyboard.press('Enter');
|
||||
|
||||
// Wait for response to generate
|
||||
await page.waitForSelector('message-content:last-child', { state: 'visible' });
|
||||
const response = await page.textContent('message-content:last-child');
|
||||
|
||||
await browser.close();
|
||||
console.log(response);
|
||||
}
|
||||
|
||||
const args = process.argv.slice(2);
|
||||
const prompt = args[0];
|
||||
const cookies = JSON.parse(args[1]);
|
||||
|
||||
askGemini(prompt, cookies).catch(err => {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
});
|
||||
8
projects/org-skill-web-research/src/research-logic.lisp
Normal file
8
projects/org-skill-web-research/src/research-logic.lisp
Normal file
@@ -0,0 +1,8 @@
|
||||
(in-package :org-agent)
|
||||
|
||||
(defun ask-gemini-web (prompt)
|
||||
"Calls the Playwright bridge to interact with Gemini Web UI."
|
||||
(let* ((cookie-str (uiop:getenv "GEMINI_COOKIES"))
|
||||
(script-path (namestring (merge-pathnames "src/gemini-web.js" (asdf:system-source-directory :org-skill-web-research)))))
|
||||
(unless cookie-str (return-from ask-gemini-web "(:type :LOG :payload (:text \"Gemini Cookies missing\"))"))
|
||||
(uiop:run-program (list "node" script-path prompt cookie-str) :output :string)))
|
||||
Reference in New Issue
Block a user