mirror of
http://192.168.0.88:13333/lywsvip/openclaw-zero-token.git
synced 2026-05-08 08:08:33 +08:00
Major upgrade from e26988a38 to upstream v2026.3.28 (f9b107928).
Key changes:
- Upstream src/, ui/, extensions/ (89 bundled extensions)
- Zero-token web providers preserved in src/zero-token/
- AskOnce plugin restored and registered as CLI command
- Added missing packages: @anthropic-ai/vertex-sdk, @modelcontextprotocol/sdk
- Fixed tsconfig rootDir, skipLibCheck for plugin-sdk DTS build
- Added askonce to bundled plugin metadata and package.json exports
- Fixed AskOnce CLI command registration (missing commands metadata)
- Restored AskOnce adapter imports (correct 5-level relative paths)
- Removed stale migration artifacts from root directory
54 lines
1.6 KiB
TypeScript
54 lines
1.6 KiB
TypeScript
import path from "node:path";
|
|
import { shortenHomeInString } from "../utils.js";
|
|
import type { PluginRecord } from "./registry.js";
|
|
import type { PluginSourceRoots } from "./roots.js";
|
|
export { resolvePluginSourceRoots } from "./roots.js";
|
|
export type { PluginSourceRoots } from "./roots.js";
|
|
|
|
function tryRelative(root: string, filePath: string): string | null {
|
|
const rel = path.relative(root, filePath);
|
|
if (!rel || rel === ".") {
|
|
return null;
|
|
}
|
|
if (rel === "..") {
|
|
return null;
|
|
}
|
|
if (rel.startsWith(`..${path.sep}`) || rel.startsWith("../") || rel.startsWith("..\\")) {
|
|
return null;
|
|
}
|
|
if (path.isAbsolute(rel)) {
|
|
return null;
|
|
}
|
|
// Normalize to forward slashes for display (path.relative uses backslashes on Windows)
|
|
return rel.replaceAll("\\", "/");
|
|
}
|
|
|
|
export function formatPluginSourceForTable(
|
|
plugin: Pick<PluginRecord, "source" | "origin">,
|
|
roots: PluginSourceRoots,
|
|
): { value: string; rootKey?: keyof PluginSourceRoots } {
|
|
const raw = plugin.source;
|
|
|
|
if (plugin.origin === "bundled" && roots.stock) {
|
|
const rel = tryRelative(roots.stock, raw);
|
|
if (rel) {
|
|
return { value: `stock:${rel}`, rootKey: "stock" };
|
|
}
|
|
}
|
|
if (plugin.origin === "workspace" && roots.workspace) {
|
|
const rel = tryRelative(roots.workspace, raw);
|
|
if (rel) {
|
|
return { value: `workspace:${rel}`, rootKey: "workspace" };
|
|
}
|
|
}
|
|
if (plugin.origin === "global" && roots.global) {
|
|
const rel = tryRelative(roots.global, raw);
|
|
if (rel) {
|
|
return { value: `global:${rel}`, rootKey: "global" };
|
|
}
|
|
}
|
|
|
|
// Keep this stable/pasteable; only ~-shorten.
|
|
return { value: shortenHomeInString(raw) };
|
|
}
|