mirror of
https://github.com/harivansh-afk/sandbox-agent.git
synced 2026-04-15 09:01:17 +00:00
Refactor git clone script in Daytona provider to use cleaner shell logic for GitHub token authentication and branch checkout. Add support for private repository clones with token-based auth. Improve Daytona provider error handling and git configuration setup. Frontend improvements include enhanced dev panel, workspace dashboard, sidebar navigation, and UI components for better task/session management. Update interest manager and backend client to support improved session state handling. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
33 lines
1.2 KiB
TypeScript
33 lines
1.2 KiB
TypeScript
import type { TopicData, TopicKey, TopicParams } from "./topics.js";
|
|
|
|
export type TopicStatus = "loading" | "connected" | "error";
|
|
|
|
export interface DebugInterestTopic {
|
|
topicKey: TopicKey;
|
|
cacheKey: string;
|
|
listenerCount: number;
|
|
status: TopicStatus;
|
|
lastRefreshAt: number | null;
|
|
}
|
|
|
|
export interface TopicState<K extends TopicKey> {
|
|
data: TopicData<K> | undefined;
|
|
status: TopicStatus;
|
|
error: Error | null;
|
|
}
|
|
|
|
/**
|
|
* The InterestManager owns all realtime actor connections and cached state.
|
|
*
|
|
* Multiple subscribers to the same topic share one connection and one cache
|
|
* entry. After the last subscriber leaves, a short grace period keeps the
|
|
* connection warm so navigation does not thrash actor connections.
|
|
*/
|
|
export interface InterestManager {
|
|
subscribe<K extends TopicKey>(topicKey: K, params: TopicParams<K>, listener: () => void): () => void;
|
|
getSnapshot<K extends TopicKey>(topicKey: K, params: TopicParams<K>): TopicData<K> | undefined;
|
|
getStatus<K extends TopicKey>(topicKey: K, params: TopicParams<K>): TopicStatus;
|
|
getError<K extends TopicKey>(topicKey: K, params: TopicParams<K>): Error | null;
|
|
listDebugTopics(): DebugInterestTopic[];
|
|
dispose(): void;
|
|
}
|