スクリプティング概要
Guida にはブラウザー自動化のためのスクリプティング環境が組み込まれています。スクリプトは g.* API を通じてページと対話し、データを管理し、ワークフローを組み立てます。
スクリプトエンジン
Section titled “スクリプトエンジン”3 つのエンジンを利用できます。
- JavaScript (ClearScript V8) - ES2024+、トップレベル
await、ネイティブ Promise、Chrome や Node.js と同じ V8 エンジンによる ES モジュール import。 - Lua (LuaCSharp) - 通常の Lua 構文、テーブル中心の API、
require()で読み込むワークスペースライブラリ。 - Janet (JanetSharp) - 不変データ構造と組み込み PEG エンジンを備えた関数型 Lisp 方言。
3 つのエンジンは同じ g.* API 面を共有します。
基本形とトップレベル await
Section titled “基本形とトップレベル await”多くの自動化作業は非同期です。早期 return が不要なスクリプトでは、Guida はトップレベル await をサポートします。
const tabs = g.tabs.getTabs();g.log("開いているタブ: " + tabs.length);途中で終了したい場合や return を使いたい場合は、async function main() にコードを包み、末尾で await main(); を呼び出します。
F5 でエディター内のスクリプトを実行します。
JavaScript と Janet では、g.* メソッドは値を直接返し、失敗時には例外を投げます。
try { await g.dom.click("#submit");} catch (e) { g.log("クリックに失敗しました: " + e.message); return;}Lua では慣用的な複数戻り値(nil, error)を使います。これにより、開発中に Visual Studio デバッガーが「未処理」例外で止まりにくくなります。
local success, err = g.nav.navigateToUrl("https://example.com")if not success then g.log("エラー: ナビゲーションに失敗しました: " .. err)else g.log("ページを読み込みました")end非同期メソッド
Section titled “非同期メソッド”JavaScript では await を使います。Lua と Janet では、エンジンが呼び出しを自動的に待機します。
async function main() { await g.nav.navigateToUrl("https://example.com"); await g.dom.waitForDomStable(); const html = await g.page.getDom(); g.log("ページを読み込みました。DOM 長: " + html.length);}g.nav.navigateToUrl("https://example.com")g.dom.waitForDomStable()local html = g.page.getDom()g.log("ページを読み込みました。DOM 長: " .. #html)(g.nav.navigateToUrl "https://example.com")(g.dom.waitForDomStable)(def html (g.page.getDom))(g.log (string "ページを読み込みました。DOM 長: " (length html)))ワークスペース
Section titled “ワークスペース”スクリプトは現在のワークスペースを基準に実行されます。ワークスペースにはスクリプト、ストア、キュー、検索インデックス、カスタムツール、ドメイン設定を置けます。
ワークスペースがあると、AI エージェントにも「このプロジェクトで何をしてよいか」を明確に渡せます。詳しくはワークスペースを参照してください。
補完ファイルを生成する
Section titled “補完ファイルを生成する”Tools > Developer > Generate Scripting Support Files… を使うと、現在の API に合わせた TypeScript 定義、Lua/Janet ガイド、ワークスペース LLM 指示、TypeScript 作成用 scaffold を生成できます。
g.generateApiDocs() は TypeScript 専用の上級ヘルパー(advanced TypeScript-only helper)です。通常は Generate Scripting Support Files を使ってください。