use super::{
BuiltinSignature, Param, Ty, TY_ANY, TY_BOOL, TY_CLOSURE, TY_DICT, TY_DICT_OR_NIL, TY_FLOAT,
TY_INT, TY_LIST, TY_NIL, TY_STRING, TY_STRING_OR_NIL,
};
const TY_LIST_OR_DICT: Ty = Ty::Union(&[TY_LIST, TY_DICT]);
const TY_LIST_OR_DICT_OR_NIL: Ty = Ty::Union(&[TY_LIST, TY_DICT, TY_NIL]);
const TY_SCHEMA_VALUE: Ty = Ty::Union(&[TY_DICT, Ty::Apply("Schema", &[TY_ANY])]);
const TY_DICT_OR_LIST: Ty = Ty::Union(&[TY_DICT, TY_LIST]);
const TY_FLOAT_OR_NIL: Ty = Ty::Union(&[TY_FLOAT, TY_NIL]);
const TY_BOOL_OR_INT_OR_NIL: Ty = Ty::Union(&[TY_BOOL, TY_INT, TY_NIL]);
pub(crate) const SIGNATURES: &[BuiltinSignature] = &[
BuiltinSignature {
name: "add_assistant",
params: &[
Param::new("messages_or_transcript", TY_LIST_OR_DICT),
Param::new("content", TY_ANY),
],
returns: TY_LIST_OR_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "add_message",
params: &[
Param::new("messages_or_transcript", TY_LIST_OR_DICT),
Param::new("role", TY_STRING),
Param::new("content", TY_ANY),
],
returns: TY_LIST_OR_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "add_system",
params: &[
Param::new("messages_or_transcript", TY_LIST_OR_DICT),
Param::new("content", TY_ANY),
],
returns: TY_LIST_OR_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "add_tool_result",
params: &[
Param::new("messages_or_transcript", TY_LIST_OR_DICT),
Param::new("tool_use_id", TY_STRING),
Param::new("content", TY_ANY),
],
returns: TY_LIST_OR_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "add_user",
params: &[
Param::new("messages_or_transcript", TY_LIST_OR_DICT),
Param::new("content", TY_ANY),
],
returns: TY_LIST_OR_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "agent",
params: &[
Param::new("name", TY_STRING),
Param::optional("config", TY_DICT),
],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "agent_config",
params: &[Param::new("agent", TY_DICT), Param::new("prompt", TY_ANY)],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "agent_inject_feedback",
params: &[
Param::new("session_id", TY_STRING),
Param::new("kind", TY_STRING),
Param::new("content", TY_STRING),
],
returns: TY_NIL,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "agent_loop",
params: &[
Param::new("prompt", TY_STRING),
Param::optional("system", TY_STRING),
Param::optional("options", TY_DICT),
],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "agent_turn",
params: &[
Param::new("prompt", TY_STRING),
Param::optional("opts", TY_DICT),
],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "agent_name",
params: &[Param::new("agent", TY_DICT)],
returns: TY_STRING_OR_NIL,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "agent_session_ancestry",
params: &[Param::new("id", TY_STRING)],
returns: TY_DICT_OR_NIL,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "agent_session_claim_tool_format",
params: &[
Param::new("id", TY_STRING),
Param::new("tool_format", TY_STRING),
],
returns: TY_NIL,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "agent_session_close",
params: &[Param::new("id", TY_STRING)],
returns: TY_NIL,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "agent_session_compact",
params: &[
Param::new("id", TY_STRING),
Param::optional("opts", TY_DICT),
],
returns: TY_INT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "agent_session_current_id",
params: &[],
returns: TY_STRING_OR_NIL,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "agent_session_exists",
params: &[Param::new("id", TY_STRING)],
returns: TY_BOOL,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "agent_session_fork",
params: &[
Param::new("src", TY_STRING),
Param::optional("dst", TY_STRING),
],
returns: TY_STRING,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "agent_session_fork_at",
params: &[
Param::new("src", TY_STRING),
Param::new("keep_first", TY_INT),
Param::optional("dst", TY_STRING),
],
returns: TY_STRING,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "agent_session_inject",
params: &[Param::new("id", TY_STRING), Param::new("message", TY_ANY)],
returns: TY_NIL,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "agent_session_length",
params: &[Param::new("id", TY_STRING)],
returns: TY_INT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "agent_session_open",
params: &[Param::optional("id", TY_STRING)],
returns: TY_STRING,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "agent_session_reset",
params: &[Param::new("id", TY_STRING)],
returns: TY_NIL,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "agent_session_snapshot",
params: &[Param::new("id", TY_STRING)],
returns: TY_DICT_OR_NIL,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "agent_session_tool_format",
params: &[Param::new("id", TY_STRING)],
returns: TY_STRING_OR_NIL,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "agent_session_trim",
params: &[Param::new("id", TY_STRING), Param::new("keep_last", TY_INT)],
returns: TY_INT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "agent_subscribe",
params: &[
Param::new("session_id", TY_STRING),
Param::new("callback", TY_CLOSURE),
],
returns: TY_NIL,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "agent_trace",
params: &[],
returns: TY_LIST,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "agent_trace_summary",
params: &[],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "close_agent",
params: &[Param::new("handle", TY_ANY)],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "conversation",
params: &[],
returns: TY_LIST,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "list_agents",
params: &[],
returns: TY_LIST,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_budget",
params: &[Param::new("max_cost", Ty::Union(&[TY_FLOAT, TY_INT]))],
returns: TY_NIL,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_budget_remaining",
params: &[],
returns: TY_FLOAT_OR_NIL,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_call",
params: &[
Param::new("prompt", TY_STRING),
Param::optional("system", TY_STRING),
Param::optional("options", TY_DICT),
],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_call_safe",
params: &[
Param::new("prompt", TY_STRING),
Param::optional("system", TY_STRING),
Param::optional("options", TY_DICT),
],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_stream_call",
params: &[
Param::new("prompt", TY_STRING),
Param::optional("system", TY_STRING),
Param::optional("options", TY_DICT),
],
returns: Ty::Named("stream"),
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_call_structured",
params: &[
Param::new("prompt", TY_STRING),
Param::new("schema", TY_SCHEMA_VALUE),
Param::optional("options", TY_DICT),
],
returns: TY_ANY,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_call_structured_safe",
params: &[
Param::new("prompt", TY_STRING),
Param::new("schema", TY_SCHEMA_VALUE),
Param::optional("options", TY_DICT),
],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_call_structured_result",
params: &[
Param::new("prompt", TY_STRING),
Param::new("schema", TY_SCHEMA_VALUE),
Param::optional("options", TY_DICT),
],
returns: TY_ANY,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_completion",
params: &[
Param::new("prefix", TY_STRING),
Param::optional("suffix", TY_STRING),
Param::optional("system", TY_STRING),
Param::optional("options", TY_DICT),
],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_config",
params: &[Param::optional("provider", TY_STRING)],
returns: TY_DICT_OR_NIL,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_cost",
params: &[
Param::new("model", TY_STRING),
Param::new("input_tokens", TY_INT),
Param::new("output_tokens", TY_INT),
],
returns: TY_FLOAT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_healthcheck",
params: &[
Param::optional("provider_or_options", Ty::Union(&[TY_STRING, TY_DICT])),
Param::optional("options", TY_DICT),
],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_available_providers",
params: &[],
returns: TY_LIST,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_infer_provider",
params: &[Param::new("model_id", TY_STRING)],
returns: TY_STRING,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_info",
params: &[],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_mock",
params: &[Param::new("config", TY_DICT)],
returns: TY_NIL,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_mock_calls",
params: &[],
returns: TY_LIST,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_mock_clear",
params: &[],
returns: TY_NIL,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_mock_pop_scope",
params: &[],
returns: TY_NIL,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_mock_push_scope",
params: &[],
returns: TY_NIL,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_model_tier",
params: &[Param::new("model_id", TY_STRING)],
returns: TY_STRING,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_model_info",
params: &[Param::new("selector", TY_STRING)],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_known_models",
params: &[],
returns: TY_LIST,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_pick_model",
params: &[
Param::new("target", TY_STRING),
Param::optional("options", TY_DICT),
],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_provider_catalog",
params: &[],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_providers",
params: &[],
returns: TY_LIST,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_qc_default_model",
params: &[Param::new("provider", TY_STRING)],
returns: TY_STRING_OR_NIL,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_rate_limit",
params: &[
Param::new("provider", TY_STRING),
Param::optional("options", TY_DICT),
],
returns: TY_BOOL_OR_INT_OR_NIL,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_resolve_model",
params: &[Param::new("alias", TY_STRING)],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_session_cost",
params: &[],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_stream",
params: &[
Param::new("prompt", TY_STRING),
Param::optional("system", TY_STRING),
Param::optional("options", TY_DICT),
],
returns: Ty::Named("channel"),
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "llm_usage",
params: &[],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "resume_agent",
params: &[Param::new("target", TY_STRING)],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "send_input",
params: &[Param::new("handle", TY_ANY), Param::new("task", TY_STRING)],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "spawn_agent",
params: &[Param::new("config", TY_DICT)],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "sub_agent_run",
params: &[
Param::new("task", TY_STRING),
Param::optional("options", TY_DICT),
],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "transcript",
params: &[Param::optional("metadata", TY_DICT)],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "transcript_abandon",
params: &[Param::new("transcript", TY_LIST_OR_DICT)],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "transcript_add_asset",
params: &[
Param::new("transcript", TY_LIST_OR_DICT),
Param::new("asset", TY_DICT),
],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "transcript_archive",
params: &[Param::new("transcript", TY_LIST_OR_DICT)],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "transcript_assets",
params: &[Param::new("transcript", TY_LIST_OR_DICT)],
returns: TY_LIST,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "transcript_auto_compact",
params: &[
Param::new("messages", TY_LIST),
Param::optional("options", TY_DICT),
],
returns: TY_LIST,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "transcript_compact",
params: &[
Param::new("transcript", TY_LIST_OR_DICT),
Param::optional("options", TY_DICT),
],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "transcript_events",
params: &[Param::new("transcript", TY_LIST_OR_DICT)],
returns: TY_LIST,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "transcript_events_by_kind",
params: &[
Param::new("transcript", TY_LIST_OR_DICT_OR_NIL),
Param::new("kind", TY_STRING),
],
returns: TY_LIST,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "transcript_export",
params: &[Param::new("transcript", TY_LIST_OR_DICT)],
returns: TY_STRING,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "transcript_fork",
params: &[
Param::new("transcript", TY_LIST_OR_DICT),
Param::optional("options", TY_DICT),
],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "transcript_from_messages",
params: &[Param::new("messages_or_transcript", TY_LIST_OR_DICT)],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "transcript_id",
params: &[Param::new("transcript", TY_LIST_OR_DICT)],
returns: TY_STRING,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "transcript_import",
params: &[Param::new("text", TY_STRING)],
returns: TY_ANY,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "transcript_messages",
params: &[Param::new("transcript", TY_LIST_OR_DICT)],
returns: TY_LIST,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "transcript_render_full",
params: &[Param::new("transcript", TY_LIST_OR_DICT)],
returns: TY_STRING,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "transcript_render_visible",
params: &[Param::new("transcript", TY_LIST_OR_DICT)],
returns: TY_STRING,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "transcript_reset",
params: &[Param::optional("opts", TY_DICT)],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "transcript_resume",
params: &[Param::new("transcript", TY_LIST_OR_DICT)],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "transcript_stats",
params: &[Param::new("transcript", TY_LIST_OR_DICT_OR_NIL)],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "transcript_summarize",
params: &[
Param::new("transcript", TY_LIST_OR_DICT),
Param::optional("options", TY_DICT),
],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "transcript_summary",
params: &[Param::new("transcript", TY_LIST_OR_DICT)],
returns: TY_STRING_OR_NIL,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "wait_agent",
params: &[Param::new("handle", TY_ANY)],
returns: TY_DICT_OR_LIST,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
BuiltinSignature {
name: "worker_trigger",
params: &[Param::new("handle", TY_ANY), Param::new("payload", TY_ANY)],
returns: TY_DICT,
type_params: &[],
has_rest: false,
where_clauses: &[],
},
];