Files
byre/web/dist/lead.js
T

37 lines
1.3 KiB
JavaScript
Raw Normal View History

import { post } from "./api.js";
import { h } from "./dom.js";
import { currentLead, leadHasOlder, leadLoading, loadOlderLead, state } from "./state.js";
import { compactButton, mountChat } from "./task.js";
const leadSource = {
key: () => "lead",
events: () => state.leadTranscript,
loading: leadLoading,
session: currentLead,
root: () => "",
taskId: () => undefined,
resetTopics: [],
refreshTopics: ["lead.sessions"],
transcriptTopic: "lead.transcript",
streamTopic: "lead.stream",
readyTopic: "lead.ready",
older: { has: leadHasOlder, load: loadOlderLead },
empty: "",
canSend: () => true,
2026-10-15 21:56:59 -07:00
placeholder: "Message your lead. Paste or drop images to attach them.",
send: async ({ text, images, model, firstModel, sessionId }) => {
await post("/api/me/lead/messages", { body: { text, images, model: sessionId ? model : firstModel } });
},
};
function leadHead() {
return {
render: (usage) => {
const sess = currentLead();
const live = sess && sess.state !== "completed" ? sess : undefined;
return [h("div", { class: "head-actions session-actions" }, compactButton(live?.id, live?.state, live && usage(live.id)))];
},
};
}
export function mountLead(root) {
return mountChat(root, leadSource, leadHead);
}
//# sourceMappingURL=lead.js.map