File size: 586 Bytes
4e23b01
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/**
 * `sessionTitleService` — on-demand session title generation. Mirrors
 * `agent-core-v2/session/sessionTitle/sessionTitle.ts`.
 */

import { z } from 'zod';

import { maybe } from '../helpers.js';
import type { ServiceContract } from '../types.js';

export const sessionTitleContract = {
  generateTitle: {
    input: z.tuple([
      z
        .object({
          force: z.boolean().optional(),
          source: z.enum(['user_prompts', 'first_turn', 'digest']).optional(),
        })
        .optional(),
    ]),
    output: maybe(z.string()),
  },
} satisfies ServiceContract;