Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
34 lines
916 B
TypeScript
34 lines
916 B
TypeScript
import { isHistoryTransaction } from "@tiptap/pm/history";
|
|
import type { Transaction } from "@tiptap/pm/state";
|
|
|
|
export const AGENT_RICH_TEXT_SKIP_USER_CONTENT_EVENT_META =
|
|
"agentRichTextSkipUserContentEvent";
|
|
|
|
export function isAgentRichTextUserContentInsertion(
|
|
transaction: Transaction
|
|
): boolean {
|
|
if (
|
|
transaction.getMeta(AGENT_RICH_TEXT_SKIP_USER_CONTENT_EVENT_META) ===
|
|
true ||
|
|
isHistoryTransaction(transaction)
|
|
) {
|
|
return false;
|
|
}
|
|
return transaction.steps.some((step) => {
|
|
let inserted = false;
|
|
step.getMap().forEach((_oldStart, _oldEnd, newStart, newEnd) => {
|
|
if (newEnd > newStart) inserted = true;
|
|
});
|
|
return inserted;
|
|
});
|
|
}
|
|
|
|
export function markAgentRichTextPointerFocus(ref: {
|
|
current: "pointer" | "programmatic" | null;
|
|
}): void {
|
|
ref.current = "pointer";
|
|
queueMicrotask(() => {
|
|
if (ref.current === "pointer") ref.current = null;
|
|
});
|
|
}
|