@steipete/oracle 0.14.0 → 0.14.1
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 +2 -2
- package/dist/bin/oracle-cli.js +8 -8
- package/dist/src/browser/actions/assistantResponse.js +2 -1
- package/dist/src/browser/actions/modelSelection.js +344 -29
- package/dist/src/browser/actions/thinkingTime.js +239 -46
- package/dist/src/browser/chatgptImages.js +126 -24
- package/dist/src/browser/index.js +63 -8
- package/dist/src/browser/projectSourcesRunner.js +2 -1
- package/dist/src/browser/prompt.js +151 -22
- package/dist/src/cli/browserConfig.js +2 -1
- package/dist/src/cli/browserDefaults.js +2 -1
- package/dist/src/cli/options.js +8 -0
- package/dist/src/mcp/tools/chatgptImage.js +8 -3
- package/dist/src/mcp/tools/consult.js +9 -8
- package/dist/src/mcp/types.js +11 -2
- package/dist/src/oracle/thinkingTime.js +40 -0
- package/dist/vendor/oracle-notifier/build-notifier.sh +0 -0
- package/package.json +32 -34
- package/vendor/oracle-notifier/build-notifier.sh +0 -0
- package/dist/bin/oracle.js +0 -569
- 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 -593
- 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 -452
- package/dist/docs-site/favicon.svg +0 -14
- package/dist/docs-site/followup.html +0 -375
- package/dist/docs-site/gemini.html +0 -383
- 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 -596
- package/dist/docs-site/mcp.html +0 -391
- 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/src/browser/chromeCookies.js +0 -312
- package/dist/src/browser/keytarShim.js +0 -56
- package/dist/src/browser/windowsCookies.js +0 -219
- package/dist/vendor/oracle-notifier/OracleNotifier.app/Contents/CodeResources +0 -0
- package/dist/vendor/oracle-notifier/OracleNotifier.app/Contents/Info.plist +0 -20
- 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 +0 -128
- package/vendor/oracle-notifier/OracleNotifier.app/Contents/CodeResources +0 -0
- package/vendor/oracle-notifier/OracleNotifier.app/Contents/Info.plist +0 -20
- 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 +0 -128
- package/vendor/oracle-notifier/README.md +0 -26
package/dist/src/cli/options.js
CHANGED
|
@@ -3,6 +3,7 @@ import { parseDuration } from "../duration.js";
|
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import fg from "fast-glob";
|
|
5
5
|
import { DEFAULT_MODEL, MODEL_CONFIGS } from "../oracle/config.js";
|
|
6
|
+
import { normalizeThinkingTimeLevel } from "../oracle/thinkingTime.js";
|
|
6
7
|
export function collectPaths(value, previous = []) {
|
|
7
8
|
if (!value) {
|
|
8
9
|
return previous;
|
|
@@ -127,6 +128,13 @@ export function parseSearchOption(value) {
|
|
|
127
128
|
}
|
|
128
129
|
throw new InvalidArgumentError('Search mode must be "on" or "off".');
|
|
129
130
|
}
|
|
131
|
+
export function parseThinkingTimeOption(value) {
|
|
132
|
+
const normalized = normalizeThinkingTimeLevel(value);
|
|
133
|
+
if (normalized) {
|
|
134
|
+
return normalized;
|
|
135
|
+
}
|
|
136
|
+
throw new InvalidArgumentError('Thinking time must be one of "light", "standard", "extended", "heavy", or a ChatGPT UI alias like "instant", "medium", "high", or "extra-high".');
|
|
137
|
+
}
|
|
130
138
|
export function normalizeModelOption(value) {
|
|
131
139
|
return (value ?? "").trim();
|
|
132
140
|
}
|
|
@@ -2,6 +2,7 @@ import path from "node:path";
|
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { getOracleHomeDir } from "../../oracleHome.js";
|
|
5
|
+
import { browserThinkingTimeInputSchema, browserThinkingTimeRawSchema, } from "../types.js";
|
|
5
6
|
import { consultOutputShape, runConsultTool } from "./consult.js";
|
|
6
7
|
const chatGptImageInputShape = {
|
|
7
8
|
prompt: z.string().min(1, "Prompt is required.").describe("Image generation prompt."),
|
|
@@ -29,8 +30,7 @@ const chatGptImageInputShape = {
|
|
|
29
30
|
.enum(["auto", "never", "always"])
|
|
30
31
|
.optional()
|
|
31
32
|
.describe('How to deliver files. Defaults to "always" when files are present so reference images are uploaded.'),
|
|
32
|
-
browserThinkingTime:
|
|
33
|
-
.enum(["light", "standard", "extended", "heavy"])
|
|
33
|
+
browserThinkingTime: browserThinkingTimeRawSchema
|
|
34
34
|
.optional()
|
|
35
35
|
.describe("Set ChatGPT thinking time when supported by the chosen model."),
|
|
36
36
|
browserModelStrategy: z
|
|
@@ -58,7 +58,12 @@ const chatGptImageOutputShape = {
|
|
|
58
58
|
...consultOutputShape,
|
|
59
59
|
requestedOutputPath: z.string(),
|
|
60
60
|
};
|
|
61
|
-
const chatGptImageInputSchema = z
|
|
61
|
+
const chatGptImageInputSchema = z
|
|
62
|
+
.object({
|
|
63
|
+
...chatGptImageInputShape,
|
|
64
|
+
browserThinkingTime: browserThinkingTimeInputSchema.optional(),
|
|
65
|
+
})
|
|
66
|
+
.strict();
|
|
62
67
|
function resolveDefaultImageOutputPath() {
|
|
63
68
|
// Include a random token so concurrent agent calls in the same millisecond do
|
|
64
69
|
// not resolve to the same default path and overwrite each other.
|
|
@@ -20,11 +20,12 @@ async function readSessionLogTail(sessionId, maxBytes) {
|
|
|
20
20
|
import { performSessionRun } from "../../cli/sessionRunner.js";
|
|
21
21
|
import { runDryRunSummary } from "../../cli/dryRun.js";
|
|
22
22
|
import { CHATGPT_URL } from "../../browser/constants.js";
|
|
23
|
-
import { CONSULT_PRESETS, consultInputSchema } from "../types.js";
|
|
23
|
+
import { CONSULT_PRESETS, browserThinkingTimeRawSchema, consultInputSchema } from "../types.js";
|
|
24
24
|
import { applyConsultPreset } from "../consultPresets.js";
|
|
25
25
|
import { loadUserConfig } from "../../config.js";
|
|
26
26
|
import { resolveNotificationSettings } from "../../cli/notifier.js";
|
|
27
27
|
import { mapModelToBrowserLabel, resolveBrowserModelLabel } from "../../cli/browserConfig.js";
|
|
28
|
+
import { normalizeThinkingTimeLevel } from "../../oracle/thinkingTime.js";
|
|
28
29
|
// Use raw shapes so the MCP SDK (with its bundled Zod) wraps them and emits valid JSON Schema.
|
|
29
30
|
const consultInputShape = {
|
|
30
31
|
preset: z
|
|
@@ -61,11 +62,10 @@ const consultInputShape = {
|
|
|
61
62
|
.optional()
|
|
62
63
|
.describe("Browser-only: bundle many files into a single upload (helps with upload limits)."),
|
|
63
64
|
browserBundleFormat: z
|
|
64
|
-
.enum(["text", "zip"])
|
|
65
|
+
.enum(["auto", "text", "zip"])
|
|
65
66
|
.optional()
|
|
66
|
-
.describe('Browser-only: bundle upload format when browserBundleFiles is true or auto-bundling is needed. Defaults to "
|
|
67
|
-
browserThinkingTime:
|
|
68
|
-
.enum(["light", "standard", "extended", "heavy"])
|
|
67
|
+
.describe('Browser-only: bundle upload format when browserBundleFiles is true or auto-bundling is needed. Defaults to "auto"; "auto" uses ZIP when bundled inputs include raw/binary files.'),
|
|
68
|
+
browserThinkingTime: browserThinkingTimeRawSchema
|
|
69
69
|
.optional()
|
|
70
70
|
.describe("Browser-only: set ChatGPT thinking time when supported by the chosen model."),
|
|
71
71
|
browserModelStrategy: z
|
|
@@ -166,7 +166,7 @@ const consultDryRunResolvedShape = z.object({
|
|
|
166
166
|
researchMode: z.string().nullable().optional(),
|
|
167
167
|
attachments: z.string().optional(),
|
|
168
168
|
bundleFiles: z.boolean().optional(),
|
|
169
|
-
bundleFormat: z.enum(["text", "zip"]).optional(),
|
|
169
|
+
bundleFormat: z.enum(["auto", "text", "zip"]).optional(),
|
|
170
170
|
keepBrowser: z.boolean().optional(),
|
|
171
171
|
manualLogin: z.boolean().optional(),
|
|
172
172
|
profileDir: z.string().nullable().optional(),
|
|
@@ -266,6 +266,7 @@ export function buildConsultBrowserConfig({ userConfig, env, runModel, inputMode
|
|
|
266
266
|
const manualLogin = hasProfileDir
|
|
267
267
|
? true
|
|
268
268
|
: (configuredBrowser.manualLogin ?? process.platform === "win32");
|
|
269
|
+
const configuredThinkingTime = normalizeThinkingTimeLevel(configuredBrowser.thinkingTime);
|
|
269
270
|
return {
|
|
270
271
|
...configuredBrowser,
|
|
271
272
|
url: configuredUrl,
|
|
@@ -278,7 +279,7 @@ export function buildConsultBrowserConfig({ userConfig, env, runModel, inputMode
|
|
|
278
279
|
manualLoginProfileDir: manualLogin
|
|
279
280
|
? ((envProfileDir || configuredBrowser.manualLoginProfileDir) ?? null)
|
|
280
281
|
: null,
|
|
281
|
-
thinkingTime: browserThinkingTime ??
|
|
282
|
+
thinkingTime: browserThinkingTime ?? configuredThinkingTime ?? undefined,
|
|
282
283
|
modelStrategy: browserModelStrategy ?? configuredBrowser.modelStrategy,
|
|
283
284
|
researchMode: browserResearchMode ?? configuredBrowser.researchMode,
|
|
284
285
|
archiveConversations: browserArchive ?? configuredBrowser.archiveConversations,
|
|
@@ -358,7 +359,7 @@ export function formatConsultDryRunResolved(details) {
|
|
|
358
359
|
lines.push(` browser research mode: ${details.browser.researchMode ?? "off"}`);
|
|
359
360
|
lines.push(` browser attachments: ${details.browser.attachments ?? "auto"}`);
|
|
360
361
|
lines.push(` browser bundle files: ${details.browser.bundleFiles ? "yes" : "no"}`);
|
|
361
|
-
lines.push(` browser bundle format: ${details.browser.bundleFormat ?? "
|
|
362
|
+
lines.push(` browser bundle format: ${details.browser.bundleFormat ?? "auto"}`);
|
|
362
363
|
lines.push(` browser keep browser: ${details.browser.keepBrowser ? "yes" : "no"}`);
|
|
363
364
|
lines.push(` browser manual login: ${details.browser.manualLogin ? "yes" : "no"}`);
|
|
364
365
|
if (details.browser.profileDir) {
|
package/dist/src/mcp/types.js
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { THINKING_TIME_INPUT_VALUES, normalizeThinkingTimeLevel } from "../oracle/thinkingTime.js";
|
|
2
3
|
export const CONSULT_PRESETS = ["chatgpt-pro-heavy"];
|
|
4
|
+
export const browserThinkingTimeRawSchema = z.enum(THINKING_TIME_INPUT_VALUES);
|
|
5
|
+
export const browserThinkingTimeInputSchema = browserThinkingTimeRawSchema.transform((value) => {
|
|
6
|
+
const normalized = normalizeThinkingTimeLevel(value);
|
|
7
|
+
if (!normalized) {
|
|
8
|
+
throw new Error(`Unknown browserThinkingTime value: ${value}`);
|
|
9
|
+
}
|
|
10
|
+
return normalized;
|
|
11
|
+
});
|
|
3
12
|
export const consultInputSchema = z
|
|
4
13
|
.object({
|
|
5
14
|
preset: z.enum(CONSULT_PRESETS).optional(),
|
|
@@ -11,8 +20,8 @@ export const consultInputSchema = z
|
|
|
11
20
|
browserModelLabel: z.string().optional(),
|
|
12
21
|
browserAttachments: z.enum(["auto", "never", "always"]).optional(),
|
|
13
22
|
browserBundleFiles: z.boolean().optional(),
|
|
14
|
-
browserBundleFormat: z.enum(["text", "zip"]).optional(),
|
|
15
|
-
browserThinkingTime:
|
|
23
|
+
browserBundleFormat: z.enum(["auto", "text", "zip"]).optional(),
|
|
24
|
+
browserThinkingTime: browserThinkingTimeInputSchema.optional(),
|
|
16
25
|
browserModelStrategy: z.enum(["select", "current", "ignore"]).optional(),
|
|
17
26
|
browserResearchMode: z.enum(["deep"]).optional(),
|
|
18
27
|
browserArchive: z.enum(["auto", "always", "never"]).optional(),
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export const THINKING_TIME_LEVELS = ["light", "standard", "extended", "heavy"];
|
|
2
|
+
export const THINKING_TIME_ALIASES = [
|
|
3
|
+
"instant",
|
|
4
|
+
"low",
|
|
5
|
+
"medium",
|
|
6
|
+
"high",
|
|
7
|
+
"extra-high",
|
|
8
|
+
"extra high",
|
|
9
|
+
"extrahigh",
|
|
10
|
+
"xhigh",
|
|
11
|
+
];
|
|
12
|
+
export const THINKING_TIME_INPUT_VALUES = [
|
|
13
|
+
...THINKING_TIME_LEVELS,
|
|
14
|
+
...THINKING_TIME_ALIASES,
|
|
15
|
+
];
|
|
16
|
+
export function normalizeThinkingTimeLevel(value) {
|
|
17
|
+
const normalized = (value ?? "")
|
|
18
|
+
.trim()
|
|
19
|
+
.toLowerCase()
|
|
20
|
+
.replace(/[_\s]+/g, "-");
|
|
21
|
+
switch (normalized) {
|
|
22
|
+
case "light":
|
|
23
|
+
case "instant":
|
|
24
|
+
case "low":
|
|
25
|
+
return "light";
|
|
26
|
+
case "standard":
|
|
27
|
+
case "medium":
|
|
28
|
+
return "standard";
|
|
29
|
+
case "extended":
|
|
30
|
+
case "high":
|
|
31
|
+
return "extended";
|
|
32
|
+
case "heavy":
|
|
33
|
+
case "extra-high":
|
|
34
|
+
case "extrahigh":
|
|
35
|
+
case "xhigh":
|
|
36
|
+
return "heavy";
|
|
37
|
+
default:
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steipete/oracle",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.1",
|
|
4
4
|
"description": "CLI wrapper around OpenAI Responses API with GPT-5.5 Pro, GPT-5.5, GPT-5.4, GPT-5.2, GPT-5.1, and GPT-5.1 Codex high reasoning modes.",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"homepage": "https://askoracle.sh",
|
|
@@ -28,40 +28,12 @@
|
|
|
28
28
|
],
|
|
29
29
|
"type": "module",
|
|
30
30
|
"main": "dist/bin/oracle-cli.js",
|
|
31
|
-
"scripts": {
|
|
32
|
-
"docs:list": "tsx scripts/docs-list.ts",
|
|
33
|
-
"docs:check": "node --no-deprecation --import tsx bin/oracle-cli.ts docs check",
|
|
34
|
-
"docs:site": "node scripts/build-docs-site.mjs",
|
|
35
|
-
"build": "tsgo -p tsconfig.build.json && pnpm run build:vendor",
|
|
36
|
-
"build:vendor": "node -e \"const fs=require('fs'); const path=require('path'); const vendorRoot=path.join('dist','vendor'); fs.rmSync(vendorRoot,{recursive:true,force:true}); const vendors=[['oracle-notifier']]; vendors.forEach(([name])=>{const src=path.join('vendor',name); const dest=path.join(vendorRoot,name); fs.mkdirSync(dest,{recursive:true}); if(fs.existsSync(src)){fs.cpSync(src,dest,{recursive:true,force:true});}});\"",
|
|
37
|
-
"start": "pnpm run build && node ./dist/scripts/run-cli.js",
|
|
38
|
-
"oracle": "pnpm start",
|
|
39
|
-
"check": "pnpm run format:check && pnpm run lint",
|
|
40
|
-
"typecheck": "tsgo --noEmit",
|
|
41
|
-
"format": "oxfmt --write .",
|
|
42
|
-
"format:check": "oxfmt --check .",
|
|
43
|
-
"format:diff": "oxfmt --write . && git --no-pager diff",
|
|
44
|
-
"lint": "pnpm run typecheck && oxlint",
|
|
45
|
-
"lint:fix": "oxlint --fix && pnpm run format",
|
|
46
|
-
"test": "vitest run",
|
|
47
|
-
"test:mcp": "pnpm run build && pnpm run test:mcp:unit && pnpm run test:mcp:mcporter",
|
|
48
|
-
"test:mcp:unit": "vitest run tests/mcp*.test.ts tests/mcp/**/*.test.ts",
|
|
49
|
-
"test:mcp:mcporter": "CHROME_DEVTOOLS_URL=http://127.0.0.1:0 pnpm dlx mcporter list oracle-local --schema --config config/mcporter.json && CHROME_DEVTOOLS_URL=http://127.0.0.1:0 pnpm dlx mcporter call oracle-local.sessions limit:1 --config config/mcporter.json",
|
|
50
|
-
"test:browser": "pnpm run build && tsx scripts/test-browser.ts && ./scripts/browser-smoke.sh",
|
|
51
|
-
"test:packed-cli": "node scripts/packed-cli-smoke.mjs",
|
|
52
|
-
"test:live": "ORACLE_LIVE_TEST=1 vitest run tests/live --exclude tests/live/openai-live.test.ts",
|
|
53
|
-
"test:live:fast": "ORACLE_LIVE_TEST=1 ORACLE_LIVE_TEST_FAST=1 vitest run tests/live/browser-fast-live.test.ts",
|
|
54
|
-
"test:pro": "ORACLE_LIVE_TEST=1 vitest run tests/live/openai-live.test.ts",
|
|
55
|
-
"test:coverage": "vitest run --coverage",
|
|
56
|
-
"prepare": "pnpm run build",
|
|
57
|
-
"mcp": "pnpm run build && node ./dist/bin/oracle-mcp.js"
|
|
58
|
-
},
|
|
59
31
|
"dependencies": {
|
|
60
32
|
"@anthropic-ai/tokenizer": "^0.0.4",
|
|
61
33
|
"@google/genai": "^2.8.0",
|
|
62
34
|
"@google/generative-ai": "^0.24.1",
|
|
63
35
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
64
|
-
"@steipete/sweet-cookie": "^0.
|
|
36
|
+
"@steipete/sweet-cookie": "^0.4.0",
|
|
65
37
|
"chalk": "^5.6.2",
|
|
66
38
|
"chrome-launcher": "^1.2.1",
|
|
67
39
|
"chrome-remote-interface": "^0.34.0",
|
|
@@ -73,7 +45,7 @@
|
|
|
73
45
|
"inquirer": "14.0.2",
|
|
74
46
|
"json5": "^2.2.3",
|
|
75
47
|
"kleur": "^4.1.5",
|
|
76
|
-
"markdansi": "0.
|
|
48
|
+
"markdansi": "0.3.1",
|
|
77
49
|
"openai": "^6.42.0",
|
|
78
50
|
"osc-progress": "^0.3.0",
|
|
79
51
|
"qs": "^6.15.2",
|
|
@@ -87,7 +59,7 @@
|
|
|
87
59
|
"@types/chrome-remote-interface": "^0.34.0",
|
|
88
60
|
"@types/inquirer": "^9.0.9",
|
|
89
61
|
"@types/node": "^25.9.2",
|
|
90
|
-
"@typescript/native-preview": "7.0.0-dev.
|
|
62
|
+
"@typescript/native-preview": "7.0.0-dev.20260612.1",
|
|
91
63
|
"@vitest/coverage-v8": "4.1.8",
|
|
92
64
|
"devtools-protocol": "0.0.1643702",
|
|
93
65
|
"es-toolkit": "^1.47.0",
|
|
@@ -110,5 +82,31 @@
|
|
|
110
82
|
"engines": {
|
|
111
83
|
"node": ">=24"
|
|
112
84
|
},
|
|
113
|
-
"
|
|
114
|
-
|
|
85
|
+
"scripts": {
|
|
86
|
+
"docs:list": "tsx scripts/docs-list.ts",
|
|
87
|
+
"docs:check": "node --no-deprecation --import tsx bin/oracle-cli.ts docs check",
|
|
88
|
+
"docs:site": "node scripts/build-docs-site.mjs",
|
|
89
|
+
"build": "tsgo -p tsconfig.build.json && pnpm run build:vendor",
|
|
90
|
+
"build:vendor": "node -e \"const fs=require('fs'); const path=require('path'); const vendorRoot=path.join('dist','vendor'); fs.rmSync(vendorRoot,{recursive:true,force:true}); const vendors=[['oracle-notifier']]; vendors.forEach(([name])=>{const src=path.join('vendor',name); const dest=path.join(vendorRoot,name); fs.mkdirSync(dest,{recursive:true}); if(fs.existsSync(src)){fs.cpSync(src,dest,{recursive:true,force:true});}});\"",
|
|
91
|
+
"start": "pnpm run build && node ./dist/scripts/run-cli.js",
|
|
92
|
+
"oracle": "pnpm start",
|
|
93
|
+
"check": "pnpm run format:check && pnpm run lint",
|
|
94
|
+
"typecheck": "tsgo --noEmit",
|
|
95
|
+
"format": "oxfmt --write .",
|
|
96
|
+
"format:check": "oxfmt --check .",
|
|
97
|
+
"format:diff": "oxfmt --write . && git --no-pager diff",
|
|
98
|
+
"lint": "pnpm run typecheck && oxlint",
|
|
99
|
+
"lint:fix": "oxlint --fix && pnpm run format",
|
|
100
|
+
"test": "vitest run",
|
|
101
|
+
"test:mcp": "pnpm run build && pnpm run test:mcp:unit && pnpm run test:mcp:mcporter",
|
|
102
|
+
"test:mcp:unit": "vitest run tests/mcp*.test.ts tests/mcp/**/*.test.ts",
|
|
103
|
+
"test:mcp:mcporter": "CHROME_DEVTOOLS_URL=http://127.0.0.1:0 pnpm dlx mcporter list oracle-local --schema --config config/mcporter.json && CHROME_DEVTOOLS_URL=http://127.0.0.1:0 pnpm dlx mcporter call oracle-local.sessions limit:1 --config config/mcporter.json",
|
|
104
|
+
"test:browser": "pnpm run build && tsx scripts/test-browser.ts && ./scripts/browser-smoke.sh",
|
|
105
|
+
"test:packed-cli": "node scripts/packed-cli-smoke.mjs",
|
|
106
|
+
"test:live": "ORACLE_LIVE_TEST=1 vitest run tests/live --exclude tests/live/openai-live.test.ts",
|
|
107
|
+
"test:live:fast": "ORACLE_LIVE_TEST=1 ORACLE_LIVE_TEST_FAST=1 vitest run tests/live/browser-fast-live.test.ts",
|
|
108
|
+
"test:pro": "ORACLE_LIVE_TEST=1 vitest run tests/live/openai-live.test.ts",
|
|
109
|
+
"test:coverage": "vitest run --coverage",
|
|
110
|
+
"mcp": "pnpm run build && node ./dist/bin/oracle-mcp.js"
|
|
111
|
+
}
|
|
112
|
+
}
|
|
File without changes
|