
























@@ -9,6 +9,89 @@ import {
991010const datePattern = /^\d{4}-\d{2}-\d{2}$/u;
111112+const knownDeprecatedSurfaceMarkers = [
13+{
14+code: "legacy-extension-api-import",
15+file: "src/extensionAPI.ts",
16+marker: "openclaw/extension-api is deprecated",
17+},
18+{
19+code: "memory-split-registration",
20+file: "src/plugins/memory-state.ts",
21+marker: "registerMemoryPromptSection",
22+},
23+{
24+code: "provider-static-capabilities-bag",
25+file: "src/plugins/types.ts",
26+marker: "Legacy static provider capability bag",
27+},
28+{
29+code: "provider-discovery-type-aliases",
30+file: "src/plugins/types.ts",
31+marker: "ProviderPluginDiscovery = ProviderPluginCatalog",
32+},
33+{
34+code: "provider-thinking-policy-hooks",
35+file: "src/plugins/types.ts",
36+marker: "Prefer `resolveThinkingProfile`",
37+},
38+{
39+code: "provider-external-oauth-profiles-hook",
40+file: "src/plugins/types.ts",
41+marker: "resolveExternalOAuthProfiles",
42+},
43+{
44+code: "agent-tool-result-harness-alias",
45+file: "src/plugins/agent-tool-result-middleware-types.ts",
46+marker: "AgentToolResultMiddlewareHarness",
47+},
48+{
49+code: "runtime-taskflow-legacy-alias",
50+file: "src/plugins/runtime/types-core.ts",
51+marker: "taskFlow",
52+},
53+{
54+code: "runtime-subagent-get-session-alias",
55+file: "src/plugins/runtime/types.ts",
56+marker: "getSessionMessages",
57+},
58+{
59+code: "runtime-stt-alias",
60+file: "src/plugins/runtime/types-core.ts",
61+marker: "stt",
62+},
63+{
64+code: "runtime-inbound-envelope-alias",
65+file: "src/plugins/runtime/types-channel.ts",
66+marker: "formatInboundEnvelope",
67+},
68+{
69+code: "channel-native-message-schema-helpers",
70+file: "src/plugin-sdk/channel-actions.ts",
71+marker: "createMessageToolButtonsSchema",
72+},
73+{
74+code: "channel-mention-gating-legacy-helpers",
75+file: "src/plugin-sdk/channel-inbound.ts",
76+marker: "resolveMentionGatingWithBypass",
77+},
78+{
79+code: "provider-web-search-core-wrapper",
80+file: "src/plugin-sdk/provider-web-search.ts",
81+marker: "createPluginBackedWebSearchProvider",
82+},
83+{
84+code: "approval-capability-approvals-alias",
85+file: "src/plugin-sdk/approval-delivery-helpers.ts",
86+marker: "approvals?: Partial<ChannelApprovalCapabilitySurfaces>",
87+},
88+{
89+code: "plugin-sdk-test-utils-alias",
90+file: "src/plugin-sdk/test-utils.ts",
91+marker: "Deprecated compatibility alias",
92+},
93+] as const;
94+1295function parseDate(date: string): Date {
1396return new Date(`${date}T00:00:00Z`);
1497}
@@ -58,4 +141,11 @@ describe("plugin compatibility registry", () => {
58141}
59142}
60143});
144+145+it("tracks known plugin-facing deprecated surfaces", () => {
146+for (const surface of knownDeprecatedSurfaceMarkers) {
147+expect(isPluginCompatCode(surface.code), surface.code).toBe(true);
148+expect(fs.readFileSync(surface.file, "utf8"), surface.file).toContain(surface.marker);
149+}
150+});
61151});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。