| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- /**
- * Code-execution seam for running one model-written program against host async bindings.
- * Runtimes know nothing about tools or sessions; consumers own those concerns.
- * @module @deepseek-ai/dsh-code-runtime
- */
- import { Context, Service } from 'cordis'
- import type { CodeRunRequest, CodeRunResult } from './types.ts'
- export type {
- CodeBindingFunction,
- CodeBindingNamespace,
- CodeRunFailure,
- CodeRunRequest,
- CodeRunResult,
- } from './types.ts'
- declare module 'cordis' {
- interface Context {
- codeRuntime: CodeRuntime
- }
- }
- /**
- * Registers one `ctx.codeRuntime` implementation. Program, budget, abort, and substrate
- * failures resolve in {@link CodeRunResult}; only seam misuse rejects. Implementations bridge
- * structured-cloneable bindings while treating programs as hostile peers, isolate runs from
- * one another, and terminate and await in-flight runs during disposal.
- */
- export abstract class CodeRuntime extends Service {
- /**
- * The source language {@link run} expects `program` to be written in, as a
- * lowercase identifier. Informational, not gating — a consumer that
- * generates language-specific presentation (typed SDK stubs, usage
- * instructions) switches on it and fails loud on a language it cannot
- * present. Well-known value: `'typescript'`.
- */
- abstract readonly language: string
- /**
- * The execution substrate, as a lowercase identifier. Informational, not
- * gating — a descriptor so deployments and diagnostics can tell backends
- * apart, not a security claim. Well-known values: `'worker-thread'`,
- * `'process'`, `'container'`.
- */
- abstract readonly isolation: string
- constructor(ctx: Context) {
- super(ctx, 'codeRuntime')
- }
- /**
- * Execute one program against the request's bindings and capture what it
- * emitted. See the class doc for the resolution contract (error is a result
- * field; rejection means seam misuse only).
- * @param request - the program, its bindings, and the abort signal; the
- * request carries everything the runtime acts on, with no hidden defaults.
- * @returns the run's outcome: completion value (when transferable), the
- * ordered log capture, and the failure (if any).
- */
- abstract run(request: CodeRunRequest): Promise<CodeRunResult>
- }
- export default CodeRuntime
|