feat(portrait-clearance): 肖像排查 - 增加画布插件与本机检测链路

This commit is contained in:
QAyong
2026-08-26 15:23:01 +08:00
committed by ddCat
parent 86fc3fda2f
commit 9bc5512140
54 changed files with 6832 additions and 60 deletions

View File

@@ -12,9 +12,10 @@ import {
type LocalRuntimeConfig,
} from "./config.js";
import { createLocalRuntimeApp, type LocalRuntimeModule } from "./local-runtime.js";
import { LocalRuntimeSessionManager } from "./local-runtime-session.js";
import { LOCAL_RUNTIME_DEFAULT_SCOPES, LocalRuntimeSessionManager } from "./local-runtime-session.js";
import { createCanvasAgentHttpModule } from "./modules/canvas-agent-http.js";
import { createDreaminaHttpModule } from "./modules/dreamina-http.js";
import { createPortraitClearanceHttpModule } from "./modules/portrait-clearance-http.js";
export type StartLocalRuntimeOptions = {
config?: LocalRuntimeConfig;
@@ -35,6 +36,7 @@ export function createDefaultLocalRuntimeModules(config: LocalRuntimeConfig): Lo
...Object.values(config.canvases ?? {}).map((canvas) => canvas.workspacePath),
],
}),
createPortraitClearanceHttpModule({ ownerId: ensureRuntimeOwnerId(config), configDir: CONFIG_DIR }),
];
}
@@ -54,10 +56,15 @@ export function startLocalRuntime(options: StartLocalRuntimeOptions = {}) {
: `http://127.0.0.1:${requestedPort}`;
const authority = requestedPort === 0 ? "127.0.0.1:0" : `127.0.0.1:${requestedPort}`;
const modules = [...(options.modules ?? createDefaultLocalRuntimeModules(config))];
const scopes = [...new Set([
...LOCAL_RUNTIME_DEFAULT_SCOPES,
...modules.flatMap((module) => module.descriptor.scopes),
])];
const sessions = new LocalRuntimeSessionManager({
endpoint,
trustedOrigins: config.trustedWebOrigins,
registrations: config.browserRegistrations,
scopes,
persistRegistrations: () => persistConfig(config),
onSessionRevoked: (sessionId) => {
for (const module of modules) module.onRuntimeSessionRevoked?.(sessionId);