MCPcopy
hub / github.com/anomalyco/opencode / sdk

Function sdk

packages/opencode/test/cli/run/stream.transport.test.ts:416–452  ·  view source on GitHub ↗
(
  input: {
    stream?: EventStream
    globalStream?: GlobalEventStream
    subscribe?: OpencodeClient["event"]["subscribe"]
    globalEvent?: OpencodeClient["global"]["event"]
    promptAsync?: OpencodeClient["session"]["promptAsync"]
    status?: OpencodeClient["session"]["status"]
    messages?: OpencodeClient["session"]["messages"]
    children?: OpencodeClient["session"]["children"]
    permissions?: OpencodeClient["permission"]["list"]
    questions?: OpencodeClient["question"]["list"]
  } = {},
)

Source from the content-addressed store, hash-verified

414}
415
416function sdk(
417 input: {
418 stream?: EventStream
419 globalStream?: GlobalEventStream
420 subscribe?: OpencodeClient["event"]["subscribe"]
421 globalEvent?: OpencodeClient["global"]["event"]
422 promptAsync?: OpencodeClient["session"]["promptAsync"]
423 status?: OpencodeClient["session"]["status"]
424 messages?: OpencodeClient["session"]["messages"]
425 children?: OpencodeClient["session"]["children"]
426 permissions?: OpencodeClient["permission"]["list"]
427 questions?: OpencodeClient["question"]["list"]
428 } = {},
429) {
430 const client = new OpencodeClient()
431
432 const subscribe: OpencodeClient["event"]["subscribe"] = input.subscribe ?? (() => sse(input.stream ?? emptyStream()))
433 const globalEvent: OpencodeClient["global"]["event"] =
434 input.globalEvent ?? (() => globalSse(input.globalStream ?? wrapGlobalStream(input.stream ?? emptyStream())))
435 const promptAsync: OpencodeClient["session"]["promptAsync"] = input.promptAsync ?? (() => ok(undefined))
436 const status: OpencodeClient["session"]["status"] = input.status ?? (() => ok({}))
437 const messages: OpencodeClient["session"]["messages"] = input.messages ?? (() => ok([]))
438 const children: OpencodeClient["session"]["children"] = input.children ?? (() => ok([]))
439 const permissions: OpencodeClient["permission"]["list"] = input.permissions ?? (() => ok([]))
440 const questions: OpencodeClient["question"]["list"] = input.questions ?? (() => ok([]))
441
442 spyOn(client.event, "subscribe").mockImplementation(subscribe)
443 spyOn(client.global, "event").mockImplementation(globalEvent)
444 spyOn(client.session, "promptAsync").mockImplementation(promptAsync)
445 spyOn(client.session, "status").mockImplementation(status)
446 spyOn(client.session, "messages").mockImplementation(messages)
447 spyOn(client.session, "children").mockImplementation(children)
448 spyOn(client.permission, "list").mockImplementation(permissions)
449 spyOn(client.question, "list").mockImplementation(questions)
450
451 return client
452}
453
454describe("run stream transport", () => {
455 test("does not replay persisted main-session history during bootstrap by default", async () => {

Callers 15

getModelFunction · 0.85
SessionRouteFunction · 0.85
handleSelectFunction · 0.85
pickFunction · 0.85
PromptInputFunction · 0.85
TerminalFunction · 0.85
SessionTabSlotFunction · 0.85
SessionContextUsageFunction · 0.85
SessionContextTabFunction · 0.85
NewSessionViewFunction · 0.85
pendingKeyFunction · 0.85

Calls 5

emptyStreamFunction · 0.85
globalSseFunction · 0.85
wrapGlobalStreamFunction · 0.85
sseFunction · 0.70
okFunction · 0.70

Tested by

no test coverage detected