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
42 lines
1.5 KiB
TypeScript
42 lines
1.5 KiB
TypeScript
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);
|
|
}
|
|
};
|
|
}
|