feat: support compact command across IM channels

This commit is contained in:
xmanrui 2026-08-18 23:20:05 +08:00
parent 4545cfe9c5
commit 1cc7a26f30
40 changed files with 728 additions and 136 deletions

View file

@ -0,0 +1,21 @@
/**
* 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,
});
}