mirror of
https://github.com/hansjone/dsh-im-ops.git
synced 2026-10-09 01:53:21 +08:00
21 lines
774 B
JavaScript
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,
|
|
});
|
|
}
|