mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-11-03 01:27:09 +01:00
23 lines
928 B
TypeScript
23 lines
928 B
TypeScript
import { nonIdleSlackIssueCondition } from "./slack-conversation-state.js";
|
|
import { and, isNull, isNotNull, or, type SQL } from "drizzle-orm";
|
|
import { issues } from "@paperclipai/db";
|
|
|
|
export function visibleIssueCondition(): SQL {
|
|
return and(isNull(issues.hiddenAt), isNull(issues.harnessKind))!;
|
|
}
|
|
|
|
export function visibleIssueSql(alias = "issues") {
|
|
return `"${alias}"."hidden_at" IS NULL AND "${alias}"."harness_kind" IS NULL`;
|
|
}
|
|
|
|
/** Work queues and execution totals omit persistent conversation containers. */
|
|
export function executionIssueCondition(): SQL {
|
|
return and(visibleIssueCondition(), isNull(issues.conversationAgentId), nonIdleSlackIssueCondition())!;
|
|
}
|
|
|
|
export function attentionIssueCondition(includeConversations = false): SQL {
|
|
return includeConversations
|
|
? or(executionIssueCondition(), and(visibleIssueCondition(), isNotNull(issues.conversationAgentId)))!
|
|
: executionIssueCondition();
|
|
}
|