MCPcopy Index your code
hub / github.com/CodebuffAI/codebuff / prepareGravityMessages

Function prepareGravityMessages

web/src/lib/ad-providers/gravity.ts:69–83  ·  view source on GitHub ↗

* Gravity only wants the last user turn plus the last preceding assistant * turn for relevancy signals. We also strip empties and normalize user * messages through the tag.

(messages: AdMessage[])

Source from the content-addressed store, hash-verified

67 * messages through the <user_message> tag.
68 */
69function prepareGravityMessages(messages: AdMessage[]): AdMessage[] {
70 const cleaned = messages
71 .filter((m) => m.content)
72 .map((m) =>
73 m.role === 'user'
74 ? { ...m, content: extractLastUserMessageContent(m.content) }
75 : m,
76 )
77 const lastUserIndex = cleaned.findLastIndex((m) => m.role === 'user')
78 const lastUser = lastUserIndex >= 0 ? cleaned[lastUserIndex] : undefined
79 const lastAssistant = cleaned
80 .slice(0, lastUserIndex >= 0 ? lastUserIndex : cleaned.length)
81 .findLast((m) => m.role === 'assistant')
82 return buildArray(lastAssistant, lastUser)
83}
84
85export function createGravityProvider(config: { apiKey: string }): AdProvider {
86 return {

Callers 1

createGravityProviderFunction · 0.85

Calls 2

buildArrayFunction · 0.90

Tested by

no test coverage detected