refactor: share sessions list row type
Co-authored-by: Adam Holt <mail@adamholt.co.nz>
This commit is contained in:
@@ -3,6 +3,36 @@ import { normalizeMainKey } from "../../routing/session-key.js";
|
|||||||
|
|
||||||
export type SessionKind = "main" | "group" | "cron" | "hook" | "node" | "other";
|
export type SessionKind = "main" | "group" | "cron" | "hook" | "node" | "other";
|
||||||
|
|
||||||
|
export type SessionListDeliveryContext = {
|
||||||
|
channel?: string;
|
||||||
|
to?: string;
|
||||||
|
accountId?: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type SessionListRow = {
|
||||||
|
key: string;
|
||||||
|
kind: SessionKind;
|
||||||
|
channel: string;
|
||||||
|
label?: string;
|
||||||
|
displayName?: string;
|
||||||
|
deliveryContext?: SessionListDeliveryContext;
|
||||||
|
updatedAt?: number | null;
|
||||||
|
sessionId?: string;
|
||||||
|
model?: string;
|
||||||
|
contextTokens?: number | null;
|
||||||
|
totalTokens?: number | null;
|
||||||
|
thinkingLevel?: string;
|
||||||
|
verboseLevel?: string;
|
||||||
|
systemSent?: boolean;
|
||||||
|
abortedLastRun?: boolean;
|
||||||
|
sendPolicy?: string;
|
||||||
|
lastChannel?: string;
|
||||||
|
lastTo?: string;
|
||||||
|
lastAccountId?: string;
|
||||||
|
transcriptPath?: string;
|
||||||
|
messages?: unknown[];
|
||||||
|
};
|
||||||
|
|
||||||
function normalizeKey(value?: string) {
|
function normalizeKey(value?: string) {
|
||||||
const trimmed = value?.trim();
|
const trimmed = value?.trim();
|
||||||
return trimmed ? trimmed : undefined;
|
return trimmed ? trimmed : undefined;
|
||||||
|
|||||||
@@ -17,34 +17,10 @@ import {
|
|||||||
resolveDisplaySessionKey,
|
resolveDisplaySessionKey,
|
||||||
resolveInternalSessionKey,
|
resolveInternalSessionKey,
|
||||||
resolveMainSessionAlias,
|
resolveMainSessionAlias,
|
||||||
type SessionKind,
|
type SessionListRow,
|
||||||
stripToolMessages,
|
stripToolMessages,
|
||||||
} from "./sessions-helpers.js";
|
} from "./sessions-helpers.js";
|
||||||
|
|
||||||
type SessionListRow = {
|
|
||||||
key: string;
|
|
||||||
kind: SessionKind;
|
|
||||||
channel: string;
|
|
||||||
label?: string;
|
|
||||||
displayName?: string;
|
|
||||||
deliveryContext?: { channel?: string; to?: string; accountId?: string };
|
|
||||||
updatedAt?: number | null;
|
|
||||||
sessionId?: string;
|
|
||||||
model?: string;
|
|
||||||
contextTokens?: number | null;
|
|
||||||
totalTokens?: number | null;
|
|
||||||
thinkingLevel?: string;
|
|
||||||
verboseLevel?: string;
|
|
||||||
systemSent?: boolean;
|
|
||||||
abortedLastRun?: boolean;
|
|
||||||
sendPolicy?: string;
|
|
||||||
lastChannel?: string;
|
|
||||||
lastTo?: string;
|
|
||||||
lastAccountId?: string;
|
|
||||||
transcriptPath?: string;
|
|
||||||
messages?: unknown[];
|
|
||||||
};
|
|
||||||
|
|
||||||
const SessionsListToolSchema = Type.Object({
|
const SessionsListToolSchema = Type.Object({
|
||||||
kinds: Type.Optional(Type.Array(Type.String())),
|
kinds: Type.Optional(Type.Array(Type.String())),
|
||||||
limit: Type.Optional(Type.Number({ minimum: 1 })),
|
limit: Type.Optional(Type.Number({ minimum: 1 })),
|
||||||
|
|||||||
Reference in New Issue
Block a user