MCPcopy Index your code
hub / github.com/commandoperator/cmdop-sdk / callStream

Method callStream

node/src/transport.ts:314–348  ·  view source on GitHub ↗

Open a streaming call (machines.ask). Returns an AskStream.

(req: Envelope)

Source from the content-addressed store, hash-verified

312
313 /** Open a streaming call (machines.ask). Returns an {@link AskStream}. */
314 callStream(req: Envelope): AskStream {
315 const queue = new FrameQueue();
316 let started = false;
317 let id = 0;
318 const transport = this;
319
320 const source: StreamSource = {
321 get id() {
322 return id;
323 },
324 async *envelopes() {
325 if (!started) {
326 started = true;
327 await transport.ensureStarted();
328 id = transport.#nextId++;
329 req.id = id;
330 req.kind = Envelope_Kind.REQUEST;
331 transport.#pending.set(id, {
332 kind: "stream",
333 push: (e) => queue.push(e),
334 end: () => queue.end(),
335 fail: (e) => queue.fail(e),
336 });
337 transport.#write(req);
338 }
339 yield* queue.iterate();
340 },
341 async answer(env: Envelope) {
342 await transport.ensureStarted();
343 transport.#write(env);
344 },
345 };
346
347 return new AskStream(source);
348 }
349}

Callers 2

askMethod · 0.80
transport.test.tsFile · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected