use super::{
BuiltinSignature, Param, Ty, TY_ANY, TY_CLOSURE, TY_DICT, TY_DICT_OR_NIL, TY_LIST, TY_NIL,
TY_STRING, TY_STRING_OR_NIL,
};
const TY_WORKFLOW_TARGET: Ty = Ty::Union(&[TY_STRING, TY_DICT]);
const TY_SCHEMA_VALUE: Ty = Ty::Union(&[TY_DICT, Ty::Apply("Schema", &[TY_ANY])]);
pub(crate) const SIGNATURES: &[BuiltinSignature] = &[
BuiltinSignature::simple(
"assemble_context",
&[Param::new("options", TY_DICT)],
TY_DICT,
),
BuiltinSignature::simple(
"continue_as_new",
&[Param::new("target", TY_WORKFLOW_TARGET)],
TY_DICT,
),
BuiltinSignature::simple(
"select_artifacts_adaptive",
&[
Param::optional("artifacts", Ty::Union(&[TY_LIST, TY_NIL])),
Param::optional("policy", TY_DICT_OR_NIL),
],
TY_LIST,
),
BuiltinSignature::simple(
"workflow.continue_as_new",
&[Param::new("target", TY_WORKFLOW_TARGET)],
TY_DICT,
),
BuiltinSignature::simple(
"workflow.pause",
&[Param::new("target", TY_WORKFLOW_TARGET)],
TY_DICT,
),
BuiltinSignature::simple(
"workflow.publish_query",
&[
Param::new("target", TY_WORKFLOW_TARGET),
Param::new("name", TY_STRING),
Param::new("value", TY_ANY),
],
TY_DICT,
),
BuiltinSignature::simple(
"workflow.query",
&[
Param::new("target", TY_WORKFLOW_TARGET),
Param::new("name", TY_STRING),
],
TY_ANY,
),
BuiltinSignature::simple(
"workflow.receive",
&[Param::new("target", TY_WORKFLOW_TARGET)],
TY_DICT_OR_NIL,
),
BuiltinSignature::simple(
"workflow.respond_update",
&[
Param::new("target", TY_WORKFLOW_TARGET),
Param::new("request_id", TY_STRING),
Param::new("value", TY_ANY),
Param::optional("name", TY_STRING_OR_NIL),
],
TY_DICT,
),
BuiltinSignature::simple(
"workflow.resume",
&[Param::new("target", TY_WORKFLOW_TARGET)],
TY_DICT,
),
BuiltinSignature::simple(
"workflow.signal",
&[
Param::new("target", TY_WORKFLOW_TARGET),
Param::new("name", TY_STRING),
Param::optional("payload", TY_ANY),
],
TY_DICT,
),
BuiltinSignature::simple(
"workflow.status",
&[Param::new("target", TY_WORKFLOW_TARGET)],
TY_DICT,
),
BuiltinSignature::simple(
"workflow.update",
&[
Param::new("target", TY_WORKFLOW_TARGET),
Param::new("name", TY_STRING),
Param::optional("payload", TY_ANY),
Param::optional("options", TY_DICT_OR_NIL),
],
TY_ANY,
),
BuiltinSignature::simple(
"workflow_clone",
&[Param::new("workflow", TY_DICT)],
TY_DICT,
),
BuiltinSignature::simple(
"workflow_commit",
&[
Param::new("workflow", TY_DICT),
Param::optional("reason", TY_STRING_OR_NIL),
],
TY_DICT,
),
BuiltinSignature::simple(
"workflow_diff",
&[Param::new("left", TY_DICT), Param::new("right", TY_DICT)],
TY_DICT,
),
BuiltinSignature::simple(
"workflow_execute",
&[
Param::new("task", TY_STRING),
Param::new("workflow", TY_DICT),
Param::optional("artifacts", Ty::Union(&[TY_LIST, TY_NIL])),
Param::optional("options", TY_DICT_OR_NIL),
],
TY_DICT,
),
BuiltinSignature::simple(
"workflow_graph",
&[Param::optional("workflow", TY_DICT_OR_NIL)],
TY_DICT,
),
BuiltinSignature::simple(
"workflow_insert_node",
&[
Param::new("workflow", TY_DICT),
Param::new("node", TY_DICT),
Param::optional("edge", TY_DICT_OR_NIL),
],
TY_DICT,
),
BuiltinSignature::simple(
"workflow_inspect",
&[
Param::optional("workflow", TY_DICT_OR_NIL),
Param::optional("ceiling", TY_DICT_OR_NIL),
],
TY_DICT,
),
BuiltinSignature::simple(
"workflow_policy_report",
&[
Param::optional("workflow", TY_DICT_OR_NIL),
Param::optional("ceiling", TY_DICT_OR_NIL),
],
TY_DICT,
),
BuiltinSignature::simple(
"workflow_replace_node",
&[
Param::new("workflow", TY_DICT),
Param::new("node_id", TY_STRING),
Param::new("node", TY_DICT),
],
TY_DICT,
),
BuiltinSignature::simple(
"workflow_rewire",
&[
Param::new("workflow", TY_DICT),
Param::new("from", TY_STRING),
Param::new("to", TY_STRING),
Param::optional("branch", TY_STRING_OR_NIL),
],
TY_DICT,
),
BuiltinSignature::simple(
"workflow_set_auto_compact",
&[
Param::new("workflow", TY_DICT),
Param::new("node_id", TY_STRING),
Param::new("policy", TY_DICT),
],
TY_DICT,
),
BuiltinSignature::simple(
"workflow_set_context_policy",
&[
Param::new("workflow", TY_DICT),
Param::new("node_id", TY_STRING),
Param::new("policy", TY_DICT),
],
TY_DICT,
),
BuiltinSignature::simple(
"workflow_set_model_policy",
&[
Param::new("workflow", TY_DICT),
Param::new("node_id", TY_STRING),
Param::new("policy", TY_DICT),
],
TY_DICT,
),
BuiltinSignature::simple(
"workflow_set_output_visibility",
&[
Param::new("workflow", TY_DICT),
Param::new("node_id", TY_STRING),
Param::new("visibility", TY_STRING_OR_NIL),
],
TY_DICT,
),
BuiltinSignature::simple(
"workflow_typed_output_checkpoint",
&[
Param::new("name", TY_STRING),
Param::new("prompt", TY_STRING),
Param::new("schema", TY_SCHEMA_VALUE),
Param::optional("options", TY_DICT_OR_NIL),
Param::optional("validator", Ty::Union(&[TY_CLOSURE, TY_NIL])),
],
TY_DICT,
),
BuiltinSignature::simple(
"workflow_validate",
&[
Param::optional("workflow", TY_DICT_OR_NIL),
Param::optional("ceiling", TY_DICT_OR_NIL),
],
TY_DICT,
),
];