Skip to content
API reference

http

Import
import * as api from "@fungi.computer/shiitake/http";
Kind Export Description
type alias ShiitakeHttpEnv Hono variables Shiitake’s routes read. Only the host’s own middleware sets shiitakeMeta; no request body can, because every body schema is closed.
type alias ShiitakeSessionResolver Resolve one addressed Session for Shiitake’s HTTP transport. meta is what the host’s middleware attached to this request; a host that attaches none may ignore it.
function createShiitakeHttpRoutes() Build Shiitake’s typed HTTP routes around an existing Session owner.

ShiitakeHttpEnvtype alias

Section titled “ShiitakeHttpEnv”
Signature
type ShiitakeHttpEnv = object;

Hono variables Shiitake’s routes read. Only the host’s own middleware sets shiitakeMeta; no request body can, because every body schema is closed.

Signature
Variables: object;
Signature
shiitakeMeta: Json | undefined;

Opaque host metadata for prompts and operator lines on this request.


ShiitakeSessionResolvertype alias

Section titled “ShiitakeSessionResolver”
Signature
type ShiitakeSessionResolver = (
sessionId,
meta,
) => Promise<ShiitakeSession> | ShiitakeSession;

Resolve one addressed Session for Shiitake’s HTTP transport. meta is what the host’s middleware attached to this request; a host that attaches none may ignore it.

Parameter Type
sessionId string
meta Json | undefined

| Promise<ShiitakeSession> | ShiitakeSession

createShiitakeHttpRoutes()function

Section titled “createShiitakeHttpRoutes()”
Signature
function createShiitakeHttpRoutes(
resolveSession,
listSessions,
createSession,
deleteSession,
resolveExtensions,
): Hono<
ShiitakeHttpEnv,
object &
object &
object &
object &
object &
object &
object &
object &
object &
object &
object &
object &
object &
object &
object,
"/",
"/sessions/:sessionId/events"
>;

Build Shiitake’s typed HTTP routes around an existing Session owner.

Parameter Type
resolveSession ShiitakeSessionResolver
listSessions (after?) => Promise<Readonly<{ sessions: readonly SessionSummaryRow[]; next: string | undefined; }>>
createSession (requestId) => Promise<string>
deleteSession (sessionId) => Promise<boolean>
resolveExtensions () => | Readonly<{ list: () => Promise<readonly Readonly<{ id: string; version: string; revision: string; status: "running" | "stopped"; reason: string | null; stoppedAt: number | null; }>[]>; resume: (extensionId) => Promise<Readonly<{ id: string; version: string; revision: string; status: "running" | "stopped"; reason: string | null; stoppedAt: number | null; }>>; call: (extensionId, command, input) => Promise<Json>; }> | Promise<Readonly<{ list: () => Promise<readonly Readonly<{ id: string; version: string; revision: string; status: … | …; reason: … | …; stoppedAt: … | …; }>[]>; resume: (extensionId) => Promise<Readonly<{ id: string; version: string; revision: string; status: "running" | "stopped"; reason: string | null; stoppedAt: number | null; }>>; call: (extensionId, command, input) => Promise<Json>; }>>

Hono<ShiitakeHttpEnv, object & object & object & object & object & object & object & object & object & object & object & object & object & object & object, "/", "/sessions/:sessionId/events">