From fa34f3a9d5475e6c97ff58d603b5d0426145c3e4 Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Sat, 4 Apr 2026 23:13:54 +0900 Subject: [PATCH] fix(ci): restore provider runtime seams --- extensions/amazon-bedrock/register.runtime.ts | 21 +++++++++++-------- package.json | 4 ++++ scripts/lib/plugin-sdk-entrypoints.json | 1 + .../contracts/plugin-sdk-root-alias.test.ts | 1 - 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/extensions/amazon-bedrock/register.runtime.ts b/extensions/amazon-bedrock/register.runtime.ts index 6c26796310e..64d9e9d0ad3 100644 --- a/extensions/amazon-bedrock/register.runtime.ts +++ b/extensions/amazon-bedrock/register.runtime.ts @@ -1,16 +1,10 @@ import type { StreamFn } from "@mariozechner/pi-agent-core"; import type { OpenClawPluginApi } from "openclaw/plugin-sdk/plugin-entry"; -import { buildProviderReplayFamilyHooks } from "openclaw/plugin-sdk/provider-model-shared"; import { createBedrockNoCacheWrapper, isAnthropicBedrockModel, streamWithPayloadPatch, } from "openclaw/plugin-sdk/provider-stream"; -import { - mergeImplicitBedrockProvider, - resolveBedrockConfigApiKey, - resolveImplicitBedrockProvider, -} from "./api.js"; type GuardrailConfig = { guardrailIdentifier: string; @@ -49,14 +43,23 @@ export async function registerAmazonBedrockPlugin(api: OpenClawPluginApi): Promi // initialization during test bootstrap cannot trip TDZ reads. const providerId = "amazon-bedrock"; const claude46ModelRe = /claude-(?:opus|sonnet)-4(?:\.|-)6(?:$|[-.])/i; - const anthropicByModelReplayHooks = buildProviderReplayFamilyHooks({ - family: "anthropic-by-model", - }); const bedrockContextOverflowPatterns = [ /ValidationException.*(?:input is too long|max input token|input token.*exceed)/i, /ValidationException.*(?:exceeds? the (?:maximum|max) (?:number of )?(?:input )?tokens)/i, /ModelStreamErrorException.*(?:Input is too long|too many input tokens)/i, ] as const; + // Defer provider-owned helper loading until registration so test/plugin-loader + // cycles cannot re-enter this module before its constants initialize. + const [ + { buildProviderReplayFamilyHooks }, + { mergeImplicitBedrockProvider, resolveBedrockConfigApiKey, resolveImplicitBedrockProvider }, + ] = await Promise.all([ + import("openclaw/plugin-sdk/provider-model-shared"), + import("./api.js"), + ]); + const anthropicByModelReplayHooks = buildProviderReplayFamilyHooks({ + family: "anthropic-by-model", + }); const guardrail = (api.pluginConfig as Record | undefined)?.guardrail as | GuardrailConfig | undefined; diff --git a/package.json b/package.json index 2407558715e..c3269968b82 100644 --- a/package.json +++ b/package.json @@ -119,6 +119,10 @@ "types": "./dist/plugin-sdk/config-runtime.d.ts", "default": "./dist/plugin-sdk/config-runtime.js" }, + "./plugin-sdk/telegram-command-config": { + "types": "./dist/plugin-sdk/telegram-command-config.d.ts", + "default": "./dist/plugin-sdk/telegram-command-config.js" + }, "./plugin-sdk/config-schema": { "types": "./dist/plugin-sdk/config-schema.d.ts", "default": "./dist/plugin-sdk/config-schema.js" diff --git a/scripts/lib/plugin-sdk-entrypoints.json b/scripts/lib/plugin-sdk-entrypoints.json index bdbe6189ccd..d83eacc6dff 100644 --- a/scripts/lib/plugin-sdk-entrypoints.json +++ b/scripts/lib/plugin-sdk-entrypoints.json @@ -19,6 +19,7 @@ "approval-reply-runtime", "approval-runtime", "config-runtime", + "telegram-command-config", "config-schema", "reply-runtime", "reply-dispatch-runtime", diff --git a/src/plugins/contracts/plugin-sdk-root-alias.test.ts b/src/plugins/contracts/plugin-sdk-root-alias.test.ts index 5a78e1a6663..5b547074f1a 100644 --- a/src/plugins/contracts/plugin-sdk-root-alias.test.ts +++ b/src/plugins/contracts/plugin-sdk-root-alias.test.ts @@ -336,7 +336,6 @@ describe("plugin-sdk root alias", () => { expect(packageJson.exports?.["./plugin-sdk/slack-targets"]).toBeUndefined(); expect(packageJson.exports?.["./plugin-sdk/telegram-account"]).toBeUndefined(); expect(packageJson.exports?.["./plugin-sdk/telegram-allow-from"]).toBeUndefined(); - expect(packageJson.exports?.["./plugin-sdk/telegram-command-config"]).toBeUndefined(); expect(packageJson.exports?.["./plugin-sdk/telegram-surface"]).toBeUndefined(); expect(packageJson.exports?.["./plugin-sdk/whatsapp-auth-presence"]).toBeUndefined(); expect(packageJson.exports?.["./plugin-sdk/whatsapp-core"]).toBeUndefined();