refactor(tui): clarify session tree helper

This commit is contained in:
Josh Lambert
2026-06-24 09:05:16 -06:00
parent e81befbb42
commit bcacb7688e
3 changed files with 14 additions and 7 deletions
@@ -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",