mirror of
https://github.com/Kilo-Org/kilocode.git
synced 2026-09-01 15:32:11 +08:00
refactor(tui): clarify session tree helper
This commit is contained in:
@@ -13,7 +13,7 @@ export function failed(result: UsageResult | undefined, sessionID: string) {
|
||||
return result?.sessionID === sessionID && !result.data
|
||||
}
|
||||
|
||||
export function member(input: {
|
||||
export function isSessionTreeMember(input: {
|
||||
root: string
|
||||
sessionID: string
|
||||
get: (sessionID: string) => Session | undefined
|
||||
|
||||
@@ -7,8 +7,8 @@ import {
|
||||
formatCost,
|
||||
formatCount,
|
||||
formatRate,
|
||||
isSessionTreeMember,
|
||||
label,
|
||||
member,
|
||||
select,
|
||||
type UsageResult,
|
||||
} from "@/kilocode/plugins/model-usage"
|
||||
@@ -44,7 +44,7 @@ function View(props: { api: TuiPluginApi; session_id: string }) {
|
||||
onMount(() => {
|
||||
const refresh = () => void refetch()
|
||||
const related = (sessionID: string, info?: ReturnType<typeof props.api.state.session.get>) =>
|
||||
member({ root: props.session_id, sessionID, info, get: props.api.state.session.get })
|
||||
isSessionTreeMember({ root: props.session_id, sessionID, info, get: props.api.state.session.get })
|
||||
const offs = [
|
||||
props.api.event.on("message.part.updated", (event) => {
|
||||
if (event.properties.part.type === "step-finish" && related(event.properties.sessionID)) refresh()
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
import { describe, expect, test } from "bun:test"
|
||||
import type { Session } from "@kilocode/sdk/v2"
|
||||
import { failed, formatRate, label, member, select, type SessionModelUsage } from "@/kilocode/plugins/model-usage"
|
||||
import {
|
||||
failed,
|
||||
formatRate,
|
||||
isSessionTreeMember,
|
||||
label,
|
||||
select,
|
||||
type SessionModelUsage,
|
||||
} from "@/kilocode/plugins/model-usage"
|
||||
|
||||
const session = (id: string, parentID?: string) =>
|
||||
({
|
||||
@@ -33,16 +40,16 @@ describe("TUI model usage", () => {
|
||||
expect(failed({ sessionID: "ses_old" }, "ses_current")).toBeFalse()
|
||||
expect(select({ sessionID: "ses_current", data }, "ses_current")).toBe(data)
|
||||
expect(failed({ sessionID: "ses_current" }, "ses_current")).toBeTrue()
|
||||
expect(member({ root: root.id, sessionID: child.id, get: (id) => sessions.get(id) })).toBeTrue()
|
||||
expect(isSessionTreeMember({ root: root.id, sessionID: child.id, get: (id) => sessions.get(id) })).toBeTrue()
|
||||
expect(
|
||||
member({
|
||||
isSessionTreeMember({
|
||||
root: root.id,
|
||||
sessionID: "ses_new",
|
||||
info: session("ses_new", child.id),
|
||||
get: (id) => sessions.get(id),
|
||||
}),
|
||||
).toBeTrue()
|
||||
expect(member({ root: root.id, sessionID: "ses_other", get: () => undefined })).toBeFalse()
|
||||
expect(isSessionTreeMember({ root: root.id, sessionID: "ses_other", get: () => undefined })).toBeFalse()
|
||||
expect(
|
||||
label({
|
||||
providerID: "kilo",
|
||||
|
||||
Reference in New Issue
Block a user