Refactor ClineMessage

This commit is contained in:
Saoud Rizwan
2024-10-06 00:19:44 -04:00
parent 7dd9abda46
commit d67523596b
7 changed files with 23 additions and 23 deletions

View File

@@ -22,7 +22,7 @@ export interface ExtensionMessage {
images?: string[]
ollamaModels?: string[]
filePaths?: string[]
partialMessage?: ClaudeMessage
partialMessage?: ClineMessage
openRouterModels?: Record<string, ModelInfo>
}
@@ -32,12 +32,12 @@ export interface ExtensionState {
customInstructions?: string
alwaysAllowReadOnly?: boolean
uriScheme?: string
claudeMessages: ClaudeMessage[]
claudeMessages: ClineMessage[]
taskHistory: HistoryItem[]
shouldShowAnnouncement: boolean
}
export interface ClaudeMessage {
export interface ClineMessage {
ts: number
type: "ask" | "say"
ask?: ClaudeAsk

View File

@@ -1,4 +1,4 @@
import { ClaudeMessage } from "./ExtensionMessage"
import { ClineMessage } from "./ExtensionMessage"
/**
* Combines API request start and finish messages in an array of ClaudeMessages.
@@ -18,8 +18,8 @@ import { ClaudeMessage } from "./ExtensionMessage"
* const result = combineApiRequests(messages);
* // Result: [{ type: "say", say: "api_req_started", text: '{"request":"GET /api/data","cost":0.005}', ts: 1000 }]
*/
export function combineApiRequests(messages: ClaudeMessage[]): ClaudeMessage[] {
const combinedApiRequests: ClaudeMessage[] = []
export function combineApiRequests(messages: ClineMessage[]): ClineMessage[] {
const combinedApiRequests: ClineMessage[] = []
for (let i = 0; i < messages.length; i++) {
if (messages[i].type === "say" && messages[i].say === "api_req_started") {

View File

@@ -1,4 +1,4 @@
import { ClaudeMessage } from "./ExtensionMessage"
import { ClineMessage } from "./ExtensionMessage"
/**
* Combines sequences of command and command_output messages in an array of ClaudeMessages.
@@ -20,8 +20,8 @@ import { ClaudeMessage } from "./ExtensionMessage"
* const result = simpleCombineCommandSequences(messages);
* // Result: [{ type: 'ask', ask: 'command', text: 'ls\nfile1.txt\nfile2.txt', ts: 1625097600000 }]
*/
export function combineCommandSequences(messages: ClaudeMessage[]): ClaudeMessage[] {
const combinedCommands: ClaudeMessage[] = []
export function combineCommandSequences(messages: ClineMessage[]): ClineMessage[] {
const combinedCommands: ClineMessage[] = []
// First pass: combine commands with their outputs
for (let i = 0; i < messages.length; i++) {

View File

@@ -1,4 +1,4 @@
import { ClaudeMessage } from "./ExtensionMessage"
import { ClineMessage } from "./ExtensionMessage"
interface ApiMetrics {
totalTokensIn: number
@@ -9,13 +9,13 @@ interface ApiMetrics {
}
/**
* Calculates API metrics from an array of ClaudeMessages.
* Calculates API metrics from an array of ClineMessages.
*
* This function processes 'api_req_started' messages that have been combined with their
* corresponding 'api_req_finished' messages by the combineApiRequests function.
* It extracts and sums up the tokensIn, tokensOut, cacheWrites, cacheReads, and cost from these messages.
*
* @param messages - An array of ClaudeMessage objects to process.
* @param messages - An array of ClineMessage objects to process.
* @returns An ApiMetrics object containing totalTokensIn, totalTokensOut, totalCacheWrites, totalCacheReads, and totalCost.
*
* @example
@@ -25,7 +25,7 @@ interface ApiMetrics {
* const { totalTokensIn, totalTokensOut, totalCost } = getApiMetrics(messages);
* // Result: { totalTokensIn: 10, totalTokensOut: 20, totalCost: 0.005 }
*/
export function getApiMetrics(messages: ClaudeMessage[]): ApiMetrics {
export function getApiMetrics(messages: ClineMessage[]): ApiMetrics {
const result: ApiMetrics = {
totalTokensIn: 0,
totalTokensOut: 0,