源码快照 @ 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:
@@ -0,0 +1,41 @@
|
||||
import { selectVisibleWorkbenchNodes } from "../core/selectors.ts";
|
||||
import { createDerivedSnapshotGetter } from "../store/createDerivedSnapshotGetter.ts";
|
||||
import type { WorkbenchController } from "../store/types.ts";
|
||||
import type { WorkbenchMissionControlAdapter } from "../mission-control/types.ts";
|
||||
import type { WorkbenchHostNodeData } from "./types.ts";
|
||||
|
||||
export function createWorkbenchHostMissionControlAdapter(input: {
|
||||
controller: WorkbenchController<WorkbenchHostNodeData>;
|
||||
}): WorkbenchMissionControlAdapter<WorkbenchHostNodeData> {
|
||||
const getSnapshot = createDerivedSnapshotGetter<
|
||||
ReturnType<WorkbenchController<WorkbenchHostNodeData>["getSnapshot"]>,
|
||||
ReturnType<
|
||||
WorkbenchMissionControlAdapter<WorkbenchHostNodeData>["getSnapshot"]
|
||||
>
|
||||
>({
|
||||
deriveSnapshot(controllerSnapshot) {
|
||||
return {
|
||||
isLayoutLocked: controllerSnapshot.lockedLayout !== null,
|
||||
layoutConstraints: controllerSnapshot.layoutConstraints,
|
||||
surfaceSize: controllerSnapshot.surfaceSize,
|
||||
visibleNodes: selectVisibleWorkbenchNodes(controllerSnapshot)
|
||||
};
|
||||
},
|
||||
getSourceSnapshot() {
|
||||
return input.controller.getSnapshot();
|
||||
}
|
||||
});
|
||||
|
||||
return {
|
||||
applyLayoutPreset(nodeIds, preset, lock) {
|
||||
input.controller.commands.applyLayoutPreset(nodeIds, preset, lock);
|
||||
},
|
||||
getSnapshot,
|
||||
releaseLockedLayout() {
|
||||
input.controller.commands.releaseLockedLayout();
|
||||
},
|
||||
subscribe(listener) {
|
||||
return input.controller.subscribe(listener);
|
||||
}
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user