mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-05 04:02:50 +00:00
Allow the browser upload tool to resolve OpenClaw-managed inbound media refs such as `media://inbound/<id>` and sandbox-relative `media/inbound/<id>` while preserving the existing upload-root path contract.
Keep upload-root files ahead of sandbox-relative inbound fallback, reject nested absolute inbound media files, and validate raw `media://` paths before URL normalization so traversal-shaped refs cannot resolve to direct media ids.
Verification:
- `OPENCLAW_VITEST_MAX_WORKERS=1 node scripts/run-vitest.mjs extensions/browser/src/browser/paths.test.ts --reporter=verbose`
- `OPENCLAW_VITEST_MAX_WORKERS=1 node scripts/run-vitest.mjs extensions/browser/src/browser/paths.test.ts --reporter=dot`
- `OPENCLAW_HEAVY_CHECK_LOCK_SCOPE=worktree node scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.extensions.test.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/extensions-test.tsbuildinfo`
- `pnpm lint --threads=8`
- `.agents/skills/autoreview/scripts/autoreview --mode branch --base origin/main`
- `git diff --check`
- GitHub PR checks on be08e6c8a8: dependency-guard, check-lint, check-test-types, check-additional-extension-bundled, checks-fast-contracts-plugins-a, checks-fast-contracts-plugins-b all passed.
Fixes #83544.
Co-authored-by: Zee Zheng <zheng.zuo0@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
117 lines
2.7 KiB
TypeScript
117 lines
2.7 KiB
TypeScript
export {
|
|
DEFAULT_AI_SNAPSHOT_MAX_CHARS,
|
|
DEFAULT_UPLOAD_DIR,
|
|
applyBrowserProxyPaths,
|
|
browserAct,
|
|
browserArmDialog,
|
|
browserArmFileChooser,
|
|
browserCloseTab,
|
|
browserCreateProfile,
|
|
browserConsoleMessages,
|
|
browserDeleteProfile,
|
|
browserDoctor,
|
|
browserFocusTab,
|
|
browserNavigate,
|
|
browserOpenTab,
|
|
browserPdfSave,
|
|
browserProfiles,
|
|
browserResetProfile,
|
|
browserScreenshotAction,
|
|
browserSnapshot,
|
|
browserStart,
|
|
browserStatus,
|
|
browserStop,
|
|
browserTabAction,
|
|
browserTabs,
|
|
createBrowserControlContext,
|
|
createBrowserRouteDispatcher,
|
|
createBrowserRuntimeState,
|
|
createBrowserRouteContext,
|
|
ensureBrowserControlAuth,
|
|
getBrowserControlState,
|
|
getBrowserProfileCapabilities,
|
|
isPersistentBrowserProfileMutation,
|
|
installBrowserAuthMiddleware,
|
|
installBrowserCommonMiddleware,
|
|
normalizeBrowserFormField,
|
|
normalizeBrowserFormFieldValue,
|
|
normalizeBrowserRequestPath,
|
|
persistBrowserProxyFiles,
|
|
redactCdpUrl,
|
|
registerBrowserRoutes,
|
|
resolveBrowserConfig,
|
|
resolveBrowserControlAuth,
|
|
resolveExistingPathsWithinRoot,
|
|
resolveExistingUploadPaths,
|
|
resolveProfile,
|
|
resolveRequestedBrowserProfile,
|
|
startBrowserControlServiceFromConfig,
|
|
stopBrowserControlService,
|
|
stopBrowserRuntime,
|
|
trackSessionBrowserTab,
|
|
untrackSessionBrowserTab,
|
|
} from "./browser-runtime.js";
|
|
export type {
|
|
BrowserCreateProfileResult,
|
|
BrowserDeleteProfileResult,
|
|
BrowserDoctorCheck,
|
|
BrowserDoctorReport,
|
|
BrowserFormField,
|
|
BrowserResetProfileResult,
|
|
BrowserRouteRegistrar,
|
|
BrowserServerState,
|
|
BrowserStatus,
|
|
BrowserTab,
|
|
BrowserTransport,
|
|
ProfileStatus,
|
|
SnapshotResult,
|
|
} from "./browser-runtime.js";
|
|
export {
|
|
callGatewayTool,
|
|
danger,
|
|
detectMime,
|
|
formatCliCommand,
|
|
formatDocsLink,
|
|
formatHelpExamples,
|
|
inheritOptionFromParent,
|
|
info,
|
|
imageResultFromFile,
|
|
jsonResult,
|
|
listNodes,
|
|
optionalStringEnum,
|
|
readStringParam,
|
|
resolveNodeIdFromList,
|
|
selectDefaultNodeFromList,
|
|
stringEnum,
|
|
theme,
|
|
} from "./sdk-setup-tools.js";
|
|
export {
|
|
getRuntimeConfig,
|
|
normalizePluginsConfig,
|
|
parseBooleanValue,
|
|
resolveEffectiveEnableState,
|
|
shortenHomePath,
|
|
} from "./sdk-config.js";
|
|
export {
|
|
addGatewayClientOptions,
|
|
callGatewayFromCli,
|
|
defaultRuntime,
|
|
ErrorCodes,
|
|
errorShape,
|
|
isNodeCommandAllowed,
|
|
respondUnavailableOnNodeInvokeError,
|
|
resolveNodeCommandAllowlist,
|
|
runCommandWithRuntime,
|
|
safeParseJson,
|
|
withTimeout,
|
|
} from "./sdk-node-runtime.js";
|
|
export { createSubsystemLogger, wrapExternalContent } from "./sdk-security-runtime.js";
|
|
export type { AnyAgentTool, NodeListNode } from "./sdk-setup-tools.js";
|
|
export type { OpenClawConfig } from "./sdk-config.js";
|
|
export type {
|
|
GatewayRequestHandlers,
|
|
GatewayRpcOpts,
|
|
NodeSession,
|
|
OpenClawPluginService,
|
|
} from "./sdk-node-runtime.js";
|