源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
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
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
This commit is contained in:
commit
2ed3415fb7
8018 files changed
+1936476
No files matched your search
@@ -0,0 +1,83 @@
|
||||
import type { AgentSessionEngine } from "@tutti-os/agent-activity-core";
|
||||
import { AgentGUIConversationRailQueryController as InternalAgentGUIConversationRailQueryController } from "./agent-gui/agentGuiNode/controller/AgentGUIConversationRailQueryController.ts";
|
||||
import type { CachedConversationRailQuery } from "./agent-gui/agentGuiNode/controller/agentGuiConversationRailQueryCache.ts";
|
||||
import type { AgentGUIConversationRailQuerySnapshot } from "./agent-gui/agentGuiNode/controller/agentConversationRailQuerySnapshot.ts";
|
||||
import type { ConversationRailQueryScope } from "./agent-gui/agentGuiNode/controller/agentGuiConversationRailQueryTypes.ts";
|
||||
import type { AgentConversationRailRuntimePort } from "./agentConversationRailContracts.ts";
|
||||
import type { AgentGUIConversationActivityController } from "./agent-gui/agentGuiNode/controller/agentGUIConversationActivityController.ts";
|
||||
import {
|
||||
createWorkspaceQueryCache,
|
||||
type WorkspaceQueryCache
|
||||
} from "./shared/query/workspaceQueryCache.ts";
|
||||
|
||||
export type {
|
||||
AgentGUIConversationRailQuerySnapshot,
|
||||
ConversationRailQueryScope
|
||||
};
|
||||
|
||||
export type ConversationRailQueryRuntime = Pick<
|
||||
AgentConversationRailRuntimePort,
|
||||
| "listPinnedSessionsPage"
|
||||
| "listSessionSectionPage"
|
||||
| "listSessionSections"
|
||||
| "listSessionsPage"
|
||||
| "reportDiagnostic"
|
||||
>;
|
||||
|
||||
export interface AgentGUIConversationRailQueryControllerInput {
|
||||
engine: AgentSessionEngine;
|
||||
getActiveConversationId(): string | null;
|
||||
runtime: ConversationRailQueryRuntime;
|
||||
scheduler?: {
|
||||
schedule(
|
||||
delayMs: number,
|
||||
task: () => void
|
||||
): {
|
||||
cancel(): void;
|
||||
};
|
||||
};
|
||||
sectionPageSize?: number;
|
||||
sectionRefreshLimitMax?: number;
|
||||
workspaceId: string;
|
||||
}
|
||||
|
||||
export interface AgentGUIConversationRailQueryController {
|
||||
activityController: AgentGUIConversationActivityController;
|
||||
attach(): () => void;
|
||||
configure(scope: ConversationRailQueryScope): void;
|
||||
getSnapshot(): AgentGUIConversationRailQuerySnapshot;
|
||||
isInteractionLocked(): boolean;
|
||||
loadMoreSearchResults(): void;
|
||||
loadMoreSectionConversations(section: { id: string }): void;
|
||||
refresh(): Promise<void>;
|
||||
retrySearchResults(): void;
|
||||
setSearchQuery(value: string): void;
|
||||
subscribe(
|
||||
listener: (snapshot: AgentGUIConversationRailQuerySnapshot) => void
|
||||
): () => void;
|
||||
}
|
||||
|
||||
const conversationRailQueryCachesByEngine = new WeakMap<
|
||||
AgentSessionEngine,
|
||||
WorkspaceQueryCache<CachedConversationRailQuery>
|
||||
>();
|
||||
|
||||
export function createAgentGUIConversationRailQueryController(
|
||||
input: AgentGUIConversationRailQueryControllerInput
|
||||
): AgentGUIConversationRailQueryController {
|
||||
let sessionSectionsQueryCache = conversationRailQueryCachesByEngine.get(
|
||||
input.engine
|
||||
);
|
||||
if (!sessionSectionsQueryCache) {
|
||||
sessionSectionsQueryCache =
|
||||
createWorkspaceQueryCache<CachedConversationRailQuery>();
|
||||
conversationRailQueryCachesByEngine.set(
|
||||
input.engine,
|
||||
sessionSectionsQueryCache
|
||||
);
|
||||
}
|
||||
return new InternalAgentGUIConversationRailQueryController({
|
||||
...input,
|
||||
sessionSectionsQueryCache
|
||||
});
|
||||
}
|
||||
Reference in new issue
Block a user