mirror of
https://github.com/hansjone/oclaw.git
synced 2026-10-13 01:10:45 +08:00
同时收敛启动与运维脚本默认行为(含 wiki worker)、更新 Admin 可观测性与相关测试,降低首轮时延并提高运行稳定性。 Made-with: Cursor
46 lines
1.7 KiB
TypeScript
46 lines
1.7 KiB
TypeScript
import type { AgentToolResult } from "@mariozechner/pi-agent-core";
|
|
import type { ChannelMessageActionAdapter } from "openclaw/plugin-sdk/channel-contract";
|
|
import type { SlackActionContext } from "./action-runtime.js";
|
|
import { handleSlackMessageAction } from "./message-action-dispatch.js";
|
|
import { extractSlackToolSend } from "./message-actions.js";
|
|
import { describeSlackMessageTool } from "./message-tool-api.js";
|
|
import { resolveSlackChannelId } from "./targets.js";
|
|
|
|
type SlackActionInvoke = (
|
|
action: Record<string, unknown>,
|
|
cfg: unknown,
|
|
toolContext: unknown,
|
|
) => Promise<AgentToolResult<unknown>>;
|
|
|
|
let slackActionRuntimePromise: Promise<typeof import("./action-runtime.runtime.js")> | undefined;
|
|
|
|
async function loadSlackActionRuntime() {
|
|
slackActionRuntimePromise ??= import("./action-runtime.runtime.js");
|
|
return await slackActionRuntimePromise;
|
|
}
|
|
|
|
export function createSlackActions(
|
|
providerId: string,
|
|
options?: { invoke?: SlackActionInvoke },
|
|
): ChannelMessageActionAdapter {
|
|
return {
|
|
describeMessageTool: describeSlackMessageTool,
|
|
extractToolSend: ({ args }) => extractSlackToolSend(args),
|
|
handleAction: async (ctx) => {
|
|
return await handleSlackMessageAction({
|
|
providerId,
|
|
ctx,
|
|
normalizeChannelId: resolveSlackChannelId,
|
|
includeReadThreadId: true,
|
|
invoke: async (action, cfg, toolContext) =>
|
|
await (options?.invoke
|
|
? options.invoke(action, cfg, toolContext)
|
|
: (await loadSlackActionRuntime()).handleSlackAction(action, cfg, {
|
|
...(toolContext as SlackActionContext | undefined),
|
|
mediaLocalRoots: ctx.mediaLocalRoots,
|
|
mediaReadFile: ctx.mediaReadFile,
|
|
})),
|
|
});
|
|
},
|
|
};
|
|
}
|