mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-16 23:52:40 -06:00
8cb53c7b55
* perf(doctor): keep bundled doctor contract closures dependency-light Doctor contract enumeration cold-loads each plugin's doctor-contract-api closure via jiti, so a static value import of openclaw/plugin-sdk/runtime-doctor pulled the state-db/kysely graph (~4.3s per closure) into listPluginDoctorLegacyConfigRules / listPluginDoctorStateMigrationEntries. - migrate all light doctor-contract closures (66 files) to the dependency-light openclaw/plugin-sdk/runtime-doctor-migrations subpath - voice-call: load detect/repairOpenClawStateDatabaseSchema* lazily inside the migration bodies; keep only a type-only static runtime-doctor import - matrix: split pure credential record shapes/normalizers into credentials-state.ts so the doctor closure no longer imports the sync plugin-state store through credentials-read - guard: doctor-contract-closure-guard.test.ts now forbids static value imports of runtime-doctor in closures alongside agent-runtime * fix(matrix): keep credential revocation record type module-local Knip production scan flags the export as consumer-less; the type is only referenced by the exported union and revocation guard signature.
30 lines
1.2 KiB
TypeScript
30 lines
1.2 KiB
TypeScript
// Irc API module exposes the plugin doctor contract.
|
|
import type {
|
|
ChannelDoctorConfigMutation,
|
|
ChannelDoctorLegacyConfigRule,
|
|
} from "openclaw/plugin-sdk/channel-contract";
|
|
import type { OpenClawConfig } from "openclaw/plugin-sdk/config-contracts";
|
|
import { defineChannelAliasMigration } from "openclaw/plugin-sdk/runtime-doctor-migrations";
|
|
|
|
// IRC's nested streaming schema is delivery-only ({chunkMode, block}); it has
|
|
// no preview mode, so only the delivery flat aliases are legal legacy input.
|
|
// Account merge replaces the root streaming object wholesale
|
|
// (resolveMergedAccountConfig without a streaming deep-merge), so migration
|
|
// seeds materialized account objects with the inherited root settings.
|
|
const streamingAliasMigration = defineChannelAliasMigration({
|
|
channelId: "irc",
|
|
streaming: { defaultMode: "partial", deliveryOnly: true },
|
|
accountStreamingReplacesRoot: true,
|
|
});
|
|
|
|
export const legacyConfigRules: ChannelDoctorLegacyConfigRule[] =
|
|
streamingAliasMigration.legacyConfigRules;
|
|
|
|
export function normalizeCompatibilityConfig({
|
|
cfg,
|
|
}: {
|
|
cfg: OpenClawConfig;
|
|
}): ChannelDoctorConfigMutation {
|
|
return streamingAliasMigration.normalizeChannelConfig({ cfg });
|
|
}
|