Enrich attention feed and add snooze dismissals

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
DottaandPaperclip committed 2026-07-10 20:08:18 +00:00
1 parent 8804ee9bba
commit 9dcdb3ce60
34 files changed
+1043 -78

No files matched your search

+6
View File
@@ -51,12 +51,17 @@ export {
} from "./responsible-user-denial.js";
export type {
AttentionDecisionVerb,
AttentionDetailImage,
AttentionFeed,
AttentionItem,
AttentionItemDetail,
AttentionItemDismissal,
AttentionProjectRef,
AttentionSeverity,
AttentionSourceKind,
AttentionSubject,
AttentionSubjectKind,
AttentionWorkspaceRef,
} from "./types/attention.js";
export type {
@@ -874,6 +879,7 @@ export type {
SidebarBadges,
SidebarOrderPreference,
InboxDismissal,
InboxDismissalKind,
AccessUserProfile,
CompanyMemberRecord,
CompanyMembersResponse,
+107
View File
@@ -1,3 +1,5 @@
import type { InboxDismissalKind } from "./inbox-dismissal.js";
export type AttentionSourceKind =
| "approval"
| "issue_thread_interaction"
@@ -39,6 +41,107 @@ export interface AttentionDecisionVerb {
description: string | null;
}
export interface AttentionProjectRef {
id: string;
name: string;
urlKey: string;
}
export interface AttentionWorkspaceRef {
id: string;
name: string;
}
export interface AttentionDetailImage {
assetId: string;
alt?: string | null;
}
export interface AttentionItemDismissal {
kind: InboxDismissalKind;
dismissedAt: string;
snoozedUntil: string | null;
isActive: boolean;
}
export type AttentionItemDetail =
| {
kind: "approval";
approvalType: string;
summaryExcerpt: string | null;
images: AttentionDetailImage[];
}
| {
kind: "plan_approval";
issueTitle: string | null;
planTitle: string | null;
summaryExcerpt: string | null;
images: AttentionDetailImage[];
}
| {
kind: "confirmation";
promptExcerpt: string | null;
isPlanTarget: false;
images: AttentionDetailImage[];
}
| {
kind: "questions";
questionCount: number;
firstQuestionText: string | null;
images: AttentionDetailImage[];
}
| {
kind: "suggested_tasks";
taskCount: number;
firstTaskTitle: string | null;
images: AttentionDetailImage[];
}
| {
kind: "checkbox_confirmation";
optionCount: number;
promptExcerpt: string | null;
images: AttentionDetailImage[];
}
| {
kind: "item_verdicts";
itemCount: number;
promptExcerpt: string | null;
images: AttentionDetailImage[];
}
| {
kind: "failed_run";
agentName: string | null;
failureReasonExcerpt: string | null;
images: AttentionDetailImage[];
}
| {
kind: "blocker";
blockingIssue: {
id: string | null;
identifier: string | null;
title: string | null;
} | null;
images: AttentionDetailImage[];
}
| {
kind: "budget";
observedPercent: number;
amountObserved: number;
amountLimit: number;
images: AttentionDetailImage[];
}
| {
kind: "agent_error";
agentName: string | null;
failureReasonExcerpt: string | null;
images: AttentionDetailImage[];
}
| {
kind: "generic";
summaryExcerpt: string | null;
images: AttentionDetailImage[];
};
export interface AttentionItem {
id: string;
companyId: string;
@@ -51,12 +154,16 @@ export interface AttentionItem {
exitRule: string;
dedupKey: string;
dismissalKey: string;
dismissal: AttentionItemDismissal | null;
severity: AttentionSeverity;
rank: number;
activityAt: string;
createdAt: string;
updatedAt: string;
relatedIssue: AttentionSubject | null;
project: AttentionProjectRef | null;
workspace: AttentionWorkspaceRef | null;
detail: AttentionItemDetail | null;
}
export interface AttentionFeed {
@@ -1,9 +1,13 @@
export type InboxDismissalKind = "dismiss" | "snooze";
export interface InboxDismissal {
id: string;
companyId: string;
userId: string;
itemKey: string;
kind: InboxDismissalKind;
dismissedAt: Date;
snoozedUntil: Date | null;
createdAt: Date;
updatedAt: Date;
}
+6 -1
View File
@@ -1,12 +1,17 @@
export type { Company } from "./company.js";
export type {
AttentionDecisionVerb,
AttentionDetailImage,
AttentionFeed,
AttentionItem,
AttentionItemDetail,
AttentionItemDismissal,
AttentionProjectRef,
AttentionSeverity,
AttentionSourceKind,
AttentionSubject,
AttentionSubjectKind,
AttentionWorkspaceRef,
} from "./attention.js";
export type {
Environment,
@@ -573,7 +578,7 @@ export type {
UpdateResourceMembership,
} from "./resource-memberships.js";
export { RESOURCE_MEMBERSHIP_STATES } from "./resource-memberships.js";
export type { InboxDismissal } from "./inbox-dismissal.js";
export type { InboxDismissal, InboxDismissalKind } from "./inbox-dismissal.js";
export type {
AccessUserProfile,
CompanyMemberRecord,