mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-12 21:53:00 -06:00
da4a656cdb
* perf(plugins): declare doctor contract surfaces * perf(doctor): slim migration import closures * perf(plugins): narrow doctor declaration record surface and wire owner-test lane Registry records carry only the doctorContract declaration instead of the whole parsed manifest, and check:changed now selects the src/plugins-owned declaration honesty and closure-guard tests for extension module/manifest changes so cross-lane drift cannot pass PR classification. * fix(doctor): keep control-plane dist imports require-safe Keep doctor and channel control-plane chunks off exec-class dependencies, and enforce native require(esm) loading during postbuild. * chore(plugin-sdk): regenerate API baseline * chore(plugin-sdk): sync export ordering * fix(plugins): satisfy doctor contract CI boundaries * perf(doctor): make qqbot doctor closure dependency-light qqbot was the last plugin above 5s in doctor state-migration enumeration (~8s under tsx/jiti). The cost was not the state-key builder (already a leaf): its doctor closure value-imported the runtime-doctor SDK barrel, whose plugin-state-store/state-db re-exports pull kysely (~330 modules), plus security-runtime for one fileExists (~200 modules), all resolved per-module by jiti during enumeration. Split the migration-define helpers and light re-exports into a new private-local plugin-sdk/runtime-doctor-migrations subpath; runtime-doctor re-exports it so its public surface is byte-identical (API baseline hash unchanged). qqbot's doctor-contract and state-migrations now import only the light subpath, swapping fileExists for the equivalent async legacyStateFileExists already in the closure. qqbot enumeration: ~8.0s/531 modules -> ~0.25s/18 modules. * chore(plugin-sdk): drop private-local subpath from API baseline runtime-doctor-migrations is private-local-only; the baseline tracks public modules, and the earlier line was generated before the classification. * fix(plugins): register runtime-doctor-migrations boundary paths The private-local subpath list feeds the extension package boundary map; the shared paths config and xai's derived overrides must carry the same entry or the boundary contract test fails.
114 lines
2.1 KiB
TypeScript
114 lines
2.1 KiB
TypeScript
// Plugin Sdk Doc Metadata script supports OpenClaw repository automation.
|
|
export type PluginSdkDocCategory =
|
|
| "channel"
|
|
| "core"
|
|
| "legacy"
|
|
| "provider"
|
|
| "runtime"
|
|
| "utilities";
|
|
|
|
type PluginSdkDocMetadata = {
|
|
category: PluginSdkDocCategory;
|
|
};
|
|
|
|
export const pluginSdkDocMetadata = {
|
|
core: {
|
|
category: "core",
|
|
},
|
|
health: {
|
|
category: "core",
|
|
},
|
|
"approval-runtime": {
|
|
category: "runtime",
|
|
},
|
|
"approval-auth-runtime": {
|
|
category: "runtime",
|
|
},
|
|
"approval-client-runtime": {
|
|
category: "runtime",
|
|
},
|
|
"approval-delivery-runtime": {
|
|
category: "runtime",
|
|
},
|
|
"approval-gateway-runtime": {
|
|
category: "runtime",
|
|
},
|
|
"approval-native-runtime": {
|
|
category: "runtime",
|
|
},
|
|
"approval-reply-runtime": {
|
|
category: "runtime",
|
|
},
|
|
"plugin-entry": {
|
|
category: "core",
|
|
},
|
|
"channel-actions": {
|
|
category: "channel",
|
|
},
|
|
"channel-config-schema": {
|
|
category: "channel",
|
|
},
|
|
"channel-contract": {
|
|
category: "channel",
|
|
},
|
|
"channel-pairing": {
|
|
category: "channel",
|
|
},
|
|
"channel-ingress-runtime": {
|
|
category: "channel",
|
|
},
|
|
"channel-reply-pipeline": {
|
|
category: "channel",
|
|
},
|
|
"channel-setup": {
|
|
category: "channel",
|
|
},
|
|
"channel-dm-policy": {
|
|
category: "channel",
|
|
},
|
|
"command-auth": {
|
|
category: "channel",
|
|
},
|
|
"command-status": {
|
|
category: "channel",
|
|
},
|
|
"secret-input": {
|
|
category: "channel",
|
|
},
|
|
"webhook-ingress": {
|
|
category: "channel",
|
|
},
|
|
"widget-html": {
|
|
category: "utilities",
|
|
},
|
|
"runtime-store": {
|
|
category: "runtime",
|
|
},
|
|
"session-store-runtime": {
|
|
category: "runtime",
|
|
},
|
|
"agent-scope-runtime": {
|
|
category: "runtime",
|
|
},
|
|
"agent-runtime": {
|
|
category: "runtime",
|
|
},
|
|
"agent-harness-runtime": {
|
|
category: "runtime",
|
|
},
|
|
"speech-settings": {
|
|
category: "provider",
|
|
},
|
|
"allow-from": {
|
|
category: "utilities",
|
|
},
|
|
"reply-payload": {
|
|
category: "utilities",
|
|
},
|
|
"media-local-roots": {
|
|
category: "utilities",
|
|
},
|
|
} as const satisfies Record<string, PluginSdkDocMetadata>;
|
|
|
|
export type PluginSdkDocEntrypoint = keyof typeof pluginSdkDocMetadata;
|