@steipete/oracle 0.9.0 → 0.10.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.
Files changed (177) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +61 -48
  3. package/dist/bin/oracle-cli.js +455 -402
  4. package/dist/bin/oracle-mcp.js +2 -2
  5. package/dist/bin/oracle.js +165 -279
  6. package/dist/scripts/agent-send.js +31 -31
  7. package/dist/scripts/check.js +6 -6
  8. package/dist/scripts/debug/extract-chatgpt-response.js +10 -10
  9. package/dist/scripts/docs-list.js +30 -30
  10. package/dist/scripts/git-policy.js +25 -23
  11. package/dist/scripts/run-cli.js +8 -8
  12. package/dist/scripts/runner.js +203 -195
  13. package/dist/scripts/test-browser.js +21 -18
  14. package/dist/scripts/test-remote-chrome.js +20 -20
  15. package/dist/src/bridge/connection.js +18 -18
  16. package/dist/src/bridge/userConfigFile.js +7 -7
  17. package/dist/src/browser/actions/assistantResponse.js +149 -101
  18. package/dist/src/browser/actions/attachmentDataTransfer.js +49 -47
  19. package/dist/src/browser/actions/attachments.js +246 -150
  20. package/dist/src/browser/actions/domEvents.js +2 -2
  21. package/dist/src/browser/actions/modelSelection.js +275 -117
  22. package/dist/src/browser/actions/navigation.js +161 -137
  23. package/dist/src/browser/actions/promptComposer.js +100 -64
  24. package/dist/src/browser/actions/remoteFileTransfer.js +10 -10
  25. package/dist/src/browser/actions/thinkingTime.js +207 -110
  26. package/dist/src/browser/chromeLifecycle.js +62 -60
  27. package/dist/src/browser/config.js +34 -15
  28. package/dist/src/browser/constants.js +17 -12
  29. package/dist/src/browser/cookies.js +19 -19
  30. package/dist/src/browser/detect.js +62 -62
  31. package/dist/src/browser/domDebug.js +1 -1
  32. package/dist/src/browser/index.js +390 -295
  33. package/dist/src/browser/modelStrategy.js +1 -1
  34. package/dist/src/browser/pageActions.js +5 -5
  35. package/dist/src/browser/policies.js +16 -13
  36. package/dist/src/browser/profileState.js +44 -39
  37. package/dist/src/browser/prompt.js +72 -42
  38. package/dist/src/browser/promptSummary.js +5 -5
  39. package/dist/src/browser/providerDomFlow.js +1 -1
  40. package/dist/src/browser/providers/chatgptDomProvider.js +9 -9
  41. package/dist/src/browser/providers/geminiDeepThinkDomProvider.js +51 -42
  42. package/dist/src/browser/providers/index.js +2 -2
  43. package/dist/src/browser/reattach.js +67 -34
  44. package/dist/src/browser/reattachHelpers.js +31 -26
  45. package/dist/src/browser/sessionRunner.js +37 -25
  46. package/dist/src/browser/utils.js +9 -9
  47. package/dist/src/browserMode.js +1 -1
  48. package/dist/src/cli/bridge/claudeConfig.js +16 -16
  49. package/dist/src/cli/bridge/client.js +28 -20
  50. package/dist/src/cli/bridge/codexConfig.js +16 -16
  51. package/dist/src/cli/bridge/doctor.js +47 -39
  52. package/dist/src/cli/bridge/host.js +58 -56
  53. package/dist/src/cli/browserConfig.js +62 -48
  54. package/dist/src/cli/browserDefaults.js +27 -26
  55. package/dist/src/cli/bundleWarnings.js +1 -1
  56. package/dist/src/cli/clipboard.js +11 -2
  57. package/dist/src/cli/detach.js +2 -2
  58. package/dist/src/cli/dryRun.js +29 -25
  59. package/dist/src/cli/duplicatePromptGuard.js +3 -3
  60. package/dist/src/cli/engine.js +9 -9
  61. package/dist/src/cli/errorUtils.js +1 -1
  62. package/dist/src/cli/fileSize.js +3 -3
  63. package/dist/src/cli/format.js +2 -2
  64. package/dist/src/cli/help.js +28 -28
  65. package/dist/src/cli/hiddenAliases.js +3 -3
  66. package/dist/src/cli/markdownBundle.js +7 -7
  67. package/dist/src/cli/markdownRenderer.js +15 -15
  68. package/dist/src/cli/notifier.js +77 -67
  69. package/dist/src/cli/options.js +127 -106
  70. package/dist/src/cli/oscUtils.js +1 -1
  71. package/dist/src/cli/promptRequirement.js +2 -2
  72. package/dist/src/cli/renderOutput.js +1 -1
  73. package/dist/src/cli/rootAlias.js +1 -1
  74. package/dist/src/cli/runOptions.js +32 -28
  75. package/dist/src/cli/sessionCommand.js +31 -21
  76. package/dist/src/cli/sessionDisplay.js +95 -81
  77. package/dist/src/cli/sessionLineage.js +6 -2
  78. package/dist/src/cli/sessionRunner.js +103 -93
  79. package/dist/src/cli/sessionTable.js +26 -23
  80. package/dist/src/cli/stdin.js +22 -0
  81. package/dist/src/cli/tagline.js +121 -124
  82. package/dist/src/cli/tui/index.js +139 -128
  83. package/dist/src/cli/writeOutputPath.js +5 -5
  84. package/dist/src/config.js +7 -7
  85. package/dist/src/gemini-web/browserSessionManager.js +19 -15
  86. package/dist/src/gemini-web/client.js +76 -70
  87. package/dist/src/gemini-web/executionMode.js +6 -8
  88. package/dist/src/gemini-web/executor.js +98 -93
  89. package/dist/src/gemini-web/index.js +1 -1
  90. package/dist/src/mcp/server.js +16 -12
  91. package/dist/src/mcp/tools/consult.js +51 -47
  92. package/dist/src/mcp/tools/sessionResources.js +12 -12
  93. package/dist/src/mcp/tools/sessions.js +26 -17
  94. package/dist/src/mcp/types.js +5 -5
  95. package/dist/src/mcp/utils.js +15 -7
  96. package/dist/src/oracle/background.js +15 -15
  97. package/dist/src/oracle/claude.js +53 -25
  98. package/dist/src/oracle/client.js +50 -41
  99. package/dist/src/oracle/config.js +96 -66
  100. package/dist/src/oracle/errors.js +38 -38
  101. package/dist/src/oracle/files.js +55 -46
  102. package/dist/src/oracle/finishLine.js +10 -8
  103. package/dist/src/oracle/format.js +3 -3
  104. package/dist/src/oracle/gemini.js +37 -33
  105. package/dist/src/oracle/logging.js +7 -7
  106. package/dist/src/oracle/markdown.js +28 -28
  107. package/dist/src/oracle/modelResolver.js +16 -16
  108. package/dist/src/oracle/multiModelRunner.js +12 -12
  109. package/dist/src/oracle/oscProgress.js +8 -8
  110. package/dist/src/oracle/promptAssembly.js +6 -3
  111. package/dist/src/oracle/request.js +16 -13
  112. package/dist/src/oracle/run.js +156 -134
  113. package/dist/src/oracle/runUtils.js +8 -5
  114. package/dist/src/oracle/tokenEstimate.js +6 -6
  115. package/dist/src/oracle/tokenStats.js +5 -5
  116. package/dist/src/oracle/tokenStringifier.js +5 -5
  117. package/dist/src/oracle.js +12 -12
  118. package/dist/src/oracleHome.js +3 -3
  119. package/dist/src/remote/client.js +25 -25
  120. package/dist/src/remote/health.js +20 -20
  121. package/dist/src/remote/remoteServiceConfig.js +9 -9
  122. package/dist/src/remote/server.js +129 -118
  123. package/dist/src/sessionManager.js +77 -75
  124. package/dist/src/sessionStore.js +3 -3
  125. package/dist/src/version.js +10 -10
  126. package/dist/vendor/oracle-notifier/README.md +2 -0
  127. package/package.json +66 -62
  128. package/vendor/oracle-notifier/README.md +2 -0
  129. package/dist/markdansi/types/index.js +0 -4
  130. package/dist/oracle/bin/oracle-cli.js +0 -472
  131. package/dist/oracle/src/browser/actions/assistantResponse.js +0 -471
  132. package/dist/oracle/src/browser/actions/attachments.js +0 -82
  133. package/dist/oracle/src/browser/actions/modelSelection.js +0 -190
  134. package/dist/oracle/src/browser/actions/navigation.js +0 -75
  135. package/dist/oracle/src/browser/actions/promptComposer.js +0 -167
  136. package/dist/oracle/src/browser/chromeLifecycle.js +0 -104
  137. package/dist/oracle/src/browser/config.js +0 -33
  138. package/dist/oracle/src/browser/constants.js +0 -40
  139. package/dist/oracle/src/browser/cookies.js +0 -210
  140. package/dist/oracle/src/browser/domDebug.js +0 -36
  141. package/dist/oracle/src/browser/index.js +0 -331
  142. package/dist/oracle/src/browser/pageActions.js +0 -5
  143. package/dist/oracle/src/browser/prompt.js +0 -88
  144. package/dist/oracle/src/browser/promptSummary.js +0 -20
  145. package/dist/oracle/src/browser/sessionRunner.js +0 -80
  146. package/dist/oracle/src/browser/types.js +0 -1
  147. package/dist/oracle/src/browser/utils.js +0 -62
  148. package/dist/oracle/src/browserMode.js +0 -1
  149. package/dist/oracle/src/cli/browserConfig.js +0 -44
  150. package/dist/oracle/src/cli/dryRun.js +0 -59
  151. package/dist/oracle/src/cli/engine.js +0 -17
  152. package/dist/oracle/src/cli/errorUtils.js +0 -9
  153. package/dist/oracle/src/cli/help.js +0 -70
  154. package/dist/oracle/src/cli/markdownRenderer.js +0 -15
  155. package/dist/oracle/src/cli/options.js +0 -103
  156. package/dist/oracle/src/cli/promptRequirement.js +0 -14
  157. package/dist/oracle/src/cli/rootAlias.js +0 -30
  158. package/dist/oracle/src/cli/sessionCommand.js +0 -77
  159. package/dist/oracle/src/cli/sessionDisplay.js +0 -270
  160. package/dist/oracle/src/cli/sessionRunner.js +0 -94
  161. package/dist/oracle/src/heartbeat.js +0 -43
  162. package/dist/oracle/src/oracle/client.js +0 -48
  163. package/dist/oracle/src/oracle/config.js +0 -29
  164. package/dist/oracle/src/oracle/errors.js +0 -101
  165. package/dist/oracle/src/oracle/files.js +0 -220
  166. package/dist/oracle/src/oracle/format.js +0 -33
  167. package/dist/oracle/src/oracle/fsAdapter.js +0 -7
  168. package/dist/oracle/src/oracle/oscProgress.js +0 -60
  169. package/dist/oracle/src/oracle/request.js +0 -48
  170. package/dist/oracle/src/oracle/run.js +0 -444
  171. package/dist/oracle/src/oracle/tokenStats.js +0 -39
  172. package/dist/oracle/src/oracle/types.js +0 -1
  173. package/dist/oracle/src/oracle.js +0 -9
  174. package/dist/oracle/src/sessionManager.js +0 -205
  175. package/dist/oracle/src/version.js +0 -39
  176. package/dist/scripts/chrome/browser-tools.js +0 -295
  177. package/dist/src/browser/profileSync.js +0 -141
@@ -1,9 +1,9 @@
1
- import fs from 'node:fs/promises';
2
- import os from 'node:os';
3
- import path from 'node:path';
4
- import { Launcher } from 'chrome-launcher';
1
+ import fs from "node:fs/promises";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { Launcher } from "chrome-launcher";
5
5
  export async function detectChromeBinary() {
6
- const envPath = (process.env.CHROME_PATH ?? '').trim();
6
+ const envPath = (process.env.CHROME_PATH ?? "").trim();
7
7
  if (envPath) {
8
8
  const ok = await isExecutable(envPath);
9
9
  if (ok) {
@@ -26,76 +26,76 @@ export async function detectChromeBinary() {
26
26
  }
27
27
  return { path: null };
28
28
  }
29
- export async function detectChromeCookieDb({ profile }) {
30
- const profileName = profile?.trim() ? profile.trim() : 'Default';
31
- if (process.platform === 'win32') {
29
+ export async function detectChromeCookieDb({ profile, }) {
30
+ const profileName = profile?.trim() ? profile.trim() : "Default";
31
+ if (process.platform === "win32") {
32
32
  return null;
33
33
  }
34
34
  const roots = platformProfileRoots();
35
35
  for (const root of roots) {
36
36
  const dir = path.join(root, profileName);
37
- const direct = path.join(dir, 'Cookies');
37
+ const direct = path.join(dir, "Cookies");
38
38
  if (await isFile(direct))
39
39
  return direct;
40
- const network = path.join(dir, 'Network', 'Cookies');
40
+ const network = path.join(dir, "Network", "Cookies");
41
41
  if (await isFile(network))
42
42
  return network;
43
43
  }
44
44
  return null;
45
45
  }
46
46
  function platformChromeCandidates() {
47
- if (process.platform === 'linux') {
47
+ if (process.platform === "linux") {
48
48
  return {
49
49
  binaryNames: [
50
- 'google-chrome',
51
- 'google-chrome-stable',
52
- 'chromium',
53
- 'chromium-browser',
54
- 'brave-browser',
55
- 'microsoft-edge',
56
- 'microsoft-edge-stable',
50
+ "google-chrome",
51
+ "google-chrome-stable",
52
+ "chromium",
53
+ "chromium-browser",
54
+ "brave-browser",
55
+ "microsoft-edge",
56
+ "microsoft-edge-stable",
57
57
  ],
58
58
  absolutePaths: [
59
- '/usr/bin/google-chrome',
60
- '/usr/bin/google-chrome-stable',
61
- '/usr/bin/google-chrome-beta',
62
- '/usr/bin/google-chrome-unstable',
63
- '/usr/bin/chromium',
64
- '/usr/bin/chromium-browser',
65
- '/usr/bin/brave-browser',
66
- '/usr/bin/microsoft-edge',
67
- '/usr/bin/microsoft-edge-stable',
68
- '/snap/bin/chromium',
69
- '/snap/bin/brave',
70
- '/snap/bin/brave-browser',
71
- '/snap/bin/microsoft-edge',
72
- '/opt/google/chrome/chrome',
59
+ "/usr/bin/google-chrome",
60
+ "/usr/bin/google-chrome-stable",
61
+ "/usr/bin/google-chrome-beta",
62
+ "/usr/bin/google-chrome-unstable",
63
+ "/usr/bin/chromium",
64
+ "/usr/bin/chromium-browser",
65
+ "/usr/bin/brave-browser",
66
+ "/usr/bin/microsoft-edge",
67
+ "/usr/bin/microsoft-edge-stable",
68
+ "/snap/bin/chromium",
69
+ "/snap/bin/brave",
70
+ "/snap/bin/brave-browser",
71
+ "/snap/bin/microsoft-edge",
72
+ "/opt/google/chrome/chrome",
73
73
  ],
74
74
  };
75
75
  }
76
- if (process.platform === 'darwin') {
76
+ if (process.platform === "darwin") {
77
77
  return {
78
78
  binaryNames: [],
79
79
  absolutePaths: [
80
- '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
81
- '/Applications/Chromium.app/Contents/MacOS/Chromium',
82
- '/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge',
83
- '/Applications/Brave Browser.app/Contents/MacOS/Brave Browser',
80
+ "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome",
81
+ "/Applications/Chromium.app/Contents/MacOS/Chromium",
82
+ "/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge",
83
+ "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser",
84
84
  ],
85
85
  };
86
86
  }
87
- if (process.platform === 'win32') {
88
- const programFiles = process.env.ProgramFiles ?? 'C:\\Program Files';
89
- const programFilesX86 = process.env['ProgramFiles(x86)'] ?? 'C:\\Program Files (x86)';
90
- const localAppData = process.env.LOCALAPPDATA ?? path.join(os.homedir(), 'AppData', 'Local');
87
+ if (process.platform === "win32") {
88
+ const programFiles = process.env.ProgramFiles ?? "C:\\Program Files";
89
+ const programFilesX86 = process.env["ProgramFiles(x86)"] ?? "C:\\Program Files (x86)";
90
+ const localAppData = process.env.LOCALAPPDATA ?? path.join(os.homedir(), "AppData", "Local");
91
91
  return {
92
92
  binaryNames: [],
93
93
  absolutePaths: [
94
- path.join(programFiles, 'Google', 'Chrome', 'Application', 'chrome.exe'),
95
- path.join(programFilesX86, 'Google', 'Chrome', 'Application', 'chrome.exe'),
96
- path.join(localAppData, 'Google', 'Chrome', 'Application', 'chrome.exe'),
97
- path.join(programFiles, 'Microsoft', 'Edge', 'Application', 'msedge.exe'),
98
- path.join(programFilesX86, 'Microsoft', 'Edge', 'Application', 'msedge.exe'),
94
+ path.join(programFiles, "Google", "Chrome", "Application", "chrome.exe"),
95
+ path.join(programFilesX86, "Google", "Chrome", "Application", "chrome.exe"),
96
+ path.join(localAppData, "Google", "Chrome", "Application", "chrome.exe"),
97
+ path.join(programFiles, "Microsoft", "Edge", "Application", "msedge.exe"),
98
+ path.join(programFilesX86, "Microsoft", "Edge", "Application", "msedge.exe"),
99
99
  ],
100
100
  };
101
101
  }
@@ -103,25 +103,25 @@ function platformChromeCandidates() {
103
103
  }
104
104
  function platformProfileRoots() {
105
105
  const home = os.homedir();
106
- if (process.platform === 'darwin') {
106
+ if (process.platform === "darwin") {
107
107
  return [
108
- path.join(home, 'Library', 'Application Support', 'Google', 'Chrome'),
109
- path.join(home, 'Library', 'Application Support', 'Chromium'),
110
- path.join(home, 'Library', 'Application Support', 'Microsoft Edge'),
111
- path.join(home, 'Library', 'Application Support', 'BraveSoftware', 'Brave-Browser'),
108
+ path.join(home, "Library", "Application Support", "Google", "Chrome"),
109
+ path.join(home, "Library", "Application Support", "Chromium"),
110
+ path.join(home, "Library", "Application Support", "Microsoft Edge"),
111
+ path.join(home, "Library", "Application Support", "BraveSoftware", "Brave-Browser"),
112
112
  ];
113
113
  }
114
- if (process.platform === 'linux') {
114
+ if (process.platform === "linux") {
115
115
  return [
116
- path.join(home, '.config', 'google-chrome'),
117
- path.join(home, '.config', 'google-chrome-beta'),
118
- path.join(home, '.config', 'google-chrome-unstable'),
119
- path.join(home, '.config', 'chromium'),
120
- path.join(home, '.config', 'microsoft-edge'),
121
- path.join(home, '.config', 'BraveSoftware', 'Brave-Browser'),
116
+ path.join(home, ".config", "google-chrome"),
117
+ path.join(home, ".config", "google-chrome-beta"),
118
+ path.join(home, ".config", "google-chrome-unstable"),
119
+ path.join(home, ".config", "chromium"),
120
+ path.join(home, ".config", "microsoft-edge"),
121
+ path.join(home, ".config", "BraveSoftware", "Brave-Browser"),
122
122
  // Snap Chromium profiles
123
- path.join(home, 'snap', 'chromium', 'common', 'chromium'),
124
- path.join(home, 'snap', 'chromium', 'current', 'chromium'),
123
+ path.join(home, "snap", "chromium", "common", "chromium"),
124
+ path.join(home, "snap", "chromium", "current", "chromium"),
125
125
  ];
126
126
  }
127
127
  return [];
@@ -131,7 +131,7 @@ async function isExecutable(candidate) {
131
131
  const stat = await fs.stat(candidate);
132
132
  if (!stat.isFile())
133
133
  return false;
134
- if (process.platform === 'win32')
134
+ if (process.platform === "win32")
135
135
  return true;
136
136
  // eslint-disable-next-line no-bitwise
137
137
  return (stat.mode & 0o111) !== 0;
@@ -150,7 +150,7 @@ async function isFile(candidate) {
150
150
  }
151
151
  }
152
152
  async function findOnPath(names) {
153
- const rawPath = process.env.PATH ?? '';
153
+ const rawPath = process.env.PATH ?? "";
154
154
  const dirs = rawPath.split(path.delimiter).filter(Boolean);
155
155
  for (const name of names) {
156
156
  for (const dir of dirs) {
@@ -1,4 +1,4 @@
1
- import { CONVERSATION_TURN_SELECTOR } from './constants.js';
1
+ import { CONVERSATION_TURN_SELECTOR } from "./constants.js";
2
2
  export function buildConversationDebugExpression() {
3
3
  return `(() => {
4
4
  const CONVERSATION_SELECTOR = ${JSON.stringify(CONVERSATION_TURN_SELECTOR)};