eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
62 lines (61 loc) • 2.91 kB
TypeScript
import type { ChannelActivityRenderer } from "#channel/activity-renderer.js";
import type { ActivitySnapshotV1 } from "#protocol/activity.js";
import { type SlackBotToken } from "#public/channels/slack/api.js";
declare const SLACK_ACTIVITY_RENDERER: unique symbol;
export interface SlackActivityRenderer {
readonly id: string;
readonly [SLACK_ACTIVITY_RENDERER]: true;
}
/**
* Activity snapshot passed to an experimental Slack activity renderer.
*
* This contract is unstable and may change or be removed in any release.
*/
export type ExperimentalSlackActivitySnapshot = ActivitySnapshotV1;
/** Slack destination passed to an experimental activity renderer. */
export interface ExperimentalSlackActivityDestination {
readonly channelId: string | null;
readonly installationTeamId: string | null;
readonly teamId: string | null;
readonly threadTs: string | null;
readonly triggeringUserId: string | null;
}
/**
* Experimental custom Slack activity renderer.
*
* Renderer state is retained by renderer id between snapshots. This contract
* is unstable and may change or be removed in any release.
*/
export interface ExperimentalSlackActivityRenderer<State = unknown> {
readonly id: string;
render(input: {
readonly destination: ExperimentalSlackActivityDestination;
readonly snapshot: ExperimentalSlackActivitySnapshot;
readonly state: State | undefined;
}): Promise<State | undefined>;
dispose?(input: {
readonly destination: ExperimentalSlackActivityDestination;
readonly state: State | undefined;
}): Promise<void>;
}
/** Creates the compact Slack assistant-thread activity renderer. */
export declare function experimental_slackActivityStatus(): SlackActivityRenderer;
/** Creates one experimental update-in-place Unicode activity tree per root turn. */
export declare function experimental_slackActivityTree(): SlackActivityRenderer;
/** Creates one experimental native Slack plan stream per root turn. */
export declare function experimental_slackActivityPlan(): SlackActivityRenderer;
/**
* Registers an experimental custom Slack activity renderer.
*
* The renderer contract is unstable and may change or be removed in any
* release.
*/
export declare function experimental_slackActivityRenderer<State>(renderer: ExperimentalSlackActivityRenderer<State>): SlackActivityRenderer;
export declare function hasSlackActivityStatus(renderers: readonly SlackActivityRenderer[] | undefined): boolean;
export declare function buildSlackActivityRenderers(input: {
readonly botToken: SlackBotToken | undefined;
readonly renderers: readonly SlackActivityRenderer[];
}): readonly ChannelActivityRenderer[];
export declare function activityMessages(snapshot: ActivitySnapshotV1): ReadonlyMap<string, string>;
export declare function selectSlackActivityStatus(snapshot: ActivitySnapshotV1): string;
export {};