7e445c3a67
git mv the 12 packages from session-persistence/, session-projection/, session-title/, and telemetry/ into one session/ group per the regrouping RFC; merge the four group READMEs into one bilingual triplet; rewrite the group segment in tsconfig references (intra-group references shorten to ../<pkg>), tsconfig.base.json paths/globs, knip.json keys, vitest include, gate scripts, and authored doc/note citations; regenerate module graph, doc graphs, catalogs, and the lockfile importer keys. No npm names change. Full unit suite: 8779 passed; the 18 reported failures reproduce as env flakes (ambient-proxy IPv6 tunneling, watched-dir inotify timeouts under parallel load) — each passes in isolation with NO_PROXY set, matching their known pre-existing behavior on master.
41 lines
1.7 KiB
TypeScript
41 lines
1.7 KiB
TypeScript
/** First-human-message model provider for `ctx.sessionTitle`. */
|
|
|
|
import type { Context } from 'cordis'
|
|
import z from '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-first-message-llm'
|
|
export const inject = ['sessionTitle', 'llm', 'sessions']
|
|
|
|
/** Required LLM policy; this plugin adds no defaults. */
|
|
export type Config = SessionTitleLlmConfig
|
|
/** Loader schema shared with the all-messages 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 first-message 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, 'first-message', (messages) => {
|
|
const first = messages[0]
|
|
if (first === undefined) throw new Error('first-message title provider requires one human message')
|
|
return [first]
|
|
})
|
|
}
|