fix(keyword-detector): implement agent-aware ultrawork message generation
Restructure ultrawork message generation to support agent-specific instructions. - Extract ultrawork message components into modular constants - Add getUltraworkMessage(agentName) function that adapts instructions based on agent type - Support planner-specific vs default agent execution patterns - Pass agentName parameter through detector.ts for message resolution 🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
This commit is contained in:
@@ -13,20 +13,30 @@ export function removeCodeBlocks(text: string): string {
|
||||
return text.replace(CODE_BLOCK_PATTERN, "").replace(INLINE_CODE_PATTERN, "")
|
||||
}
|
||||
|
||||
export function detectKeywords(text: string): string[] {
|
||||
/**
|
||||
* Resolves message to string, handling both static strings and dynamic functions.
|
||||
*/
|
||||
function resolveMessage(
|
||||
message: string | ((agentName?: string) => string),
|
||||
agentName?: string
|
||||
): string {
|
||||
return typeof message === "function" ? message(agentName) : message
|
||||
}
|
||||
|
||||
export function detectKeywords(text: string, agentName?: string): string[] {
|
||||
const textWithoutCode = removeCodeBlocks(text)
|
||||
return KEYWORD_DETECTORS.filter(({ pattern }) =>
|
||||
pattern.test(textWithoutCode)
|
||||
).map(({ message }) => message)
|
||||
).map(({ message }) => resolveMessage(message, agentName))
|
||||
}
|
||||
|
||||
export function detectKeywordsWithType(text: string): DetectedKeyword[] {
|
||||
export function detectKeywordsWithType(text: string, agentName?: string): DetectedKeyword[] {
|
||||
const textWithoutCode = removeCodeBlocks(text)
|
||||
const types: Array<"ultrawork" | "search" | "analyze"> = ["ultrawork", "search", "analyze"]
|
||||
return KEYWORD_DETECTORS.map(({ pattern, message }, index) => ({
|
||||
matches: pattern.test(textWithoutCode),
|
||||
type: types[index],
|
||||
message,
|
||||
message: resolveMessage(message, agentName),
|
||||
}))
|
||||
.filter((result) => result.matches)
|
||||
.map(({ type, message }) => ({ type, message }))
|
||||
|
||||
Reference in New Issue
Block a user