dsh-im-ops/plugin-src/host/harness-command-executor.mjs

21 lines
774 B
JavaScript

/**
* Adapt the Host's Typert command gateway to the channel Harness client.
* Programmatic production fixtures may omit the gateway and exercise other assembly paths.
*/
export function createHarnessCommandExecutor(ctx, provided) {
if (provided !== undefined) {
if (typeof provided !== 'function') throw new TypeError('commandExecutor must be a function');
return provided;
}
const gateway = ctx?.typertGateway;
if (!gateway) return undefined;
if (typeof gateway.invoke !== 'function') {
throw new TypeError('dsh-im requires a callable ctx.typertGateway');
}
return (sessionId, line, options = {}) => gateway.invoke({
namespace: 'commands',
method: 'execute',
args: { agentId: sessionId, line },
signal: options.signal,
});
}