@stigmer/mcp-server 3.34.0 → 3.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -201,7 +201,7 @@ data:
201
201
 
202
202
  Expected formats:
203
203
  Agent execution: aex_<26-char-ulid>
204
- Workflow execution: wex_<26-char-ulid>`)}async function cancelExecution(serverAddress,token,executionId,reason){return resolveExecutionType(executionId)==="agent"?cancelAgentExecution(serverAddress,token,executionId,reason):cancelWorkflowExecution(serverAddress,token,executionId,reason)}async function cancelAgentExecution(serverAddress,token,id,reason){let desc=`agent execution "${id}"`;return withTransport(serverAddress,token,async(transport,callOptions)=>{try{let current=await createClient(AgentExecutionQueryController,transport).get({value:id},callOptions),phase=current.status?.phase??ExecutionPhase.EXECUTION_PHASE_UNSPECIFIED;if(TERMINAL_AGENT_PHASES.has(phase))return wrapAgent(current,!0);let cancelled=await createClient(AgentExecutionCommandController,transport).cancel({id,reason},callOptions);return wrapAgent(cancelled,!1)}catch(err){throw rpcError(err,desc)}})}async function cancelWorkflowExecution(serverAddress,token,id,reason){let desc=`workflow execution "${id}"`;return withTransport(serverAddress,token,async(transport,callOptions)=>{try{let current=await createClient(WorkflowExecutionQueryController,transport).get({value:id},callOptions),phase=current.status?.phase??ExecutionPhase2.EXECUTION_PHASE_UNSPECIFIED;if(TERMINAL_WORKFLOW_PHASES.has(phase))return wrapWorkflow(current,!0);let cancelled=await createClient(WorkflowExecutionCommandController,transport).cancel({id,reason},callOptions);return wrapWorkflow(cancelled,!1)}catch(err){throw rpcError(err,desc)}})}function wrapAgent(execution,alreadyTerminal){let{totalMessages,data}=compactExecution(execution,DEFAULT_MESSAGE_LIMIT);return JSON.stringify({already_terminal:alreadyTerminal,view:"compact",total_messages:totalMessages,execution:data},null,2)}function wrapWorkflow(execution,alreadyTerminal){return JSON.stringify({already_terminal:alreadyTerminal,execution:JSON.parse(toProtoJson(WorkflowExecutionSchema,execution))},null,2)}function registerExecutionControlTools(server,target){return server.registerTool("cancel_execution",{description:"Gracefully cancel a running agent (aex_*) or workflow (wex_*) execution \u2014 the kind is inferred from the ID prefix. Cancellation is terminal: the run stops after cleanup and cannot be resumed. Executions already in a terminal phase are returned with already_terminal=true instead of an error.",inputSchema:{execution_id:external_exports.string().describe("Execution ID to cancel (aex_* or wex_* format)."),reason:external_exports.string().optional().describe("Human-readable reason for the cancellation, stored in the audit trail.")}},(args,extra)=>textOrError(()=>cancelExecution(target.serverAddress,resolveToken(extra,target.apiKey),args.execution_id,args.reason??""))),["cancel_execution"]}async function fetchMcpServer(serverAddress,token,org,slug){return withClient(McpServerQueryController,serverAddress,token,async(client,callOptions)=>{try{let mcpServer=await client.getByReference({org,kind:ApiResourceKind.mcp_server,slug},callOptions);return toProtoJson(McpServerSchema,mcpServer)}catch(err){throw rpcError(err,`MCP server "${slug}" in org "${org}"`)}})}function registerMcpServerResources(server,target){return registerResource(server,target,{name:"stigmer_mcp_server",title:"Stigmer MCP Server",description:"Full definition of a Stigmer MCP server, identified by organization and slug.",template:"stigmer://mcp-servers/{org}/{slug}",fetch:fetchMcpServer}),["stigmer_mcp_server"]}var McpServerInputShape={name:external_exports.string().describe("Human-readable name of the resource."),slug:external_exports.string().optional().describe("URL-friendly identifier (lowercase alphanumeric with hyphens). Auto-generated from name if omitted."),org:external_exports.string().describe("Organization that owns this resource (e.g. acme)."),visibility:external_exports.string().optional().describe("Resource visibility, by enum name. Applied at create; on updates a changed value is landed through the guarded UpdateVisibility RPC. Omit to leave unchanged. Allowed values: visibility_private, visibility_org, visibility_platform."),labels:external_exports.record(external_exports.string()).optional().describe("Key-value labels for organization and filtering."),tags:external_exports.array(external_exports.string()).optional().describe("Tags for categorization and discovery."),description:external_exports.string().optional().describe("Human-readable description for marketplace display and documentation. Should explain what this MCP server does and its primary use cases. Example: 'GitHub MCP server for repository operations, code search, and PR management'"),icon_url:external_exports.string().optional().describe("Icon URL for UI display in marketplace and agent configuration screens. Should be a publicly accessible URL to an image (SVG, PNG, or JPEG). Example: 'https://github.githubassets.com/favicons/favicon.svg'"),stdio:external_exports.lazy(()=>StdioServerConfigInputSchema).optional().describe("stdio-based server (subprocess with stdin/stdout communication). Most common type - used for Node.js, Python, and other CLI-based MCP servers."),http:external_exports.lazy(()=>HttpServerConfigInputSchema).optional().describe("HTTP-based server (HTTP + Server-Sent Events communication). Used for remote/managed MCP services accessible over the network."),default_enabled_tools:external_exports.array(external_exports.string()).optional().describe("Default tools to enable from this MCP server. Empty list means all tools are enabled by default. Applies whenever an agent's McpServerUsage.enabled_tools is empty."),env:external_exports.record(external_exports.lazy(()=>EnvVarDeclarationInputSchema2)).optional().describe("Environment variable declarations for this MCP server. Keys are variable names; values describe their metadata and optionality."),pinned_tool_approvals:external_exports.array(external_exports.lazy(()=>ToolApprovalPolicyInputSchema)).optional().describe("Tools pinned by the MCP server owner to always require approval."),repository_url:external_exports.string().optional().describe("URL of the upstream source repository for this MCP server. Shown in the marketplace so users can inspect the implementation for trust and transparency. Example: 'https://github.com/modelcontextprotocol/servers'"),github_stars:external_exports.number().optional().describe("GitHub star count at the time of curation. Used as a popularity signal in marketplace display. 0 if unknown or non-GitHub repository."),auth:external_exports.lazy(()=>McpServerAuthInputSchema).optional().describe("OAuth authentication configuration for automated credential acquisition. When set, the MCP server's Connect page offers an OAuth flow instead of (or in addition to) manual credential entry. The acquired access token is stored in a system-managed environment (identified by grant.environment_id) as the env var named by auth.target_env_var. That env var must also be declared in env so the execution pipeline knows about it.")},McpServerInputSchema=external_exports.object(McpServerInputShape),StdioServerConfigInputSchema=external_exports.object({command:external_exports.string().describe("Command to execute the MCP server. This is the executable name or path. Examples: 'npx', 'python', 'node', './custom-mcp-server'"),args:external_exports.array(external_exports.string()).optional().describe("Arguments to pass to the command. Argument values can reference environment variables using ${VAR_NAME} syntax. These placeholders are resolved at runtime from the execution environment (same source as HTTP header/query param placeholders). This enables MCP servers that take core configuration as positional CLI arguments (e.g. database connection URLs, directory paths) to be parameterized per-user through env declarations. Resolution uses strict mode: missing variables produce a clear error rather than passing a literal '${VAR}' to the subprocess. Note: resolved values appear in the subprocess argv, which is visible via /proc/<pid>/cmdline within the container. In the containerized agent-runner environment this is not a practical concern, but callers should be aware when debugging. Examples: ['-y', '@modelcontextprotocol/server-github'] ['-y', '@modelcontextprotocol/server-postgres', '${POSTGRES_CONNECTION_URL}'] ['-m', 'mcp_server_sqlite', '--db-path', '${DB_PATH}/data.sqlite']"),working_dir:external_exports.string().optional().describe("Working directory for the process. If not specified, the process inherits the agent runner's working directory. Use absolute paths or paths relative to the agent runner's context.")}),HttpServerConfigInputSchema=external_exports.object({url:external_exports.string().describe("Base URL of the MCP server endpoint. Must be a valid HTTP or HTTPS URL. Examples: - 'http://localhost:3000/mcp' - 'https://mcp.example.com/v1' - 'https://api.company.com/mcp/github'"),headers:external_exports.record(external_exports.string()).optional().describe("HTTP headers to include with every request. Use for authentication, API versioning, or custom routing. Header values can reference environment variables using ${VAR_NAME} syntax. These placeholders are resolved at runtime from AgentInstance's environment. Examples: 'Authorization': 'Bearer ${API_TOKEN}' 'X-API-Version': '2024-01' 'X-Tenant-ID': '${TENANT_ID}'"),query_params:external_exports.record(external_exports.string()).optional().describe("Query parameters to append to the URL. Values can reference environment variables using ${VAR_NAME} syntax. Examples: 'region': '${AWS_REGION}' 'version': 'v1'"),timeout_seconds:external_exports.number().optional().describe("Timeout for HTTP requests in seconds. Applies to both the initial connection and response streaming. Default: 30 seconds if not specified. Set higher values for MCP servers that perform long-running operations.")}),EnvVarDeclarationInputSchema2=external_exports.object({is_secret:external_exports.boolean().optional().describe("Whether the resolved value should be treated as a secret."),description:external_exports.string().optional().describe("Human-readable description shown in the UI credential form. Should explain what the variable is used for and where to obtain it."),optional:external_exports.boolean().optional().describe("Whether this variable is optional.")}),ToolApprovalPolicyInputSchema=external_exports.object({tool_name:external_exports.string().optional().describe("Name of the tool (must match tools/list from MCP server exactly). Case-sensitive matching against tool names reported by the MCP server. Example: 'delete_repository', 'send_email', 'execute_sql'"),message:external_exports.string().optional().describe("Human-readable message shown to user when approval is requested. Supports {{args.field}} placeholders for dynamic content. If empty, a default message is generated: 'Execute tool: {tool_name}' Guidelines for effective messages: - Be specific about what will happen - Include the most important argument values using placeholders - Keep under 100 characters for UI display - Use action verbs: 'Delete', 'Send', 'Execute', 'Create'"),from_destructive_hint:external_exports.boolean().optional().describe("True when the connect-time fail-closed tightener force-gated this tool because the server's own MCP annotation declared destructiveHint=true, rather than the classifier (or a human) gating it. Lets the runner attribute a tightened tool to its true provenance (ApprovalPolicySource.APPROVAL_POLICY_SOURCE_ANNOTATION_DESTRUCTIVE_TIGHTEN) instead of collapsing it into the classifier default. Carries no enforcement weight \u2014 gating is decided by presence in this list \u2014 so an absent/false value simply means 'not attributed to the destructiveHint tightener'. Set only on entries written to McpServerStatus.tool_approvals (the classifier layer). It is meaningless on McpServerSpec.pinned_tool_approvals (a human pin is, by definition, a pinned override) and left false there.")}),OauthAppRefInputSchema=external_exports.object({org:external_exports.string().optional().describe("Organization that owns the referenced resource. When non-empty: must be a valid org slug (lowercase alphanumeric with hyphens, starts with a letter, 1-63 characters). Example: 'stigmer', 'acme-corp'. When empty: the reference is relative \u2014 the server resolves it to the parent resource's organization at write time. All stored and returned references always have org populated (absolute form). Use empty org for same-org references (the common case). An explicit other org is accepted only when that organization is a platform that shares the resource with yours (visibility_platform)."),slug:external_exports.string().describe("Resource slug (user-friendly identifier, unique within org). Format: lowercase alphanumeric with hyphens, must start with a letter and end with a letter or digit (e.g., 'web-search', 'code-reviewer'). Length: 2-63 characters.")}),McpServerAuthInputSchema=external_exports.object({oauth_app_ref:external_exports.lazy(()=>OauthAppRefInputSchema).optional().describe("Reference to an OAuthApp for vendor-specific OAuth. When empty: the server supports the MCP Authorization spec (DCR + PKCE). Stigmer discovers the authorization server metadata, registers a client via DCR, and performs the authorization code flow with PKCE \u2014 all automatically at connect time. When set: Stigmer uses the referenced OAuthApp's client credentials to perform the OAuth authorization code flow with the vendor on behalf of the user. The OAuthApp must belong to the same organization as the McpServer: an OAuth app holds vendor credentials and is never platform-visible, so no cross-organization reference to one is accepted."),target_env_var:external_exports.string().optional().describe("The env var where the acquired access token is stored. Must correspond to an entry in env so the execution pipeline resolves it. The refresh token is stored as {target_env_var}_REFRESH_TOKEN by convention. Both are written to the grant's managed environment."),token_lifetime_hint:external_exports.string().optional().describe("Informational hint about expected token lifetime for UI display. Helps users understand when re-authentication may be needed. Empty means unknown. Examples: '1h', '2h', '90d', 'never'."),scope_hints:external_exports.array(external_exports.string()).optional().describe("Optional scope hints for UI display before the OAuth flow starts. For DCR servers: shown to the user since actual scopes are discovered at connect time during authorization server metadata retrieval. For vendor OAuth: informational (scopes are defined on the OAuthApp)."),discovery_url:external_exports.string().optional().describe("Optional URL for OAuth authorization server discovery on stdio servers. HTTP servers do not need this: the platform derives the discovery endpoint from http.url (fetching /.well-known/oauth-authorization-server relative to the server URL). Stdio servers have no URL, so DCR discovery has nothing to derive from. Set this field to the base URL of the vendor's OAuth authorization server to enable DCR for a stdio-based MCP server. Resolution priority: 1. discovery_url (if set \u2014 used for both stdio and HTTP) 2. http.url (default for HTTP servers) Ignored when oauth_app_ref is set (vendor OAuth uses OAuthApp endpoints directly, no discovery needed)."),oauth_only:external_exports.boolean().optional().describe("Whether the server's endpoint rejects manually-entered static tokens. Some hosted MCP endpoints (e.g. Notion, Monday) only accept an access token obtained through their OAuth flow \u2014 a personal API token or PAT pasted into the credential form is rejected with a 401. For these servers OAuth is not merely the preferred path, it is the only path that works. When true, the connect surfaces present OAuth as the sole credential option and suppress the 'enter token manually' affordance, so users are never sent down a path that cannot succeed. When false (the default), a static token remains a valid alternative \u2014 appropriate for API-key servers (e.g. Tavily) and for vendor endpoints that also accept a PAT (e.g. GitHub). This is a structural fact about the endpoint, not observable from the spec shape alone (an OAuth-only server and a PAT-capable server can have identical auth blocks), so it must be declared explicitly.")});function mcpServerInputToProto(input){let slug=input.slug&&input.slug.length>0?input.slug:generateSlug(input.name),spec=create(McpServerSpecSchema);if(input.description!==void 0&&(spec.description=input.description),input.icon_url!==void 0&&(spec.iconUrl=input.icon_url),input.stdio!==void 0&&(spec.serverType={case:"stdio",value:stdioServerConfigInputToProto(input.stdio)}),input.http!==void 0&&(spec.serverType={case:"http",value:httpServerConfigInputToProto(input.http)}),input.default_enabled_tools!==void 0&&(spec.defaultEnabledTools=input.default_enabled_tools),input.env!==void 0)for(let[k,v]of Object.entries(input.env))spec.env[k]=envVarDeclarationInputToProto2(v);return input.pinned_tool_approvals!==void 0&&(spec.pinnedToolApprovals=input.pinned_tool_approvals.map(toolApprovalPolicyInputToProto)),input.repository_url!==void 0&&(spec.repositoryUrl=input.repository_url),input.github_stars!==void 0&&(spec.githubStars=input.github_stars),input.auth!==void 0&&(spec.auth=mcpServerAuthInputToProto(input.auth)),Object.assign(create(McpServerSchema),{apiVersion:"agentic.stigmer.ai/v1",kind:"McpServer",metadata:Object.assign(create(ApiResourceMetadataSchema),{name:input.name,slug,org:input.org,...input.visibility!==void 0&&{visibility:enumFromString(ApiResourceVisibility,input.visibility)},...input.labels!==void 0&&{labels:input.labels},...input.tags!==void 0&&{tags:input.tags}}),spec})}function stdioServerConfigInputToProto(input){let result=create(StdioServerConfigSchema);return input.command!==void 0&&(result.command=input.command),input.args!==void 0&&(result.args=input.args),input.working_dir!==void 0&&(result.workingDir=input.working_dir),result}function httpServerConfigInputToProto(input){let result=create(HttpServerConfigSchema);return input.url!==void 0&&(result.url=input.url),input.headers!==void 0&&(result.headers=input.headers),input.query_params!==void 0&&(result.queryParams=input.query_params),input.timeout_seconds!==void 0&&(result.timeoutSeconds=input.timeout_seconds),result}function envVarDeclarationInputToProto2(input){let result=create(EnvVarDeclarationSchema);return input.is_secret!==void 0&&(result.isSecret=input.is_secret),input.description!==void 0&&(result.description=input.description),input.optional!==void 0&&(result.optional=input.optional),result}function toolApprovalPolicyInputToProto(input){let result=create(ToolApprovalPolicySchema);return input.tool_name!==void 0&&(result.toolName=input.tool_name),input.message!==void 0&&(result.message=input.message),input.from_destructive_hint!==void 0&&(result.fromDestructiveHint=input.from_destructive_hint),result}function oauthAppRefInputToProto(input){return create(ApiResourceReferenceSchema,{org:input.org,slug:input.slug,kind:ApiResourceKind.oauth_app})}function mcpServerAuthInputToProto(input){let result=create(McpServerAuthSchema);return input.oauth_app_ref!==void 0&&(result.oauthAppRef=oauthAppRefInputToProto(input.oauth_app_ref)),input.target_env_var!==void 0&&(result.targetEnvVar=input.target_env_var),input.token_lifetime_hint!==void 0&&(result.tokenLifetimeHint=input.token_lifetime_hint),input.scope_hints!==void 0&&(result.scopeHints=input.scope_hints),input.discovery_url!==void 0&&(result.discoveryUrl=input.discovery_url),input.oauth_only!==void 0&&(result.oauthOnly=input.oauth_only),result}async function applyMcpServer(serverAddress,token,input){let server=mcpServerInputToProto(input),desc=`mcp server "${server.metadata?.slug??""}" in org "${server.metadata?.org??""}"`;return withClient(McpServerCommandController,serverAddress,token,async(client,callOptions)=>{try{let applied=await client.apply(server,callOptions),result=await applyDeclaredVisibility(client,callOptions,applied,server.metadata?.visibility??ApiResourceVisibility.api_resource_visibility_unspecified);return toProtoJson(McpServerSchema,result)}catch(err){throw rpcError(err,desc)}})}async function deleteMcpServer(serverAddress,token,org,slug){let desc=`MCP server "${slug}" in org "${org}"`;return withTransport(serverAddress,token,async(transport,callOptions)=>{let query=createClient(McpServerQueryController,transport),id;try{id=(await query.getByReference({org,kind:ApiResourceKind.mcp_server,slug},callOptions)).metadata?.id??""}catch(err){throw rpcError(err,desc)}let command=createClient(McpServerCommandController,transport);try{let deleted=await command.delete({resourceId:id},callOptions);return toProtoJson(McpServerSchema,deleted)}catch(err){throw rpcError(err,desc)}})}function registerMcpServerTools(server,target){return server.registerTool("get_mcp_server",{description:"Get full details of a Stigmer MCP server by its org and slug (e.g. org=acme slug=my-server).",inputSchema:{org:external_exports.string().describe("Organization slug that owns the MCP server (e.g. acme)."),slug:external_exports.string().describe("MCP server slug \u2014 the unique identifier within the org (e.g. my-server).")}},(args,extra)=>textOrError(()=>fetchMcpServer(target.serverAddress,resolveToken(extra,target.apiKey),args.org,args.slug))),server.registerTool("apply_mcp_server",{description:"Create or update a Stigmer MCP server definition (idempotent). Provide identity fields (name, org) and server configuration (stdio/http, tools, env, etc.).",inputSchema:McpServerInputShape},(args,extra)=>textOrError(()=>applyMcpServer(target.serverAddress,resolveToken(extra,target.apiKey),args))),server.registerTool("delete_mcp_server",{description:"Delete a Stigmer MCP server definition by its org and slug. Returns the deleted MCP server.",inputSchema:{org:external_exports.string().describe("Organization slug that owns the MCP server (e.g. acme)."),slug:external_exports.string().describe("MCP server slug \u2014 the unique identifier within the org (e.g. github).")}},(args,extra)=>textOrError(()=>deleteMcpServer(target.serverAddress,resolveToken(extra,target.apiKey),args.org,args.slug))),["get_mcp_server","apply_mcp_server","delete_mcp_server"]}var MEMORY_ORG_HEADER="x-stigmer-memory-org",MEMORY_AGENT_ID_HEADER="x-stigmer-memory-agent-id",MEMORY_SESSION_ID_HEADER="x-stigmer-memory-session-id",MEMORY_EXECUTION_ID_HEADER="x-stigmer-memory-execution-id",MEMORY_ORG_ENV="STIGMER_MEMORY_ORG",MEMORY_AGENT_ID_ENV="STIGMER_MEMORY_AGENT_ID",MEMORY_SESSION_ID_ENV="STIGMER_MEMORY_SESSION_ID",MEMORY_EXECUTION_ID_ENV="STIGMER_MEMORY_EXECUTION_ID";function loadCaptureContextFromEnv(env=process.env){return{org:env[MEMORY_ORG_ENV]??"",agentId:env[MEMORY_AGENT_ID_ENV]??"",sessionId:env[MEMORY_SESSION_ID_ENV]??"",agentExecutionId:env[MEMORY_EXECUTION_ID_ENV]??""}}function resolveCaptureContext(extra,startup){let headers=extra?.requestInfo?.headers;return headers===void 0?startup:{org:headerValue(headers,MEMORY_ORG_HEADER),agentId:headerValue(headers,MEMORY_AGENT_ID_HEADER),sessionId:headerValue(headers,MEMORY_SESSION_ID_HEADER),agentExecutionId:headerValue(headers,MEMORY_EXECUTION_ID_HEADER)}}function headerValue(headers,name){let direct=headers[name];if(direct!==void 0)return Array.isArray(direct)?direct[0]??"":direct;let lower=name.toLowerCase();for(let[key,value]of Object.entries(headers))if(key.toLowerCase()===lower&&value!==void 0)return Array.isArray(value)?value[0]??"":value;return""}var PROPOSED_OUTCOME="Proposed \u2014 the user decides. Nothing is remembered unless they confirm this fact.";async function proposeMemory(serverAddress,token,fact,context){let request3=create(MemorySchema,{apiVersion:"agentic.stigmer.ai/v1",kind:"Memory",metadata:create(ApiResourceMetadataSchema,{org:context.org}),spec:create(MemorySpecSchema,{content:fact,provenance:create(MemoryProvenanceSchema,{agentId:context.agentId,sessionId:context.sessionId,agentExecutionId:context.agentExecutionId})})});return withClient(MemoryCommandController,serverAddress,token,async(client,opts)=>{let created=await client.create(request3,opts),answer={outcome:PROPOSED_OUTCOME,memory:toJson(MemorySchema,created,{useProtoFieldName:!0})};return JSON.stringify(answer,null,2)})}var DOMAIN_CODES3=new Set([Code.PermissionDenied,Code.InvalidArgument,Code.FailedPrecondition]);async function memoryResult(toolContext,produce){try{return textResult(await produce())}catch(err){let ce=ConnectError.from(err);return DOMAIN_CODES3.has(ce.code)?{content:[{type:"text",text:JSON.stringify(domainError3(ce))}],isError:!0}:errorResult(rpcError(ce,toolContext))}}function domainError3(ce){let payload={error:ce.rawMessage,code:grpcStatusName3(ce.code)},info=ce.findDetails(ErrorInfoSchema)[0];return info&&info.reason!==""&&(payload.reason=info.reason),payload}function grpcStatusName3(code){return Code[code].replace(/([a-z0-9])([A-Z])/g,"$1_$2").toUpperCase()}function registerMemoryTools(server,target,startupContext){return server.registerTool("remember",{description:'Propose one durable fact about the person you are assisting, to be recalled in their future sessions \u2014 a stable preference, situation, or way of working (e.g. "Prefers concise answers with code examples"). Not task state, not secrets or credentials, not one-off details. The fact is only PROPOSED: the user reviews the exact text and decides \u2014 tell them you have suggested it, never that you have remembered it. Keep each fact self-contained and under 500 characters; call once per fact.',inputSchema:{fact:external_exports.string().describe('The fact to remember, stated in the third person and self-contained (e.g. "Works primarily in Go and prefers table-driven tests"). 1\u2013500 characters; stored and shown to the user verbatim.')}},(args,extra)=>memoryResult("memory proposal",()=>proposeMemory(target.serverAddress,resolveToken(extra,target.apiKey),args.fact,resolveCaptureContext(extra,startupContext)))),["remember"]}var knownKinds={agent:ApiResourceKind.agent,environment:ApiResourceKind.environment,skill:ApiResourceKind.skill,mcp_server:ApiResourceKind.mcp_server,workflow:ApiResourceKind.workflow};function registerSearchTools(server,target){return server.registerTool("search",{description:"Search and list Stigmer resources (agents, skills, MCP servers, workflows, environments). Set 'kinds' to filter by resource type. Set 'query' for full-text search. Set 'org' to scope to an organization. Omit 'query' to list all accessible resources.",inputSchema:{kinds:external_exports.array(external_exports.string()).optional().describe("Resource kinds to search. Valid: agent, skill, mcp_server, workflow, environment. Empty searches all."),query:external_exports.string().optional().describe("Full-text search query. Empty lists all accessible resources."),org:external_exports.string().optional().describe("Organization slug to scope the search. Empty searches all accessible orgs."),page_size:external_exports.number().int().optional().describe("Results per page (default 20, max 100)."),page_num:external_exports.number().int().optional().describe("Page number (1-indexed, default 1).")}},(args,extra)=>textOrError(()=>search(target.serverAddress,resolveToken(extra,target.apiKey),{kinds:args.kinds,query:args.query,org:args.org,pageSize:args.page_size,pageNum:args.page_num}))),["search"]}async function search(serverAddress,token,args){let kinds=parseKinds(args.kinds);return withClient(SearchService,serverAddress,token,async(client,callOptions)=>{let req={kinds,query:args.query??"",org:args.org??""};((args.pageSize??0)>0||(args.pageNum??0)>0)&&(req.page={size:args.pageSize??0,num:args.pageNum??0});let resp;try{resp=await client.search(req,callOptions)}catch(err){throw rpcError(err,args.org?`search results in org "${args.org}"`:"search results")}return enrichSearchResponse(resp)})}function parseKinds(raw){return!raw||raw.length===0?[]:raw.map(s=>{let kind=knownKinds[s];if(kind===void 0)throw new Error(`unknown resource kind "${s}"; valid kinds: agent, skill, mcp_server, workflow, environment`);return kind})}function enrichSearchResponse(resp){if(resp.entries.length===0)return toProtoJson(SearchResponseSchema,resp);let data=toJson(SearchResponseSchema,resp,{useProtoFieldName:!0}),entries=Array.isArray(data.entries)?data.entries:[];for(let i=0;i<entries.length&&i<resp.entries.length;i++){let r=resp.entries[i],uri=buildResourceURI(ApiResourceKind[r.kind]??"",r.org,r.slug);uri!==""&&(entries[i].resource_uri=uri)}return JSON.stringify(data,null,2)}async function fetchSkill(serverAddress,token,org,slug,version2){return withClient(SkillQueryController,serverAddress,token,async(client,callOptions)=>{try{let skill=await client.getByReference({org,kind:ApiResourceKind.skill,slug,version:version2},callOptions);return toProtoJson(SkillSchema,skill)}catch(err){throw rpcError(err,`skill "${slug}" in org "${org}"`)}})}function registerSkillResources(server,target){return registerResource(server,target,{name:"stigmer_skill",title:"Stigmer Skill",description:"Full definition of a Stigmer skill (latest version), identified by organization and slug.",template:"stigmer://skills/{org}/{slug}",fetch:(serverAddress,token,org,slug)=>fetchSkill(serverAddress,token,org,slug,"")}),registerVersionedResource(server,target,{name:"stigmer_skill_version",title:"Stigmer Skill (versioned)",description:"Full definition of a Stigmer skill at a specific version, identified by organization, slug, and version (tag name or SHA-256 hash).",template:"stigmer://skills/{org}/{slug}/{version}",fetch:fetchSkill}),["stigmer_skill","stigmer_skill_version"]}async function deleteSkill(serverAddress,token,org,slug){let desc=`skill "${slug}" in org "${org}"`;return withTransport(serverAddress,token,async(transport,callOptions)=>{let query=createClient(SkillQueryController,transport),id;try{id=(await query.getByReference({org,kind:ApiResourceKind.skill,slug},callOptions)).metadata?.id??""}catch(err){throw rpcError(err,desc)}let command=createClient(SkillCommandController,transport);try{let deleted=await command.delete({value:id},callOptions);return toProtoJson(SkillSchema,deleted)}catch(err){throw rpcError(err,desc)}})}async function listSkillVersions(serverAddress,token,args){return withClient(SkillQueryController,serverAddress,token,async(client,callOptions)=>{let req={org:args.org,slug:args.slug,pageToken:args.pageToken??""};(args.pageSize??0)>0&&(req.pageSize=args.pageSize);try{let resp=await client.listVersions(req,callOptions);return toProtoJson(ListSkillVersionsResponseSchema,resp)}catch(err){throw rpcError(err,`versions of skill "${args.slug}" in org "${args.org}"`)}})}function registerSkillTools(server,target){return server.registerTool("get_skill",{description:"Get full details of a Stigmer skill by org and slug, optionally at a specific version. Omit 'version' for the latest.",inputSchema:{org:external_exports.string().describe("Organization slug that owns the skill."),slug:external_exports.string().describe("Skill slug \u2014 unique identifier within the org."),version:external_exports.string().optional().describe("Version to retrieve: tag name (e.g. stable) or SHA-256 hash. Omit for latest.")}},(args,extra)=>textOrError(()=>fetchSkill(target.serverAddress,resolveToken(extra,target.apiKey),args.org,args.slug,args.version??""))),server.registerTool("delete_skill",{description:"Delete a Stigmer skill and all its versions by org and slug. To create or update skills, use the 'stigmer skill push' CLI command. Returns the deleted skill.",inputSchema:{org:external_exports.string().describe("Organization slug that owns the skill (e.g. stigmer)."),slug:external_exports.string().describe("Skill slug \u2014 the unique identifier within the org (e.g. code-review-best-practices). Deletes the skill and all its versions.")}},(args,extra)=>textOrError(()=>deleteSkill(target.serverAddress,resolveToken(extra,target.apiKey),args.org,args.slug))),server.registerTool("list_skill_versions",{description:"List a skill's version history (newest first): version hash, tag, who pushed it and when, and which version is current. Fetch one version's full content with get_skill and its hash or tag.",inputSchema:{org:external_exports.string().describe("Organization slug that owns the skill."),slug:external_exports.string().describe("Skill slug \u2014 unique identifier within the org."),page_size:external_exports.number().int().optional().describe("Maximum versions per page (default 50)."),page_token:external_exports.string().optional().describe("Pagination token from a previous response's next_page_token.")}},(args,extra)=>textOrError(()=>listSkillVersions(target.serverAddress,resolveToken(extra,target.apiKey),{org:args.org,slug:args.slug,pageSize:args.page_size,pageToken:args.page_token}))),["get_skill","delete_skill","list_skill_versions"]}async function listPendingApprovals(serverAddress,token,args){return withClient(WorkflowExecutionQueryController,serverAddress,token,async(client,callOptions)=>{let req={org:args.org,pageToken:args.pageToken??""};(args.pageSize??0)>0&&(req.pageSize=args.pageSize);try{let resp=await client.listPendingApprovals(req,callOptions);return toProtoJson(PendingApprovalsListSchema,resp)}catch(err){throw rpcError(err,`pending approvals in org "${args.org}"`)}})}async function submitWorkflowTaskApproval(serverAddress,token,args){return withClient(WorkflowExecutionCommandController,serverAddress,token,async(client,callOptions)=>{let req={executionId:args.executionId,taskName:args.taskName,outcome:args.outcome,comment:args.comment??""};args.formData!==void 0&&(req.formData=args.formData);try{let execution=await client.submitWorkflowTaskApproval(req,callOptions);return toProtoJson(WorkflowExecutionSchema,execution)}catch(err){throw rpcError(err,`approval for task "${args.taskName}" in workflow execution "${args.executionId}"`)}})}var API_VERSION2="agentic.stigmer.ai/v1";async function runWorkflow(serverAddress,token,args){let desc=`workflow "${args.workflow}" in org "${args.org}"`;return withTransport(serverAddress,token,async(transport,callOptions)=>{let query=createClient(WorkflowQueryController,transport),workflowId;try{workflowId=(await query.getByReference({org:args.org,kind:ApiResourceKind.workflow,slug:args.workflow},callOptions)).metadata?.id??""}catch(err){throw rpcError(err,desc)}let runtimeEnv=toExecutionValues(args.runtimeEnv);runtimeEnv.STIGMER_ORG_ID===void 0&&(runtimeEnv.STIGMER_ORG_ID=create(ExecutionValueSchema,{value:args.org,isSecret:!1}));let execution=create(WorkflowExecutionSchema,{apiVersion:API_VERSION2,kind:"WorkflowExecution",metadata:create(ApiResourceMetadataSchema,{name:executionName(),org:args.org}),spec:create(WorkflowExecutionSpecSchema,{workflowId,triggerMessage:(args.message??"")===""?"execute":args.message,runtimeEnv})}),command=createClient(WorkflowExecutionCommandController,transport);try{let created=await command.create(execution,callOptions);return toProtoJson(WorkflowExecutionSchema,created)}catch(err){throw rpcError(err,`execution of ${desc}`)}})}function registerWorkflowExecutionTools(server,target){return server.registerTool("run_workflow",{description:"Start a workflow execution (asynchronous). Returns immediately with the created execution (wex_* ID) while the run continues in the background \u2014 poll get_workflow_execution and get_workflow_execution_events to observe progress and diagnose failures.",inputSchema:{org:external_exports.string().describe("Organization slug that owns the workflow (e.g. stigmer)."),workflow:external_exports.string().describe("Workflow slug \u2014 the unique identifier within the org (e.g. release-notes)."),message:external_exports.string().optional().describe("Trigger message passed to the workflow. Omit to run with the default trigger."),runtime_env:external_exports.record(external_exports.string()).optional().describe("Non-secret runtime environment values (name \u2192 value) injected into the run. Secrets must come from Environments referenced by the workflow, never through this tool.")}},(args,extra)=>textOrError(()=>runWorkflow(target.serverAddress,resolveToken(extra,target.apiKey),{org:args.org,workflow:args.workflow,message:args.message,runtimeEnv:args.runtime_env}))),server.registerTool("get_workflow_execution",{description:"Get a workflow execution's full status including phase, tasks, errors, cost, and timing. Use for diagnosing failed or running executions.",inputSchema:{execution_id:external_exports.string().describe("Workflow execution ID (wex_* format).")}},(args,extra)=>textOrError(()=>getWorkflowExecution(target.serverAddress,resolveToken(extra,target.apiKey),args.execution_id))),server.registerTool("get_workflow_execution_events",{description:"Get the event log for a workflow execution. Returns task transitions, errors, cost checkpoints, and approval events. Use for deep diagnosis of execution failures.",inputSchema:{execution_id:external_exports.string().describe("Workflow execution ID (wex_* format)."),task_name:external_exports.string().optional().describe("Filter events by task name."),page_size:external_exports.number().int().optional().describe("Number of events per page (default 100, max 500).")}},(args,extra)=>textOrError(()=>getWorkflowExecutionEvents(target.serverAddress,resolveToken(extra,target.apiKey),{executionId:args.execution_id,taskName:args.task_name,pageSize:args.page_size}))),server.registerTool("list_pending_approvals",{description:"List workflow tasks waiting for a human decision across an organization \u2014 an approvals inbox. Each entry carries the execution ID, task name, requester, timeout, and the form schema when the task defines one; respond with submit_workflow_task_approval. (Agent-execution approvals are not listed here \u2014 they surface in get_agent_execution's status.pending_approvals.)",inputSchema:{org:external_exports.string().describe("Organization slug to scope the query (e.g. stigmer)."),page_size:external_exports.number().int().optional().describe("Maximum entries per page (default 20, max 100)."),page_token:external_exports.string().optional().describe("Pagination token from a previous response's next_page_token.")}},(args,extra)=>textOrError(()=>listPendingApprovals(target.serverAddress,resolveToken(extra,target.apiKey),{org:args.org,pageSize:args.page_size,pageToken:args.page_token}))),server.registerTool("submit_workflow_task_approval",{description:"Submit a reviewer decision for a workflow human_input task that is waiting for a signal. outcome must match one of the task's configured outcome names (default: approve or deny). When the task defines a form_schema (see list_pending_approvals), provide matching form_data. Returns the updated workflow execution.",inputSchema:{execution_id:external_exports.string().describe("Workflow execution ID (wex_* format)."),task_name:external_exports.string().describe("Name of the waiting human_input task."),outcome:external_exports.string().describe("Decision outcome. Must match a configured outcome name of the task (e.g. approve, deny, needs_revision); approve/deny when none are configured."),comment:external_exports.string().optional().describe("Reviewer comment, stored in the audit trail."),form_data:external_exports.record(external_exports.unknown()).optional().describe("Response form data conforming to the task's form_schema, when it defines one.")}},(args,extra)=>textOrError(()=>submitWorkflowTaskApproval(target.serverAddress,resolveToken(extra,target.apiKey),{executionId:args.execution_id,taskName:args.task_name,outcome:args.outcome,comment:args.comment,formData:args.form_data}))),["run_workflow","get_workflow_execution","get_workflow_execution_events","list_pending_approvals","submit_workflow_task_approval"]}async function getWorkflowExecution(serverAddress,token,executionId){if(executionId==="")throw new Error("execution_id is required");return withClient(WorkflowExecutionQueryController,serverAddress,token,async(client,callOptions)=>{try{let execution=await client.get({value:executionId},callOptions);return toProtoJson(WorkflowExecutionSchema,execution)}catch(err){throw rpcError(err,`workflow execution "${executionId}"`)}})}async function getWorkflowExecutionEvents(serverAddress,token,args){if(args.executionId==="")throw new Error("execution_id is required");return withClient(WorkflowExecutionQueryController,serverAddress,token,async(client,callOptions)=>{let req={executionId:args.executionId,taskName:args.taskName??""};(args.pageSize??0)>0&&(req.pageSize=args.pageSize);try{let resp=await client.getEventLog(req,callOptions);return toProtoJson(GetEventLogResponseSchema,resp)}catch(err){throw rpcError(err,`event log for execution "${args.executionId}"`)}})}function registerTaskKindTools(server,target){return server.registerTool("get_task_kind_registry",{description:"Get the complete workflow task kind registry with all 20 task kind descriptors, field schemas, JSON Schemas, categories, examples, and output shapes.",inputSchema:{}},(_args,extra)=>textOrError(()=>getTaskKindRegistry(target.serverAddress,resolveToken(extra,target.apiKey)))),server.registerTool("get_task_kind",{description:"Get a single workflow task kind descriptor by name with field schemas, JSON Schema, examples, and output shape.",inputSchema:{kind:external_exports.string().describe("Task kind name (one of: set_vars, http_call, grpc_call, activity_call, switch_case, for_each, fork, try_catch, listen, wait, raise_error, run_workflow, agent_call, llm_call, transform, human_input, validate, emit_event, notification, eval).")}},(args,extra)=>textOrError(()=>getTaskKind(target.serverAddress,resolveToken(extra,target.apiKey),args.kind))),["get_task_kind_registry","get_task_kind"]}async function getTaskKindRegistry(serverAddress,token){return withClient(TaskKindRegistryQueryController,serverAddress,token,async(client,callOptions)=>{try{let resp=await client.getTaskKindRegistry({},callOptions);return toProtoJson(GetTaskKindRegistryResponseSchema,resp)}catch(err){throw rpcError(err,"task kind registry")}})}async function getTaskKind(serverAddress,token,kind){if(kind==="")throw new Error("kind is required");return withClient(TaskKindRegistryQueryController,serverAddress,token,async(client,callOptions)=>{let resp;try{resp=await client.getTaskKindRegistry({},callOptions)}catch(err){throw rpcError(err,"task kind registry")}let normalized=kind.trim().toLowerCase();for(let desc of resp.descriptors)if((WorkflowTaskKind[desc.kind]??"").toLowerCase()===normalized)return toProtoJson(TaskKindDescriptorSchema,desc);throw new Error(`task kind "${kind}" not found in registry; use get_task_kind_registry to see all available kinds`)})}async function fetchWorkflow(serverAddress,token,org,slug){return withClient(WorkflowQueryController,serverAddress,token,async(client,callOptions)=>{try{let workflow=await client.getByReference({org,kind:ApiResourceKind.workflow,slug},callOptions);return toProtoJson(WorkflowSchema,workflow)}catch(err){throw rpcError(err,`workflow "${slug}" in org "${org}"`)}})}function registerWorkflowResources(server,target){return registerResource(server,target,{name:"stigmer_workflow",title:"Stigmer Workflow",description:"Full definition of a Stigmer workflow, identified by organization and slug.",template:"stigmer://workflows/{org}/{slug}",fetch:fetchWorkflow}),["stigmer_workflow"]}var file_ai_stigmer_agentic_workflow_v1_tasks_common=fileDesc("CjFhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvY29tbW9uLnByb3RvEiRhaS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MqfgoVT25JbnZhbGlkT3V0cHV0UG9saWN5EiEKHU9OX0lOVkFMSURfUE9MSUNZX1VOU1BFQ0lGSUVEEAASEwoPT05fSU5WQUxJRF9GQUlMEAESFAoQT05fSU5WQUxJRF9SRVRSWRACEhcKE09OX0lOVkFMSURfRkFMTEJBQ0sQA2IGcHJvdG8z"),OnInvalidOutputPolicy;(function(OnInvalidOutputPolicy2){OnInvalidOutputPolicy2[OnInvalidOutputPolicy2.ON_INVALID_POLICY_UNSPECIFIED=0]="ON_INVALID_POLICY_UNSPECIFIED",OnInvalidOutputPolicy2[OnInvalidOutputPolicy2.ON_INVALID_FAIL=1]="ON_INVALID_FAIL",OnInvalidOutputPolicy2[OnInvalidOutputPolicy2.ON_INVALID_RETRY=2]="ON_INVALID_RETRY",OnInvalidOutputPolicy2[OnInvalidOutputPolicy2.ON_INVALID_FALLBACK=3]="ON_INVALID_FALLBACK"})(OnInvalidOutputPolicy||(OnInvalidOutputPolicy={}));var file_ai_stigmer_agentic_workflow_v1_tasks_agent_call=fileDesc("CjVhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvYWdlbnRfY2FsbC5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzIsIFChNBZ2VudENhbGxUYXNrQ29uZmlnEhsKBWFnZW50GAEgASgJQgy6SAnIAQFyBBABGH8SHwoHbWVzc2FnZRgCIAEoCUIOukgHyAEBcgIQAdiFLAESTwoDZW52GAMgAygLMkIuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzLkFnZW50Q2FsbFRhc2tDb25maWcuRW52RW50cnkSQwoKcnVuX2NvbmZpZxgEIAEoCzIvLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5SdW5Db25maWcSTQoGb3V0cHV0GAUgASgLMj0uYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzLkFnZW50Q2FsbE91dHB1dENvbnRyYWN0EjcKB2hhcm5lc3MYBiABKA4yJi5haS5zdGlnbWVyLmFnZW50aWMuc2Vzc2lvbi52MS5IYXJuZXNzEkgKEXdvcmtzcGFjZV9lbnRyaWVzGAcgAygLMi0uYWkuc3RpZ21lci5hZ2VudGljLnNlc3Npb24udjEuV29ya3NwYWNlRW50cnkSyAEKEGVudmlyb25tZW50X3JlZnMYCCADKAsyNC5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuQXBpUmVzb3VyY2VSZWZlcmVuY2VCeLpIcZIBbiJsugFpChVlbnZpcm9ubWVudF9yZWZzLmtpbmQSP2Vudmlyb25tZW50X3JlZnMgbXVzdCByZWZlcmVuY2UgcmVzb3VyY2VzIHdpdGgga2luZD1lbnZpcm9ubWVudBoPdGhpcy5raW5kID09IDUz4IUsNRoqCghFbnZFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBOg7qiywKYWdlbnRfY2FsbCLVAQoXQWdlbnRDYWxsT3V0cHV0Q29udHJhY3QSLwoGc2NoZW1hGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEIGukgDyAEBEk8KCm9uX2ludmFsaWQYAiABKA4yOy5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MuT25JbnZhbGlkT3V0cHV0UG9saWN5EiEKC21heF9yZXRyaWVzGAMgASgFQgy6SAnYAQEaBBgFKAESFQoNZmFsbGJhY2tfdGFzaxgEIAEoCWIGcHJvdG8z",[file_ai_stigmer_agentic_agentexecution_v1_invocation,file_ai_stigmer_agentic_session_v1_enum,file_ai_stigmer_agentic_session_v1_workspace,file_ai_stigmer_agentic_workflow_v1_tasks_common,file_ai_stigmer_commons_apiresource_field_options,file_ai_stigmer_commons_apiresource_io,file_buf_validate_validate,file_google_protobuf_struct]),AgentCallTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_agent_call,0),AgentCallOutputContractSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_agent_call,1);var file_ai_stigmer_agentic_workflow_v1_tasks_call_activity=fileDesc("CjhhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvY2FsbF9hY3Rpdml0eS5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzInEKFkNhbGxBY3Rpdml0eVRhc2tDb25maWcSHAoIYWN0aXZpdHkYASABKAlCCrpIB8gBAXICEAESJgoFaW5wdXQYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0OhHqiywNYWN0aXZpdHlfY2FsbGIGcHJvdG8z",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate,file_google_protobuf_struct]),CallActivityTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_call_activity,0);var file_ai_stigmer_agentic_workflow_v1_tasks_emit_event=fileDesc("CjVhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvZW1pdF9ldmVudC5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzIoABCg1FbWl0RXZlbnRTcGVjEhsKBHR5cGUYASABKAlCDbpICsgBAXIFEAEY/wESFAoGc291cmNlGAIgASgJQgTYhSwBEiUKBGRhdGEYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhUKB3N1YmplY3QYBCABKAlCBNiFLAEivQEKE0VtaXRFdmVudFRhc2tDb25maWcSSgoFZXZlbnQYASABKAsyMy5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MuRW1pdEV2ZW50U3BlY0IGukgDyAEBEkoKCGRlbGl2ZXJ5GAIgAygLMjguYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzLkVtaXREZWxpdmVyeVRhcmdldDoO6ossCmVtaXRfZXZlbnQitwEKEkVtaXREZWxpdmVyeVRhcmdldBJICgd3ZWJob29rGAEgASgLMjUuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzLldlYmhvb2tEZWxpdmVyeUgAEkYKBnNpZ25hbBgCIAEoCzI0LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS50YXNrcy5TaWduYWxEZWxpdmVyeUgAQg8KBnRhcmdldBIFukgCCAEiswEKD1dlYmhvb2tEZWxpdmVyeRIbCgN1cmwYASABKAlCDrpIB8gBAXICEAHYhSwBElMKB2hlYWRlcnMYAiADKAsyQi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MuV2ViaG9va0RlbGl2ZXJ5LkhlYWRlcnNFbnRyeRouCgxIZWFkZXJzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJbCg5TaWduYWxEZWxpdmVyeRIkCgxleGVjdXRpb25faWQYASABKAlCDrpIB8gBAXICEAHYhSwBEiMKC3NpZ25hbF9uYW1lGAIgASgJQg66SAfIAQFyAhAB2IUsAWIGcHJvdG8z",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate,file_google_protobuf_struct]),EmitEventSpecSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_emit_event,0),EmitEventTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_emit_event,1),EmitDeliveryTargetSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_emit_event,2),WebhookDeliverySchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_emit_event,3),SignalDeliverySchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_emit_event,4);var file_ai_stigmer_agentic_workflow_v1_tasks_eval=fileDesc("Ci9haS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvZXZhbC5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzIlwKDUV2YWxDcml0ZXJpb24SGgoEbmFtZRgBIAEoCUIMukgJyAEBcgQQARh/Eh8KC2Rlc2NyaXB0aW9uGAIgASgJQgq6SAfIAQFyAhABEg4KBndlaWdodBgDIAEoASLIAwoORXZhbFRhc2tDb25maWcSGwoFbW9kZWwYASABKAlCDLpICcgBAXIEEAEYfxIfCgdzdWJqZWN0GAIgASgJQg66SAfIAQFyAhAB2IUsARIaCgZydWJyaWMYAyABKAlCCrpIB8gBAXICEAESSwoMc2NvcmluZ19tb2RlGAQgASgOMjUuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzLkV2YWxTY29yaW5nTW9kZRIqCgl0aHJlc2hvbGQYBSABKAFCF7pIFBISGQAAAAAAAPA/KQAAAAAAAAAAEkUKB29uX2ZhaWwYBiABKA4yNC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MuRXZhbEZhaWxQb2xpY3kSFQoNZmFsbGJhY2tfdGFzaxgHIAEoCRIbCg1zeXN0ZW1fcHJvbXB0GAggASgJQgTYhSwBEkUKCGNyaXRlcmlhGAkgAygLMjMuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzLkV2YWxDcml0ZXJpb24SFwoPbWF4X2Nvc3RfbWljcm9zGAogASgDOgjqiywEZXZhbCpxCg5FdmFsRmFpbFBvbGljeRIgChxFVkFMX0ZBSUxfUE9MSUNZX1VOU1BFQ0lGSUVEEAASEwoPRVZBTF9GQUlMX1JBSVNFEAESFAoQRVZBTF9GQUlMX0JSQU5DSBACEhIKDkVWQUxfRkFJTF9XQVJOEAMqeQoPRXZhbFNjb3JpbmdNb2RlEiEKHUVWQUxfU0NPUklOR19NT0RFX1VOU1BFQ0lGSUVEEAASEgoORVZBTF9QQVNTX0ZBSUwQARIWChJFVkFMX05VTUVSSUNfU0NPUkUQAhIXChNFVkFMX01VTFRJX0NSSVRFUklBEANiBnByb3RvMw",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate]),EvalCriterionSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_eval,0),EvalTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_eval,1),EvalFailPolicy;(function(EvalFailPolicy2){EvalFailPolicy2[EvalFailPolicy2.EVAL_FAIL_POLICY_UNSPECIFIED=0]="EVAL_FAIL_POLICY_UNSPECIFIED",EvalFailPolicy2[EvalFailPolicy2.EVAL_FAIL_RAISE=1]="EVAL_FAIL_RAISE",EvalFailPolicy2[EvalFailPolicy2.EVAL_FAIL_BRANCH=2]="EVAL_FAIL_BRANCH",EvalFailPolicy2[EvalFailPolicy2.EVAL_FAIL_WARN=3]="EVAL_FAIL_WARN"})(EvalFailPolicy||(EvalFailPolicy={}));var EvalScoringMode;(function(EvalScoringMode2){EvalScoringMode2[EvalScoringMode2.EVAL_SCORING_MODE_UNSPECIFIED=0]="EVAL_SCORING_MODE_UNSPECIFIED",EvalScoringMode2[EvalScoringMode2.EVAL_PASS_FAIL=1]="EVAL_PASS_FAIL",EvalScoringMode2[EvalScoringMode2.EVAL_NUMERIC_SCORE=2]="EVAL_NUMERIC_SCORE",EvalScoringMode2[EvalScoringMode2.EVAL_MULTI_CRITERIA=3]="EVAL_MULTI_CRITERIA"})(EvalScoringMode||(EvalScoringMode={}));var file_ai_stigmer_agentic_workflow_v1_tasks_for=fileDesc("Ci5haS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvZm9yLnByb3RvEiRhaS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MiogIKDUZvclRhc2tDb25maWcSGAoEZWFjaBgBIAEoCUIKukgHyAEBcgIQARIaCgJpbhgCIAEoCUIOukgHyAEBcgIQAdiFLAESQgoCZG8YAyADKAsyLC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuV29ya2Zsb3dUYXNrQgi6SAWSAQIIARIgCg9tYXhfcGFyYWxsZWxpc20YBCABKAVCB7pIBBoCKAASGwoKYmF0Y2hfc2l6ZRgFIAEoBUIHukgEGgIoABJKCghvbl9lcnJvchgGIAEoDjI4LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS50YXNrcy5Gb3JFYWNoRXJyb3JQb2xpY3k6DOqLLAhmb3JfZWFjaCp9ChJGb3JFYWNoRXJyb3JQb2xpY3kSJQohRk9SX0VBQ0hfRVJST1JfUE9MSUNZX1VOU1BFQ0lGSUVEEAASFgoSRk9SX0VBQ0hfRkFJTF9GQVNUEAESFQoRRk9SX0VBQ0hfQ09OVElOVUUQAhIRCg1GT1JfRUFDSF9TS0lQEANiBnByb3RvMw",[file_ai_stigmer_agentic_workflow_v1_spec,file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate]),ForTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_for,0),ForEachErrorPolicy;(function(ForEachErrorPolicy2){ForEachErrorPolicy2[ForEachErrorPolicy2.FOR_EACH_ERROR_POLICY_UNSPECIFIED=0]="FOR_EACH_ERROR_POLICY_UNSPECIFIED",ForEachErrorPolicy2[ForEachErrorPolicy2.FOR_EACH_FAIL_FAST=1]="FOR_EACH_FAIL_FAST",ForEachErrorPolicy2[ForEachErrorPolicy2.FOR_EACH_CONTINUE=2]="FOR_EACH_CONTINUE",ForEachErrorPolicy2[ForEachErrorPolicy2.FOR_EACH_SKIP=3]="FOR_EACH_SKIP"})(ForEachErrorPolicy||(ForEachErrorPolicy={}));var file_ai_stigmer_agentic_workflow_v1_tasks_fork=fileDesc("Ci9haS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvZm9yay5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzInkKDkZvcmtUYXNrQ29uZmlnEkwKCGJyYW5jaGVzGAEgAygLMjAuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzLkZvcmtCcmFuY2hCCLpIBZIBAggCEg8KB2NvbXBldGUYAiABKAg6COqLLARmb3JrImoKCkZvcmtCcmFuY2gSGAoEbmFtZRgBIAEoCUIKukgHyAEBcgIQARJCCgJkbxgCIAMoCzIsLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5Xb3JrZmxvd1Rhc2tCCLpIBZIBAggBYgZwcm90bzM",[file_ai_stigmer_agentic_workflow_v1_spec,file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate]),ForkTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_fork,0),ForkBranchSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_fork,1);var file_ai_stigmer_agentic_workflow_v1_tasks_grpc_call=fileDesc("CjRhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvZ3JwY19jYWxsLnByb3RvEiRhaS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MihgEKEkdycGNDYWxsVGFza0NvbmZpZxIbCgdzZXJ2aWNlGAEgASgJQgq6SAfIAQFyAhABEhoKBm1ldGhvZBgCIAEoCUIKukgHyAEBcgIQARIoCgdyZXF1ZXN0GAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdDoN6ossCWdycGNfY2FsbGIGcHJvdG8z",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate,file_google_protobuf_struct]),GrpcCallTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_grpc_call,0);var file_ai_stigmer_agentic_workflow_v1_tasks_http_call=fileDesc("CjRhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvaHR0cF9jYWxsLnByb3RvEiRhaS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MigQMKEkh0dHBDYWxsVGFza0NvbmZpZxI3CgZtZXRob2QYASABKAlCJ7pIJMgBAXIfUgNHRVRSBFBPU1RSA1BVVFIGREVMRVRFUgVQQVRDSBJMCghlbmRwb2ludBgCIAEoCzIyLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS50YXNrcy5IdHRwRW5kcG9pbnRCBrpIA8gBARJWCgdoZWFkZXJzGAMgAygLMkUuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzLkh0dHBDYWxsVGFza0NvbmZpZy5IZWFkZXJzRW50cnkSJQoEYm9keRgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSJgoPdGltZW91dF9zZWNvbmRzGAUgASgFQg26SArYAQEaBRisAigBGi4KDEhlYWRlcnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBOg3qiywJaHR0cF9jYWxsIisKDEh0dHBFbmRwb2ludBIbCgN1cmkYASABKAlCDrpIB8gBAXICEAHYhSwBYgZwcm90bzM",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate,file_google_protobuf_struct]),HttpCallTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_http_call,0),HttpEndpointSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_http_call,1);var file_ai_stigmer_agentic_workflow_v1_tasks_human_input=fileDesc("CjZhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvaHVtYW5faW5wdXQucHJvdG8SJGFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS50YXNrcyJMChFIdW1hbklucHV0T3V0Y29tZRIaCgRuYW1lGAEgASgJQgy6SAnIAQFyBBABGD8SDQoFbGFiZWwYAiABKAkSDAoEdGhlbhgDIAEoCSKnAwoUSHVtYW5JbnB1dFRhc2tDb25maWcSHgoGcHJvbXB0GAEgASgJQg66SAfIAQFyAhAB2IUsARIsCgtmb3JtX3NjaGVtYRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSSQoIb3V0Y29tZXMYAyADKAsyNy5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MuSHVtYW5JbnB1dE91dGNvbWUSEQoJYXBwcm92ZXJzGAQgAygJEh0KB3RpbWVvdXQYBSABKAVCDLpICRoHGICangEoABJRCgpvbl90aW1lb3V0GAYgASgOMj0uYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzLkh1bWFuSW5wdXRUaW1lb3V0UG9saWN5Eh0KFW5vdGlmaWNhdGlvbl9jaGFubmVscxgHIAMoCRInCgdwYXlsb2FkGAggASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEhgKB3VpX2hpbnQYCSABKAlCB7pIBHICGD86D+qLLAtodW1hbl9pbnB1dCrEAQoXSHVtYW5JbnB1dFRpbWVvdXRQb2xpY3kSKgomSFVNQU5fSU5QVVRfVElNRU9VVF9QT0xJQ1lfVU5TUEVDSUZJRUQQABIcChhIVU1BTl9JTlBVVF9USU1FT1VUX0ZBSUwQARIfChtIVU1BTl9JTlBVVF9USU1FT1VUX0FQUFJPVkUQAhIcChhIVU1BTl9JTlBVVF9USU1FT1VUX0RFTlkQAxIgChxIVU1BTl9JTlBVVF9USU1FT1VUX0VTQ0FMQVRFEARiBnByb3RvMw",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate,file_google_protobuf_struct]),HumanInputOutcomeSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_human_input,0),HumanInputTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_human_input,1),HumanInputTimeoutPolicy;(function(HumanInputTimeoutPolicy2){HumanInputTimeoutPolicy2[HumanInputTimeoutPolicy2.HUMAN_INPUT_TIMEOUT_POLICY_UNSPECIFIED=0]="HUMAN_INPUT_TIMEOUT_POLICY_UNSPECIFIED",HumanInputTimeoutPolicy2[HumanInputTimeoutPolicy2.HUMAN_INPUT_TIMEOUT_FAIL=1]="HUMAN_INPUT_TIMEOUT_FAIL",HumanInputTimeoutPolicy2[HumanInputTimeoutPolicy2.HUMAN_INPUT_TIMEOUT_APPROVE=2]="HUMAN_INPUT_TIMEOUT_APPROVE",HumanInputTimeoutPolicy2[HumanInputTimeoutPolicy2.HUMAN_INPUT_TIMEOUT_DENY=3]="HUMAN_INPUT_TIMEOUT_DENY",HumanInputTimeoutPolicy2[HumanInputTimeoutPolicy2.HUMAN_INPUT_TIMEOUT_ESCALATE=4]="HUMAN_INPUT_TIMEOUT_ESCALATE"})(HumanInputTimeoutPolicy||(HumanInputTimeoutPolicy={}));var file_ai_stigmer_agentic_workflow_v1_tasks_listen=fileDesc("CjFhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvbGlzdGVuLnByb3RvEiRhaS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MiYgoQTGlzdGVuVGFza0NvbmZpZxJCCgJ0bxgBIAEoCzIuLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS50YXNrcy5MaXN0ZW5Ub0IGukgDyAEBOgrqiywGbGlzdGVuInkKCExpc3RlblRvEiAKBG1vZGUYASABKAlCErpID8gBAXIKUgNvbmVSA2FsbBJLCgdzaWduYWxzGAIgAygLMjAuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzLlNpZ25hbFNwZWNCCLpIBZIBAggBIlMKClNpZ25hbFNwZWMSFgoCaWQYASABKAlCCrpIB8gBAXICEAESLQoEdHlwZRgCIAEoCUIfukgcyAEBchdSBnNpZ25hbFIFcXVlcnlSBnVwZGF0ZWIGcHJvdG8z",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate]),ListenTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_listen,0),ListenToSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_listen,1),SignalSpecSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_listen,2);var file_ai_stigmer_agentic_workflow_v1_tasks_llm_call=fileDesc("CjNhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvbGxtX2NhbGwucHJvdG8SJGFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS50YXNrcyLRAwoRTGxtQ2FsbFRhc2tDb25maWcSGwoFbW9kZWwYASABKAlCDLpICcgBAXIEEAEYfxIbCg1zeXN0ZW1fcHJvbXB0GAIgASgJQgTYhSwBEh4KBnByb21wdBgDIAEoCUIOukgHyAEBcgIQAdiFLAESMAoPcmVzcG9uc2Vfc2NoZW1hGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIkCgt0ZW1wZXJhdHVyZRgFIAEoAkIPukgMCgodAAAAQC0AAAAAEh4KCm1heF90b2tlbnMYBiABKAVCCrpIB9gBARoCKAESHgoHdGltZW91dBgHIAEoBUINukgK2AEBGgUY2AQoARJPCgpvbl9pbnZhbGlkGAggASgOMjsuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzLk9uSW52YWxpZE91dHB1dFBvbGljeRIhCgttYXhfcmV0cmllcxgJIAEoBUIMukgJ2AEBGgQYBSgBEhUKDWZhbGxiYWNrX3Rhc2sYCiABKAkSFwoPbWF4X2Nvc3RfbWljcm9zGAsgASgDEhgKEG1heF90b3RhbF90b2tlbnMYDCABKAM6DOqLLAhsbG1fY2FsbGIGcHJvdG8z",[file_ai_stigmer_agentic_workflow_v1_tasks_common,file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate,file_google_protobuf_struct]),LlmCallTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_llm_call,0);var file_ai_stigmer_agentic_workflow_v1_tasks_notification=fileDesc("CjdhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3Mvbm90aWZpY2F0aW9uLnByb3RvEiRhaS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MivQIKFk5vdGlmaWNhdGlvblRhc2tDb25maWcSHQoHY2hhbm5lbBgBIAEoCUIMukgJyAEBcgQQARg/EhwKCnJlY2lwaWVudHMYAiADKAlCCLpIBZIBAggBEhUKB3N1YmplY3QYAyABKAlCBNiFLAESHAoEYm9keRgEIAEoCUIOukgHyAEBcgIQAdiFLAESEAoIdGVtcGxhdGUYBSABKAkSXAoIbWV0YWRhdGEYBiADKAsySi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MuTm90aWZpY2F0aW9uVGFza0NvbmZpZy5NZXRhZGF0YUVudHJ5Gi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AToQ6ossDG5vdGlmaWNhdGlvbmIGcHJvdG8z",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate]),NotificationTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_notification,0);var file_ai_stigmer_agentic_workflow_v1_tasks_raise=fileDesc("CjBhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvcmFpc2UucHJvdG8SJGFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS50YXNrcyJYCg9SYWlzZVRhc2tDb25maWcSHQoFZXJyb3IYASABKAlCDrpIB8gBAXICEAHYhSwBEhUKB21lc3NhZ2UYAiABKAlCBNiFLAE6D+qLLAtyYWlzZV9lcnJvcmIGcHJvdG8z",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate]),RaiseTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_raise,0);var file_ai_stigmer_agentic_workflow_v1_tasks_run=fileDesc("Ci5haS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvcnVuLnByb3RvEiRhaS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MiZwoNUnVuVGFza0NvbmZpZxIcCgh3b3JrZmxvdxgBIAEoCUIKukgHyAEBcgIQARImCgVpbnB1dBgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3Q6EOqLLAxydW5fd29ya2Zsb3diBnByb3RvMw",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate,file_google_protobuf_struct]),RunTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_run,0);var file_ai_stigmer_agentic_workflow_v1_tasks_set=fileDesc("Ci5haS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3Mvc2V0LnByb3RvEiRhaS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MirgEKDVNldFRhc2tDb25maWcSXQoJdmFyaWFibGVzGAEgAygLMkIuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzLlNldFRhc2tDb25maWcuVmFyaWFibGVzRW50cnlCBrpIA8gBARowCg5WYXJpYWJsZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBOgzqiywIc2V0X3ZhcnNiBnByb3RvMw",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate]),SetTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_set,0);var file_ai_stigmer_agentic_workflow_v1_tasks_switch=fileDesc("CjFhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3Mvc3dpdGNoLnByb3RvEiRhaS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MibgoQU3dpdGNoVGFza0NvbmZpZxJJCgVjYXNlcxgBIAMoCzIwLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS50YXNrcy5Td2l0Y2hDYXNlQgi6SAWSAQIIAToP6ossC3N3aXRjaF9jYXNlIk4KClN3aXRjaENhc2USGAoEbmFtZRgBIAEoCUIKukgHyAEBcgIQARIMCgR3aGVuGAIgASgJEhgKBHRoZW4YAyABKAlCCrpIB8gBAXICEAFiBnByb3RvMw",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate]),SwitchTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_switch,0),SwitchCaseSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_switch,1);var file_ai_stigmer_agentic_workflow_v1_tasks_transform=fileDesc("CjRhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvdHJhbnNmb3JtLnByb3RvEiRhaS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MirwEKE1RyYW5zZm9ybVRhc2tDb25maWcSVAoGZW5naW5lGAEgASgOMjUuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzLlRyYW5zZm9ybUVuZ2luZUINukgKyAEBggEEEAEgABIeCgpleHByZXNzaW9uGAIgASgJQgq6SAfIAQFyAhABEhMKBWlucHV0GAMgASgJQgTYhSwBOg3qiywJdHJhbnNmb3JtKokBCg9UcmFuc2Zvcm1FbmdpbmUSIAocVFJBTlNGT1JNX0VOR0lORV9VTlNQRUNJRklFRBAAEhcKE1RSQU5TRk9STV9FTkdJTkVfSlEQARIcChhUUkFOU0ZPUk1fRU5HSU5FX0pTT05BVEEQAhIdChlUUkFOU0ZPUk1fRU5HSU5FX1RFTVBMQVRFEANiBnByb3RvMw",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate]),TransformTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_transform,0),TransformEngine;(function(TransformEngine2){TransformEngine2[TransformEngine2.UNSPECIFIED=0]="UNSPECIFIED",TransformEngine2[TransformEngine2.JQ=1]="JQ",TransformEngine2[TransformEngine2.JSONATA=2]="JSONATA",TransformEngine2[TransformEngine2.TEMPLATE=3]="TEMPLATE"})(TransformEngine||(TransformEngine={}));var file_ai_stigmer_agentic_workflow_v1_tasks_try=fileDesc("Ci5haS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvdHJ5LnByb3RvEiRhaS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MipAEKDVRyeVRhc2tDb25maWcSQwoDdHJ5GAEgAygLMiwuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLldvcmtmbG93VGFza0IIukgFkgECCAESPwoFY2F0Y2gYAiABKAsyMC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MuQ2F0Y2hCbG9jazoN6ossCXRyeV9jYXRjaCJwCgpDYXRjaEJsb2NrEgoKAmFzGAEgASgJEkIKAmRvGAIgAygLMiwuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLldvcmtmbG93VGFza0IIukgFkgECCAESEgoKY29tcGVuc2F0ZRgDIAEoCGIGcHJvdG8z",[file_ai_stigmer_agentic_workflow_v1_spec,file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate]),TryTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_try,0),CatchBlockSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_try,1);var file_ai_stigmer_agentic_workflow_v1_tasks_validate=fileDesc("CjNhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvdmFsaWRhdGUucHJvdG8SJGFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS50YXNrcyJnCg5WYWxpZGF0aW9uUnVsZRIaCgRuYW1lGAEgASgJQgy6SAnIAQFyBBABGH8SIgoKZXhwcmVzc2lvbhgCIAEoCUIOukgHyAEBcgIQAdiFLAESFQoHbWVzc2FnZRgDIAEoCUIE2IUsASKTAgoSVmFsaWRhdGVUYXNrQ29uZmlnEh0KBWlucHV0GAEgASgJQg66SAfIAQFyAhAB2IUsARInCgZzY2hlbWEYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EkMKBXJ1bGVzGAMgAygLMjQuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzLlZhbGlkYXRpb25SdWxlEksKB29uX2ZhaWwYBCABKA4yOi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MuVmFsaWRhdGlvbkZhaWxQb2xpY3kSFQoNZmFsbGJhY2tfdGFzaxgFIAEoCToM6ossCHZhbGlkYXRlKo8BChRWYWxpZGF0aW9uRmFpbFBvbGljeRImCiJWQUxJREFUSU9OX0ZBSUxfUE9MSUNZX1VOU1BFQ0lGSUVEEAASGQoVVkFMSURBVElPTl9GQUlMX1JBSVNFEAESGgoWVkFMSURBVElPTl9GQUlMX0JSQU5DSBACEhgKFFZBTElEQVRJT05fRkFJTF9XQVJOEANiBnByb3RvMw",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate,file_google_protobuf_struct]),ValidationRuleSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_validate,0),ValidateTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_validate,1),ValidationFailPolicy;(function(ValidationFailPolicy2){ValidationFailPolicy2[ValidationFailPolicy2.VALIDATION_FAIL_POLICY_UNSPECIFIED=0]="VALIDATION_FAIL_POLICY_UNSPECIFIED",ValidationFailPolicy2[ValidationFailPolicy2.VALIDATION_FAIL_RAISE=1]="VALIDATION_FAIL_RAISE",ValidationFailPolicy2[ValidationFailPolicy2.VALIDATION_FAIL_BRANCH=2]="VALIDATION_FAIL_BRANCH",ValidationFailPolicy2[ValidationFailPolicy2.VALIDATION_FAIL_WARN=3]="VALIDATION_FAIL_WARN"})(ValidationFailPolicy||(ValidationFailPolicy={}));var file_ai_stigmer_agentic_workflow_v1_tasks_wait=fileDesc("Ci9haS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3Mvd2FpdC5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzIpECCghEdXJhdGlvbhIMCgRkYXlzGAEgASgNEg0KBWhvdXJzGAIgASgNEg8KB21pbnV0ZXMYAyABKA0SDwoHc2Vjb25kcxgEIAEoDRIUCgxtaWxsaXNlY29uZHMYBSABKA06rwG6SKsBGqgBChFkdXJhdGlvbi5ub25femVybxIsYXQgbGVhc3Qgb25lIGR1cmF0aW9uIGZpZWxkIG11c3QgYmUgbm9uLXplcm8aZXRoaXMuZGF5cyA+IDB1IHx8IHRoaXMuaG91cnMgPiAwdSB8fCB0aGlzLm1pbnV0ZXMgPiAwdSB8fCB0aGlzLnNlY29uZHMgPiAwdSB8fCB0aGlzLm1pbGxpc2Vjb25kcyA+IDB1IpgBCg5XYWl0VGFza0NvbmZpZxJCCghkdXJhdGlvbhgBIAEoCzIuLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS50YXNrcy5EdXJhdGlvbkgAEisKBXVudGlsGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAOgjqiywEd2FpdEILCgl3YWl0X3R5cGViBnByb3RvMw",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate,file_google_protobuf_timestamp]),DurationSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_wait,0),WaitTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_wait,1);var WorkflowInputShape={name:external_exports.string().describe("Human-readable name of the resource."),slug:external_exports.string().optional().describe("URL-friendly identifier (lowercase alphanumeric with hyphens). Auto-generated from name if omitted."),org:external_exports.string().describe("Organization that owns this resource (e.g. acme)."),visibility:external_exports.string().optional().describe("Resource visibility, by enum name. Applied at create; on updates a changed value is landed through the guarded UpdateVisibility RPC. Omit to leave unchanged. Allowed values: visibility_private, visibility_org, visibility_platform."),labels:external_exports.record(external_exports.string()).optional().describe("Key-value labels for organization and filtering."),tags:external_exports.array(external_exports.string()).optional().describe("Tags for categorization and discovery."),description:external_exports.string().optional().describe("Human-readable description for UI and marketplace display."),document:external_exports.lazy(()=>WorkflowDocumentInputSchema).describe("Workflow document metadata including DSL version, namespace, name, and version."),tasks:external_exports.array(external_exports.lazy(()=>WorkflowTaskInputSchema)).optional().describe("Ordered list of tasks that make up this workflow. Tasks execute sequentially unless fork/parallel is used."),env:external_exports.record(external_exports.lazy(()=>EnvVarDeclarationInputSchema3)).optional().describe("Environment variable declarations for this workflow. Keys are variable names; values describe their metadata and optionality."),budget:external_exports.lazy(()=>WorkflowBudgetInputSchema).optional().describe("Budget limits for this workflow execution. When set, the runtime (T13) enforces cost, token, and duration limits across all tasks. The existing org-level billing reservation system (AuthorizeExecution / ExecutionBillingSignal) remains the safety net for overall credit exhaustion; workflow budgets prevent individual workflows from consuming more than intended. Optional \u2014 when not set, no workflow-level budget is enforced.")},WorkflowInputSchema=external_exports.object(WorkflowInputShape),WorkflowDocumentInputSchema=external_exports.object({dsl:external_exports.string().optional().describe("Workflow DSL version (semver). Must be '1.0.0' for the current specification."),namespace:external_exports.string().describe("Workflow namespace (organization/categorization)."),name:external_exports.string().describe("Workflow name (unique identifier within namespace)."),version:external_exports.string().describe("Workflow version (semver)."),description:external_exports.string().optional().describe("Human-readable description.")}),RunConfigInputSchema=external_exports.object({model_name:external_exports.string().optional().describe("The model each run uses. Example: 'claude-sonnet-4-6'."),max_cost_usd:external_exports.number().optional().describe("Maximum estimated cost in USD per run. The surface's platform execution profile caps this value; the lower bound wins."),max_tool_rounds:external_exports.number().optional().describe("Maximum model-to-tools reasoning cycles per run. The surface's platform execution profile caps this value; the lower bound wins."),service_tier:external_exports.string().optional().describe("Service tier for each run's model calls: standard (the default) or fast, where fast bills at the model's fast-tier rates and requires a model that offers one. In workflow YAML the shorthand spellings 'standard'/'fast' are accepted alongside the canonical enum names. Mirrors ExecutionConfig.service_tier: UNSPECIFIED inherits the surface's platform default, which itself resolves to STANDARD \u2014 never the provider account default. FAST requires model_name (here or from the platform profile) to name a model with a registry fast pricing variant; validated fail-closed at create. Allowed values: SERVICE_TIER_STANDARD, SERVICE_TIER_FAST."),thinking_mode:external_exports.string().optional().describe("Thinking mode for each run's model calls: disabled (the default) or enabled, where enabled selects the model's extended-reasoning variant (billed at base per-token rates \u2014 reasoning tokens bill as output). In workflow YAML the shorthand spellings 'disabled'/'enabled' are accepted alongside the canonical enum names. Mirrors ExecutionConfig.thinking_mode: UNSPECIFIED inherits the surface's platform default, which itself resolves to DISABLED \u2014 never the provider account default. ENABLED requires model_name (here or from the platform profile) to name a model whose registry entry declares the thinking capability; validated fail-closed at create. Combines freely with service_tier. Allowed values: THINKING_MODE_DISABLED, THINKING_MODE_ENABLED.")}),AgentCallOutputContractInputSchema=external_exports.object({schema:external_exports.record(external_exports.unknown()).describe("JSON Schema that the agent's structured output must conform to. Standard JSON Schema (draft 2020-12 or compatible). The workflow runner extracts JSON from the agent's final response and validates it against this schema. If validation fails, the on_invalid policy determines what happens next. The schema is carried as a google.protobuf.Struct to preserve the existing kind+Struct envelope pattern and allow YAML authors to write standard JSON Schema inline without a Stigmer-specific schema language."),on_invalid:external_exports.string().optional().describe("Policy when agent output fails schema validation. Default: ON_INVALID_FAIL (task fails immediately). Allowed values: ON_INVALID_FAIL, ON_INVALID_RETRY, ON_INVALID_FALLBACK."),max_retries:external_exports.number().optional().describe("Maximum retry attempts when on_invalid is ON_INVALID_RETRY. Each retry re-prompts the agent with the specific validation errors and the expected schema, giving the agent an opportunity to self-correct. Only meaningful when on_invalid is ON_INVALID_RETRY; ignored otherwise. Default: 2 (the runner's retry loop). Valid range when set: 1-5. Unset (0) is valid: proto3 implicit presence makes an omitted field indistinguishable from 0, so the range rule must not fire on it (#673)."),fallback_task:external_exports.string().optional().describe("Target task to branch to when schema validation cannot be resolved. Used in two scenarios: 1. on_invalid is ON_INVALID_RETRY and all retries are exhausted 2. on_invalid is ON_INVALID_FALLBACK (immediate branch, no retry) Must reference a valid task name in the same workflow. When empty and retries are exhausted, the task fails.")}),GitRepoSourceInputSchema=external_exports.object({url:external_exports.string().describe("HTTPS clone URL for the repository."),branch:external_exports.string().optional().describe("Branch to clone. When empty, the repository's default branch is used."),commit:external_exports.string().optional().describe("Commit SHA to checkout after cloning. When set, the workspace is checked out at this exact commit. When both branch and commit are set, the branch is cloned first, then the commit is checked out."),depth:external_exports.number().optional().describe("Number of commits to include in the clone history. When not set, defaults to a shallow clone with depth 1. Set to 0 for a full clone with complete history."),write_back_mode:external_exports.string().optional().describe("Controls whether the platform creates a branch and pull request from the agent's file changes. Allowed values: GIT_WRITE_BACK_BRANCH_AND_PR.")}),LocalPathSourceInputSchema=external_exports.object({path:external_exports.string().optional().describe("Absolute path to an existing directory on the host filesystem.")}),WorkspaceSourceInputSchema=external_exports.object({git_repo:external_exports.lazy(()=>GitRepoSourceInputSchema).optional().describe("Clone a git repository as the workspace source."),local_path:external_exports.lazy(()=>LocalPathSourceInputSchema).optional().describe("Use an existing local directory as the workspace source.")}),WorkspaceEntryInputSchema=external_exports.object({name:external_exports.string().optional().describe("Short identifier for this workspace entry."),source:external_exports.lazy(()=>WorkspaceSourceInputSchema).describe("The source that provides this entry's content.")}),EnvironmentRefInputSchema=external_exports.object({org:external_exports.string().optional().describe("Organization that owns the referenced resource. When non-empty: must be a valid org slug (lowercase alphanumeric with hyphens, starts with a letter, 1-63 characters). Example: 'stigmer', 'acme-corp'. When empty: the reference is relative \u2014 the server resolves it to the parent resource's organization at write time. All stored and returned references always have org populated (absolute form). Use empty org for same-org references (the common case). An explicit other org is accepted only when that organization is a platform that shares the resource with yours (visibility_platform)."),slug:external_exports.string().describe("Resource slug (user-friendly identifier, unique within org). Format: lowercase alphanumeric with hyphens, must start with a letter and end with a letter or digit (e.g., 'web-search', 'code-reviewer'). Length: 2-63 characters.")}),AgentCallTaskConfigInputSchema=external_exports.object({agent:external_exports.string().describe("Agent to invoke, as 'slug', 'org/slug', or a value holding a runtime expression. - 'slug': an agent of the organization the workflow runs in; checked when the workflow is saved, against the workflow's own organization - 'org/slug': that organization's agent; checked when the workflow is saved, and another organization's agent must be shared at platform visibility - a value holding '${ ... }', '${.env_vars.KEY}' or '${.secrets.KEY}': resolved to 'slug' or 'org/slug' when the task runs, and read as the person who ran the workflow Examples: 'code-reviewer', 'acme/data-analyst', '${.env_vars.TEAM_ORG}/assistant' Required field."),message:external_exports.string().describe("Instructions/prompt to send to the agent. Supports interpolation of workflow variables using JQ expressions. Example: 'Analyze this code: ${ $context.fetchCode.body }' Required field."),env:external_exports.record(external_exports.string()).optional().describe("Runtime environment variables to pass to the agent. Values can be literal strings or JQ expressions that reference workflow context or secrets. Example: {'GITHUB_TOKEN': '${ .secrets.GH_TOKEN }'} Optional."),run_config:external_exports.lazy(()=>RunConfigInputSchema).optional().describe("Per-call model choice and run bounds. Unset fields inherit the platform defaults."),output:external_exports.lazy(()=>AgentCallOutputContractInputSchema).optional().describe("Structured output contract for this agent call. When set, the workflow runner extracts structured JSON from the agent's final response and validates it against the declared schema. The validated JSON is placed in the task output under the 'structured' key, enabling reliable downstream routing via switch_case expressions. When not set, the task output contains the agent's raw text response. @since T02 (Structured Agent Output Model)"),harness:external_exports.string().optional().describe("Execution harness for the agent invocation. Determines which execution engine processes the agent call: - HARNESS_UNSPECIFIED / HARNESS_NATIVE: Stigmer native engine (Python/LangGraph) - HARNESS_CURSOR: Cursor SDK engine (TypeScript/Cursor) The runner creates a Session with this harness before creating the AgentExecution. The harness is a session-level concern \u2014 it determines tool availability, state management, model access, and billing tier. When unspecified, defaults to HARNESS_NATIVE (the workflow surface's platform default). YAML Example: - code_review: call: agent with: agent: 'code-reviewer' harness: cursor message: 'Review this PR' Allowed values: HARNESS_NATIVE, HARNESS_CURSOR."),workspace_entries:external_exports.array(external_exports.lazy(()=>WorkspaceEntryInputSchema)).optional().describe("Workspace the child run's session operates on. Empty means no workspace."),environment_refs:external_exports.array(external_exports.lazy(()=>EnvironmentRefInputSchema)).optional().describe("References to Environment resources whose values are provided to the child runs this task creates. This is how a tool-using agent becomes runnable from a workflow: bind an org-shared environment holding the needed credentials, and the child runs receive its values at runtime. The agent and its default instance stay untouched.")}),CallActivityTaskConfigInputSchema=external_exports.object({activity:external_exports.string().describe("Activity name to execute."),input:external_exports.record(external_exports.unknown()).optional().describe("Activity input (optional). Can be any JSON structure. Supports expressions in string values.")}),EmitEventInputSchema=external_exports.object({type:external_exports.string().describe("CloudEvents type identifier. A reverse-DNS string that categorizes the event for routing and filtering. Examples: 'stigmer.workflow.ticket.classified', 'acme.order.completed'"),source:external_exports.string().optional().describe("CloudEvents source identifier. URI or URI-reference that identifies the context in which the event happened. Supports ${ } expression interpolation. When empty, the runtime defaults to the workflow execution URI (e.g., '/workflows/{workflow_id}/executions/{execution_id}')."),data:external_exports.record(external_exports.unknown()).optional().describe("Event payload data. Arbitrary JSON object carried as the CloudEvents data attribute. Values within the Struct can contain ${ } expressions that the runtime evaluates before emission. Unlike other Struct fields in the workflow domain (response_schema, form_schema, schema) which carry JSON Schema definitions, this field carries the actual event payload \u2014 not a schema."),subject:external_exports.string().optional().describe("CloudEvents subject identifier. Describes the subject of the event in the context of the event producer. Supports ${ } expression interpolation. Examples: '${ $context.ticket.id }', '${ $context.order.number }'")}),WebhookDeliveryInputSchema=external_exports.object({url:external_exports.string().describe("Endpoint URL to POST the event to. Can contain expressions: 'https://hooks.example.com/${ $context.tenant }'"),headers:external_exports.record(external_exports.string()).optional().describe("HTTP headers to send with the POST (optional). Values can contain runtime placeholders resolved just-in-time by the runner: 'Authorization: Bearer ${.secrets.WEBHOOK_TOKEN}' or '${.env_vars.KEY}'. Secrets resolve inside the delivery activity and never enter workflow history.")}),SignalDeliveryInputSchema=external_exports.object({execution_id:external_exports.string().describe("Target workflow execution id ('wfx_...'), as returned by run/create. Usually flows from a prior task's output: '${ .start_processor.execution_id }'"),signal_name:external_exports.string().describe("Signal name, matching the target's listen task event id (verbatim).")}),EmitDeliveryTargetInputSchema=external_exports.object({webhook:external_exports.lazy(()=>WebhookDeliveryInputSchema).optional().describe("POST the CloudEvents envelope to an HTTP endpoint."),signal:external_exports.lazy(()=>SignalDeliveryInputSchema).optional().describe("Signal another workflow execution's listen task.")}),EmitEventTaskConfigInputSchema=external_exports.object({event:external_exports.lazy(()=>EmitEventInputSchema).describe("The event specification to emit. Contains the CloudEvents envelope fields (type, source, data, subject). Required field."),delivery:external_exports.array(external_exports.lazy(()=>EmitDeliveryTargetInputSchema)).optional().describe("Delivery targets for the emitted event (optional). When empty, the task only constructs the CloudEvents envelope and exposes it as task output \u2014 no external delivery happens. Delivery is best-effort: a failed target never fails the task. Failures are collected into the 'delivery_errors' array on the task output, one entry per failed target, so workflows can branch on delivery health. Each target has a 30-second timeout.")}),EvalCriterionInputSchema=external_exports.object({name:external_exports.string().describe("Name of this evaluation dimension. Used in the judge prompt and appears in the output. Examples: 'accuracy', 'completeness', 'safety', 'relevance'"),description:external_exports.string().describe("Description of what this criterion measures. Included in the judge prompt to guide the LLM's assessment. Example: 'Does the response accurately reflect the source data without hallucinations?'"),weight:external_exports.number().optional().describe("Relative weight for computing the weighted average overall score. When all weights are equal (or all zero), criteria are averaged uniformly. Example: accuracy=3.0, formatting=1.0 means accuracy counts 3x more.")}),EvalTaskConfigInputSchema=external_exports.object({model:external_exports.string().describe("LLM model used as the judge. Resolved via the Stigmer model registry. Examples: 'gpt-4o', 'claude-sonnet-4-5'"),subject:external_exports.string().describe("Expression selecting the data to evaluate. Supports ${ } expression interpolation. Example: '${ $context.summarize.text }' to evaluate a summary task's output."),rubric:external_exports.string().describe("Evaluation criteria in natural language. Tells the judge LLM what to assess and what 'good' looks like. For pass_fail: describe what constitutes a pass. For numeric_score: describe the scoring scale. For multi_criteria: provide overall context (per-criterion detail goes in criteria field)."),scoring_mode:external_exports.string().optional().describe("How the judge scores the subject. Default: EVAL_PASS_FAIL. Allowed values: EVAL_PASS_FAIL, EVAL_NUMERIC_SCORE, EVAL_MULTI_CRITERIA."),threshold:external_exports.number().optional().describe("Pass threshold for numeric_score and multi_criteria modes. The subject passes if score >= threshold. Ignored for pass_fail mode (the judge's binary decision is used directly). Valid range: 0.0 to 1.0. Default: 0.5."),on_fail:external_exports.string().optional().describe("Policy applied when the subject fails evaluation. Default: EVAL_FAIL_RAISE (task fails with evaluation error). Allowed values: EVAL_FAIL_RAISE, EVAL_FAIL_BRANCH, EVAL_FAIL_WARN."),fallback_task:external_exports.string().optional().describe("Target task to branch to when on_fail is EVAL_FAIL_BRANCH. Must reference a valid task name in the same workflow. Only meaningful when on_fail is EVAL_FAIL_BRANCH; ignored otherwise."),system_prompt:external_exports.string().optional().describe("Optional custom system prompt override for the judge LLM. When set, replaces the auto-generated judge system prompt entirely. Use only when the default judge prompt template does not fit your needs. When empty, the runtime constructs a judge-appropriate system prompt from the rubric, scoring_mode, and criteria."),criteria:external_exports.array(external_exports.lazy(()=>EvalCriterionInputSchema)).optional().describe("Evaluation criteria for multi_criteria mode. Required when scoring_mode is EVAL_MULTI_CRITERIA; ignored otherwise. Each criterion is scored independently, and the overall score is the weighted average (uniform if all weights are equal or zero)."),max_cost_micros:external_exports.union([external_exports.number(),external_exports.string()]).optional().describe("Per-task cost cap in micro-USD (1 USD = 1,000,000 micros). When set, the runtime terminates this eval call if its cost exceeds this limit, independent of the workflow-level budget. Optional \u2014 when 0, no per-task cost limit is enforced. @since T05 (Workflow-Level Budget Primitives)")}),ForTaskConfigInputSchema=external_exports.lazy(()=>external_exports.object({each:external_exports.string().describe("Variable name for each item in the iteration. Accessible via ${ $data.item } in expressions."),in:external_exports.string().describe("Expression evaluating to the collection to iterate over. Example: '${ $data.items }' or '${ [1, 2, 3] }'"),do:external_exports.array(external_exports.lazy(()=>WorkflowTaskInputSchema)).optional().describe("Tasks to execute for each iteration. Loop variables available: ${ $data.item }, ${ $data.index }"),max_parallelism:external_exports.number().optional().describe("Maximum number of iterations to execute concurrently. 0 (default): sequential execution \u2014 iterations run one at a time in input order. This preserves pre-T17 behavior. 1: effectively sequential (one at a time, but uses the parallel execution path \u2014 useful for testing). N > 1: up to N iterations run concurrently using Temporal workflow goroutines with a semaphore-based concurrency limiter. Results are always reassembled in original input order regardless of completion order. @since T17 (Advanced Agentic Orchestration)"),batch_size:external_exports.number().optional().describe("Number of items to process in each batch before moving to the next. 0 (default): no batching \u2014 all items are available for parallel execution (up to max_parallelism concurrent). N > 0: items are chunked into groups of N. Each chunk is fully processed before the next chunk begins. Within each chunk, up to max_parallelism iterations run concurrently. Only meaningful when max_parallelism > 0; ignored in sequential mode. @since T17 (Advanced Agentic Orchestration)"),on_error:external_exports.string().optional().describe("Policy for handling individual iteration failures. Default: FOR_EACH_FAIL_FAST (stop on first error). Only meaningful when max_parallelism > 0; in sequential mode, any failure stops the loop regardless of this setting (pre-T17 behavior). @since T17 (Advanced Agentic Orchestration) Allowed values: FOR_EACH_FAIL_FAST, FOR_EACH_CONTINUE, FOR_EACH_SKIP.")})),ForkBranchInputSchema=external_exports.lazy(()=>external_exports.object({name:external_exports.string().describe("Branch name/identifier."),do:external_exports.array(external_exports.lazy(()=>WorkflowTaskInputSchema)).optional().describe("Tasks to execute in this branch.")})),ForkTaskConfigInputSchema=external_exports.lazy(()=>external_exports.object({branches:external_exports.array(external_exports.lazy(()=>ForkBranchInputSchema)).optional().describe("Branches to execute in parallel (at least 2 required)."),compete:external_exports.boolean().optional().describe("If true, first branch to complete wins (race mode). If false, all branches must complete (default).")})),GrpcCallTaskConfigInputSchema=external_exports.object({service:external_exports.string().describe("Fully qualified service name. Example: 'com.example.UserService'"),method:external_exports.string().describe("Method name to call. Example: 'GetUser'"),request:external_exports.record(external_exports.unknown()).optional().describe("Request message (optional). Can be any JSON structure matching the proto schema. Supports expressions in string values.")}),HttpEndpointInputSchema=external_exports.object({uri:external_exports.string().describe("URI of the endpoint. Can contain expressions: 'https://api.example.com/${.resource}'")}),HttpCallTaskConfigInputSchema=external_exports.object({method:external_exports.string().describe("HTTP method (GET, POST, PUT, DELETE, PATCH). Allowed values: GET, POST, PUT, DELETE, PATCH."),endpoint:external_exports.lazy(()=>HttpEndpointInputSchema).describe("HTTP endpoint configuration."),headers:external_exports.record(external_exports.string()).optional().describe("HTTP headers (optional). Values can contain expressions: 'Bearer ${TOKEN}'"),body:external_exports.record(external_exports.unknown()).optional().describe("Request body (optional). Can be any JSON structure. Supports expressions in string values."),timeout_seconds:external_exports.number().optional().describe("Request timeout in seconds. Max: 300 (5 minutes). Optional \u2014 unset (0) leaves the request bounded by the runner's activity timeout. When set, the runner aborts the request at this budget and fails the task with HTTP_CALL_TIMEOUT (non-retryable \u2014 catchable with try/catch); the activity timeout widens to fit (#686). Unset (0) is valid: proto3 implicit presence makes an omitted field indistinguishable from 0, so the range rule must not fire on it (#673).")}),HumanInputOutcomeInputSchema=external_exports.object({name:external_exports.string().describe("Outcome identifier used in task output and routing. Examples: 'approve', 'deny', 'needs_revision', 'escalate', 'defer' Must be unique within the outcomes list."),label:external_exports.string().optional().describe("Human-readable label for the button/action in the approval UI. When empty, the UI displays the capitalized name. Examples: 'Approve Escalation', 'Reject \u2014 Not Customer-Impacting'"),then:external_exports.string().optional().describe("Task to branch to when this outcome is selected. Must reference a valid task name in the same workflow. When empty, the workflow continues to the next task in sequence.")}),HumanInputTaskConfigInputSchema=external_exports.object({prompt:external_exports.string().describe("Message shown to the reviewer explaining what needs approval or input. Supports ${ } expression interpolation for injecting workflow context. Example: 'Approve escalation for ticket ${ $context.ticket.id }?'"),form_schema:external_exports.record(external_exports.unknown()).optional().describe("JSON Schema defining the input form rendered to the reviewer. When set, the approval UI renders a typed form based on this schema. The reviewer's form response is validated against the schema before the task completes, and the validated data appears in the task output under the 'form_data' key. When not set, the reviewer sees only the outcome buttons (approve/deny or custom outcomes) without a data entry form. Uses the same google.protobuf.Struct + JSON Schema pattern as AgentCallOutputContract.schema and LlmCallTaskConfig.response_schema."),outcomes:external_exports.array(external_exports.lazy(()=>HumanInputOutcomeInputSchema)).optional().describe("Named outcomes that the reviewer can select. Each outcome represents a decision the reviewer can make, with optional routing to a different downstream task. This enables rich branching beyond binary approve/deny. When empty, the task defaults to binary behavior: - 'approve': task completes, workflow continues to next task - 'deny': task fails (enters try_catch or EXECUTION_FAILED) When custom outcomes are defined, the first outcome is used as the default for HUMAN_INPUT_TIMEOUT_APPROVE, and the last outcome is used as the default for HUMAN_INPUT_TIMEOUT_DENY."),approvers:external_exports.array(external_exports.string()).optional().describe("Approver identifiers \u2014 who is allowed to respond to this task. Supports user IDs, team slugs, and role names. Format examples: - 'user:jane@acme.com' \u2014 specific user - 'team:engineering-leads' \u2014 any member of the team - 'role:content-admin' \u2014 any user with the role When empty, any authenticated user can respond. Resolution of these identifiers is a runtime concern (T13)."),timeout:external_exports.number().optional().describe("Timeout in seconds before the on_timeout policy applies. Default: 0 (no timeout \u2014 the task waits indefinitely). Max: 2592000 (30 days). A timeout of 0 means the workflow will wait until a human responds. For production workflows, setting a timeout with an appropriate on_timeout policy is strongly recommended."),on_timeout:external_exports.string().optional().describe("Policy applied when the timeout expires without a response. Only meaningful when timeout > 0; ignored when timeout is 0. Default: HUMAN_INPUT_TIMEOUT_FAIL (task fails with timeout error). Allowed values: HUMAN_INPUT_TIMEOUT_FAIL, HUMAN_INPUT_TIMEOUT_APPROVE, HUMAN_INPUT_TIMEOUT_DENY, HUMAN_INPUT_TIMEOUT_ESCALATE."),notification_channels:external_exports.array(external_exports.string()).optional().describe("Channel identifiers for sending approval request notifications. When the task starts, the runtime sends notifications through these channels to alert potential approvers. Format examples: - 'slack:#approvals' \u2014 Slack channel - 'email:ops@acme.com' \u2014 email address - 'teams:#incident-response' \u2014 Microsoft Teams channel The format and routing of notifications is a runtime concern (T13). The proto carries the identifiers; the runtime resolves them to actual notification providers configured in the workflow instance's environment."),payload:external_exports.unknown().optional().describe("Structured material for the reviewer to examine before deciding. Supports ${ } expression interpolation: the whole value can be a single expression string ('${ $context.draft_revision }') or an inline object/array whose nested strings carry embedded expressions. The runtime resolves expressions when the gate activates and attaches the resolved payload to the approval_requested event, so the approval record is permanently bound to exactly what the reviewer saw. Distinct from prompt (the instruction to the reviewer) and form_schema (the shape of the reviewer's response): payload is the thing under review \u2014 an article diff, a proposed record set, a generated plan."),ui_hint:external_exports.string().optional().describe("Hint identifying which UI should present the payload. A plain discriminator string (e.g. 'article-diff', 'infra-proposal') that embedding applications match against their registered review renderers. When no renderer is registered for the hint \u2014 or the gate is viewed from a surface without custom renderers (CLI, plain console) \u2014 the payload is shown as structured data by the built-in approval card, so workflows stay portable across surfaces.")}),SignalInputSchema=external_exports.object({id:external_exports.string().describe("Signal identifier."),type:external_exports.string().describe("Signal type: 'signal', 'query', or 'update'. Allowed values: signal, query, update.")}),ListenToInputSchema=external_exports.object({mode:external_exports.string().describe("Listening mode: - 'one': Wait for any one signal - 'all': Wait for all signals Allowed values: one, all."),signals:external_exports.array(external_exports.lazy(()=>SignalInputSchema)).optional().describe("Signals to listen for.")}),ListenTaskConfigInputSchema=external_exports.object({to:external_exports.lazy(()=>ListenToInputSchema).describe("Signal listening configuration.")}),LlmCallTaskConfigInputSchema=external_exports.object({model:external_exports.string().describe("Model reference resolved via the Stigmer model registry. Examples: 'gpt-4o', 'gpt-4o-mini', 'claude-sonnet-4-5', 'claude-haiku-3-5' Required field."),system_prompt:external_exports.string().optional().describe("System prompt that sets the LLM's role and constraints. Supports ${ } expression interpolation for dynamic system prompts. Optional \u2014 omit for tasks where the user prompt is self-contained."),prompt:external_exports.string().describe("User prompt / instruction sent to the LLM. Supports ${ } expression interpolation for injecting workflow context. Example: 'Classify this ticket: ${ $context.ticket.description }' Required field."),response_schema:external_exports.record(external_exports.unknown()).optional().describe("JSON Schema for structured output. When set, the runner requests structured output from the provider (e.g., OpenAI's response_format, Anthropic's tool_use extraction) and validates the response against this schema. Uses the same google.protobuf.Struct + JSON Schema pattern as AgentCallOutputContract.schema for consistency across the workflow domain. When not set, the task output is the LLM's raw text response."),temperature:external_exports.number().optional().describe("Sampling temperature (0.0 to 2.0). Lower = more deterministic, higher = more creative. Range is 0.0-2.0 to accommodate all major providers (OpenAI supports up to 2.0; others clamp to their supported range at runtime). Optional \u2014 uses the provider's default when not set."),max_tokens:external_exports.number().optional().describe("Maximum tokens in the LLM response. Optional \u2014 uses the provider's default when not set. Unset (0) is valid: proto3 implicit presence makes an omitted field indistinguishable from 0, so the range rule must not fire on it (#673)."),timeout:external_exports.number().optional().describe("Timeout for the LLM call in seconds. Max: 600 (10 minutes). Optional \u2014 unset (0) leaves the call bounded by the runner's activity timeout. When set, the runner bounds the provider request at this budget and a breach fails the task with LLM_TIMEOUT (non-retryable \u2014 catchable with try/catch); the activity timeout widens to fit (#686). Unset (0) is valid: proto3 implicit presence makes an omitted field indistinguishable from 0, so the range rule must not fire on it (#673)."),on_invalid:external_exports.string().optional().describe("Policy when the LLM response fails schema validation. Only meaningful when response_schema is set; ignored otherwise. Default: ON_INVALID_FAIL (task fails immediately). Allowed values: ON_INVALID_FAIL, ON_INVALID_RETRY, ON_INVALID_FALLBACK."),max_retries:external_exports.number().optional().describe("Maximum schema-validation retry attempts when on_invalid is ON_INVALID_RETRY. Each retry re-prompts the LLM with the validation errors and expected schema, giving it an opportunity to self-correct. Only meaningful when on_invalid is ON_INVALID_RETRY; ignored otherwise. Default when unset: 1. Valid range when set: 1-5. Unset (0) is valid: proto3 implicit presence makes an omitted field indistinguishable from 0, so the range rule must not fire on it (#673)."),fallback_task:external_exports.string().optional().describe("Target task to branch to when schema validation cannot be resolved. Used in two scenarios: 1. on_invalid is ON_INVALID_RETRY and all retries are exhausted 2. on_invalid is ON_INVALID_FALLBACK (immediate branch, no retry) Must reference a valid task name in the same workflow. When empty and retries are exhausted, the task fails."),max_cost_micros:external_exports.union([external_exports.number(),external_exports.string()]).optional().describe("Per-task cost cap in micro-USD (1 USD = 1,000,000 micros). When set, the runtime terminates this specific LLM call if its cost exceeds this limit, independent of the workflow-level budget. The runtime checks both: per-task limit first, then workflow remaining budget. Optional \u2014 when 0, no per-task cost limit is enforced. @since T05 (Workflow-Level Budget Primitives)"),max_total_tokens:external_exports.union([external_exports.number(),external_exports.string()]).optional().describe("Per-task token cap (input + output tokens combined). When set, the runtime terminates this specific LLM call if total tokens exceed this limit. Complements max_tokens (field 6), which limits only the output token count as a generation parameter. Optional \u2014 when 0, no per-task total token limit is enforced. @since T05 (Workflow-Level Budget Primitives)")}),NotificationTaskConfigInputSchema=external_exports.object({channel:external_exports.string().describe("Notification channel identifier. Determines which notification provider processes this message. Common values: 'slack', 'email', 'discord', 'teams', 'webhook' This is a string (not an enum) for extensibility \u2014 new channels can be added without proto changes. The runtime resolves the channel to its configured provider in the workflow instance's environment."),recipients:external_exports.array(external_exports.string()).optional().describe("Recipient identifiers for the notification. Format depends on the channel: - slack: '#channel-name', '@username', or Slack user IDs - email: 'user@example.com' - discord: '#channel-name', '@role' - teams: '#channel-name' - webhook: URL or webhook identifier At least one recipient is required. Individual values may contain ${ } expressions that the runtime evaluates before delivery (e.g., '${ $context.customer.email }')."),subject:external_exports.string().optional().describe("Notification subject or title. Supports ${ } expression interpolation. Used as: email subject line, Slack message title, webhook payload title. Optional \u2014 some channels (e.g., simple Slack messages) may not use it."),body:external_exports.string().describe("Notification body / message content. Supports ${ } expression interpolation. The primary content of the notification. Formatting depends on channel (e.g., Slack Markdown, HTML for email, plain text for SMS). When template is also set, body serves as the fallback content if the template cannot be resolved."),template:external_exports.string().optional().describe("Named template reference for rendering the notification. When set, the runtime looks up this template in the workflow instance's environment and uses it for rendering, with the workflow context as template data. The body field is used as fallback if the template cannot be resolved. Examples: 'incident-alert', 'order-confirmation', 'approval-request' Template resolution and rendering is a runtime concern (T13)."),metadata:external_exports.record(external_exports.string()).optional().describe("Channel-specific metadata as key-value pairs. Provides additional configuration that varies by notification channel: - slack: {'thread_ts': '...', 'unfurl_links': 'false'} - email: {'priority': 'high', 'reply_to': '...', 'cc': '...'} - webhook: {'method': 'POST', 'content_type': 'application/json'} Values may contain ${ } expressions that the runtime evaluates before delivery.")}),RaiseTaskConfigInputSchema=external_exports.object({error:external_exports.string().describe("Error type/name."),message:external_exports.string().optional().describe("Error message. Can contain expressions: '${ .errorMessage }' Optional \u2014 when omitted, the raised error carries only the error type/name. (The runtime maps this to the problem-details 'detail' field only when present; requiring it was contract fiction, #685.)")}),RunTaskConfigInputSchema=external_exports.object({workflow:external_exports.string().describe("Sub-workflow name/identifier to execute."),input:external_exports.record(external_exports.unknown()).optional().describe("Sub-workflow input (optional). Can be any JSON structure. Supports expressions in string values.")}),SetTaskConfigInputSchema=external_exports.object({variables:external_exports.record(external_exports.string()).describe("Variables to set in workflow state. Keys are variable names, values can be literals or expressions. Expressions use ${...} syntax, e.g., '${.a + .b}' or '${now}'")}),SwitchCaseInputSchema=external_exports.object({name:external_exports.string().describe("Case name/identifier."),when:external_exports.string().optional().describe("Condition expression (optional). If empty, this is the default case. Example: '${ $context.value > 5 }'"),then:external_exports.string().describe("Target task name to execute if condition matches.")}),SwitchTaskConfigInputSchema=external_exports.object({cases:external_exports.array(external_exports.lazy(()=>SwitchCaseInputSchema)).optional().describe("List of switch cases (at least one required). Cases are evaluated in order. First matching case executes. If no 'when' is specified, the case acts as default.")}),TransformTaskConfigInputSchema=external_exports.object({engine:external_exports.string().describe("Transformation engine to use. Required \u2014 must be explicitly set (not UNSPECIFIED). Allowed values: TRANSFORM_ENGINE_JQ, TRANSFORM_ENGINE_JSONATA, TRANSFORM_ENGINE_TEMPLATE."),expression:external_exports.string().describe("Transformation expression in the chosen engine's syntax. For JQ: a JQ filter expression (e.g., '{name: .full_name}') For JSONata: a JSONata expression (e.g., '{'name': full_name}') For TEMPLATE: a Go text/template string with {{ }} placeholders Required field."),input:external_exports.string().optional().describe("Expression selecting the input data for the transformation. Supports ${ } expression interpolation. When omitted, the entire workflow context is used as input. Example: '${ $context.triage }' to transform just the triage output.")}),CatchBlockInputSchema=external_exports.lazy(()=>external_exports.object({as:external_exports.string().optional().describe("Variable name to store the error (optional). Accessible via ${ .error } in catch tasks."),do:external_exports.array(external_exports.lazy(()=>WorkflowTaskInputSchema)).optional().describe("Tasks to execute when error is caught."),compensate:external_exports.boolean().optional().describe("Whether to run compensation tasks for already-completed try tasks before executing the catch do block. When true, the runtime walks the compensation stack (completed tasks that declared a 'compensate' block) in reverse order and executes each task's compensation actions. After all compensations complete (or fail), the catch 'do' block runs as normal. Compensation failures do not prevent the catch block from running. They are logged and included in the task output for diagnostics. Default: false (no compensation \u2014 preserves pre-T17 behavior). @since T17 (Advanced Agentic Orchestration)")})),TryTaskConfigInputSchema=external_exports.lazy(()=>external_exports.object({try:external_exports.array(external_exports.lazy(()=>WorkflowTaskInputSchema)).optional().describe("Tasks to attempt (at least one required). If any task fails, execution jumps to catch block."),catch:external_exports.lazy(()=>CatchBlockInputSchema).optional().describe("Catch block for error handling (optional). If not provided, errors propagate to parent.")})),ValidationRuleInputSchema=external_exports.object({name:external_exports.string().describe("Rule identifier for error reporting and debugging. Appears in validation error output so operators can identify which specific rule failed. Examples: 'critical_needs_rationale', 'customer_impact_requires_high_severity'"),expression:external_exports.string().describe("Boolean expression that must evaluate to true for the rule to pass. Supports ${ } expression interpolation. The expression receives the validate task's input data as its context. Example: '${ .severity != 'critical' || (.rationale != null && .rationale != '') }'"),message:external_exports.string().optional().describe("Error message included in validation output when the rule fails. Supports ${ } expression interpolation for dynamic error messages. When empty, a generic message is generated from the rule name. Example: 'Critical severity requires a rationale'")}),ValidateTaskConfigInputSchema=external_exports.object({input:external_exports.string().describe("Expression selecting the data to validate. Supports ${ } expression interpolation. Example: '${ $context.triage }' to validate the triage task's output."),schema:external_exports.record(external_exports.unknown()).optional().describe("JSON Schema to validate the input data against. Standard JSON Schema (draft 2020-12 or compatible). The runtime validates the input data against this schema and reports detailed errors for any constraint violations. Uses the same google.protobuf.Struct + JSON Schema pattern as AgentCallOutputContract.schema, LlmCallTaskConfig.response_schema, and HumanInputTaskConfig.form_schema. At least one of schema or rules must be set."),rules:external_exports.array(external_exports.lazy(()=>ValidationRuleInputSchema)).optional().describe("Business rules to evaluate against the input data. Each rule is a boolean expression that must evaluate to true. Rules complement schema validation by expressing constraints that JSON Schema cannot: cross-field dependencies, conditional requirements, and domain-specific invariants. At least one of schema or rules must be set."),on_fail:external_exports.string().optional().describe("Policy applied when validation fails. Default: VALIDATION_FAIL_RAISE (task fails with validation error). Allowed values: VALIDATION_FAIL_RAISE, VALIDATION_FAIL_BRANCH, VALIDATION_FAIL_WARN."),fallback_task:external_exports.string().optional().describe("Target task to branch to when on_fail is VALIDATION_FAIL_BRANCH. Must reference a valid task name in the same workflow. Only meaningful when on_fail is VALIDATION_FAIL_BRANCH; ignored otherwise. When on_fail is BRANCH and fallback_task is empty, the task fails.")}),DurationInputSchema=external_exports.object({days:external_exports.number().optional().describe("Number of days to wait (24 hours each)."),hours:external_exports.number().optional().describe("Number of hours to wait."),minutes:external_exports.number().optional().describe("Number of minutes to wait."),seconds:external_exports.number().optional().describe("Number of seconds to wait."),milliseconds:external_exports.number().optional().describe("Number of milliseconds to wait.")}),WaitTaskConfigInputSchema=external_exports.object({duration:external_exports.lazy(()=>DurationInputSchema).optional().describe("Relative duration to wait from now. Use this when you want to wait for a specific amount of time regardless of when the workflow reaches this task. Example: { days: 7 } = wait 1 week from now"),until:external_exports.string().optional().describe("Absolute timestamp to wait until. Use this when you want to wait until a specific point in time. If the timestamp is in the past, the task completes immediately. Example: '2026-03-01T09:00:00Z' = wait until March 1st, 2026 at 9am UTC")}),ExportInputSchema=external_exports.object({as:external_exports.string().optional().describe("Expression defining how to export output using ${...} syntax.")}),FlowControlInputSchema=external_exports.object({then:external_exports.string().optional().describe("Target task name or 'end' to terminate workflow.")}),WorkflowTaskInputSchema=external_exports.lazy(()=>external_exports.object({name:external_exports.string().optional().describe("Task name/identifier (must be unique within workflow). Must be a valid C-style identifier: starts with a letter or underscore, followed by letters, digits, or underscores."),kind:external_exports.string().describe("Task type. Set the matching config field (e.g. kind='http_call' -> populate http_call). Allowed values: set_vars, http_call, grpc_call, activity_call, switch_case, for_each, fork, try_catch, listen, wait, raise_error, run_workflow, agent_call, llm_call, transform, human_input, validate, emit_event, notification, eval."),agent_call:external_exports.lazy(()=>AgentCallTaskConfigInputSchema).optional().describe("Required when kind='agent_call'. AgentCallTaskConfig defines the configuration for agent_call tasks that invoke AI agents."),activity_call:external_exports.lazy(()=>CallActivityTaskConfigInputSchema).optional().describe("Required when kind='activity_call'. CallActivityTaskConfig defines the configuration for activity_call tasks that execute activities."),emit_event:external_exports.lazy(()=>EmitEventTaskConfigInputSchema).optional().describe("Required when kind='emit_event'. EmitEventTaskConfig defines the configuration for emit_event tasks that publish CloudEvents to external consumers, other workflows, audit trails, and metrics systems."),eval:external_exports.lazy(()=>EvalTaskConfigInputSchema).optional().describe("Required when kind='eval'. EvalTaskConfig defines the configuration for eval tasks that use an LLM judge to assess the semantic quality of workflow data."),for_each:external_exports.lazy(()=>ForTaskConfigInputSchema).optional().describe("Required when kind='for_each'. ForTaskConfig defines the configuration for for_each tasks that iterate over collections."),fork:external_exports.lazy(()=>ForkTaskConfigInputSchema).optional().describe("Required when kind='fork'. ForkTaskConfig defines the configuration for fork tasks that execute branches in parallel."),grpc_call:external_exports.lazy(()=>GrpcCallTaskConfigInputSchema).optional().describe("Required when kind='grpc_call'. GrpcCallTaskConfig defines the configuration for grpc_call tasks that make gRPC requests."),http_call:external_exports.lazy(()=>HttpCallTaskConfigInputSchema).optional().describe("Required when kind='http_call'. HttpCallTaskConfig defines the configuration for http_call tasks that make HTTP requests."),human_input:external_exports.lazy(()=>HumanInputTaskConfigInputSchema).optional().describe("Required when kind='human_input'. HumanInputTaskConfig defines the configuration for human_input tasks that pause workflow execution to collect typed input or approval from a human reviewer, then resume based on the reviewer's response."),listen:external_exports.lazy(()=>ListenTaskConfigInputSchema).optional().describe("Required when kind='listen'. ListenTaskConfig defines the configuration for listen tasks that wait for external signals."),llm_call:external_exports.lazy(()=>LlmCallTaskConfigInputSchema).optional().describe("Required when kind='llm_call'. LlmCallTaskConfig defines the configuration for llm_call tasks that make direct LLM API calls without the overhead of a full agent invocation."),notification:external_exports.lazy(()=>NotificationTaskConfigInputSchema).optional().describe("Required when kind='notification'. NotificationTaskConfig defines the configuration for notification tasks that send messages to humans through channels like Slack, email, Discord, Microsoft Teams, or webhooks."),raise_error:external_exports.lazy(()=>RaiseTaskConfigInputSchema).optional().describe("Required when kind='raise_error'. RaiseTaskConfig defines the configuration for raise_error tasks that raise errors."),run_workflow:external_exports.lazy(()=>RunTaskConfigInputSchema).optional().describe("Required when kind='run_workflow'. RunTaskConfig defines the configuration for run_workflow tasks that execute sub-workflows."),set_vars:external_exports.lazy(()=>SetTaskConfigInputSchema).optional().describe("Required when kind='set_vars'. SetTaskConfig defines the configuration for set_vars tasks that assign variables in workflow state."),switch_case:external_exports.lazy(()=>SwitchTaskConfigInputSchema).optional().describe("Required when kind='switch_case'. SwitchTaskConfig defines the configuration for switch_case tasks that branch conditionally."),transform:external_exports.lazy(()=>TransformTaskConfigInputSchema).optional().describe("Required when kind='transform'. TransformTaskConfig defines the configuration for transform tasks that perform deterministic data transformation without LLM calls."),try_catch:external_exports.lazy(()=>TryTaskConfigInputSchema).optional().describe("Required when kind='try_catch'. TryTaskConfig defines the configuration for try_catch tasks that handle errors."),validate:external_exports.lazy(()=>ValidateTaskConfigInputSchema).optional().describe("Required when kind='validate'. ValidateTaskConfig defines the configuration for validate tasks that perform explicit schema and business-rule validation on workflow data."),wait:external_exports.lazy(()=>WaitTaskConfigInputSchema).optional().describe("Required when kind='wait'. WaitTaskConfig defines the configuration for wait tasks that pause workflow execution. Supports both relative durations and absolute timestamps."),export:external_exports.lazy(()=>ExportInputSchema).optional().describe("Export configuration (how to save task output to context). Optional - if not set, output is not saved."),flow:external_exports.lazy(()=>FlowControlInputSchema).optional().describe("Flow control (which task executes next). Optional - if not set, continues to next task in sequence."),compensate:external_exports.array(external_exports.lazy(()=>WorkflowTaskInputSchema)).optional().describe("Compensation tasks to execute if this task needs to be 'undone.'")})),EnvVarDeclarationInputSchema3=external_exports.object({is_secret:external_exports.boolean().optional().describe("Whether the resolved value should be treated as a secret."),description:external_exports.string().optional().describe("Human-readable description shown in the UI credential form. Should explain what the variable is used for and where to obtain it."),optional:external_exports.boolean().optional().describe("Whether this variable is optional.")}),WorkflowBudgetInputSchema=external_exports.object({max_cost_micros:external_exports.union([external_exports.number(),external_exports.string()]).optional().describe("Maximum total cost for this workflow execution in micro-USD. 1 USD = 1,000,000 micros. Example: 2000000 = $2.00. When exceeded, the on_exceeded policy is applied. Optional \u2014 when 0, no cost limit is enforced."),max_total_tokens:external_exports.union([external_exports.number(),external_exports.string()]).optional().describe("Maximum total tokens (input + output) across all LLM/agent tasks. Optional \u2014 when 0, no token limit is enforced."),max_duration_seconds:external_exports.number().optional().describe("Maximum wall-clock duration for the entire workflow execution in seconds. Optional \u2014 when 0, no duration limit is enforced (Temporal's own workflow execution timeout still applies)."),on_exceeded:external_exports.string().optional().describe("Policy when any budget limit is exceeded. Allowed values: budget_exceeded_terminate, budget_exceeded_human_review, budget_exceeded_warn.")});function workflowInputToProto(input){let slug=input.slug&&input.slug.length>0?input.slug:generateSlug(input.name),spec=create(WorkflowSpecSchema);if(input.description!==void 0&&(spec.description=input.description),input.document!==void 0&&(spec.document=workflowDocumentInputToProto(input.document)),input.tasks!==void 0&&(spec.tasks=input.tasks.map(workflowTaskInputToProto)),input.env!==void 0)for(let[k,v]of Object.entries(input.env))spec.env[k]=envVarDeclarationInputToProto3(v);return input.budget!==void 0&&(spec.budget=workflowBudgetInputToProto(input.budget)),Object.assign(create(WorkflowSchema),{apiVersion:"agentic.stigmer.ai/v1",kind:"Workflow",metadata:Object.assign(create(ApiResourceMetadataSchema),{name:input.name,slug,org:input.org,...input.visibility!==void 0&&{visibility:enumFromString(ApiResourceVisibility,input.visibility)},...input.labels!==void 0&&{labels:input.labels},...input.tags!==void 0&&{tags:input.tags}}),spec})}function workflowDocumentInputToProto(input){let result=create(WorkflowDocumentSchema);return input.dsl!==void 0&&(result.dsl=input.dsl),input.namespace!==void 0&&(result.namespace=input.namespace),input.name!==void 0&&(result.name=input.name),input.version!==void 0&&(result.version=input.version),input.description!==void 0&&(result.description=input.description),result}function runConfigInputToProto(input){let result=create(RunConfigSchema);return input.model_name!==void 0&&(result.modelName=input.model_name),input.max_cost_usd!==void 0&&(result.maxCostUsd=input.max_cost_usd),input.max_tool_rounds!==void 0&&(result.maxToolRounds=input.max_tool_rounds),result.serviceTier=enumFromString(ServiceTier,input.service_tier),result.thinkingMode=enumFromString(ThinkingMode,input.thinking_mode),result}function agentCallOutputContractInputToProto(input){let result=create(AgentCallOutputContractSchema);return input.schema!==void 0&&(result.schema=input.schema),result.onInvalid=enumFromString(OnInvalidOutputPolicy,input.on_invalid),input.max_retries!==void 0&&(result.maxRetries=input.max_retries),input.fallback_task!==void 0&&(result.fallbackTask=input.fallback_task),result}function gitRepoSourceInputToProto(input){let result=create(GitRepoSourceSchema);return input.url!==void 0&&(result.url=input.url),input.branch!==void 0&&(result.branch=input.branch),input.commit!==void 0&&(result.commit=input.commit),input.depth!==void 0&&(result.depth=input.depth),result.writeBackMode=enumFromString(GitWriteBackMode,input.write_back_mode),result}function localPathSourceInputToProto(input){let result=create(LocalPathSourceSchema);return input.path!==void 0&&(result.path=input.path),result}function workspaceSourceInputToProto(input){let result=create(WorkspaceSourceSchema);return input.git_repo!==void 0&&(result.source={case:"gitRepo",value:gitRepoSourceInputToProto(input.git_repo)}),input.local_path!==void 0&&(result.source={case:"localPath",value:localPathSourceInputToProto(input.local_path)}),result}function workspaceEntryInputToProto(input){let result=create(WorkspaceEntrySchema);return input.name!==void 0&&(result.name=input.name),input.source!==void 0&&(result.source=workspaceSourceInputToProto(input.source)),result}function environmentRefInputToProto(input){return create(ApiResourceReferenceSchema,{org:input.org,slug:input.slug,kind:ApiResourceKind.environment})}function agentCallTaskConfigInputToProto(input){let result=create(AgentCallTaskConfigSchema);return input.agent!==void 0&&(result.agent=input.agent),input.message!==void 0&&(result.message=input.message),input.env!==void 0&&(result.env=input.env),input.run_config!==void 0&&(result.runConfig=runConfigInputToProto(input.run_config)),input.output!==void 0&&(result.output=agentCallOutputContractInputToProto(input.output)),result.harness=enumFromString(Harness,input.harness),input.workspace_entries!==void 0&&(result.workspaceEntries=input.workspace_entries.map(workspaceEntryInputToProto)),input.environment_refs!==void 0&&(result.environmentRefs=input.environment_refs.map(environmentRefInputToProto)),result}function callActivityTaskConfigInputToProto(input){let result=create(CallActivityTaskConfigSchema);return input.activity!==void 0&&(result.activity=input.activity),input.input!==void 0&&(result.input=input.input),result}function emitEventInputToProto(input){let result=create(EmitEventSpecSchema);return input.type!==void 0&&(result.type=input.type),input.source!==void 0&&(result.source=input.source),input.data!==void 0&&(result.data=input.data),input.subject!==void 0&&(result.subject=input.subject),result}function webhookDeliveryInputToProto(input){let result=create(WebhookDeliverySchema);return input.url!==void 0&&(result.url=input.url),input.headers!==void 0&&(result.headers=input.headers),result}function signalDeliveryInputToProto(input){let result=create(SignalDeliverySchema);return input.execution_id!==void 0&&(result.executionId=input.execution_id),input.signal_name!==void 0&&(result.signalName=input.signal_name),result}function emitDeliveryTargetInputToProto(input){let result=create(EmitDeliveryTargetSchema);return input.webhook!==void 0&&(result.target={case:"webhook",value:webhookDeliveryInputToProto(input.webhook)}),input.signal!==void 0&&(result.target={case:"signal",value:signalDeliveryInputToProto(input.signal)}),result}function emitEventTaskConfigInputToProto(input){let result=create(EmitEventTaskConfigSchema);return input.event!==void 0&&(result.event=emitEventInputToProto(input.event)),input.delivery!==void 0&&(result.delivery=input.delivery.map(emitDeliveryTargetInputToProto)),result}function evalCriterionInputToProto(input){let result=create(EvalCriterionSchema);return input.name!==void 0&&(result.name=input.name),input.description!==void 0&&(result.description=input.description),input.weight!==void 0&&(result.weight=input.weight),result}function evalTaskConfigInputToProto(input){let result=create(EvalTaskConfigSchema);return input.model!==void 0&&(result.model=input.model),input.subject!==void 0&&(result.subject=input.subject),input.rubric!==void 0&&(result.rubric=input.rubric),result.scoringMode=enumFromString(EvalScoringMode,input.scoring_mode),input.threshold!==void 0&&(result.threshold=input.threshold),result.onFail=enumFromString(EvalFailPolicy,input.on_fail),input.fallback_task!==void 0&&(result.fallbackTask=input.fallback_task),input.system_prompt!==void 0&&(result.systemPrompt=input.system_prompt),input.criteria!==void 0&&(result.criteria=input.criteria.map(evalCriterionInputToProto)),input.max_cost_micros!==void 0&&(result.maxCostMicros=BigInt(input.max_cost_micros)),result}function forTaskConfigInputToProto(input){let result=create(ForTaskConfigSchema);return input.each!==void 0&&(result.each=input.each),input.in!==void 0&&(result.in=input.in),input.do!==void 0&&(result.do=input.do.map(workflowTaskInputToProto)),input.max_parallelism!==void 0&&(result.maxParallelism=input.max_parallelism),input.batch_size!==void 0&&(result.batchSize=input.batch_size),result.onError=enumFromString(ForEachErrorPolicy,input.on_error),result}function forkBranchInputToProto(input){let result=create(ForkBranchSchema);return input.name!==void 0&&(result.name=input.name),input.do!==void 0&&(result.do=input.do.map(workflowTaskInputToProto)),result}function forkTaskConfigInputToProto(input){let result=create(ForkTaskConfigSchema);return input.branches!==void 0&&(result.branches=input.branches.map(forkBranchInputToProto)),input.compete!==void 0&&(result.compete=input.compete),result}function grpcCallTaskConfigInputToProto(input){let result=create(GrpcCallTaskConfigSchema);return input.service!==void 0&&(result.service=input.service),input.method!==void 0&&(result.method=input.method),input.request!==void 0&&(result.request=input.request),result}function httpEndpointInputToProto(input){let result=create(HttpEndpointSchema);return input.uri!==void 0&&(result.uri=input.uri),result}function httpCallTaskConfigInputToProto(input){let result=create(HttpCallTaskConfigSchema);return input.method!==void 0&&(result.method=input.method),input.endpoint!==void 0&&(result.endpoint=httpEndpointInputToProto(input.endpoint)),input.headers!==void 0&&(result.headers=input.headers),input.body!==void 0&&(result.body=input.body),input.timeout_seconds!==void 0&&(result.timeoutSeconds=input.timeout_seconds),result}function humanInputOutcomeInputToProto(input){let result=create(HumanInputOutcomeSchema);return input.name!==void 0&&(result.name=input.name),input.label!==void 0&&(result.label=input.label),input.then!==void 0&&(result.then=input.then),result}function humanInputTaskConfigInputToProto(input){let result=create(HumanInputTaskConfigSchema);return input.prompt!==void 0&&(result.prompt=input.prompt),input.form_schema!==void 0&&(result.formSchema=input.form_schema),input.outcomes!==void 0&&(result.outcomes=input.outcomes.map(humanInputOutcomeInputToProto)),input.approvers!==void 0&&(result.approvers=input.approvers),input.timeout!==void 0&&(result.timeout=input.timeout),result.onTimeout=enumFromString(HumanInputTimeoutPolicy,input.on_timeout),input.notification_channels!==void 0&&(result.notificationChannels=input.notification_channels),input.payload!==void 0&&(result.payload=fromJson(ValueSchema,input.payload)),input.ui_hint!==void 0&&(result.uiHint=input.ui_hint),result}function signalInputToProto(input){let result=create(SignalSpecSchema);return input.id!==void 0&&(result.id=input.id),input.type!==void 0&&(result.type=input.type),result}function listenToInputToProto(input){let result=create(ListenToSchema);return input.mode!==void 0&&(result.mode=input.mode),input.signals!==void 0&&(result.signals=input.signals.map(signalInputToProto)),result}function listenTaskConfigInputToProto(input){let result=create(ListenTaskConfigSchema);return input.to!==void 0&&(result.to=listenToInputToProto(input.to)),result}function llmCallTaskConfigInputToProto(input){let result=create(LlmCallTaskConfigSchema);return input.model!==void 0&&(result.model=input.model),input.system_prompt!==void 0&&(result.systemPrompt=input.system_prompt),input.prompt!==void 0&&(result.prompt=input.prompt),input.response_schema!==void 0&&(result.responseSchema=input.response_schema),input.temperature!==void 0&&(result.temperature=input.temperature),input.max_tokens!==void 0&&(result.maxTokens=input.max_tokens),input.timeout!==void 0&&(result.timeout=input.timeout),result.onInvalid=enumFromString(OnInvalidOutputPolicy,input.on_invalid),input.max_retries!==void 0&&(result.maxRetries=input.max_retries),input.fallback_task!==void 0&&(result.fallbackTask=input.fallback_task),input.max_cost_micros!==void 0&&(result.maxCostMicros=BigInt(input.max_cost_micros)),input.max_total_tokens!==void 0&&(result.maxTotalTokens=BigInt(input.max_total_tokens)),result}function notificationTaskConfigInputToProto(input){let result=create(NotificationTaskConfigSchema);return input.channel!==void 0&&(result.channel=input.channel),input.recipients!==void 0&&(result.recipients=input.recipients),input.subject!==void 0&&(result.subject=input.subject),input.body!==void 0&&(result.body=input.body),input.template!==void 0&&(result.template=input.template),input.metadata!==void 0&&(result.metadata=input.metadata),result}function raiseTaskConfigInputToProto(input){let result=create(RaiseTaskConfigSchema);return input.error!==void 0&&(result.error=input.error),input.message!==void 0&&(result.message=input.message),result}function runTaskConfigInputToProto(input){let result=create(RunTaskConfigSchema);return input.workflow!==void 0&&(result.workflow=input.workflow),input.input!==void 0&&(result.input=input.input),result}function setTaskConfigInputToProto(input){let result=create(SetTaskConfigSchema);return input.variables!==void 0&&(result.variables=input.variables),result}function switchCaseInputToProto(input){let result=create(SwitchCaseSchema);return input.name!==void 0&&(result.name=input.name),input.when!==void 0&&(result.when=input.when),input.then!==void 0&&(result.then=input.then),result}function switchTaskConfigInputToProto(input){let result=create(SwitchTaskConfigSchema);return input.cases!==void 0&&(result.cases=input.cases.map(switchCaseInputToProto)),result}function transformTaskConfigInputToProto(input){let result=create(TransformTaskConfigSchema);return result.engine=enumFromString(TransformEngine,input.engine),input.expression!==void 0&&(result.expression=input.expression),input.input!==void 0&&(result.input=input.input),result}function catchBlockInputToProto(input){let result=create(CatchBlockSchema);return input.as!==void 0&&(result.as=input.as),input.do!==void 0&&(result.do=input.do.map(workflowTaskInputToProto)),input.compensate!==void 0&&(result.compensate=input.compensate),result}function tryTaskConfigInputToProto(input){let result=create(TryTaskConfigSchema);return input.try!==void 0&&(result.try=input.try.map(workflowTaskInputToProto)),input.catch!==void 0&&(result.catch=catchBlockInputToProto(input.catch)),result}function validationRuleInputToProto(input){let result=create(ValidationRuleSchema);return input.name!==void 0&&(result.name=input.name),input.expression!==void 0&&(result.expression=input.expression),input.message!==void 0&&(result.message=input.message),result}function validateTaskConfigInputToProto(input){let result=create(ValidateTaskConfigSchema);return input.input!==void 0&&(result.input=input.input),input.schema!==void 0&&(result.schema=input.schema),input.rules!==void 0&&(result.rules=input.rules.map(validationRuleInputToProto)),result.onFail=enumFromString(ValidationFailPolicy,input.on_fail),input.fallback_task!==void 0&&(result.fallbackTask=input.fallback_task),result}function durationInputToProto(input){let result=create(DurationSchema);return input.days!==void 0&&(result.days=input.days),input.hours!==void 0&&(result.hours=input.hours),input.minutes!==void 0&&(result.minutes=input.minutes),input.seconds!==void 0&&(result.seconds=input.seconds),input.milliseconds!==void 0&&(result.milliseconds=input.milliseconds),result}function waitTaskConfigInputToProto(input){let result=create(WaitTaskConfigSchema);return input.duration!==void 0&&(result.waitType={case:"duration",value:durationInputToProto(input.duration)}),input.until!==void 0&&(result.waitType={case:"until",value:toTimestamp(input.until)}),result}function exportInputToProto(input){let result=create(ExportSchema);return input.as!==void 0&&(result.as=input.as),result}function flowControlInputToProto(input){let result=create(FlowControlSchema);return input.then!==void 0&&(result.then=input.then),result}function workflowTaskInputToProto(input){let result=create(WorkflowTaskSchema);switch(input.name!==void 0&&(result.name=input.name),result.kind=enumFromString(WorkflowTaskKind,input.kind),input.export!==void 0&&(result.export=exportInputToProto(input.export)),input.flow!==void 0&&(result.flow=flowControlInputToProto(input.flow)),input.compensate!==void 0&&(result.compensate=input.compensate.map(workflowTaskInputToProto)),input.kind){case"agent_call":input.agent_call!==void 0&&(result.taskConfig=toJson(AgentCallTaskConfigSchema,agentCallTaskConfigInputToProto(input.agent_call)));break;case"activity_call":input.activity_call!==void 0&&(result.taskConfig=toJson(CallActivityTaskConfigSchema,callActivityTaskConfigInputToProto(input.activity_call)));break;case"emit_event":input.emit_event!==void 0&&(result.taskConfig=toJson(EmitEventTaskConfigSchema,emitEventTaskConfigInputToProto(input.emit_event)));break;case"eval":input.eval!==void 0&&(result.taskConfig=toJson(EvalTaskConfigSchema,evalTaskConfigInputToProto(input.eval)));break;case"for_each":input.for_each!==void 0&&(result.taskConfig=toJson(ForTaskConfigSchema,forTaskConfigInputToProto(input.for_each)));break;case"fork":input.fork!==void 0&&(result.taskConfig=toJson(ForkTaskConfigSchema,forkTaskConfigInputToProto(input.fork)));break;case"grpc_call":input.grpc_call!==void 0&&(result.taskConfig=toJson(GrpcCallTaskConfigSchema,grpcCallTaskConfigInputToProto(input.grpc_call)));break;case"http_call":input.http_call!==void 0&&(result.taskConfig=toJson(HttpCallTaskConfigSchema,httpCallTaskConfigInputToProto(input.http_call)));break;case"human_input":input.human_input!==void 0&&(result.taskConfig=toJson(HumanInputTaskConfigSchema,humanInputTaskConfigInputToProto(input.human_input)));break;case"listen":input.listen!==void 0&&(result.taskConfig=toJson(ListenTaskConfigSchema,listenTaskConfigInputToProto(input.listen)));break;case"llm_call":input.llm_call!==void 0&&(result.taskConfig=toJson(LlmCallTaskConfigSchema,llmCallTaskConfigInputToProto(input.llm_call)));break;case"notification":input.notification!==void 0&&(result.taskConfig=toJson(NotificationTaskConfigSchema,notificationTaskConfigInputToProto(input.notification)));break;case"raise_error":input.raise_error!==void 0&&(result.taskConfig=toJson(RaiseTaskConfigSchema,raiseTaskConfigInputToProto(input.raise_error)));break;case"run_workflow":input.run_workflow!==void 0&&(result.taskConfig=toJson(RunTaskConfigSchema,runTaskConfigInputToProto(input.run_workflow)));break;case"set_vars":input.set_vars!==void 0&&(result.taskConfig=toJson(SetTaskConfigSchema,setTaskConfigInputToProto(input.set_vars)));break;case"switch_case":input.switch_case!==void 0&&(result.taskConfig=toJson(SwitchTaskConfigSchema,switchTaskConfigInputToProto(input.switch_case)));break;case"transform":input.transform!==void 0&&(result.taskConfig=toJson(TransformTaskConfigSchema,transformTaskConfigInputToProto(input.transform)));break;case"try_catch":input.try_catch!==void 0&&(result.taskConfig=toJson(TryTaskConfigSchema,tryTaskConfigInputToProto(input.try_catch)));break;case"validate":input.validate!==void 0&&(result.taskConfig=toJson(ValidateTaskConfigSchema,validateTaskConfigInputToProto(input.validate)));break;case"wait":input.wait!==void 0&&(result.taskConfig=toJson(WaitTaskConfigSchema,waitTaskConfigInputToProto(input.wait)));break;default:if(input.kind!==void 0&&input.kind!=="")throw new Error(`unknown task kind: ${input.kind}`)}return result}function envVarDeclarationInputToProto3(input){let result=create(EnvVarDeclarationSchema);return input.is_secret!==void 0&&(result.isSecret=input.is_secret),input.description!==void 0&&(result.description=input.description),input.optional!==void 0&&(result.optional=input.optional),result}function workflowBudgetInputToProto(input){let result=create(WorkflowBudgetSchema);return input.max_cost_micros!==void 0&&(result.maxCostMicros=BigInt(input.max_cost_micros)),input.max_total_tokens!==void 0&&(result.maxTotalTokens=BigInt(input.max_total_tokens)),input.max_duration_seconds!==void 0&&(result.maxDurationSeconds=input.max_duration_seconds),result.onExceeded=enumFromString(BudgetExceededPolicy,input.on_exceeded),result}async function applyWorkflow(serverAddress,token,input){let workflow=workflowInputToProto(input),desc=`workflow "${workflow.metadata?.slug??""}" in org "${workflow.metadata?.org??""}"`;return withClient(WorkflowCommandController,serverAddress,token,async(client,callOptions)=>{try{let applied=await client.apply(workflow,callOptions),result=await applyDeclaredVisibility(client,callOptions,applied,workflow.metadata?.visibility??ApiResourceVisibility.api_resource_visibility_unspecified);return toProtoJson(WorkflowSchema,result)}catch(err){throw rpcError(err,desc)}})}async function deleteWorkflow(serverAddress,token,org,slug){let desc=`workflow "${slug}" in org "${org}"`;return withTransport(serverAddress,token,async(transport,callOptions)=>{let query=createClient(WorkflowQueryController,transport),id;try{id=(await query.getByReference({org,kind:ApiResourceKind.workflow,slug},callOptions)).metadata?.id??""}catch(err){throw rpcError(err,desc)}let command=createClient(WorkflowCommandController,transport);try{let deleted=await command.delete({value:id},callOptions);return toProtoJson(WorkflowSchema,deleted)}catch(err){throw rpcError(err,desc)}})}async function listWorkflowVersions(serverAddress,token,args){return withClient(WorkflowQueryController,serverAddress,token,async(client,callOptions)=>{let req={org:args.org,slug:args.slug,pageToken:args.pageToken??""};(args.pageSize??0)>0&&(req.pageSize=args.pageSize);try{let resp=await client.listVersions(req,callOptions),data=JSON.parse(toProtoJson(ListWorkflowVersionsResponseSchema,resp));if(Array.isArray(data.versions))for(let entry of data.versions)delete entry.validated_yaml;return JSON.stringify(data,null,2)}catch(err){throw rpcError(err,`versions of workflow "${args.slug}" in org "${args.org}"`)}})}async function fetchWorkflowVersion(serverAddress,token,org,slug,versionHash){let desc=`version "${versionHash}" of workflow "${slug}" in org "${org}"`;return withTransport(serverAddress,token,async(transport,callOptions)=>{let query=createClient(WorkflowQueryController,transport);try{let workflow=await query.getByReference({org,kind:ApiResourceKind.workflow,slug},callOptions),entry=await query.getVersion({workflowId:workflow.metadata?.id??"",versionHash},callOptions);return toProtoJson(WorkflowVersionEntrySchema,entry)}catch(err){throw rpcError(err,desc)}})}async function tagWorkflowVersion(serverAddress,token,args){let desc=`tag "${args.tag}" on workflow "${args.slug}" in org "${args.org}"`;return withTransport(serverAddress,token,async(transport,callOptions)=>{let query=createClient(WorkflowQueryController,transport),id;try{id=(await query.getByReference({org:args.org,kind:ApiResourceKind.workflow,slug:args.slug},callOptions)).metadata?.id??""}catch(err){throw rpcError(err,desc)}let command=createClient(WorkflowCommandController,transport);try{let workflow=await command.tagVersion({workflowId:id,versionHash:args.versionHash,tag:args.tag},callOptions);return toProtoJson(WorkflowSchema,workflow)}catch(err){throw rpcError(err,desc)}})}function registerWorkflowTools(server,target){return server.registerTool("get_workflow",{description:"Get full details of a Stigmer workflow by its org and slug. Pass 'version' (a full SHA-256 version hash from list_workflow_versions) to fetch a historical version instead \u2014 that returns the version entry with its validated YAML rather than the live workflow. Tags are not accepted here; resolve a tag to its hash via list_workflow_versions first.",inputSchema:{org:external_exports.string().describe("Organization slug that owns the workflow."),slug:external_exports.string().describe("Workflow slug \u2014 unique identifier within the org."),version:external_exports.string().optional().describe("Full 64-character SHA-256 version hash of a historical version. Omit for the live workflow.")}},(args,extra)=>textOrError(()=>{let token=resolveToken(extra,target.apiKey);return args.version!==void 0&&args.version!==""?fetchWorkflowVersion(target.serverAddress,token,args.org,args.slug,args.version):fetchWorkflow(target.serverAddress,token,args.org,args.slug)})),server.registerTool("apply_workflow",{description:"Create or update a Stigmer workflow (idempotent). Provide identity fields (name, org) and workflow configuration (document, tasks, env, etc.).",inputSchema:WorkflowInputShape},(args,extra)=>textOrError(()=>applyWorkflow(target.serverAddress,resolveToken(extra,target.apiKey),args))),server.registerTool("delete_workflow",{description:"Delete a Stigmer workflow by its org and slug. Returns the deleted workflow.",inputSchema:{org:external_exports.string().describe("Organization slug that owns the workflow."),slug:external_exports.string().describe("Workflow slug \u2014 unique identifier within the org.")}},(args,extra)=>textOrError(()=>deleteWorkflow(target.serverAddress,resolveToken(extra,target.apiKey),args.org,args.slug))),server.registerTool("list_workflow_versions",{description:"List a workflow's version history (newest first): version hash, tag, who applied it and when, and which version is current. Every apply that changes the workflow creates a new immutable version identified by its content hash. Entries omit the version YAML \u2014 fetch one version's full content with get_workflow and its hash.",inputSchema:{org:external_exports.string().describe("Organization slug that owns the workflow."),slug:external_exports.string().describe("Workflow slug \u2014 unique identifier within the org."),page_size:external_exports.number().int().optional().describe("Maximum versions per page (default 50, max 100)."),page_token:external_exports.string().optional().describe("Pagination token from a previous response's next_page_token.")}},(args,extra)=>textOrError(()=>listWorkflowVersions(target.serverAddress,resolveToken(extra,target.apiKey),{org:args.org,slug:args.slug,pageSize:args.page_size,pageToken:args.page_token}))),server.registerTool("tag_workflow_version",{description:"Assign a tag (e.g. stable, production) to a specific workflow version. Tags are mutable pointers: re-tagging with an existing name moves it from its previous version, and a version holds at most one tag. Get version hashes from list_workflow_versions. Returns the updated workflow.",inputSchema:{org:external_exports.string().describe("Organization slug that owns the workflow."),slug:external_exports.string().describe("Workflow slug \u2014 unique identifier within the org."),version:external_exports.string().describe("Full 64-character SHA-256 hash of the version to tag."),tag:external_exports.string().describe("Tag to assign: alphanumeric with dots, hyphens, or underscores (e.g. stable, v1.0).")}},(args,extra)=>textOrError(()=>tagWorkflowVersion(target.serverAddress,resolveToken(extra,target.apiKey),{org:args.org,slug:args.slug,versionHash:args.version,tag:args.tag}))),["get_workflow","apply_workflow","delete_workflow","list_workflow_versions","tag_workflow_version"]}var import_yaml=__toESM(require_dist2(),1);var acceptedTaskKinds=new Set(Object.values(WorkflowTaskKind).filter(v=>typeof v=="string"&&v!=="workflow_task_kind_unspecified"));function registerValidateWorkflowYamlTool(server,target){return server.registerTool("validate_workflow_yaml",{description:"Validate a Stigmer workflow YAML for structural and semantic correctness. Uses the same Temporal-based validation pipeline as workflow create/update. Returns validation state (VALID/INVALID/FAILED), errors, warnings, and the generated internal YAML.",inputSchema:{yaml:external_exports.string().describe("Complete Stigmer workflow YAML content to validate (apiVersion, kind, metadata, spec).")}},(args,extra)=>textOrError(()=>validateWorkflowYaml(target.serverAddress,resolveToken(extra,target.apiKey),args.yaml))),["validate_workflow_yaml"]}async function validateWorkflowYaml(serverAddress,token,yamlContent){if(yamlContent.trim()==="")throw new Error("yaml is required");let workflow;try{workflow=parseWorkflowYaml(yamlContent)}catch(err){throw new Error(`failed to parse workflow YAML: ${errMessage(err)}`)}return withClient(WorkflowCommandController,serverAddress,token,async(client,callOptions)=>{try{let validation=await client.validateSpec(workflow,callOptions);return toProtoJson(ServerlessWorkflowValidationSchema,validation)}catch(err){throw rpcError(err,"workflow validation")}})}function parseWorkflowYaml(yamlContent){let raw;try{raw=(0,import_yaml.parse)(yamlContent)}catch(err){throw new Error(`invalid YAML syntax: ${errMessage(err)}`)}if(!isObject3(raw))throw new Error("missing or invalid 'spec' field");let spec=raw.spec;if(!isObject3(spec))throw new Error("missing or invalid 'spec' field");let tasks=spec.tasks;Array.isArray(tasks)&&tasks.forEach((task,i)=>{if(!isObject3(task))return;let kind=task.kind;if(typeof kind=="string"&&kind!==""&&!acceptedTaskKinds.has(kind))throw new Error(`unknown task kind "${kind}" at tasks[${i}]`)});try{return fromJson(WorkflowSchema,raw,{ignoreUnknownFields:!0})}catch(err){throw new Error(`failed to unmarshal into Workflow proto: ${errMessage(err)}`)}}function isObject3(value){return typeof value=="object"&&value!==null&&!Array.isArray(value)}function errMessage(err){return err instanceof Error?err.message:String(err)}var SERVER_VERSION=process.env.STIGMER_MCP_VERSION||"dev",HTTP_SHUTDOWN_GRACE_MS=5e3,PROTECTED_RESOURCE_METADATA_PATH="/.well-known/oauth-protected-resource";function createServer(target){let server=new McpServer({name:"mcp-server-stigmer",version:SERVER_VERSION});return registerTools(server,target),registerResources(server,target),server}function createChannelsServer(target){let server=new McpServer({name:"mcp-server-stigmer-channels",version:SERVER_VERSION}),tools=registerChannelTools(server,target);return log.info("tools registered (channels roster)",{count:tools.length,tools}),server}function createConversationServer(target){let server=new McpServer({name:"mcp-server-stigmer-conversation",version:SERVER_VERSION}),tools=registerConversationTools(server,target);return log.info("tools registered (conversation roster)",{count:tools.length,tools}),server}function createMemoryServer(target,startupContext=loadCaptureContextFromEnv()){let server=new McpServer({name:"mcp-server-stigmer-memory",version:SERVER_VERSION}),tools=registerMemoryTools(server,target,startupContext);return log.info("tools registered (memory roster)",{count:tools.length,tools}),server}function registerTools(server,target){let tools=[...registerSearchTools(server,target),...registerAgentTools(server,target),...registerAgentExecutionTools(server,target),...registerMcpServerTools(server,target),...registerSkillTools(server,target),...registerWorkflowTools(server,target),...registerValidateWorkflowYamlTool(server,target),...registerTaskKindTools(server,target),...registerWorkflowExecutionTools(server,target),...registerExecutionControlTools(server,target),...registerEnvironmentTools(server,target)];log.info("tools registered",{count:tools.length,tools})}function registerResources(server,target){let resources=[...registerAgentResources(server,target),...registerMcpServerResources(server,target),...registerSkillResources(server,target),...registerWorkflowResources(server,target),...registerEnvironmentResources(server,target)];log.info("resources registered",{count:resources.length,resources})}async function serveStdio(server,signal){let transport=new StdioServerTransport;return await server.connect(transport),new Promise(resolve=>{let onAbort=()=>{server.close()};signal.addEventListener("abort",onAbort,{once:!0}),server.server.onclose=()=>{signal.removeEventListener("abort",onAbort),resolve()},server.server.onerror=err=>log.error("mcp protocol error",{error:err.message})})}var FULL_ROUTE="/",CHANNELS_ROUTE="/channels",CONVERSATION_ROUTE="/conversation",MEMORY_ROUTE="/memory";function routedServerFactory(target){return path=>{if(path===FULL_ROUTE)return createServer(target);if(path===CHANNELS_ROUTE)return createChannelsServer(target);if(path===CONVERSATION_ROUTE)return createConversationServer(target);if(path===MEMORY_ROUTE)return createMemoryServer(target)}}async function serveHttp(makeServer,cfg,signal){let sessions=new Map,checkReady=createReadinessCheck(cfg.stigmerServerAddress),httpServer=createHttpServer((req,res)=>{logAccess(req,res),routeRequest(req,res,sessions,makeServer,cfg,checkReady)}),addr=`:${cfg.httpPort}`;return new Promise((resolve,reject)=>{httpServer.on("error",reject),httpServer.listen(Number(cfg.httpPort),()=>{log.info("HTTP transport listening",{addr,auth_enabled:cfg.httpAuthEnabled})}),signal.addEventListener("abort",()=>{log.info("HTTP server shutting down",{grace_period_ms:HTTP_SHUTDOWN_GRACE_MS});let force=setTimeout(()=>httpServer.closeAllConnections?.(),HTTP_SHUTDOWN_GRACE_MS);httpServer.close(err=>{clearTimeout(force);for(let transport of sessions.values())transport.close();sessions.clear(),err?reject(err):resolve()})},{once:!0})})}async function serveBoth(target,cfg,signal){let linked=new AbortController,onParentAbort=()=>linked.abort();signal.addEventListener("abort",onParentAbort,{once:!0});let tasks=[serveStdio(stdioServer(target,cfg),linked.signal),serveHttp(routedServerFactory(target),cfg,linked.signal)];try{await Promise.race(tasks)}finally{linked.abort(),await Promise.allSettled(tasks),signal.removeEventListener("abort",onParentAbort)}}async function routeRequest(req,res,sessions,makeServer,cfg,checkReady){if(req.method==="GET"&&req.url==="/health"){res.writeHead(200,{"Content-Type":"application/json"}),res.end(`{"status":"ok"}
204
+ Workflow execution: wex_<26-char-ulid>`)}async function cancelExecution(serverAddress,token,executionId,reason){return resolveExecutionType(executionId)==="agent"?cancelAgentExecution(serverAddress,token,executionId,reason):cancelWorkflowExecution(serverAddress,token,executionId,reason)}async function cancelAgentExecution(serverAddress,token,id,reason){let desc=`agent execution "${id}"`;return withTransport(serverAddress,token,async(transport,callOptions)=>{try{let current=await createClient(AgentExecutionQueryController,transport).get({value:id},callOptions),phase=current.status?.phase??ExecutionPhase.EXECUTION_PHASE_UNSPECIFIED;if(TERMINAL_AGENT_PHASES.has(phase))return wrapAgent(current,!0);let cancelled=await createClient(AgentExecutionCommandController,transport).cancel({id,reason},callOptions);return wrapAgent(cancelled,!1)}catch(err){throw rpcError(err,desc)}})}async function cancelWorkflowExecution(serverAddress,token,id,reason){let desc=`workflow execution "${id}"`;return withTransport(serverAddress,token,async(transport,callOptions)=>{try{let current=await createClient(WorkflowExecutionQueryController,transport).get({value:id},callOptions),phase=current.status?.phase??ExecutionPhase2.EXECUTION_PHASE_UNSPECIFIED;if(TERMINAL_WORKFLOW_PHASES.has(phase))return wrapWorkflow(current,!0);let cancelled=await createClient(WorkflowExecutionCommandController,transport).cancel({id,reason},callOptions);return wrapWorkflow(cancelled,!1)}catch(err){throw rpcError(err,desc)}})}function wrapAgent(execution,alreadyTerminal){let{totalMessages,data}=compactExecution(execution,DEFAULT_MESSAGE_LIMIT);return JSON.stringify({already_terminal:alreadyTerminal,view:"compact",total_messages:totalMessages,execution:data},null,2)}function wrapWorkflow(execution,alreadyTerminal){return JSON.stringify({already_terminal:alreadyTerminal,execution:JSON.parse(toProtoJson(WorkflowExecutionSchema,execution))},null,2)}function registerExecutionControlTools(server,target){return server.registerTool("cancel_execution",{description:"Gracefully cancel a running agent (aex_*) or workflow (wex_*) execution \u2014 the kind is inferred from the ID prefix. Cancellation is terminal: the run stops after cleanup and cannot be resumed. Executions already in a terminal phase are returned with already_terminal=true instead of an error.",inputSchema:{execution_id:external_exports.string().describe("Execution ID to cancel (aex_* or wex_* format)."),reason:external_exports.string().optional().describe("Human-readable reason for the cancellation, stored in the audit trail.")}},(args,extra)=>textOrError(()=>cancelExecution(target.serverAddress,resolveToken(extra,target.apiKey),args.execution_id,args.reason??""))),["cancel_execution"]}async function fetchMcpServer(serverAddress,token,org,slug){return withClient(McpServerQueryController,serverAddress,token,async(client,callOptions)=>{try{let mcpServer=await client.getByReference({org,kind:ApiResourceKind.mcp_server,slug},callOptions);return toProtoJson(McpServerSchema,mcpServer)}catch(err){throw rpcError(err,`MCP server "${slug}" in org "${org}"`)}})}function registerMcpServerResources(server,target){return registerResource(server,target,{name:"stigmer_mcp_server",title:"Stigmer MCP Server",description:"Full definition of a Stigmer MCP server, identified by organization and slug.",template:"stigmer://mcp-servers/{org}/{slug}",fetch:fetchMcpServer}),["stigmer_mcp_server"]}var McpServerInputShape={name:external_exports.string().describe("Human-readable name of the resource."),slug:external_exports.string().optional().describe("URL-friendly identifier (lowercase alphanumeric with hyphens). Auto-generated from name if omitted."),org:external_exports.string().describe("Organization that owns this resource (e.g. acme)."),visibility:external_exports.string().optional().describe("Resource visibility, by enum name. Applied at create; on updates a changed value is landed through the guarded UpdateVisibility RPC. Omit to leave unchanged. Allowed values: visibility_private, visibility_org, visibility_platform."),labels:external_exports.record(external_exports.string()).optional().describe("Key-value labels for organization and filtering."),tags:external_exports.array(external_exports.string()).optional().describe("Tags for categorization and discovery."),description:external_exports.string().optional().describe("Human-readable description for marketplace display and documentation. Should explain what this MCP server does and its primary use cases. Example: 'GitHub MCP server for repository operations, code search, and PR management'"),icon_url:external_exports.string().optional().describe("Icon URL for UI display in marketplace and agent configuration screens. Should be a publicly accessible URL to an image (SVG, PNG, or JPEG). Example: 'https://github.githubassets.com/favicons/favicon.svg'"),stdio:external_exports.lazy(()=>StdioServerConfigInputSchema).optional().describe("stdio-based server (subprocess with stdin/stdout communication). Most common type - used for Node.js, Python, and other CLI-based MCP servers."),http:external_exports.lazy(()=>HttpServerConfigInputSchema).optional().describe("HTTP-based server (HTTP + Server-Sent Events communication). Used for remote/managed MCP services accessible over the network."),default_enabled_tools:external_exports.array(external_exports.string()).optional().describe("Default tools to enable from this MCP server. Empty list means all tools are enabled by default. Applies whenever an agent's McpServerUsage.enabled_tools is empty."),env:external_exports.record(external_exports.lazy(()=>EnvVarDeclarationInputSchema2)).optional().describe("Environment variable declarations for this MCP server. Keys are variable names; values describe their metadata and optionality."),pinned_tool_approvals:external_exports.array(external_exports.lazy(()=>ToolApprovalPolicyInputSchema)).optional().describe("Tools pinned by the MCP server owner to always require approval."),repository_url:external_exports.string().optional().describe("URL of the upstream source repository for this MCP server. Shown in the marketplace so users can inspect the implementation for trust and transparency. Example: 'https://github.com/modelcontextprotocol/servers'"),github_stars:external_exports.number().optional().describe("GitHub star count at the time of curation. Used as a popularity signal in marketplace display. 0 if unknown or non-GitHub repository."),auth:external_exports.lazy(()=>McpServerAuthInputSchema).optional().describe("OAuth authentication configuration for automated credential acquisition. When set, the MCP server's Connect page offers an OAuth flow instead of (or in addition to) manual credential entry. The acquired access token is stored in a system-managed environment (identified by grant.environment_id) as the env var named by auth.target_env_var. That env var must also be declared in env so the execution pipeline knows about it.")},McpServerInputSchema=external_exports.object(McpServerInputShape),StdioServerConfigInputSchema=external_exports.object({command:external_exports.string().describe("Command to execute the MCP server. This is the executable name or path. Examples: 'npx', 'python', 'node', './custom-mcp-server'"),args:external_exports.array(external_exports.string()).optional().describe("Arguments to pass to the command. Argument values can reference environment variables using ${VAR_NAME} syntax. These placeholders are resolved at runtime from the execution environment (same source as HTTP header/query param placeholders). This enables MCP servers that take core configuration as positional CLI arguments (e.g. database connection URLs, directory paths) to be parameterized per-user through env declarations. Resolution uses strict mode: missing variables produce a clear error rather than passing a literal '${VAR}' to the subprocess. Note: resolved values appear in the subprocess argv, which is visible via /proc/<pid>/cmdline within the container. In the containerized agent-runner environment this is not a practical concern, but callers should be aware when debugging. Examples: ['-y', '@modelcontextprotocol/server-github'] ['-y', '@modelcontextprotocol/server-postgres', '${POSTGRES_CONNECTION_URL}'] ['-m', 'mcp_server_sqlite', '--db-path', '${DB_PATH}/data.sqlite']"),working_dir:external_exports.string().optional().describe("Working directory for the process. If not specified, the process inherits the agent runner's working directory. Use absolute paths or paths relative to the agent runner's context.")}),HttpServerConfigInputSchema=external_exports.object({url:external_exports.string().describe("Base URL of the MCP server endpoint. Must be a valid HTTP or HTTPS URL. Examples: - 'http://localhost:3000/mcp' - 'https://mcp.example.com/v1' - 'https://api.company.com/mcp/github'"),headers:external_exports.record(external_exports.string()).optional().describe("HTTP headers to include with every request. Use for authentication, API versioning, or custom routing. Header values can reference environment variables using ${VAR_NAME} syntax. These placeholders are resolved at runtime from AgentInstance's environment. Examples: 'Authorization': 'Bearer ${API_TOKEN}' 'X-API-Version': '2024-01' 'X-Tenant-ID': '${TENANT_ID}'"),query_params:external_exports.record(external_exports.string()).optional().describe("Query parameters to append to the URL. Values can reference environment variables using ${VAR_NAME} syntax. Examples: 'region': '${AWS_REGION}' 'version': 'v1'"),timeout_seconds:external_exports.number().optional().describe("Timeout for HTTP requests in seconds. Applies to both the initial connection and response streaming. Default: 30 seconds if not specified. Set higher values for MCP servers that perform long-running operations.")}),EnvVarDeclarationInputSchema2=external_exports.object({is_secret:external_exports.boolean().optional().describe("Whether the resolved value should be treated as a secret."),description:external_exports.string().optional().describe("Human-readable description shown in the UI credential form. Should explain what the variable is used for and where to obtain it."),optional:external_exports.boolean().optional().describe("Whether this variable is optional.")}),ToolApprovalPolicyInputSchema=external_exports.object({tool_name:external_exports.string().optional().describe("Name of the tool (must match tools/list from MCP server exactly). Case-sensitive matching against tool names reported by the MCP server. Example: 'delete_repository', 'send_email', 'execute_sql'"),message:external_exports.string().optional().describe("Human-readable message shown to user when approval is requested. Supports {{args.field}} placeholders for dynamic content. If empty, a default message is generated: 'Execute tool: {tool_name}' Guidelines for effective messages: - Be specific about what will happen - Include the most important argument values using placeholders - Keep under 100 characters for UI display - Use action verbs: 'Delete', 'Send', 'Execute', 'Create'"),from_destructive_hint:external_exports.boolean().optional().describe("True when the connect-time fail-closed tightener force-gated this tool because the server's own MCP annotation declared destructiveHint=true, rather than the classifier (or a human) gating it. Lets the runner attribute a tightened tool to its true provenance (ApprovalPolicySource.APPROVAL_POLICY_SOURCE_ANNOTATION_DESTRUCTIVE_TIGHTEN) instead of collapsing it into the classifier default. Carries no enforcement weight \u2014 gating is decided by presence in this list \u2014 so an absent/false value simply means 'not attributed to the destructiveHint tightener'. Set only on entries written to McpServerStatus.tool_approvals (the classifier layer). It is meaningless on McpServerSpec.pinned_tool_approvals (a human pin is, by definition, a pinned override) and left false there.")}),OauthAppRefInputSchema=external_exports.object({org:external_exports.string().optional().describe("Organization that owns the referenced resource. When non-empty: must be a valid org slug (lowercase alphanumeric with hyphens, starts with a letter, 1-63 characters). Example: 'stigmer', 'acme-corp'. When empty: the reference is relative \u2014 the server resolves it to the parent resource's organization at write time. All stored and returned references always have org populated (absolute form). Use empty org for same-org references (the common case). An explicit other org is accepted only when that organization is a platform that shares the resource with yours (visibility_platform)."),slug:external_exports.string().describe("Resource slug (user-friendly identifier, unique within org). Format: lowercase alphanumeric with hyphens, must start with a letter and end with a letter or digit (e.g., 'web-search', 'code-reviewer'). Length: 2-63 characters.")}),McpServerAuthInputSchema=external_exports.object({oauth_app_ref:external_exports.lazy(()=>OauthAppRefInputSchema).optional().describe("Reference to an OAuthApp for vendor-specific OAuth. When empty: the server supports the MCP Authorization spec (DCR + PKCE). Stigmer discovers the authorization server metadata, registers a client via DCR, and performs the authorization code flow with PKCE \u2014 all automatically at connect time. When set: Stigmer uses the referenced OAuthApp's client credentials to perform the OAuth authorization code flow with the vendor on behalf of the user. The OAuthApp must belong to the same organization as the McpServer: an OAuth app holds vendor credentials and is never platform-visible, so no cross-organization reference to one is accepted."),target_env_var:external_exports.string().optional().describe("The env var where the acquired access token is stored. Must correspond to an entry in env so the execution pipeline resolves it. The refresh token is stored as {target_env_var}_REFRESH_TOKEN by convention. Both are written to the grant's managed environment."),token_lifetime_hint:external_exports.string().optional().describe("Informational hint about expected token lifetime for UI display. Helps users understand when re-authentication may be needed. Empty means unknown. Examples: '1h', '2h', '90d', 'never'."),scope_hints:external_exports.array(external_exports.string()).optional().describe("Optional scope hints for UI display before the OAuth flow starts. For DCR servers: shown to the user since actual scopes are discovered at connect time during authorization server metadata retrieval. For vendor OAuth: informational (scopes are defined on the OAuthApp)."),discovery_url:external_exports.string().optional().describe("Optional URL for OAuth authorization server discovery on stdio servers. HTTP servers do not need this: the platform derives the discovery endpoint from http.url (fetching /.well-known/oauth-authorization-server relative to the server URL). Stdio servers have no URL, so DCR discovery has nothing to derive from. Set this field to the base URL of the vendor's OAuth authorization server to enable DCR for a stdio-based MCP server. Resolution priority: 1. discovery_url (if set \u2014 used for both stdio and HTTP) 2. http.url (default for HTTP servers) Ignored when oauth_app_ref is set (vendor OAuth uses OAuthApp endpoints directly, no discovery needed)."),oauth_only:external_exports.boolean().optional().describe("Whether the server's endpoint rejects manually-entered static tokens. Some hosted MCP endpoints (e.g. Notion, Monday) only accept an access token obtained through their OAuth flow \u2014 a personal API token or PAT pasted into the credential form is rejected with a 401. For these servers OAuth is not merely the preferred path, it is the only path that works. When true, the connect surfaces present OAuth as the sole credential option and suppress the 'enter token manually' affordance, so users are never sent down a path that cannot succeed. When false (the default), a static token remains a valid alternative \u2014 appropriate for API-key servers (e.g. Tavily) and for vendor endpoints that also accept a PAT (e.g. GitHub). This is a structural fact about the endpoint, not observable from the spec shape alone (an OAuth-only server and a PAT-capable server can have identical auth blocks), so it must be declared explicitly.")});function mcpServerInputToProto(input){let slug=input.slug&&input.slug.length>0?input.slug:generateSlug(input.name),spec=create(McpServerSpecSchema);if(input.description!==void 0&&(spec.description=input.description),input.icon_url!==void 0&&(spec.iconUrl=input.icon_url),input.stdio!==void 0&&(spec.serverType={case:"stdio",value:stdioServerConfigInputToProto(input.stdio)}),input.http!==void 0&&(spec.serverType={case:"http",value:httpServerConfigInputToProto(input.http)}),input.default_enabled_tools!==void 0&&(spec.defaultEnabledTools=input.default_enabled_tools),input.env!==void 0)for(let[k,v]of Object.entries(input.env))spec.env[k]=envVarDeclarationInputToProto2(v);return input.pinned_tool_approvals!==void 0&&(spec.pinnedToolApprovals=input.pinned_tool_approvals.map(toolApprovalPolicyInputToProto)),input.repository_url!==void 0&&(spec.repositoryUrl=input.repository_url),input.github_stars!==void 0&&(spec.githubStars=input.github_stars),input.auth!==void 0&&(spec.auth=mcpServerAuthInputToProto(input.auth)),Object.assign(create(McpServerSchema),{apiVersion:"agentic.stigmer.ai/v1",kind:"McpServer",metadata:Object.assign(create(ApiResourceMetadataSchema),{name:input.name,slug,org:input.org,...input.visibility!==void 0&&{visibility:enumFromString(ApiResourceVisibility,input.visibility)},...input.labels!==void 0&&{labels:input.labels},...input.tags!==void 0&&{tags:input.tags}}),spec})}function stdioServerConfigInputToProto(input){let result=create(StdioServerConfigSchema);return input.command!==void 0&&(result.command=input.command),input.args!==void 0&&(result.args=input.args),input.working_dir!==void 0&&(result.workingDir=input.working_dir),result}function httpServerConfigInputToProto(input){let result=create(HttpServerConfigSchema);return input.url!==void 0&&(result.url=input.url),input.headers!==void 0&&(result.headers=input.headers),input.query_params!==void 0&&(result.queryParams=input.query_params),input.timeout_seconds!==void 0&&(result.timeoutSeconds=input.timeout_seconds),result}function envVarDeclarationInputToProto2(input){let result=create(EnvVarDeclarationSchema);return input.is_secret!==void 0&&(result.isSecret=input.is_secret),input.description!==void 0&&(result.description=input.description),input.optional!==void 0&&(result.optional=input.optional),result}function toolApprovalPolicyInputToProto(input){let result=create(ToolApprovalPolicySchema);return input.tool_name!==void 0&&(result.toolName=input.tool_name),input.message!==void 0&&(result.message=input.message),input.from_destructive_hint!==void 0&&(result.fromDestructiveHint=input.from_destructive_hint),result}function oauthAppRefInputToProto(input){return create(ApiResourceReferenceSchema,{org:input.org,slug:input.slug,kind:ApiResourceKind.oauth_app})}function mcpServerAuthInputToProto(input){let result=create(McpServerAuthSchema);return input.oauth_app_ref!==void 0&&(result.oauthAppRef=oauthAppRefInputToProto(input.oauth_app_ref)),input.target_env_var!==void 0&&(result.targetEnvVar=input.target_env_var),input.token_lifetime_hint!==void 0&&(result.tokenLifetimeHint=input.token_lifetime_hint),input.scope_hints!==void 0&&(result.scopeHints=input.scope_hints),input.discovery_url!==void 0&&(result.discoveryUrl=input.discovery_url),input.oauth_only!==void 0&&(result.oauthOnly=input.oauth_only),result}async function applyMcpServer(serverAddress,token,input){let server=mcpServerInputToProto(input),desc=`mcp server "${server.metadata?.slug??""}" in org "${server.metadata?.org??""}"`;return withClient(McpServerCommandController,serverAddress,token,async(client,callOptions)=>{try{let applied=await client.apply(server,callOptions),result=await applyDeclaredVisibility(client,callOptions,applied,server.metadata?.visibility??ApiResourceVisibility.api_resource_visibility_unspecified);return toProtoJson(McpServerSchema,result)}catch(err){throw rpcError(err,desc)}})}async function deleteMcpServer(serverAddress,token,org,slug){let desc=`MCP server "${slug}" in org "${org}"`;return withTransport(serverAddress,token,async(transport,callOptions)=>{let query=createClient(McpServerQueryController,transport),id;try{id=(await query.getByReference({org,kind:ApiResourceKind.mcp_server,slug},callOptions)).metadata?.id??""}catch(err){throw rpcError(err,desc)}let command=createClient(McpServerCommandController,transport);try{let deleted=await command.delete({resourceId:id},callOptions);return toProtoJson(McpServerSchema,deleted)}catch(err){throw rpcError(err,desc)}})}function registerMcpServerTools(server,target){return server.registerTool("get_mcp_server",{description:"Get full details of a Stigmer MCP server by its org and slug (e.g. org=acme slug=my-server).",inputSchema:{org:external_exports.string().describe("Organization slug that owns the MCP server (e.g. acme)."),slug:external_exports.string().describe("MCP server slug \u2014 the unique identifier within the org (e.g. my-server).")}},(args,extra)=>textOrError(()=>fetchMcpServer(target.serverAddress,resolveToken(extra,target.apiKey),args.org,args.slug))),server.registerTool("apply_mcp_server",{description:"Create or update a Stigmer MCP server definition (idempotent). Provide identity fields (name, org) and server configuration (stdio/http, tools, env, etc.).",inputSchema:McpServerInputShape},(args,extra)=>textOrError(()=>applyMcpServer(target.serverAddress,resolveToken(extra,target.apiKey),args))),server.registerTool("delete_mcp_server",{description:"Delete a Stigmer MCP server definition by its org and slug. Returns the deleted MCP server.",inputSchema:{org:external_exports.string().describe("Organization slug that owns the MCP server (e.g. acme)."),slug:external_exports.string().describe("MCP server slug \u2014 the unique identifier within the org (e.g. github).")}},(args,extra)=>textOrError(()=>deleteMcpServer(target.serverAddress,resolveToken(extra,target.apiKey),args.org,args.slug))),["get_mcp_server","apply_mcp_server","delete_mcp_server"]}var MEMORY_ORG_HEADER="x-stigmer-memory-org",MEMORY_AGENT_ID_HEADER="x-stigmer-memory-agent-id",MEMORY_SESSION_ID_HEADER="x-stigmer-memory-session-id",MEMORY_EXECUTION_ID_HEADER="x-stigmer-memory-execution-id",MEMORY_ORG_ENV="STIGMER_MEMORY_ORG",MEMORY_AGENT_ID_ENV="STIGMER_MEMORY_AGENT_ID",MEMORY_SESSION_ID_ENV="STIGMER_MEMORY_SESSION_ID",MEMORY_EXECUTION_ID_ENV="STIGMER_MEMORY_EXECUTION_ID";function loadCaptureContextFromEnv(env=process.env){return{org:env[MEMORY_ORG_ENV]??"",agentId:env[MEMORY_AGENT_ID_ENV]??"",sessionId:env[MEMORY_SESSION_ID_ENV]??"",agentExecutionId:env[MEMORY_EXECUTION_ID_ENV]??""}}function resolveCaptureContext(extra,startup){let headers=extra?.requestInfo?.headers;return headers===void 0?startup:{org:headerValue(headers,MEMORY_ORG_HEADER),agentId:headerValue(headers,MEMORY_AGENT_ID_HEADER),sessionId:headerValue(headers,MEMORY_SESSION_ID_HEADER),agentExecutionId:headerValue(headers,MEMORY_EXECUTION_ID_HEADER)}}function headerValue(headers,name){let direct=headers[name];if(direct!==void 0)return Array.isArray(direct)?direct[0]??"":direct;let lower=name.toLowerCase();for(let[key,value]of Object.entries(headers))if(key.toLowerCase()===lower&&value!==void 0)return Array.isArray(value)?value[0]??"":value;return""}var PROPOSED_OUTCOME="Proposed \u2014 the user decides. Nothing is remembered unless they confirm this fact.";async function proposeMemory(serverAddress,token,fact,context){let request3=create(MemorySchema,{apiVersion:"agentic.stigmer.ai/v1",kind:"Memory",metadata:create(ApiResourceMetadataSchema,{org:context.org}),spec:create(MemorySpecSchema,{content:fact,provenance:create(MemoryProvenanceSchema,{agentId:context.agentId,sessionId:context.sessionId,agentExecutionId:context.agentExecutionId})})});return withClient(MemoryCommandController,serverAddress,token,async(client,opts)=>{let created=await client.create(request3,opts),answer={outcome:PROPOSED_OUTCOME,memory:toJson(MemorySchema,created,{useProtoFieldName:!0})};return JSON.stringify(answer,null,2)})}var DOMAIN_CODES3=new Set([Code.PermissionDenied,Code.InvalidArgument,Code.FailedPrecondition]);async function memoryResult(toolContext,produce){try{return textResult(await produce())}catch(err){let ce=ConnectError.from(err);return DOMAIN_CODES3.has(ce.code)?{content:[{type:"text",text:JSON.stringify(domainError3(ce))}],isError:!0}:errorResult(rpcError(ce,toolContext))}}function domainError3(ce){let payload={error:ce.rawMessage,code:grpcStatusName3(ce.code)},info=ce.findDetails(ErrorInfoSchema)[0];return info&&info.reason!==""&&(payload.reason=info.reason),payload}function grpcStatusName3(code){return Code[code].replace(/([a-z0-9])([A-Z])/g,"$1_$2").toUpperCase()}function registerMemoryTools(server,target,startupContext){return server.registerTool("remember",{description:'Propose one durable fact about the person you are assisting, to be recalled in their future sessions \u2014 a stable preference, situation, or way of working (e.g. "Prefers concise answers with code examples"). Not task state, not secrets or credentials, not one-off details. The fact is only PROPOSED: the user reviews the exact text and decides \u2014 tell them you have suggested it, never that you have remembered it. Keep each fact self-contained and under 500 characters; call once per fact.',inputSchema:{fact:external_exports.string().describe('The fact to remember, stated in the third person and self-contained (e.g. "Works primarily in Go and prefers table-driven tests"). 1\u2013500 characters; stored and shown to the user verbatim.')}},(args,extra)=>memoryResult("memory proposal",()=>proposeMemory(target.serverAddress,resolveToken(extra,target.apiKey),args.fact,resolveCaptureContext(extra,startupContext)))),["remember"]}var knownKinds={agent:ApiResourceKind.agent,environment:ApiResourceKind.environment,skill:ApiResourceKind.skill,mcp_server:ApiResourceKind.mcp_server,workflow:ApiResourceKind.workflow};function registerSearchTools(server,target){return server.registerTool("search",{description:"Search and list Stigmer resources (agents, skills, MCP servers, workflows, environments). Set 'kinds' to filter by resource type. Set 'query' for full-text search. Set 'org' to scope to an organization. Omit 'query' to list all accessible resources.",inputSchema:{kinds:external_exports.array(external_exports.string()).optional().describe("Resource kinds to search. Valid: agent, skill, mcp_server, workflow, environment. Empty searches all."),query:external_exports.string().optional().describe("Full-text search query. Empty lists all accessible resources."),org:external_exports.string().optional().describe("Organization slug to scope the search. Empty searches all accessible orgs."),page_size:external_exports.number().int().optional().describe("Results per page (default 20, max 100)."),page_num:external_exports.number().int().optional().describe("Page number (1-indexed, default 1).")}},(args,extra)=>textOrError(()=>search(target.serverAddress,resolveToken(extra,target.apiKey),{kinds:args.kinds,query:args.query,org:args.org,pageSize:args.page_size,pageNum:args.page_num}))),["search"]}async function search(serverAddress,token,args){let kinds=parseKinds(args.kinds);return withClient(SearchService,serverAddress,token,async(client,callOptions)=>{let req={kinds,query:args.query??"",org:args.org??""};((args.pageSize??0)>0||(args.pageNum??0)>0)&&(req.page={size:args.pageSize??0,num:args.pageNum??0});let resp;try{resp=await client.search(req,callOptions)}catch(err){throw rpcError(err,args.org?`search results in org "${args.org}"`:"search results")}return enrichSearchResponse(resp)})}function parseKinds(raw){return!raw||raw.length===0?[]:raw.map(s=>{let kind=knownKinds[s];if(kind===void 0)throw new Error(`unknown resource kind "${s}"; valid kinds: agent, skill, mcp_server, workflow, environment`);return kind})}function enrichSearchResponse(resp){if(resp.entries.length===0)return toProtoJson(SearchResponseSchema,resp);let data=toJson(SearchResponseSchema,resp,{useProtoFieldName:!0}),entries=Array.isArray(data.entries)?data.entries:[];for(let i=0;i<entries.length&&i<resp.entries.length;i++){let r=resp.entries[i],uri=buildResourceURI(ApiResourceKind[r.kind]??"",r.org,r.slug);uri!==""&&(entries[i].resource_uri=uri)}return JSON.stringify(data,null,2)}async function fetchSkill(serverAddress,token,org,slug,version2){return withClient(SkillQueryController,serverAddress,token,async(client,callOptions)=>{try{let skill=await client.getByReference({org,kind:ApiResourceKind.skill,slug,version:version2},callOptions);return toProtoJson(SkillSchema,skill)}catch(err){throw rpcError(err,`skill "${slug}" in org "${org}"`)}})}function registerSkillResources(server,target){return registerResource(server,target,{name:"stigmer_skill",title:"Stigmer Skill",description:"Full definition of a Stigmer skill (latest version), identified by organization and slug.",template:"stigmer://skills/{org}/{slug}",fetch:(serverAddress,token,org,slug)=>fetchSkill(serverAddress,token,org,slug,"")}),registerVersionedResource(server,target,{name:"stigmer_skill_version",title:"Stigmer Skill (versioned)",description:"Full definition of a Stigmer skill at a specific version, identified by organization, slug, and version (tag name or SHA-256 hash).",template:"stigmer://skills/{org}/{slug}/{version}",fetch:fetchSkill}),["stigmer_skill","stigmer_skill_version"]}async function deleteSkill(serverAddress,token,org,slug){let desc=`skill "${slug}" in org "${org}"`;return withTransport(serverAddress,token,async(transport,callOptions)=>{let query=createClient(SkillQueryController,transport),id;try{id=(await query.getByReference({org,kind:ApiResourceKind.skill,slug},callOptions)).metadata?.id??""}catch(err){throw rpcError(err,desc)}let command=createClient(SkillCommandController,transport);try{let deleted=await command.delete({value:id},callOptions);return toProtoJson(SkillSchema,deleted)}catch(err){throw rpcError(err,desc)}})}async function listSkillVersions(serverAddress,token,args){return withClient(SkillQueryController,serverAddress,token,async(client,callOptions)=>{let req={org:args.org,slug:args.slug,pageToken:args.pageToken??""};(args.pageSize??0)>0&&(req.pageSize=args.pageSize);try{let resp=await client.listVersions(req,callOptions);return toProtoJson(ListSkillVersionsResponseSchema,resp)}catch(err){throw rpcError(err,`versions of skill "${args.slug}" in org "${args.org}"`)}})}function registerSkillTools(server,target){return server.registerTool("get_skill",{description:"Get full details of a Stigmer skill by org and slug, optionally at a specific version. Omit 'version' for the latest.",inputSchema:{org:external_exports.string().describe("Organization slug that owns the skill."),slug:external_exports.string().describe("Skill slug \u2014 unique identifier within the org."),version:external_exports.string().optional().describe("Version to retrieve: tag name (e.g. stable) or SHA-256 hash. Omit for latest.")}},(args,extra)=>textOrError(()=>fetchSkill(target.serverAddress,resolveToken(extra,target.apiKey),args.org,args.slug,args.version??""))),server.registerTool("delete_skill",{description:"Delete a Stigmer skill and all its versions by org and slug. To create or update skills, use the 'stigmer skill push' CLI command. Returns the deleted skill.",inputSchema:{org:external_exports.string().describe("Organization slug that owns the skill (e.g. stigmer)."),slug:external_exports.string().describe("Skill slug \u2014 the unique identifier within the org (e.g. code-review-best-practices). Deletes the skill and all its versions.")}},(args,extra)=>textOrError(()=>deleteSkill(target.serverAddress,resolveToken(extra,target.apiKey),args.org,args.slug))),server.registerTool("list_skill_versions",{description:"List a skill's version history (newest first): version hash, tag, who pushed it and when, and which version is current. Fetch one version's full content with get_skill and its hash or tag.",inputSchema:{org:external_exports.string().describe("Organization slug that owns the skill."),slug:external_exports.string().describe("Skill slug \u2014 unique identifier within the org."),page_size:external_exports.number().int().optional().describe("Maximum versions per page (default 50)."),page_token:external_exports.string().optional().describe("Pagination token from a previous response's next_page_token.")}},(args,extra)=>textOrError(()=>listSkillVersions(target.serverAddress,resolveToken(extra,target.apiKey),{org:args.org,slug:args.slug,pageSize:args.page_size,pageToken:args.page_token}))),["get_skill","delete_skill","list_skill_versions"]}async function listPendingApprovals(serverAddress,token,args){return withClient(WorkflowExecutionQueryController,serverAddress,token,async(client,callOptions)=>{let req={org:args.org,pageToken:args.pageToken??""};(args.pageSize??0)>0&&(req.pageSize=args.pageSize);try{let resp=await client.listPendingApprovals(req,callOptions);return toProtoJson(PendingApprovalsListSchema,resp)}catch(err){throw rpcError(err,`pending approvals in org "${args.org}"`)}})}async function submitWorkflowTaskApproval(serverAddress,token,args){return withClient(WorkflowExecutionCommandController,serverAddress,token,async(client,callOptions)=>{let req={executionId:args.executionId,taskName:args.taskName,outcome:args.outcome,comment:args.comment??""};args.formData!==void 0&&(req.formData=args.formData);try{let execution=await client.submitWorkflowTaskApproval(req,callOptions);return toProtoJson(WorkflowExecutionSchema,execution)}catch(err){throw rpcError(err,`approval for task "${args.taskName}" in workflow execution "${args.executionId}"`)}})}var API_VERSION2="agentic.stigmer.ai/v1";async function runWorkflow(serverAddress,token,args){let desc=`workflow "${args.workflow}" in org "${args.org}"`;return withTransport(serverAddress,token,async(transport,callOptions)=>{let query=createClient(WorkflowQueryController,transport),workflowId;try{workflowId=(await query.getByReference({org:args.org,kind:ApiResourceKind.workflow,slug:args.workflow},callOptions)).metadata?.id??""}catch(err){throw rpcError(err,desc)}let runtimeEnv=toExecutionValues(args.runtimeEnv);runtimeEnv.STIGMER_ORG_ID===void 0&&(runtimeEnv.STIGMER_ORG_ID=create(ExecutionValueSchema,{value:args.org,isSecret:!1}));let execution=create(WorkflowExecutionSchema,{apiVersion:API_VERSION2,kind:"WorkflowExecution",metadata:create(ApiResourceMetadataSchema,{name:executionName(),org:args.org}),spec:create(WorkflowExecutionSpecSchema,{workflowId,triggerMessage:(args.message??"")===""?"execute":args.message,runtimeEnv})}),command=createClient(WorkflowExecutionCommandController,transport);try{let created=await command.create(execution,callOptions);return toProtoJson(WorkflowExecutionSchema,created)}catch(err){throw rpcError(err,`execution of ${desc}`)}})}function registerWorkflowExecutionTools(server,target){return server.registerTool("run_workflow",{description:"Start a workflow execution (asynchronous). Returns immediately with the created execution (wex_* ID) while the run continues in the background \u2014 poll get_workflow_execution and get_workflow_execution_events to observe progress and diagnose failures.",inputSchema:{org:external_exports.string().describe("Organization slug that owns the workflow (e.g. stigmer)."),workflow:external_exports.string().describe("Workflow slug \u2014 the unique identifier within the org (e.g. release-notes)."),message:external_exports.string().optional().describe("Trigger message passed to the workflow. Omit to run with the default trigger."),runtime_env:external_exports.record(external_exports.string()).optional().describe("Non-secret runtime environment values (name \u2192 value) injected into the run. Secrets must come from Environments referenced by the workflow, never through this tool.")}},(args,extra)=>textOrError(()=>runWorkflow(target.serverAddress,resolveToken(extra,target.apiKey),{org:args.org,workflow:args.workflow,message:args.message,runtimeEnv:args.runtime_env}))),server.registerTool("get_workflow_execution",{description:"Get a workflow execution's full status including phase, tasks, errors, cost, and timing. Use for diagnosing failed or running executions.",inputSchema:{execution_id:external_exports.string().describe("Workflow execution ID (wex_* format).")}},(args,extra)=>textOrError(()=>getWorkflowExecution(target.serverAddress,resolveToken(extra,target.apiKey),args.execution_id))),server.registerTool("get_workflow_execution_events",{description:"Get the event log for a workflow execution. Returns task transitions, errors, cost checkpoints, and approval events. Use for deep diagnosis of execution failures.",inputSchema:{execution_id:external_exports.string().describe("Workflow execution ID (wex_* format)."),task_name:external_exports.string().optional().describe("Filter events by task name."),page_size:external_exports.number().int().optional().describe("Number of events per page (default 100, max 500).")}},(args,extra)=>textOrError(()=>getWorkflowExecutionEvents(target.serverAddress,resolveToken(extra,target.apiKey),{executionId:args.execution_id,taskName:args.task_name,pageSize:args.page_size}))),server.registerTool("list_pending_approvals",{description:"List workflow tasks waiting for a human decision across an organization \u2014 an approvals inbox. Each entry carries the execution ID, task name, requester, timeout, and the form schema when the task defines one; respond with submit_workflow_task_approval. (Agent-execution approvals are not listed here \u2014 they surface in get_agent_execution's status.pending_approvals.)",inputSchema:{org:external_exports.string().describe("Organization slug to scope the query (e.g. stigmer)."),page_size:external_exports.number().int().optional().describe("Maximum entries per page (default 20, max 100)."),page_token:external_exports.string().optional().describe("Pagination token from a previous response's next_page_token.")}},(args,extra)=>textOrError(()=>listPendingApprovals(target.serverAddress,resolveToken(extra,target.apiKey),{org:args.org,pageSize:args.page_size,pageToken:args.page_token}))),server.registerTool("submit_workflow_task_approval",{description:"Submit a reviewer decision for a workflow human_input task that is waiting for a signal. outcome must match one of the task's configured outcome names (default: approve or deny). When the task defines a form_schema (see list_pending_approvals), provide matching form_data. Returns the updated workflow execution.",inputSchema:{execution_id:external_exports.string().describe("Workflow execution ID (wex_* format)."),task_name:external_exports.string().describe("Name of the waiting human_input task."),outcome:external_exports.string().describe("Decision outcome. Must match a configured outcome name of the task (e.g. approve, deny, needs_revision); approve/deny when none are configured."),comment:external_exports.string().optional().describe("Reviewer comment, stored in the audit trail."),form_data:external_exports.record(external_exports.unknown()).optional().describe("Response form data conforming to the task's form_schema, when it defines one.")}},(args,extra)=>textOrError(()=>submitWorkflowTaskApproval(target.serverAddress,resolveToken(extra,target.apiKey),{executionId:args.execution_id,taskName:args.task_name,outcome:args.outcome,comment:args.comment,formData:args.form_data}))),["run_workflow","get_workflow_execution","get_workflow_execution_events","list_pending_approvals","submit_workflow_task_approval"]}async function getWorkflowExecution(serverAddress,token,executionId){if(executionId==="")throw new Error("execution_id is required");return withClient(WorkflowExecutionQueryController,serverAddress,token,async(client,callOptions)=>{try{let execution=await client.get({value:executionId},callOptions);return toProtoJson(WorkflowExecutionSchema,execution)}catch(err){throw rpcError(err,`workflow execution "${executionId}"`)}})}async function getWorkflowExecutionEvents(serverAddress,token,args){if(args.executionId==="")throw new Error("execution_id is required");return withClient(WorkflowExecutionQueryController,serverAddress,token,async(client,callOptions)=>{let req={executionId:args.executionId,taskName:args.taskName??""};(args.pageSize??0)>0&&(req.pageSize=args.pageSize);try{let resp=await client.getEventLog(req,callOptions);return toProtoJson(GetEventLogResponseSchema,resp)}catch(err){throw rpcError(err,`event log for execution "${args.executionId}"`)}})}function registerTaskKindTools(server,target){return server.registerTool("get_task_kind_registry",{description:"Get the complete workflow task kind registry with all 20 task kind descriptors, field schemas, JSON Schemas, categories, examples, and output shapes.",inputSchema:{}},(_args,extra)=>textOrError(()=>getTaskKindRegistry(target.serverAddress,resolveToken(extra,target.apiKey)))),server.registerTool("get_task_kind",{description:"Get a single workflow task kind descriptor by name with field schemas, JSON Schema, examples, and output shape.",inputSchema:{kind:external_exports.string().describe("Task kind name (one of: set_vars, http_call, grpc_call, activity_call, switch_case, for_each, fork, try_catch, listen, wait, raise_error, run_workflow, agent_call, llm_call, transform, human_input, validate, emit_event, notification, eval).")}},(args,extra)=>textOrError(()=>getTaskKind(target.serverAddress,resolveToken(extra,target.apiKey),args.kind))),["get_task_kind_registry","get_task_kind"]}async function getTaskKindRegistry(serverAddress,token){return withClient(TaskKindRegistryQueryController,serverAddress,token,async(client,callOptions)=>{try{let resp=await client.getTaskKindRegistry({},callOptions);return toProtoJson(GetTaskKindRegistryResponseSchema,resp)}catch(err){throw rpcError(err,"task kind registry")}})}async function getTaskKind(serverAddress,token,kind){if(kind==="")throw new Error("kind is required");return withClient(TaskKindRegistryQueryController,serverAddress,token,async(client,callOptions)=>{let resp;try{resp=await client.getTaskKindRegistry({},callOptions)}catch(err){throw rpcError(err,"task kind registry")}let normalized=kind.trim().toLowerCase();for(let desc of resp.descriptors)if((WorkflowTaskKind[desc.kind]??"").toLowerCase()===normalized)return toProtoJson(TaskKindDescriptorSchema,desc);throw new Error(`task kind "${kind}" not found in registry; use get_task_kind_registry to see all available kinds`)})}async function fetchWorkflow(serverAddress,token,org,slug){return withClient(WorkflowQueryController,serverAddress,token,async(client,callOptions)=>{try{let workflow=await client.getByReference({org,kind:ApiResourceKind.workflow,slug},callOptions);return toProtoJson(WorkflowSchema,workflow)}catch(err){throw rpcError(err,`workflow "${slug}" in org "${org}"`)}})}function registerWorkflowResources(server,target){return registerResource(server,target,{name:"stigmer_workflow",title:"Stigmer Workflow",description:"Full definition of a Stigmer workflow, identified by organization and slug.",template:"stigmer://workflows/{org}/{slug}",fetch:fetchWorkflow}),["stigmer_workflow"]}var file_ai_stigmer_agentic_workflow_v1_tasks_common=fileDesc("CjFhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvY29tbW9uLnByb3RvEiRhaS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MqfgoVT25JbnZhbGlkT3V0cHV0UG9saWN5EiEKHU9OX0lOVkFMSURfUE9MSUNZX1VOU1BFQ0lGSUVEEAASEwoPT05fSU5WQUxJRF9GQUlMEAESFAoQT05fSU5WQUxJRF9SRVRSWRACEhcKE09OX0lOVkFMSURfRkFMTEJBQ0sQA2IGcHJvdG8z"),OnInvalidOutputPolicy;(function(OnInvalidOutputPolicy2){OnInvalidOutputPolicy2[OnInvalidOutputPolicy2.ON_INVALID_POLICY_UNSPECIFIED=0]="ON_INVALID_POLICY_UNSPECIFIED",OnInvalidOutputPolicy2[OnInvalidOutputPolicy2.ON_INVALID_FAIL=1]="ON_INVALID_FAIL",OnInvalidOutputPolicy2[OnInvalidOutputPolicy2.ON_INVALID_RETRY=2]="ON_INVALID_RETRY",OnInvalidOutputPolicy2[OnInvalidOutputPolicy2.ON_INVALID_FALLBACK=3]="ON_INVALID_FALLBACK"})(OnInvalidOutputPolicy||(OnInvalidOutputPolicy={}));var file_ai_stigmer_agentic_workflow_v1_tasks_agent_call=fileDesc("CjVhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvYWdlbnRfY2FsbC5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzIsIFChNBZ2VudENhbGxUYXNrQ29uZmlnEhsKBWFnZW50GAEgASgJQgy6SAnIAQFyBBABGH8SHwoHbWVzc2FnZRgCIAEoCUIOukgHyAEBcgIQAdiFLAESTwoDZW52GAMgAygLMkIuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzLkFnZW50Q2FsbFRhc2tDb25maWcuRW52RW50cnkSQwoKcnVuX2NvbmZpZxgEIAEoCzIvLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5SdW5Db25maWcSTQoGb3V0cHV0GAUgASgLMj0uYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzLkFnZW50Q2FsbE91dHB1dENvbnRyYWN0EjcKB2hhcm5lc3MYBiABKA4yJi5haS5zdGlnbWVyLmFnZW50aWMuc2Vzc2lvbi52MS5IYXJuZXNzEkgKEXdvcmtzcGFjZV9lbnRyaWVzGAcgAygLMi0uYWkuc3RpZ21lci5hZ2VudGljLnNlc3Npb24udjEuV29ya3NwYWNlRW50cnkSyAEKEGVudmlyb25tZW50X3JlZnMYCCADKAsyNC5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuQXBpUmVzb3VyY2VSZWZlcmVuY2VCeLpIcZIBbiJsugFpChVlbnZpcm9ubWVudF9yZWZzLmtpbmQSP2Vudmlyb25tZW50X3JlZnMgbXVzdCByZWZlcmVuY2UgcmVzb3VyY2VzIHdpdGgga2luZD1lbnZpcm9ubWVudBoPdGhpcy5raW5kID09IDUz4IUsNRoqCghFbnZFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBOg7qiywKYWdlbnRfY2FsbCLVAQoXQWdlbnRDYWxsT3V0cHV0Q29udHJhY3QSLwoGc2NoZW1hGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEIGukgDyAEBEk8KCm9uX2ludmFsaWQYAiABKA4yOy5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MuT25JbnZhbGlkT3V0cHV0UG9saWN5EiEKC21heF9yZXRyaWVzGAMgASgFQgy6SAnYAQEaBBgFKAESFQoNZmFsbGJhY2tfdGFzaxgEIAEoCWIGcHJvdG8z",[file_ai_stigmer_agentic_agentexecution_v1_invocation,file_ai_stigmer_agentic_session_v1_enum,file_ai_stigmer_agentic_session_v1_workspace,file_ai_stigmer_agentic_workflow_v1_tasks_common,file_ai_stigmer_commons_apiresource_field_options,file_ai_stigmer_commons_apiresource_io,file_buf_validate_validate,file_google_protobuf_struct]),AgentCallTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_agent_call,0),AgentCallOutputContractSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_agent_call,1);var file_ai_stigmer_agentic_workflow_v1_tasks_call_activity=fileDesc("CjhhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvY2FsbF9hY3Rpdml0eS5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzInEKFkNhbGxBY3Rpdml0eVRhc2tDb25maWcSHAoIYWN0aXZpdHkYASABKAlCCrpIB8gBAXICEAESJgoFaW5wdXQYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0OhHqiywNYWN0aXZpdHlfY2FsbGIGcHJvdG8z",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate,file_google_protobuf_struct]),CallActivityTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_call_activity,0);var file_ai_stigmer_agentic_workflow_v1_tasks_emit_event=fileDesc("CjVhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvZW1pdF9ldmVudC5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzIoABCg1FbWl0RXZlbnRTcGVjEhsKBHR5cGUYASABKAlCDbpICsgBAXIFEAEY/wESFAoGc291cmNlGAIgASgJQgTYhSwBEiUKBGRhdGEYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhUKB3N1YmplY3QYBCABKAlCBNiFLAEivQEKE0VtaXRFdmVudFRhc2tDb25maWcSSgoFZXZlbnQYASABKAsyMy5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MuRW1pdEV2ZW50U3BlY0IGukgDyAEBEkoKCGRlbGl2ZXJ5GAIgAygLMjguYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzLkVtaXREZWxpdmVyeVRhcmdldDoO6ossCmVtaXRfZXZlbnQitwEKEkVtaXREZWxpdmVyeVRhcmdldBJICgd3ZWJob29rGAEgASgLMjUuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzLldlYmhvb2tEZWxpdmVyeUgAEkYKBnNpZ25hbBgCIAEoCzI0LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS50YXNrcy5TaWduYWxEZWxpdmVyeUgAQg8KBnRhcmdldBIFukgCCAEiswEKD1dlYmhvb2tEZWxpdmVyeRIbCgN1cmwYASABKAlCDrpIB8gBAXICEAHYhSwBElMKB2hlYWRlcnMYAiADKAsyQi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MuV2ViaG9va0RlbGl2ZXJ5LkhlYWRlcnNFbnRyeRouCgxIZWFkZXJzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJbCg5TaWduYWxEZWxpdmVyeRIkCgxleGVjdXRpb25faWQYASABKAlCDrpIB8gBAXICEAHYhSwBEiMKC3NpZ25hbF9uYW1lGAIgASgJQg66SAfIAQFyAhAB2IUsAWIGcHJvdG8z",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate,file_google_protobuf_struct]),EmitEventSpecSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_emit_event,0),EmitEventTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_emit_event,1),EmitDeliveryTargetSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_emit_event,2),WebhookDeliverySchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_emit_event,3),SignalDeliverySchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_emit_event,4);var file_ai_stigmer_agentic_workflow_v1_tasks_eval=fileDesc("Ci9haS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvZXZhbC5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzIlwKDUV2YWxDcml0ZXJpb24SGgoEbmFtZRgBIAEoCUIMukgJyAEBcgQQARh/Eh8KC2Rlc2NyaXB0aW9uGAIgASgJQgq6SAfIAQFyAhABEg4KBndlaWdodBgDIAEoASLIAwoORXZhbFRhc2tDb25maWcSGwoFbW9kZWwYASABKAlCDLpICcgBAXIEEAEYfxIfCgdzdWJqZWN0GAIgASgJQg66SAfIAQFyAhAB2IUsARIaCgZydWJyaWMYAyABKAlCCrpIB8gBAXICEAESSwoMc2NvcmluZ19tb2RlGAQgASgOMjUuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzLkV2YWxTY29yaW5nTW9kZRIqCgl0aHJlc2hvbGQYBSABKAFCF7pIFBISGQAAAAAAAPA/KQAAAAAAAAAAEkUKB29uX2ZhaWwYBiABKA4yNC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MuRXZhbEZhaWxQb2xpY3kSFQoNZmFsbGJhY2tfdGFzaxgHIAEoCRIbCg1zeXN0ZW1fcHJvbXB0GAggASgJQgTYhSwBEkUKCGNyaXRlcmlhGAkgAygLMjMuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzLkV2YWxDcml0ZXJpb24SFwoPbWF4X2Nvc3RfbWljcm9zGAogASgDOgjqiywEZXZhbCpxCg5FdmFsRmFpbFBvbGljeRIgChxFVkFMX0ZBSUxfUE9MSUNZX1VOU1BFQ0lGSUVEEAASEwoPRVZBTF9GQUlMX1JBSVNFEAESFAoQRVZBTF9GQUlMX0JSQU5DSBACEhIKDkVWQUxfRkFJTF9XQVJOEAMqeQoPRXZhbFNjb3JpbmdNb2RlEiEKHUVWQUxfU0NPUklOR19NT0RFX1VOU1BFQ0lGSUVEEAASEgoORVZBTF9QQVNTX0ZBSUwQARIWChJFVkFMX05VTUVSSUNfU0NPUkUQAhIXChNFVkFMX01VTFRJX0NSSVRFUklBEANiBnByb3RvMw",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate]),EvalCriterionSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_eval,0),EvalTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_eval,1),EvalFailPolicy;(function(EvalFailPolicy2){EvalFailPolicy2[EvalFailPolicy2.EVAL_FAIL_POLICY_UNSPECIFIED=0]="EVAL_FAIL_POLICY_UNSPECIFIED",EvalFailPolicy2[EvalFailPolicy2.EVAL_FAIL_RAISE=1]="EVAL_FAIL_RAISE",EvalFailPolicy2[EvalFailPolicy2.EVAL_FAIL_BRANCH=2]="EVAL_FAIL_BRANCH",EvalFailPolicy2[EvalFailPolicy2.EVAL_FAIL_WARN=3]="EVAL_FAIL_WARN"})(EvalFailPolicy||(EvalFailPolicy={}));var EvalScoringMode;(function(EvalScoringMode2){EvalScoringMode2[EvalScoringMode2.EVAL_SCORING_MODE_UNSPECIFIED=0]="EVAL_SCORING_MODE_UNSPECIFIED",EvalScoringMode2[EvalScoringMode2.EVAL_PASS_FAIL=1]="EVAL_PASS_FAIL",EvalScoringMode2[EvalScoringMode2.EVAL_NUMERIC_SCORE=2]="EVAL_NUMERIC_SCORE",EvalScoringMode2[EvalScoringMode2.EVAL_MULTI_CRITERIA=3]="EVAL_MULTI_CRITERIA"})(EvalScoringMode||(EvalScoringMode={}));var file_ai_stigmer_agentic_workflow_v1_tasks_for=fileDesc("Ci5haS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvZm9yLnByb3RvEiRhaS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MiogIKDUZvclRhc2tDb25maWcSGAoEZWFjaBgBIAEoCUIKukgHyAEBcgIQARIaCgJpbhgCIAEoCUIOukgHyAEBcgIQAdiFLAESQgoCZG8YAyADKAsyLC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuV29ya2Zsb3dUYXNrQgi6SAWSAQIIARIgCg9tYXhfcGFyYWxsZWxpc20YBCABKAVCB7pIBBoCKAASGwoKYmF0Y2hfc2l6ZRgFIAEoBUIHukgEGgIoABJKCghvbl9lcnJvchgGIAEoDjI4LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS50YXNrcy5Gb3JFYWNoRXJyb3JQb2xpY3k6DOqLLAhmb3JfZWFjaCp9ChJGb3JFYWNoRXJyb3JQb2xpY3kSJQohRk9SX0VBQ0hfRVJST1JfUE9MSUNZX1VOU1BFQ0lGSUVEEAASFgoSRk9SX0VBQ0hfRkFJTF9GQVNUEAESFQoRRk9SX0VBQ0hfQ09OVElOVUUQAhIRCg1GT1JfRUFDSF9TS0lQEANiBnByb3RvMw",[file_ai_stigmer_agentic_workflow_v1_spec,file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate]),ForTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_for,0),ForEachErrorPolicy;(function(ForEachErrorPolicy2){ForEachErrorPolicy2[ForEachErrorPolicy2.FOR_EACH_ERROR_POLICY_UNSPECIFIED=0]="FOR_EACH_ERROR_POLICY_UNSPECIFIED",ForEachErrorPolicy2[ForEachErrorPolicy2.FOR_EACH_FAIL_FAST=1]="FOR_EACH_FAIL_FAST",ForEachErrorPolicy2[ForEachErrorPolicy2.FOR_EACH_CONTINUE=2]="FOR_EACH_CONTINUE",ForEachErrorPolicy2[ForEachErrorPolicy2.FOR_EACH_SKIP=3]="FOR_EACH_SKIP"})(ForEachErrorPolicy||(ForEachErrorPolicy={}));var file_ai_stigmer_agentic_workflow_v1_tasks_fork=fileDesc("Ci9haS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvZm9yay5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzInkKDkZvcmtUYXNrQ29uZmlnEkwKCGJyYW5jaGVzGAEgAygLMjAuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzLkZvcmtCcmFuY2hCCLpIBZIBAggCEg8KB2NvbXBldGUYAiABKAg6COqLLARmb3JrImoKCkZvcmtCcmFuY2gSGAoEbmFtZRgBIAEoCUIKukgHyAEBcgIQARJCCgJkbxgCIAMoCzIsLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5Xb3JrZmxvd1Rhc2tCCLpIBZIBAggBYgZwcm90bzM",[file_ai_stigmer_agentic_workflow_v1_spec,file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate]),ForkTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_fork,0),ForkBranchSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_fork,1);var file_ai_stigmer_agentic_workflow_v1_tasks_grpc_call=fileDesc("CjRhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvZ3JwY19jYWxsLnByb3RvEiRhaS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MihgEKEkdycGNDYWxsVGFza0NvbmZpZxIbCgdzZXJ2aWNlGAEgASgJQgq6SAfIAQFyAhABEhoKBm1ldGhvZBgCIAEoCUIKukgHyAEBcgIQARIoCgdyZXF1ZXN0GAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdDoN6ossCWdycGNfY2FsbGIGcHJvdG8z",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate,file_google_protobuf_struct]),GrpcCallTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_grpc_call,0);var file_ai_stigmer_agentic_workflow_v1_tasks_http_call=fileDesc("CjRhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvaHR0cF9jYWxsLnByb3RvEiRhaS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MigQMKEkh0dHBDYWxsVGFza0NvbmZpZxI3CgZtZXRob2QYASABKAlCJ7pIJMgBAXIfUgNHRVRSBFBPU1RSA1BVVFIGREVMRVRFUgVQQVRDSBJMCghlbmRwb2ludBgCIAEoCzIyLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS50YXNrcy5IdHRwRW5kcG9pbnRCBrpIA8gBARJWCgdoZWFkZXJzGAMgAygLMkUuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzLkh0dHBDYWxsVGFza0NvbmZpZy5IZWFkZXJzRW50cnkSJQoEYm9keRgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSJgoPdGltZW91dF9zZWNvbmRzGAUgASgFQg26SArYAQEaBRisAigBGi4KDEhlYWRlcnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBOg3qiywJaHR0cF9jYWxsIisKDEh0dHBFbmRwb2ludBIbCgN1cmkYASABKAlCDrpIB8gBAXICEAHYhSwBYgZwcm90bzM",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate,file_google_protobuf_struct]),HttpCallTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_http_call,0),HttpEndpointSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_http_call,1);var file_ai_stigmer_agentic_workflow_v1_tasks_human_input=fileDesc("CjZhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvaHVtYW5faW5wdXQucHJvdG8SJGFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS50YXNrcyJMChFIdW1hbklucHV0T3V0Y29tZRIaCgRuYW1lGAEgASgJQgy6SAnIAQFyBBABGD8SDQoFbGFiZWwYAiABKAkSDAoEdGhlbhgDIAEoCSKnAwoUSHVtYW5JbnB1dFRhc2tDb25maWcSHgoGcHJvbXB0GAEgASgJQg66SAfIAQFyAhAB2IUsARIsCgtmb3JtX3NjaGVtYRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSSQoIb3V0Y29tZXMYAyADKAsyNy5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MuSHVtYW5JbnB1dE91dGNvbWUSEQoJYXBwcm92ZXJzGAQgAygJEh0KB3RpbWVvdXQYBSABKAVCDLpICRoHGICangEoABJRCgpvbl90aW1lb3V0GAYgASgOMj0uYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzLkh1bWFuSW5wdXRUaW1lb3V0UG9saWN5Eh0KFW5vdGlmaWNhdGlvbl9jaGFubmVscxgHIAMoCRInCgdwYXlsb2FkGAggASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEhgKB3VpX2hpbnQYCSABKAlCB7pIBHICGD86D+qLLAtodW1hbl9pbnB1dCrEAQoXSHVtYW5JbnB1dFRpbWVvdXRQb2xpY3kSKgomSFVNQU5fSU5QVVRfVElNRU9VVF9QT0xJQ1lfVU5TUEVDSUZJRUQQABIcChhIVU1BTl9JTlBVVF9USU1FT1VUX0ZBSUwQARIfChtIVU1BTl9JTlBVVF9USU1FT1VUX0FQUFJPVkUQAhIcChhIVU1BTl9JTlBVVF9USU1FT1VUX0RFTlkQAxIgChxIVU1BTl9JTlBVVF9USU1FT1VUX0VTQ0FMQVRFEARiBnByb3RvMw",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate,file_google_protobuf_struct]),HumanInputOutcomeSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_human_input,0),HumanInputTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_human_input,1),HumanInputTimeoutPolicy;(function(HumanInputTimeoutPolicy2){HumanInputTimeoutPolicy2[HumanInputTimeoutPolicy2.HUMAN_INPUT_TIMEOUT_POLICY_UNSPECIFIED=0]="HUMAN_INPUT_TIMEOUT_POLICY_UNSPECIFIED",HumanInputTimeoutPolicy2[HumanInputTimeoutPolicy2.HUMAN_INPUT_TIMEOUT_FAIL=1]="HUMAN_INPUT_TIMEOUT_FAIL",HumanInputTimeoutPolicy2[HumanInputTimeoutPolicy2.HUMAN_INPUT_TIMEOUT_APPROVE=2]="HUMAN_INPUT_TIMEOUT_APPROVE",HumanInputTimeoutPolicy2[HumanInputTimeoutPolicy2.HUMAN_INPUT_TIMEOUT_DENY=3]="HUMAN_INPUT_TIMEOUT_DENY",HumanInputTimeoutPolicy2[HumanInputTimeoutPolicy2.HUMAN_INPUT_TIMEOUT_ESCALATE=4]="HUMAN_INPUT_TIMEOUT_ESCALATE"})(HumanInputTimeoutPolicy||(HumanInputTimeoutPolicy={}));var file_ai_stigmer_agentic_workflow_v1_tasks_listen=fileDesc("CjFhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvbGlzdGVuLnByb3RvEiRhaS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MiYgoQTGlzdGVuVGFza0NvbmZpZxJCCgJ0bxgBIAEoCzIuLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS50YXNrcy5MaXN0ZW5Ub0IGukgDyAEBOgrqiywGbGlzdGVuInkKCExpc3RlblRvEiAKBG1vZGUYASABKAlCErpID8gBAXIKUgNvbmVSA2FsbBJLCgdzaWduYWxzGAIgAygLMjAuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzLlNpZ25hbFNwZWNCCLpIBZIBAggBIlMKClNpZ25hbFNwZWMSFgoCaWQYASABKAlCCrpIB8gBAXICEAESLQoEdHlwZRgCIAEoCUIfukgcyAEBchdSBnNpZ25hbFIFcXVlcnlSBnVwZGF0ZWIGcHJvdG8z",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate]),ListenTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_listen,0),ListenToSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_listen,1),SignalSpecSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_listen,2);var file_ai_stigmer_agentic_workflow_v1_tasks_llm_call=fileDesc("CjNhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvbGxtX2NhbGwucHJvdG8SJGFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS50YXNrcyLRAwoRTGxtQ2FsbFRhc2tDb25maWcSGwoFbW9kZWwYASABKAlCDLpICcgBAXIEEAEYfxIbCg1zeXN0ZW1fcHJvbXB0GAIgASgJQgTYhSwBEh4KBnByb21wdBgDIAEoCUIOukgHyAEBcgIQAdiFLAESMAoPcmVzcG9uc2Vfc2NoZW1hGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIkCgt0ZW1wZXJhdHVyZRgFIAEoAkIPukgMCgodAAAAQC0AAAAAEh4KCm1heF90b2tlbnMYBiABKAVCCrpIB9gBARoCKAESHgoHdGltZW91dBgHIAEoBUINukgK2AEBGgUY2AQoARJPCgpvbl9pbnZhbGlkGAggASgOMjsuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzLk9uSW52YWxpZE91dHB1dFBvbGljeRIhCgttYXhfcmV0cmllcxgJIAEoBUIMukgJ2AEBGgQYBSgBEhUKDWZhbGxiYWNrX3Rhc2sYCiABKAkSFwoPbWF4X2Nvc3RfbWljcm9zGAsgASgDEhgKEG1heF90b3RhbF90b2tlbnMYDCABKAM6DOqLLAhsbG1fY2FsbGIGcHJvdG8z",[file_ai_stigmer_agentic_workflow_v1_tasks_common,file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate,file_google_protobuf_struct]),LlmCallTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_llm_call,0);var file_ai_stigmer_agentic_workflow_v1_tasks_notification=fileDesc("CjdhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3Mvbm90aWZpY2F0aW9uLnByb3RvEiRhaS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MivQIKFk5vdGlmaWNhdGlvblRhc2tDb25maWcSHQoHY2hhbm5lbBgBIAEoCUIMukgJyAEBcgQQARg/EhwKCnJlY2lwaWVudHMYAiADKAlCCLpIBZIBAggBEhUKB3N1YmplY3QYAyABKAlCBNiFLAESHAoEYm9keRgEIAEoCUIOukgHyAEBcgIQAdiFLAESEAoIdGVtcGxhdGUYBSABKAkSXAoIbWV0YWRhdGEYBiADKAsySi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MuTm90aWZpY2F0aW9uVGFza0NvbmZpZy5NZXRhZGF0YUVudHJ5Gi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AToQ6ossDG5vdGlmaWNhdGlvbmIGcHJvdG8z",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate]),NotificationTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_notification,0);var file_ai_stigmer_agentic_workflow_v1_tasks_raise=fileDesc("CjBhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvcmFpc2UucHJvdG8SJGFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS50YXNrcyJYCg9SYWlzZVRhc2tDb25maWcSHQoFZXJyb3IYASABKAlCDrpIB8gBAXICEAHYhSwBEhUKB21lc3NhZ2UYAiABKAlCBNiFLAE6D+qLLAtyYWlzZV9lcnJvcmIGcHJvdG8z",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate]),RaiseTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_raise,0);var file_ai_stigmer_agentic_workflow_v1_tasks_run=fileDesc("Ci5haS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvcnVuLnByb3RvEiRhaS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MiZwoNUnVuVGFza0NvbmZpZxIcCgh3b3JrZmxvdxgBIAEoCUIKukgHyAEBcgIQARImCgVpbnB1dBgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3Q6EOqLLAxydW5fd29ya2Zsb3diBnByb3RvMw",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate,file_google_protobuf_struct]),RunTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_run,0);var file_ai_stigmer_agentic_workflow_v1_tasks_set=fileDesc("Ci5haS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3Mvc2V0LnByb3RvEiRhaS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MirgEKDVNldFRhc2tDb25maWcSXQoJdmFyaWFibGVzGAEgAygLMkIuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzLlNldFRhc2tDb25maWcuVmFyaWFibGVzRW50cnlCBrpIA8gBARowCg5WYXJpYWJsZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBOgzqiywIc2V0X3ZhcnNiBnByb3RvMw",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate]),SetTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_set,0);var file_ai_stigmer_agentic_workflow_v1_tasks_switch=fileDesc("CjFhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3Mvc3dpdGNoLnByb3RvEiRhaS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MibgoQU3dpdGNoVGFza0NvbmZpZxJJCgVjYXNlcxgBIAMoCzIwLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS50YXNrcy5Td2l0Y2hDYXNlQgi6SAWSAQIIAToP6ossC3N3aXRjaF9jYXNlIk4KClN3aXRjaENhc2USGAoEbmFtZRgBIAEoCUIKukgHyAEBcgIQARIMCgR3aGVuGAIgASgJEhgKBHRoZW4YAyABKAlCCrpIB8gBAXICEAFiBnByb3RvMw",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate]),SwitchTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_switch,0),SwitchCaseSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_switch,1);var file_ai_stigmer_agentic_workflow_v1_tasks_transform=fileDesc("CjRhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvdHJhbnNmb3JtLnByb3RvEiRhaS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MirwEKE1RyYW5zZm9ybVRhc2tDb25maWcSVAoGZW5naW5lGAEgASgOMjUuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzLlRyYW5zZm9ybUVuZ2luZUINukgKyAEBggEEEAEgABIeCgpleHByZXNzaW9uGAIgASgJQgq6SAfIAQFyAhABEhMKBWlucHV0GAMgASgJQgTYhSwBOg3qiywJdHJhbnNmb3JtKokBCg9UcmFuc2Zvcm1FbmdpbmUSIAocVFJBTlNGT1JNX0VOR0lORV9VTlNQRUNJRklFRBAAEhcKE1RSQU5TRk9STV9FTkdJTkVfSlEQARIcChhUUkFOU0ZPUk1fRU5HSU5FX0pTT05BVEEQAhIdChlUUkFOU0ZPUk1fRU5HSU5FX1RFTVBMQVRFEANiBnByb3RvMw",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate]),TransformTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_transform,0),TransformEngine;(function(TransformEngine2){TransformEngine2[TransformEngine2.UNSPECIFIED=0]="UNSPECIFIED",TransformEngine2[TransformEngine2.JQ=1]="JQ",TransformEngine2[TransformEngine2.JSONATA=2]="JSONATA",TransformEngine2[TransformEngine2.TEMPLATE=3]="TEMPLATE"})(TransformEngine||(TransformEngine={}));var file_ai_stigmer_agentic_workflow_v1_tasks_try=fileDesc("Ci5haS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvdHJ5LnByb3RvEiRhaS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MipAEKDVRyeVRhc2tDb25maWcSQwoDdHJ5GAEgAygLMiwuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLldvcmtmbG93VGFza0IIukgFkgECCAESPwoFY2F0Y2gYAiABKAsyMC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MuQ2F0Y2hCbG9jazoN6ossCXRyeV9jYXRjaCJwCgpDYXRjaEJsb2NrEgoKAmFzGAEgASgJEkIKAmRvGAIgAygLMiwuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLldvcmtmbG93VGFza0IIukgFkgECCAESEgoKY29tcGVuc2F0ZRgDIAEoCGIGcHJvdG8z",[file_ai_stigmer_agentic_workflow_v1_spec,file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate]),TryTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_try,0),CatchBlockSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_try,1);var file_ai_stigmer_agentic_workflow_v1_tasks_validate=fileDesc("CjNhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3MvdmFsaWRhdGUucHJvdG8SJGFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS50YXNrcyJnCg5WYWxpZGF0aW9uUnVsZRIaCgRuYW1lGAEgASgJQgy6SAnIAQFyBBABGH8SIgoKZXhwcmVzc2lvbhgCIAEoCUIOukgHyAEBcgIQAdiFLAESFQoHbWVzc2FnZRgDIAEoCUIE2IUsASKTAgoSVmFsaWRhdGVUYXNrQ29uZmlnEh0KBWlucHV0GAEgASgJQg66SAfIAQFyAhAB2IUsARInCgZzY2hlbWEYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EkMKBXJ1bGVzGAMgAygLMjQuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzLlZhbGlkYXRpb25SdWxlEksKB29uX2ZhaWwYBCABKA4yOi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MuVmFsaWRhdGlvbkZhaWxQb2xpY3kSFQoNZmFsbGJhY2tfdGFzaxgFIAEoCToM6ossCHZhbGlkYXRlKo8BChRWYWxpZGF0aW9uRmFpbFBvbGljeRImCiJWQUxJREFUSU9OX0ZBSUxfUE9MSUNZX1VOU1BFQ0lGSUVEEAASGQoVVkFMSURBVElPTl9GQUlMX1JBSVNFEAESGgoWVkFMSURBVElPTl9GQUlMX0JSQU5DSBACEhgKFFZBTElEQVRJT05fRkFJTF9XQVJOEANiBnByb3RvMw",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate,file_google_protobuf_struct]),ValidationRuleSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_validate,0),ValidateTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_validate,1),ValidationFailPolicy;(function(ValidationFailPolicy2){ValidationFailPolicy2[ValidationFailPolicy2.VALIDATION_FAIL_POLICY_UNSPECIFIED=0]="VALIDATION_FAIL_POLICY_UNSPECIFIED",ValidationFailPolicy2[ValidationFailPolicy2.VALIDATION_FAIL_RAISE=1]="VALIDATION_FAIL_RAISE",ValidationFailPolicy2[ValidationFailPolicy2.VALIDATION_FAIL_BRANCH=2]="VALIDATION_FAIL_BRANCH",ValidationFailPolicy2[ValidationFailPolicy2.VALIDATION_FAIL_WARN=3]="VALIDATION_FAIL_WARN"})(ValidationFailPolicy||(ValidationFailPolicy={}));var file_ai_stigmer_agentic_workflow_v1_tasks_wait=fileDesc("Ci9haS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3Mvd2FpdC5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzIpECCghEdXJhdGlvbhIMCgRkYXlzGAEgASgNEg0KBWhvdXJzGAIgASgNEg8KB21pbnV0ZXMYAyABKA0SDwoHc2Vjb25kcxgEIAEoDRIUCgxtaWxsaXNlY29uZHMYBSABKA06rwG6SKsBGqgBChFkdXJhdGlvbi5ub25femVybxIsYXQgbGVhc3Qgb25lIGR1cmF0aW9uIGZpZWxkIG11c3QgYmUgbm9uLXplcm8aZXRoaXMuZGF5cyA+IDB1IHx8IHRoaXMuaG91cnMgPiAwdSB8fCB0aGlzLm1pbnV0ZXMgPiAwdSB8fCB0aGlzLnNlY29uZHMgPiAwdSB8fCB0aGlzLm1pbGxpc2Vjb25kcyA+IDB1IpgBCg5XYWl0VGFza0NvbmZpZxJCCghkdXJhdGlvbhgBIAEoCzIuLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS50YXNrcy5EdXJhdGlvbkgAEisKBXVudGlsGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAOgjqiywEd2FpdEILCgl3YWl0X3R5cGViBnByb3RvMw",[file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate,file_google_protobuf_timestamp]),DurationSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_wait,0),WaitTaskConfigSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_tasks_wait,1);var WorkflowInputShape={name:external_exports.string().describe("Human-readable name of the resource."),slug:external_exports.string().optional().describe("URL-friendly identifier (lowercase alphanumeric with hyphens). Auto-generated from name if omitted."),org:external_exports.string().describe("Organization that owns this resource (e.g. acme)."),visibility:external_exports.string().optional().describe("Resource visibility, by enum name. Applied at create; on updates a changed value is landed through the guarded UpdateVisibility RPC. Omit to leave unchanged. Allowed values: visibility_private, visibility_org, visibility_platform."),labels:external_exports.record(external_exports.string()).optional().describe("Key-value labels for organization and filtering."),tags:external_exports.array(external_exports.string()).optional().describe("Tags for categorization and discovery."),description:external_exports.string().optional().describe("Human-readable description for UI and marketplace display."),document:external_exports.lazy(()=>WorkflowDocumentInputSchema).describe("Workflow document metadata including DSL version, namespace, name, and version."),tasks:external_exports.array(external_exports.lazy(()=>WorkflowTaskInputSchema)).optional().describe("Ordered list of tasks that make up this workflow. Tasks execute sequentially unless fork/parallel is used."),env:external_exports.record(external_exports.lazy(()=>EnvVarDeclarationInputSchema3)).optional().describe("Environment variable declarations for this workflow. Keys are variable names; values describe their metadata and optionality."),budget:external_exports.lazy(()=>WorkflowBudgetInputSchema).optional().describe("Budget limits for this workflow execution. When set, the runtime (T13) enforces cost, token, and duration limits across all tasks. The existing org-level billing reservation system (AuthorizeExecution / ExecutionBillingSignal) remains the safety net for overall credit exhaustion; workflow budgets prevent individual workflows from consuming more than intended. Optional \u2014 when not set, no workflow-level budget is enforced.")},WorkflowInputSchema=external_exports.object(WorkflowInputShape),WorkflowDocumentInputSchema=external_exports.object({dsl:external_exports.string().optional().describe("Workflow DSL version (semver). Must be '1.0.0' for the current specification."),namespace:external_exports.string().describe("Workflow namespace (organization/categorization)."),name:external_exports.string().describe("Workflow name (unique identifier within namespace)."),version:external_exports.string().describe("Workflow version (semver)."),description:external_exports.string().optional().describe("Human-readable description.")}),RunConfigInputSchema=external_exports.object({model_name:external_exports.string().optional().describe("The model each run uses. Example: 'claude-sonnet-4-6'."),max_cost_usd:external_exports.number().optional().describe("Maximum estimated cost in USD per run. The surface's platform execution profile caps this value; the lower bound wins."),max_tool_rounds:external_exports.number().optional().describe("Maximum model-to-tools reasoning cycles per run. The surface's platform execution profile caps this value; the lower bound wins."),service_tier:external_exports.string().optional().describe("Service tier for each run's model calls: standard (the default) or fast, where fast bills at the model's fast-tier rates and requires a model that offers one. In workflow YAML the shorthand spellings 'standard'/'fast' are accepted alongside the canonical enum names. Mirrors ExecutionConfig.service_tier: UNSPECIFIED inherits the surface's platform default, which itself resolves to STANDARD \u2014 never the provider account default. FAST requires model_name (here or from the platform profile) to name a model with a registry fast pricing variant; validated fail-closed at create. Allowed values: SERVICE_TIER_STANDARD, SERVICE_TIER_FAST."),thinking_mode:external_exports.string().optional().describe("Thinking mode for each run's model calls: disabled (the default) or enabled, where enabled selects the model's extended-reasoning variant (billed at base per-token rates \u2014 reasoning tokens bill as output). In workflow YAML the shorthand spellings 'disabled'/'enabled' are accepted alongside the canonical enum names. Mirrors ExecutionConfig.thinking_mode: UNSPECIFIED inherits the surface's platform default, which itself resolves to DISABLED \u2014 never the provider account default. ENABLED requires model_name (here or from the platform profile) to name a model whose registry entry declares the thinking capability; validated fail-closed at create. Combines freely with service_tier. Allowed values: THINKING_MODE_DISABLED, THINKING_MODE_ENABLED.")}),AgentCallOutputContractInputSchema=external_exports.object({schema:external_exports.record(external_exports.unknown()).describe("JSON Schema that the agent's structured output must conform to. Standard JSON Schema (draft 2020-12 or compatible). The workflow runner extracts JSON from the agent's final response and validates it against this schema. If validation fails, the on_invalid policy determines what happens next. The schema is carried as a google.protobuf.Struct to preserve the existing kind+Struct envelope pattern and allow YAML authors to write standard JSON Schema inline without a Stigmer-specific schema language."),on_invalid:external_exports.string().optional().describe("Policy when agent output fails schema validation. Default: ON_INVALID_FAIL (task fails immediately). Allowed values: ON_INVALID_FAIL, ON_INVALID_RETRY, ON_INVALID_FALLBACK."),max_retries:external_exports.number().optional().describe("Maximum retry attempts when on_invalid is ON_INVALID_RETRY. Each retry re-prompts the agent with the specific validation errors and the expected schema, giving the agent an opportunity to self-correct. Only meaningful when on_invalid is ON_INVALID_RETRY; ignored otherwise. Default: 2 (the runner's retry loop). Valid range when set: 1-5. Unset (0) is valid: proto3 implicit presence makes an omitted field indistinguishable from 0, so the range rule must not fire on it (#673)."),fallback_task:external_exports.string().optional().describe("Target task to branch to when schema validation cannot be resolved. Used in two scenarios: 1. on_invalid is ON_INVALID_RETRY and all retries are exhausted 2. on_invalid is ON_INVALID_FALLBACK (immediate branch, no retry) Must reference a valid task name in the same workflow. When empty and retries are exhausted, the task fails.")}),GitRepoSourceInputSchema=external_exports.object({url:external_exports.string().describe("HTTPS clone URL for the repository."),branch:external_exports.string().optional().describe("Branch to clone. When empty, the repository's default branch is used."),commit:external_exports.string().optional().describe("Commit SHA to checkout after cloning. When set, the workspace is checked out at this exact commit. When both branch and commit are set, the branch is cloned first, then the commit is checked out."),depth:external_exports.number().optional().describe("Number of commits to include in the clone history. When not set, defaults to a shallow clone with depth 1. Set to 0 for a full clone with complete history."),write_back_mode:external_exports.string().optional().describe("Controls whether the platform creates a branch and pull request from the agent's file changes. Allowed values: GIT_WRITE_BACK_BRANCH_AND_PR.")}),LocalPathSourceInputSchema=external_exports.object({path:external_exports.string().optional().describe("Absolute path to an existing directory on the host filesystem.")}),WorkspaceSourceInputSchema=external_exports.object({git_repo:external_exports.lazy(()=>GitRepoSourceInputSchema).optional().describe("Clone a git repository as the workspace source."),local_path:external_exports.lazy(()=>LocalPathSourceInputSchema).optional().describe("Use an existing local directory as the workspace source.")}),WorkspaceEntryInputSchema=external_exports.object({name:external_exports.string().optional().describe("Short identifier for this workspace entry."),source:external_exports.lazy(()=>WorkspaceSourceInputSchema).describe("The source that provides this entry's content.")}),EnvironmentRefInputSchema=external_exports.object({org:external_exports.string().optional().describe("Organization that owns the referenced resource. When non-empty: must be a valid org slug (lowercase alphanumeric with hyphens, starts with a letter, 1-63 characters). Example: 'stigmer', 'acme-corp'. When empty: the reference is relative \u2014 the server resolves it to the parent resource's organization at write time. All stored and returned references always have org populated (absolute form). Use empty org for same-org references (the common case). An explicit other org is accepted only when that organization is a platform that shares the resource with yours (visibility_platform)."),slug:external_exports.string().describe("Resource slug (user-friendly identifier, unique within org). Format: lowercase alphanumeric with hyphens, must start with a letter and end with a letter or digit (e.g., 'web-search', 'code-reviewer'). Length: 2-63 characters.")}),AgentCallTaskConfigInputSchema=external_exports.object({agent:external_exports.string().describe("Agent to invoke, as 'slug', 'org/slug', or a value holding a runtime expression. - 'slug': an agent of the organization the workflow runs in; checked when the workflow is saved, against the workflow's own organization - 'org/slug': that organization's agent; checked when the workflow is saved, and another organization's agent must be shared at platform visibility - a value holding '${ ... }', '${.env_vars.KEY}' or '${.secrets.KEY}': resolved to 'slug' or 'org/slug' when the task runs, and read as the person who ran the workflow Examples: 'code-reviewer', 'acme/data-analyst', '${.env_vars.TEAM_ORG}/assistant' Required field."),message:external_exports.string().describe("Instructions/prompt to send to the agent. Supports interpolation of workflow variables using JQ expressions. Example: 'Analyze this code: ${ $context.fetchCode.body }' Required field."),env:external_exports.record(external_exports.string()).optional().describe("Runtime environment variables to pass to the agent. Values can be literal strings or JQ expressions that reference workflow context or secrets. Example: {'GITHUB_TOKEN': '${ .secrets.GH_TOKEN }'} Optional."),run_config:external_exports.lazy(()=>RunConfigInputSchema).optional().describe("Per-call model choice and run bounds. Unset fields inherit the platform defaults."),output:external_exports.lazy(()=>AgentCallOutputContractInputSchema).optional().describe("Structured output contract for this agent call. When set, the workflow runner extracts structured JSON from the agent's final response and validates it against the declared schema. The validated JSON is placed in the task output under the 'structured' key, enabling reliable downstream routing via switch_case expressions. When not set, the task output contains the agent's raw text response. @since T02 (Structured Agent Output Model)"),harness:external_exports.string().optional().describe("Execution harness for the agent invocation. Determines which execution engine processes the agent call: - HARNESS_UNSPECIFIED / HARNESS_NATIVE: Stigmer native engine (Python/LangGraph) - HARNESS_CURSOR: Cursor SDK engine (TypeScript/Cursor) The runner creates a Session with this harness before creating the AgentExecution. The harness is a session-level concern \u2014 it determines tool availability, state management, model access, and billing tier. When unspecified, defaults to HARNESS_NATIVE (the workflow surface's platform default). YAML Example: - code_review: call: agent with: agent: 'code-reviewer' harness: cursor message: 'Review this PR' Allowed values: HARNESS_NATIVE, HARNESS_CURSOR."),workspace_entries:external_exports.array(external_exports.lazy(()=>WorkspaceEntryInputSchema)).optional().describe("Workspace the child run's session operates on. Empty means no workspace."),environment_refs:external_exports.array(external_exports.lazy(()=>EnvironmentRefInputSchema)).optional().describe("References to Environment resources whose values are provided to the child runs this task creates. This is how a tool-using agent becomes runnable from a workflow: bind an org-shared environment holding the needed credentials, and the child runs receive its values at runtime. The agent and its default instance stay untouched.")}),CallActivityTaskConfigInputSchema=external_exports.object({activity:external_exports.string().describe("Activity name to execute."),input:external_exports.record(external_exports.unknown()).optional().describe("Activity input (optional). Can be any JSON structure. Supports expressions in string values.")}),EmitEventInputSchema=external_exports.object({type:external_exports.string().describe("CloudEvents type identifier. A reverse-DNS string that categorizes the event for routing and filtering. Examples: 'stigmer.workflow.ticket.classified', 'acme.order.completed'"),source:external_exports.string().optional().describe("CloudEvents source identifier. URI or URI-reference that identifies the context in which the event happened. Supports ${ } expression interpolation. When empty, the runtime defaults to the workflow execution URI (e.g., '/workflows/{workflow_id}/executions/{execution_id}')."),data:external_exports.record(external_exports.unknown()).optional().describe("Event payload data. Arbitrary JSON object carried as the CloudEvents data attribute. Values within the Struct can contain ${ } expressions that the runtime evaluates before emission. Unlike other Struct fields in the workflow domain (response_schema, form_schema, schema) which carry JSON Schema definitions, this field carries the actual event payload \u2014 not a schema."),subject:external_exports.string().optional().describe("CloudEvents subject identifier. Describes the subject of the event in the context of the event producer. Supports ${ } expression interpolation. Examples: '${ $context.ticket.id }', '${ $context.order.number }'")}),WebhookDeliveryInputSchema=external_exports.object({url:external_exports.string().describe("Endpoint URL to POST the event to. Can contain expressions: 'https://hooks.example.com/${ $context.tenant }'"),headers:external_exports.record(external_exports.string()).optional().describe("HTTP headers to send with the POST (optional). Values can contain runtime placeholders resolved just-in-time by the runner: 'Authorization: Bearer ${.secrets.WEBHOOK_TOKEN}' or '${.env_vars.KEY}'. Secrets resolve inside the delivery activity and never enter workflow history.")}),SignalDeliveryInputSchema=external_exports.object({execution_id:external_exports.string().describe("Target workflow execution id ('wfx_...'), as returned by run/create. Usually flows from a prior task's output: '${ .start_processor.execution_id }'"),signal_name:external_exports.string().describe("Signal name, matching the target's listen task event id (verbatim).")}),EmitDeliveryTargetInputSchema=external_exports.object({webhook:external_exports.lazy(()=>WebhookDeliveryInputSchema).optional().describe("POST the CloudEvents envelope to an HTTP endpoint."),signal:external_exports.lazy(()=>SignalDeliveryInputSchema).optional().describe("Signal another workflow execution's listen task.")}),EmitEventTaskConfigInputSchema=external_exports.object({event:external_exports.lazy(()=>EmitEventInputSchema).describe("The event specification to emit. Contains the CloudEvents envelope fields (type, source, data, subject). Required field."),delivery:external_exports.array(external_exports.lazy(()=>EmitDeliveryTargetInputSchema)).optional().describe("Delivery targets for the emitted event (optional). When empty, the task only constructs the CloudEvents envelope and exposes it as task output \u2014 no external delivery happens. Delivery is best-effort: a failed target never fails the task. Failures are collected into the 'delivery_errors' array on the task output, one entry per failed target, so workflows can branch on delivery health. Each target has a 30-second timeout.")}),EvalCriterionInputSchema=external_exports.object({name:external_exports.string().describe("Name of this evaluation dimension. Used in the judge prompt and appears in the output. Examples: 'accuracy', 'completeness', 'safety', 'relevance'"),description:external_exports.string().describe("Description of what this criterion measures. Included in the judge prompt to guide the LLM's assessment. Example: 'Does the response accurately reflect the source data without hallucinations?'"),weight:external_exports.number().optional().describe("Relative weight for computing the weighted average overall score. When all weights are equal (or all zero), criteria are averaged uniformly. Example: accuracy=3.0, formatting=1.0 means accuracy counts 3x more.")}),EvalTaskConfigInputSchema=external_exports.object({model:external_exports.string().describe("LLM model used as the judge. Resolved via the Stigmer model registry. Examples: 'gpt-4o', 'claude-sonnet-4-5'"),subject:external_exports.string().describe("Expression selecting the data to evaluate. Supports ${ } expression interpolation. Example: '${ $context.summarize.text }' to evaluate a summary task's output."),rubric:external_exports.string().describe("Evaluation criteria in natural language. Tells the judge LLM what to assess and what 'good' looks like. For pass_fail: describe what constitutes a pass. For numeric_score: describe the scoring scale. For multi_criteria: provide overall context (per-criterion detail goes in criteria field)."),scoring_mode:external_exports.string().optional().describe("How the judge scores the subject. Default: EVAL_PASS_FAIL. Allowed values: EVAL_PASS_FAIL, EVAL_NUMERIC_SCORE, EVAL_MULTI_CRITERIA."),threshold:external_exports.number().optional().describe("Pass threshold for numeric_score and multi_criteria modes. The subject passes if score >= threshold. Ignored for pass_fail mode (the judge's binary decision is used directly). Valid range: 0.0 to 1.0. Default: 0.5."),on_fail:external_exports.string().optional().describe("Policy applied when the subject fails evaluation. Default: EVAL_FAIL_RAISE (task fails with evaluation error). Allowed values: EVAL_FAIL_RAISE, EVAL_FAIL_BRANCH, EVAL_FAIL_WARN."),fallback_task:external_exports.string().optional().describe("Target task to branch to when on_fail is EVAL_FAIL_BRANCH. Must reference a valid task name in the same workflow. Only meaningful when on_fail is EVAL_FAIL_BRANCH; ignored otherwise."),system_prompt:external_exports.string().optional().describe("Optional custom system prompt override for the judge LLM. When set, replaces the auto-generated judge system prompt entirely. Use only when the default judge prompt template does not fit your needs. When empty, the runtime constructs a judge-appropriate system prompt from the rubric, scoring_mode, and criteria."),criteria:external_exports.array(external_exports.lazy(()=>EvalCriterionInputSchema)).optional().describe("Evaluation criteria for multi_criteria mode. Required when scoring_mode is EVAL_MULTI_CRITERIA; ignored otherwise. Each criterion is scored independently, and the overall score is the weighted average (uniform if all weights are equal or zero)."),max_cost_micros:external_exports.union([external_exports.number(),external_exports.string()]).optional().describe("Per-task cost cap in micro-USD (1 USD = 1,000,000 micros). When set, the runtime terminates this eval call if its cost exceeds this limit, independent of the workflow-level budget. Optional \u2014 when 0, no per-task cost limit is enforced. @since T05 (Workflow-Level Budget Primitives)")}),ForTaskConfigInputSchema=external_exports.lazy(()=>external_exports.object({each:external_exports.string().describe("Variable name for each item in the iteration. Accessible via ${ $data.item } in expressions."),in:external_exports.string().describe("Expression evaluating to the collection to iterate over. Example: '${ $data.items }' or '${ [1, 2, 3] }'"),do:external_exports.array(external_exports.lazy(()=>WorkflowTaskInputSchema)).optional().describe("Tasks to execute for each iteration. Loop variables available: ${ $data.item }, ${ $data.index }"),max_parallelism:external_exports.number().optional().describe("Maximum number of iterations to execute concurrently. 0 (default): sequential execution \u2014 iterations run one at a time in input order. This preserves pre-T17 behavior. 1: effectively sequential (one at a time, but uses the parallel execution path \u2014 useful for testing). N > 1: up to N iterations run concurrently using Temporal workflow goroutines with a semaphore-based concurrency limiter. Results are always reassembled in original input order regardless of completion order. @since T17 (Advanced Agentic Orchestration)"),batch_size:external_exports.number().optional().describe("Number of items to process in each batch before moving to the next. 0 (default): no batching \u2014 all items are available for parallel execution (up to max_parallelism concurrent). N > 0: items are chunked into groups of N. Each chunk is fully processed before the next chunk begins. Within each chunk, up to max_parallelism iterations run concurrently. Only meaningful when max_parallelism > 0; ignored in sequential mode. @since T17 (Advanced Agentic Orchestration)"),on_error:external_exports.string().optional().describe("Policy for handling individual iteration failures. Default: FOR_EACH_FAIL_FAST (stop on first error). Only meaningful when max_parallelism > 0; in sequential mode, any failure stops the loop regardless of this setting (pre-T17 behavior). @since T17 (Advanced Agentic Orchestration) Allowed values: FOR_EACH_FAIL_FAST, FOR_EACH_CONTINUE, FOR_EACH_SKIP.")})),ForkBranchInputSchema=external_exports.lazy(()=>external_exports.object({name:external_exports.string().describe("Branch name/identifier."),do:external_exports.array(external_exports.lazy(()=>WorkflowTaskInputSchema)).optional().describe("Tasks to execute in this branch.")})),ForkTaskConfigInputSchema=external_exports.lazy(()=>external_exports.object({branches:external_exports.array(external_exports.lazy(()=>ForkBranchInputSchema)).optional().describe("Branches to execute in parallel (at least 2 required)."),compete:external_exports.boolean().optional().describe("If true, first branch to complete wins (race mode). If false, all branches must complete (default).")})),GrpcCallTaskConfigInputSchema=external_exports.object({service:external_exports.string().describe("Fully qualified service name. Example: 'com.example.UserService'"),method:external_exports.string().describe("Method name to call. Example: 'GetUser'"),request:external_exports.record(external_exports.unknown()).optional().describe("Request message (optional). Can be any JSON structure matching the proto schema. Supports expressions in string values.")}),HttpEndpointInputSchema=external_exports.object({uri:external_exports.string().describe("URI of the endpoint. Can contain expressions: 'https://api.example.com/${.resource}'")}),HttpCallTaskConfigInputSchema=external_exports.object({method:external_exports.string().describe("HTTP method (GET, POST, PUT, DELETE, PATCH). Allowed values: GET, POST, PUT, DELETE, PATCH."),endpoint:external_exports.lazy(()=>HttpEndpointInputSchema).describe("HTTP endpoint configuration."),headers:external_exports.record(external_exports.string()).optional().describe("HTTP headers (optional). Values can contain expressions: 'Bearer ${TOKEN}'"),body:external_exports.record(external_exports.unknown()).optional().describe("Request body (optional). Can be any JSON structure. Supports expressions in string values."),timeout_seconds:external_exports.number().optional().describe("Request timeout in seconds. Max: 300 (5 minutes). Optional \u2014 unset (0) leaves the request bounded by the runner's activity timeout. When set, the runner aborts the request at this budget and fails the task with HTTP_CALL_TIMEOUT (non-retryable \u2014 catchable with try/catch); the activity timeout widens to fit (#686). Unset (0) is valid: proto3 implicit presence makes an omitted field indistinguishable from 0, so the range rule must not fire on it (#673).")}),HumanInputOutcomeInputSchema=external_exports.object({name:external_exports.string().describe("Outcome identifier used in task output and routing. Examples: 'approve', 'deny', 'needs_revision', 'escalate', 'defer' Must be unique within the outcomes list."),label:external_exports.string().optional().describe("Human-readable label for the button/action in the approval UI. When empty, the UI displays the capitalized name. Examples: 'Approve Escalation', 'Reject \u2014 Not Customer-Impacting'"),then:external_exports.string().optional().describe("Task to branch to when this outcome is selected. Must reference a valid task name in the same workflow. When empty, the workflow continues to the next task in sequence.")}),HumanInputTaskConfigInputSchema=external_exports.object({prompt:external_exports.string().describe("Message shown to the reviewer explaining what needs approval or input. Supports ${ } expression interpolation for injecting workflow context. Example: 'Approve escalation for ticket ${ $context.ticket.id }?'"),form_schema:external_exports.record(external_exports.unknown()).optional().describe("JSON Schema defining the input form rendered to the reviewer. When set, the approval UI renders a typed form based on this schema. The reviewer's form response is validated against the schema before the task completes, and the validated data appears in the task output under the 'form_data' key. When not set, the reviewer sees only the outcome buttons (approve/deny or custom outcomes) without a data entry form. Uses the same google.protobuf.Struct + JSON Schema pattern as AgentCallOutputContract.schema and LlmCallTaskConfig.response_schema."),outcomes:external_exports.array(external_exports.lazy(()=>HumanInputOutcomeInputSchema)).optional().describe("Named outcomes that the reviewer can select. Each outcome represents a decision the reviewer can make, with optional routing to a different downstream task. This enables rich branching beyond binary approve/deny. When empty, the task defaults to binary behavior: - 'approve': task completes, workflow continues to next task - 'deny': task fails (enters try_catch or EXECUTION_FAILED) When custom outcomes are defined, the first outcome is used as the default for HUMAN_INPUT_TIMEOUT_APPROVE, and the last outcome is used as the default for HUMAN_INPUT_TIMEOUT_DENY."),approvers:external_exports.array(external_exports.string()).optional().describe("Approver identifiers \u2014 who is allowed to respond to this task. Supports user IDs, team slugs, and role names. Format examples: - 'user:jane@acme.com' \u2014 specific user - 'team:engineering-leads' \u2014 any member of the team - 'role:content-admin' \u2014 any user with the role When empty, any authenticated user can respond. Resolution of these identifiers is a runtime concern (T13)."),timeout:external_exports.number().optional().describe("Timeout in seconds before the on_timeout policy applies. Default: 0 (no timeout \u2014 the task waits indefinitely). Max: 2592000 (30 days). A timeout of 0 means the workflow will wait until a human responds. For production workflows, setting a timeout with an appropriate on_timeout policy is strongly recommended."),on_timeout:external_exports.string().optional().describe("Policy applied when the timeout expires without a response. Only meaningful when timeout > 0; ignored when timeout is 0. Default: HUMAN_INPUT_TIMEOUT_FAIL (task fails with timeout error). Allowed values: HUMAN_INPUT_TIMEOUT_FAIL, HUMAN_INPUT_TIMEOUT_APPROVE, HUMAN_INPUT_TIMEOUT_DENY, HUMAN_INPUT_TIMEOUT_ESCALATE."),notification_channels:external_exports.array(external_exports.string()).optional().describe("Channel identifiers for sending approval request notifications. When the task starts, the runtime sends notifications through these channels to alert potential approvers. Format examples: - 'slack:#approvals' \u2014 Slack channel - 'email:ops@acme.com' \u2014 email address - 'teams:#incident-response' \u2014 Microsoft Teams channel The format and routing of notifications is a runtime concern (T13). The proto carries the identifiers; the runtime resolves them to actual notification providers configured in the workflow instance's environment."),payload:external_exports.unknown().optional().describe("Structured material for the reviewer to examine before deciding. Supports ${ } expression interpolation: the whole value can be a single expression string ('${ $context.draft_revision }') or an inline object/array whose nested strings carry embedded expressions. The runtime resolves expressions when the gate activates and attaches the resolved payload to the approval_requested event, so the approval record is permanently bound to exactly what the reviewer saw. Distinct from prompt (the instruction to the reviewer) and form_schema (the shape of the reviewer's response): payload is the thing under review \u2014 an article diff, a proposed record set, a generated plan."),ui_hint:external_exports.string().optional().describe("Hint identifying which UI should present the payload. A plain discriminator string (e.g. 'article-diff', 'infra-proposal') that embedding applications match against their registered review renderers. When no renderer is registered for the hint \u2014 or the gate is viewed from a surface without custom renderers (CLI, plain console) \u2014 the payload is shown as structured data by the built-in approval card, so workflows stay portable across surfaces.")}),SignalInputSchema=external_exports.object({id:external_exports.string().describe("Signal identifier."),type:external_exports.string().describe("Signal type: 'signal', 'query', or 'update'. Allowed values: signal, query, update.")}),ListenToInputSchema=external_exports.object({mode:external_exports.string().describe("Listening mode: - 'one': Wait for any one signal - 'all': Wait for all signals Allowed values: one, all."),signals:external_exports.array(external_exports.lazy(()=>SignalInputSchema)).optional().describe("Signals to listen for.")}),ListenTaskConfigInputSchema=external_exports.object({to:external_exports.lazy(()=>ListenToInputSchema).describe("Signal listening configuration.")}),LlmCallTaskConfigInputSchema=external_exports.object({model:external_exports.string().describe("Model reference resolved via the Stigmer model registry. Examples: 'gpt-4o', 'gpt-4o-mini', 'claude-sonnet-4-5', 'claude-haiku-3-5' Required field."),system_prompt:external_exports.string().optional().describe("System prompt that sets the LLM's role and constraints. Supports ${ } expression interpolation for dynamic system prompts. Optional \u2014 omit for tasks where the user prompt is self-contained."),prompt:external_exports.string().describe("User prompt / instruction sent to the LLM. Supports ${ } expression interpolation for injecting workflow context. Example: 'Classify this ticket: ${ $context.ticket.description }' Required field."),response_schema:external_exports.record(external_exports.unknown()).optional().describe("JSON Schema for structured output. When set, the runner requests structured output from the provider (e.g., OpenAI's response_format, Anthropic's tool_use extraction) and validates the response against this schema. Uses the same google.protobuf.Struct + JSON Schema pattern as AgentCallOutputContract.schema for consistency across the workflow domain. When not set, the task output is the LLM's raw text response."),temperature:external_exports.number().optional().describe("Sampling temperature (0.0 to 2.0). Lower = more deterministic, higher = more creative. Range is 0.0-2.0 to accommodate all major providers (OpenAI supports up to 2.0; others clamp to their supported range at runtime). Optional \u2014 uses the provider's default when not set."),max_tokens:external_exports.number().optional().describe("Maximum tokens in the LLM response. Optional \u2014 uses the provider's default when not set. Unset (0) is valid: proto3 implicit presence makes an omitted field indistinguishable from 0, so the range rule must not fire on it (#673)."),timeout:external_exports.number().optional().describe("Timeout for the LLM call in seconds. Max: 600 (10 minutes). Optional \u2014 unset (0) leaves the call bounded by the runner's activity timeout. When set, the runner bounds the provider request at this budget and a breach fails the task with LLM_TIMEOUT (non-retryable \u2014 catchable with try/catch); the activity timeout widens to fit (#686). Unset (0) is valid: proto3 implicit presence makes an omitted field indistinguishable from 0, so the range rule must not fire on it (#673)."),on_invalid:external_exports.string().optional().describe("Policy when the LLM response fails schema validation. Only meaningful when response_schema is set; ignored otherwise. Default: ON_INVALID_FAIL (task fails immediately). Allowed values: ON_INVALID_FAIL, ON_INVALID_RETRY, ON_INVALID_FALLBACK."),max_retries:external_exports.number().optional().describe("Maximum schema-validation retry attempts when on_invalid is ON_INVALID_RETRY. Each retry re-prompts the LLM with the validation errors and expected schema, giving it an opportunity to self-correct. Only meaningful when on_invalid is ON_INVALID_RETRY; ignored otherwise. Default when unset: 1. Valid range when set: 1-5. Unset (0) is valid: proto3 implicit presence makes an omitted field indistinguishable from 0, so the range rule must not fire on it (#673)."),fallback_task:external_exports.string().optional().describe("Target task to branch to when schema validation cannot be resolved. Used in two scenarios: 1. on_invalid is ON_INVALID_RETRY and all retries are exhausted 2. on_invalid is ON_INVALID_FALLBACK (immediate branch, no retry) Must reference a valid task name in the same workflow. When empty and retries are exhausted, the task fails."),max_cost_micros:external_exports.union([external_exports.number(),external_exports.string()]).optional().describe("Per-task cost cap in micro-USD (1 USD = 1,000,000 micros). When set, the runtime terminates this specific LLM call if its cost exceeds this limit, independent of the workflow-level budget. The runtime checks both: per-task limit first, then workflow remaining budget. Optional \u2014 when 0, no per-task cost limit is enforced. @since T05 (Workflow-Level Budget Primitives)"),max_total_tokens:external_exports.union([external_exports.number(),external_exports.string()]).optional().describe("Per-task token cap (input + output tokens combined). When set, the runtime terminates this specific LLM call if total tokens exceed this limit. Complements max_tokens (field 6), which limits only the output token count as a generation parameter. Optional \u2014 when 0, no per-task total token limit is enforced. @since T05 (Workflow-Level Budget Primitives)")}),NotificationTaskConfigInputSchema=external_exports.object({channel:external_exports.string().describe("Notification channel identifier. Determines which notification provider processes this message. Common values: 'slack', 'email', 'discord', 'teams', 'webhook' This is a string (not an enum) for extensibility \u2014 new channels can be added without proto changes. The runtime resolves the channel to its configured provider in the workflow instance's environment."),recipients:external_exports.array(external_exports.string()).optional().describe("Recipient identifiers for the notification. Format depends on the channel: - slack: '#channel-name', '@username', or Slack user IDs - email: 'user@example.com' - discord: '#channel-name', '@role' - teams: '#channel-name' - webhook: URL or webhook identifier At least one recipient is required. Individual values may contain ${ } expressions that the runtime evaluates before delivery (e.g., '${ $context.customer.email }')."),subject:external_exports.string().optional().describe("Notification subject or title. Supports ${ } expression interpolation. Used as: email subject line, Slack message title, webhook payload title. Optional \u2014 some channels (e.g., simple Slack messages) may not use it."),body:external_exports.string().describe("Notification body / message content. Supports ${ } expression interpolation. The primary content of the notification. Formatting depends on channel (e.g., Slack Markdown, HTML for email, plain text for SMS). When template is also set, body serves as the fallback content if the template cannot be resolved."),template:external_exports.string().optional().describe("Named template reference for rendering the notification. When set, the runtime looks up this template in the workflow instance's environment and uses it for rendering, with the workflow context as template data. The body field is used as fallback if the template cannot be resolved. Examples: 'incident-alert', 'order-confirmation', 'approval-request' Template resolution and rendering is a runtime concern (T13)."),metadata:external_exports.record(external_exports.string()).optional().describe("Channel-specific metadata as key-value pairs. Provides additional configuration that varies by notification channel: - slack: {'thread_ts': '...', 'unfurl_links': 'false'} - email: {'priority': 'high', 'reply_to': '...', 'cc': '...'} - webhook: {'method': 'POST', 'content_type': 'application/json'} Values may contain ${ } expressions that the runtime evaluates before delivery.")}),RaiseTaskConfigInputSchema=external_exports.object({error:external_exports.string().describe("Error type/name."),message:external_exports.string().optional().describe("Error message. Can contain expressions: '${ .errorMessage }' Optional \u2014 when omitted, the raised error carries only the error type/name. (The runtime maps this to the problem-details 'detail' field only when present; requiring it was contract fiction, #685.)")}),RunTaskConfigInputSchema=external_exports.object({workflow:external_exports.string().describe("Sub-workflow name/identifier to execute."),input:external_exports.record(external_exports.unknown()).optional().describe("Sub-workflow input (optional). Can be any JSON structure.")}),SetTaskConfigInputSchema=external_exports.object({variables:external_exports.record(external_exports.string()).describe("Variables to set in workflow state. Keys are variable names, values can be literals or expressions. Expressions use ${...} syntax, e.g., '${.a + .b}' or '${now}'")}),SwitchCaseInputSchema=external_exports.object({name:external_exports.string().describe("Case name/identifier."),when:external_exports.string().optional().describe("Condition expression (optional). If empty, this is the default case. Example: '${ $context.value > 5 }'"),then:external_exports.string().describe("Target task name to execute if condition matches.")}),SwitchTaskConfigInputSchema=external_exports.object({cases:external_exports.array(external_exports.lazy(()=>SwitchCaseInputSchema)).optional().describe("List of switch cases (at least one required). Cases are evaluated in order. First matching case executes. If no 'when' is specified, the case acts as default.")}),TransformTaskConfigInputSchema=external_exports.object({engine:external_exports.string().describe("Transformation engine to use. Required \u2014 must be explicitly set (not UNSPECIFIED). Allowed values: TRANSFORM_ENGINE_JQ, TRANSFORM_ENGINE_JSONATA, TRANSFORM_ENGINE_TEMPLATE."),expression:external_exports.string().describe("Transformation expression in the chosen engine's syntax. For JQ: a JQ filter expression (e.g., '{name: .full_name}') For JSONata: a JSONata expression (e.g., '{'name': full_name}') For TEMPLATE: a Go text/template string with {{ }} placeholders Required field."),input:external_exports.string().optional().describe("Expression selecting the input data for the transformation. Supports ${ } expression interpolation. When omitted, the entire workflow context is used as input. Example: '${ $context.triage }' to transform just the triage output.")}),CatchBlockInputSchema=external_exports.lazy(()=>external_exports.object({as:external_exports.string().optional().describe("Variable name to store the error (optional). Accessible via ${ .error } in catch tasks."),do:external_exports.array(external_exports.lazy(()=>WorkflowTaskInputSchema)).optional().describe("Tasks to execute when error is caught."),compensate:external_exports.boolean().optional().describe("Whether to run compensation tasks for already-completed try tasks before executing the catch do block. When true, the runtime walks the compensation stack (completed tasks that declared a 'compensate' block) in reverse order and executes each task's compensation actions. After all compensations complete (or fail), the catch 'do' block runs as normal. Compensation failures do not prevent the catch block from running. They are logged and included in the task output for diagnostics. Default: false (no compensation \u2014 preserves pre-T17 behavior). @since T17 (Advanced Agentic Orchestration)")})),TryTaskConfigInputSchema=external_exports.lazy(()=>external_exports.object({try:external_exports.array(external_exports.lazy(()=>WorkflowTaskInputSchema)).optional().describe("Tasks to attempt (at least one required). If any task fails, execution jumps to catch block."),catch:external_exports.lazy(()=>CatchBlockInputSchema).optional().describe("Catch block for error handling (optional). If not provided, errors propagate to parent.")})),ValidationRuleInputSchema=external_exports.object({name:external_exports.string().describe("Rule identifier for error reporting and debugging. Appears in validation error output so operators can identify which specific rule failed. Examples: 'critical_needs_rationale', 'customer_impact_requires_high_severity'"),expression:external_exports.string().describe("Boolean expression that must evaluate to true for the rule to pass. Supports ${ } expression interpolation. The expression receives the validate task's input data as its context. Example: '${ .severity != 'critical' || (.rationale != null && .rationale != '') }'"),message:external_exports.string().optional().describe("Error message included in validation output when the rule fails. Supports ${ } expression interpolation for dynamic error messages. When empty, a generic message is generated from the rule name. Example: 'Critical severity requires a rationale'")}),ValidateTaskConfigInputSchema=external_exports.object({input:external_exports.string().describe("Expression selecting the data to validate. Supports ${ } expression interpolation. Example: '${ $context.triage }' to validate the triage task's output."),schema:external_exports.record(external_exports.unknown()).optional().describe("JSON Schema to validate the input data against. Standard JSON Schema (draft 2020-12 or compatible). The runtime validates the input data against this schema and reports detailed errors for any constraint violations. Uses the same google.protobuf.Struct + JSON Schema pattern as AgentCallOutputContract.schema, LlmCallTaskConfig.response_schema, and HumanInputTaskConfig.form_schema. At least one of schema or rules must be set."),rules:external_exports.array(external_exports.lazy(()=>ValidationRuleInputSchema)).optional().describe("Business rules to evaluate against the input data. Each rule is a boolean expression that must evaluate to true. Rules complement schema validation by expressing constraints that JSON Schema cannot: cross-field dependencies, conditional requirements, and domain-specific invariants. At least one of schema or rules must be set."),on_fail:external_exports.string().optional().describe("Policy applied when validation fails. Default: VALIDATION_FAIL_RAISE (task fails with validation error). Allowed values: VALIDATION_FAIL_RAISE, VALIDATION_FAIL_BRANCH, VALIDATION_FAIL_WARN."),fallback_task:external_exports.string().optional().describe("Target task to branch to when on_fail is VALIDATION_FAIL_BRANCH. Must reference a valid task name in the same workflow. Only meaningful when on_fail is VALIDATION_FAIL_BRANCH; ignored otherwise. When on_fail is BRANCH and fallback_task is empty, the task fails.")}),DurationInputSchema=external_exports.object({days:external_exports.number().optional().describe("Number of days to wait (24 hours each)."),hours:external_exports.number().optional().describe("Number of hours to wait."),minutes:external_exports.number().optional().describe("Number of minutes to wait."),seconds:external_exports.number().optional().describe("Number of seconds to wait."),milliseconds:external_exports.number().optional().describe("Number of milliseconds to wait.")}),WaitTaskConfigInputSchema=external_exports.object({duration:external_exports.lazy(()=>DurationInputSchema).optional().describe("Relative duration to wait from now. Use this when you want to wait for a specific amount of time regardless of when the workflow reaches this task. Example: { days: 7 } = wait 1 week from now"),until:external_exports.string().optional().describe("Absolute timestamp to wait until. Use this when you want to wait until a specific point in time. If the timestamp is in the past, the task completes immediately. Example: '2026-03-01T09:00:00Z' = wait until March 1st, 2026 at 9am UTC")}),ExportInputSchema=external_exports.object({as:external_exports.string().optional().describe("Expression defining how to export output using ${...} syntax.")}),FlowControlInputSchema=external_exports.object({then:external_exports.string().optional().describe("Target task name or 'end' to terminate workflow.")}),WorkflowTaskInputSchema=external_exports.lazy(()=>external_exports.object({name:external_exports.string().optional().describe("Task name/identifier (must be unique within workflow). Must be a valid C-style identifier: starts with a letter or underscore, followed by letters, digits, or underscores."),kind:external_exports.string().describe("Task type. Set the matching config field (e.g. kind='http_call' -> populate http_call). Allowed values: set_vars, http_call, grpc_call, activity_call, switch_case, for_each, fork, try_catch, listen, wait, raise_error, run_workflow, agent_call, llm_call, transform, human_input, validate, emit_event, notification, eval."),agent_call:external_exports.lazy(()=>AgentCallTaskConfigInputSchema).optional().describe("Required when kind='agent_call'. AgentCallTaskConfig defines the configuration for agent_call tasks that invoke AI agents."),activity_call:external_exports.lazy(()=>CallActivityTaskConfigInputSchema).optional().describe("Required when kind='activity_call'. CallActivityTaskConfig defines the configuration for activity_call tasks that execute activities."),emit_event:external_exports.lazy(()=>EmitEventTaskConfigInputSchema).optional().describe("Required when kind='emit_event'. EmitEventTaskConfig defines the configuration for emit_event tasks that publish CloudEvents to external consumers, other workflows, audit trails, and metrics systems."),eval:external_exports.lazy(()=>EvalTaskConfigInputSchema).optional().describe("Required when kind='eval'. EvalTaskConfig defines the configuration for eval tasks that use an LLM judge to assess the semantic quality of workflow data."),for_each:external_exports.lazy(()=>ForTaskConfigInputSchema).optional().describe("Required when kind='for_each'. ForTaskConfig defines the configuration for for_each tasks that iterate over collections."),fork:external_exports.lazy(()=>ForkTaskConfigInputSchema).optional().describe("Required when kind='fork'. ForkTaskConfig defines the configuration for fork tasks that execute branches in parallel."),grpc_call:external_exports.lazy(()=>GrpcCallTaskConfigInputSchema).optional().describe("Required when kind='grpc_call'. GrpcCallTaskConfig defines the configuration for grpc_call tasks that make gRPC requests."),http_call:external_exports.lazy(()=>HttpCallTaskConfigInputSchema).optional().describe("Required when kind='http_call'. HttpCallTaskConfig defines the configuration for http_call tasks that make HTTP requests."),human_input:external_exports.lazy(()=>HumanInputTaskConfigInputSchema).optional().describe("Required when kind='human_input'. HumanInputTaskConfig defines the configuration for human_input tasks that pause workflow execution to collect typed input or approval from a human reviewer, then resume based on the reviewer's response."),listen:external_exports.lazy(()=>ListenTaskConfigInputSchema).optional().describe("Required when kind='listen'. ListenTaskConfig defines the configuration for listen tasks that wait for external signals."),llm_call:external_exports.lazy(()=>LlmCallTaskConfigInputSchema).optional().describe("Required when kind='llm_call'. LlmCallTaskConfig defines the configuration for llm_call tasks that make direct LLM API calls without the overhead of a full agent invocation."),notification:external_exports.lazy(()=>NotificationTaskConfigInputSchema).optional().describe("Required when kind='notification'. NotificationTaskConfig defines the configuration for notification tasks that send messages to humans through channels like Slack, email, Discord, Microsoft Teams, or webhooks."),raise_error:external_exports.lazy(()=>RaiseTaskConfigInputSchema).optional().describe("Required when kind='raise_error'. RaiseTaskConfig defines the configuration for raise_error tasks that raise errors."),run_workflow:external_exports.lazy(()=>RunTaskConfigInputSchema).optional().describe("Required when kind='run_workflow'. RunTaskConfig defines the configuration for run_workflow tasks that execute sub-workflows. The run_workflow kind is not supported yet: a Workflow that contains one is refused when it is saved, because nothing resolves the child name to a Workflow the platform can run."),set_vars:external_exports.lazy(()=>SetTaskConfigInputSchema).optional().describe("Required when kind='set_vars'. SetTaskConfig defines the configuration for set_vars tasks that assign variables in workflow state."),switch_case:external_exports.lazy(()=>SwitchTaskConfigInputSchema).optional().describe("Required when kind='switch_case'. SwitchTaskConfig defines the configuration for switch_case tasks that branch conditionally."),transform:external_exports.lazy(()=>TransformTaskConfigInputSchema).optional().describe("Required when kind='transform'. TransformTaskConfig defines the configuration for transform tasks that perform deterministic data transformation without LLM calls."),try_catch:external_exports.lazy(()=>TryTaskConfigInputSchema).optional().describe("Required when kind='try_catch'. TryTaskConfig defines the configuration for try_catch tasks that handle errors."),validate:external_exports.lazy(()=>ValidateTaskConfigInputSchema).optional().describe("Required when kind='validate'. ValidateTaskConfig defines the configuration for validate tasks that perform explicit schema and business-rule validation on workflow data."),wait:external_exports.lazy(()=>WaitTaskConfigInputSchema).optional().describe("Required when kind='wait'. WaitTaskConfig defines the configuration for wait tasks that pause workflow execution. Supports both relative durations and absolute timestamps."),export:external_exports.lazy(()=>ExportInputSchema).optional().describe("Export configuration (how to save task output to context). Optional - if not set, output is not saved."),flow:external_exports.lazy(()=>FlowControlInputSchema).optional().describe("Flow control (which task executes next). Optional - if not set, continues to next task in sequence."),compensate:external_exports.array(external_exports.lazy(()=>WorkflowTaskInputSchema)).optional().describe("Compensation tasks to execute if this task needs to be 'undone.'")})),EnvVarDeclarationInputSchema3=external_exports.object({is_secret:external_exports.boolean().optional().describe("Whether the resolved value should be treated as a secret."),description:external_exports.string().optional().describe("Human-readable description shown in the UI credential form. Should explain what the variable is used for and where to obtain it."),optional:external_exports.boolean().optional().describe("Whether this variable is optional.")}),WorkflowBudgetInputSchema=external_exports.object({max_cost_micros:external_exports.union([external_exports.number(),external_exports.string()]).optional().describe("Maximum total cost for this workflow execution in micro-USD. 1 USD = 1,000,000 micros. Example: 2000000 = $2.00. When exceeded, the on_exceeded policy is applied. Optional \u2014 when 0, no cost limit is enforced."),max_total_tokens:external_exports.union([external_exports.number(),external_exports.string()]).optional().describe("Maximum total tokens (input + output) across all LLM/agent tasks. Optional \u2014 when 0, no token limit is enforced."),max_duration_seconds:external_exports.number().optional().describe("Maximum wall-clock duration for the entire workflow execution in seconds. Optional \u2014 when 0, no duration limit is enforced (Temporal's own workflow execution timeout still applies)."),on_exceeded:external_exports.string().optional().describe("Policy when any budget limit is exceeded. Allowed values: budget_exceeded_terminate, budget_exceeded_human_review, budget_exceeded_warn.")});function workflowInputToProto(input){let slug=input.slug&&input.slug.length>0?input.slug:generateSlug(input.name),spec=create(WorkflowSpecSchema);if(input.description!==void 0&&(spec.description=input.description),input.document!==void 0&&(spec.document=workflowDocumentInputToProto(input.document)),input.tasks!==void 0&&(spec.tasks=input.tasks.map(workflowTaskInputToProto)),input.env!==void 0)for(let[k,v]of Object.entries(input.env))spec.env[k]=envVarDeclarationInputToProto3(v);return input.budget!==void 0&&(spec.budget=workflowBudgetInputToProto(input.budget)),Object.assign(create(WorkflowSchema),{apiVersion:"agentic.stigmer.ai/v1",kind:"Workflow",metadata:Object.assign(create(ApiResourceMetadataSchema),{name:input.name,slug,org:input.org,...input.visibility!==void 0&&{visibility:enumFromString(ApiResourceVisibility,input.visibility)},...input.labels!==void 0&&{labels:input.labels},...input.tags!==void 0&&{tags:input.tags}}),spec})}function workflowDocumentInputToProto(input){let result=create(WorkflowDocumentSchema);return input.dsl!==void 0&&(result.dsl=input.dsl),input.namespace!==void 0&&(result.namespace=input.namespace),input.name!==void 0&&(result.name=input.name),input.version!==void 0&&(result.version=input.version),input.description!==void 0&&(result.description=input.description),result}function runConfigInputToProto(input){let result=create(RunConfigSchema);return input.model_name!==void 0&&(result.modelName=input.model_name),input.max_cost_usd!==void 0&&(result.maxCostUsd=input.max_cost_usd),input.max_tool_rounds!==void 0&&(result.maxToolRounds=input.max_tool_rounds),result.serviceTier=enumFromString(ServiceTier,input.service_tier),result.thinkingMode=enumFromString(ThinkingMode,input.thinking_mode),result}function agentCallOutputContractInputToProto(input){let result=create(AgentCallOutputContractSchema);return input.schema!==void 0&&(result.schema=input.schema),result.onInvalid=enumFromString(OnInvalidOutputPolicy,input.on_invalid),input.max_retries!==void 0&&(result.maxRetries=input.max_retries),input.fallback_task!==void 0&&(result.fallbackTask=input.fallback_task),result}function gitRepoSourceInputToProto(input){let result=create(GitRepoSourceSchema);return input.url!==void 0&&(result.url=input.url),input.branch!==void 0&&(result.branch=input.branch),input.commit!==void 0&&(result.commit=input.commit),input.depth!==void 0&&(result.depth=input.depth),result.writeBackMode=enumFromString(GitWriteBackMode,input.write_back_mode),result}function localPathSourceInputToProto(input){let result=create(LocalPathSourceSchema);return input.path!==void 0&&(result.path=input.path),result}function workspaceSourceInputToProto(input){let result=create(WorkspaceSourceSchema);return input.git_repo!==void 0&&(result.source={case:"gitRepo",value:gitRepoSourceInputToProto(input.git_repo)}),input.local_path!==void 0&&(result.source={case:"localPath",value:localPathSourceInputToProto(input.local_path)}),result}function workspaceEntryInputToProto(input){let result=create(WorkspaceEntrySchema);return input.name!==void 0&&(result.name=input.name),input.source!==void 0&&(result.source=workspaceSourceInputToProto(input.source)),result}function environmentRefInputToProto(input){return create(ApiResourceReferenceSchema,{org:input.org,slug:input.slug,kind:ApiResourceKind.environment})}function agentCallTaskConfigInputToProto(input){let result=create(AgentCallTaskConfigSchema);return input.agent!==void 0&&(result.agent=input.agent),input.message!==void 0&&(result.message=input.message),input.env!==void 0&&(result.env=input.env),input.run_config!==void 0&&(result.runConfig=runConfigInputToProto(input.run_config)),input.output!==void 0&&(result.output=agentCallOutputContractInputToProto(input.output)),result.harness=enumFromString(Harness,input.harness),input.workspace_entries!==void 0&&(result.workspaceEntries=input.workspace_entries.map(workspaceEntryInputToProto)),input.environment_refs!==void 0&&(result.environmentRefs=input.environment_refs.map(environmentRefInputToProto)),result}function callActivityTaskConfigInputToProto(input){let result=create(CallActivityTaskConfigSchema);return input.activity!==void 0&&(result.activity=input.activity),input.input!==void 0&&(result.input=input.input),result}function emitEventInputToProto(input){let result=create(EmitEventSpecSchema);return input.type!==void 0&&(result.type=input.type),input.source!==void 0&&(result.source=input.source),input.data!==void 0&&(result.data=input.data),input.subject!==void 0&&(result.subject=input.subject),result}function webhookDeliveryInputToProto(input){let result=create(WebhookDeliverySchema);return input.url!==void 0&&(result.url=input.url),input.headers!==void 0&&(result.headers=input.headers),result}function signalDeliveryInputToProto(input){let result=create(SignalDeliverySchema);return input.execution_id!==void 0&&(result.executionId=input.execution_id),input.signal_name!==void 0&&(result.signalName=input.signal_name),result}function emitDeliveryTargetInputToProto(input){let result=create(EmitDeliveryTargetSchema);return input.webhook!==void 0&&(result.target={case:"webhook",value:webhookDeliveryInputToProto(input.webhook)}),input.signal!==void 0&&(result.target={case:"signal",value:signalDeliveryInputToProto(input.signal)}),result}function emitEventTaskConfigInputToProto(input){let result=create(EmitEventTaskConfigSchema);return input.event!==void 0&&(result.event=emitEventInputToProto(input.event)),input.delivery!==void 0&&(result.delivery=input.delivery.map(emitDeliveryTargetInputToProto)),result}function evalCriterionInputToProto(input){let result=create(EvalCriterionSchema);return input.name!==void 0&&(result.name=input.name),input.description!==void 0&&(result.description=input.description),input.weight!==void 0&&(result.weight=input.weight),result}function evalTaskConfigInputToProto(input){let result=create(EvalTaskConfigSchema);return input.model!==void 0&&(result.model=input.model),input.subject!==void 0&&(result.subject=input.subject),input.rubric!==void 0&&(result.rubric=input.rubric),result.scoringMode=enumFromString(EvalScoringMode,input.scoring_mode),input.threshold!==void 0&&(result.threshold=input.threshold),result.onFail=enumFromString(EvalFailPolicy,input.on_fail),input.fallback_task!==void 0&&(result.fallbackTask=input.fallback_task),input.system_prompt!==void 0&&(result.systemPrompt=input.system_prompt),input.criteria!==void 0&&(result.criteria=input.criteria.map(evalCriterionInputToProto)),input.max_cost_micros!==void 0&&(result.maxCostMicros=BigInt(input.max_cost_micros)),result}function forTaskConfigInputToProto(input){let result=create(ForTaskConfigSchema);return input.each!==void 0&&(result.each=input.each),input.in!==void 0&&(result.in=input.in),input.do!==void 0&&(result.do=input.do.map(workflowTaskInputToProto)),input.max_parallelism!==void 0&&(result.maxParallelism=input.max_parallelism),input.batch_size!==void 0&&(result.batchSize=input.batch_size),result.onError=enumFromString(ForEachErrorPolicy,input.on_error),result}function forkBranchInputToProto(input){let result=create(ForkBranchSchema);return input.name!==void 0&&(result.name=input.name),input.do!==void 0&&(result.do=input.do.map(workflowTaskInputToProto)),result}function forkTaskConfigInputToProto(input){let result=create(ForkTaskConfigSchema);return input.branches!==void 0&&(result.branches=input.branches.map(forkBranchInputToProto)),input.compete!==void 0&&(result.compete=input.compete),result}function grpcCallTaskConfigInputToProto(input){let result=create(GrpcCallTaskConfigSchema);return input.service!==void 0&&(result.service=input.service),input.method!==void 0&&(result.method=input.method),input.request!==void 0&&(result.request=input.request),result}function httpEndpointInputToProto(input){let result=create(HttpEndpointSchema);return input.uri!==void 0&&(result.uri=input.uri),result}function httpCallTaskConfigInputToProto(input){let result=create(HttpCallTaskConfigSchema);return input.method!==void 0&&(result.method=input.method),input.endpoint!==void 0&&(result.endpoint=httpEndpointInputToProto(input.endpoint)),input.headers!==void 0&&(result.headers=input.headers),input.body!==void 0&&(result.body=input.body),input.timeout_seconds!==void 0&&(result.timeoutSeconds=input.timeout_seconds),result}function humanInputOutcomeInputToProto(input){let result=create(HumanInputOutcomeSchema);return input.name!==void 0&&(result.name=input.name),input.label!==void 0&&(result.label=input.label),input.then!==void 0&&(result.then=input.then),result}function humanInputTaskConfigInputToProto(input){let result=create(HumanInputTaskConfigSchema);return input.prompt!==void 0&&(result.prompt=input.prompt),input.form_schema!==void 0&&(result.formSchema=input.form_schema),input.outcomes!==void 0&&(result.outcomes=input.outcomes.map(humanInputOutcomeInputToProto)),input.approvers!==void 0&&(result.approvers=input.approvers),input.timeout!==void 0&&(result.timeout=input.timeout),result.onTimeout=enumFromString(HumanInputTimeoutPolicy,input.on_timeout),input.notification_channels!==void 0&&(result.notificationChannels=input.notification_channels),input.payload!==void 0&&(result.payload=fromJson(ValueSchema,input.payload)),input.ui_hint!==void 0&&(result.uiHint=input.ui_hint),result}function signalInputToProto(input){let result=create(SignalSpecSchema);return input.id!==void 0&&(result.id=input.id),input.type!==void 0&&(result.type=input.type),result}function listenToInputToProto(input){let result=create(ListenToSchema);return input.mode!==void 0&&(result.mode=input.mode),input.signals!==void 0&&(result.signals=input.signals.map(signalInputToProto)),result}function listenTaskConfigInputToProto(input){let result=create(ListenTaskConfigSchema);return input.to!==void 0&&(result.to=listenToInputToProto(input.to)),result}function llmCallTaskConfigInputToProto(input){let result=create(LlmCallTaskConfigSchema);return input.model!==void 0&&(result.model=input.model),input.system_prompt!==void 0&&(result.systemPrompt=input.system_prompt),input.prompt!==void 0&&(result.prompt=input.prompt),input.response_schema!==void 0&&(result.responseSchema=input.response_schema),input.temperature!==void 0&&(result.temperature=input.temperature),input.max_tokens!==void 0&&(result.maxTokens=input.max_tokens),input.timeout!==void 0&&(result.timeout=input.timeout),result.onInvalid=enumFromString(OnInvalidOutputPolicy,input.on_invalid),input.max_retries!==void 0&&(result.maxRetries=input.max_retries),input.fallback_task!==void 0&&(result.fallbackTask=input.fallback_task),input.max_cost_micros!==void 0&&(result.maxCostMicros=BigInt(input.max_cost_micros)),input.max_total_tokens!==void 0&&(result.maxTotalTokens=BigInt(input.max_total_tokens)),result}function notificationTaskConfigInputToProto(input){let result=create(NotificationTaskConfigSchema);return input.channel!==void 0&&(result.channel=input.channel),input.recipients!==void 0&&(result.recipients=input.recipients),input.subject!==void 0&&(result.subject=input.subject),input.body!==void 0&&(result.body=input.body),input.template!==void 0&&(result.template=input.template),input.metadata!==void 0&&(result.metadata=input.metadata),result}function raiseTaskConfigInputToProto(input){let result=create(RaiseTaskConfigSchema);return input.error!==void 0&&(result.error=input.error),input.message!==void 0&&(result.message=input.message),result}function runTaskConfigInputToProto(input){let result=create(RunTaskConfigSchema);return input.workflow!==void 0&&(result.workflow=input.workflow),input.input!==void 0&&(result.input=input.input),result}function setTaskConfigInputToProto(input){let result=create(SetTaskConfigSchema);return input.variables!==void 0&&(result.variables=input.variables),result}function switchCaseInputToProto(input){let result=create(SwitchCaseSchema);return input.name!==void 0&&(result.name=input.name),input.when!==void 0&&(result.when=input.when),input.then!==void 0&&(result.then=input.then),result}function switchTaskConfigInputToProto(input){let result=create(SwitchTaskConfigSchema);return input.cases!==void 0&&(result.cases=input.cases.map(switchCaseInputToProto)),result}function transformTaskConfigInputToProto(input){let result=create(TransformTaskConfigSchema);return result.engine=enumFromString(TransformEngine,input.engine),input.expression!==void 0&&(result.expression=input.expression),input.input!==void 0&&(result.input=input.input),result}function catchBlockInputToProto(input){let result=create(CatchBlockSchema);return input.as!==void 0&&(result.as=input.as),input.do!==void 0&&(result.do=input.do.map(workflowTaskInputToProto)),input.compensate!==void 0&&(result.compensate=input.compensate),result}function tryTaskConfigInputToProto(input){let result=create(TryTaskConfigSchema);return input.try!==void 0&&(result.try=input.try.map(workflowTaskInputToProto)),input.catch!==void 0&&(result.catch=catchBlockInputToProto(input.catch)),result}function validationRuleInputToProto(input){let result=create(ValidationRuleSchema);return input.name!==void 0&&(result.name=input.name),input.expression!==void 0&&(result.expression=input.expression),input.message!==void 0&&(result.message=input.message),result}function validateTaskConfigInputToProto(input){let result=create(ValidateTaskConfigSchema);return input.input!==void 0&&(result.input=input.input),input.schema!==void 0&&(result.schema=input.schema),input.rules!==void 0&&(result.rules=input.rules.map(validationRuleInputToProto)),result.onFail=enumFromString(ValidationFailPolicy,input.on_fail),input.fallback_task!==void 0&&(result.fallbackTask=input.fallback_task),result}function durationInputToProto(input){let result=create(DurationSchema);return input.days!==void 0&&(result.days=input.days),input.hours!==void 0&&(result.hours=input.hours),input.minutes!==void 0&&(result.minutes=input.minutes),input.seconds!==void 0&&(result.seconds=input.seconds),input.milliseconds!==void 0&&(result.milliseconds=input.milliseconds),result}function waitTaskConfigInputToProto(input){let result=create(WaitTaskConfigSchema);return input.duration!==void 0&&(result.waitType={case:"duration",value:durationInputToProto(input.duration)}),input.until!==void 0&&(result.waitType={case:"until",value:toTimestamp(input.until)}),result}function exportInputToProto(input){let result=create(ExportSchema);return input.as!==void 0&&(result.as=input.as),result}function flowControlInputToProto(input){let result=create(FlowControlSchema);return input.then!==void 0&&(result.then=input.then),result}function workflowTaskInputToProto(input){let result=create(WorkflowTaskSchema);switch(input.name!==void 0&&(result.name=input.name),result.kind=enumFromString(WorkflowTaskKind,input.kind),input.export!==void 0&&(result.export=exportInputToProto(input.export)),input.flow!==void 0&&(result.flow=flowControlInputToProto(input.flow)),input.compensate!==void 0&&(result.compensate=input.compensate.map(workflowTaskInputToProto)),input.kind){case"agent_call":input.agent_call!==void 0&&(result.taskConfig=toJson(AgentCallTaskConfigSchema,agentCallTaskConfigInputToProto(input.agent_call)));break;case"activity_call":input.activity_call!==void 0&&(result.taskConfig=toJson(CallActivityTaskConfigSchema,callActivityTaskConfigInputToProto(input.activity_call)));break;case"emit_event":input.emit_event!==void 0&&(result.taskConfig=toJson(EmitEventTaskConfigSchema,emitEventTaskConfigInputToProto(input.emit_event)));break;case"eval":input.eval!==void 0&&(result.taskConfig=toJson(EvalTaskConfigSchema,evalTaskConfigInputToProto(input.eval)));break;case"for_each":input.for_each!==void 0&&(result.taskConfig=toJson(ForTaskConfigSchema,forTaskConfigInputToProto(input.for_each)));break;case"fork":input.fork!==void 0&&(result.taskConfig=toJson(ForkTaskConfigSchema,forkTaskConfigInputToProto(input.fork)));break;case"grpc_call":input.grpc_call!==void 0&&(result.taskConfig=toJson(GrpcCallTaskConfigSchema,grpcCallTaskConfigInputToProto(input.grpc_call)));break;case"http_call":input.http_call!==void 0&&(result.taskConfig=toJson(HttpCallTaskConfigSchema,httpCallTaskConfigInputToProto(input.http_call)));break;case"human_input":input.human_input!==void 0&&(result.taskConfig=toJson(HumanInputTaskConfigSchema,humanInputTaskConfigInputToProto(input.human_input)));break;case"listen":input.listen!==void 0&&(result.taskConfig=toJson(ListenTaskConfigSchema,listenTaskConfigInputToProto(input.listen)));break;case"llm_call":input.llm_call!==void 0&&(result.taskConfig=toJson(LlmCallTaskConfigSchema,llmCallTaskConfigInputToProto(input.llm_call)));break;case"notification":input.notification!==void 0&&(result.taskConfig=toJson(NotificationTaskConfigSchema,notificationTaskConfigInputToProto(input.notification)));break;case"raise_error":input.raise_error!==void 0&&(result.taskConfig=toJson(RaiseTaskConfigSchema,raiseTaskConfigInputToProto(input.raise_error)));break;case"run_workflow":input.run_workflow!==void 0&&(result.taskConfig=toJson(RunTaskConfigSchema,runTaskConfigInputToProto(input.run_workflow)));break;case"set_vars":input.set_vars!==void 0&&(result.taskConfig=toJson(SetTaskConfigSchema,setTaskConfigInputToProto(input.set_vars)));break;case"switch_case":input.switch_case!==void 0&&(result.taskConfig=toJson(SwitchTaskConfigSchema,switchTaskConfigInputToProto(input.switch_case)));break;case"transform":input.transform!==void 0&&(result.taskConfig=toJson(TransformTaskConfigSchema,transformTaskConfigInputToProto(input.transform)));break;case"try_catch":input.try_catch!==void 0&&(result.taskConfig=toJson(TryTaskConfigSchema,tryTaskConfigInputToProto(input.try_catch)));break;case"validate":input.validate!==void 0&&(result.taskConfig=toJson(ValidateTaskConfigSchema,validateTaskConfigInputToProto(input.validate)));break;case"wait":input.wait!==void 0&&(result.taskConfig=toJson(WaitTaskConfigSchema,waitTaskConfigInputToProto(input.wait)));break;default:if(input.kind!==void 0&&input.kind!=="")throw new Error(`unknown task kind: ${input.kind}`)}return result}function envVarDeclarationInputToProto3(input){let result=create(EnvVarDeclarationSchema);return input.is_secret!==void 0&&(result.isSecret=input.is_secret),input.description!==void 0&&(result.description=input.description),input.optional!==void 0&&(result.optional=input.optional),result}function workflowBudgetInputToProto(input){let result=create(WorkflowBudgetSchema);return input.max_cost_micros!==void 0&&(result.maxCostMicros=BigInt(input.max_cost_micros)),input.max_total_tokens!==void 0&&(result.maxTotalTokens=BigInt(input.max_total_tokens)),input.max_duration_seconds!==void 0&&(result.maxDurationSeconds=input.max_duration_seconds),result.onExceeded=enumFromString(BudgetExceededPolicy,input.on_exceeded),result}async function applyWorkflow(serverAddress,token,input){let workflow=workflowInputToProto(input),desc=`workflow "${workflow.metadata?.slug??""}" in org "${workflow.metadata?.org??""}"`;return withClient(WorkflowCommandController,serverAddress,token,async(client,callOptions)=>{try{let applied=await client.apply(workflow,callOptions),result=await applyDeclaredVisibility(client,callOptions,applied,workflow.metadata?.visibility??ApiResourceVisibility.api_resource_visibility_unspecified);return toProtoJson(WorkflowSchema,result)}catch(err){throw rpcError(err,desc)}})}async function deleteWorkflow(serverAddress,token,org,slug){let desc=`workflow "${slug}" in org "${org}"`;return withTransport(serverAddress,token,async(transport,callOptions)=>{let query=createClient(WorkflowQueryController,transport),id;try{id=(await query.getByReference({org,kind:ApiResourceKind.workflow,slug},callOptions)).metadata?.id??""}catch(err){throw rpcError(err,desc)}let command=createClient(WorkflowCommandController,transport);try{let deleted=await command.delete({value:id},callOptions);return toProtoJson(WorkflowSchema,deleted)}catch(err){throw rpcError(err,desc)}})}async function listWorkflowVersions(serverAddress,token,args){return withClient(WorkflowQueryController,serverAddress,token,async(client,callOptions)=>{let req={org:args.org,slug:args.slug,pageToken:args.pageToken??""};(args.pageSize??0)>0&&(req.pageSize=args.pageSize);try{let resp=await client.listVersions(req,callOptions),data=JSON.parse(toProtoJson(ListWorkflowVersionsResponseSchema,resp));if(Array.isArray(data.versions))for(let entry of data.versions)delete entry.validated_yaml;return JSON.stringify(data,null,2)}catch(err){throw rpcError(err,`versions of workflow "${args.slug}" in org "${args.org}"`)}})}async function fetchWorkflowVersion(serverAddress,token,org,slug,versionHash){let desc=`version "${versionHash}" of workflow "${slug}" in org "${org}"`;return withTransport(serverAddress,token,async(transport,callOptions)=>{let query=createClient(WorkflowQueryController,transport);try{let workflow=await query.getByReference({org,kind:ApiResourceKind.workflow,slug},callOptions),entry=await query.getVersion({workflowId:workflow.metadata?.id??"",versionHash},callOptions);return toProtoJson(WorkflowVersionEntrySchema,entry)}catch(err){throw rpcError(err,desc)}})}async function tagWorkflowVersion(serverAddress,token,args){let desc=`tag "${args.tag}" on workflow "${args.slug}" in org "${args.org}"`;return withTransport(serverAddress,token,async(transport,callOptions)=>{let query=createClient(WorkflowQueryController,transport),id;try{id=(await query.getByReference({org:args.org,kind:ApiResourceKind.workflow,slug:args.slug},callOptions)).metadata?.id??""}catch(err){throw rpcError(err,desc)}let command=createClient(WorkflowCommandController,transport);try{let workflow=await command.tagVersion({workflowId:id,versionHash:args.versionHash,tag:args.tag},callOptions);return toProtoJson(WorkflowSchema,workflow)}catch(err){throw rpcError(err,desc)}})}function registerWorkflowTools(server,target){return server.registerTool("get_workflow",{description:"Get full details of a Stigmer workflow by its org and slug. Pass 'version' (a full SHA-256 version hash from list_workflow_versions) to fetch a historical version instead \u2014 that returns the version entry with its validated YAML rather than the live workflow. Tags are not accepted here; resolve a tag to its hash via list_workflow_versions first.",inputSchema:{org:external_exports.string().describe("Organization slug that owns the workflow."),slug:external_exports.string().describe("Workflow slug \u2014 unique identifier within the org."),version:external_exports.string().optional().describe("Full 64-character SHA-256 version hash of a historical version. Omit for the live workflow.")}},(args,extra)=>textOrError(()=>{let token=resolveToken(extra,target.apiKey);return args.version!==void 0&&args.version!==""?fetchWorkflowVersion(target.serverAddress,token,args.org,args.slug,args.version):fetchWorkflow(target.serverAddress,token,args.org,args.slug)})),server.registerTool("apply_workflow",{description:"Create or update a Stigmer workflow (idempotent). Provide identity fields (name, org) and workflow configuration (document, tasks, env, etc.).",inputSchema:WorkflowInputShape},(args,extra)=>textOrError(()=>applyWorkflow(target.serverAddress,resolveToken(extra,target.apiKey),args))),server.registerTool("delete_workflow",{description:"Delete a Stigmer workflow by its org and slug. Returns the deleted workflow.",inputSchema:{org:external_exports.string().describe("Organization slug that owns the workflow."),slug:external_exports.string().describe("Workflow slug \u2014 unique identifier within the org.")}},(args,extra)=>textOrError(()=>deleteWorkflow(target.serverAddress,resolveToken(extra,target.apiKey),args.org,args.slug))),server.registerTool("list_workflow_versions",{description:"List a workflow's version history (newest first): version hash, tag, who applied it and when, and which version is current. Every apply that changes the workflow creates a new immutable version identified by its content hash. Entries omit the version YAML \u2014 fetch one version's full content with get_workflow and its hash.",inputSchema:{org:external_exports.string().describe("Organization slug that owns the workflow."),slug:external_exports.string().describe("Workflow slug \u2014 unique identifier within the org."),page_size:external_exports.number().int().optional().describe("Maximum versions per page (default 50, max 100)."),page_token:external_exports.string().optional().describe("Pagination token from a previous response's next_page_token.")}},(args,extra)=>textOrError(()=>listWorkflowVersions(target.serverAddress,resolveToken(extra,target.apiKey),{org:args.org,slug:args.slug,pageSize:args.page_size,pageToken:args.page_token}))),server.registerTool("tag_workflow_version",{description:"Assign a tag (e.g. stable, production) to a specific workflow version. Tags are mutable pointers: re-tagging with an existing name moves it from its previous version, and a version holds at most one tag. Get version hashes from list_workflow_versions. Returns the updated workflow.",inputSchema:{org:external_exports.string().describe("Organization slug that owns the workflow."),slug:external_exports.string().describe("Workflow slug \u2014 unique identifier within the org."),version:external_exports.string().describe("Full 64-character SHA-256 hash of the version to tag."),tag:external_exports.string().describe("Tag to assign: alphanumeric with dots, hyphens, or underscores (e.g. stable, v1.0).")}},(args,extra)=>textOrError(()=>tagWorkflowVersion(target.serverAddress,resolveToken(extra,target.apiKey),{org:args.org,slug:args.slug,versionHash:args.version,tag:args.tag}))),["get_workflow","apply_workflow","delete_workflow","list_workflow_versions","tag_workflow_version"]}var import_yaml=__toESM(require_dist2(),1);var acceptedTaskKinds=new Set(Object.values(WorkflowTaskKind).filter(v=>typeof v=="string"&&v!=="workflow_task_kind_unspecified"));function registerValidateWorkflowYamlTool(server,target){return server.registerTool("validate_workflow_yaml",{description:"Validate a Stigmer workflow YAML for structural and semantic correctness. Uses the same Temporal-based validation pipeline as workflow create/update. Returns validation state (VALID/INVALID/FAILED), errors, warnings, and the generated internal YAML.",inputSchema:{yaml:external_exports.string().describe("Complete Stigmer workflow YAML content to validate (apiVersion, kind, metadata, spec).")}},(args,extra)=>textOrError(()=>validateWorkflowYaml(target.serverAddress,resolveToken(extra,target.apiKey),args.yaml))),["validate_workflow_yaml"]}async function validateWorkflowYaml(serverAddress,token,yamlContent){if(yamlContent.trim()==="")throw new Error("yaml is required");let workflow;try{workflow=parseWorkflowYaml(yamlContent)}catch(err){throw new Error(`failed to parse workflow YAML: ${errMessage(err)}`)}return withClient(WorkflowCommandController,serverAddress,token,async(client,callOptions)=>{try{let validation=await client.validateSpec(workflow,callOptions);return toProtoJson(ServerlessWorkflowValidationSchema,validation)}catch(err){throw rpcError(err,"workflow validation")}})}function parseWorkflowYaml(yamlContent){let raw;try{raw=(0,import_yaml.parse)(yamlContent)}catch(err){throw new Error(`invalid YAML syntax: ${errMessage(err)}`)}if(!isObject3(raw))throw new Error("missing or invalid 'spec' field");let spec=raw.spec;if(!isObject3(spec))throw new Error("missing or invalid 'spec' field");let tasks=spec.tasks;Array.isArray(tasks)&&tasks.forEach((task,i)=>{if(!isObject3(task))return;let kind=task.kind;if(typeof kind=="string"&&kind!==""&&!acceptedTaskKinds.has(kind))throw new Error(`unknown task kind "${kind}" at tasks[${i}]`)});try{return fromJson(WorkflowSchema,raw,{ignoreUnknownFields:!0})}catch(err){throw new Error(`failed to unmarshal into Workflow proto: ${errMessage(err)}`)}}function isObject3(value){return typeof value=="object"&&value!==null&&!Array.isArray(value)}function errMessage(err){return err instanceof Error?err.message:String(err)}var SERVER_VERSION=process.env.STIGMER_MCP_VERSION||"dev",HTTP_SHUTDOWN_GRACE_MS=5e3,PROTECTED_RESOURCE_METADATA_PATH="/.well-known/oauth-protected-resource";function createServer(target){let server=new McpServer({name:"mcp-server-stigmer",version:SERVER_VERSION});return registerTools(server,target),registerResources(server,target),server}function createChannelsServer(target){let server=new McpServer({name:"mcp-server-stigmer-channels",version:SERVER_VERSION}),tools=registerChannelTools(server,target);return log.info("tools registered (channels roster)",{count:tools.length,tools}),server}function createConversationServer(target){let server=new McpServer({name:"mcp-server-stigmer-conversation",version:SERVER_VERSION}),tools=registerConversationTools(server,target);return log.info("tools registered (conversation roster)",{count:tools.length,tools}),server}function createMemoryServer(target,startupContext=loadCaptureContextFromEnv()){let server=new McpServer({name:"mcp-server-stigmer-memory",version:SERVER_VERSION}),tools=registerMemoryTools(server,target,startupContext);return log.info("tools registered (memory roster)",{count:tools.length,tools}),server}function registerTools(server,target){let tools=[...registerSearchTools(server,target),...registerAgentTools(server,target),...registerAgentExecutionTools(server,target),...registerMcpServerTools(server,target),...registerSkillTools(server,target),...registerWorkflowTools(server,target),...registerValidateWorkflowYamlTool(server,target),...registerTaskKindTools(server,target),...registerWorkflowExecutionTools(server,target),...registerExecutionControlTools(server,target),...registerEnvironmentTools(server,target)];log.info("tools registered",{count:tools.length,tools})}function registerResources(server,target){let resources=[...registerAgentResources(server,target),...registerMcpServerResources(server,target),...registerSkillResources(server,target),...registerWorkflowResources(server,target),...registerEnvironmentResources(server,target)];log.info("resources registered",{count:resources.length,resources})}async function serveStdio(server,signal){let transport=new StdioServerTransport;return await server.connect(transport),new Promise(resolve=>{let onAbort=()=>{server.close()};signal.addEventListener("abort",onAbort,{once:!0}),server.server.onclose=()=>{signal.removeEventListener("abort",onAbort),resolve()},server.server.onerror=err=>log.error("mcp protocol error",{error:err.message})})}var FULL_ROUTE="/",CHANNELS_ROUTE="/channels",CONVERSATION_ROUTE="/conversation",MEMORY_ROUTE="/memory";function routedServerFactory(target){return path=>{if(path===FULL_ROUTE)return createServer(target);if(path===CHANNELS_ROUTE)return createChannelsServer(target);if(path===CONVERSATION_ROUTE)return createConversationServer(target);if(path===MEMORY_ROUTE)return createMemoryServer(target)}}async function serveHttp(makeServer,cfg,signal){let sessions=new Map,checkReady=createReadinessCheck(cfg.stigmerServerAddress),httpServer=createHttpServer((req,res)=>{logAccess(req,res),routeRequest(req,res,sessions,makeServer,cfg,checkReady)}),addr=`:${cfg.httpPort}`;return new Promise((resolve,reject)=>{httpServer.on("error",reject),httpServer.listen(Number(cfg.httpPort),()=>{log.info("HTTP transport listening",{addr,auth_enabled:cfg.httpAuthEnabled})}),signal.addEventListener("abort",()=>{log.info("HTTP server shutting down",{grace_period_ms:HTTP_SHUTDOWN_GRACE_MS});let force=setTimeout(()=>httpServer.closeAllConnections?.(),HTTP_SHUTDOWN_GRACE_MS);httpServer.close(err=>{clearTimeout(force);for(let transport of sessions.values())transport.close();sessions.clear(),err?reject(err):resolve()})},{once:!0})})}async function serveBoth(target,cfg,signal){let linked=new AbortController,onParentAbort=()=>linked.abort();signal.addEventListener("abort",onParentAbort,{once:!0});let tasks=[serveStdio(stdioServer(target,cfg),linked.signal),serveHttp(routedServerFactory(target),cfg,linked.signal)];try{await Promise.race(tasks)}finally{linked.abort(),await Promise.allSettled(tasks),signal.removeEventListener("abort",onParentAbort)}}async function routeRequest(req,res,sessions,makeServer,cfg,checkReady){if(req.method==="GET"&&req.url==="/health"){res.writeHead(200,{"Content-Type":"application/json"}),res.end(`{"status":"ok"}
205
205
  `);return}if(req.method==="GET"&&requestPath(req)==="/ready"){let result=await checkReady();result.ready?(res.writeHead(200,{"Content-Type":"application/json"}),res.end(`{"status":"ready"}
206
206
  `)):(res.writeHead(503,{"Content-Type":"application/json"}),res.end(JSON.stringify({status:"unready",reason:result.reason})+`
207
207
  `));return}if(cfg.oauth.enabled&&requestPath(req)===PROTECTED_RESOURCE_METADATA_PATH){serveProtectedResourceMetadata(req,res,cfg);return}if(cfg.httpAuthEnabled){let token=extractBearerToken(req);if(token===""){let challenge=cfg.oauth.enabled?{"WWW-Authenticate":bearerChallenge(cfg)}:void 0;jsonRpcError(res,401,-32e3,"missing or malformed Authorization: Bearer header",challenge);return}req.auth={token,clientId:"stigmer-mcp-passthrough",scopes:[]}}let path=requestPath(req),sessionId=headerValue2(req,"mcp-session-id");if(sessionId!==void 0){let transport2=sessions.get(sessionId);if(transport2===void 0){jsonRpcError(res,404,-32001,"Session not found: unknown or expired MCP session");return}await transport2.handleRequest(req,res);return}if(req.method!=="POST"){jsonRpcError(res,400,-32e3,"Bad Request: Mcp-Session-Id header is required");return}let body=await readJsonBody(req);if(!isInitializeRequest(body)){jsonRpcError(res,400,-32e3,"Bad Request: an initialize request is required to open a session");return}let server=makeServer(path);if(server===void 0){jsonRpcError(res,404,-32e3,`unknown MCP route: ${path}`);return}let transport=new StreamableHTTPServerTransport({sessionIdGenerator:()=>randomUUID(),onsessioninitialized:id=>{sessions.set(id,transport)},onsessionclosed:id=>{sessions.delete(id)}});transport.onclose=()=>{transport.sessionId!==void 0&&sessions.delete(transport.sessionId)},await server.connect(transport),await transport.handleRequest(req,res,body)}function stdioServer(target,cfg){return cfg.roster==="channels"?createChannelsServer(target):cfg.roster==="memory"?createMemoryServer(target):createServer(target)}function jsonRpcError(res,status,code,message,headers){res.writeHead(status,{"Content-Type":"application/json",...headers}),res.end(JSON.stringify({jsonrpc:"2.0",error:{code,message},id:null}))}function headerValue2(req,name){let v=req.headers[name];return Array.isArray(v)?v[0]:v}function readJsonBody(req){return new Promise((resolve,reject)=>{let chunks=[];req.on("data",chunk=>chunks.push(chunk)),req.on("end",()=>{let raw=Buffer.concat(chunks).toString("utf8");try{resolve(raw===""?null:JSON.parse(raw))}catch(err){reject(err)}}),req.on("error",reject)})}function requestPath(req){let url=req.url??"/",q=url.indexOf("?");return q===-1?url:url.slice(0,q)}function logAccess(req,res){let start=Date.now(),requestId=randomBytes(8).toString("hex");res.on("finish",()=>{log.info("http request",{request_id:requestId,method:req.method,path:requestPath(req),status:res.statusCode,duration_ms:Date.now()-start})})}function serveProtectedResourceMetadata(req,res,cfg){if(res.setHeader("Access-Control-Allow-Origin","*"),req.method==="OPTIONS"){res.setHeader("Access-Control-Allow-Methods","GET, OPTIONS"),res.setHeader("Access-Control-Allow-Headers","*"),res.writeHead(204),res.end();return}let metadata={resource:cfg.oauth.resource,authorization_servers:cfg.oauth.authorizationServers,bearer_methods_supported:["header"],resource_name:"Stigmer MCP Server"};cfg.oauth.scopesSupported.length>0&&(metadata.scopes_supported=cfg.oauth.scopesSupported),res.writeHead(200,{"Content-Type":"application/json"}),res.end(JSON.stringify(metadata))}function bearerChallenge(cfg){let params=['realm="stigmer"',`resource_metadata="${cfg.oauth.resource.replace(/\/+$/,"")+PROTECTED_RESOURCE_METADATA_PATH}"`];return cfg.oauth.scopesSupported.length>0&&params.push(`scope="${cfg.oauth.scopesSupported.join(" ")}"`),"Bearer "+params.join(", ")}function extractBearerToken(req){let header=req.headers.authorization;if(!header)return"";let prefix="Bearer ";return header.startsWith(prefix)?header.slice(prefix.length).trim():""}function isNormalShutdown(err){if(err==null||err.name==="AbortError")return!0;let code=err.code;if(code==="EPIPE"||code==="ABORT_ERR"||code==="ECONNRESET")return!0;let message=err instanceof Error?err.message:String(err);return message.includes("EOF")||message.includes("broken pipe")}function defaultConfig(){return loadConfigFromEnv()}async function run(cfg,signal){configureLogger({level:cfg.logLevel,format:cfg.logFormat}),validateConfig(cfg),log.info("mcp-server-stigmer starting",{transport:cfg.transport});let target={serverAddress:cfg.stigmerServerAddress,apiKey:cfg.apiKey};try{switch(cfg.transport){case"stdio":await serveStdio(stdioServer(target,cfg),signal);break;case"http":await serveHttp(routedServerFactory(target),cfg,signal);break;case"both":await serveBoth(target,cfg,signal);break}}catch(err){if(!isNormalShutdown(err))throw log.error("mcp-server-stigmer stopped",{error:err instanceof Error?err.message:String(err)}),err}log.info("mcp-server-stigmer stopped")}var VALID_TRANSPORTS2=["stdio","http","both"];async function main(){let cfg=defaultConfig(),sub=process.argv[2];sub!==void 0&&(VALID_TRANSPORTS2.includes(sub)||(process.stderr.write(`unknown subcommand "${sub}" (expected stdio, http, or both)
package/gen/workflow.js CHANGED
@@ -235,7 +235,7 @@ const RaiseTaskConfigInputSchema = z.object({
235
235
  });
236
236
  const RunTaskConfigInputSchema = z.object({
237
237
  workflow: z.string().describe("Sub-workflow name/identifier to execute."),
238
- input: z.record(z.unknown()).optional().describe("Sub-workflow input (optional). Can be any JSON structure. Supports expressions in string values."),
238
+ input: z.record(z.unknown()).optional().describe("Sub-workflow input (optional). Can be any JSON structure."),
239
239
  });
240
240
  const SetTaskConfigInputSchema = z.object({
241
241
  variables: z.record(z.string()).describe("Variables to set in workflow state. Keys are variable names, values can be literals or expressions. Expressions use ${...} syntax, e.g., '${.a + .b}' or '${now}'"),
@@ -307,7 +307,7 @@ const WorkflowTaskInputSchema = z.lazy(() => z.object({
307
307
  llm_call: z.lazy(() => LlmCallTaskConfigInputSchema).optional().describe("Required when kind='llm_call'. LlmCallTaskConfig defines the configuration for llm_call tasks that make direct LLM API calls without the overhead of a full agent invocation."),
308
308
  notification: z.lazy(() => NotificationTaskConfigInputSchema).optional().describe("Required when kind='notification'. NotificationTaskConfig defines the configuration for notification tasks that send messages to humans through channels like Slack, email, Discord, Microsoft Teams, or webhooks."),
309
309
  raise_error: z.lazy(() => RaiseTaskConfigInputSchema).optional().describe("Required when kind='raise_error'. RaiseTaskConfig defines the configuration for raise_error tasks that raise errors."),
310
- run_workflow: z.lazy(() => RunTaskConfigInputSchema).optional().describe("Required when kind='run_workflow'. RunTaskConfig defines the configuration for run_workflow tasks that execute sub-workflows."),
310
+ run_workflow: z.lazy(() => RunTaskConfigInputSchema).optional().describe("Required when kind='run_workflow'. RunTaskConfig defines the configuration for run_workflow tasks that execute sub-workflows. The run_workflow kind is not supported yet: a Workflow that contains one is refused when it is saved, because nothing resolves the child name to a Workflow the platform can run."),
311
311
  set_vars: z.lazy(() => SetTaskConfigInputSchema).optional().describe("Required when kind='set_vars'. SetTaskConfig defines the configuration for set_vars tasks that assign variables in workflow state."),
312
312
  switch_case: z.lazy(() => SwitchTaskConfigInputSchema).optional().describe("Required when kind='switch_case'. SwitchTaskConfig defines the configuration for switch_case tasks that branch conditionally."),
313
313
  transform: z.lazy(() => TransformTaskConfigInputSchema).optional().describe("Required when kind='transform'. TransformTaskConfig defines the configuration for transform tasks that perform deterministic data transformation without LLM calls."),
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/gen/workflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/gen/workflow.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stigmer/mcp-server",
3
- "version": "3.34.0",
3
+ "version": "3.35.0",
4
4
  "description": "Model Context Protocol server for the Stigmer platform — exposes Stigmer agents, skills, MCP servers, and workflows as MCP tools and resources",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -35,8 +35,8 @@
35
35
  "@connectrpc/connect": "^2.0.0",
36
36
  "@connectrpc/connect-node": "^2.1.1",
37
37
  "@modelcontextprotocol/sdk": "^1.26.0",
38
- "@stigmer/protos": "3.34.0",
39
- "@stigmer/sdk": "3.34.0",
38
+ "@stigmer/protos": "3.35.0",
39
+ "@stigmer/sdk": "3.35.0",
40
40
  "yaml": "^2.8.2",
41
41
  "zod": "^3.25.0"
42
42
  }
@@ -315,7 +315,7 @@ type RaiseTaskConfigInput = z.infer<typeof RaiseTaskConfigInputSchema>;
315
315
 
316
316
  const RunTaskConfigInputSchema = z.object({
317
317
  workflow: z.string().describe("Sub-workflow name/identifier to execute."),
318
- input: z.record(z.unknown()).optional().describe("Sub-workflow input (optional). Can be any JSON structure. Supports expressions in string values."),
318
+ input: z.record(z.unknown()).optional().describe("Sub-workflow input (optional). Can be any JSON structure."),
319
319
  });
320
320
  type RunTaskConfigInput = z.infer<typeof RunTaskConfigInputSchema>;
321
321
 
@@ -447,7 +447,7 @@ const WorkflowTaskInputSchema: z.ZodType<WorkflowTaskInput> = z.lazy(() => z.obj
447
447
  llm_call: z.lazy(() => LlmCallTaskConfigInputSchema).optional().describe("Required when kind='llm_call'. LlmCallTaskConfig defines the configuration for llm_call tasks that make direct LLM API calls without the overhead of a full agent invocation."),
448
448
  notification: z.lazy(() => NotificationTaskConfigInputSchema).optional().describe("Required when kind='notification'. NotificationTaskConfig defines the configuration for notification tasks that send messages to humans through channels like Slack, email, Discord, Microsoft Teams, or webhooks."),
449
449
  raise_error: z.lazy(() => RaiseTaskConfigInputSchema).optional().describe("Required when kind='raise_error'. RaiseTaskConfig defines the configuration for raise_error tasks that raise errors."),
450
- run_workflow: z.lazy(() => RunTaskConfigInputSchema).optional().describe("Required when kind='run_workflow'. RunTaskConfig defines the configuration for run_workflow tasks that execute sub-workflows."),
450
+ run_workflow: z.lazy(() => RunTaskConfigInputSchema).optional().describe("Required when kind='run_workflow'. RunTaskConfig defines the configuration for run_workflow tasks that execute sub-workflows. The run_workflow kind is not supported yet: a Workflow that contains one is refused when it is saved, because nothing resolves the child name to a Workflow the platform can run."),
451
451
  set_vars: z.lazy(() => SetTaskConfigInputSchema).optional().describe("Required when kind='set_vars'. SetTaskConfig defines the configuration for set_vars tasks that assign variables in workflow state."),
452
452
  switch_case: z.lazy(() => SwitchTaskConfigInputSchema).optional().describe("Required when kind='switch_case'. SwitchTaskConfig defines the configuration for switch_case tasks that branch conditionally."),
453
453
  transform: z.lazy(() => TransformTaskConfigInputSchema).optional().describe("Required when kind='transform'. TransformTaskConfig defines the configuration for transform tasks that perform deterministic data transformation without LLM calls."),