diff --git a/ecosystem.config.cjs b/ecosystem.config.cjs index 15c25a28..7a44b4e9 100644 --- a/ecosystem.config.cjs +++ b/ecosystem.config.cjs @@ -24,10 +24,13 @@ module.exports = { args: 'run src/servers/sidecar/email/index.ts', watch: false, }, + // The only sidecar run by `node` rather than `bun`, and the only one that is not TypeScript: node-pty + // is a native addon. It also does not use sidecar/connect.ts, and carries its own copy of the + // reconnect loop. { name: 'officer-pty', script: 'node', - args: 'src/servers/api/terminal/pty-sidecar.mjs', + args: 'src/servers/sidecar/pty/index.mjs', watch: false, }, { diff --git a/src/servers/api/users/provision.ts b/src/servers/api/users/provision.ts index 69b70b4e..9cdcebcf 100644 --- a/src/servers/api/users/provision.ts +++ b/src/servers/api/users/provision.ts @@ -3,7 +3,7 @@ import { join } from 'node:path'; import { DATA_PATH, getHomeDir, toShellUsername } from '@@/data-path'; import { generateContainerContext, generateClaudeSettings } from '@@/generate-container-context'; -const TEMPLATE_DIR = join(import.meta.dir, '../terminal/templates'); +const TEMPLATE_DIR = join(import.meta.dir, 'templates'); const copyTemplate = async (src: string, dest: string) => { if (existsSync(dest)) return; diff --git a/src/servers/api/terminal/templates/.tmux.conf b/src/servers/api/users/templates/.tmux.conf similarity index 100% rename from src/servers/api/terminal/templates/.tmux.conf rename to src/servers/api/users/templates/.tmux.conf diff --git a/src/servers/api/terminal/templates/.zshenv b/src/servers/api/users/templates/.zshenv similarity index 100% rename from src/servers/api/terminal/templates/.zshenv rename to src/servers/api/users/templates/.zshenv diff --git a/src/servers/api/terminal/templates/.zshrc b/src/servers/api/users/templates/.zshrc similarity index 100% rename from src/servers/api/terminal/templates/.zshrc rename to src/servers/api/users/templates/.zshrc diff --git a/src/servers/api/terminal/templates/starship-officer.toml b/src/servers/api/users/templates/starship-officer.toml similarity index 100% rename from src/servers/api/terminal/templates/starship-officer.toml rename to src/servers/api/users/templates/starship-officer.toml diff --git a/src/servers/api/terminal/pty-sidecar.mjs b/src/servers/sidecar/pty/index.mjs similarity index 100% rename from src/servers/api/terminal/pty-sidecar.mjs rename to src/servers/sidecar/pty/index.mjs diff --git a/src/servers/api/terminal/pty-sidecar.test.ts b/src/servers/sidecar/pty/index.test.ts similarity index 98% rename from src/servers/api/terminal/pty-sidecar.test.ts rename to src/servers/sidecar/pty/index.test.ts index 000de990..8ed7af62 100644 --- a/src/servers/api/terminal/pty-sidecar.test.ts +++ b/src/servers/sidecar/pty/index.test.ts @@ -8,7 +8,7 @@ import type { ServerWebSocket, Subprocess } from 'bun'; // // Nothing here touches the running officer — the sidecar dials API_URL, which is overridden per spawn. -const SIDECAR = 'src/servers/api/terminal/pty-sidecar.mjs'; +const SIDECAR = 'src/servers/sidecar/pty/index.mjs'; type Frame = Record;