

























@@ -82,6 +82,22 @@ function parseMemoryCliNumberOption(value: string, flag: string): number {
8282return parsed;
8383}
848485+function parseMemoryCliPositiveIntegerOption(value: string, flag: string): number {
86+const parsed = Number(value);
87+if (!Number.isSafeInteger(parsed) || parsed < 1) {
88+throw invalidCliArgument(`${flag} must be a positive integer.`);
89+}
90+return parsed;
91+}
92+93+function parseMemoryCliNonNegativeIntegerOption(value: string, flag: string): number {
94+const parsed = Number(value);
95+if (!Number.isSafeInteger(parsed) || parsed < 0) {
96+throw invalidCliArgument(`${flag} must be a non-negative integer.`);
97+}
98+return parsed;
99+}
100+85101export function registerMemoryCli(program: Command) {
86102const memory = program
87103.command("memory")
@@ -160,7 +176,7 @@ export function registerMemoryCli(program: Command) {
160176.option("--query <text>", "Search query (alternative to positional argument)")
161177.option("--agent <id>", "Agent id (default: default agent)")
162178.option("--max-results <n>", "Max results", (value: string) =>
163-parseMemoryCliNumberOption(value, "--max-results"),
179+parseMemoryCliPositiveIntegerOption(value, "--max-results"),
164180)
165181.option("--min-score <n>", "Minimum score", (value: string) =>
166182parseMemoryCliNumberOption(value, "--min-score"),
@@ -175,7 +191,7 @@ export function registerMemoryCli(program: Command) {
175191.description("Rank short-term recalls and optionally append top entries to MEMORY.md")
176192.option("--agent <id>", "Agent id (default: default agent)")
177193.option("--limit <n>", "Max candidates", (value: string) =>
178-parseMemoryCliNumberOption(value, "--limit"),
194+parseMemoryCliPositiveIntegerOption(value, "--limit"),
179195)
180196.option(
181197"--min-score <n>",
@@ -185,12 +201,12 @@ export function registerMemoryCli(program: Command) {
185201.option(
186202"--min-recall-count <n>",
187203`Minimum recall count (default: ${DEFAULT_PROMOTION_MIN_RECALL_COUNT})`,
188-(value: string) => parseMemoryCliNumberOption(value, "--min-recall-count"),
204+(value: string) => parseMemoryCliNonNegativeIntegerOption(value, "--min-recall-count"),
189205)
190206.option(
191207"--min-unique-queries <n>",
192208`Minimum distinct query count (default: ${DEFAULT_PROMOTION_MIN_UNIQUE_QUERIES})`,
193-(value: string) => parseMemoryCliNumberOption(value, "--min-unique-queries"),
209+(value: string) => parseMemoryCliNonNegativeIntegerOption(value, "--min-unique-queries"),
194210)
195211.option("--apply", "Append selected candidates to MEMORY.md", false)
196212.option("--include-promoted", "Include already promoted candidates", false)
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。