50 lines
1.5 KiB
TypeScript
50 lines
1.5 KiB
TypeScript
import type { QuerySource } from 'src/constants/querySource.js'
|
|
import {
|
|
DEFAULT_OUTPUT_STYLE_NAME,
|
|
OUTPUT_STYLE_CONFIG,
|
|
} from '../constants/outputStyles.js'
|
|
import { getSettings_DEPRECATED } from './settings/settings.js'
|
|
|
|
/**
|
|
* Determines the prompt category for agent usage.
|
|
* Used for analytics to track different agent patterns.
|
|
*
|
|
* @param agentType - The type/name of the agent
|
|
* @param isBuiltInAgent - Whether this is a built-in agent or custom
|
|
* @returns The agent prompt category string
|
|
*/
|
|
export function getQuerySourceForAgent(
|
|
agentType: string | undefined,
|
|
isBuiltInAgent: boolean,
|
|
): QuerySource {
|
|
if (isBuiltInAgent) {
|
|
// TODO: avoid this cast
|
|
return agentType
|
|
? (`agent:builtin:${agentType}` as QuerySource)
|
|
: 'agent:default'
|
|
} else {
|
|
return 'agent:custom'
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Determines the prompt category based on output style settings.
|
|
* Used for analytics to track different output style usage.
|
|
*
|
|
* @returns The prompt category string or undefined for default
|
|
*/
|
|
export function getQuerySourceForREPL(): QuerySource {
|
|
const settings = getSettings_DEPRECATED()
|
|
const style = settings?.outputStyle ?? DEFAULT_OUTPUT_STYLE_NAME
|
|
|
|
if (style === DEFAULT_OUTPUT_STYLE_NAME) {
|
|
return 'repl_main_thread'
|
|
}
|
|
|
|
// All styles in OUTPUT_STYLE_CONFIG are built-in
|
|
const isBuiltIn = style in OUTPUT_STYLE_CONFIG
|
|
return isBuiltIn
|
|
? (`repl_main_thread:outputStyle:${style}` as QuerySource)
|
|
: 'repl_main_thread:outputStyle:custom'
|
|
}
|