@steipete/oracle 0.9.0 → 0.11.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 (194) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +107 -49
  3. package/dist/bin/oracle-cli.js +551 -410
  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/archiveConversation.js +224 -0
  18. package/dist/src/browser/actions/assistantResponse.js +175 -101
  19. package/dist/src/browser/actions/attachmentDataTransfer.js +49 -47
  20. package/dist/src/browser/actions/attachments.js +246 -150
  21. package/dist/src/browser/actions/deepResearch.js +662 -0
  22. package/dist/src/browser/actions/domEvents.js +2 -2
  23. package/dist/src/browser/actions/modelSelection.js +342 -119
  24. package/dist/src/browser/actions/navigation.js +183 -137
  25. package/dist/src/browser/actions/projectSources.js +491 -0
  26. package/dist/src/browser/actions/promptComposer.js +152 -91
  27. package/dist/src/browser/actions/remoteFileTransfer.js +10 -10
  28. package/dist/src/browser/actions/thinkingStatus.js +391 -0
  29. package/dist/src/browser/actions/thinkingTime.js +207 -110
  30. package/dist/src/browser/artifacts.js +150 -0
  31. package/dist/src/browser/attachRunning.js +31 -0
  32. package/dist/src/browser/chatgptImages.js +315 -0
  33. package/dist/src/browser/chromeLifecycle.js +276 -63
  34. package/dist/src/browser/config.js +59 -16
  35. package/dist/src/browser/constants.js +25 -12
  36. package/dist/src/browser/controlPlan.js +81 -0
  37. package/dist/src/browser/cookies.js +19 -19
  38. package/dist/src/browser/detect.js +250 -77
  39. package/dist/src/browser/domDebug.js +50 -1
  40. package/dist/src/browser/index.js +1559 -692
  41. package/dist/src/browser/liveTabs.js +434 -0
  42. package/dist/src/browser/modelStrategy.js +1 -1
  43. package/dist/src/browser/pageActions.js +5 -5
  44. package/dist/src/browser/policies.js +16 -13
  45. package/dist/src/browser/profileState.js +127 -42
  46. package/dist/src/browser/projectSourcesRunner.js +366 -0
  47. package/dist/src/browser/prompt.js +72 -42
  48. package/dist/src/browser/promptSummary.js +5 -5
  49. package/dist/src/browser/providerDomFlow.js +1 -1
  50. package/dist/src/browser/providers/chatgptDomProvider.js +9 -9
  51. package/dist/src/browser/providers/geminiDeepThinkDomProvider.js +51 -42
  52. package/dist/src/browser/providers/index.js +2 -2
  53. package/dist/src/browser/reattach.js +178 -73
  54. package/dist/src/browser/reattachHelpers.js +32 -27
  55. package/dist/src/browser/sessionRunner.js +89 -25
  56. package/dist/src/browser/tabLeaseRegistry.js +182 -0
  57. package/dist/src/browser/utils.js +9 -9
  58. package/dist/src/browserMode.js +1 -1
  59. package/dist/src/cli/bridge/claudeConfig.js +24 -20
  60. package/dist/src/cli/bridge/client.js +28 -20
  61. package/dist/src/cli/bridge/codexConfig.js +16 -16
  62. package/dist/src/cli/bridge/doctor.js +47 -39
  63. package/dist/src/cli/bridge/host.js +58 -56
  64. package/dist/src/cli/browserConfig.js +102 -48
  65. package/dist/src/cli/browserDefaults.js +51 -26
  66. package/dist/src/cli/browserTabs.js +228 -0
  67. package/dist/src/cli/bundleWarnings.js +1 -1
  68. package/dist/src/cli/clipboard.js +11 -2
  69. package/dist/src/cli/detach.js +2 -2
  70. package/dist/src/cli/dryRun.js +62 -26
  71. package/dist/src/cli/duplicatePromptGuard.js +12 -4
  72. package/dist/src/cli/engine.js +9 -9
  73. package/dist/src/cli/errorUtils.js +1 -1
  74. package/dist/src/cli/fileSize.js +3 -3
  75. package/dist/src/cli/format.js +2 -2
  76. package/dist/src/cli/help.js +28 -28
  77. package/dist/src/cli/hiddenAliases.js +3 -3
  78. package/dist/src/cli/markdownBundle.js +7 -7
  79. package/dist/src/cli/markdownRenderer.js +15 -15
  80. package/dist/src/cli/notifier.js +77 -67
  81. package/dist/src/cli/options.js +131 -106
  82. package/dist/src/cli/oscUtils.js +1 -1
  83. package/dist/src/cli/projectSources.js +116 -0
  84. package/dist/src/cli/promptRequirement.js +2 -2
  85. package/dist/src/cli/renderOutput.js +1 -1
  86. package/dist/src/cli/rootAlias.js +1 -1
  87. package/dist/src/cli/runOptions.js +32 -28
  88. package/dist/src/cli/sessionCommand.js +82 -21
  89. package/dist/src/cli/sessionDisplay.js +213 -87
  90. package/dist/src/cli/sessionLineage.js +6 -2
  91. package/dist/src/cli/sessionRunner.js +149 -95
  92. package/dist/src/cli/sessionTable.js +26 -23
  93. package/dist/src/cli/stdin.js +22 -0
  94. package/dist/src/cli/tagline.js +121 -124
  95. package/dist/src/cli/tui/index.js +139 -128
  96. package/dist/src/cli/writeOutputPath.js +5 -5
  97. package/dist/src/config.js +7 -7
  98. package/dist/src/gemini-web/browserSessionManager.js +19 -15
  99. package/dist/src/gemini-web/client.js +76 -70
  100. package/dist/src/gemini-web/executionMode.js +6 -8
  101. package/dist/src/gemini-web/executor.js +98 -93
  102. package/dist/src/gemini-web/index.js +1 -1
  103. package/dist/src/mcp/consultPresets.js +19 -0
  104. package/dist/src/mcp/server.js +18 -12
  105. package/dist/src/mcp/tools/consult.js +246 -67
  106. package/dist/src/mcp/tools/projectSources.js +123 -0
  107. package/dist/src/mcp/tools/sessionResources.js +12 -12
  108. package/dist/src/mcp/tools/sessions.js +26 -17
  109. package/dist/src/mcp/types.js +12 -5
  110. package/dist/src/mcp/utils.js +21 -8
  111. package/dist/src/oracle/background.js +15 -15
  112. package/dist/src/oracle/claude.js +53 -25
  113. package/dist/src/oracle/client.js +50 -41
  114. package/dist/src/oracle/config.js +96 -66
  115. package/dist/src/oracle/errors.js +38 -38
  116. package/dist/src/oracle/files.js +55 -46
  117. package/dist/src/oracle/finishLine.js +10 -8
  118. package/dist/src/oracle/format.js +3 -3
  119. package/dist/src/oracle/gemini.js +37 -33
  120. package/dist/src/oracle/logging.js +7 -7
  121. package/dist/src/oracle/markdown.js +28 -28
  122. package/dist/src/oracle/modelResolver.js +16 -16
  123. package/dist/src/oracle/multiModelRunner.js +12 -12
  124. package/dist/src/oracle/oscProgress.js +8 -8
  125. package/dist/src/oracle/promptAssembly.js +6 -3
  126. package/dist/src/oracle/request.js +16 -13
  127. package/dist/src/oracle/run.js +160 -135
  128. package/dist/src/oracle/runUtils.js +8 -5
  129. package/dist/src/oracle/tokenEstimate.js +6 -6
  130. package/dist/src/oracle/tokenStats.js +5 -5
  131. package/dist/src/oracle/tokenStringifier.js +5 -5
  132. package/dist/src/oracle.js +12 -12
  133. package/dist/src/oracleHome.js +3 -3
  134. package/dist/src/projectSources/plan.js +27 -0
  135. package/dist/src/projectSources/url.js +23 -0
  136. package/dist/src/remote/client.js +25 -25
  137. package/dist/src/remote/health.js +20 -20
  138. package/dist/src/remote/remoteServiceConfig.js +9 -9
  139. package/dist/src/remote/server.js +129 -118
  140. package/dist/src/sessionManager.js +78 -75
  141. package/dist/src/sessionStore.js +3 -3
  142. package/dist/src/version.js +10 -10
  143. package/dist/vendor/oracle-notifier/README.md +2 -0
  144. package/package.json +67 -62
  145. package/vendor/oracle-notifier/README.md +2 -0
  146. package/dist/markdansi/types/index.js +0 -4
  147. package/dist/oracle/bin/oracle-cli.js +0 -472
  148. package/dist/oracle/src/browser/actions/assistantResponse.js +0 -471
  149. package/dist/oracle/src/browser/actions/attachments.js +0 -82
  150. package/dist/oracle/src/browser/actions/modelSelection.js +0 -190
  151. package/dist/oracle/src/browser/actions/navigation.js +0 -75
  152. package/dist/oracle/src/browser/actions/promptComposer.js +0 -167
  153. package/dist/oracle/src/browser/chromeLifecycle.js +0 -104
  154. package/dist/oracle/src/browser/config.js +0 -33
  155. package/dist/oracle/src/browser/constants.js +0 -40
  156. package/dist/oracle/src/browser/cookies.js +0 -210
  157. package/dist/oracle/src/browser/domDebug.js +0 -36
  158. package/dist/oracle/src/browser/index.js +0 -331
  159. package/dist/oracle/src/browser/pageActions.js +0 -5
  160. package/dist/oracle/src/browser/prompt.js +0 -88
  161. package/dist/oracle/src/browser/promptSummary.js +0 -20
  162. package/dist/oracle/src/browser/sessionRunner.js +0 -80
  163. package/dist/oracle/src/browser/utils.js +0 -62
  164. package/dist/oracle/src/browserMode.js +0 -1
  165. package/dist/oracle/src/cli/browserConfig.js +0 -44
  166. package/dist/oracle/src/cli/dryRun.js +0 -59
  167. package/dist/oracle/src/cli/engine.js +0 -17
  168. package/dist/oracle/src/cli/errorUtils.js +0 -9
  169. package/dist/oracle/src/cli/help.js +0 -70
  170. package/dist/oracle/src/cli/markdownRenderer.js +0 -15
  171. package/dist/oracle/src/cli/options.js +0 -103
  172. package/dist/oracle/src/cli/promptRequirement.js +0 -14
  173. package/dist/oracle/src/cli/rootAlias.js +0 -30
  174. package/dist/oracle/src/cli/sessionCommand.js +0 -77
  175. package/dist/oracle/src/cli/sessionDisplay.js +0 -270
  176. package/dist/oracle/src/cli/sessionRunner.js +0 -94
  177. package/dist/oracle/src/heartbeat.js +0 -43
  178. package/dist/oracle/src/oracle/client.js +0 -48
  179. package/dist/oracle/src/oracle/config.js +0 -29
  180. package/dist/oracle/src/oracle/errors.js +0 -101
  181. package/dist/oracle/src/oracle/files.js +0 -220
  182. package/dist/oracle/src/oracle/format.js +0 -33
  183. package/dist/oracle/src/oracle/fsAdapter.js +0 -7
  184. package/dist/oracle/src/oracle/oscProgress.js +0 -60
  185. package/dist/oracle/src/oracle/request.js +0 -48
  186. package/dist/oracle/src/oracle/run.js +0 -444
  187. package/dist/oracle/src/oracle/tokenStats.js +0 -39
  188. package/dist/oracle/src/oracle/types.js +0 -1
  189. package/dist/oracle/src/oracle.js +0 -9
  190. package/dist/oracle/src/sessionManager.js +0 -205
  191. package/dist/oracle/src/version.js +0 -39
  192. package/dist/scripts/chrome/browser-tools.js +0 -295
  193. package/dist/src/browser/profileSync.js +0 -141
  194. /package/dist/{oracle/src/browser → src/projectSources}/types.js +0 -0
@@ -1,12 +1,12 @@
1
- import { readFile } from 'node:fs/promises';
2
- import path from 'node:path';
1
+ import { readFile } from "node:fs/promises";
2
+ import path from "node:path";
3
3
  const MAX_DATA_TRANSFER_BYTES = 20 * 1024 * 1024;
4
4
  export async function transferAttachmentViaDataTransfer(runtime, attachment, selector) {
5
5
  const fileContent = await readFile(attachment.path);
6
6
  if (fileContent.length > MAX_DATA_TRANSFER_BYTES) {
7
7
  throw new Error(`Attachment ${path.basename(attachment.path)} is too large for data transfer (${fileContent.length} bytes). Maximum size is ${MAX_DATA_TRANSFER_BYTES} bytes.`);
8
8
  }
9
- const base64Content = fileContent.toString('base64');
9
+ const base64Content = fileContent.toString("base64");
10
10
  const fileName = path.basename(attachment.path);
11
11
  const mimeType = guessMimeType(fileName);
12
12
  const expression = `(() => {
@@ -77,62 +77,64 @@ export async function transferAttachmentViaDataTransfer(runtime, attachment, sel
77
77
  })()`;
78
78
  const evalResult = await runtime.evaluate({ expression, returnByValue: true });
79
79
  if (evalResult.exceptionDetails) {
80
- const description = evalResult.exceptionDetails.text ?? 'JS evaluation failed';
80
+ const description = evalResult.exceptionDetails.text ?? "JS evaluation failed";
81
81
  throw new Error(`Failed to transfer file to browser: ${description}`);
82
82
  }
83
- if (!evalResult.result || typeof evalResult.result.value !== 'object' || evalResult.result.value == null) {
84
- throw new Error('Failed to transfer file to browser: unexpected evaluation result');
83
+ if (!evalResult.result ||
84
+ typeof evalResult.result.value !== "object" ||
85
+ evalResult.result.value == null) {
86
+ throw new Error("Failed to transfer file to browser: unexpected evaluation result");
85
87
  }
86
88
  const uploadResult = evalResult.result.value;
87
89
  if (!uploadResult.success) {
88
- throw new Error(`Failed to transfer file to browser: ${uploadResult.error || 'Unknown error'}`);
90
+ throw new Error(`Failed to transfer file to browser: ${uploadResult.error || "Unknown error"}`);
89
91
  }
90
92
  return {
91
93
  fileName: uploadResult.fileName ?? fileName,
92
- size: typeof uploadResult.size === 'number' ? uploadResult.size : fileContent.length,
94
+ size: typeof uploadResult.size === "number" ? uploadResult.size : fileContent.length,
93
95
  };
94
96
  }
95
97
  export function guessMimeType(fileName) {
96
98
  const ext = path.extname(fileName).toLowerCase();
97
99
  const mimeTypes = {
98
- '.txt': 'text/plain',
99
- '.md': 'text/markdown',
100
- '.csv': 'text/csv',
101
- '.json': 'application/json',
102
- '.js': 'text/javascript',
103
- '.ts': 'text/typescript',
104
- '.jsx': 'text/javascript',
105
- '.tsx': 'text/typescript',
106
- '.py': 'text/x-python',
107
- '.java': 'text/x-java',
108
- '.c': 'text/x-c',
109
- '.cpp': 'text/x-c++',
110
- '.h': 'text/x-c',
111
- '.hpp': 'text/x-c++',
112
- '.sh': 'text/x-sh',
113
- '.bash': 'text/x-sh',
114
- '.html': 'text/html',
115
- '.css': 'text/css',
116
- '.xml': 'text/xml',
117
- '.yaml': 'text/yaml',
118
- '.yml': 'text/yaml',
119
- '.pdf': 'application/pdf',
120
- '.doc': 'application/msword',
121
- '.docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
122
- '.xls': 'application/vnd.ms-excel',
123
- '.xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
124
- '.ppt': 'application/vnd.ms-powerpoint',
125
- '.pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
126
- '.png': 'image/png',
127
- '.jpg': 'image/jpeg',
128
- '.jpeg': 'image/jpeg',
129
- '.gif': 'image/gif',
130
- '.svg': 'image/svg+xml',
131
- '.webp': 'image/webp',
132
- '.zip': 'application/zip',
133
- '.tar': 'application/x-tar',
134
- '.gz': 'application/gzip',
135
- '.7z': 'application/x-7z-compressed',
100
+ ".txt": "text/plain",
101
+ ".md": "text/markdown",
102
+ ".csv": "text/csv",
103
+ ".json": "application/json",
104
+ ".js": "text/javascript",
105
+ ".ts": "text/typescript",
106
+ ".jsx": "text/javascript",
107
+ ".tsx": "text/typescript",
108
+ ".py": "text/x-python",
109
+ ".java": "text/x-java",
110
+ ".c": "text/x-c",
111
+ ".cpp": "text/x-c++",
112
+ ".h": "text/x-c",
113
+ ".hpp": "text/x-c++",
114
+ ".sh": "text/x-sh",
115
+ ".bash": "text/x-sh",
116
+ ".html": "text/html",
117
+ ".css": "text/css",
118
+ ".xml": "text/xml",
119
+ ".yaml": "text/yaml",
120
+ ".yml": "text/yaml",
121
+ ".pdf": "application/pdf",
122
+ ".doc": "application/msword",
123
+ ".docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
124
+ ".xls": "application/vnd.ms-excel",
125
+ ".xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
126
+ ".ppt": "application/vnd.ms-powerpoint",
127
+ ".pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
128
+ ".png": "image/png",
129
+ ".jpg": "image/jpeg",
130
+ ".jpeg": "image/jpeg",
131
+ ".gif": "image/gif",
132
+ ".svg": "image/svg+xml",
133
+ ".webp": "image/webp",
134
+ ".zip": "application/zip",
135
+ ".tar": "application/x-tar",
136
+ ".gz": "application/gzip",
137
+ ".7z": "application/x-7z-compressed",
136
138
  };
137
- return mimeTypes[ext] || 'application/octet-stream';
139
+ return mimeTypes[ext] || "application/octet-stream";
138
140
  }