Skip to content
API reference

hosted

Import
import * as api from "@fungi.computer/shiitake/hosted";
Kind Export Description
type alias HostedRun A parsed hostedRunSchema value.
type alias HostedPromptInput A parsed hostedPromptInputSchema value.
type alias HostedPromptOutput A parsed hostedPromptOutputSchema value.
type alias HostedModuleDescriptor A parsed hostedModuleDescriptorSchema value.
type alias HostedToolsInput A parsed hostedToolsInputSchema value.
type alias HostedToolsOutput A parsed hostedToolsOutputSchema value.
type alias HostedCallInput A parsed hostedCallInputSchema value.
type alias HostedCallOutput A parsed hostedCallOutputSchema value.
type alias HostedAgentExtension The guest side of one hosted extension. Inputs are already parsed by the App method door with the schemas above; outputs are bounded here.
constant agentExtensionMethodNames App method names a hosted extension’s backend serves.
constant hostedExtensionCapabilities Capabilities a hosted extension may request in this protocol version.
constant hostedRunSchema The run a hosted call is made for; the host derives it, never the model.
constant hostedPromptInputSchema agentExtensionPrompt input: the run whose model request needs sections.
constant hostedPromptOutputSchema agentExtensionPrompt output: at most 16 named sections of at most 8 KiB each.
constant hostedModuleDescriptorSchema A run’s tool module as at most 64 dotted operations with bounded JSON Schemas.
constant hostedToolsInputSchema agentExtensionTools input: the run the tools are captured for.
constant hostedToolsOutputSchema agentExtensionTools output: the run’s module, or null when it has none.
constant hostedCallInputSchema agentExtensionCall input: one operation, its input, and the host’s call identity.
constant hostedCallOutputSchema agentExtensionCall output: the operation’s JSON result.
function hostAgentExtension() Serve one extension’s prompt sections and tools to a remote Agent. Throws when the extension requests a capability hosting does not provide yet, so a build fails instead of silently dropping it.

HostedRuntype alias

Section titled “HostedRun”
Signature
type HostedRun = z.output<typeof hostedRunSchema>;

A parsed hostedRunSchema value.


HostedPromptInputtype alias

Section titled “HostedPromptInput”
Signature
type HostedPromptInput = z.output<typeof hostedPromptInputSchema>;

A parsed hostedPromptInputSchema value.


HostedPromptOutputtype alias

Section titled “HostedPromptOutput”
Signature
type HostedPromptOutput = z.output<typeof hostedPromptOutputSchema>;

A parsed hostedPromptOutputSchema value.


HostedModuleDescriptortype alias

Section titled “HostedModuleDescriptor”
Signature
type HostedModuleDescriptor = z.output<typeof hostedModuleDescriptorSchema>;

A parsed hostedModuleDescriptorSchema value.


HostedToolsInputtype alias

Section titled “HostedToolsInput”
Signature
type HostedToolsInput = z.output<typeof hostedToolsInputSchema>;

A parsed hostedToolsInputSchema value.


HostedToolsOutputtype alias

Section titled “HostedToolsOutput”
Signature
type HostedToolsOutput = z.output<typeof hostedToolsOutputSchema>;

A parsed hostedToolsOutputSchema value.


HostedCallInputtype alias

Section titled “HostedCallInput”
Signature
type HostedCallInput = z.output<typeof hostedCallInputSchema>;

A parsed hostedCallInputSchema value.


HostedCallOutputtype alias

Section titled “HostedCallOutput”
Signature
type HostedCallOutput = z.output<typeof hostedCallOutputSchema>;

A parsed hostedCallOutputSchema value.


HostedAgentExtensiontype alias

Section titled “HostedAgentExtension”
Signature
type HostedAgentExtension = Readonly<{
manifest: ExtensionManifestV0;
prompt: (input) => Promise<HostedPromptOutput>;
tools: (input) => Promise<HostedToolsOutput>;
call: (input) => Promise<HostedCallOutput>;
}>;

The guest side of one hosted extension. Inputs are already parsed by the App method door with the schemas above; outputs are bounded here.

agentExtensionMethodNamesconstant

Section titled “agentExtensionMethodNames”
Signature
const agentExtensionMethodNames: Readonly<{
prompt: "agentExtensionPrompt";
tools: "agentExtensionTools";
call: "agentExtensionCall";
}>;

App method names a hosted extension’s backend serves.


hostedExtensionCapabilitiesconstant

Section titled “hostedExtensionCapabilities”
Signature
const hostedExtensionCapabilities: readonly ExtensionCapabilityV0[];

Capabilities a hosted extension may request in this protocol version.


hostedRunSchemaconstant

Section titled “hostedRunSchema”
Signature
const hostedRunSchema: ZodObject<
{
sessionId: ZodString;
workId: ZodString;
origin: ZodNullable<
ZodObject<
{
extensionId: ZodString;
correlation: ZodNullable<ZodString>;
},
$strict
>
>;
},
$strict
>;

The run a hosted call is made for; the host derives it, never the model.


hostedPromptInputSchemaconstant

Section titled “hostedPromptInputSchema”
Signature
const hostedPromptInputSchema: ZodObject<
{
run: ZodObject<
{
sessionId: ZodString;
workId: ZodString;
origin: ZodNullable<
ZodObject<
{
extensionId: ZodString;
correlation: ZodNullable<ZodString>;
},
$strict
>
>;
},
$strict
>;
},
$strict
>;

agentExtensionPrompt input: the run whose model request needs sections.


hostedPromptOutputSchemaconstant

Section titled “hostedPromptOutputSchema”
Signature
const hostedPromptOutputSchema: ZodObject<
{
sections: ZodArray<
ZodObject<
{
name: ZodString;
text: ZodString;
},
$strict
>
>;
},
$strict
>;

agentExtensionPrompt output: at most 16 named sections of at most 8 KiB each.


hostedModuleDescriptorSchemaconstant

Section titled “hostedModuleDescriptorSchema”
Signature
const hostedModuleDescriptorSchema: ZodObject<
{
description: ZodOptional<ZodString>;
operations: ZodRecord<
ZodString,
ZodObject<
{
replay: ZodEnum<{
unsafe: "unsafe";
safe: "safe";
}>;
description: ZodOptional<ZodString>;
input: ZodJSONSchema;
output: ZodNullable<ZodJSONSchema>;
},
$strict
>
>;
},
$strict
>;

A run’s tool module as at most 64 dotted operations with bounded JSON Schemas.


hostedToolsInputSchemaconstant

Section titled “hostedToolsInputSchema”
Signature
const hostedToolsInputSchema: ZodObject<
{
run: ZodObject<
{
sessionId: ZodString;
workId: ZodString;
origin: ZodNullable<
ZodObject<
{
extensionId: ZodString;
correlation: ZodNullable<ZodString>;
},
$strict
>
>;
},
$strict
>;
},
$strict
> = hostedPromptInputSchema;

agentExtensionTools input: the run the tools are captured for.


hostedToolsOutputSchemaconstant

Section titled “hostedToolsOutputSchema”
Signature
const hostedToolsOutputSchema: ZodObject<
{
module: ZodNullable<
ZodObject<
{
description: ZodOptional<ZodString>;
operations: ZodRecord<
ZodString,
ZodObject<
{
replay: ZodEnum<{
unsafe: "unsafe";
safe: "safe";
}>;
description: ZodOptional<ZodString>;
input: ZodJSONSchema;
output: ZodNullable<ZodJSONSchema>;
},
$strict
>
>;
},
$strict
>
>;
},
$strict
>;

agentExtensionTools output: the run’s module, or null when it has none.


hostedCallInputSchemaconstant

Section titled “hostedCallInputSchema”
Signature
const hostedCallInputSchema: ZodObject<
{
run: ZodObject<
{
sessionId: ZodString;
workId: ZodString;
origin: ZodNullable<
ZodObject<
{
extensionId: ZodString;
correlation: ZodNullable<ZodString>;
},
$strict
>
>;
},
$strict
>;
operation: ZodString;
input: ZodJSONSchema;
invocation: ZodObject<
{
executionId: ZodString;
toolCallId: ZodOptional<ZodString>;
deadlineAt: ZodNullable<ZodNumber>;
},
$strict
>;
},
$strict
>;

agentExtensionCall input: one operation, its input, and the host’s call identity.


hostedCallOutputSchemaconstant

Section titled “hostedCallOutputSchema”
Signature
const hostedCallOutputSchema: ZodObject<
{
value: ZodJSONSchema;
},
$strict
>;

agentExtensionCall output: the operation’s JSON result.

hostAgentExtension()function

Section titled “hostAgentExtension()”
Signature
function hostAgentExtension(rostered): HostedAgentExtension;

Serve one extension’s prompt sections and tools to a remote Agent. Throws when the extension requests a capability hosting does not provide yet, so a build fails instead of silently dropping it.

Parameter Type
rostered RosteredExtensionV0

HostedAgentExtension