fix(build): restore plugin-sdk and line compat after refactor

This commit is contained in:
Vincent Koc
2026-03-22 19:37:03 -07:00
parent c0933e2fc8
commit 3ad652fa9e
16 changed files with 96 additions and 63 deletions

View File

@@ -1,9 +1,19 @@
import { Type } from "@sinclair/typebox";
import { jsonResult, readNumberParam, readStringParam } from "openclaw/plugin-sdk/agent-runtime";
import { optionalStringEnum } from "openclaw/plugin-sdk/core";
import type { OpenClawPluginApi } from "openclaw/plugin-sdk/plugin-runtime";
import { runFirecrawlScrape } from "./firecrawl-client.js";
function optionalStringEnum<const T extends readonly string[]>(
values: T,
options?: { description?: string },
) {
return Type.Optional(
Type.Union(values.map((value) => Type.Literal(value)) as never, {
description: options?.description,
}),
);
}
const FirecrawlScrapeToolSchema = Type.Object(
{
url: Type.String({ description: "HTTP or HTTPS URL to scrape via Firecrawl." }),

View File

@@ -17,6 +17,7 @@ export type {
LineChannelData,
LineConfig,
ListItem,
LineProbeResult,
ResolvedLineAccount,
} from "./runtime-api.js";
export {

View File

@@ -16,11 +16,15 @@ export {
buildComputedAccountStatusSnapshot,
buildTokenChannelStatusSummary,
} from "openclaw/plugin-sdk/status-helpers";
export { DEFAULT_ACCOUNT_ID, formatDocsLink, setSetupChannelEnabled, splitSetupEntries } from "openclaw/plugin-sdk/setup";
export {
DEFAULT_ACCOUNT_ID,
formatDocsLink,
setSetupChannelEnabled,
splitSetupEntries,
} from "openclaw/plugin-sdk/setup";
export * from "../../src/plugin-sdk/line-runtime.js";
export * from "./src/accounts.js";
export * from "./src/actions.js";
export * from "./src/bot-access.js";
export * from "./src/channel-access-token.js";
export * from "./src/config-schema.js";
@@ -29,11 +33,42 @@ export * from "./src/flex-templates.js";
export * from "./src/group-keys.js";
export * from "./src/markdown-to-line.js";
export * from "./src/probe.js";
export * from "./src/rich-menu.js";
export * from "./src/send.js";
export * from "./src/signature.js";
export * from "./src/template-messages.js";
export type { LineChannelData, LineConfig, ResolvedLineAccount } from "./src/types.js";
export { datetimePickerAction, messageAction, postbackAction, uriAction } from "./src/rich-menu.js";
export {
createDefaultMenuConfig,
createGridLayout,
type RichMenuArea,
type RichMenuRequest,
type RichMenuResponse,
} from "./src/rich-menu.js";
export {
createButtonMenu,
createButtonTemplate,
createCarouselColumn,
createConfirmTemplate,
createImageCarousel,
createImageCarouselColumn,
createLinkMenu,
createProductCarousel,
createTemplateCarousel,
createYesNoConfirm,
buildTemplateMessageFromPayload,
type ButtonsTemplate,
type CarouselColumn,
type CarouselTemplate,
type ConfirmTemplate,
type ImageCarouselColumn,
type ImageCarouselTemplate,
type TemplateMessage,
} from "./src/template-messages.js";
export type {
LineChannelData,
LineConfig,
LineProbeResult,
ResolvedLineAccount,
} from "./src/types.js";
export * from "./src/webhook-node.js";
export * from "./src/webhook.js";
export * from "./src/webhook-utils.js";

View File

@@ -16,6 +16,16 @@ vi.mock("@line/bot-sdk", () => ({
}));
vi.mock("openclaw/plugin-sdk/runtime-env", () => ({
createSubsystemLogger: () => {
const logger = {
debug: () => {},
info: () => {},
warn: () => {},
error: () => {},
child: () => logger,
};
return logger;
},
logVerbose: () => {},
}));

View File

@@ -1,5 +1,5 @@
import { describe, expect, it } from "vitest";
import { createMockIncomingRequest } from "../../test/helpers/mock-incoming-request.js";
import { createMockIncomingRequest } from "../../../test/helpers/mock-incoming-request.js";
import { readLineWebhookRequestBody } from "./webhook-node.js";
describe("readLineWebhookRequestBody", () => {

View File

@@ -1,4 +1,5 @@
import type { WebhookRequestBody } from "@line/bot-sdk";
export { validateLineSignature } from "./signature.js";
export function parseLineWebhookBody(rawBody: string): WebhookRequestBody | null {
try {

View File

@@ -1,9 +1,19 @@
import { Type } from "@sinclair/typebox";
import { jsonResult, readNumberParam, readStringParam } from "openclaw/plugin-sdk/agent-runtime";
import { optionalStringEnum } from "openclaw/plugin-sdk/core";
import type { OpenClawPluginApi } from "openclaw/plugin-sdk/plugin-runtime";
import { runTavilyExtract } from "./tavily-client.js";
function optionalStringEnum<const T extends readonly string[]>(
values: T,
options?: { description?: string },
) {
return Type.Optional(
Type.Union(values.map((value) => Type.Literal(value)) as never, {
description: options?.description,
}),
);
}
const TavilyExtractToolSchema = Type.Object(
{
urls: Type.Array(Type.String(), {

View File

@@ -1,9 +1,19 @@
import { Type } from "@sinclair/typebox";
import { jsonResult, readNumberParam, readStringParam } from "openclaw/plugin-sdk/agent-runtime";
import { optionalStringEnum } from "openclaw/plugin-sdk/core";
import type { OpenClawPluginApi } from "openclaw/plugin-sdk/plugin-runtime";
import { runTavilySearch } from "./tavily-client.js";
function optionalStringEnum<const T extends readonly string[]>(
values: T,
options?: { description?: string },
) {
return Type.Optional(
Type.Union(values.map((value) => Type.Literal(value)) as never, {
description: options?.description,
}),
);
}
const TavilySearchToolSchema = Type.Object(
{
query: Type.String({ description: "Search query string." }),

View File

@@ -6,9 +6,6 @@ const rootEntries = [
"src/infra/warning-filter.ts!",
"extensions/telegram/src/audit.ts!",
"extensions/telegram/src/token.ts!",
"src/line/accounts.ts!",
"src/line/send.ts!",
"src/line/template-messages.ts!",
"src/hooks/bundled/*/handler.ts!",
"src/hooks/llm-slug-generator.ts!",
"src/plugin-sdk/*.ts!",

View File

@@ -505,6 +505,10 @@
"types": "./dist/plugin-sdk/state-paths.d.ts",
"default": "./dist/plugin-sdk/state-paths.js"
},
"./plugin-sdk/temp-path": {
"types": "./dist/plugin-sdk/temp-path.d.ts",
"default": "./dist/plugin-sdk/temp-path.js"
},
"./plugin-sdk/telegram": {
"types": "./dist/plugin-sdk/telegram.d.ts",
"default": "./dist/plugin-sdk/telegram.js"

View File

@@ -116,6 +116,7 @@
"status-helpers",
"speech",
"state-paths",
"temp-path",
"telegram",
"telegram-core",
"thread-ownership",

View File

@@ -13,4 +13,4 @@ export type {
export { resolveApiKeyForProvider } from "../agents/model-auth.js";
export { normalizeGoogleModelId } from "../agents/model-id-normalization.js";
export { parseGeminiAuth } from "../infra/gemini-auth.js";
export { OPENAI_DEFAULT_IMAGE_MODEL } from "../providers/openai-defaults.js";
export { OPENAI_DEFAULT_IMAGE_MODEL } from "../plugins/provider-model-defaults.js";

View File

@@ -17,6 +17,7 @@ export * from "../shared/text/auto-linked-file-ref.js";
export * from "../shared/text/code-regions.js";
export * from "../shared/text/reasoning-tags.js";
export * from "../shared/text/strip-markdown.js";
export * from "../shared/scoped-expiring-id-cache.js";
export * from "../terminal/safe-text.js";
export * from "../utils.js";
export * from "../utils/chunk-items.js";

View File

@@ -468,28 +468,6 @@ export const GENERATED_BUNDLED_PLUGIN_METADATA = [
],
},
},
{
dirName: "deepgram",
idHint: "deepgram-media-understanding",
source: {
source: "./index.ts",
built: "index.js",
},
packageName: "@openclaw/deepgram-media-understanding",
packageVersion: "2026.3.14",
packageDescription: "OpenClaw Deepgram media-understanding plugin",
packageManifest: {
extensions: ["./index.ts"],
},
manifest: {
id: "deepgram",
configSchema: {
type: "object",
additionalProperties: false,
properties: {},
},
},
},
{
dirName: "diagnostics-otel",
idHint: "diagnostics-otel",
@@ -1071,28 +1049,6 @@ export const GENERATED_BUNDLED_PLUGIN_METADATA = [
channels: ["googlechat"],
},
},
{
dirName: "groq",
idHint: "groq-media-understanding",
source: {
source: "./index.ts",
built: "index.js",
},
packageName: "@openclaw/groq-media-understanding",
packageVersion: "2026.3.14",
packageDescription: "OpenClaw Groq media-understanding plugin",
packageManifest: {
extensions: ["./index.ts"],
},
manifest: {
id: "groq",
configSchema: {
type: "object",
additionalProperties: false,
properties: {},
},
},
},
{
dirName: "huggingface",
idHint: "huggingface",

View File

@@ -1,6 +1,6 @@
export { monitorLineProvider } from "../../line/monitor.js";
export { probeLineBot } from "../../line/probe.js";
export {
monitorLineProvider,
probeLineBot,
pushFlexMessage,
pushLocationMessage,
pushMessageLine,
@@ -8,4 +8,4 @@ export {
pushTemplateMessage,
pushTextMessageWithQuickReplies,
sendMessageLine,
} from "../../line/send.js";
} from "../../../extensions/line/runtime-api.js";

View File

@@ -173,9 +173,6 @@ function buildCoreDistEntries(): Record<string, string> {
"infra/warning-filter": "src/infra/warning-filter.ts",
"telegram/audit": "extensions/telegram/src/audit.ts",
"telegram/token": "extensions/telegram/src/token.ts",
"line/accounts": "src/line/accounts.ts",
"line/send": "src/line/send.ts",
"line/template-messages": "src/line/template-messages.ts",
"plugins/build-smoke-entry": "src/plugins/build-smoke-entry.ts",
"plugins/runtime/index": "src/plugins/runtime/index.ts",
"llm-slug-generator": "src/hooks/llm-slug-generator.ts",