refactor(speech-core): remove redundant API back-edge

This commit is contained in:
Peter Steinberger
2026-07-13 22:11:48 -07:00
parent e278a34331
commit 25bc6df8cd
7 changed files with 16 additions and 79 deletions
@@ -1,2 +1,2 @@
5cc5b1f35c16b3b65871942b262467b1eee065652f4f90a24ddd65eb1096aa3c plugin-sdk-api-baseline.json
aaeb88388cf472b788ba2332890811d5bee64208a99596c975b2f11f7d40c04e plugin-sdk-api-baseline.jsonl
38de898c2b05a0895c4863373aa7128f073128cc6ace8bd5004203c3ee9735fd plugin-sdk-api-baseline.json
93ca4d93917be8be643293c2a11c58d2a7c138390c15f646991a223815ddec1e plugin-sdk-api-baseline.jsonl
-56
View File
@@ -1,56 +0,0 @@
// Public speech-core plugin SDK facade. Re-export stable provider/config helpers
// from the plugin-sdk alias so speech plugins do not import core internals.
export {
asBoolean,
asFiniteNumber,
asObject,
assertOkOrThrowProviderError,
canonicalizeSpeechProviderId,
createProviderHttpError,
extractProviderErrorDetail,
extractProviderRequestId,
formatProviderErrorPayload,
formatProviderHttpErrorMessage,
getSpeechProvider,
listSpeechProviders,
normalizeApplyTextNormalization,
normalizeLanguageCode,
normalizeSeed,
normalizeSpeechProviderId,
normalizeTtsAutoMode,
parseTtsDirectives,
readResponseTextLimited,
requireInRange,
resolveEffectiveTtsConfig,
scheduleCleanup,
summarizeText,
trimToUndefined,
truncateErrorDetail,
TTS_AUTO_MODES,
} from "openclaw/plugin-sdk/speech-core";
export type {
ResolvedTtsConfig,
ResolvedTtsModelOverrides,
SpeechDirectiveTokenParseContext,
SpeechDirectiveTokenParseResult,
SpeechListVoicesRequest,
SpeechModelOverridePolicy,
SpeechProviderConfig,
SpeechProviderConfiguredContext,
SpeechProviderOverrides,
SpeechProviderPlugin,
SpeechProviderPreparedSynthesis,
SpeechProviderPrepareSynthesisContext,
SpeechProviderResolveConfigContext,
SpeechProviderResolveTalkConfigContext,
SpeechProviderResolveTalkOverridesContext,
SpeechSynthesisRequest,
SpeechSynthesisStreamRequest,
SpeechSynthesisStreamResult,
SpeechSynthesisTarget,
SpeechTelephonySynthesisRequest,
SpeechVoiceOption,
TtsConfigResolutionContext,
TtsDirectiveOverrides,
TtsDirectiveParseResult,
} from "openclaw/plugin-sdk/speech-core";
-5
View File
@@ -12,11 +12,6 @@
"import": "./dist/runtime-api.mjs",
"default": "./dist/runtime-api.mjs"
},
"./api": {
"types": "./dist/api.d.mts",
"import": "./dist/api.mjs",
"default": "./dist/api.mjs"
},
"./runtime-api": {
"types": "./dist/runtime-api.d.mts",
"import": "./dist/runtime-api.mjs",
+2 -2
View File
@@ -83,8 +83,8 @@ vi.mock("openclaw/plugin-sdk/channel-targets", () => ({
},
}));
vi.mock("../api.js", async () => {
const actual = await vi.importActual<typeof import("../api.js")>("../api.js");
vi.mock("openclaw/plugin-sdk/speech-core", async () => {
const actual = await vi.importActual("openclaw/plugin-sdk/speech-core");
const mockProvider: SpeechProviderPlugin = {
id: "mock",
label: "Mock",
+12 -12
View File
@@ -27,17 +27,6 @@ import {
import { isVerbose, logVerbose } from "openclaw/plugin-sdk/runtime-env";
import { tempWorkspaceSync, resolvePreferredOpenClawTmpDir } from "openclaw/plugin-sdk/sandbox";
import { privateFileStoreSync } from "openclaw/plugin-sdk/security-runtime";
import {
normalizeLowercaseStringOrEmpty,
normalizeOptionalLowercaseString,
normalizeOptionalString,
} from "openclaw/plugin-sdk/string-coerce-runtime";
import { stripMarkdown } from "openclaw/plugin-sdk/text-chunking";
import {
resolveConfigDir,
resolveUserPath,
truncateUtf16Safe,
} from "openclaw/plugin-sdk/text-utility-runtime";
import {
canonicalizeSpeechProviderId,
getSpeechProvider,
@@ -57,7 +46,18 @@ import {
type TtsDirectiveOverrides,
type TtsDirectiveParseResult,
type TtsConfigResolutionContext,
} from "../api.js";
} from "openclaw/plugin-sdk/speech-core";
import {
normalizeLowercaseStringOrEmpty,
normalizeOptionalLowercaseString,
normalizeOptionalString,
} from "openclaw/plugin-sdk/string-coerce-runtime";
import { stripMarkdown } from "openclaw/plugin-sdk/text-chunking";
import {
resolveConfigDir,
resolveUserPath,
truncateUtf16Safe,
} from "openclaw/plugin-sdk/text-utility-runtime";
import { withSpeakerSelectionCompat } from "../speaker.js";
import {
resolvePrimaryVoiceProviderCandidate,
-1
View File
@@ -237,7 +237,6 @@
],
"@openclaw/web-content-core/*": ["./packages/web-content-core/src/*"],
"@openclaw/speech-core": ["./packages/speech-core/runtime-api.ts"],
"@openclaw/speech-core/api": ["./packages/speech-core/api.ts"],
"@openclaw/speech-core/runtime-api": ["./packages/speech-core/runtime-api.ts"],
"@openclaw/speech-core/speaker": ["./packages/speech-core/speaker.ts"],
"@openclaw/speech-core/voice-models": ["./packages/speech-core/voice-models.ts"],
-1
View File
@@ -394,7 +394,6 @@ function buildPackageDistEntriesFromExports(packageDir: string): Record<string,
function buildSpeechCoreDistEntries(): Record<string, string> {
return {
api: "packages/speech-core/api.ts",
"runtime-api": "packages/speech-core/runtime-api.ts",
speaker: "packages/speech-core/speaker.ts",
"voice-models": "packages/speech-core/voice-models.ts",