




























@@ -3,6 +3,7 @@ import {
33replaceManagedMarkdownBlock,
44withTrailingNewline,
55} from "openclaw/plugin-sdk/memory-host-markdown";
6+import { readFiniteNumberParam } from "openclaw/plugin-sdk/param-readers";
67import { root as fsRoot } from "openclaw/plugin-sdk/security-runtime";
78import { normalizeStringEntries, uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
89import { compileMemoryWikiVault, type CompileMemoryWikiResult } from "./compile.js";
@@ -62,6 +63,19 @@ type ApplyMemoryWikiMutationResult = {
6263compile: CompileMemoryWikiResult;
6364};
646566+function normalizeMutationConfidence(
67+params: Record<string, unknown>,
68+options: { allowNull: boolean },
69+): number | null | undefined {
70+if (options.allowNull && params.confidence === null) {
71+return null;
72+}
73+return readFiniteNumberParam(params, "confidence", {
74+min: 0,
75+max: 1,
76+});
77+}
78+6579export function normalizeMemoryWikiMutationInput(rawParams: unknown): ApplyMemoryWikiMutation {
6680const params = rawParams as {
6781op: ApplyMemoryWikiMutation["op"];
@@ -85,6 +99,9 @@ export function normalizeMemoryWikiMutationInput(rawParams: unknown): ApplyMemor
8599if (!params.sourceIds || params.sourceIds.length === 0) {
86100throw new Error("wiki mutation requires at least one sourceId for create_synthesis.");
87101}
102+const confidence = normalizeMutationConfidence(params as Record<string, unknown>, {
103+allowNull: false,
104+});
88105return {
89106op: "create_synthesis",
90107title: params.title,
@@ -93,21 +110,24 @@ export function normalizeMemoryWikiMutationInput(rawParams: unknown): ApplyMemor
93110 ...(Array.isArray(params.claims) ? { claims: normalizeWikiClaims(params.claims) } : {}),
94111 ...(params.contradictions ? { contradictions: params.contradictions } : {}),
95112 ...(params.questions ? { questions: params.questions } : {}),
96- ...(typeof params.confidence === "number" ? { confidence: params.confidence } : {}),
113+ ...(confidence !== undefined ? { confidence } : {}),
97114 ...(params.status ? { status: params.status } : {}),
98115};
99116}
100117if (!params.lookup?.trim()) {
101118throw new Error("wiki mutation requires lookup for update_metadata.");
102119}
120+const confidence = normalizeMutationConfidence(params as Record<string, unknown>, {
121+allowNull: true,
122+});
103123return {
104124op: "update_metadata",
105125lookup: params.lookup,
106126 ...(params.sourceIds ? { sourceIds: params.sourceIds } : {}),
107127 ...(Array.isArray(params.claims) ? { claims: normalizeWikiClaims(params.claims) } : {}),
108128 ...(params.contradictions ? { contradictions: params.contradictions } : {}),
109129 ...(params.questions ? { questions: params.questions } : {}),
110- ...(params.confidence !== undefined ? { confidence: params.confidence } : {}),
130+ ...(confidence !== undefined ? { confidence } : {}),
111131 ...(params.status ? { status: params.status } : {}),
112132};
113133}
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。