Просмотр исходного кода

feat(herdr): store layout and add agentAreaPaneId tracking field

Michael Henke 1 месяц назад
Родитель
Сommit
83d7ad980d
2 измененных файлов с 12 добавлено и 0 удалено
  1. 9 0
      src/multiplexer/herdr/index.test.ts
  2. 3 0
      src/multiplexer/herdr/index.ts

+ 9 - 0
src/multiplexer/herdr/index.test.ts

@@ -432,6 +432,15 @@ describe('HerdrMultiplexer', () => {
     expect(herdr.isInsideSession()).toBe(false);
   });
 
+  test('stores layout from constructor', async () => {
+    const { HerdrMultiplexer } = await importFreshHerdr();
+    const herdr = new HerdrMultiplexer('main-vertical', 60);
+    // @ts-expect-error - accessing private for test
+    expect(herdr.layout).toBe('main-vertical');
+    // @ts-expect-error
+    expect(herdr.agentAreaPaneId).toBeNull();
+  });
+
   test('applyLayout is a no-op', async () => {
     const { HerdrMultiplexer } = await importFreshHerdr();
     const herdr = new HerdrMultiplexer('main-vertical', 60);

+ 3 - 0
src/multiplexer/herdr/index.ts

@@ -34,12 +34,15 @@ export class HerdrMultiplexer implements Multiplexer {
   private binaryPath: string | null = null;
   private hasChecked = false;
   private readonly parentPaneId = process.env.HERDR_PANE_ID;
+  private readonly layout: MultiplexerLayout;
   private readonly paneDirection: HerdrPaneDirection;
+  private agentAreaPaneId: string | null = null;
 
   constructor(layout: MultiplexerLayout = 'main-vertical', mainPaneSize = 60) {
     // Herdr does not support exact main pane sizing like tmux.
     // Layout config is mapped to pane split direction.
     void mainPaneSize;
+    this.layout = layout;
     this.paneDirection = getPaneDirection(layout);
   }