fix: show session title and workspace in /sessions picker
Read cwd from session.header (not only meta) and title from sessionTitle service or session/title events; list details in the message body and richer inline buttons. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Vendored
+35
@@ -0,0 +1,35 @@
|
||||
import type { Context } from '@deepseek-ai/cordis';
|
||||
import type { Agent } from '@deepseek-ai/dsh-agent';
|
||||
/** Loose session shape so tests and live Session both work. */
|
||||
export interface SessionView {
|
||||
header?: {
|
||||
cwd?: string;
|
||||
};
|
||||
meta?: {
|
||||
cwd?: string;
|
||||
};
|
||||
events?: ReadonlyArray<{
|
||||
type?: string;
|
||||
data?: {
|
||||
title?: string;
|
||||
};
|
||||
}>;
|
||||
}
|
||||
export interface AgentLabelParts {
|
||||
index: number;
|
||||
title?: string;
|
||||
cwd?: string;
|
||||
workspace?: string;
|
||||
idTail: string;
|
||||
sessionId: string;
|
||||
}
|
||||
export declare function readSessionCwd(session: unknown): string | undefined;
|
||||
export declare function workspaceName(cwd: string | undefined): string | undefined;
|
||||
export declare function readSessionTitle(ctx: Context | undefined, session: unknown): string | undefined;
|
||||
export declare function describeAgent(agent: Agent, index: number, ctx?: Context): AgentLabelParts;
|
||||
/** Compact label for inline keyboard buttons (Telegram ≤64 chars). */
|
||||
export declare function buttonLabel(parts: AgentLabelParts): string;
|
||||
/** Multi-line detail block for the picker message body. */
|
||||
export declare function detailLines(parts: AgentLabelParts): string;
|
||||
/** Human label stored on bind / status (not length-capped as hard as buttons). */
|
||||
export declare function displayLabel(parts: AgentLabelParts): string;
|
||||
Reference in New Issue
Block a user