


























@@ -26,6 +26,57 @@ function resolveVerbose(opts: { verbose?: boolean; debug?: boolean }): boolean {
2626return Boolean(opts.verbose || opts.debug);
2727}
282829+type SessionsListCliOptions = {
30+json?: boolean;
31+verbose?: boolean;
32+store?: string;
33+agent?: string;
34+allAgents?: boolean;
35+active?: string;
36+limit?: string;
37+};
38+39+function addSessionsListOptions(command: Command): Command {
40+return command
41+.option("--json", "Output as JSON", false)
42+.option("--verbose", "Verbose logging", false)
43+.option("--store <path>", "Path to session store (default: resolved from config)")
44+.option("--agent <id>", "Agent id to inspect (default: configured default agent)")
45+.option("--all-agents", "Aggregate sessions across all configured agents", false)
46+.option("--active <minutes>", "Only show sessions updated within the past N minutes")
47+.option("--limit <count>", 'Max sessions to show (default: 100; use "all" for full output)');
48+}
49+50+function mergeSessionsListOptions(
51+opts: SessionsListCliOptions,
52+parentOpts?: SessionsListCliOptions,
53+): SessionsListCliOptions {
54+return {
55+json: Boolean(opts.json || parentOpts?.json),
56+verbose: Boolean(opts.verbose || parentOpts?.verbose),
57+store: opts.store ?? parentOpts?.store,
58+agent: opts.agent ?? parentOpts?.agent,
59+allAgents: Boolean(opts.allAgents || parentOpts?.allAgents),
60+active: opts.active ?? parentOpts?.active,
61+limit: opts.limit ?? parentOpts?.limit,
62+};
63+}
64+65+async function runSessionsListCli(opts: SessionsListCliOptions): Promise<void> {
66+setVerbose(Boolean(opts.verbose));
67+await sessionsCommand(
68+{
69+json: Boolean(opts.json),
70+store: opts.store,
71+agent: opts.agent,
72+allAgents: Boolean(opts.allAgents),
73+active: opts.active,
74+limit: opts.limit,
75+},
76+defaultRuntime,
77+);
78+}
79+2980function parseTimeoutMs(timeout: unknown): number | null | undefined {
3081const parsed = parsePositiveIntOrUndefined(timeout);
3182if (timeout !== undefined && parsed === undefined) {
@@ -123,16 +174,9 @@ export function registerStatusHealthSessionsCommands(program: Command) {
123174});
124175});
125176126-const sessionsCmd = program
127-.command("sessions")
128-.description("List stored conversation sessions")
129-.option("--json", "Output as JSON", false)
130-.option("--verbose", "Verbose logging", false)
131-.option("--store <path>", "Path to session store (default: resolved from config)")
132-.option("--agent <id>", "Agent id to inspect (default: configured default agent)")
133-.option("--all-agents", "Aggregate sessions across all configured agents", false)
134-.option("--active <minutes>", "Only show sessions updated within the past N minutes")
135-.option("--limit <count>", 'Max sessions to show (default: 100; use "all" for full output)')
177+const sessionsCmd = addSessionsListOptions(
178+program.command("sessions").description("List stored conversation sessions"),
179+)
136180.addHelpText(
137181"after",
138182() =>
@@ -154,21 +198,17 @@ export function registerStatusHealthSessionsCommands(program: Command) {
154198`\n${theme.muted("Docs:")} ${formatDocsLink("/cli/sessions", "docs.openclaw.ai/cli/sessions")}\n`,
155199)
156200.action(async (opts) => {
157-setVerbose(Boolean(opts.verbose));
158-await sessionsCommand(
159-{
160-json: Boolean(opts.json),
161-store: opts.store as string | undefined,
162-agent: opts.agent as string | undefined,
163-allAgents: Boolean(opts.allAgents),
164-active: opts.active as string | undefined,
165-limit: opts.limit as string | undefined,
166-},
167-defaultRuntime,
168-);
201+await runSessionsListCli(opts as SessionsListCliOptions);
169202});
170203sessionsCmd.enablePositionalOptions();
171204205+addSessionsListOptions(
206+sessionsCmd.command("list").description("List stored conversation sessions"),
207+).action(async (opts, command) => {
208+const parentOpts = command.parent?.opts() as SessionsListCliOptions | undefined;
209+await runSessionsListCli(mergeSessionsListOptions(opts as SessionsListCliOptions, parentOpts));
210+});
211+172212sessionsCmd
173213.command("cleanup")
174214.description("Run session-store maintenance now")
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。