























11import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
22import { resolveDefaultAgentId } from "openclaw/plugin-sdk/memory-host-core";
3+import { readPositiveIntegerParam } from "openclaw/plugin-sdk/param-readers";
34import type { OpenClawConfig, OpenClawPluginApi } from "../api.js";
45import { applyMemoryWikiMutation, normalizeMemoryWikiMutationInput } from "./apply.js";
56import { compileMemoryWikiVault } from "./compile.js";
@@ -55,20 +56,6 @@ function readStringParam(
5556return undefined;
5657}
575858-function readNumberParam(params: Record<string, unknown>, key: string): number | undefined {
59-const value = params[key];
60-if (typeof value === "number" && Number.isFinite(value)) {
61-return value;
62-}
63-if (typeof value === "string" && value.trim()) {
64-const parsed = Number(value);
65-if (Number.isFinite(parsed)) {
66-return parsed;
67-}
68-}
69-return undefined;
70-}
71-7259function readEnumParam<T extends string>(
7360params: Record<string, unknown>,
7461key: string,
@@ -135,7 +122,7 @@ export function registerMemoryWikiGatewayMethods(params: {
135122"wiki.importRuns",
136123async ({ params: requestParams, respond }) => {
137124try {
138-const limit = readNumberParam(requestParams, "limit");
125+const limit = readPositiveIntegerParam(requestParams, "limit");
139126respond(true, await listMemoryWikiImportRuns(config, limit !== undefined ? { limit } : {}));
140127} catch (error) {
141128respondError(respond, error);
@@ -287,7 +274,7 @@ export function registerMemoryWikiGatewayMethods(params: {
287274try {
288275await syncImportedSourcesIfNeeded(config, appConfig);
289276const query = readStringParam(requestParams, "query", { required: true });
290-const maxResults = readNumberParam(requestParams, "maxResults");
277+const maxResults = readPositiveIntegerParam(requestParams, "maxResults");
291278const searchBackend = readEnumParam(requestParams, "backend", WIKI_SEARCH_BACKENDS);
292279const searchCorpus = readEnumParam(requestParams, "corpus", WIKI_SEARCH_CORPORA);
293280const mode = readEnumParam(requestParams, "mode", WIKI_SEARCH_MODES);
@@ -337,8 +324,8 @@ export function registerMemoryWikiGatewayMethods(params: {
337324try {
338325await syncImportedSourcesIfNeeded(config, appConfig);
339326const lookup = readStringParam(requestParams, "lookup", { required: true });
340-const fromLine = readNumberParam(requestParams, "fromLine");
341-const lineCount = readNumberParam(requestParams, "lineCount");
327+const fromLine = readPositiveIntegerParam(requestParams, "fromLine");
328+const lineCount = readPositiveIntegerParam(requestParams, "lineCount");
342329const searchBackend = readEnumParam(requestParams, "backend", WIKI_SEARCH_BACKENDS);
343330const searchCorpus = readEnumParam(requestParams, "corpus", WIKI_SEARCH_CORPORA);
344331const agentId = resolveGatewayAgentId(requestParams, appConfig);
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。