@steipete/oracle 0.17.3 → 0.19.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/README.md +1 -1
- package/dist/bin/oracle-cli.js +75 -64
- package/dist/bin/oracle-mcp.js +0 -0
- package/dist/src/browser/actions/archiveConversation.js +31 -7
- package/dist/src/browser/actions/assistantResponse.js +43 -1
- package/dist/src/browser/actions/attachmentContext.js +239 -0
- package/dist/src/browser/actions/attachmentDataTransfer.js +19 -1
- package/dist/src/browser/actions/attachmentEvidence.js +78 -0
- package/dist/src/browser/actions/attachmentProgress.js +41 -0
- package/dist/src/browser/actions/attachmentPrompt.js +130 -0
- package/dist/src/browser/actions/attachments.js +306 -355
- package/dist/src/browser/actions/deepResearch.js +2 -1
- package/dist/src/browser/actions/modelSelection.js +13 -3
- package/dist/src/browser/actions/navigation.js +1 -1
- package/dist/src/browser/actions/promptComposer.js +361 -186
- package/dist/src/browser/actions/remoteFileTransfer.js +4 -2
- package/dist/src/browser/actions/thinkingStatus.js +2 -5
- package/dist/src/browser/actions/thinkingTime.js +267 -15
- package/dist/src/browser/attachRunning.js +46 -2
- package/dist/src/browser/attachmentValidation.js +53 -0
- package/dist/src/browser/cancellation.js +105 -0
- package/dist/src/browser/chatgptImages.js +2 -0
- package/dist/src/browser/chatgptThrottle.js +104 -0
- package/dist/src/browser/chromeLifecycle.js +267 -43
- package/dist/src/browser/config.js +15 -3
- package/dist/src/browser/detect.js +1 -1
- package/dist/src/browser/index.js +447 -263
- package/dist/src/browser/modelDisplay.js +9 -0
- package/dist/src/browser/pageActions.js +2 -2
- package/dist/src/browser/policies.js +6 -2
- package/dist/src/browser/profileState.js +114 -9
- package/dist/src/browser/projectSourcesRunner.js +88 -17
- package/dist/src/browser/prompt.js +272 -113
- package/dist/src/browser/providers/chatgptDomProvider.js +2 -0
- package/dist/src/browser/reattach.js +14 -4
- package/dist/src/browser/sessionRunner.js +71 -11
- package/dist/src/browser/tabLeaseRegistry.js +414 -38
- package/dist/src/browser/utils.js +20 -2
- package/dist/src/cli/browserConfig.js +40 -15
- package/dist/src/cli/browserDefaults.js +13 -0
- package/dist/src/cli/browserTabs.js +12 -29
- package/dist/src/cli/detachedSession.js +69 -0
- package/dist/src/cli/dryRun.js +58 -47
- package/dist/src/cli/harvestIntegrity.js +140 -0
- package/dist/src/cli/projectSources.js +5 -3
- package/dist/src/cli/serveBrowserConfig.js +24 -0
- package/dist/src/cli/sessionDisplay.js +9 -2
- package/dist/src/cli/sessionRunner.js +91 -7
- package/dist/src/config.js +1 -0
- package/dist/src/gemini-web/client.js +67 -21
- package/dist/src/gemini-web/executor.js +4 -0
- package/dist/src/gemini-web/http.js +15 -0
- package/dist/src/gemini-web/models.js +15 -11
- package/dist/src/mcp/server.js +11 -14
- package/dist/src/mcp/tools/chatgptImage.js +4 -4
- package/dist/src/mcp/tools/consult.js +97 -26
- package/dist/src/mcp/tools/projectSources.js +4 -6
- package/dist/src/mcp/tools/sessionResources.js +1 -1
- package/dist/src/mcp/tools/sessions.js +2 -2
- package/dist/src/mcp/tools/wait.js +182 -0
- package/dist/src/mcp/types.js +7 -0
- package/dist/src/oracle/errors.js +11 -0
- package/dist/src/oracle/providerRoutePlan.js +3 -2
- package/dist/src/remote/client.js +70 -6
- package/dist/src/remote/health.js +6 -2
- package/dist/src/remote/runSlots.js +83 -0
- package/dist/src/remote/server.js +351 -72
- package/dist/src/sessionManager.js +36 -1
- package/dist/vendor/oracle-notifier/OracleNotifier.app/Contents/CodeResources +0 -0
- package/dist/vendor/oracle-notifier/OracleNotifier.app/Contents/MacOS/OracleNotifier +0 -0
- package/package.json +25 -23
- package/vendor/oracle-notifier/OracleNotifier.app/Contents/CodeResources +0 -0
- package/vendor/oracle-notifier/OracleNotifier.app/Contents/MacOS/OracleNotifier +0 -0
- package/dist/bin/oracle.js +0 -683
- package/dist/docs-site/.nojekyll +0 -0
- package/dist/docs-site/CNAME +0 -1
- package/dist/docs-site/RELEASING.html +0 -410
- package/dist/docs-site/agents.html +0 -374
- package/dist/docs-site/anthropic.html +0 -368
- package/dist/docs-site/bridge.html +0 -400
- package/dist/docs-site/browser-mode.html +0 -588
- package/dist/docs-site/chromium-forks.html +0 -347
- package/dist/docs-site/cli-reference.html +0 -346
- package/dist/docs-site/configuration.html +0 -436
- package/dist/docs-site/favicon.svg +0 -14
- package/dist/docs-site/followup.html +0 -368
- package/dist/docs-site/gemini.html +0 -379
- package/dist/docs-site/grok.html +0 -325
- package/dist/docs-site/index.html +0 -360
- package/dist/docs-site/install.html +0 -335
- package/dist/docs-site/linux.html +0 -321
- package/dist/docs-site/llms.txt +0 -43
- package/dist/docs-site/manual-tests.html +0 -595
- package/dist/docs-site/mcp.html +0 -368
- package/dist/docs-site/multimodel.html +0 -364
- package/dist/docs-site/mythical-pro-agents.html +0 -360
- package/dist/docs-site/notifier.html +0 -338
- package/dist/docs-site/openai-endpoints.html +0 -387
- package/dist/docs-site/openrouter.html +0 -344
- package/dist/docs-site/quickstart.html +0 -369
- package/dist/docs-site/refactor/ux.html +0 -532
- package/dist/docs-site/sessions.html +0 -388
- package/dist/docs-site/social-card.png +0 -0
- package/dist/docs-site/social-card.svg +0 -79
- package/dist/docs-site/spec.html +0 -363
- package/dist/docs-site/testing.html +0 -320
- package/dist/docs-site/tui-debug.html +0 -326
- package/dist/docs-site/windows-work.html +0 -323
- package/dist/docs-site/windows.html +0 -320
- package/dist/markdansi/types/index.js +0 -4
- package/dist/oracle/bin/oracle-cli.js +0 -472
- package/dist/oracle/src/browser/actions/assistantResponse.js +0 -471
- package/dist/oracle/src/browser/actions/attachments.js +0 -82
- package/dist/oracle/src/browser/actions/modelSelection.js +0 -190
- package/dist/oracle/src/browser/actions/navigation.js +0 -75
- package/dist/oracle/src/browser/actions/promptComposer.js +0 -167
- package/dist/oracle/src/browser/chromeLifecycle.js +0 -104
- package/dist/oracle/src/browser/config.js +0 -33
- package/dist/oracle/src/browser/constants.js +0 -40
- package/dist/oracle/src/browser/cookies.js +0 -210
- package/dist/oracle/src/browser/domDebug.js +0 -36
- package/dist/oracle/src/browser/index.js +0 -331
- package/dist/oracle/src/browser/pageActions.js +0 -5
- package/dist/oracle/src/browser/prompt.js +0 -88
- package/dist/oracle/src/browser/promptSummary.js +0 -20
- package/dist/oracle/src/browser/sessionRunner.js +0 -80
- package/dist/oracle/src/browser/types.js +0 -1
- package/dist/oracle/src/browser/utils.js +0 -62
- package/dist/oracle/src/browserMode.js +0 -1
- package/dist/oracle/src/cli/browserConfig.js +0 -44
- package/dist/oracle/src/cli/dryRun.js +0 -59
- package/dist/oracle/src/cli/engine.js +0 -17
- package/dist/oracle/src/cli/errorUtils.js +0 -9
- package/dist/oracle/src/cli/help.js +0 -70
- package/dist/oracle/src/cli/markdownRenderer.js +0 -15
- package/dist/oracle/src/cli/options.js +0 -103
- package/dist/oracle/src/cli/promptRequirement.js +0 -14
- package/dist/oracle/src/cli/rootAlias.js +0 -30
- package/dist/oracle/src/cli/sessionCommand.js +0 -77
- package/dist/oracle/src/cli/sessionDisplay.js +0 -270
- package/dist/oracle/src/cli/sessionRunner.js +0 -94
- package/dist/oracle/src/heartbeat.js +0 -43
- package/dist/oracle/src/oracle/client.js +0 -48
- package/dist/oracle/src/oracle/config.js +0 -29
- package/dist/oracle/src/oracle/errors.js +0 -101
- package/dist/oracle/src/oracle/files.js +0 -220
- package/dist/oracle/src/oracle/format.js +0 -33
- package/dist/oracle/src/oracle/fsAdapter.js +0 -7
- package/dist/oracle/src/oracle/oscProgress.js +0 -60
- package/dist/oracle/src/oracle/request.js +0 -48
- package/dist/oracle/src/oracle/run.js +0 -444
- package/dist/oracle/src/oracle/tokenStats.js +0 -39
- package/dist/oracle/src/oracle/types.js +0 -1
- package/dist/oracle/src/oracle.js +0 -9
- package/dist/oracle/src/sessionManager.js +0 -205
- package/dist/oracle/src/version.js +0 -39
- package/dist/scripts/chrome/browser-tools.js +0 -295
- package/dist/src/browser/chromeCookies.js +0 -312
- package/dist/src/browser/keytarShim.js +0 -56
- package/dist/src/browser/profileSync.js +0 -141
- package/dist/src/browser/windowsCookies.js +0 -219
|
@@ -2,10 +2,11 @@ import chalk from "chalk";
|
|
|
2
2
|
import { formatTokenCount } from "../oracle/runUtils.js";
|
|
3
3
|
import { formatFinishLine } from "../oracle/finishLine.js";
|
|
4
4
|
import { runBrowserMode } from "../browserMode.js";
|
|
5
|
-
import {
|
|
5
|
+
import { DEFAULT_BROWSER_CONFIG } from "./config.js";
|
|
6
|
+
import { assembleBrowserPrompt, cleanupGeneratedBrowserBundles, materializeBrowserFallback, } from "./prompt.js";
|
|
6
7
|
import { BrowserAutomationError } from "../oracle/errors.js";
|
|
7
8
|
import { appendArtifacts, saveBrowserTranscriptArtifact, saveDeepResearchReportArtifact, } from "./artifacts.js";
|
|
8
|
-
import { formatBrowserModelSelectionEvidence, formatBrowserModelTarget, resolveBrowserModelDisplayName, } from "./modelDisplay.js";
|
|
9
|
+
import { formatBrowserModelSelectionEvidence, formatBrowserThinkingSelectionEvidence, formatBrowserModelTarget, resolveBrowserModelDisplayName, } from "./modelDisplay.js";
|
|
9
10
|
const LARGE_PRO_FAST_INPUT_TOKEN_THRESHOLD = 25_000;
|
|
10
11
|
const LARGE_PRO_FAST_ELAPSED_MS_THRESHOLD = 120_000;
|
|
11
12
|
function buildUnavailableModelSelectionEvidence(browserConfig) {
|
|
@@ -57,7 +58,50 @@ function buildBrowserRunWarnings(args) {
|
|
|
57
58
|
export async function runBrowserSessionExecution({ runOptions, browserConfig, cwd, log }, deps = {}) {
|
|
58
59
|
const assemblePrompt = deps.assemblePrompt ?? assembleBrowserPrompt;
|
|
59
60
|
const executeBrowser = deps.executeBrowser ?? runBrowserMode;
|
|
60
|
-
const
|
|
61
|
+
const persistRuntimeHint = deps.persistRuntimeHint ?? (() => { });
|
|
62
|
+
const inputTimeoutMs = browserConfig.inputTimeoutMs ?? DEFAULT_BROWSER_CONFIG.inputTimeoutMs;
|
|
63
|
+
let preparationTimedOut = false;
|
|
64
|
+
let preparationTimeout;
|
|
65
|
+
let promptArtifacts;
|
|
66
|
+
try {
|
|
67
|
+
promptArtifacts = await Promise.race([
|
|
68
|
+
assemblePrompt(runOptions, { cwd }).then(async (artifacts) => {
|
|
69
|
+
if (preparationTimedOut)
|
|
70
|
+
await cleanupGeneratedBrowserBundles(artifacts);
|
|
71
|
+
return artifacts;
|
|
72
|
+
}),
|
|
73
|
+
new Promise((_, reject) => {
|
|
74
|
+
preparationTimeout = setTimeout(() => {
|
|
75
|
+
preparationTimedOut = true;
|
|
76
|
+
reject(new BrowserAutomationError(`Browser prompt preparation timed out after ${inputTimeoutMs}ms; increase --browser-input-timeout if local files need more time.`, {
|
|
77
|
+
stage: "prepare-prompt",
|
|
78
|
+
code: "prompt-preparation-timeout",
|
|
79
|
+
timeoutMs: inputTimeoutMs,
|
|
80
|
+
}));
|
|
81
|
+
}, inputTimeoutMs);
|
|
82
|
+
}),
|
|
83
|
+
]);
|
|
84
|
+
}
|
|
85
|
+
finally {
|
|
86
|
+
if (preparationTimeout) {
|
|
87
|
+
clearTimeout(preparationTimeout);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
try {
|
|
91
|
+
return await executeAssembledBrowserSession({
|
|
92
|
+
runOptions,
|
|
93
|
+
browserConfig,
|
|
94
|
+
log,
|
|
95
|
+
promptArtifacts,
|
|
96
|
+
executeBrowser,
|
|
97
|
+
persistRuntimeHint,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
finally {
|
|
101
|
+
await cleanupGeneratedBrowserBundles(promptArtifacts);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
async function executeAssembledBrowserSession({ runOptions, browserConfig, log, promptArtifacts, executeBrowser, persistRuntimeHint, }) {
|
|
61
105
|
if (runOptions.verbose) {
|
|
62
106
|
log(chalk.dim(`[verbose] Browser config: ${JSON.stringify({
|
|
63
107
|
...browserConfig,
|
|
@@ -91,7 +135,7 @@ export async function runBrowserSessionExecution({ runOptions, browserConfig, cw
|
|
|
91
135
|
if (typeof message !== "string")
|
|
92
136
|
return;
|
|
93
137
|
const shouldAlwaysPrint = message.startsWith("[browser] ") &&
|
|
94
|
-
/archive|fallback|follow-up|retry|thinking|waiting for chatgpt|browser slot|browser control|browser guidance|model selection|model picker/i.test(message);
|
|
138
|
+
/archive|fallback|follow-up|retry|thinking|waiting for chatgpt|remote debugging approval|browser slot|browser control|browser guidance|model selection|model picker/i.test(message);
|
|
95
139
|
if (!runOptions.verbose && !shouldAlwaysPrint)
|
|
96
140
|
return;
|
|
97
141
|
log(message);
|
|
@@ -103,7 +147,22 @@ export async function runBrowserSessionExecution({ runOptions, browserConfig, cw
|
|
|
103
147
|
if (runOptions.verbose) {
|
|
104
148
|
log(chalk.dim("Chrome automation does not stream output; this may take a minute..."));
|
|
105
149
|
}
|
|
106
|
-
|
|
150
|
+
let fallbackSubmission = undefined;
|
|
151
|
+
if (promptArtifacts.fallback) {
|
|
152
|
+
fallbackSubmission = {
|
|
153
|
+
prompt: promptArtifacts.fallback.composerText,
|
|
154
|
+
attachments: promptArtifacts.fallback.attachments,
|
|
155
|
+
pendingBundle: promptArtifacts.fallback.pendingBundle ?? undefined,
|
|
156
|
+
prepare: async () => {
|
|
157
|
+
const prepared = await materializeBrowserFallback(promptArtifacts);
|
|
158
|
+
if (!prepared || !fallbackSubmission)
|
|
159
|
+
return;
|
|
160
|
+
fallbackSubmission.prompt = prepared.composerText;
|
|
161
|
+
fallbackSubmission.attachments = prepared.attachments;
|
|
162
|
+
fallbackSubmission.pendingBundle = undefined;
|
|
163
|
+
},
|
|
164
|
+
};
|
|
165
|
+
}
|
|
107
166
|
const executionBrowserConfig = runOptions.browserResumeConversationUrl
|
|
108
167
|
? { ...browserConfig, resumeConversationUrl: runOptions.browserResumeConversationUrl }
|
|
109
168
|
: browserConfig;
|
|
@@ -112,12 +171,7 @@ export async function runBrowserSessionExecution({ runOptions, browserConfig, cw
|
|
|
112
171
|
browserResult = await executeBrowser({
|
|
113
172
|
prompt: promptArtifacts.composerText,
|
|
114
173
|
attachments: promptArtifacts.attachments,
|
|
115
|
-
fallbackSubmission
|
|
116
|
-
? {
|
|
117
|
-
prompt: promptArtifacts.fallback.composerText,
|
|
118
|
-
attachments: promptArtifacts.fallback.attachments,
|
|
119
|
-
}
|
|
120
|
-
: undefined,
|
|
174
|
+
fallbackSubmission,
|
|
121
175
|
config: executionBrowserConfig,
|
|
122
176
|
log: automationLogger,
|
|
123
177
|
heartbeatIntervalMs: runOptions.heartbeatIntervalMs,
|
|
@@ -151,6 +205,10 @@ export async function runBrowserSessionExecution({ runOptions, browserConfig, cw
|
|
|
151
205
|
if (modelSelection) {
|
|
152
206
|
log(`[browser] Model selection evidence: ${formatBrowserModelSelectionEvidence(modelSelection, runOptions.model)}`);
|
|
153
207
|
}
|
|
208
|
+
const thinkingSelection = browserResult.thinkingSelection;
|
|
209
|
+
if (thinkingSelection) {
|
|
210
|
+
log(`[browser] Thinking effort evidence: ${formatBrowserThinkingSelectionEvidence(thinkingSelection)}`);
|
|
211
|
+
}
|
|
154
212
|
const warnings = buildBrowserRunWarnings({
|
|
155
213
|
runOptions,
|
|
156
214
|
browserConfig,
|
|
@@ -227,9 +285,11 @@ export async function runBrowserSessionExecution({ runOptions, browserConfig, cw
|
|
|
227
285
|
},
|
|
228
286
|
archive: browserResult.archive,
|
|
229
287
|
modelSelection,
|
|
288
|
+
thinkingSelection,
|
|
230
289
|
warnings,
|
|
231
290
|
answerText,
|
|
232
291
|
artifacts: savedArtifacts,
|
|
292
|
+
savedFiles: browserResult.savedFiles,
|
|
233
293
|
};
|
|
234
294
|
}
|
|
235
295
|
export async function ensureSessionArtifacts(params) {
|