feat: update session notices and skill reloads
This commit is contained in:
parent
98c09884bf
commit
fb884bb91e
29 changed files with 304 additions and 75 deletions
|
|
@ -163,6 +163,9 @@ export const { use: useData, provider: DataProvider } = createSimpleContext({
|
|||
case "agent.updated":
|
||||
void result.location.agent.refresh(event.location)
|
||||
break
|
||||
case "skill.updated":
|
||||
void result.location.skill.refresh(event.location)
|
||||
break
|
||||
case "session.next.agent.switched":
|
||||
if (store.session.info[event.data.sessionID])
|
||||
setStore("session", "info", event.data.sessionID, "agent", event.data.agent)
|
||||
|
|
@ -248,6 +251,7 @@ export const { use: useData, provider: DataProvider } = createSimpleContext({
|
|||
type: "synthetic",
|
||||
sessionID: event.data.sessionID,
|
||||
text: event.data.text,
|
||||
description: event.data.description,
|
||||
time: { created: event.data.timestamp },
|
||||
})
|
||||
})
|
||||
|
|
|
|||
|
|
@ -1250,13 +1250,14 @@ function SessionSwitchMessageV2(props: { message: SessionMessage }) {
|
|||
function SessionNoticeMessageV2(props: { message: SessionMessage }) {
|
||||
const { theme } = useTheme()
|
||||
const text = () => {
|
||||
if (props.message.type === "system" || props.message.type === "synthetic") return props.message.text
|
||||
if (props.message.type === "system") return "Instructions updated"
|
||||
if (props.message.type === "synthetic") return props.message.description ?? ""
|
||||
return ""
|
||||
}
|
||||
return (
|
||||
<box paddingLeft={3}>
|
||||
<text fg={theme.textMuted}>{text()}</text>
|
||||
</box>
|
||||
<InlineToolRow icon="◈" color={theme.textMuted} pending="Notice" complete={true}>
|
||||
{text()}
|
||||
</InlineToolRow>
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -119,7 +119,9 @@ export function createSessionRows(sessionID: Accessor<string>) {
|
|||
data.on("session.next.prompt.admitted", message),
|
||||
data.on("session.next.prompted", message),
|
||||
data.on("session.next.context.updated", message),
|
||||
data.on("session.next.synthetic", message),
|
||||
data.on("session.next.synthetic", (event) => {
|
||||
if (event.data.sessionID === sessionID() && event.data.description?.trim()) appendMessage(event.data.messageID)
|
||||
}),
|
||||
data.on("session.next.shell.started", message),
|
||||
data.on("session.next.agent.switched", message),
|
||||
data.on("session.next.model.switched", message),
|
||||
|
|
@ -160,6 +162,7 @@ export function createSessionRows(sessionID: Accessor<string>) {
|
|||
export function reduceSessionRows(messages: SessionMessage[]) {
|
||||
return messages.reduce<SessionRow[]>((rows, message) => {
|
||||
if (message.type !== "assistant") {
|
||||
if (message.type === "synthetic" && !message.description?.trim()) return rows
|
||||
completePrevious(rows)
|
||||
rows.push({ type: "message", messageID: message.id })
|
||||
return rows
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue