From 350b9b8e247bb1c24f49a884fdade18e44b115eb Mon Sep 17 00:00:00 2001 From: Adam Malczewski Date: Thu, 25 Jun 2026 15:34:59 +0900 Subject: feat(ssh): wave 5a — exec-backend remote-backend factory handle MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit exec-backend declares remoteExecBackendFactoryHandle (a consumer-defined ServiceHandle<(computerId) => ExecBackend>) that the ssh package will provide (standard→core layering). The resolver's computerId-set branch now lazy-looks-up this factory (at tool-execute time, runtime) and calls it; if ssh isn't loaded, getService throws → a clear 'SSH remote execution is not configured' error. The computerId-undefined (local) branch is byte-identical to before. This is the seam wave 5b (the ssh package) plugs into. +tests for both branches. Verified: tsc -b EXIT 0, biome clean. No merge or push. --- packages/exec-backend/src/index.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'packages/exec-backend/src/index.ts') diff --git a/packages/exec-backend/src/index.ts b/packages/exec-backend/src/index.ts index 3135f79..30c12c8 100644 --- a/packages/exec-backend/src/index.ts +++ b/packages/exec-backend/src/index.ts @@ -2,4 +2,7 @@ export type { DirEntry, ExecBackend, ExecResult, SpawnParams, StatResult } from export { createExecBackendExtension, manifest } from "./extension.js"; export { createLocalExecBackend, localExecBackend } from "./local.js"; export type { ExecBackendResolver } from "./service.js"; -export { execBackendHandle } from "./service.js"; +export { + execBackendHandle, + remoteExecBackendFactoryHandle, +} from "./service.js"; -- cgit v1.2.3