@steipete/oracle 0.17.2 → 0.18.0
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/bin/oracle-cli.js +10 -1
- package/dist/bin/oracle-mcp.js +0 -0
- package/dist/bin/oracle.js +683 -0
- package/dist/docs-site/bridge.html +1 -17
- package/dist/docs-site/browser-mode.html +18 -26
- package/dist/docs-site/cli-reference.html +6 -6
- package/dist/docs-site/configuration.html +7 -33
- package/dist/docs-site/followup.html +9 -16
- package/dist/docs-site/gemini.html +6 -10
- package/dist/docs-site/index.html +7 -7
- package/dist/docs-site/install.html +1 -1
- package/dist/docs-site/manual-tests.html +2 -4
- package/dist/docs-site/mcp.html +5 -28
- package/dist/docs-site/mythical-pro-agents.html +10 -10
- package/dist/docs-site/openai-endpoints.html +1 -24
- package/dist/docs-site/quickstart.html +1 -1
- package/dist/docs-site/sessions.html +5 -6
- package/dist/docs-site/spec.html +1 -1
- package/dist/docs-site/windows-work.html +1 -2
- package/dist/docs-site/windows.html +1 -1
- package/dist/markdansi/types/index.js +4 -0
- package/dist/oracle/bin/oracle-cli.js +472 -0
- package/dist/oracle/src/browser/actions/assistantResponse.js +471 -0
- package/dist/oracle/src/browser/actions/attachments.js +82 -0
- package/dist/oracle/src/browser/actions/modelSelection.js +190 -0
- package/dist/oracle/src/browser/actions/navigation.js +75 -0
- package/dist/oracle/src/browser/actions/promptComposer.js +167 -0
- package/dist/oracle/src/browser/chromeLifecycle.js +104 -0
- package/dist/oracle/src/browser/config.js +33 -0
- package/dist/oracle/src/browser/constants.js +40 -0
- package/dist/oracle/src/browser/cookies.js +210 -0
- package/dist/oracle/src/browser/domDebug.js +36 -0
- package/dist/oracle/src/browser/index.js +331 -0
- package/dist/oracle/src/browser/pageActions.js +5 -0
- package/dist/oracle/src/browser/prompt.js +88 -0
- package/dist/oracle/src/browser/promptSummary.js +20 -0
- package/dist/oracle/src/browser/sessionRunner.js +80 -0
- package/dist/oracle/src/browser/types.js +1 -0
- package/dist/oracle/src/browser/utils.js +62 -0
- package/dist/oracle/src/browserMode.js +1 -0
- package/dist/oracle/src/cli/browserConfig.js +44 -0
- package/dist/oracle/src/cli/dryRun.js +59 -0
- package/dist/oracle/src/cli/engine.js +17 -0
- package/dist/oracle/src/cli/errorUtils.js +9 -0
- package/dist/oracle/src/cli/help.js +70 -0
- package/dist/oracle/src/cli/markdownRenderer.js +15 -0
- package/dist/oracle/src/cli/options.js +103 -0
- package/dist/oracle/src/cli/promptRequirement.js +14 -0
- package/dist/oracle/src/cli/rootAlias.js +30 -0
- package/dist/oracle/src/cli/sessionCommand.js +77 -0
- package/dist/oracle/src/cli/sessionDisplay.js +270 -0
- package/dist/oracle/src/cli/sessionRunner.js +94 -0
- package/dist/oracle/src/heartbeat.js +43 -0
- package/dist/oracle/src/oracle/client.js +48 -0
- package/dist/oracle/src/oracle/config.js +29 -0
- package/dist/oracle/src/oracle/errors.js +101 -0
- package/dist/oracle/src/oracle/files.js +220 -0
- package/dist/oracle/src/oracle/format.js +33 -0
- package/dist/oracle/src/oracle/fsAdapter.js +7 -0
- package/dist/oracle/src/oracle/oscProgress.js +60 -0
- package/dist/oracle/src/oracle/request.js +48 -0
- package/dist/oracle/src/oracle/run.js +444 -0
- package/dist/oracle/src/oracle/tokenStats.js +39 -0
- package/dist/oracle/src/oracle/types.js +1 -0
- package/dist/oracle/src/oracle.js +9 -0
- package/dist/oracle/src/sessionManager.js +205 -0
- package/dist/oracle/src/version.js +39 -0
- package/dist/scripts/chrome/browser-tools.js +295 -0
- package/dist/src/browser/actions/assistantResponse.js +71 -23
- package/dist/src/browser/actions/thinkingTime.js +165 -9
- package/dist/src/browser/chromeCookies.js +312 -0
- package/dist/src/browser/config.js +2 -3
- package/dist/src/browser/index.js +7 -2
- package/dist/src/browser/keytarShim.js +56 -0
- package/dist/src/browser/policies.js +10 -2
- package/dist/src/browser/profileSync.js +141 -0
- package/dist/src/browser/projectSourcesRunner.js +6 -3
- package/dist/src/browser/reattach.js +50 -35
- package/dist/src/browser/windowsCookies.js +219 -0
- package/dist/src/cli/browserConfig.js +39 -10
- package/dist/src/cli/browserDefaults.js +9 -1
- package/dist/src/cli/dryRun.js +1 -0
- package/dist/src/cli/projectSources.js +10 -1
- package/dist/src/mcp/tools/consult.js +13 -4
- package/dist/src/remote/server.js +8 -3
- package/dist/vendor/oracle-notifier/OracleNotifier.app/Contents/CodeResources +0 -0
- package/dist/vendor/oracle-notifier/OracleNotifier.app/Contents/Info.plist +20 -0
- package/dist/vendor/oracle-notifier/OracleNotifier.app/Contents/MacOS/OracleNotifier +0 -0
- package/dist/vendor/oracle-notifier/OracleNotifier.app/Contents/Resources/OracleIcon.icns +0 -0
- package/dist/vendor/oracle-notifier/OracleNotifier.app/Contents/_CodeSignature/CodeResources +128 -0
- package/package.json +8 -8
- package/vendor/oracle-notifier/OracleNotifier.app/Contents/CodeResources +0 -0
- package/vendor/oracle-notifier/OracleNotifier.app/Contents/Info.plist +20 -0
- package/vendor/oracle-notifier/OracleNotifier.app/Contents/MacOS/OracleNotifier +0 -0
- package/vendor/oracle-notifier/OracleNotifier.app/Contents/Resources/OracleIcon.icns +0 -0
- package/vendor/oracle-notifier/OracleNotifier.app/Contents/_CodeSignature/CodeResources +128 -0
|
@@ -4,19 +4,19 @@
|
|
|
4
4
|
<meta charset="utf-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
6
|
<title>Followups & Lineage — oracle</title>
|
|
7
|
-
<meta name="description" content="Continue
|
|
7
|
+
<meta name="description" content="Continue an OpenAI / Azure Responses API run with new files. Multi-model parents pick lineage via --followup-model.">
|
|
8
8
|
<link rel="canonical" href="https://askoracle.sh/followup.html">
|
|
9
9
|
<meta property="og:type" content="website">
|
|
10
10
|
<meta property="og:site_name" content="oracle">
|
|
11
11
|
<meta property="og:title" content="Followups & Lineage — oracle">
|
|
12
|
-
<meta property="og:description" content="Continue
|
|
12
|
+
<meta property="og:description" content="Continue an OpenAI / Azure Responses API run with new files. Multi-model parents pick lineage via --followup-model.">
|
|
13
13
|
<meta property="og:url" content="https://askoracle.sh/followup.html">
|
|
14
14
|
<meta property="og:image" content="https://askoracle.sh/social-card.png">
|
|
15
15
|
<meta property="og:image:width" content="1200">
|
|
16
16
|
<meta property="og:image:height" content="630">
|
|
17
17
|
<meta name="twitter:card" content="summary_large_image">
|
|
18
18
|
<meta name="twitter:title" content="Followups & Lineage — oracle">
|
|
19
|
-
<meta name="twitter:description" content="Continue
|
|
19
|
+
<meta name="twitter:description" content="Continue an OpenAI / Azure Responses API run with new files. Multi-model parents pick lineage via --followup-model.">
|
|
20
20
|
<meta name="twitter:image" content="https://askoracle.sh/social-card.png">
|
|
21
21
|
<link rel="icon" href="favicon.svg" type="image/svg+xml">
|
|
22
22
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
@@ -244,7 +244,7 @@ body:not(.home) .doc>h1:first-child{display:none}
|
|
|
244
244
|
</div>
|
|
245
245
|
</header>
|
|
246
246
|
<div class="doc-grid">
|
|
247
|
-
<article class="doc"><p><code>--followup</code> chains a new run onto an existing
|
|
247
|
+
<article class="doc"><p><code>--followup</code> chains a new run onto an existing OpenAI or Azure Responses API session. The model keeps its prior reasoning context; you supply additional prompt + files. Lineage is tracked in <code>oracle status</code> so you can see the whole tree at a glance.</p>
|
|
248
248
|
<h2 id="why-followup-instead-of-starting-fresh"><a class="anchor" href="#why-followup-instead-of-starting-fresh" aria-label="Anchor link">#</a>Why followup instead of starting fresh</h2>
|
|
249
249
|
<ul>
|
|
250
250
|
<li><strong>Cheaper.</strong> You don't re-pay for the original input tokens.</li>
|
|
@@ -261,18 +261,12 @@ body:not(.home) .doc>h1:first-child{display:none}
|
|
|
261
261
|
<span class="line"><span style="color:#F69D50">oracle</span><span style="color:#6CB6FF"> --followup</span><span style="color:#96D0FF"> arch-review</span><span style="color:#F47067"> \</span></span>
|
|
262
262
|
<span class="line"><span style="color:#6CB6FF"> -p</span><span style="color:#96D0FF"> "Re-evaluate now that the rate-limiter is wired in."</span><span style="color:#F47067"> \</span></span>
|
|
263
263
|
<span class="line"><span style="color:#6CB6FF"> --file</span><span style="color:#96D0FF"> "src/auth/rate-limiter.ts"</span></span></code></pre>
|
|
264
|
-
<p
|
|
264
|
+
<p><code>--followup</code> accepts:</p>
|
|
265
265
|
<ul>
|
|
266
266
|
<li>A stored session id (<code>a1b2c3…</code>)</li>
|
|
267
267
|
<li>A session slug (<code>arch-review</code>)</li>
|
|
268
268
|
<li>An OpenAI / Azure response id (<code>resp_abc1234…</code>) — useful for chaining onto runs that didn't originate in Oracle.</li>
|
|
269
269
|
</ul>
|
|
270
|
-
<p>For a saved ChatGPT browser session, pass its session id or slug:</p>
|
|
271
|
-
<pre class="shiki github-dark-dimmed" style="background-color:var(--code-bg);color:var(--code-fg)" tabindex="0"><code class="language-bash"><span class="line"><span style="color:#F69D50">oracle</span><span style="color:#6CB6FF"> --followup</span><span style="color:#96D0FF"> browser-architecture-review</span><span style="color:#F47067"> \</span></span>
|
|
272
|
-
<span class="line"><span style="color:#6CB6FF"> -p</span><span style="color:#96D0FF"> "Review this additional file in the same conversation."</span><span style="color:#F47067"> \</span></span>
|
|
273
|
-
<span class="line"><span style="color:#6CB6FF"> --file</span><span style="color:#96D0FF"> "src/auth/rate-limiter.ts"</span></span></code></pre>
|
|
274
|
-
<p>Oracle creates a child session, reopens the parent's exact ChatGPT conversation, and submits the new prompt there. It inherits the parent's browser profile, browser configuration, and model, bypasses the model picker, disables Deep Research for the resumed turn, and leaves the conversation unarchived.</p>
|
|
275
|
-
<p>Browser resume is fail-closed: Oracle refuses to submit if the saved URL is not a recoverable HTTPS ChatGPT conversation, the page has no stable prior turns, or the browser lands on a different conversation.</p>
|
|
276
270
|
<h2 id="multi-model-parents"><a class="anchor" href="#multi-model-parents" aria-label="Anchor link">#</a>Multi-model parents</h2>
|
|
277
271
|
<p>When the parent used <code>--models a,b,c</code>, pick which lineage to continue from with <code>--followup-model</code>:</p>
|
|
278
272
|
<pre class="shiki github-dark-dimmed" style="background-color:var(--code-bg);color:var(--code-fg)" tabindex="0"><code class="language-bash"><span class="line"><span style="color:#F69D50">oracle</span><span style="color:#6CB6FF"> --followup</span><span style="color:#96D0FF"> arch-review</span><span style="color:#6CB6FF"> --followup-model</span><span style="color:#96D0FF"> gpt-5.5-pro</span><span style="color:#F47067"> \</span></span>
|
|
@@ -280,10 +274,10 @@ body:not(.home) .doc>h1:first-child{display:none}
|
|
|
280
274
|
<span class="line"><span style="color:#6CB6FF"> --file</span><span style="color:#96D0FF"> "src/auth/rate-limiter.ts"</span></span></code></pre>
|
|
281
275
|
<p>Without <code>--followup-model</code>, Oracle errors with the available lineage.</p>
|
|
282
276
|
<h2 id="what-s-chainable"><a class="anchor" href="#what-s-chainable" aria-label="Anchor link">#</a>What's chainable</h2>
|
|
283
|
-
<table><thead><tr><th>Provider</th><th>Followup support</th></tr></thead><tbody><tr><td>OpenAI Responses API</td><td>✅ via <code>previous_response_id</code></td></tr><tr><td>Azure OpenAI (Responses)</td><td>✅ via <code>previous_response_id</code></td></tr><tr><td>
|
|
277
|
+
<table><thead><tr><th>Provider</th><th>Followup support</th></tr></thead><tbody><tr><td>OpenAI Responses API</td><td>✅ via <code>previous_response_id</code></td></tr><tr><td>Azure OpenAI (Responses)</td><td>✅ via <code>previous_response_id</code></td></tr><tr><td>Anthropic</td><td>❌ no Oracle-side response id chaining yet</td></tr><tr><td>Gemini</td><td>❌</td></tr><tr><td>OpenRouter</td><td>❌</td></tr><tr><td>Custom <code>--base-url</code></td><td>❌ — unknown whether the upstream preserves the id</td></tr><tr><td>Browser mode (ChatGPT)</td><td>partial — see <a href="#browser-multi-turn">Browser multi-turn</a></td></tr></tbody></table>
|
|
284
278
|
<p>If you try to follow up on an unsupported provider, Oracle errors clearly instead of silently starting fresh.</p>
|
|
285
|
-
<h2 id="
|
|
286
|
-
<p>In browser mode, <code>--browser-follow-up</code> adds
|
|
279
|
+
<h2 id="browser-multi-turn"><a class="anchor" href="#browser-multi-turn" aria-label="Anchor link">#</a>Browser multi-turn</h2>
|
|
280
|
+
<p>In browser mode, <code>--browser-follow-up</code> adds extra prompts to the <em>same ChatGPT conversation</em>, which is the closest equivalent to a chained API followup:</p>
|
|
287
281
|
<pre class="shiki github-dark-dimmed" style="background-color:var(--code-bg);color:var(--code-fg)" tabindex="0"><code class="language-bash"><span class="line"><span style="color:#F69D50">oracle</span><span style="color:#6CB6FF"> --engine</span><span style="color:#96D0FF"> browser</span><span style="color:#6CB6FF"> --model</span><span style="color:#96D0FF"> gpt-5.5-pro</span><span style="color:#F47067"> \</span></span>
|
|
288
282
|
<span class="line"><span style="color:#6CB6FF"> -p</span><span style="color:#96D0FF"> "Review this migration plan"</span><span style="color:#6CB6FF"> --file</span><span style="color:#96D0FF"> docs/migration.md</span><span style="color:#F47067"> \</span></span>
|
|
289
283
|
<span class="line"><span style="color:#6CB6FF"> --browser-follow-up</span><span style="color:#96D0FF"> "Challenge your previous recommendation"</span><span style="color:#F47067"> \</span></span>
|
|
@@ -305,11 +299,10 @@ body:not(.home) .doc>h1:first-child{display:none}
|
|
|
305
299
|
<h2 id="limitations"><a class="anchor" href="#limitations" aria-label="Anchor link">#</a>Limitations</h2>
|
|
306
300
|
<ul>
|
|
307
301
|
<li>Followups don't move between providers. You can't follow up an OpenAI run with a Gemini one — open a new session and re-bundle.</li>
|
|
308
|
-
<li>Browser followup requires a recoverable HTTPS ChatGPT conversation URL and an authenticated browser profile. Gemini web sessions are not supported.</li>
|
|
309
302
|
<li><code>previous_response_id</code> retention on OpenAI / Azure varies by tier. If a followup fails with "response not found," the parent has aged out — start fresh.</li>
|
|
310
303
|
<li>Custom <code>--base-url</code> proxies (LiteLLM, etc.) often strip the response id. Test once before relying on it.</li>
|
|
311
304
|
</ul><nav class="page-nav" aria-label="Pager"><a class="page-nav-prev" href="sessions.html"><small>Previous</small><span>Sessions</span></a><a class="page-nav-next" href="multimodel.html"><small>Next</small><span>Multi-Model Execution</span></a></nav></article>
|
|
312
|
-
<nav class="toc" aria-label="On this page"><h2>On this page</h2><a class="toc-l2" href="#why-followup-instead-of-starting-fresh">Why followup instead of starting fresh</a><a class="toc-l2" href="#basic-flow">Basic flow</a><a class="toc-l2" href="#multi-model-parents">Multi-model parents</a><a class="toc-l2" href="#what-s-chainable">What&#39;s chainable</a><a class="toc-l2" href="#
|
|
305
|
+
<nav class="toc" aria-label="On this page"><h2>On this page</h2><a class="toc-l2" href="#why-followup-instead-of-starting-fresh">Why followup instead of starting fresh</a><a class="toc-l2" href="#basic-flow">Basic flow</a><a class="toc-l2" href="#multi-model-parents">Multi-model parents</a><a class="toc-l2" href="#what-s-chainable">What&#39;s chainable</a><a class="toc-l2" href="#browser-multi-turn">Browser multi-turn</a><a class="toc-l2" href="#lineage-in-oracle-status">Lineage in oracle status</a><a class="toc-l2" href="#common-patterns">Common patterns</a><a class="toc-l2" href="#limitations">Limitations</a></nav>
|
|
313
306
|
</div>
|
|
314
307
|
</main>
|
|
315
308
|
</div>
|
|
@@ -256,7 +256,7 @@ body:not(.home) .doc>h1:first-child{display:none}
|
|
|
256
256
|
<li><strong>Set Environment Variable:</strong> Export the key as <code>GEMINI_API_KEY</code>.</li>
|
|
257
257
|
<p>``<code>bash export GEMINI_API_KEY="your-google-api-key" </code>``</p>
|
|
258
258
|
<li><strong>Run Oracle:</strong> Use the <code>--model</code> (or <code>-m</code>) flag to select Gemini.</li>
|
|
259
|
-
<p>``<code>bash oracle --engine api --model gemini --prompt "Explain quantum entanglement" </code>`<code>
|
|
259
|
+
<p>``<code>bash oracle --engine api --model gemini --prompt "Explain quantum entanglement" </code>`<code> You can also use the explicit model ID: </code>`<code>bash oracle --engine api --model gemini-3-pro --prompt "..." </code>`<code> Or the 3.1 alias, which Oracle dispatches to Google's preview model id: </code>`<code>bash oracle --engine api --model gemini-3.1-pro --prompt "..." </code>``</p>
|
|
260
260
|
</ol>
|
|
261
261
|
<h2 id="usage-gemini-web-cookies"><a class="anchor" href="#usage-gemini-web-cookies" aria-label="Anchor link">#</a>Usage (Gemini web / cookies)</h2>
|
|
262
262
|
<p>Gemini web mode is a cookie-based client for <code>gemini.google.com</code>. It does <strong>not</strong> use <code>GEMINI_API_KEY</code> and does <strong>not</strong> drive ChatGPT.</p>
|
|
@@ -267,7 +267,7 @@ body:not(.home) .doc>h1:first-child{display:none}
|
|
|
267
267
|
</ul>
|
|
268
268
|
<p>Examples:</p>
|
|
269
269
|
<pre class="shiki github-dark-dimmed" style="background-color:var(--code-bg);color:var(--code-fg)" tabindex="0"><code class="language-bash"><span class="line"><span style="color:#768390"># Text run</span></span>
|
|
270
|
-
<span class="line"><span style="color:#F69D50">oracle</span><span style="color:#6CB6FF"> --engine</span><span style="color:#96D0FF"> browser</span><span style="color:#6CB6FF"> --model</span><span style="color:#96D0FF"> gemini-3
|
|
270
|
+
<span class="line"><span style="color:#F69D50">oracle</span><span style="color:#6CB6FF"> --engine</span><span style="color:#96D0FF"> browser</span><span style="color:#6CB6FF"> --model</span><span style="color:#96D0FF"> gemini-3-pro</span><span style="color:#6CB6FF"> --prompt</span><span style="color:#96D0FF"> "Say OK."</span></span>
|
|
271
271
|
<span class="line"></span>
|
|
272
272
|
<span class="line"><span style="color:#768390"># Deep Think browser run (manual-login profile recommended on macOS)</span></span>
|
|
273
273
|
<span class="line"><span style="color:#F69D50">oracle</span><span style="color:#6CB6FF"> --engine</span><span style="color:#96D0FF"> browser</span><span style="color:#6CB6FF"> --browser-manual-login</span><span style="color:#F47067"> \</span></span>
|
|
@@ -275,30 +275,27 @@ body:not(.home) .doc>h1:first-child{display:none}
|
|
|
275
275
|
<span class="line"><span style="color:#6CB6FF"> --prompt</span><span style="color:#96D0FF"> "Think carefully, then answer in one paragraph."</span></span>
|
|
276
276
|
<span class="line"></span>
|
|
277
277
|
<span class="line"><span style="color:#768390"># Generate an image (writes an output file)</span></span>
|
|
278
|
-
<span class="line"><span style="color:#F69D50">oracle</span><span style="color:#6CB6FF"> --engine</span><span style="color:#96D0FF"> browser</span><span style="color:#6CB6FF"> --model</span><span style="color:#96D0FF"> gemini-3
|
|
278
|
+
<span class="line"><span style="color:#F69D50">oracle</span><span style="color:#6CB6FF"> --engine</span><span style="color:#96D0FF"> browser</span><span style="color:#6CB6FF"> --model</span><span style="color:#96D0FF"> gemini-3-pro</span><span style="color:#F47067"> \</span></span>
|
|
279
279
|
<span class="line"><span style="color:#6CB6FF"> --prompt</span><span style="color:#96D0FF"> "a cute robot holding a banana"</span><span style="color:#F47067"> \</span></span>
|
|
280
280
|
<span class="line"><span style="color:#6CB6FF"> --generate-image</span><span style="color:#96D0FF"> out.jpg</span><span style="color:#6CB6FF"> --aspect</span><span style="color:#96D0FF"> 1:1</span></span>
|
|
281
281
|
<span class="line"></span>
|
|
282
282
|
<span class="line"><span style="color:#768390"># Edit an image (input via --edit-image, output via --output)</span></span>
|
|
283
|
-
<span class="line"><span style="color:#F69D50">oracle</span><span style="color:#6CB6FF"> --engine</span><span style="color:#96D0FF"> browser</span><span style="color:#6CB6FF"> --model</span><span style="color:#96D0FF"> gemini-3
|
|
283
|
+
<span class="line"><span style="color:#F69D50">oracle</span><span style="color:#6CB6FF"> --engine</span><span style="color:#96D0FF"> browser</span><span style="color:#6CB6FF"> --model</span><span style="color:#96D0FF"> gemini-3-pro</span><span style="color:#F47067"> \</span></span>
|
|
284
284
|
<span class="line"><span style="color:#6CB6FF"> --prompt</span><span style="color:#96D0FF"> "add sunglasses"</span><span style="color:#F47067"> \</span></span>
|
|
285
285
|
<span class="line"><span style="color:#6CB6FF"> --edit-image</span><span style="color:#96D0FF"> in.png</span><span style="color:#6CB6FF"> --output</span><span style="color:#96D0FF"> out.jpg</span></span></code></pre>
|
|
286
286
|
<p>Notes:</p>
|
|
287
287
|
<ul>
|
|
288
|
-
<li>
|
|
289
|
-
<li>Legacy <code>gemini-3-pro</code>, <code>gemini-2.5-pro</code>, and <code>gemini-2.5-flash</code> browser names remain accepted and map to current Gemini web models.</li>
|
|
290
|
-
<li>If your logged-in Gemini account can’t access the requested model, Oracle auto-falls back to Gemini 3.1 Flash-Lite and logs the fallback in verbose mode.</li>
|
|
288
|
+
<li>If your logged-in Gemini account can’t access “Pro”, Oracle will auto-fallback to a supported model for web runs (and logs the fallback in verbose mode).</li>
|
|
291
289
|
<li>This path runs fully in Node/TypeScript (no Python/venv dependency).</li>
|
|
292
290
|
<li><code>--browser-model-strategy</code> only affects ChatGPT automation; Gemini web always uses the explicit Gemini model ID.</li>
|
|
293
291
|
<li><code>gemini-3-deep-think</code> is browser-only for now. <code>--engine api</code> rejects it instead of silently falling back to regular Gemini Pro.</li>
|
|
294
|
-
<li>Oracle intentionally does not expose generic <code>low</code> / <code>medium</code> / <code>high</code> Gemini aliases. Explicit IDs keep model choice, billing, and thinking-effort configuration distinct.</li>
|
|
295
292
|
<li>If Chrome cookie extraction fails, the missing-cookie error now includes any cookie-reader warnings plus <code>--browser-manual-login</code> / <code>--browser-inline-cookies-file</code> guidance.</li>
|
|
296
293
|
</ul>
|
|
297
294
|
<h2 id="implementation-details"><a class="anchor" href="#implementation-details" aria-label="Anchor link">#</a>Implementation details</h2>
|
|
298
295
|
<h3 id="gemini-api-adapter"><a class="anchor" href="#gemini-api-adapter" aria-label="Anchor link">#</a>Gemini API adapter</h3>
|
|
299
296
|
<ul>
|
|
300
297
|
<li><code>src/oracle/gemini.ts</code> — adapter using <code>@google/genai</code> that returns a <code>ClientLike</code>.</li>
|
|
301
|
-
<li>Model IDs: <code>gemini-3
|
|
298
|
+
<li>Model IDs: <code>gemini-3-pro</code> maps to <code>gemini-3-pro-preview</code>; <code>gemini-3.1-pro</code> maps to <code>gemini-3.1-pro-preview</code>.</li>
|
|
302
299
|
<li>Request mapping: <code>OracleRequestBody</code> → Gemini request; <code>web_search_preview</code> maps to Gemini search tooling.</li>
|
|
303
300
|
<li>Response mapping: Gemini responses → <code>OracleResponse</code>.</li>
|
|
304
301
|
<li>Streaming: wraps Gemini’s async iterator as <code>ResponseStreamLike</code>.</li>
|
|
@@ -307,7 +304,6 @@ body:not(.home) .doc>h1:first-child{display:none}
|
|
|
307
304
|
</ul>
|
|
308
305
|
<h3 id="gemini-web-client-cookie-based"><a class="anchor" href="#gemini-web-client-cookie-based" aria-label="Anchor link">#</a>Gemini web client (cookie-based)</h3>
|
|
309
306
|
<ul>
|
|
310
|
-
<li><code>src/gemini-web/models.ts</code> — centralizes current private web model headers, legacy aliases, and fallback selection.</li>
|
|
311
307
|
<li><code>src/gemini-web/client.ts</code> — talks to <code>gemini.google.com</code> and downloads generated images via authenticated <code>gg-dl</code> redirects.</li>
|
|
312
308
|
<li><code>src/gemini-web/executor.ts</code> — browser-engine executor for Gemini (loads Chrome cookies and runs the web client).</li>
|
|
313
309
|
</ul>
|
|
@@ -4,19 +4,19 @@
|
|
|
4
4
|
<meta charset="utf-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
6
|
<title>oracle — Whisper your prompt to a mythical pro agent</title>
|
|
7
|
-
<meta name="description" content="Oracle bundles your prompt and files so a mythical pro agent — GPT-5.5 Pro, Gemini 3
|
|
7
|
+
<meta name="description" content="Oracle bundles your prompt and files so a mythical pro agent — GPT-5.5 Pro, Gemini 3 Pro, Claude Opus, and friends — can answer with real repository context. CLI, MCP, browser, and API in one tool.">
|
|
8
8
|
<link rel="canonical" href="https://askoracle.sh/">
|
|
9
9
|
<meta property="og:type" content="website">
|
|
10
10
|
<meta property="og:site_name" content="oracle">
|
|
11
11
|
<meta property="og:title" content="oracle — Whisper your prompt to a mythical pro agent">
|
|
12
|
-
<meta property="og:description" content="Oracle bundles your prompt and files so a mythical pro agent — GPT-5.5 Pro, Gemini 3
|
|
12
|
+
<meta property="og:description" content="Oracle bundles your prompt and files so a mythical pro agent — GPT-5.5 Pro, Gemini 3 Pro, Claude Opus, and friends — can answer with real repository context. CLI, MCP, browser, and API in one tool.">
|
|
13
13
|
<meta property="og:url" content="https://askoracle.sh/">
|
|
14
14
|
<meta property="og:image" content="https://askoracle.sh/social-card.png">
|
|
15
15
|
<meta property="og:image:width" content="1200">
|
|
16
16
|
<meta property="og:image:height" content="630">
|
|
17
17
|
<meta name="twitter:card" content="summary_large_image">
|
|
18
18
|
<meta name="twitter:title" content="oracle — Whisper your prompt to a mythical pro agent">
|
|
19
|
-
<meta name="twitter:description" content="Oracle bundles your prompt and files so a mythical pro agent — GPT-5.5 Pro, Gemini 3
|
|
19
|
+
<meta name="twitter:description" content="Oracle bundles your prompt and files so a mythical pro agent — GPT-5.5 Pro, Gemini 3 Pro, Claude Opus, and friends — can answer with real repository context. CLI, MCP, browser, and API in one tool.">
|
|
20
20
|
<meta name="twitter:image" content="https://askoracle.sh/social-card.png">
|
|
21
21
|
<link rel="icon" href="favicon.svg" type="image/svg+xml">
|
|
22
22
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
@@ -236,7 +236,7 @@ body:not(.home) .doc>h1:first-child{display:none}
|
|
|
236
236
|
<header class="home-hero">
|
|
237
237
|
<p class="eyebrow">One CLI · Every Pro agent</p>
|
|
238
238
|
<h1>Whisper your prompt to a mythical pro agent</h1>
|
|
239
|
-
<p class="lede">Oracle bundles your prompt and files so a mythical pro agent — GPT-5.5 Pro, Gemini 3
|
|
239
|
+
<p class="lede">Oracle bundles your prompt and files so a mythical pro agent — GPT-5.5 Pro, Gemini 3 Pro, Claude Opus, and friends — can answer with real repository context. CLI, MCP, browser, and API in one tool.</p>
|
|
240
240
|
<div class="home-cta">
|
|
241
241
|
<a class="btn btn-primary" href="quickstart.html">Quickstart</a>
|
|
242
242
|
<a class="btn btn-ghost" href="https://github.com/steipete/oracle" rel="noopener">GitHub</a>
|
|
@@ -272,7 +272,7 @@ body:not(.home) .doc>h1:first-child{display:none}
|
|
|
272
272
|
<p><code>--render</code> emits the assembled markdown, sessions persist machine-readable metadata, and progress stays out of saved answers so pipes remain usable.</p>
|
|
273
273
|
<h2 id="what-oracle-does"><a class="anchor" href="#what-oracle-does" aria-label="Anchor link">#</a>What Oracle does</h2>
|
|
274
274
|
<ul>
|
|
275
|
-
<li><strong>One CLI to a stable of pro agents.</strong> GPT-5.5 Pro (default), GPT-5.5, GPT-5.4 Pro, GPT-5.4, GPT-5.2 Pro, GPT-5.1 Pro, GPT-5.1 Codex, Gemini 3.1 Pro, Gemini 3
|
|
275
|
+
<li><strong>One CLI to a stable of pro agents.</strong> GPT-5.5 Pro (default), GPT-5.5, GPT-5.4 Pro, GPT-5.4, GPT-5.2 Pro, GPT-5.1 Pro, GPT-5.1 Codex, Gemini 3.1 Pro, Gemini 3 Pro, Claude Sonnet 4.6, Claude Opus 4.1 — plus any OpenRouter id.</li>
|
|
276
276
|
<li><strong>Engines, plural.</strong> API mode for reliability, browser mode (Chrome over CDP) when you don't want to pay or want the Pro tier, <code>--render --copy</code> when neither is an option.</li>
|
|
277
277
|
<li><strong>Multi-model in one run.</strong> Aggregate cost, token usage, and lineage across providers in a single command.</li>
|
|
278
278
|
<li><strong>Recoverable panels.</strong> <code>doctor --providers</code>, <code>--preflight</code>, <code>--route</code>, and <code>--allow-partial</code> make provider/key failures clear without losing successful model output.</li>
|
|
@@ -285,13 +285,13 @@ body:not(.home) .doc>h1:first-child{display:none}
|
|
|
285
285
|
<h2 id="pick-your-path"><a class="anchor" href="#pick-your-path" aria-label="Anchor link">#</a>Pick your path</h2>
|
|
286
286
|
<ul>
|
|
287
287
|
<li><strong>Trying it.</strong> <a href="install.html">Install</a> → <a href="quickstart.html">Quickstart</a>. Five minutes from <code>brew install</code> to your first answer.</li>
|
|
288
|
-
<li><strong>Choosing a model.</strong> The <a href="mythical-pro-agents.html">Mythical Pro Agents</a> lineup covers when to reach for GPT-5.5 Pro vs. Gemini 3
|
|
288
|
+
<li><strong>Choosing a model.</strong> The <a href="mythical-pro-agents.html">Mythical Pro Agents</a> lineup covers when to reach for GPT-5.5 Pro vs. Gemini 3 Pro vs. Claude Opus, and what each costs.</li>
|
|
289
289
|
<li><strong>Wiring up an agent.</strong> <a href="agents.html">Agents</a> covers Claude Code, Codex, Cursor, and the <code>oracle</code> skill. <a href="mcp.html">MCP</a> plugs Oracle into any MCP-aware client.</li>
|
|
290
290
|
<li><strong>Driving ChatGPT without keys.</strong> <a href="browser-mode.html">Browser mode</a> walks through manual-login profiles, attach-running, remote browsers, and Deep Research.</li>
|
|
291
291
|
<li><strong>Long Pro runs.</strong> <a href="sessions.html">Sessions</a> and the <a href="followup.html">followup</a> flow handle background runs, reattach, and lineage.</li>
|
|
292
292
|
</ul>
|
|
293
293
|
<h2 id="why-mythical-pro-agents"><a class="anchor" href="#why-mythical-pro-agents" aria-label="Anchor link">#</a>Why "mythical pro agents"?</h2>
|
|
294
|
-
<p>The frontier models marked "Pro" — GPT-5.5 Pro, Gemini 3
|
|
294
|
+
<p>The frontier models marked "Pro" — GPT-5.5 Pro, Gemini 3 Pro, Claude Opus, OpenAI Deep Research — are slow, expensive, and gated behind ChatGPT Plus / Pro tiers, separate APIs, or per-token bills that scale fast. Oracle is the single entry point: one config, one session store, one set of flags. Bundle the right files, ask the right model, get a second opinion without remembering which provider charges for what.</p>
|
|
295
295
|
<h2 id="project"><a class="anchor" href="#project" aria-label="Anchor link">#</a>Project</h2>
|
|
296
296
|
<p>Active development under MIT. The <a href="https://github.com/steipete/oracle/blob/main/CHANGELOG.md">changelog</a> tracks recent releases. Source on <a href="https://github.com/steipete/oracle">GitHub</a>. Not affiliated with OpenAI, Google, or Anthropic.</p></article>
|
|
297
297
|
|
|
@@ -260,7 +260,7 @@ body:not(.home) .doc>h1:first-child{display:none}
|
|
|
260
260
|
<p><code>npx</code> is fine for CI, ad-hoc scripts, or when you don't want a global binary on the box. Cache the package in CI by pinning the version (<code>@steipete/oracle@0.12.1</code>) so you don't re-download on every job.</p>
|
|
261
261
|
<h2 id="api-keys-optional"><a class="anchor" href="#api-keys-optional" aria-label="Anchor link">#</a>API keys (optional)</h2>
|
|
262
262
|
<p>API mode is opt-in and reads keys from the environment. Set whichever providers you'll use:</p>
|
|
263
|
-
<table><thead><tr><th>Provider</th><th>Env var</th><th>Models</th></tr></thead><tbody><tr><td>OpenAI</td><td><code>OPENAI_API_KEY</code></td><td>GPT-5.x, GPT-5.x Pro, GPT-5.1 Codex</td></tr><tr><td>Azure OpenAI</td><td><code>AZURE_OPENAI_API_KEY</code>, <code>AZURE_OPENAI_ENDPOINT</code>, <code>..._DEPLOYMENT</code></td><td>Same models, hosted on Azure</td></tr><tr><td>Google</td><td><code>GEMINI_API_KEY</code></td><td>Gemini 3.1 Pro
|
|
263
|
+
<table><thead><tr><th>Provider</th><th>Env var</th><th>Models</th></tr></thead><tbody><tr><td>OpenAI</td><td><code>OPENAI_API_KEY</code></td><td>GPT-5.x, GPT-5.x Pro, GPT-5.1 Codex</td></tr><tr><td>Azure OpenAI</td><td><code>AZURE_OPENAI_API_KEY</code>, <code>AZURE_OPENAI_ENDPOINT</code>, <code>..._DEPLOYMENT</code></td><td>Same models, hosted on Azure</td></tr><tr><td>Google</td><td><code>GEMINI_API_KEY</code></td><td>Gemini 3.1 Pro (API-only), Gemini 3 Pro</td></tr><tr><td>Anthropic</td><td><code>ANTHROPIC_API_KEY</code></td><td>Claude Sonnet 4.6, Claude Opus 4.1</td></tr><tr><td>OpenRouter</td><td><code>OPENROUTER_API_KEY</code></td><td>Any OpenRouter id (e.g. <code>minimax/minimax-m2</code>)</td></tr></tbody></table>
|
|
264
264
|
<p>If no key is set, Oracle defaults to <strong>browser mode</strong> and drives ChatGPT directly — see <a href="browser-mode.html">Browser Mode</a> for the manual-login flow.</p>
|
|
265
265
|
<h2 id="where-oracle-stores-state"><a class="anchor" href="#where-oracle-stores-state" aria-label="Anchor link">#</a>Where Oracle stores state</h2>
|
|
266
266
|
<table><thead><tr><th>Path</th><th>Contents</th></tr></thead><tbody><tr><td><code>~/.oracle/config.json</code></td><td>Defaults (JSON5). See <a href="configuration.html">Configuration</a>.</td></tr><tr><td><code>~/.oracle/sessions/<id>/</code></td><td>Run logs, bundles, transcripts, generated artifacts</td></tr><tr><td><code>~/.oracle/cookies.json</code></td><td>(Optional) inline ChatGPT cookies for browser mode</td></tr></tbody></table>
|
|
@@ -433,8 +433,6 @@ body:not(.home) .doc>h1:first-child{display:none}
|
|
|
433
433
|
<li><strong>GPT-5.5 simple prompt</strong></li>
|
|
434
434
|
<p><code>pnpm run oracle -- --engine browser --model gpt-5.5 --prompt "List two reasons Markdown is handy"</code> Confirm the answer arrives (and only once) even if it takes ~2–3 minutes.</p>
|
|
435
435
|
</ol>
|
|
436
|
-
<p>2b. <strong>GPT-5.5 Instant smoke</strong> <code>pnpm run oracle -- --engine browser --model gpt-5.5-instant --prompt "Give me two short markdown bullet points about tables"</code> Expect a near-instant response (no Thinking spinner) and confirm the composer pill shows the "Instant" row, not "Thinking 5.5" or "Pro". Run after any change to the 5.5 picker tokens.</p>
|
|
437
|
-
<p>2c. <strong>GPT-5.5 Pro effort through the unified picker</strong> <code>pnpm run oracle -- --engine browser --browser-manual-login --model gpt-5.5-pro --write-output response.txt --prompt "Say Hi!"</code> Confirm the logs report a verified GPT-5.5 model followed by <code>Thinking time: Pro</code>, and <code>response.txt</code> contains the captured answer. Exercise both a tab starting on another model and a retained tab where GPT-5.5 is already selected. Never click ChatGPT's "Answer now" shortcut while the Pro response is thinking.</p>
|
|
438
436
|
<ol>
|
|
439
437
|
<li><strong>GPT-5.5 + attachment</strong></li>
|
|
440
438
|
<p>Prepare <code>/tmp/browser-md.txt</code> with a short note, then run <code>pnpm run oracle -- --engine browser --model gpt-5.5 --prompt "Summarize the key idea from the attached note" --file /tmp/browser-md.txt</code> Ensure upload logs show “Attachment queued” and the answer references the file contents explicitly.</p>
|
|
@@ -485,7 +483,7 @@ body:not(.home) .doc>h1:first-child{display:none}
|
|
|
485
483
|
<ol>
|
|
486
484
|
<li><strong>Launch within tmux</strong></li>
|
|
487
485
|
</ol>
|
|
488
|
-
<p>``<code>bash tmux new -d -s oracle-browser \\ "pnpm run oracle -- --engine browser --browser-keep-browser \\ --model
|
|
486
|
+
<p>``<code>bash tmux new -d -s oracle-browser \\ "pnpm run oracle -- --engine browser --browser-keep-browser \\ --model 'GPT-5.5 Pro' --prompt 'Debug via DevTools.'" </code>``</p>
|
|
489
487
|
<p>Keeping the run in tmux prevents your shell from blocking and ensures Chrome stays open afterward.</p>
|
|
490
488
|
<ol>
|
|
491
489
|
<li><strong>Grab the DevTools port</strong></li>
|
|
@@ -526,7 +524,7 @@ body:not(.home) .doc>h1:first-child{display:none}
|
|
|
526
524
|
<li>Export a real key and explicitly opt in (default runs stay fast):</li>
|
|
527
525
|
<p>``<code>bash export OPENAI_API_KEY=sk-... export ORACLE_LIVE_TEST=1 pnpm vitest run tests/live/openai-live.test.ts </code>``</p>
|
|
528
526
|
<li>The first two tests target the standard GPT-5 (<code>gpt-5.1</code> / <code>gpt-5.2</code>) foreground</li>
|
|
529
|
-
<p>streaming paths. The later background tests send <code>gpt-5.5-pro</code> and
|
|
527
|
+
<p>streaming paths. The later background tests send <code>gpt-5.5-pro</code> and <code>gpt-5.2-pro</code> prompts and expect the CLI to stay in background mode until OpenAI finishes (up to 30 minutes).</p>
|
|
530
528
|
<li>Watch the console for <code>Reconnected to OpenAI background response...</code> if</li>
|
|
531
529
|
<p>you're debugging transport flakiness; the test will fail if the response status isn't <code>completed</code> or if the text doesn't contain the hard-coded smoke strings.</p>
|
|
532
530
|
</ol>
|
package/dist/docs-site/mcp.html
CHANGED
|
@@ -249,43 +249,20 @@ body:not(.home) .doc>h1:first-child{display:none}
|
|
|
249
249
|
<h2 id="let-them-fight"><a class="anchor" href="#let-them-fight" aria-label="Anchor link">#</a>Let Them Fight</h2>
|
|
250
250
|
<p>Claude Code can call <code>oracle-mcp</code> and ask a subscription-backed ChatGPT browser session for a second opinion. Use the <code>chatgpt-pro-heavy</code> preset when you want a compact MCP request that targets ChatGPT browser mode, the current Pro picker alias, and Pro Extended thinking time. The preset is intentionally boring at the API layer: it is a shortcut for existing browser-mode fields, not a new model id.</p>
|
|
251
251
|
<h2 id="tools"><a class="anchor" href="#tools" aria-label="Anchor link">#</a>Tools</h2>
|
|
252
|
-
<h3 id="chatgpt-image"><a class="anchor" href="#chatgpt-image" aria-label="Anchor link">#</a><code>chatgpt_image</code></h3>
|
|
253
|
-
<ul>
|
|
254
|
-
<li>Inputs: <code>prompt</code> (required), <code>files?: string[]</code> for reference images/assets, <code>outputPath?: string</code>, <code>aspectRatio?: string</code>, <code>model?: string</code>, plus browser controls such as <code>browserThinkingTime</code>, <code>browserModelLabel</code>, <code>browserModelStrategy</code>, <code>browserArchive</code>, <code>browserKeepBrowser</code>, and <code>dryRun</code>.</li>
|
|
255
|
-
<li>Behavior: convenience wrapper for ChatGPT browser image generation. It forces <code>engine:"browser"</code>, sets <code>generateImage</code> for the existing image-aware wait/download path, and defaults <code>browserAttachments:"always"</code> when files are provided so reference images are uploaded instead of pasted.</li>
|
|
256
|
-
<li>Output: returns the normal session metadata plus <code>requestedOutputPath</code> and <code>structuredContent.images[]</code> with saved local paths, MIME type, size, dimensions, and ChatGPT file id when available. Signed source/download URLs are not returned. If <code>outputPath</code> is omitted, Oracle picks a unique file under <code>ORACLE_HOME_DIR/generated/</code>.</li>
|
|
257
|
-
<li>Output path safety: agent-supplied <code>outputPath</code> must resolve under <code>ORACLE_HOME_DIR/generated</code> by default; traversal and symlink escapes are rejected. This keeps MCP writes away from Oracle config, session metadata, and browser profile state. Set <code>ORACLE_MCP_ALLOW_EXTERNAL_OUTPUT=1</code> to allow writing elsewhere as an explicit operator decision. Omit <code>outputPath</code> to use the safe default.</li>
|
|
258
|
-
<li>Local browser only: image output is unsupported when a remote browser service is configured (<code>ORACLE_REMOTE_HOST</code>); the image would be written on the remote host and not transferred back, so <code>chatgpt_image</code>/<code>consult</code> image runs fail closed with a clear error rather than returning empty <code>structuredContent.images</code>. Run on the local browser to generate images.</li>
|
|
259
|
-
</ul>
|
|
260
|
-
<pre class="shiki github-dark-dimmed" style="background-color:var(--code-bg);color:var(--code-fg)" tabindex="0"><code class="language-json"><span class="line"><span style="color:#ADBAC7">{</span></span>
|
|
261
|
-
<span class="line"><span style="color:#8DDB8C"> "prompt"</span><span style="color:#ADBAC7">: </span><span style="color:#96D0FF">"Create a 9:16 App Store screenshot background for a focus timer."</span><span style="color:#ADBAC7">,</span></span>
|
|
262
|
-
<span class="line"><span style="color:#8DDB8C"> "files"</span><span style="color:#ADBAC7">: [</span><span style="color:#96D0FF">"./reference-screen.png"</span><span style="color:#ADBAC7">],</span></span>
|
|
263
|
-
<span class="line"><span style="color:#8DDB8C"> "aspectRatio"</span><span style="color:#ADBAC7">: </span><span style="color:#96D0FF">"9:16"</span></span>
|
|
264
|
-
<span class="line"><span style="color:#ADBAC7">}</span></span></code></pre>
|
|
265
252
|
<h3 id="consult"><a class="anchor" href="#consult" aria-label="Anchor link">#</a><code>consult</code></h3>
|
|
266
253
|
<ul>
|
|
267
|
-
<li>Inputs: <code>prompt</code> (required), <code>files?: string[]</code> (globs), <code>model?: string</code> (defaults to CLI), <code>engine?: "api" | "browser"</code> (optional; Oracle follows CLI defaults:
|
|
254
|
+
<li>Inputs: <code>prompt</code> (required), <code>files?: string[]</code> (globs), <code>model?: string</code> (defaults to CLI), <code>engine?: "api" | "browser"</code> (optional; Oracle follows CLI defaults: config/<code>ORACLE_ENGINE</code> first, then API when <code>OPENAI_API_KEY</code> is set, otherwise browser), <code>slug?: string</code>.</li>
|
|
268
255
|
<li>Presets: <code>preset?: "chatgpt-pro-heavy"</code> applies browser mode + current Pro model alias + extended thinking, unless the request overrides those fields.</li>
|
|
269
|
-
<li>Browser-only extras: <code>browserAttachments?: "auto"|"never"|"always"</code>, <code>browserBundleFiles?: boolean</code>, <code>browserBundleFormat?: "
|
|
256
|
+
<li>Browser-only extras: <code>browserAttachments?: "auto"|"never"|"always"</code>, <code>browserBundleFiles?: boolean</code>, <code>browserBundleFormat?: "text"|"zip"</code>, <code>browserThinkingTime?: "light"|"standard"|"extended"|"heavy"</code>, <code>browserResearchMode?: "deep"</code>, <code>browserFollowUps?: string[]</code>, <code>browserArchive?: "auto"|"always"|"never"</code>, <code>browserKeepBrowser?: boolean</code>, <code>browserModelLabel?: string</code>, <code>browserModelStrategy?: "select"|"current"|"ignore"</code>.</li>
|
|
270
257
|
<li>Dry runs: set <code>dryRun: true</code> to preview the resolved request without creating a session or touching the browser.</li>
|
|
271
258
|
<li>Behavior: starts a session, runs it with the chosen engine, returns final output + metadata. Background/foreground follows the CLI (e.g., GPT‑5 Pro detaches by default). If API mode fails because <code>OPENAI_API_KEY</code> is missing and you have ChatGPT Pro, retry with <code>engine: "browser"</code> or <code>preset: "chatgpt-pro-heavy"</code> to use your signed-in ChatGPT session instead of an API key.</li>
|
|
272
259
|
<li>Logging: emits MCP logs (<code>info</code> per line, <code>debug</code> for streamed chunks with byte sizes). If browser prerequisites are missing, returns an error payload instead of running.</li>
|
|
273
|
-
<li>Research mode: set <code>browserResearchMode:"deep"</code> for broad public-web research and cited reports. Use normal browser runs with <code>gpt-5.5-pro</code> + <code>browserThinkingTime:"extended"</code> for
|
|
260
|
+
<li>Research mode: set <code>browserResearchMode:"deep"</code> for broad public-web research and cited reports. Use normal browser runs with <code>gpt-5.5-pro</code> + <code>browserThinkingTime:"extended"</code> for Pro Extended code review, or <code>gpt-5.5</code> + <code>browserThinkingTime:"heavy"</code> when you explicitly want Thinking Heavy.</li>
|
|
274
261
|
<li>Multi-turn consults: set <code>browserFollowUps:["Challenge your recommendation", "Give the final decision"]</code> to keep one ChatGPT browser conversation open and ask sequential follow-up prompts. Use one-shot calls for narrow bugs and exact file-set reviews; use multi-turn for ambiguous architecture/product decisions where a challenge pass and final recommendation are useful; use Deep Research for broad public-web work with citations. Oracle never invents follow-ups automatically.</li>
|
|
275
262
|
<li>Archiving: set <code>browserArchive:"auto"|"always"|"never"</code> to control ChatGPT conversation cleanup. <code>auto</code> archives only successful browser one-shots after local artifacts are saved, and skips project, Deep Research, multi-turn, failed, and incomplete sessions.</li>
|
|
276
|
-
<li>ChatGPT image generation: set <code>engine:"browser"</code> and <code>generateImage</code> to a path under <code>ORACLE_HOME_DIR/generated</code> to use the same image-aware wait/download path as CLI <code>--generate-image</code>. Saved files are returned in <code>structuredContent.images</code> and recorded as session artifacts; multiple images save as numbered siblings. Agent-supplied <code>generateImage</code> / <code>outputPath</code> are constrained to that generated-output directory by default (set <code>ORACLE_MCP_ALLOW_EXTERNAL_OUTPUT=1</code> to allow external paths).</li>
|
|
277
263
|
</ul>
|
|
278
264
|
<h4 id="long-browser-consults-from-agents"><a class="anchor" href="#long-browser-consults-from-agents" aria-label="Anchor link">#</a>Long browser consults from agents</h4>
|
|
279
265
|
<p>Browser-backed GPT-5.5 Pro consults can legitimately run for many minutes. Some MCP clients show little progress while a tool call is active, so agents should treat a long Oracle call as a running browser job, not as a failed step. Start with <code>dryRun:true</code> when configuring a new agent, prefer <code>preset:"chatgpt-pro-heavy"</code> or <code>engine:"browser"</code> explicitly, and use the shared session store (<code>sessions</code>, <code>oracle status</code>, or <code>oracle session <id></code>) before retrying a prompt. If the browser control plan says Oracle will launch visible Chrome, use attach/remote Chrome when the operator is actively using the computer.</p>
|
|
280
|
-
<h4 id="chatgpt-images-from-agents"><a class="anchor" href="#chatgpt-images-from-agents" aria-label="Anchor link">#</a>ChatGPT images from agents</h4>
|
|
281
|
-
<p>For generated images, pass an explicit <code>generateImage</code> path. That opt-in is important because it switches the browser wait loop to watch for ChatGPT image artifacts instead of only assistant text. The path must resolve under <code>ORACLE_HOME_DIR/generated</code> unless <code>ORACLE_MCP_ALLOW_EXTERNAL_OUTPUT=1</code> is set.</p>
|
|
282
|
-
<pre class="shiki github-dark-dimmed" style="background-color:var(--code-bg);color:var(--code-fg)" tabindex="0"><code class="language-json"><span class="line"><span style="color:#ADBAC7">{</span></span>
|
|
283
|
-
<span class="line"><span style="color:#8DDB8C"> "engine"</span><span style="color:#ADBAC7">: </span><span style="color:#96D0FF">"browser"</span><span style="color:#ADBAC7">,</span></span>
|
|
284
|
-
<span class="line"><span style="color:#8DDB8C"> "model"</span><span style="color:#ADBAC7">: </span><span style="color:#96D0FF">"gpt-5.5-pro"</span><span style="color:#ADBAC7">,</span></span>
|
|
285
|
-
<span class="line"><span style="color:#8DDB8C"> "prompt"</span><span style="color:#ADBAC7">: </span><span style="color:#96D0FF">"Create a 9:16 App Store screenshot background for a focus timer."</span><span style="color:#ADBAC7">,</span></span>
|
|
286
|
-
<span class="line"><span style="color:#8DDB8C"> "generateImage"</span><span style="color:#ADBAC7">: </span><span style="color:#96D0FF">"${ORACLE_HOME_DIR}/generated/focus-timer-bg.png"</span></span>
|
|
287
|
-
<span class="line"><span style="color:#ADBAC7">}</span></span></code></pre>
|
|
288
|
-
<p>The MCP response includes <code>structuredContent.images[]</code> with the saved file path, MIME type, size, dimensions, and ChatGPT file id when available. Signed source/download URLs remain internal.</p>
|
|
289
266
|
<h3 id="sessions"><a class="anchor" href="#sessions" aria-label="Anchor link">#</a><code>sessions</code></h3>
|
|
290
267
|
<ul>
|
|
291
268
|
<li>Inputs: <code>{id?, hours?, limit?, includeAll?, detail?}</code> mirroring <code>oracle status</code> / <code>oracle session</code>.</li>
|
|
@@ -323,9 +300,9 @@ body:not(.home) .doc>h1:first-child{display:none}
|
|
|
323
300
|
<li>Claude Code: <code>oracle bridge claude-config</code></li>
|
|
324
301
|
<li>Claude Code with local macOS Chrome: <code>oracle bridge claude-config --local-browser > .mcp.json</code></li>
|
|
325
302
|
<li>Tools and resources operate on the same session store as <code>oracle status|session</code>.</li>
|
|
326
|
-
<li>Defaults (model/engine/etc.) come from
|
|
303
|
+
<li>Defaults (model/engine/etc.) come from your Oracle CLI config; see <code>docs/configuration.md</code> or <code>~/.oracle/config.json</code>.</li>
|
|
327
304
|
</ul><nav class="page-nav" aria-label="Pager"><a class="page-nav-prev" href="agents.html"><small>Previous</small><span>Coding Agents</span></a><a class="page-nav-next" href="sessions.html"><small>Next</small><span>Sessions</span></a></nav></article>
|
|
328
|
-
<nav class="toc" aria-label="On this page"><h2>On this page</h2><a class="toc-l2" href="#let-them-fight">Let Them Fight</a><a class="toc-l2" href="#tools">Tools</a><a class="toc-l3" href="#
|
|
305
|
+
<nav class="toc" aria-label="On this page"><h2>On this page</h2><a class="toc-l2" href="#let-them-fight">Let Them Fight</a><a class="toc-l2" href="#tools">Tools</a><a class="toc-l3" href="#consult">consult</a><a class="toc-l3" href="#sessions">sessions</a><a class="toc-l3" href="#project-sources">project_sources</a><a class="toc-l2" href="#resources">Resources</a><a class="toc-l2" href="#background-detach-behavior">Background / detach behavior</a><a class="toc-l2" href="#launching-usage">Launching &amp; usage</a></nav>
|
|
329
306
|
</div>
|
|
330
307
|
</main>
|
|
331
308
|
</div>
|
|
@@ -4,19 +4,19 @@
|
|
|
4
4
|
<meta charset="utf-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
6
|
<title>Mythical Pro Agents — oracle</title>
|
|
7
|
-
<meta name="description" content="The frontier 'Pro' model lineup Oracle speaks to — GPT-5.5 Pro, Gemini 3
|
|
7
|
+
<meta name="description" content="The frontier 'Pro' model lineup Oracle speaks to — GPT-5.5 Pro, Gemini 3 Pro, Claude Opus, Deep Research — and when to reach for each.">
|
|
8
8
|
<link rel="canonical" href="https://askoracle.sh/mythical-pro-agents.html">
|
|
9
9
|
<meta property="og:type" content="website">
|
|
10
10
|
<meta property="og:site_name" content="oracle">
|
|
11
11
|
<meta property="og:title" content="Mythical Pro Agents — oracle">
|
|
12
|
-
<meta property="og:description" content="The frontier 'Pro' model lineup Oracle speaks to — GPT-5.5 Pro, Gemini 3
|
|
12
|
+
<meta property="og:description" content="The frontier 'Pro' model lineup Oracle speaks to — GPT-5.5 Pro, Gemini 3 Pro, Claude Opus, Deep Research — and when to reach for each.">
|
|
13
13
|
<meta property="og:url" content="https://askoracle.sh/mythical-pro-agents.html">
|
|
14
14
|
<meta property="og:image" content="https://askoracle.sh/social-card.png">
|
|
15
15
|
<meta property="og:image:width" content="1200">
|
|
16
16
|
<meta property="og:image:height" content="630">
|
|
17
17
|
<meta name="twitter:card" content="summary_large_image">
|
|
18
18
|
<meta name="twitter:title" content="Mythical Pro Agents — oracle">
|
|
19
|
-
<meta name="twitter:description" content="The frontier 'Pro' model lineup Oracle speaks to — GPT-5.5 Pro, Gemini 3
|
|
19
|
+
<meta name="twitter:description" content="The frontier 'Pro' model lineup Oracle speaks to — GPT-5.5 Pro, Gemini 3 Pro, Claude Opus, Deep Research — and when to reach for each.">
|
|
20
20
|
<meta name="twitter:image" content="https://askoracle.sh/social-card.png">
|
|
21
21
|
<link rel="icon" href="favicon.svg" type="image/svg+xml">
|
|
22
22
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
@@ -246,7 +246,7 @@ body:not(.home) .doc>h1:first-child{display:none}
|
|
|
246
246
|
<div class="doc-grid">
|
|
247
247
|
<article class="doc"><p>The headline frontier models — the ones marked <strong>Pro</strong> — are slow, expensive, and gated behind separate consumer subscriptions or per-token bills. Oracle is the single CLI that talks to all of them with the same flags, the same session store, and the same bundling rules.</p>
|
|
248
248
|
<h2 id="the-lineup"><a class="anchor" href="#the-lineup" aria-label="Anchor link">#</a>The lineup</h2>
|
|
249
|
-
<table><thead><tr><th>Model</th><th>Engine</th><th>API id</th><th>Browser model picker</th><th>Speciality</th></tr></thead><tbody><tr><td>GPT-5.5 Pro</td><td>API or browser</td><td><code>gpt-5.5-pro</code> (default)</td><td>"GPT-5.5 Pro" / "5.5 Pro"</td><td>Long-form code review, planning</td></tr><tr><td>GPT-5.5</td><td>API or browser</td><td><code>gpt-5.5</code></td><td>"GPT-5.5"</td><td>Fast everyday consults</td></tr><tr><td>GPT-5.4 Pro</td><td>API or browser</td><td><code>gpt-5.4-pro</code></td><td>"5.4 Pro"</td><td>Mature Pro workflow</td></tr><tr><td>GPT-5.4</td><td>API or browser</td><td><code>gpt-5.4</code></td><td>"GPT-5.4"</td><td>Mid-tier general</td></tr><tr><td>GPT-5.2 Pro</td><td>API or browser</td><td><code>gpt-5.2-pro</code></td><td>"5.2 Pro"</td><td>Heavy reasoning</td></tr><tr><td>GPT-5.2</td><td>API or browser</td><td><code>gpt-5.2</code></td><td>"GPT-5.2"</td><td>Mid-tier</td></tr><tr><td>GPT-5.1 Pro</td><td>API or browser</td><td><code>gpt-5.1-pro</code></td><td>"5.1 Pro"</td><td>Long context</td></tr><tr><td>GPT-5.1</td><td>API or browser</td><td><code>gpt-5.1</code></td><td>"GPT-5.1"</td><td>General</td></tr><tr><td>GPT-5.1 Codex</td><td>API only</td><td><code>gpt-5.1-codex</code></td><td>—</td><td>Code generation</td></tr><tr><td>Gemini 3.1 Pro</td><td>API
|
|
249
|
+
<table><thead><tr><th>Model</th><th>Engine</th><th>API id</th><th>Browser model picker</th><th>Speciality</th></tr></thead><tbody><tr><td>GPT-5.5 Pro</td><td>API or browser</td><td><code>gpt-5.5-pro</code> (default)</td><td>"GPT-5.5 Pro" / "5.5 Pro"</td><td>Long-form code review, planning</td></tr><tr><td>GPT-5.5</td><td>API or browser</td><td><code>gpt-5.5</code></td><td>"GPT-5.5"</td><td>Fast everyday consults</td></tr><tr><td>GPT-5.4 Pro</td><td>API or browser</td><td><code>gpt-5.4-pro</code></td><td>"5.4 Pro"</td><td>Mature Pro workflow</td></tr><tr><td>GPT-5.4</td><td>API or browser</td><td><code>gpt-5.4</code></td><td>"GPT-5.4"</td><td>Mid-tier general</td></tr><tr><td>GPT-5.2 Pro</td><td>API or browser</td><td><code>gpt-5.2-pro</code></td><td>"5.2 Pro"</td><td>Heavy reasoning</td></tr><tr><td>GPT-5.2</td><td>API or browser</td><td><code>gpt-5.2</code></td><td>"GPT-5.2"</td><td>Mid-tier</td></tr><tr><td>GPT-5.1 Pro</td><td>API or browser</td><td><code>gpt-5.1-pro</code></td><td>"5.1 Pro"</td><td>Long context</td></tr><tr><td>GPT-5.1</td><td>API or browser</td><td><code>gpt-5.1</code></td><td>"GPT-5.1"</td><td>General</td></tr><tr><td>GPT-5.1 Codex</td><td>API only</td><td><code>gpt-5.1-codex</code></td><td>—</td><td>Code generation</td></tr><tr><td>Gemini 3.1 Pro</td><td>API only</td><td><code>gemini-3.1-pro</code></td><td>—</td><td>Long-context multimodal</td></tr><tr><td>Gemini 3 Pro</td><td>API or browser</td><td><code>gemini-3-pro</code></td><td>(auto on <code>gemini.google.com</code>)</td><td>Multimodal, image gen, YouTube, free in browser</td></tr><tr><td>Claude Opus 4.1</td><td>API only</td><td><code>claude-4.1-opus</code></td><td>—</td><td>Deepest single-shot reasoning</td></tr><tr><td>Claude Sonnet 4.6</td><td>API only</td><td><code>claude-4.6-sonnet</code></td><td>—</td><td>Fast Claude</td></tr></tbody></table>
|
|
250
250
|
<p>Plus any <strong>OpenRouter</strong> id — e.g. <code>minimax/minimax-m2</code>, <code>openai/gpt-4o-mini</code>, <code>qwen/qwen-2.5-coder-32b-instruct</code> — when you set <code>OPENROUTER_API_KEY</code>.</p>
|
|
251
251
|
<h2 id="when-to-reach-for-which"><a class="anchor" href="#when-to-reach-for-which" aria-label="Anchor link">#</a>When to reach for which</h2>
|
|
252
252
|
<h3 id="gpt-5-5-pro-default"><a class="anchor" href="#gpt-5-5-pro-default" aria-label="Anchor link">#</a>GPT-5.5 Pro (default)</h3>
|
|
@@ -254,9 +254,9 @@ body:not(.home) .doc>h1:first-child{display:none}
|
|
|
254
254
|
<pre class="shiki github-dark-dimmed" style="background-color:var(--code-bg);color:var(--code-fg)" tabindex="0"><code class="language-bash"><span class="line"><span style="color:#F69D50">oracle</span><span style="color:#6CB6FF"> --engine</span><span style="color:#96D0FF"> browser</span><span style="color:#6CB6FF"> --model</span><span style="color:#96D0FF"> gpt-5.5-pro</span><span style="color:#F47067"> \</span></span>
|
|
255
255
|
<span class="line"><span style="color:#6CB6FF"> -p</span><span style="color:#96D0FF"> "Plan the auth migration end-to-end"</span><span style="color:#F47067"> \</span></span>
|
|
256
256
|
<span class="line"><span style="color:#6CB6FF"> --file</span><span style="color:#96D0FF"> "src/auth/**"</span><span style="color:#6CB6FF"> --file</span><span style="color:#96D0FF"> "docs/auth.md"</span></span></code></pre>
|
|
257
|
-
<h3 id="gemini-3-
|
|
257
|
+
<h3 id="gemini-3-pro"><a class="anchor" href="#gemini-3-pro" aria-label="Anchor link">#</a>Gemini 3 Pro</h3>
|
|
258
258
|
<p>Free in browser mode if you're signed into <code>gemini.google.com</code> in Chrome. Also the path for <strong>YouTube transcript analysis</strong> (<code>--youtube</code>) and <strong>image generation/edit</strong> (<code>--generate-image</code>, <code>--edit-image</code>).</p>
|
|
259
|
-
<pre class="shiki github-dark-dimmed" style="background-color:var(--code-bg);color:var(--code-fg)" tabindex="0"><code class="language-bash"><span class="line"><span style="color:#F69D50">oracle</span><span style="color:#6CB6FF"> --engine</span><span style="color:#96D0FF"> browser</span><span style="color:#6CB6FF"> --model</span><span style="color:#96D0FF"> gemini-3
|
|
259
|
+
<pre class="shiki github-dark-dimmed" style="background-color:var(--code-bg);color:var(--code-fg)" tabindex="0"><code class="language-bash"><span class="line"><span style="color:#F69D50">oracle</span><span style="color:#6CB6FF"> --engine</span><span style="color:#96D0FF"> browser</span><span style="color:#6CB6FF"> --model</span><span style="color:#96D0FF"> gemini-3-pro</span><span style="color:#F47067"> \</span></span>
|
|
260
260
|
<span class="line"><span style="color:#6CB6FF"> --prompt</span><span style="color:#96D0FF"> "a minimalist eye-of-providence logo, vector"</span><span style="color:#F47067"> \</span></span>
|
|
261
261
|
<span class="line"><span style="color:#6CB6FF"> --generate-image</span><span style="color:#96D0FF"> out.png</span><span style="color:#6CB6FF"> --aspect</span><span style="color:#96D0FF"> 1:1</span></span></code></pre>
|
|
262
262
|
<h3 id="claude-opus-4-1"><a class="anchor" href="#claude-opus-4-1" aria-label="Anchor link">#</a>Claude Opus 4.1</h3>
|
|
@@ -278,7 +278,7 @@ body:not(.home) .doc>h1:first-child{display:none}
|
|
|
278
278
|
<p>The captured report lands at <code>~/.oracle/sessions/<id>/artifacts/deep-research-report.md</code>. Deep Research can run for an hour or more — Oracle stores the session and reattaches.</p>
|
|
279
279
|
<h2 id="thinking-time"><a class="anchor" href="#thinking-time" aria-label="Anchor link">#</a>Thinking time</h2>
|
|
280
280
|
<p>Pro / Thinking models in browser mode accept a <code>--browser-thinking-time</code> knob:</p>
|
|
281
|
-
<table><thead><tr><th>Level</th><th>What it maps to in ChatGPT</th></tr></thead><tbody><tr><td><code>light</code></td><td>
|
|
281
|
+
<table><thead><tr><th>Level</th><th>What it maps to in ChatGPT</th></tr></thead><tbody><tr><td><code>light</code></td><td>Quick</td></tr><tr><td><code>standard</code></td><td>Default</td></tr><tr><td><code>extended</code></td><td>Pro Extended / Thinking Extended</td></tr><tr><td><code>heavy</code></td><td>Heavy thinking</td></tr></tbody></table>
|
|
282
282
|
<pre class="shiki github-dark-dimmed" style="background-color:var(--code-bg);color:var(--code-fg)" tabindex="0"><code class="language-bash"><span class="line"><span style="color:#F69D50">oracle</span><span style="color:#6CB6FF"> --engine</span><span style="color:#96D0FF"> browser</span><span style="color:#6CB6FF"> --model</span><span style="color:#96D0FF"> gpt-5.5-pro</span><span style="color:#F47067"> \</span></span>
|
|
283
283
|
<span class="line"><span style="color:#6CB6FF"> --browser-thinking-time</span><span style="color:#96D0FF"> extended</span><span style="color:#F47067"> \</span></span>
|
|
284
284
|
<span class="line"><span style="color:#6CB6FF"> -p</span><span style="color:#96D0FF"> "Refactor this hot path"</span><span style="color:#6CB6FF"> --file</span><span style="color:#96D0FF"> "src/render/**"</span></span></code></pre>
|
|
@@ -286,15 +286,15 @@ body:not(.home) .doc>h1:first-child{display:none}
|
|
|
286
286
|
<ul>
|
|
287
287
|
<li><strong>GPT-5.x Pro</strong> (API): tokens cost meaningfully more than non-Pro. Watch the run summary.</li>
|
|
288
288
|
<li><strong>GPT-5.x Pro</strong> (browser): "free" with ChatGPT Pro / Plus subscription, but slow.</li>
|
|
289
|
-
<li><strong>Gemini 3
|
|
289
|
+
<li><strong>Gemini 3 Pro</strong> (browser): free with a Google account.</li>
|
|
290
290
|
<li><strong>Claude Opus 4.1</strong>: per-token API only.</li>
|
|
291
291
|
<li><strong>OpenRouter ids</strong>: pricing varies wildly per provider; always preview with <code>--dry-run summary</code>.</li>
|
|
292
292
|
</ul>
|
|
293
293
|
<p><code>--files-report</code> plus <code>--dry-run summary</code> is the right reflex before any Pro run on a large bundle. Token counts ≠ dollars, but they're a close-enough proxy.</p>
|
|
294
294
|
<h2 id="engine-compatibility"><a class="anchor" href="#engine-compatibility" aria-label="Anchor link">#</a>Engine compatibility</h2>
|
|
295
|
-
<table><thead><tr><th>Capability</th><th>API</th><th>Browser (ChatGPT)</th><th>Browser (Gemini)</th></tr></thead><tbody><tr><td>GPT-5.x family</td><td>✅</td><td>✅</td><td>—</td></tr><tr><td>Gemini 3.1 Pro
|
|
295
|
+
<table><thead><tr><th>Capability</th><th>API</th><th>Browser (ChatGPT)</th><th>Browser (Gemini)</th></tr></thead><tbody><tr><td>GPT-5.x family</td><td>✅</td><td>✅</td><td>—</td></tr><tr><td>Gemini 3 / 3.1 Pro</td><td>✅</td><td>—</td><td>✅</td></tr><tr><td>Claude Sonnet / Opus</td><td>✅</td><td>—</td><td>—</td></tr><tr><td>OpenRouter ids</td><td>✅</td><td>—</td><td>—</td></tr><tr><td>Multi-model in one run</td><td>✅</td><td>—</td><td>—</td></tr><tr><td>Followup / lineage</td><td>✅ (OpenAI/Azure)</td><td>partial (multi-turn)</td><td>—</td></tr><tr><td>Image generation</td><td>—</td><td>✅</td><td>✅</td></tr><tr><td>YouTube analysis</td><td>—</td><td>—</td><td>✅</td></tr><tr><td>Deep Research</td><td>—</td><td>✅</td><td>—</td></tr><tr><td><code>--render --copy</code> fallback</td><td>✅</td><td>✅</td><td>✅</td></tr></tbody></table>
|
|
296
296
|
<p>See provider-specific docs for the gory details: <a href="openai-endpoints.html">OpenAI / Azure / OpenRouter</a>, <a href="gemini.html">Gemini</a>, <a href="anthropic.html">Anthropic</a>, <a href="grok.html">Grok</a>.</p><nav class="page-nav" aria-label="Pager"><a class="page-nav-prev" href="configuration.html"><small>Previous</small><span>Local configuration (JSON5)</span></a><a class="page-nav-next" href="openai-endpoints.html"><small>Next</small><span>OpenAI-Compatible Endpoints</span></a></nav></article>
|
|
297
|
-
<nav class="toc" aria-label="On this page"><h2>On this page</h2><a class="toc-l2" href="#the-lineup">The lineup</a><a class="toc-l2" href="#when-to-reach-for-which">When to reach for which</a><a class="toc-l3" href="#gpt-5-5-pro-default">GPT-5.5 Pro (default)</a><a class="toc-l3" href="#gemini-3-
|
|
297
|
+
<nav class="toc" aria-label="On this page"><h2>On this page</h2><a class="toc-l2" href="#the-lineup">The lineup</a><a class="toc-l2" href="#when-to-reach-for-which">When to reach for which</a><a class="toc-l3" href="#gpt-5-5-pro-default">GPT-5.5 Pro (default)</a><a class="toc-l3" href="#gemini-3-pro">Gemini 3 Pro</a><a class="toc-l3" href="#claude-opus-4-1">Claude Opus 4.1</a><a class="toc-l3" href="#multi-model-triangulation">Multi-model triangulation</a><a class="toc-l2" href="#deep-research-browser-only">Deep Research (browser only)</a><a class="toc-l2" href="#thinking-time">Thinking time</a><a class="toc-l2" href="#pricing-notes-rough-heuristics-not-contracts">Pricing notes (rough heuristics, not contracts)</a><a class="toc-l2" href="#engine-compatibility">Engine compatibility</a></nav>
|
|
298
298
|
</div>
|
|
299
299
|
</main>
|
|
300
300
|
</div>
|
|
@@ -285,17 +285,6 @@ body:not(.home) .doc>h1:first-child{display:none}
|
|
|
285
285
|
<p>Force first-party OpenAI when Azure env vars are exported:</p>
|
|
286
286
|
<pre class="shiki github-dark-dimmed" style="background-color:var(--code-bg);color:var(--code-fg)" tabindex="0"><code class="language-bash"><span class="line"><span style="color:#F69D50">oracle</span><span style="color:#6CB6FF"> --provider</span><span style="color:#96D0FF"> openai</span><span style="color:#6CB6FF"> --engine</span><span style="color:#96D0FF"> api</span><span style="color:#6CB6FF"> --model</span><span style="color:#96D0FF"> gpt-5.5-pro</span><span style="color:#6CB6FF"> -p</span><span style="color:#96D0FF"> "Review this"</span></span>
|
|
287
287
|
<span class="line"><span style="color:#F69D50">oracle</span><span style="color:#6CB6FF"> --no-azure</span><span style="color:#6CB6FF"> --engine</span><span style="color:#96D0FF"> api</span><span style="color:#6CB6FF"> --model</span><span style="color:#96D0FF"> gpt-5.5-pro</span><span style="color:#6CB6FF"> -p</span><span style="color:#96D0FF"> "Review this"</span></span></code></pre>
|
|
288
|
-
<h2 id="gpt-5-6-pro-reasoning-mode"><a class="anchor" href="#gpt-5-6-pro-reasoning-mode" aria-label="Anchor link">#</a>GPT-5.6 Pro reasoning mode</h2>
|
|
289
|
-
<p>GPT-5.6 Pro is a Responses API execution mode, not a separate model slug. Select the Sol model and enable Pro mode explicitly:</p>
|
|
290
|
-
<pre class="shiki github-dark-dimmed" style="background-color:var(--code-bg);color:var(--code-fg)" tabindex="0"><code class="language-bash"><span class="line"><span style="color:#F69D50">oracle</span><span style="color:#6CB6FF"> --engine</span><span style="color:#96D0FF"> api</span><span style="color:#F47067"> \</span></span>
|
|
291
|
-
<span class="line"><span style="color:#6CB6FF"> --model</span><span style="color:#96D0FF"> gpt-5.6-sol</span><span style="color:#F47067"> \</span></span>
|
|
292
|
-
<span class="line"><span style="color:#6CB6FF"> --reasoning-mode</span><span style="color:#96D0FF"> pro</span><span style="color:#F47067"> \</span></span>
|
|
293
|
-
<span class="line"><span style="color:#6CB6FF"> --reasoning-effort</span><span style="color:#96D0FF"> max</span><span style="color:#F47067"> \</span></span>
|
|
294
|
-
<span class="line"><span style="color:#6CB6FF"> -p</span><span style="color:#96D0FF"> "Review this difficult architecture"</span><span style="color:#F47067"> \</span></span>
|
|
295
|
-
<span class="line"><span style="color:#6CB6FF"> --file</span><span style="color:#96D0FF"> "src/**"</span></span></code></pre>
|
|
296
|
-
<p>Oracle sends <code>model: "gpt-5.6-sol"</code> with <code>reasoning.mode: "pro"</code> and <code>reasoning.effort: "max"</code>. Mode and effort are independent. GPT-5.6 supports <code>none</code>, <code>low</code>, <code>medium</code>, <code>high</code>, <code>xhigh</code>, and <code>max</code>; without an explicit effort, Oracle retains the model's configured effort. Pro-mode runs use Oracle's long-running API defaults: they detach unless <code>--wait</code> is supplied, default to a 60-minute timeout, and use Responses background mode when the selected route supports it.</p>
|
|
297
|
-
<p><code>--reasoning-mode</code> accepts <code>standard</code> or <code>pro</code>; <code>--reasoning-effort</code> accepts all six GPT-5.6 effort levels. Both are API-only and restricted to the GPT-5.6 family. Oracle rejects reasoning mode for OpenRouter and custom <code>--base-url</code> routes because those routes currently use Oracle's Chat Completions adapter, which cannot represent Responses API reasoning mode.</p>
|
|
298
|
-
<p>Do not pass <code>--model gpt-5.6-pro</code> or <code>--model gpt-5.6-sol-pro</code>; Oracle rejects those fake slugs and points to <code>--reasoning-mode pro</code>.</p>
|
|
299
288
|
<h2 id="custom-base-urls-litellm-localhost"><a class="anchor" href="#custom-base-urls-litellm-localhost" aria-label="Anchor link">#</a>Custom Base URLs (LiteLLM, Localhost)</h2>
|
|
300
289
|
<p>For other compatible services that use the standard OpenAI protocol but a different URL:</p>
|
|
301
290
|
<pre class="shiki github-dark-dimmed" style="background-color:var(--code-bg);color:var(--code-fg)" tabindex="0"><code class="language-bash"><span class="line"><span style="color:#F69D50">oracle</span><span style="color:#6CB6FF"> --base-url</span><span style="color:#96D0FF"> http://localhost:4000</span></span></code></pre>
|
|
@@ -303,18 +292,6 @@ body:not(.home) .doc>h1:first-child{display:none}
|
|
|
303
292
|
<pre class="shiki github-dark-dimmed" style="background-color:var(--code-bg);color:var(--code-fg)" tabindex="0"><code class="language-json"><span class="line"><span style="color:#ADBAC7">{</span></span>
|
|
304
293
|
<span class="line"><span style="color:#8DDB8C"> "apiBaseUrl"</span><span style="color:#ADBAC7">: </span><span style="color:#96D0FF">"http://localhost:4000"</span></span>
|
|
305
294
|
<span class="line"><span style="color:#ADBAC7">}</span></span></code></pre>
|
|
306
|
-
<p>If a gateway exposes a different on-wire model id, add an API-only override to the user config at <code>~/.oracle/config.json</code>:</p>
|
|
307
|
-
<pre class="shiki github-dark-dimmed" style="background-color:var(--code-bg);color:var(--code-fg)" tabindex="0"><code class="language-json5"><span class="line"><span style="color:#ADBAC7">{</span></span>
|
|
308
|
-
<span class="line"><span style="color:#96D0FF"> apiBaseUrl</span><span style="color:#ADBAC7">: </span><span style="color:#96D0FF">"http://localhost:4000"</span><span style="color:#ADBAC7">,</span></span>
|
|
309
|
-
<span class="line"><span style="color:#96D0FF"> model</span><span style="color:#ADBAC7">: </span><span style="color:#96D0FF">"gpt-5.5"</span><span style="color:#ADBAC7">,</span></span>
|
|
310
|
-
<span class="line"><span style="color:#96D0FF"> modelOverrides</span><span style="color:#ADBAC7">: {</span></span>
|
|
311
|
-
<span class="line"><span style="color:#96D0FF"> "gpt-5.5"</span><span style="color:#ADBAC7">: {</span></span>
|
|
312
|
-
<span class="line"><span style="color:#96D0FF"> apiModel</span><span style="color:#ADBAC7">: </span><span style="color:#96D0FF">"gateway-model"</span><span style="color:#ADBAC7">,</span></span>
|
|
313
|
-
<span class="line"><span style="color:#96D0FF"> reasoning</span><span style="color:#ADBAC7">: { </span><span style="color:#96D0FF">effort</span><span style="color:#ADBAC7">: </span><span style="color:#96D0FF">"high"</span><span style="color:#ADBAC7"> },</span></span>
|
|
314
|
-
<span class="line"><span style="color:#ADBAC7"> },</span></span>
|
|
315
|
-
<span class="line"><span style="color:#ADBAC7"> },</span></span>
|
|
316
|
-
<span class="line"><span style="color:#ADBAC7">}</span></span></code></pre>
|
|
317
|
-
<p>Overrides accept existing built-in model keys only and are ignored in project <code>.oracle/config.json</code> files. See <a href="configuration.html">Local configuration</a> for the full field list and precedence.</p>
|
|
318
295
|
<h2 id="model-aliases"><a class="anchor" href="#model-aliases" aria-label="Anchor link">#</a>Model aliases</h2>
|
|
319
296
|
<p>Oracle keeps a stable CLI-facing model set, but some names are aliases for the concrete API model ids it sends:</p>
|
|
320
297
|
<ul>
|
|
@@ -344,7 +321,7 @@ body:not(.home) .doc>h1:first-child{display:none}
|
|
|
344
321
|
<li>You can still set <code>--base-url</code> explicitly; if it points at OpenRouter (with or without a trailing <code>/responses</code>), Oracle will use <code>OPENROUTER_API_KEY</code> and forward optional attribution headers (<code>OPENROUTER_REFERER</code> / <code>OPENROUTER_TITLE</code>).</li>
|
|
345
322
|
<li>Multi-model runs accept OpenRouter ids alongside built-in ones. See <code>docs/openrouter.md</code> for details.</li>
|
|
346
323
|
</ul><nav class="page-nav" aria-label="Pager"><a class="page-nav-prev" href="mythical-pro-agents.html"><small>Previous</small><span>Mythical Pro Agents</span></a><a class="page-nav-next" href="anthropic.html"><small>Next</small><span>Anthropic (Claude) Integration Plan</span></a></nav></article>
|
|
347
|
-
<nav class="toc" aria-label="On this page"><h2>On this page</h2><a class="toc-l2" href="#azure-openai">Azure OpenAI</a><a class="toc-l2" href="#provider-diagnostics">Provider diagnostics</a><a class="toc-l3" href="#cli-configuration">CLI Configuration</a><a class="toc-l2" href="#
|
|
324
|
+
<nav class="toc" aria-label="On this page"><h2>On this page</h2><a class="toc-l2" href="#azure-openai">Azure OpenAI</a><a class="toc-l2" href="#provider-diagnostics">Provider diagnostics</a><a class="toc-l3" href="#cli-configuration">CLI Configuration</a><a class="toc-l2" href="#custom-base-urls-litellm-localhost">Custom Base URLs (LiteLLM, Localhost)</a><a class="toc-l2" href="#model-aliases">Model aliases</a><a class="toc-l3" href="#browser-engine-vs-api-base-urls">Browser engine vs API base URLs</a><a class="toc-l3" href="#example-litellm">Example: LiteLLM</a><a class="toc-l2" href="#openrouter">OpenRouter</a></nav>
|
|
348
325
|
</div>
|
|
349
326
|
</main>
|
|
350
327
|
</div>
|