chrome-devtools-mcp-for-extension 0.9.25 → 0.9.27
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.
|
@@ -218,32 +218,50 @@ async function detectDeepResearchMode(page) {
|
|
|
218
218
|
async function enableDeepResearchMode(page, response) {
|
|
219
219
|
try {
|
|
220
220
|
response.appendResponseLine('DeepResearchモードを有効化中...');
|
|
221
|
-
// Step 1: Click "
|
|
221
|
+
// Step 1: Click じっくり思考 button with haspopup="menu"
|
|
222
|
+
const thinkingMenuClicked = await page.evaluate(() => {
|
|
223
|
+
const buttons = Array.from(document.querySelectorAll('button'));
|
|
224
|
+
const thinkingMenuButton = buttons.find((btn) => {
|
|
225
|
+
const text = btn.textContent?.trim() || '';
|
|
226
|
+
return text.includes('じっくり思考') && btn.getAttribute('haspopup') === 'menu';
|
|
227
|
+
});
|
|
228
|
+
if (!thinkingMenuButton) {
|
|
229
|
+
return { success: false, error: 'じっくり思考メニューボタンが見つかりません' };
|
|
230
|
+
}
|
|
231
|
+
thinkingMenuButton.click();
|
|
232
|
+
return { success: true };
|
|
233
|
+
});
|
|
234
|
+
if (!thinkingMenuClicked.success) {
|
|
235
|
+
return { success: false, error: thinkingMenuClicked.error };
|
|
236
|
+
}
|
|
237
|
+
response.appendResponseLine('✅ じっくり思考メニューを開く');
|
|
238
|
+
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
239
|
+
// Step 2: Click "+" button (ファイルの追加など)
|
|
222
240
|
const plusClicked = await page.evaluate(() => {
|
|
223
241
|
const buttons = Array.from(document.querySelectorAll('button'));
|
|
224
242
|
const plusButton = buttons.find((btn) => {
|
|
225
243
|
const aria = btn.getAttribute('aria-label') || '';
|
|
226
|
-
|
|
227
|
-
return aria.includes('ファイルの追加') || desc.includes('ファイルの追加');
|
|
244
|
+
return aria.includes('ファイルの追加');
|
|
228
245
|
});
|
|
229
246
|
if (!plusButton)
|
|
230
|
-
return { success: false, error: '
|
|
247
|
+
return { success: false, error: '+ボタン(ファイルの追加など)が見つかりません' };
|
|
231
248
|
plusButton.click();
|
|
232
249
|
return { success: true };
|
|
233
250
|
});
|
|
234
251
|
if (!plusClicked.success) {
|
|
235
252
|
return { success: false, error: plusClicked.error };
|
|
236
253
|
}
|
|
237
|
-
|
|
238
|
-
|
|
254
|
+
response.appendResponseLine('✅ +ボタン(ファイルの追加など)をクリック');
|
|
255
|
+
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
256
|
+
// Step 3: Click "Deep Research" menuitemradio
|
|
239
257
|
const deepResearchSelected = await page.evaluate(() => {
|
|
240
258
|
const menuItems = Array.from(document.querySelectorAll('[role="menuitemradio"]'));
|
|
241
259
|
const deepResearchItem = menuItems.find((item) => item.textContent?.includes('Deep Research') ||
|
|
242
|
-
item.textContent?.includes('
|
|
260
|
+
item.textContent?.includes('リサーチ'));
|
|
243
261
|
if (!deepResearchItem) {
|
|
244
262
|
return {
|
|
245
263
|
success: false,
|
|
246
|
-
error: 'DeepResearch
|
|
264
|
+
error: 'DeepResearch menuitemradio が見つかりません',
|
|
247
265
|
};
|
|
248
266
|
}
|
|
249
267
|
deepResearchItem.click();
|
|
@@ -252,14 +270,14 @@ async function enableDeepResearchMode(page, response) {
|
|
|
252
270
|
if (!deepResearchSelected.success) {
|
|
253
271
|
return { success: false, error: deepResearchSelected.error };
|
|
254
272
|
}
|
|
255
|
-
response.appendResponseLine('✅ DeepResearch
|
|
273
|
+
response.appendResponseLine('✅ DeepResearch menuitemradio をクリック');
|
|
256
274
|
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
257
|
-
// Verify mode was actually enabled
|
|
275
|
+
// Step 3: Verify mode was actually enabled (composer-pill detection)
|
|
258
276
|
const verification = await detectDeepResearchMode(page);
|
|
259
277
|
if (!verification.isEnabled) {
|
|
260
278
|
return {
|
|
261
279
|
success: false,
|
|
262
|
-
error: 'DeepResearch
|
|
280
|
+
error: 'DeepResearchモードの有効化に失敗しました(リサーチpillが検出されませんでした)',
|
|
263
281
|
};
|
|
264
282
|
}
|
|
265
283
|
response.appendResponseLine(`✅ モード確認完了: DeepResearch有効 (${verification.indicator})`);
|
|
@@ -563,7 +581,7 @@ export const deepResearchChatGPT = defineTool({
|
|
|
563
581
|
}
|
|
564
582
|
}
|
|
565
583
|
if (needsNewChat) {
|
|
566
|
-
await page.goto('https://chatgpt.com
|
|
584
|
+
await page.goto('https://chatgpt.com/?model=gpt-5-thinking', { waitUntil: 'networkidle2' });
|
|
567
585
|
}
|
|
568
586
|
// Check if logged in
|
|
569
587
|
const currentUrl = page.url();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "chrome-devtools-mcp-for-extension",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.27",
|
|
4
4
|
"description": "MCP server for Chrome extension development with Web Store automation. Fork of chrome-devtools-mcp with extension-specific tools.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": "./build/src/index.js",
|