forked from deepseek-ai/deepseek-harness
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.ts
More file actions
36 lines (32 loc) · 1.55 KB
/
Copy pathindex.ts
File metadata and controls
36 lines (32 loc) · 1.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/** All-human-messages model provider for `ctx.sessionTitle`. */
import type { Context } from '@deepseek-ai/cordis'
import z from '@deepseek-ai/schemastery'
import {
registerSessionTitleLlmProvider,
SessionTitleLlmConfigFields,
} from '@deepseek-ai/dsh-session-title-llm'
import type { SessionTitleLlmConfig } from '@deepseek-ai/dsh-session-title-llm'
export const name = 'session-title-all-prompts-llm'
export const inject = ['sessionTitle', 'llm', 'sessions']
/** Required LLM policy; this plugin adds no defaults. */
export type Config = SessionTitleLlmConfig
/** Loader schema shared with the first-prompt provider. */
/* jscpd:ignore-start -- Loader requires each plugin to export its own statically walkable schema; the field validators remain shared. */
export const Config: z<Config> = z.object({
targetWords: SessionTitleLlmConfigFields.targetWords,
targetCjkCharacters: SessionTitleLlmConfigFields.targetCjkCharacters,
maxInputBytes: SessionTitleLlmConfigFields.maxInputBytes,
maxOutputTokens: SessionTitleLlmConfigFields.maxOutputTokens,
timeoutMs: SessionTitleLlmConfigFields.timeoutMs,
provider: SessionTitleLlmConfigFields.provider,
model: SessionTitleLlmConfigFields.model,
})
/* jscpd:ignore-end */
/**
* Register the all-prompts model provider.
* @param ctx - context exposing session-title, LLM, and session services.
* @param config - required route, target, byte, token, and timeout policy.
*/
export function apply(ctx: Context, config: Config): void {
registerSessionTitleLlmProvider(ctx, config, name, 'all-prompts', messages => messages)
}