@stigmer/mcp-server 3.12.5 → 3.12.6

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.
@@ -195,13 +195,13 @@ data:
195
195
  `,controller.enqueue(encoder.encode(eventData)),!0}catch(error3){return this.onerror?.(error3),!1}}handleUnsupportedRequest(){return this.onerror?.(new Error("Method not allowed.")),new Response(JSON.stringify({jsonrpc:"2.0",error:{code:-32e3,message:"Method not allowed."},id:null}),{status:405,headers:{Allow:"GET, POST, DELETE","Content-Type":"application/json"}})}async handlePostRequest(req,options){try{let acceptHeader=req.headers.get("accept");if(!acceptHeader?.includes("application/json")||!acceptHeader.includes("text/event-stream"))return this.onerror?.(new Error("Not Acceptable: Client must accept both application/json and text/event-stream")),this.createJsonErrorResponse(406,-32e3,"Not Acceptable: Client must accept both application/json and text/event-stream");let ct=req.headers.get("content-type");if(!ct||!ct.includes("application/json"))return this.onerror?.(new Error("Unsupported Media Type: Content-Type must be application/json")),this.createJsonErrorResponse(415,-32e3,"Unsupported Media Type: Content-Type must be application/json");let requestInfo={headers:Object.fromEntries(req.headers.entries()),url:new URL(req.url)},rawMessage;if(options?.parsedBody!==void 0)rawMessage=options.parsedBody;else try{rawMessage=await req.json()}catch{return this.onerror?.(new Error("Parse error: Invalid JSON")),this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON")}let messages;try{Array.isArray(rawMessage)?messages=rawMessage.map(msg=>JSONRPCMessageSchema.parse(msg)):messages=[JSONRPCMessageSchema.parse(rawMessage)]}catch{return this.onerror?.(new Error("Parse error: Invalid JSON-RPC message")),this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON-RPC message")}let isInitializationRequest=messages.some(isInitializeRequest);if(isInitializationRequest){if(this._initialized&&this.sessionId!==void 0)return this.onerror?.(new Error("Invalid Request: Server already initialized")),this.createJsonErrorResponse(400,-32600,"Invalid Request: Server already initialized");if(messages.length>1)return this.onerror?.(new Error("Invalid Request: Only one initialization request is allowed")),this.createJsonErrorResponse(400,-32600,"Invalid Request: Only one initialization request is allowed");this.sessionId=this.sessionIdGenerator?.(),this._initialized=!0,this.sessionId&&this._onsessioninitialized&&await Promise.resolve(this._onsessioninitialized(this.sessionId))}if(!isInitializationRequest){let sessionError=this.validateSession(req);if(sessionError)return sessionError;let protocolError=this.validateProtocolVersion(req);if(protocolError)return protocolError}if(!messages.some(isJSONRPCRequest)){for(let message of messages)this.onmessage?.(message,{authInfo:options?.authInfo,requestInfo});return new Response(null,{status:202})}let streamId=crypto.randomUUID(),initRequest=messages.find(m=>isInitializeRequest(m)),clientProtocolVersion=initRequest?initRequest.params.protocolVersion:req.headers.get("mcp-protocol-version")??DEFAULT_NEGOTIATED_PROTOCOL_VERSION;if(this._enableJsonResponse)return new Promise(resolve=>{this._streamMapping.set(streamId,{resolveJson:resolve,cleanup:()=>{this._streamMapping.delete(streamId)}});for(let message of messages)isJSONRPCRequest(message)&&this._requestToStreamMapping.set(message.id,streamId);for(let message of messages)this.onmessage?.(message,{authInfo:options?.authInfo,requestInfo})});let encoder=new TextEncoder,streamController,readable=new ReadableStream({start:controller=>{streamController=controller},cancel:()=>{this._streamMapping.delete(streamId)}}),headers={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"};this.sessionId!==void 0&&(headers["mcp-session-id"]=this.sessionId);for(let message of messages)isJSONRPCRequest(message)&&(this._streamMapping.set(streamId,{controller:streamController,encoder,cleanup:()=>{this._streamMapping.delete(streamId);try{streamController.close()}catch{}}}),this._requestToStreamMapping.set(message.id,streamId));await this.writePrimingEvent(streamController,encoder,streamId,clientProtocolVersion);for(let message of messages){let closeSSEStream,closeStandaloneSSEStream;isJSONRPCRequest(message)&&this._eventStore&&clientProtocolVersion>="2025-11-25"&&(closeSSEStream=()=>{this.closeSSEStream(message.id)},closeStandaloneSSEStream=()=>{this.closeStandaloneSSEStream()}),this.onmessage?.(message,{authInfo:options?.authInfo,requestInfo,closeSSEStream,closeStandaloneSSEStream})}return new Response(readable,{status:200,headers})}catch(error3){return this.onerror?.(error3),this.createJsonErrorResponse(400,-32700,"Parse error",{data:String(error3)})}}async handleDeleteRequest(req){let sessionError=this.validateSession(req);if(sessionError)return sessionError;let protocolError=this.validateProtocolVersion(req);return protocolError||(await Promise.resolve(this._onsessionclosed?.(this.sessionId)),await this.close(),new Response(null,{status:200}))}validateSession(req){if(this.sessionIdGenerator===void 0)return;if(!this._initialized)return this.onerror?.(new Error("Bad Request: Server not initialized")),this.createJsonErrorResponse(400,-32e3,"Bad Request: Server not initialized");let sessionId=req.headers.get("mcp-session-id");if(!sessionId)return this.onerror?.(new Error("Bad Request: Mcp-Session-Id header is required")),this.createJsonErrorResponse(400,-32e3,"Bad Request: Mcp-Session-Id header is required");if(sessionId!==this.sessionId)return this.onerror?.(new Error("Session not found")),this.createJsonErrorResponse(404,-32001,"Session not found")}validateProtocolVersion(req){let protocolVersion=req.headers.get("mcp-protocol-version");if(protocolVersion!==null&&!SUPPORTED_PROTOCOL_VERSIONS.includes(protocolVersion))return this.onerror?.(new Error(`Bad Request: Unsupported protocol version: ${protocolVersion} (supported versions: ${SUPPORTED_PROTOCOL_VERSIONS.join(", ")})`)),this.createJsonErrorResponse(400,-32e3,`Bad Request: Unsupported protocol version: ${protocolVersion} (supported versions: ${SUPPORTED_PROTOCOL_VERSIONS.join(", ")})`)}async close(){this._streamMapping.forEach(({cleanup})=>{cleanup()}),this._streamMapping.clear(),this._requestResponseMap.clear(),this.onclose?.()}closeSSEStream(requestId){let streamId=this._requestToStreamMapping.get(requestId);if(!streamId)return;let stream=this._streamMapping.get(streamId);stream&&stream.cleanup()}closeStandaloneSSEStream(){let stream=this._streamMapping.get(this._standaloneSseStreamId);stream&&stream.cleanup()}async send(message,options){let requestId=options?.relatedRequestId;if((isJSONRPCResultResponse(message)||isJSONRPCErrorResponse(message))&&(requestId=message.id),requestId===void 0){if(isJSONRPCResultResponse(message)||isJSONRPCErrorResponse(message))throw new Error("Cannot send a response on a standalone SSE stream unless resuming a previous client request");let eventId;this._eventStore&&(eventId=await this._eventStore.storeEvent(this._standaloneSseStreamId,message));let standaloneSse=this._streamMapping.get(this._standaloneSseStreamId);if(standaloneSse===void 0)return;standaloneSse.controller&&standaloneSse.encoder&&this.writeSSEEvent(standaloneSse.controller,standaloneSse.encoder,message,eventId);return}let streamId=this._requestToStreamMapping.get(requestId);if(!streamId)throw new Error(`No connection established for request ID: ${String(requestId)}`);let stream=this._streamMapping.get(streamId);if(!this._enableJsonResponse&&stream?.controller&&stream?.encoder){let eventId;this._eventStore&&(eventId=await this._eventStore.storeEvent(streamId,message)),this.writeSSEEvent(stream.controller,stream.encoder,message,eventId)}if(isJSONRPCResultResponse(message)||isJSONRPCErrorResponse(message)){this._requestResponseMap.set(requestId,message);let relatedIds=Array.from(this._requestToStreamMapping.entries()).filter(([_,sid])=>sid===streamId).map(([id])=>id);if(relatedIds.every(id=>this._requestResponseMap.has(id))){if(!stream)throw new Error(`No connection established for request ID: ${String(requestId)}`);if(this._enableJsonResponse&&stream.resolveJson){let headers={"Content-Type":"application/json"};this.sessionId!==void 0&&(headers["mcp-session-id"]=this.sessionId);let responses=relatedIds.map(id=>this._requestResponseMap.get(id));responses.length===1?stream.resolveJson(new Response(JSON.stringify(responses[0]),{status:200,headers})):stream.resolveJson(new Response(JSON.stringify(responses),{status:200,headers}))}else stream.cleanup();for(let id of relatedIds)this._requestResponseMap.delete(id),this._requestToStreamMapping.delete(id)}}}};var StreamableHTTPServerTransport=class{constructor(options={}){this._requestContext=new WeakMap,this._webStandardTransport=new WebStandardStreamableHTTPServerTransport(options),this._requestListener=getRequestListener(async webRequest=>{let context=this._requestContext.get(webRequest);return this._webStandardTransport.handleRequest(webRequest,{authInfo:context?.authInfo,parsedBody:context?.parsedBody})},{overrideGlobalObjects:!1})}get sessionId(){return this._webStandardTransport.sessionId}set onclose(handler){this._webStandardTransport.onclose=handler}get onclose(){return this._webStandardTransport.onclose}set onerror(handler){this._webStandardTransport.onerror=handler}get onerror(){return this._webStandardTransport.onerror}set onmessage(handler){this._webStandardTransport.onmessage=handler}get onmessage(){return this._webStandardTransport.onmessage}async start(){return this._webStandardTransport.start()}async close(){return this._webStandardTransport.close()}async send(message,options){return this._webStandardTransport.send(message,options)}async handleRequest(req,res,parsedBody){let authInfo=req.auth;await getRequestListener(async webRequest=>this._webStandardTransport.handleRequest(webRequest,{authInfo,parsedBody}),{overrideGlobalObjects:!1})(req,res)}closeSSEStream(requestId){this._webStandardTransport.closeSSEStream(requestId)}closeStandaloneSSEStream(){this._webStandardTransport.closeStandaloneSSEStream()}};var Code;(function(Code2){Code2[Code2.Canceled=1]="Canceled",Code2[Code2.Unknown=2]="Unknown",Code2[Code2.InvalidArgument=3]="InvalidArgument",Code2[Code2.DeadlineExceeded=4]="DeadlineExceeded",Code2[Code2.NotFound=5]="NotFound",Code2[Code2.AlreadyExists=6]="AlreadyExists",Code2[Code2.PermissionDenied=7]="PermissionDenied",Code2[Code2.ResourceExhausted=8]="ResourceExhausted",Code2[Code2.FailedPrecondition=9]="FailedPrecondition",Code2[Code2.Aborted=10]="Aborted",Code2[Code2.OutOfRange=11]="OutOfRange",Code2[Code2.Unimplemented=12]="Unimplemented",Code2[Code2.Internal=13]="Internal",Code2[Code2.Unavailable=14]="Unavailable",Code2[Code2.DataLoss=15]="DataLoss",Code2[Code2.Unauthenticated=16]="Unauthenticated"})(Code||(Code={}));function isMessage(arg,schema){return arg!==null&&typeof arg=="object"&&"$typeName"in arg&&typeof arg.$typeName=="string"?schema===void 0?!0:schema.typeName===arg.$typeName:!1}var ScalarType;(function(ScalarType2){ScalarType2[ScalarType2.DOUBLE=1]="DOUBLE",ScalarType2[ScalarType2.FLOAT=2]="FLOAT",ScalarType2[ScalarType2.INT64=3]="INT64",ScalarType2[ScalarType2.UINT64=4]="UINT64",ScalarType2[ScalarType2.INT32=5]="INT32",ScalarType2[ScalarType2.FIXED64=6]="FIXED64",ScalarType2[ScalarType2.FIXED32=7]="FIXED32",ScalarType2[ScalarType2.BOOL=8]="BOOL",ScalarType2[ScalarType2.STRING=9]="STRING",ScalarType2[ScalarType2.BYTES=12]="BYTES",ScalarType2[ScalarType2.UINT32=13]="UINT32",ScalarType2[ScalarType2.SFIXED32=15]="SFIXED32",ScalarType2[ScalarType2.SFIXED64=16]="SFIXED64",ScalarType2[ScalarType2.SINT32=17]="SINT32",ScalarType2[ScalarType2.SINT64=18]="SINT64"})(ScalarType||(ScalarType={}));function varint64read(){let lowBits=0,highBits=0;for(let shift=0;shift<28;shift+=7){let b=this.buf[this.pos++];if(lowBits|=(b&127)<<shift,(b&128)==0)return this.assertBounds(),[lowBits,highBits]}let middleByte=this.buf[this.pos++];if(lowBits|=(middleByte&15)<<28,highBits=(middleByte&112)>>4,(middleByte&128)==0)return this.assertBounds(),[lowBits,highBits];for(let shift=3;shift<=31;shift+=7){let b=this.buf[this.pos++];if(highBits|=(b&127)<<shift,(b&128)==0)return this.assertBounds(),[lowBits,highBits]}throw new Error("invalid varint")}function varint64write(lo,hi,bytes){for(let i=0;i<28;i=i+7){let shift=lo>>>i,hasNext=!(!(shift>>>7)&&hi==0),byte=(hasNext?shift|128:shift)&255;if(bytes.push(byte),!hasNext)return}let splitBits=lo>>>28&15|(hi&7)<<4,hasMoreBits=hi>>3!=0;if(bytes.push((hasMoreBits?splitBits|128:splitBits)&255),!!hasMoreBits){for(let i=3;i<31;i=i+7){let shift=hi>>>i,hasNext=!!(shift>>>7),byte=(hasNext?shift|128:shift)&255;if(bytes.push(byte),!hasNext)return}bytes.push(hi>>>31&1)}}var TWO_PWR_32_DBL=4294967296;function int64FromString(dec){let minus=dec[0]==="-";minus&&(dec=dec.slice(1));let base=1e6,lowBits=0,highBits=0;function add1e6digit(begin,end){let digit1e6=Number(dec.slice(begin,end));highBits*=base,lowBits=lowBits*base+digit1e6,lowBits>=TWO_PWR_32_DBL&&(highBits=highBits+(lowBits/TWO_PWR_32_DBL|0),lowBits=lowBits%TWO_PWR_32_DBL)}return add1e6digit(-24,-18),add1e6digit(-18,-12),add1e6digit(-12,-6),add1e6digit(-6),minus?negate(lowBits,highBits):newBits(lowBits,highBits)}function int64ToString(lo,hi){let bits=newBits(lo,hi),negative=bits.hi&2147483648;negative&&(bits=negate(bits.lo,bits.hi));let result=uInt64ToString(bits.lo,bits.hi);return negative?"-"+result:result}function uInt64ToString(lo,hi){if({lo,hi}=toUnsigned(lo,hi),hi<=2097151)return String(TWO_PWR_32_DBL*hi+lo);let low=lo&16777215,mid=(lo>>>24|hi<<8)&16777215,high=hi>>16&65535,digitA=low+mid*6777216+high*6710656,digitB=mid+high*8147497,digitC=high*2,base=1e7;return digitA>=base&&(digitB+=Math.floor(digitA/base),digitA%=base),digitB>=base&&(digitC+=Math.floor(digitB/base),digitB%=base),digitC.toString()+decimalFrom1e7WithLeadingZeros(digitB)+decimalFrom1e7WithLeadingZeros(digitA)}function toUnsigned(lo,hi){return{lo:lo>>>0,hi:hi>>>0}}function newBits(lo,hi){return{lo:lo|0,hi:hi|0}}function negate(lowBits,highBits){return highBits=~highBits,lowBits?lowBits=~lowBits+1:highBits+=1,newBits(lowBits,highBits)}var decimalFrom1e7WithLeadingZeros=digit1e7=>{let partial2=String(digit1e7);return"0000000".slice(partial2.length)+partial2};function varint32write(value,bytes){if(value>=0){for(;value>127;)bytes.push(value&127|128),value=value>>>7;bytes.push(value)}else{for(let i=0;i<9;i++)bytes.push(value&127|128),value=value>>7;bytes.push(1)}}function varint32read(){let b=this.buf[this.pos++],result=b&127;if((b&128)==0)return this.assertBounds(),result;if(b=this.buf[this.pos++],result|=(b&127)<<7,(b&128)==0)return this.assertBounds(),result;if(b=this.buf[this.pos++],result|=(b&127)<<14,(b&128)==0)return this.assertBounds(),result;if(b=this.buf[this.pos++],result|=(b&127)<<21,(b&128)==0)return this.assertBounds(),result;b=this.buf[this.pos++],result|=(b&15)<<28;for(let readBytes=5;(b&128)!==0&&readBytes<10;readBytes++)b=this.buf[this.pos++];if((b&128)!=0)throw new Error("invalid varint");return this.assertBounds(),result>>>0}var protoInt64=makeInt64Support();function makeInt64Support(){let dv=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof dv.getBigInt64=="function"&&typeof dv.getBigUint64=="function"&&typeof dv.setBigInt64=="function"&&typeof dv.setBigUint64=="function"&&(!!globalThis.Deno||typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){let MIN=BigInt("-9223372036854775808"),MAX=BigInt("9223372036854775807"),UMIN=BigInt("0"),UMAX=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(value){let bi=typeof value=="bigint"?value:BigInt(value);if(bi>MAX||bi<MIN)throw new Error(`invalid int64: ${value}`);return bi},uParse(value){let bi=typeof value=="bigint"?value:BigInt(value);if(bi>UMAX||bi<UMIN)throw new Error(`invalid uint64: ${value}`);return bi},enc(value){return dv.setBigInt64(0,this.parse(value),!0),{lo:dv.getInt32(0,!0),hi:dv.getInt32(4,!0)}},uEnc(value){return dv.setBigInt64(0,this.uParse(value),!0),{lo:dv.getInt32(0,!0),hi:dv.getInt32(4,!0)}},dec(lo,hi){return dv.setInt32(0,lo,!0),dv.setInt32(4,hi,!0),dv.getBigInt64(0,!0)},uDec(lo,hi){return dv.setInt32(0,lo,!0),dv.setInt32(4,hi,!0),dv.getBigUint64(0,!0)}}}return{zero:"0",supported:!1,parse(value){return typeof value!="string"&&(value=value.toString()),assertInt64String(value),value},uParse(value){return typeof value!="string"&&(value=value.toString()),assertUInt64String(value),value},enc(value){return typeof value!="string"&&(value=value.toString()),assertInt64String(value),int64FromString(value)},uEnc(value){return typeof value!="string"&&(value=value.toString()),assertUInt64String(value),int64FromString(value)},dec(lo,hi){return int64ToString(lo,hi)},uDec(lo,hi){return uInt64ToString(lo,hi)}}}function assertInt64String(value){if(!/^-?[0-9]+$/.test(value))throw new Error("invalid int64: "+value)}function assertUInt64String(value){if(!/^[0-9]+$/.test(value))throw new Error("invalid uint64: "+value)}function scalarZeroValue(type,longAsString){switch(type){case ScalarType.STRING:return"";case ScalarType.BOOL:return!1;case ScalarType.DOUBLE:case ScalarType.FLOAT:return 0;case ScalarType.INT64:case ScalarType.UINT64:case ScalarType.SFIXED64:case ScalarType.FIXED64:case ScalarType.SINT64:return longAsString?"0":protoInt64.zero;case ScalarType.BYTES:return new Uint8Array(0);default:return 0}}function isScalarZeroValue(type,value){switch(type){case ScalarType.BOOL:return value===!1;case ScalarType.STRING:return value==="";case ScalarType.BYTES:return value instanceof Uint8Array&&!value.byteLength;default:return value==0}}var IMPLICIT=2,unsafeLocal=Symbol.for("reflect unsafe local");function unsafeOneofCase(target,oneof){let c=target[oneof.localName].case;return c===void 0?c:oneof.fields.find(f=>f.localName===c)}function unsafeIsSet(target,field){let name=field.localName;if(field.oneof)return target[field.oneof.localName].case===name;if(field.presence!=IMPLICIT)return target[name]!==void 0&&Object.prototype.hasOwnProperty.call(target,name);switch(field.fieldKind){case"list":return target[name].length>0;case"map":return Object.keys(target[name]).length>0;case"scalar":return!isScalarZeroValue(field.scalar,target[name]);case"enum":return target[name]!==field.enum.values[0].number}throw new Error("message field with implicit presence")}function unsafeIsSetExplicit(target,localName){return Object.prototype.hasOwnProperty.call(target,localName)&&target[localName]!==void 0}function unsafeGet(target,field){if(field.oneof){let oneof=target[field.oneof.localName];return oneof.case===field.localName?oneof.value:void 0}return target[field.localName]}function unsafeSet(target,field,value){field.oneof?target[field.oneof.localName]={case:field.localName,value}:target[field.localName]=value}function unsafeClear(target,field){let name=field.localName;if(field.oneof){let oneofLocalName=field.oneof.localName;target[oneofLocalName].case===name&&(target[oneofLocalName]={case:void 0})}else if(field.presence!=IMPLICIT)delete target[name];else switch(field.fieldKind){case"map":target[name]={};break;case"list":target[name]=[];break;case"enum":target[name]=field.enum.values[0].number;break;case"scalar":target[name]=scalarZeroValue(field.scalar,field.longAsString);break}}function isObject2(arg){return arg!==null&&typeof arg=="object"&&!Array.isArray(arg)}function isReflectList(arg,field){var _a,_b,_c,_d;if(isObject2(arg)&&unsafeLocal in arg&&"add"in arg&&"field"in arg&&typeof arg.field=="function"){if(field!==void 0){let a=field,b=arg.field();return a.listKind==b.listKind&&a.scalar===b.scalar&&((_a=a.message)===null||_a===void 0?void 0:_a.typeName)===((_b=b.message)===null||_b===void 0?void 0:_b.typeName)&&((_c=a.enum)===null||_c===void 0?void 0:_c.typeName)===((_d=b.enum)===null||_d===void 0?void 0:_d.typeName)}return!0}return!1}function isReflectMap(arg,field){var _a,_b,_c,_d;if(isObject2(arg)&&unsafeLocal in arg&&"has"in arg&&"field"in arg&&typeof arg.field=="function"){if(field!==void 0){let a=field,b=arg.field();return a.mapKey===b.mapKey&&a.mapKind==b.mapKind&&a.scalar===b.scalar&&((_a=a.message)===null||_a===void 0?void 0:_a.typeName)===((_b=b.message)===null||_b===void 0?void 0:_b.typeName)&&((_c=a.enum)===null||_c===void 0?void 0:_c.typeName)===((_d=b.enum)===null||_d===void 0?void 0:_d.typeName)}return!0}return!1}function isReflectMessage(arg,messageDesc3){return isObject2(arg)&&unsafeLocal in arg&&"desc"in arg&&isObject2(arg.desc)&&arg.desc.kind==="message"&&(messageDesc3===void 0||arg.desc.typeName==messageDesc3.typeName)}function isWrapper(arg){return isWrapperTypeName(arg.$typeName)}function isWrapperDesc(messageDesc3){let f=messageDesc3.fields[0];return isWrapperTypeName(messageDesc3.typeName)&&f!==void 0&&f.fieldKind=="scalar"&&f.name=="value"&&f.number==1}function hasCustomJsonRepresentation(desc){switch(desc.typeName){case"google.protobuf.Any":case"google.protobuf.Timestamp":case"google.protobuf.Duration":case"google.protobuf.FieldMask":case"google.protobuf.Struct":case"google.protobuf.Value":case"google.protobuf.ListValue":return!0;default:return isWrapperDesc(desc)}}function isWrapperTypeName(name){return name.startsWith("google.protobuf.")&&["DoubleValue","FloatValue","Int64Value","UInt64Value","Int32Value","UInt32Value","BoolValue","StringValue","BytesValue"].includes(name.substring(16))}var EDITION_PROTO3=999,EDITION_PROTO2=998,IMPLICIT2=2;function create(schema,init){if(isMessage(init,schema))return init;let message=createZeroMessage(schema);return init!==void 0&&initMessage(schema,message,init),message}function initMessage(messageDesc3,message,init){for(let member of messageDesc3.members){let value=init[member.localName];if(value==null)continue;let field;if(member.kind=="oneof"){let oneofField=unsafeOneofCase(init,member);if(!oneofField)continue;field=oneofField,value=unsafeGet(init,oneofField)}else field=member;switch(field.fieldKind){case"message":value=toMessage(field,value);break;case"scalar":value=initScalar(field,value);break;case"list":value=initList(field,value);break;case"map":value=initMap(field,value);break}unsafeSet(message,field,value)}return message}function initScalar(field,value){return field.scalar==ScalarType.BYTES?toU8Arr(value):value}function initMap(field,value){if(isObject2(value)){if(field.scalar==ScalarType.BYTES)return convertObjectValues(value,toU8Arr);if(field.mapKind=="message")return convertObjectValues(value,val=>toMessage(field,val))}return value}function initList(field,value){if(Array.isArray(value)){if(field.scalar==ScalarType.BYTES)return value.map(toU8Arr);if(field.listKind=="message")return value.map(item=>toMessage(field,item))}return value}function toMessage(field,value){if(field.fieldKind=="message"&&!field.oneof&&isWrapperDesc(field.message))return initScalar(field.message.fields[0],value);if(isObject2(value)){if(field.message.typeName=="google.protobuf.Struct"&&field.parent.typeName!=="google.protobuf.Value")return value;if(!isMessage(value,field.message))return create(field.message,value)}return value}function toU8Arr(value){return Array.isArray(value)?new Uint8Array(value):value}function convertObjectValues(obj,fn){let ret={};for(let entry of Object.entries(obj))ret[entry[0]]=fn(entry[1]);return ret}var tokenZeroMessageField=Symbol(),messagePrototypes=new WeakMap;function createZeroMessage(desc){let msg;if(needsPrototypeChain(desc)){let cached2=messagePrototypes.get(desc),prototype,members;if(cached2)({prototype,members}=cached2);else{prototype={},members=new Set;for(let member of desc.members)member.kind!="oneof"&&(member.fieldKind!="scalar"&&member.fieldKind!="enum"||member.presence!=IMPLICIT2&&(members.add(member),prototype[member.localName]=createZeroField(member)));messagePrototypes.set(desc,{prototype,members})}msg=Object.create(prototype),msg.$typeName=desc.typeName;for(let member of desc.members)members.has(member)||member.kind=="field"&&(member.fieldKind=="message"||(member.fieldKind=="scalar"||member.fieldKind=="enum")&&member.presence!=IMPLICIT2)||(msg[member.localName]=createZeroField(member))}else{msg={$typeName:desc.typeName};for(let member of desc.members)(member.kind=="oneof"||member.presence==IMPLICIT2)&&(msg[member.localName]=createZeroField(member))}return msg}function needsPrototypeChain(desc){switch(desc.file.edition){case EDITION_PROTO3:return!1;case EDITION_PROTO2:return!0;default:return desc.fields.some(f=>f.presence!=IMPLICIT2&&f.fieldKind!="message"&&!f.oneof)}}function createZeroField(field){if(field.kind=="oneof")return{case:void 0};if(field.fieldKind=="list")return[];if(field.fieldKind=="map")return{};if(field.fieldKind=="message")return tokenZeroMessageField;let defaultValue=field.getDefaultValue();return defaultValue!==void 0?field.fieldKind=="scalar"&&field.longAsString?defaultValue.toString():defaultValue:field.fieldKind=="scalar"?scalarZeroValue(field.scalar,field.longAsString):field.enum.values[0].number}var errorNames=["FieldValueInvalidError","FieldListRangeError","ForeignFieldError"],FieldError=class extends Error{constructor(fieldOrOneof,message,name="FieldValueInvalidError"){super(message),this.name=name,this.field=()=>fieldOrOneof}};function isFieldError(arg){return arg instanceof Error&&errorNames.includes(arg.name)&&"field"in arg&&typeof arg.field=="function"}var symbol=Symbol.for("@bufbuild/protobuf/text-encoding");function getTextEncoding(){if(globalThis[symbol]==null){let te=new globalThis.TextEncoder,td=new globalThis.TextDecoder,tdStrict;globalThis[symbol]={encodeUtf8(text){return te.encode(text)},decodeUtf8(bytes,strict){return strict?(tdStrict===void 0&&(tdStrict=new globalThis.TextDecoder("utf-8",{fatal:!0})),tdStrict.decode(bytes)):td.decode(bytes)},checkUtf8(text){try{return encodeURIComponent(text),!0}catch{return!1}}}}return globalThis[symbol]}var WireType;(function(WireType2){WireType2[WireType2.Varint=0]="Varint",WireType2[WireType2.Bit64=1]="Bit64",WireType2[WireType2.LengthDelimited=2]="LengthDelimited",WireType2[WireType2.StartGroup=3]="StartGroup",WireType2[WireType2.EndGroup=4]="EndGroup",WireType2[WireType2.Bit32=5]="Bit32"})(WireType||(WireType={}));var FLOAT32_MAX=34028234663852886e22,FLOAT32_MIN=-34028234663852886e22,UINT32_MAX=4294967295,INT32_MAX=2147483647,INT32_MIN=-2147483648,BinaryWriter=class{constructor(encodeUtf8=getTextEncoding().encodeUtf8){this.encodeUtf8=encodeUtf8,this.stack=[],this.chunks=[],this.buf=[]}finish(){this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]);let len=0;for(let i=0;i<this.chunks.length;i++)len+=this.chunks[i].length;let bytes=new Uint8Array(len),offset=0;for(let i=0;i<this.chunks.length;i++)bytes.set(this.chunks[i],offset),offset+=this.chunks[i].length;return this.chunks=[],bytes}fork(){return this.stack.push({chunks:this.chunks,buf:this.buf}),this.chunks=[],this.buf=[],this}join(){let chunk=this.finish(),prev=this.stack.pop();if(!prev)throw new Error("invalid state, fork stack empty");return this.chunks=prev.chunks,this.buf=prev.buf,this.uint32(chunk.byteLength),this.raw(chunk)}tag(fieldNo,type){return this.uint32((fieldNo<<3|type)>>>0)}raw(chunk){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(chunk),this}uint32(value){for(assertUInt32(value);value>127;)this.buf.push(value&127|128),value=value>>>7;return this.buf.push(value),this}int32(value){return assertInt32(value),varint32write(value,this.buf),this}bool(value){return this.buf.push(value?1:0),this}bytes(value){return this.uint32(value.byteLength),this.raw(value)}string(value){let chunk=this.encodeUtf8(value);return this.uint32(chunk.byteLength),this.raw(chunk)}float(value){assertFloat32(value);let chunk=new Uint8Array(4);return new DataView(chunk.buffer).setFloat32(0,value,!0),this.raw(chunk)}double(value){let chunk=new Uint8Array(8);return new DataView(chunk.buffer).setFloat64(0,value,!0),this.raw(chunk)}fixed32(value){assertUInt32(value);let chunk=new Uint8Array(4);return new DataView(chunk.buffer).setUint32(0,value,!0),this.raw(chunk)}sfixed32(value){assertInt32(value);let chunk=new Uint8Array(4);return new DataView(chunk.buffer).setInt32(0,value,!0),this.raw(chunk)}sint32(value){return assertInt32(value),value=(value<<1^value>>31)>>>0,varint32write(value,this.buf),this}sfixed64(value){let chunk=new Uint8Array(8),view=new DataView(chunk.buffer),tc=protoInt64.enc(value);return view.setInt32(0,tc.lo,!0),view.setInt32(4,tc.hi,!0),this.raw(chunk)}fixed64(value){let chunk=new Uint8Array(8),view=new DataView(chunk.buffer),tc=protoInt64.uEnc(value);return view.setInt32(0,tc.lo,!0),view.setInt32(4,tc.hi,!0),this.raw(chunk)}int64(value){let tc=protoInt64.enc(value);return varint64write(tc.lo,tc.hi,this.buf),this}sint64(value){let tc=protoInt64.enc(value),sign=tc.hi>>31,lo=tc.lo<<1^sign,hi=(tc.hi<<1|tc.lo>>>31)^sign;return varint64write(lo,hi,this.buf),this}uint64(value){let tc=protoInt64.uEnc(value);return varint64write(tc.lo,tc.hi,this.buf),this}},BinaryReader=class{constructor(buf,decodeUtf8=getTextEncoding().decodeUtf8){this.decodeUtf8=decodeUtf8,this.varint64=varint64read,this.uint32=varint32read,this.buf=buf,this.len=buf.length,this.pos=0,this.view=new DataView(buf.buffer,buf.byteOffset,buf.byteLength)}tag(){let start=this.pos,tag=this.uint32(),bytesRead=this.pos-start;if(bytesRead>5||bytesRead==5&&this.buf[this.pos-1]>15)throw new Error("illegal tag: varint overflows uint32");let fieldNo=tag>>>3,wireType=tag&7;if(fieldNo<=0||wireType>5)throw new Error("illegal tag: field no "+fieldNo+" wire type "+wireType);return[fieldNo,wireType]}skip(wireType,fieldNo){let start=this.pos;switch(wireType){case WireType.Varint:for(;this.buf[this.pos++]&128;);break;case WireType.Bit64:this.pos+=4;case WireType.Bit32:this.pos+=4;break;case WireType.LengthDelimited:let len=this.uint32();this.pos+=len;break;case WireType.StartGroup:for(;;){let[fn,wt]=this.tag();if(wt===WireType.EndGroup){if(fieldNo!==void 0&&fn!==fieldNo)throw new Error("invalid end group tag");break}this.skip(wt,fn)}break;default:throw new Error("cant skip wire type "+wireType)}return this.assertBounds(),this.buf.subarray(start,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let zze=this.uint32();return zze>>>1^-(zze&1)}int64(){return protoInt64.dec(...this.varint64())}uint64(){return protoInt64.uDec(...this.varint64())}sint64(){let[lo,hi]=this.varint64(),s=-(lo&1);return lo=(lo>>>1|(hi&1)<<31)^s,hi=hi>>>1^s,protoInt64.dec(lo,hi)}bool(){let[lo,hi]=this.varint64();return lo!==0||hi!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return protoInt64.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return protoInt64.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let len=this.uint32(),start=this.pos;return this.pos+=len,this.assertBounds(),this.buf.subarray(start,start+len)}string(strict){return this.decodeUtf8(this.bytes(),strict)}};function assertInt32(arg){if(typeof arg=="string")arg=Number(arg);else if(typeof arg!="number")throw new Error("invalid int32: "+typeof arg);if(!Number.isInteger(arg)||arg>INT32_MAX||arg<INT32_MIN)throw new Error("invalid int32: "+arg)}function assertUInt32(arg){if(typeof arg=="string")arg=Number(arg);else if(typeof arg!="number")throw new Error("invalid uint32: "+typeof arg);if(!Number.isInteger(arg)||arg>UINT32_MAX||arg<0)throw new Error("invalid uint32: "+arg)}function assertFloat32(arg){if(typeof arg=="string"){let o=arg;if(arg=Number(arg),Number.isNaN(arg)&&o!=="NaN")throw new Error("invalid float32: "+o)}else if(typeof arg!="number")throw new Error("invalid float32: "+typeof arg);if(Number.isFinite(arg)&&(arg>FLOAT32_MAX||arg<FLOAT32_MIN))throw new Error("invalid float32: "+arg)}function checkField(field,value){let check2=field.fieldKind=="list"?isReflectList(value,field):field.fieldKind=="map"?isReflectMap(value,field):checkSingular(field,value);if(check2===!0)return;let reason;switch(field.fieldKind){case"list":reason=`expected ${formatReflectList(field)}, got ${formatVal(value)}`;break;case"map":reason=`expected ${formatReflectMap(field)}, got ${formatVal(value)}`;break;default:reason=reasonSingular(field,value,check2)}return new FieldError(field,reason)}function checkListItem(field,index,value){let check2=checkSingular(field,value);if(check2!==!0)return new FieldError(field,`list item #${index+1}: ${reasonSingular(field,value,check2)}`)}function checkMapEntry(field,key,value){let checkKey=checkScalarValue(key,field.mapKey);if(checkKey!==!0)return new FieldError(field,`invalid map key: ${reasonSingular({scalar:field.mapKey},key,checkKey)}`);let checkVal=checkSingular(field,value);if(checkVal!==!0)return new FieldError(field,`map entry ${formatVal(key)}: ${reasonSingular(field,value,checkVal)}`)}function checkSingular(field,value){return field.scalar!==void 0?checkScalarValue(value,field.scalar):field.enum!==void 0?field.enum.open?Number.isInteger(value):field.enum.values.some(v=>v.number===value):isReflectMessage(value,field.message)}function checkScalarValue(value,scalar){switch(scalar){case ScalarType.DOUBLE:return typeof value=="number";case ScalarType.FLOAT:return typeof value!="number"?!1:Number.isNaN(value)||!Number.isFinite(value)?!0:value>FLOAT32_MAX||value<FLOAT32_MIN?`${value.toFixed()} out of range`:!0;case ScalarType.INT32:case ScalarType.SFIXED32:case ScalarType.SINT32:return typeof value!="number"||!Number.isInteger(value)?!1:value>INT32_MAX||value<INT32_MIN?`${value.toFixed()} out of range`:!0;case ScalarType.FIXED32:case ScalarType.UINT32:return typeof value!="number"||!Number.isInteger(value)?!1:value>UINT32_MAX||value<0?`${value.toFixed()} out of range`:!0;case ScalarType.BOOL:return typeof value=="boolean";case ScalarType.STRING:return typeof value!="string"?!1:getTextEncoding().checkUtf8(value)||"invalid UTF8";case ScalarType.BYTES:return value instanceof Uint8Array;case ScalarType.INT64:case ScalarType.SFIXED64:case ScalarType.SINT64:if(typeof value=="bigint"||typeof value=="number"||typeof value=="string"&&value.length>0)try{return protoInt64.parse(value),!0}catch{return`${value} out of range`}return!1;case ScalarType.FIXED64:case ScalarType.UINT64:if(typeof value=="bigint"||typeof value=="number"||typeof value=="string"&&value.length>0)try{return protoInt64.uParse(value),!0}catch{return`${value} out of range`}return!1}}function reasonSingular(field,val,details){return details=typeof details=="string"?`: ${details}`:`, got ${formatVal(val)}`,field.scalar!==void 0?`expected ${scalarTypeDescription(field.scalar)}`+details:field.enum!==void 0?`expected ${field.enum.toString()}`+details:`expected ${formatReflectMessage(field.message)}`+details}function formatVal(val){switch(typeof val){case"object":return val===null?"null":val instanceof Uint8Array?`Uint8Array(${val.length})`:Array.isArray(val)?`Array(${val.length})`:isReflectList(val)?formatReflectList(val.field()):isReflectMap(val)?formatReflectMap(val.field()):isReflectMessage(val)?formatReflectMessage(val.desc):isMessage(val)?`message ${val.$typeName}`:"object";case"string":return val.length>30?"string":`"${val.split('"').join('\\"')}"`;case"boolean":return String(val);case"number":return String(val);case"bigint":return String(val)+"n";default:return typeof val}}function formatReflectMessage(desc){return`ReflectMessage (${desc.typeName})`}function formatReflectList(field){switch(field.listKind){case"message":return`ReflectList (${field.message.toString()})`;case"enum":return`ReflectList (${field.enum.toString()})`;case"scalar":return`ReflectList (${ScalarType[field.scalar]})`}}function formatReflectMap(field){switch(field.mapKind){case"message":return`ReflectMap (${ScalarType[field.mapKey]}, ${field.message.toString()})`;case"enum":return`ReflectMap (${ScalarType[field.mapKey]}, ${field.enum.toString()})`;case"scalar":return`ReflectMap (${ScalarType[field.mapKey]}, ${ScalarType[field.scalar]})`}}function scalarTypeDescription(scalar){switch(scalar){case ScalarType.STRING:return"string";case ScalarType.BOOL:return"boolean";case ScalarType.INT64:case ScalarType.SINT64:case ScalarType.SFIXED64:return"bigint (int64)";case ScalarType.UINT64:case ScalarType.FIXED64:return"bigint (uint64)";case ScalarType.BYTES:return"Uint8Array";case ScalarType.DOUBLE:return"number (float64)";case ScalarType.FLOAT:return"number (float32)";case ScalarType.FIXED32:case ScalarType.UINT32:return"number (uint32)";case ScalarType.INT32:case ScalarType.SFIXED32:case ScalarType.SINT32:return"number (int32)"}}function reflect(messageDesc3,message,check2=!0){return new ReflectMessageImpl(messageDesc3,message,check2)}var messageSortedFields=new WeakMap,ReflectMessageImpl=class{get sortedFields(){let cached2=messageSortedFields.get(this.desc);if(cached2)return cached2;let sortedFields=this.desc.fields.concat().sort((a,b)=>a.number-b.number);return messageSortedFields.set(this.desc,sortedFields),sortedFields}constructor(messageDesc3,message,check2=!0){this.lists=new Map,this.maps=new Map,this.check=check2,this.desc=messageDesc3,this.message=this[unsafeLocal]=message??create(messageDesc3),this.fields=messageDesc3.fields,this.oneofs=messageDesc3.oneofs,this.members=messageDesc3.members}findNumber(number3){return this._fieldsByNumber||(this._fieldsByNumber=new Map(this.desc.fields.map(f=>[f.number,f]))),this._fieldsByNumber.get(number3)}oneofCase(oneof){return assertOwn(this.message,oneof),unsafeOneofCase(this.message,oneof)}isSet(field){return assertOwn(this.message,field),unsafeIsSet(this.message,field)}clear(field){assertOwn(this.message,field),unsafeClear(this.message,field)}get(field){assertOwn(this.message,field);let value=unsafeGet(this.message,field);switch(field.fieldKind){case"list":let list=this.lists.get(field);return(!list||list[unsafeLocal]!==value)&&this.lists.set(field,list=new ReflectListImpl(field,value,this.check)),list;case"map":let map=this.maps.get(field);return(!map||map[unsafeLocal]!==value)&&this.maps.set(field,map=new ReflectMapImpl(field,value,this.check)),map;case"message":return messageToReflect(field,value,this.check);case"scalar":return value===void 0?scalarZeroValue(field.scalar,!1):longToReflect(field,value);case"enum":return value??field.enum.values[0].number}}set(field,value){if(assertOwn(this.message,field),this.check){let err=checkField(field,value);if(err)throw err}let local;field.fieldKind=="message"?local=messageToLocal(field,value):isReflectMap(value)||isReflectList(value)?local=value[unsafeLocal]:local=longToLocal(field,value),unsafeSet(this.message,field,local)}getUnknown(){return this.message.$unknown}setUnknown(value){this.message.$unknown=value}};function assertOwn(owner,member){if(member.parent.typeName!==owner.$typeName)throw new FieldError(member,`cannot use ${member.toString()} with message ${owner.$typeName}`,"ForeignFieldError")}var ReflectListImpl=class{field(){return this._field}get size(){return this._arr.length}constructor(field,unsafeInput,check2){this._field=field,this._arr=this[unsafeLocal]=unsafeInput,this.check=check2}get(index){let item=this._arr[index];return item===void 0?void 0:listItemToReflect(this._field,item,this.check)}set(index,item){if(index<0||index>=this._arr.length)throw new FieldError(this._field,`list item #${index+1}: out of range`);if(this.check){let err=checkListItem(this._field,index,item);if(err)throw err}this._arr[index]=listItemToLocal(this._field,item)}add(item){if(this.check){let err=checkListItem(this._field,this._arr.length,item);if(err)throw err}this._arr.push(listItemToLocal(this._field,item))}clear(){this._arr.splice(0,this._arr.length)}[Symbol.iterator](){return this.values()}keys(){return this._arr.keys()}*values(){for(let item of this._arr)yield listItemToReflect(this._field,item,this.check)}*entries(){for(let i=0;i<this._arr.length;i++)yield[i,listItemToReflect(this._field,this._arr[i],this.check)]}};var ReflectMapImpl=class{constructor(field,unsafeInput,check2=!0){this.obj=this[unsafeLocal]=unsafeInput??{},this.check=check2,this._field=field}field(){return this._field}set(key,value){if(this.check){let err=checkMapEntry(this._field,key,value);if(err)throw err}return this.obj[mapKeyToLocal(key)]=mapValueToLocal(this._field,value),this}delete(key){let k=mapKeyToLocal(key),has=Object.prototype.hasOwnProperty.call(this.obj,k);return has&&delete this.obj[k],has}clear(){for(let key of Object.keys(this.obj))delete this.obj[key]}get(key){let val=this.obj[mapKeyToLocal(key)];return val!==void 0&&(val=mapValueToReflect(this._field,val,this.check)),val}has(key){return Object.prototype.hasOwnProperty.call(this.obj,mapKeyToLocal(key))}*keys(){for(let objKey of Object.keys(this.obj))yield mapKeyToReflect(objKey,this._field.mapKey)}*entries(){for(let objEntry of Object.entries(this.obj))yield[mapKeyToReflect(objEntry[0],this._field.mapKey),mapValueToReflect(this._field,objEntry[1],this.check)]}[Symbol.iterator](){return this.entries()}get size(){return Object.keys(this.obj).length}*values(){for(let val of Object.values(this.obj))yield mapValueToReflect(this._field,val,this.check)}forEach(callbackfn,thisArg){for(let mapEntry of this.entries())callbackfn.call(thisArg,mapEntry[1],mapEntry[0],this)}};function messageToLocal(field,value){return isReflectMessage(value)?isWrapper(value.message)&&!field.oneof&&field.fieldKind=="message"?value.message.value:value.desc.typeName=="google.protobuf.Struct"&&field.parent.typeName!="google.protobuf.Value"?wktStructToLocal(value.message):value.message:value}function messageToReflect(field,value,check2){return value!==void 0&&(isWrapperDesc(field.message)&&!field.oneof&&field.fieldKind=="message"?value={$typeName:field.message.typeName,value:longToReflect(field.message.fields[0],value)}:field.message.typeName=="google.protobuf.Struct"&&field.parent.typeName!="google.protobuf.Value"&&isObject2(value)&&(value=wktStructToReflect(value))),new ReflectMessageImpl(field.message,value,check2)}function listItemToLocal(field,value){return field.listKind=="message"?messageToLocal(field,value):longToLocal(field,value)}function listItemToReflect(field,value,check2){return field.listKind=="message"?messageToReflect(field,value,check2):longToReflect(field,value)}function mapValueToLocal(field,value){return field.mapKind=="message"?messageToLocal(field,value):longToLocal(field,value)}function mapValueToReflect(field,value,check2){return field.mapKind=="message"?messageToReflect(field,value,check2):value}function mapKeyToLocal(key){return typeof key=="string"||typeof key=="number"?key:String(key)}function mapKeyToReflect(key,type){switch(type){case ScalarType.STRING:return key;case ScalarType.INT32:case ScalarType.FIXED32:case ScalarType.UINT32:case ScalarType.SFIXED32:case ScalarType.SINT32:{let n=Number.parseInt(key);if(Number.isFinite(n))return n;break}case ScalarType.BOOL:switch(key){case"true":return!0;case"false":return!1}break;case ScalarType.UINT64:case ScalarType.FIXED64:try{return protoInt64.uParse(key)}catch{}break;default:try{return protoInt64.parse(key)}catch{}break}return key}function longToReflect(field,value){switch(field.scalar){case ScalarType.INT64:case ScalarType.SFIXED64:case ScalarType.SINT64:"longAsString"in field&&field.longAsString&&typeof value=="string"&&(value=protoInt64.parse(value));break;case ScalarType.FIXED64:case ScalarType.UINT64:"longAsString"in field&&field.longAsString&&typeof value=="string"&&(value=protoInt64.uParse(value));break}return value}function longToLocal(field,value){switch(field.scalar){case ScalarType.INT64:case ScalarType.SFIXED64:case ScalarType.SINT64:"longAsString"in field&&field.longAsString?value=String(value):(typeof value=="string"||typeof value=="number")&&(value=protoInt64.parse(value));break;case ScalarType.FIXED64:case ScalarType.UINT64:"longAsString"in field&&field.longAsString?value=String(value):(typeof value=="string"||typeof value=="number")&&(value=protoInt64.uParse(value));break}return value}function wktStructToReflect(json){let struct={$typeName:"google.protobuf.Struct",fields:{}};if(isObject2(json))for(let[k,v]of Object.entries(json))struct.fields[k]=wktValueToReflect(v);return struct}function wktStructToLocal(val){let json={};for(let[k,v]of Object.entries(val.fields))json[k]=wktValueToLocal(v);return json}function wktValueToLocal(val){switch(val.kind.case){case"structValue":return wktStructToLocal(val.kind.value);case"listValue":return val.kind.value.values.map(wktValueToLocal);case"nullValue":case void 0:return null;default:return val.kind.value}}function wktValueToReflect(json){let value={$typeName:"google.protobuf.Value",kind:{case:void 0}};switch(typeof json){case"number":value.kind={case:"numberValue",value:json};break;case"string":value.kind={case:"stringValue",value:json};break;case"boolean":value.kind={case:"boolValue",value:json};break;case"object":if(json===null)value.kind={case:"nullValue",value:0};else if(Array.isArray(json)){let listValue={$typeName:"google.protobuf.ListValue",values:[]};if(Array.isArray(json))for(let e of json)listValue.values.push(wktValueToReflect(e));value.kind={case:"listValue",value:listValue}}else value.kind={case:"structValue",value:wktStructToReflect(json)};break}return value}function base64Decode(base64Str){let table=getDecodeTable(),es=base64Str.length*3/4;base64Str[base64Str.length-2]=="="?es-=2:base64Str[base64Str.length-1]=="="&&(es-=1);let bytes=new Uint8Array(es),bytePos=0,groupPos=0,b,p=0;for(let i=0;i<base64Str.length;i++){if(b=table[base64Str.charCodeAt(i)],b===void 0)switch(base64Str[i]){case"=":groupPos=0;case`
196
196
  `:case"\r":case" ":case" ":continue;default:throw Error("invalid base64 string")}switch(groupPos){case 0:p=b,groupPos=1;break;case 1:bytes[bytePos++]=p<<2|(b&48)>>4,p=b,groupPos=2;break;case 2:bytes[bytePos++]=(p&15)<<4|(b&60)>>2,p=b,groupPos=3;break;case 3:bytes[bytePos++]=(p&3)<<6|b,groupPos=0;break}}if(groupPos==1)throw Error("invalid base64 string");return bytes.subarray(0,bytePos)}function base64Encode(bytes,encoding="std"){let table=getEncodeTable(encoding),pad=encoding=="std",base642="",groupPos=0,b,p=0;for(let i=0;i<bytes.length;i++)switch(b=bytes[i],groupPos){case 0:base642+=table[b>>2],p=(b&3)<<4,groupPos=1;break;case 1:base642+=table[p|b>>4],p=(b&15)<<2,groupPos=2;break;case 2:base642+=table[p|b>>6],base642+=table[b&63],groupPos=0;break}return groupPos&&(base642+=table[p],pad&&(base642+="=",groupPos==1&&(base642+="="))),base642}var encodeTableStd,encodeTableUrl,decodeTable;function getEncodeTable(encoding){return encodeTableStd||(encodeTableStd="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),encodeTableUrl=encodeTableStd.slice(0,-2).concat("-","_")),encoding=="url"?encodeTableUrl:encodeTableStd}function getDecodeTable(){if(!decodeTable){decodeTable=[];let encodeTable=getEncodeTable("std");for(let i=0;i<encodeTable.length;i++)decodeTable[encodeTable[i].charCodeAt(0)]=i;decodeTable[45]=encodeTable.indexOf("+"),decodeTable[95]=encodeTable.indexOf("/")}return decodeTable}function protoCamelCase(snakeCase){let capNext=!1,b=[];for(let i=0;i<snakeCase.length;i++){let c=snakeCase.charAt(i);switch(c){case"_":capNext=!0;break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":b.push(c),capNext=!1;break;default:capNext&&(capNext=!1,c=c.toUpperCase()),b.push(c);break}}return b.join("")}function protoSnakeCase(lowerCamelCase){return lowerCamelCase.replace(/[A-Z]/g,letter=>"_"+letter.toLowerCase())}var reservedObjectProperties=new Set(["constructor","toString","toJSON","valueOf"]);function safeObjectProperty(name){return reservedObjectProperties.has(name)?name+"$":name}function restoreJsonNames(message){for(let f of message.field)unsafeIsSetExplicit(f,"jsonName")||(f.jsonName=protoCamelCase(f.name));message.nestedType.forEach(restoreJsonNames)}function parseTextFormatEnumValue(descEnum,value){let enumValue=descEnum.values.find(v=>v.name===value);if(!enumValue)throw new Error(`cannot parse ${descEnum} default value: ${value}`);return enumValue.number}function parseTextFormatScalarValue(type,value){switch(type){case ScalarType.STRING:return value;case ScalarType.BYTES:{let u=unescapeBytesDefaultValue(value);if(u===!1)throw new Error(`cannot parse ${ScalarType[type]} default value: ${value}`);return u}case ScalarType.INT64:case ScalarType.SFIXED64:case ScalarType.SINT64:return protoInt64.parse(value);case ScalarType.UINT64:case ScalarType.FIXED64:return protoInt64.uParse(value);case ScalarType.DOUBLE:case ScalarType.FLOAT:switch(value){case"inf":return Number.POSITIVE_INFINITY;case"-inf":return Number.NEGATIVE_INFINITY;case"nan":return Number.NaN;default:return parseFloat(value)}case ScalarType.BOOL:return value==="true";case ScalarType.INT32:case ScalarType.UINT32:case ScalarType.SINT32:case ScalarType.FIXED32:case ScalarType.SFIXED32:return parseInt(value,10)}}function unescapeBytesDefaultValue(str){let b=[],input={tail:str,c:"",next(){return this.tail.length==0?!1:(this.c=this.tail[0],this.tail=this.tail.substring(1),!0)},take(n){if(this.tail.length>=n){let r=this.tail.substring(0,n);return this.tail=this.tail.substring(n),r}return!1}};for(;input.next();)switch(input.c){case"\\":if(input.next())switch(input.c){case"\\":b.push(input.c.charCodeAt(0));break;case"b":b.push(8);break;case"f":b.push(12);break;case"n":b.push(10);break;case"r":b.push(13);break;case"t":b.push(9);break;case"v":b.push(11);break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":{let s=input.c,t=input.take(2);if(t===!1)return!1;let n=parseInt(s+t,8);if(Number.isNaN(n))return!1;b.push(n);break}case"x":{let s=input.c,t=input.take(2);if(t===!1)return!1;let n=parseInt(s+t,16);if(Number.isNaN(n))return!1;b.push(n);break}case"u":{let s=input.c,t=input.take(4);if(t===!1)return!1;let n=parseInt(s+t,16);if(Number.isNaN(n))return!1;let chunk=new Uint8Array(4);new DataView(chunk.buffer).setInt32(0,n,!0),b.push(chunk[0],chunk[1],chunk[2],chunk[3]);break}case"U":{let s=input.c,t=input.take(8);if(t===!1)return!1;let tc=protoInt64.uEnc(s+t),chunk=new Uint8Array(8),view=new DataView(chunk.buffer);view.setInt32(0,tc.lo,!0),view.setInt32(4,tc.hi,!0),b.push(chunk[0],chunk[1],chunk[2],chunk[3],chunk[4],chunk[5],chunk[6],chunk[7]);break}}break;default:b.push(input.c.charCodeAt(0))}return new Uint8Array(b)}function*nestedTypes(desc){switch(desc.kind){case"file":for(let message of desc.messages)yield message,yield*nestedTypes(message);yield*desc.enums,yield*desc.services,yield*desc.extensions;break;case"message":for(let message of desc.nestedMessages)yield message,yield*nestedTypes(message);yield*desc.nestedEnums,yield*desc.nestedExtensions;break}}function createFileRegistry(...args){let registry2=createBaseRegistry();if(!args.length)return registry2;if("$typeName"in args[0]&&args[0].$typeName=="google.protobuf.FileDescriptorSet"){for(let file of args[0].file)addFile(file,registry2);return registry2}if("$typeName"in args[0]){let recurseDeps=function(file){let deps=[];for(let protoFileName of file.dependency){if(registry2.getFile(protoFileName)!=null||seen.has(protoFileName))continue;let dep=resolve(protoFileName);if(!dep)throw new Error(`Unable to resolve ${protoFileName}, imported by ${file.name}`);"kind"in dep?registry2.addFile(dep,!1,!0):(seen.add(dep.name),deps.push(dep))}return deps.concat(...deps.map(recurseDeps))},input=args[0],resolve=args[1],seen=new Set;for(let file of[input,...recurseDeps(input)].reverse())addFile(file,registry2)}else for(let fileReg of args)for(let file of fileReg.files)registry2.addFile(file);return registry2}function createBaseRegistry(){let types=new Map,extendees=new Map,files=new Map;return{kind:"registry",types,extendees,[Symbol.iterator](){return types.values()},get files(){return files.values()},addFile(file,skipTypes,withDeps){if(files.set(file.proto.name,file),!skipTypes)for(let type of nestedTypes(file))this.add(type);if(withDeps)for(let f of file.dependencies)this.addFile(f,skipTypes,withDeps)},add(desc){if(desc.kind=="extension"){let numberToExt=extendees.get(desc.extendee.typeName);numberToExt||extendees.set(desc.extendee.typeName,numberToExt=new Map),numberToExt.set(desc.number,desc)}types.set(desc.typeName,desc)},get(typeName){return types.get(typeName)},getFile(fileName){return files.get(fileName)},getMessage(typeName){let t=types.get(typeName);return t?.kind=="message"?t:void 0},getEnum(typeName){let t=types.get(typeName);return t?.kind=="enum"?t:void 0},getExtension(typeName){let t=types.get(typeName);return t?.kind=="extension"?t:void 0},getExtensionFor(extendee,no){var _a;return(_a=extendees.get(extendee.typeName))===null||_a===void 0?void 0:_a.get(no)},getService(typeName){let t=types.get(typeName);return t?.kind=="service"?t:void 0}}}var EDITION_PROTO22=998,EDITION_PROTO32=999,EDITION_UNSTABLE=9999,TYPE_STRING=9,TYPE_GROUP=10,TYPE_MESSAGE=11,TYPE_BYTES=12,TYPE_ENUM=14,LABEL_REPEATED=3,LABEL_REQUIRED=2,JS_STRING=1,IDEMPOTENCY_UNKNOWN=0,EXPLICIT=1,IMPLICIT3=2,LEGACY_REQUIRED=3,PACKED=1,DELIMITED=2,OPEN=1,VERIFY=2;var maximumEdition=1001,featureDefaults={998:{fieldPresence:1,enumType:2,repeatedFieldEncoding:2,utf8Validation:3,messageEncoding:1,jsonFormat:2,enforceNamingStyle:2,defaultSymbolVisibility:1},999:{fieldPresence:2,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:2,defaultSymbolVisibility:1},1e3:{fieldPresence:1,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:2,defaultSymbolVisibility:1},1001:{fieldPresence:1,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:1,defaultSymbolVisibility:2}};function addFile(proto,reg){var _a,_b;let file={kind:"file",proto,deprecated:(_b=(_a=proto.options)===null||_a===void 0?void 0:_a.deprecated)!==null&&_b!==void 0?_b:!1,edition:getFileEdition(proto),name:proto.name.replace(/\.proto$/,""),dependencies:findFileDependencies(proto,reg),enums:[],messages:[],extensions:[],services:[],toString(){return`file ${proto.name}`}},mapEntriesStore=new Map,mapEntries={get(typeName){return mapEntriesStore.get(typeName)},add(desc){var _a2;assert2(((_a2=desc.proto.options)===null||_a2===void 0?void 0:_a2.mapEntry)===!0),mapEntriesStore.set(desc.typeName,desc)}};for(let enumProto of proto.enumType)addEnum(enumProto,file,void 0,reg);for(let messageProto of proto.messageType)addMessage(messageProto,file,void 0,reg,mapEntries);for(let serviceProto of proto.service)addService(serviceProto,file,reg);addExtensions(file,reg);for(let mapEntry of mapEntriesStore.values())addFields(mapEntry,reg,mapEntries);for(let message of file.messages)addFields(message,reg,mapEntries),addExtensions(message,reg);reg.addFile(file,!0)}function addExtensions(desc,reg){switch(desc.kind){case"file":for(let proto of desc.proto.extension){let ext=newField(proto,desc,reg);desc.extensions.push(ext),reg.add(ext)}break;case"message":for(let proto of desc.proto.extension){let ext=newField(proto,desc,reg);desc.nestedExtensions.push(ext),reg.add(ext)}for(let message of desc.nestedMessages)addExtensions(message,reg);break}}function addFields(message,reg,mapEntries){let allOneofs=message.proto.oneofDecl.map(proto=>newOneof(proto,message)),oneofsSeen=new Set;for(let proto of message.proto.field){let oneof=findOneof(proto,allOneofs),field=newField(proto,message,reg,oneof,mapEntries);message.fields.push(field),message.field[field.localName]=field,oneof===void 0?message.members.push(field):(oneof.fields.push(field),oneofsSeen.has(oneof)||(oneofsSeen.add(oneof),message.members.push(oneof)))}for(let oneof of allOneofs.filter(o=>oneofsSeen.has(o)))message.oneofs.push(oneof);for(let child of message.nestedMessages)addFields(child,reg,mapEntries)}function addEnum(proto,file,parent,reg){var _a,_b,_c,_d,_e;let sharedPrefix=findEnumSharedPrefix(proto.name,proto.value),desc={kind:"enum",proto,deprecated:(_b=(_a=proto.options)===null||_a===void 0?void 0:_a.deprecated)!==null&&_b!==void 0?_b:!1,file,parent,open:!0,name:proto.name,typeName:makeTypeName(proto,parent,file),value:{},values:[],sharedPrefix,toString(){return`enum ${this.typeName}`}};desc.open=isEnumOpen(desc),reg.add(desc);for(let p of proto.value){let name=p.name;desc.values.push(desc.value[p.number]={kind:"enum_value",proto:p,deprecated:(_d=(_c=p.options)===null||_c===void 0?void 0:_c.deprecated)!==null&&_d!==void 0?_d:!1,parent:desc,name,localName:safeObjectProperty(sharedPrefix==null?name:name.substring(sharedPrefix.length)),number:p.number,toString(){return`enum value ${desc.typeName}.${name}`}})}((_e=parent?.nestedEnums)!==null&&_e!==void 0?_e:file.enums).push(desc)}function addMessage(proto,file,parent,reg,mapEntries){var _a,_b,_c,_d;let desc={kind:"message",proto,deprecated:(_b=(_a=proto.options)===null||_a===void 0?void 0:_a.deprecated)!==null&&_b!==void 0?_b:!1,file,parent,name:proto.name,typeName:makeTypeName(proto,parent,file),fields:[],field:{},oneofs:[],members:[],nestedEnums:[],nestedMessages:[],nestedExtensions:[],toString(){return`message ${this.typeName}`}};((_c=proto.options)===null||_c===void 0?void 0:_c.mapEntry)===!0?mapEntries.add(desc):(((_d=parent?.nestedMessages)!==null&&_d!==void 0?_d:file.messages).push(desc),reg.add(desc));for(let enumProto of proto.enumType)addEnum(enumProto,file,desc,reg);for(let messageProto of proto.nestedType)addMessage(messageProto,file,desc,reg,mapEntries)}function addService(proto,file,reg){var _a,_b;let desc={kind:"service",proto,deprecated:(_b=(_a=proto.options)===null||_a===void 0?void 0:_a.deprecated)!==null&&_b!==void 0?_b:!1,file,name:proto.name,typeName:makeTypeName(proto,void 0,file),methods:[],method:{},toString(){return`service ${this.typeName}`}};file.services.push(desc),reg.add(desc);for(let methodProto of proto.method){let method=newMethod(methodProto,desc,reg);desc.methods.push(method),desc.method[method.localName]=method}}function newMethod(proto,parent,reg){var _a,_b,_c,_d;let methodKind;proto.clientStreaming&&proto.serverStreaming?methodKind="bidi_streaming":proto.clientStreaming?methodKind="client_streaming":proto.serverStreaming?methodKind="server_streaming":methodKind="unary";let input=reg.getMessage(trimLeadingDot(proto.inputType)),output=reg.getMessage(trimLeadingDot(proto.outputType));assert2(input,`invalid MethodDescriptorProto: input_type ${proto.inputType} not found`),assert2(output,`invalid MethodDescriptorProto: output_type ${proto.inputType} not found`);let name=proto.name;return{kind:"rpc",proto,deprecated:(_b=(_a=proto.options)===null||_a===void 0?void 0:_a.deprecated)!==null&&_b!==void 0?_b:!1,parent,name,localName:safeObjectProperty(name.length?safeObjectProperty(name[0].toLowerCase()+name.substring(1)):name),methodKind,input,output,idempotency:(_d=(_c=proto.options)===null||_c===void 0?void 0:_c.idempotencyLevel)!==null&&_d!==void 0?_d:IDEMPOTENCY_UNKNOWN,toString(){return`rpc ${parent.typeName}.${name}`}}}function newOneof(proto,parent){return{kind:"oneof",proto,deprecated:!1,parent,fields:[],name:proto.name,localName:safeObjectProperty(protoCamelCase(proto.name)),toString(){return`oneof ${parent.typeName}.${this.name}`}}}function newField(proto,parentOrFile,reg,oneof,mapEntries){var _a,_b,_c;let isExtension=mapEntries===void 0,field={kind:"field",proto,deprecated:(_b=(_a=proto.options)===null||_a===void 0?void 0:_a.deprecated)!==null&&_b!==void 0?_b:!1,name:proto.name,number:proto.number,scalar:void 0,message:void 0,enum:void 0,presence:getFieldPresence(proto,oneof,isExtension,parentOrFile),utf8Validation:isUtf8Validated(proto,parentOrFile),listKind:void 0,mapKind:void 0,mapKey:void 0,delimitedEncoding:void 0,packed:void 0,longAsString:!1,getDefaultValue:void 0};if(isExtension){let file=parentOrFile.kind=="file"?parentOrFile:parentOrFile.file,parent=parentOrFile.kind=="file"?void 0:parentOrFile,typeName=makeTypeName(proto,parent,file);field.kind="extension",field.file=file,field.parent=parent,field.oneof=void 0,field.typeName=typeName,field.jsonName=`[${typeName}]`,field.toString=()=>`extension ${typeName}`;let extendee=reg.getMessage(trimLeadingDot(proto.extendee));assert2(extendee,`invalid FieldDescriptorProto: extendee ${proto.extendee} not found`),field.extendee=extendee}else{let parent=parentOrFile;assert2(parent.kind=="message"),field.parent=parent,field.oneof=oneof,field.localName=oneof?protoCamelCase(proto.name):safeObjectProperty(protoCamelCase(proto.name)),field.jsonName=proto.jsonName,field.toString=()=>`field ${parent.typeName}.${proto.name}`}let label=proto.label,type=proto.type,jstype=(_c=proto.options)===null||_c===void 0?void 0:_c.jstype;if(label===LABEL_REPEATED){let mapEntry=type==TYPE_MESSAGE?mapEntries?.get(trimLeadingDot(proto.typeName)):void 0;if(mapEntry){field.fieldKind="map";let{key,value}=findMapEntryFields(mapEntry);return field.mapKey=key.scalar,field.mapKind=value.fieldKind,field.message=value.message,field.delimitedEncoding=!1,field.enum=value.enum,field.scalar=value.scalar,field}switch(field.fieldKind="list",type){case TYPE_MESSAGE:case TYPE_GROUP:field.listKind="message",field.message=reg.getMessage(trimLeadingDot(proto.typeName)),assert2(field.message),field.delimitedEncoding=isDelimitedEncoding(proto,parentOrFile);break;case TYPE_ENUM:field.listKind="enum",field.enum=reg.getEnum(trimLeadingDot(proto.typeName)),assert2(field.enum);break;default:field.listKind="scalar",field.scalar=type,field.longAsString=jstype==JS_STRING;break}return field.packed=isPackedField(proto,parentOrFile),field}switch(type){case TYPE_MESSAGE:case TYPE_GROUP:field.fieldKind="message",field.message=reg.getMessage(trimLeadingDot(proto.typeName)),assert2(field.message,`invalid FieldDescriptorProto: type_name ${proto.typeName} not found`),field.delimitedEncoding=isDelimitedEncoding(proto,parentOrFile),field.getDefaultValue=()=>{};break;case TYPE_ENUM:{let enumeration=reg.getEnum(trimLeadingDot(proto.typeName));assert2(enumeration!==void 0,`invalid FieldDescriptorProto: type_name ${proto.typeName} not found`),field.fieldKind="enum",field.enum=reg.getEnum(trimLeadingDot(proto.typeName)),field.getDefaultValue=()=>unsafeIsSetExplicit(proto,"defaultValue")?parseTextFormatEnumValue(enumeration,proto.defaultValue):void 0;break}default:{field.fieldKind="scalar",field.scalar=type,field.longAsString=jstype==JS_STRING,field.getDefaultValue=()=>unsafeIsSetExplicit(proto,"defaultValue")?parseTextFormatScalarValue(type,proto.defaultValue):void 0;break}}return field}function getFileEdition(proto){switch(proto.syntax){case"":case"proto2":return EDITION_PROTO22;case"proto3":return EDITION_PROTO32;case"editions":if(proto.edition===EDITION_UNSTABLE)return maximumEdition;if(proto.edition in featureDefaults)return proto.edition;throw new Error(`${proto.name}: unsupported edition`);default:throw new Error(`${proto.name}: unsupported syntax "${proto.syntax}"`)}}function findFileDependencies(proto,reg){return proto.dependency.map(wantName=>{let dep=reg.getFile(wantName);if(!dep)throw new Error(`Cannot find ${wantName}, imported by ${proto.name}`);return dep})}function findEnumSharedPrefix(enumName,values){let prefix=camelToSnakeCase(enumName)+"_";for(let value of values){if(!value.name.toLowerCase().startsWith(prefix))return;let shortName=value.name.substring(prefix.length);if(shortName.length==0||/^\d/.test(shortName))return}return prefix}function camelToSnakeCase(camel){return(camel.substring(0,1)+camel.substring(1).replace(/[A-Z]/g,c=>"_"+c)).toLowerCase()}function makeTypeName(proto,parent,file){let typeName;return parent?typeName=`${parent.typeName}.${proto.name}`:file.proto.package.length>0?typeName=`${file.proto.package}.${proto.name}`:typeName=`${proto.name}`,typeName}function trimLeadingDot(typeName){return typeName.startsWith(".")?typeName.substring(1):typeName}function findOneof(proto,allOneofs){if(!unsafeIsSetExplicit(proto,"oneofIndex")||proto.proto3Optional)return;let oneof=allOneofs[proto.oneofIndex];return assert2(oneof,`invalid FieldDescriptorProto: oneof #${proto.oneofIndex} for field #${proto.number} not found`),oneof}function getFieldPresence(proto,oneof,isExtension,parent){if(proto.label==LABEL_REQUIRED)return LEGACY_REQUIRED;if(proto.label==LABEL_REPEATED)return IMPLICIT3;if(oneof||proto.proto3Optional||isExtension)return EXPLICIT;let resolved=resolveFeature("fieldPresence",{proto,parent});return resolved==IMPLICIT3&&(proto.type==TYPE_MESSAGE||proto.type==TYPE_GROUP)?EXPLICIT:resolved}function isPackedField(proto,parent){if(proto.label!=LABEL_REPEATED)return!1;switch(proto.type){case TYPE_STRING:case TYPE_BYTES:case TYPE_GROUP:case TYPE_MESSAGE:return!1}let o=proto.options;return o&&unsafeIsSetExplicit(o,"packed")?o.packed:PACKED==resolveFeature("repeatedFieldEncoding",{proto,parent})}function findMapEntryFields(mapEntry){let key=mapEntry.fields.find(f=>f.number===1),value=mapEntry.fields.find(f=>f.number===2);return assert2(key&&key.fieldKind=="scalar"&&key.scalar!=ScalarType.BYTES&&key.scalar!=ScalarType.FLOAT&&key.scalar!=ScalarType.DOUBLE&&value&&value.fieldKind!="list"&&value.fieldKind!="map"),{key,value}}function isEnumOpen(desc){var _a;return OPEN==resolveFeature("enumType",{proto:desc.proto,parent:(_a=desc.parent)!==null&&_a!==void 0?_a:desc.file})}function isDelimitedEncoding(proto,parent){return proto.type==TYPE_GROUP?!0:DELIMITED==resolveFeature("messageEncoding",{proto,parent})}function isUtf8Validated(proto,parent){return VERIFY==resolveFeature("utf8Validation",{proto,parent})}function resolveFeature(name,ref){var _a,_b;let featureSet=(_a=ref.proto.options)===null||_a===void 0?void 0:_a.features;if(featureSet){let val=featureSet[name];if(val!=0)return val}if("kind"in ref){if(ref.kind=="message")return resolveFeature(name,(_b=ref.parent)!==null&&_b!==void 0?_b:ref.file);let editionDefaults=featureDefaults[ref.edition];if(!editionDefaults)throw new Error(`feature default for edition ${ref.edition} not found`);return editionDefaults[name]}return resolveFeature(name,ref.parent)}function assert2(condition,msg){if(!condition)throw new Error(msg)}function boot(boot2){let root=bootFileDescriptorProto(boot2);return root.messageType.forEach(restoreJsonNames),createFileRegistry(root,()=>{}).getFile(root.name)}function bootFileDescriptorProto(init){return Object.assign(Object.create({syntax:"",edition:0}),Object.assign(Object.assign({$typeName:"google.protobuf.FileDescriptorProto",dependency:[],publicDependency:[],weakDependency:[],optionDependency:[],service:[],extension:[]},init),{messageType:init.messageType.map(bootDescriptorProto),enumType:init.enumType.map(bootEnumDescriptorProto)}))}function bootDescriptorProto(init){var _a,_b,_c,_d,_e,_f,_g,_h;return Object.assign(Object.create({visibility:0}),{$typeName:"google.protobuf.DescriptorProto",name:init.name,field:(_b=(_a=init.field)===null||_a===void 0?void 0:_a.map(bootFieldDescriptorProto))!==null&&_b!==void 0?_b:[],extension:[],nestedType:(_d=(_c=init.nestedType)===null||_c===void 0?void 0:_c.map(bootDescriptorProto))!==null&&_d!==void 0?_d:[],enumType:(_f=(_e=init.enumType)===null||_e===void 0?void 0:_e.map(bootEnumDescriptorProto))!==null&&_f!==void 0?_f:[],extensionRange:(_h=(_g=init.extensionRange)===null||_g===void 0?void 0:_g.map(e=>Object.assign({$typeName:"google.protobuf.DescriptorProto.ExtensionRange"},e)))!==null&&_h!==void 0?_h:[],oneofDecl:[],reservedRange:[],reservedName:[]})}function bootFieldDescriptorProto(init){return Object.assign(Object.create({label:1,typeName:"",extendee:"",defaultValue:"",oneofIndex:0,jsonName:"",proto3Optional:!1}),Object.assign(Object.assign({$typeName:"google.protobuf.FieldDescriptorProto"},init),{options:init.options?bootFieldOptions(init.options):void 0}))}function bootFieldOptions(init){var _a,_b,_c;return Object.assign(Object.create({ctype:0,packed:!1,jstype:0,lazy:!1,unverifiedLazy:!1,deprecated:!1,weak:!1,debugRedact:!1,retention:0}),Object.assign(Object.assign({$typeName:"google.protobuf.FieldOptions"},init),{targets:(_a=init.targets)!==null&&_a!==void 0?_a:[],editionDefaults:(_c=(_b=init.editionDefaults)===null||_b===void 0?void 0:_b.map(e=>Object.assign({$typeName:"google.protobuf.FieldOptions.EditionDefault"},e)))!==null&&_c!==void 0?_c:[],uninterpretedOption:[]}))}function bootEnumDescriptorProto(init){return Object.assign(Object.create({visibility:0}),{$typeName:"google.protobuf.EnumDescriptorProto",name:init.name,reservedName:[],reservedRange:[],value:init.value.map(e=>Object.assign({$typeName:"google.protobuf.EnumValueDescriptorProto"},e))})}function messageDesc(file,path,...paths){return paths.reduce((acc,cur)=>acc.nestedMessages[cur],file.messages[path])}var file_google_protobuf_descriptor=boot({name:"google/protobuf/descriptor.proto",package:"google.protobuf",messageType:[{name:"FileDescriptorSet",field:[{name:"file",number:1,type:11,label:3,typeName:".google.protobuf.FileDescriptorProto"}],extensionRange:[{start:536e6,end:536000001}]},{name:"FileDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"package",number:2,type:9,label:1},{name:"dependency",number:3,type:9,label:3},{name:"public_dependency",number:10,type:5,label:3},{name:"weak_dependency",number:11,type:5,label:3},{name:"option_dependency",number:15,type:9,label:3},{name:"message_type",number:4,type:11,label:3,typeName:".google.protobuf.DescriptorProto"},{name:"enum_type",number:5,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto"},{name:"service",number:6,type:11,label:3,typeName:".google.protobuf.ServiceDescriptorProto"},{name:"extension",number:7,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"options",number:8,type:11,label:1,typeName:".google.protobuf.FileOptions"},{name:"source_code_info",number:9,type:11,label:1,typeName:".google.protobuf.SourceCodeInfo"},{name:"syntax",number:12,type:9,label:1},{name:"edition",number:14,type:14,label:1,typeName:".google.protobuf.Edition"}]},{name:"DescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"field",number:2,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"extension",number:6,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"nested_type",number:3,type:11,label:3,typeName:".google.protobuf.DescriptorProto"},{name:"enum_type",number:4,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto"},{name:"extension_range",number:5,type:11,label:3,typeName:".google.protobuf.DescriptorProto.ExtensionRange"},{name:"oneof_decl",number:8,type:11,label:3,typeName:".google.protobuf.OneofDescriptorProto"},{name:"options",number:7,type:11,label:1,typeName:".google.protobuf.MessageOptions"},{name:"reserved_range",number:9,type:11,label:3,typeName:".google.protobuf.DescriptorProto.ReservedRange"},{name:"reserved_name",number:10,type:9,label:3},{name:"visibility",number:11,type:14,label:1,typeName:".google.protobuf.SymbolVisibility"}],nestedType:[{name:"ExtensionRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.ExtensionRangeOptions"}]},{name:"ReservedRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1}]}]},{name:"ExtensionRangeOptions",field:[{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"},{name:"declaration",number:2,type:11,label:3,typeName:".google.protobuf.ExtensionRangeOptions.Declaration",options:{retention:2}},{name:"features",number:50,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"verification",number:3,type:14,label:1,typeName:".google.protobuf.ExtensionRangeOptions.VerificationState",defaultValue:"UNVERIFIED",options:{retention:2}}],nestedType:[{name:"Declaration",field:[{name:"number",number:1,type:5,label:1},{name:"full_name",number:2,type:9,label:1},{name:"type",number:3,type:9,label:1},{name:"reserved",number:5,type:8,label:1},{name:"repeated",number:6,type:8,label:1}]}],enumType:[{name:"VerificationState",value:[{name:"DECLARATION",number:0},{name:"UNVERIFIED",number:1}]}],extensionRange:[{start:1e3,end:536870912}]},{name:"FieldDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"number",number:3,type:5,label:1},{name:"label",number:4,type:14,label:1,typeName:".google.protobuf.FieldDescriptorProto.Label"},{name:"type",number:5,type:14,label:1,typeName:".google.protobuf.FieldDescriptorProto.Type"},{name:"type_name",number:6,type:9,label:1},{name:"extendee",number:2,type:9,label:1},{name:"default_value",number:7,type:9,label:1},{name:"oneof_index",number:9,type:5,label:1},{name:"json_name",number:10,type:9,label:1},{name:"options",number:8,type:11,label:1,typeName:".google.protobuf.FieldOptions"},{name:"proto3_optional",number:17,type:8,label:1}],enumType:[{name:"Type",value:[{name:"TYPE_DOUBLE",number:1},{name:"TYPE_FLOAT",number:2},{name:"TYPE_INT64",number:3},{name:"TYPE_UINT64",number:4},{name:"TYPE_INT32",number:5},{name:"TYPE_FIXED64",number:6},{name:"TYPE_FIXED32",number:7},{name:"TYPE_BOOL",number:8},{name:"TYPE_STRING",number:9},{name:"TYPE_GROUP",number:10},{name:"TYPE_MESSAGE",number:11},{name:"TYPE_BYTES",number:12},{name:"TYPE_UINT32",number:13},{name:"TYPE_ENUM",number:14},{name:"TYPE_SFIXED32",number:15},{name:"TYPE_SFIXED64",number:16},{name:"TYPE_SINT32",number:17},{name:"TYPE_SINT64",number:18}]},{name:"Label",value:[{name:"LABEL_OPTIONAL",number:1},{name:"LABEL_REPEATED",number:3},{name:"LABEL_REQUIRED",number:2}]}]},{name:"OneofDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"options",number:2,type:11,label:1,typeName:".google.protobuf.OneofOptions"}]},{name:"EnumDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"value",number:2,type:11,label:3,typeName:".google.protobuf.EnumValueDescriptorProto"},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.EnumOptions"},{name:"reserved_range",number:4,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto.EnumReservedRange"},{name:"reserved_name",number:5,type:9,label:3},{name:"visibility",number:6,type:14,label:1,typeName:".google.protobuf.SymbolVisibility"}],nestedType:[{name:"EnumReservedRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1}]}]},{name:"EnumValueDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"number",number:2,type:5,label:1},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.EnumValueOptions"}]},{name:"ServiceDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"method",number:2,type:11,label:3,typeName:".google.protobuf.MethodDescriptorProto"},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.ServiceOptions"}]},{name:"MethodDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"input_type",number:2,type:9,label:1},{name:"output_type",number:3,type:9,label:1},{name:"options",number:4,type:11,label:1,typeName:".google.protobuf.MethodOptions"},{name:"client_streaming",number:5,type:8,label:1,defaultValue:"false"},{name:"server_streaming",number:6,type:8,label:1,defaultValue:"false"}]},{name:"FileOptions",field:[{name:"java_package",number:1,type:9,label:1},{name:"java_outer_classname",number:8,type:9,label:1},{name:"java_multiple_files",number:10,type:8,label:1,defaultValue:"false",options:{}},{name:"java_generate_equals_and_hash",number:20,type:8,label:1,options:{deprecated:!0}},{name:"java_string_check_utf8",number:27,type:8,label:1,defaultValue:"false"},{name:"optimize_for",number:9,type:14,label:1,typeName:".google.protobuf.FileOptions.OptimizeMode",defaultValue:"SPEED"},{name:"go_package",number:11,type:9,label:1},{name:"cc_generic_services",number:16,type:8,label:1,defaultValue:"false"},{name:"java_generic_services",number:17,type:8,label:1,defaultValue:"false"},{name:"py_generic_services",number:18,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:23,type:8,label:1,defaultValue:"false"},{name:"cc_enable_arenas",number:31,type:8,label:1,defaultValue:"true"},{name:"objc_class_prefix",number:36,type:9,label:1},{name:"csharp_namespace",number:37,type:9,label:1},{name:"swift_prefix",number:39,type:9,label:1},{name:"php_class_prefix",number:40,type:9,label:1},{name:"php_namespace",number:41,type:9,label:1},{name:"php_metadata_namespace",number:44,type:9,label:1},{name:"ruby_package",number:45,type:9,label:1},{name:"features",number:50,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],enumType:[{name:"OptimizeMode",value:[{name:"SPEED",number:1},{name:"CODE_SIZE",number:2},{name:"LITE_RUNTIME",number:3}]}],extensionRange:[{start:1e3,end:536870912}]},{name:"MessageOptions",field:[{name:"message_set_wire_format",number:1,type:8,label:1,defaultValue:"false"},{name:"no_standard_descriptor_accessor",number:2,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"map_entry",number:7,type:8,label:1},{name:"deprecated_legacy_json_field_conflicts",number:11,type:8,label:1,options:{deprecated:!0}},{name:"features",number:12,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"FieldOptions",field:[{name:"ctype",number:1,type:14,label:1,typeName:".google.protobuf.FieldOptions.CType",defaultValue:"STRING"},{name:"packed",number:2,type:8,label:1},{name:"jstype",number:6,type:14,label:1,typeName:".google.protobuf.FieldOptions.JSType",defaultValue:"JS_NORMAL"},{name:"lazy",number:5,type:8,label:1,defaultValue:"false"},{name:"unverified_lazy",number:15,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"weak",number:10,type:8,label:1,defaultValue:"false",options:{deprecated:!0}},{name:"debug_redact",number:16,type:8,label:1,defaultValue:"false"},{name:"retention",number:17,type:14,label:1,typeName:".google.protobuf.FieldOptions.OptionRetention"},{name:"targets",number:19,type:14,label:3,typeName:".google.protobuf.FieldOptions.OptionTargetType"},{name:"edition_defaults",number:20,type:11,label:3,typeName:".google.protobuf.FieldOptions.EditionDefault"},{name:"features",number:21,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"feature_support",number:22,type:11,label:1,typeName:".google.protobuf.FieldOptions.FeatureSupport"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],nestedType:[{name:"EditionDefault",field:[{name:"edition",number:3,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"value",number:2,type:9,label:1}]},{name:"FeatureSupport",field:[{name:"edition_introduced",number:1,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"edition_deprecated",number:2,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"deprecation_warning",number:3,type:9,label:1},{name:"edition_removed",number:4,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"removal_error",number:5,type:9,label:1}]}],enumType:[{name:"CType",value:[{name:"STRING",number:0},{name:"CORD",number:1},{name:"STRING_PIECE",number:2}]},{name:"JSType",value:[{name:"JS_NORMAL",number:0},{name:"JS_STRING",number:1},{name:"JS_NUMBER",number:2}]},{name:"OptionRetention",value:[{name:"RETENTION_UNKNOWN",number:0},{name:"RETENTION_RUNTIME",number:1},{name:"RETENTION_SOURCE",number:2}]},{name:"OptionTargetType",value:[{name:"TARGET_TYPE_UNKNOWN",number:0},{name:"TARGET_TYPE_FILE",number:1},{name:"TARGET_TYPE_EXTENSION_RANGE",number:2},{name:"TARGET_TYPE_MESSAGE",number:3},{name:"TARGET_TYPE_FIELD",number:4},{name:"TARGET_TYPE_ONEOF",number:5},{name:"TARGET_TYPE_ENUM",number:6},{name:"TARGET_TYPE_ENUM_ENTRY",number:7},{name:"TARGET_TYPE_SERVICE",number:8},{name:"TARGET_TYPE_METHOD",number:9}]}],extensionRange:[{start:1e3,end:536870912}]},{name:"OneofOptions",field:[{name:"features",number:1,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"EnumOptions",field:[{name:"allow_alias",number:2,type:8,label:1},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"deprecated_legacy_json_field_conflicts",number:6,type:8,label:1,options:{deprecated:!0}},{name:"features",number:7,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"EnumValueOptions",field:[{name:"deprecated",number:1,type:8,label:1,defaultValue:"false"},{name:"features",number:2,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"debug_redact",number:3,type:8,label:1,defaultValue:"false"},{name:"feature_support",number:4,type:11,label:1,typeName:".google.protobuf.FieldOptions.FeatureSupport"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"ServiceOptions",field:[{name:"features",number:34,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"deprecated",number:33,type:8,label:1,defaultValue:"false"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"MethodOptions",field:[{name:"deprecated",number:33,type:8,label:1,defaultValue:"false"},{name:"idempotency_level",number:34,type:14,label:1,typeName:".google.protobuf.MethodOptions.IdempotencyLevel",defaultValue:"IDEMPOTENCY_UNKNOWN"},{name:"features",number:35,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],enumType:[{name:"IdempotencyLevel",value:[{name:"IDEMPOTENCY_UNKNOWN",number:0},{name:"NO_SIDE_EFFECTS",number:1},{name:"IDEMPOTENT",number:2}]}],extensionRange:[{start:1e3,end:536870912}]},{name:"UninterpretedOption",field:[{name:"name",number:2,type:11,label:3,typeName:".google.protobuf.UninterpretedOption.NamePart"},{name:"identifier_value",number:3,type:9,label:1},{name:"positive_int_value",number:4,type:4,label:1},{name:"negative_int_value",number:5,type:3,label:1},{name:"double_value",number:6,type:1,label:1},{name:"string_value",number:7,type:12,label:1},{name:"aggregate_value",number:8,type:9,label:1}],nestedType:[{name:"NamePart",field:[{name:"name_part",number:1,type:9,label:2},{name:"is_extension",number:2,type:8,label:2}]}]},{name:"FeatureSet",field:[{name:"field_presence",number:1,type:14,label:1,typeName:".google.protobuf.FeatureSet.FieldPresence",options:{retention:1,targets:[4,1],editionDefaults:[{value:"EXPLICIT",edition:900},{value:"IMPLICIT",edition:999},{value:"EXPLICIT",edition:1e3}]}},{name:"enum_type",number:2,type:14,label:1,typeName:".google.protobuf.FeatureSet.EnumType",options:{retention:1,targets:[6,1],editionDefaults:[{value:"CLOSED",edition:900},{value:"OPEN",edition:999}]}},{name:"repeated_field_encoding",number:3,type:14,label:1,typeName:".google.protobuf.FeatureSet.RepeatedFieldEncoding",options:{retention:1,targets:[4,1],editionDefaults:[{value:"EXPANDED",edition:900},{value:"PACKED",edition:999}]}},{name:"utf8_validation",number:4,type:14,label:1,typeName:".google.protobuf.FeatureSet.Utf8Validation",options:{retention:1,targets:[4,1],editionDefaults:[{value:"NONE",edition:900},{value:"VERIFY",edition:999}]}},{name:"message_encoding",number:5,type:14,label:1,typeName:".google.protobuf.FeatureSet.MessageEncoding",options:{retention:1,targets:[4,1],editionDefaults:[{value:"LENGTH_PREFIXED",edition:900}]}},{name:"json_format",number:6,type:14,label:1,typeName:".google.protobuf.FeatureSet.JsonFormat",options:{retention:1,targets:[3,6,1],editionDefaults:[{value:"LEGACY_BEST_EFFORT",edition:900},{value:"ALLOW",edition:999}]}},{name:"enforce_naming_style",number:7,type:14,label:1,typeName:".google.protobuf.FeatureSet.EnforceNamingStyle",options:{retention:2,targets:[1,2,3,4,5,6,7,8,9],editionDefaults:[{value:"STYLE_LEGACY",edition:900},{value:"STYLE2024",edition:1001}]}},{name:"default_symbol_visibility",number:8,type:14,label:1,typeName:".google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility",options:{retention:2,targets:[1],editionDefaults:[{value:"EXPORT_ALL",edition:900},{value:"EXPORT_TOP_LEVEL",edition:1001}]}}],nestedType:[{name:"VisibilityFeature",enumType:[{name:"DefaultSymbolVisibility",value:[{name:"DEFAULT_SYMBOL_VISIBILITY_UNKNOWN",number:0},{name:"EXPORT_ALL",number:1},{name:"EXPORT_TOP_LEVEL",number:2},{name:"LOCAL_ALL",number:3},{name:"STRICT",number:4}]}]}],enumType:[{name:"FieldPresence",value:[{name:"FIELD_PRESENCE_UNKNOWN",number:0},{name:"EXPLICIT",number:1},{name:"IMPLICIT",number:2},{name:"LEGACY_REQUIRED",number:3}]},{name:"EnumType",value:[{name:"ENUM_TYPE_UNKNOWN",number:0},{name:"OPEN",number:1},{name:"CLOSED",number:2}]},{name:"RepeatedFieldEncoding",value:[{name:"REPEATED_FIELD_ENCODING_UNKNOWN",number:0},{name:"PACKED",number:1},{name:"EXPANDED",number:2}]},{name:"Utf8Validation",value:[{name:"UTF8_VALIDATION_UNKNOWN",number:0},{name:"VERIFY",number:2},{name:"NONE",number:3}]},{name:"MessageEncoding",value:[{name:"MESSAGE_ENCODING_UNKNOWN",number:0},{name:"LENGTH_PREFIXED",number:1},{name:"DELIMITED",number:2}]},{name:"JsonFormat",value:[{name:"JSON_FORMAT_UNKNOWN",number:0},{name:"ALLOW",number:1},{name:"LEGACY_BEST_EFFORT",number:2}]},{name:"EnforceNamingStyle",value:[{name:"ENFORCE_NAMING_STYLE_UNKNOWN",number:0},{name:"STYLE2024",number:1},{name:"STYLE_LEGACY",number:2}]}],extensionRange:[{start:1e3,end:9995},{start:9995,end:1e4},{start:1e4,end:10001}]},{name:"FeatureSetDefaults",field:[{name:"defaults",number:1,type:11,label:3,typeName:".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault"},{name:"minimum_edition",number:4,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"maximum_edition",number:5,type:14,label:1,typeName:".google.protobuf.Edition"}],nestedType:[{name:"FeatureSetEditionDefault",field:[{name:"edition",number:3,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"overridable_features",number:4,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"fixed_features",number:5,type:11,label:1,typeName:".google.protobuf.FeatureSet"}]}]},{name:"SourceCodeInfo",field:[{name:"location",number:1,type:11,label:3,typeName:".google.protobuf.SourceCodeInfo.Location"}],nestedType:[{name:"Location",field:[{name:"path",number:1,type:5,label:3,options:{packed:!0}},{name:"span",number:2,type:5,label:3,options:{packed:!0}},{name:"leading_comments",number:3,type:9,label:1},{name:"trailing_comments",number:4,type:9,label:1},{name:"leading_detached_comments",number:6,type:9,label:3}]}],extensionRange:[{start:536e6,end:536000001}]},{name:"GeneratedCodeInfo",field:[{name:"annotation",number:1,type:11,label:3,typeName:".google.protobuf.GeneratedCodeInfo.Annotation"}],nestedType:[{name:"Annotation",field:[{name:"path",number:1,type:5,label:3,options:{packed:!0}},{name:"source_file",number:2,type:9,label:1},{name:"begin",number:3,type:5,label:1},{name:"end",number:4,type:5,label:1},{name:"semantic",number:5,type:14,label:1,typeName:".google.protobuf.GeneratedCodeInfo.Annotation.Semantic"}],enumType:[{name:"Semantic",value:[{name:"NONE",number:0},{name:"SET",number:1},{name:"ALIAS",number:2}]}]}]}],enumType:[{name:"Edition",value:[{name:"EDITION_UNKNOWN",number:0},{name:"EDITION_LEGACY",number:900},{name:"EDITION_PROTO2",number:998},{name:"EDITION_PROTO3",number:999},{name:"EDITION_2023",number:1e3},{name:"EDITION_2024",number:1001},{name:"EDITION_UNSTABLE",number:9999},{name:"EDITION_1_TEST_ONLY",number:1},{name:"EDITION_2_TEST_ONLY",number:2},{name:"EDITION_99997_TEST_ONLY",number:99997},{name:"EDITION_99998_TEST_ONLY",number:99998},{name:"EDITION_99999_TEST_ONLY",number:99999},{name:"EDITION_MAX",number:2147483647}]},{name:"SymbolVisibility",value:[{name:"VISIBILITY_UNSET",number:0},{name:"VISIBILITY_LOCAL",number:1},{name:"VISIBILITY_EXPORT",number:2}]}]});var FileDescriptorProtoSchema=messageDesc(file_google_protobuf_descriptor,1);var ExtensionRangeOptions_VerificationState;(function(ExtensionRangeOptions_VerificationState2){ExtensionRangeOptions_VerificationState2[ExtensionRangeOptions_VerificationState2.DECLARATION=0]="DECLARATION",ExtensionRangeOptions_VerificationState2[ExtensionRangeOptions_VerificationState2.UNVERIFIED=1]="UNVERIFIED"})(ExtensionRangeOptions_VerificationState||(ExtensionRangeOptions_VerificationState={}));var FieldDescriptorProto_Type;(function(FieldDescriptorProto_Type2){FieldDescriptorProto_Type2[FieldDescriptorProto_Type2.DOUBLE=1]="DOUBLE",FieldDescriptorProto_Type2[FieldDescriptorProto_Type2.FLOAT=2]="FLOAT",FieldDescriptorProto_Type2[FieldDescriptorProto_Type2.INT64=3]="INT64",FieldDescriptorProto_Type2[FieldDescriptorProto_Type2.UINT64=4]="UINT64",FieldDescriptorProto_Type2[FieldDescriptorProto_Type2.INT32=5]="INT32",FieldDescriptorProto_Type2[FieldDescriptorProto_Type2.FIXED64=6]="FIXED64",FieldDescriptorProto_Type2[FieldDescriptorProto_Type2.FIXED32=7]="FIXED32",FieldDescriptorProto_Type2[FieldDescriptorProto_Type2.BOOL=8]="BOOL",FieldDescriptorProto_Type2[FieldDescriptorProto_Type2.STRING=9]="STRING",FieldDescriptorProto_Type2[FieldDescriptorProto_Type2.GROUP=10]="GROUP",FieldDescriptorProto_Type2[FieldDescriptorProto_Type2.MESSAGE=11]="MESSAGE",FieldDescriptorProto_Type2[FieldDescriptorProto_Type2.BYTES=12]="BYTES",FieldDescriptorProto_Type2[FieldDescriptorProto_Type2.UINT32=13]="UINT32",FieldDescriptorProto_Type2[FieldDescriptorProto_Type2.ENUM=14]="ENUM",FieldDescriptorProto_Type2[FieldDescriptorProto_Type2.SFIXED32=15]="SFIXED32",FieldDescriptorProto_Type2[FieldDescriptorProto_Type2.SFIXED64=16]="SFIXED64",FieldDescriptorProto_Type2[FieldDescriptorProto_Type2.SINT32=17]="SINT32",FieldDescriptorProto_Type2[FieldDescriptorProto_Type2.SINT64=18]="SINT64"})(FieldDescriptorProto_Type||(FieldDescriptorProto_Type={}));var FieldDescriptorProto_Label;(function(FieldDescriptorProto_Label2){FieldDescriptorProto_Label2[FieldDescriptorProto_Label2.OPTIONAL=1]="OPTIONAL",FieldDescriptorProto_Label2[FieldDescriptorProto_Label2.REPEATED=3]="REPEATED",FieldDescriptorProto_Label2[FieldDescriptorProto_Label2.REQUIRED=2]="REQUIRED"})(FieldDescriptorProto_Label||(FieldDescriptorProto_Label={}));var FileOptions_OptimizeMode;(function(FileOptions_OptimizeMode2){FileOptions_OptimizeMode2[FileOptions_OptimizeMode2.SPEED=1]="SPEED",FileOptions_OptimizeMode2[FileOptions_OptimizeMode2.CODE_SIZE=2]="CODE_SIZE",FileOptions_OptimizeMode2[FileOptions_OptimizeMode2.LITE_RUNTIME=3]="LITE_RUNTIME"})(FileOptions_OptimizeMode||(FileOptions_OptimizeMode={}));var FieldOptions_CType;(function(FieldOptions_CType2){FieldOptions_CType2[FieldOptions_CType2.STRING=0]="STRING",FieldOptions_CType2[FieldOptions_CType2.CORD=1]="CORD",FieldOptions_CType2[FieldOptions_CType2.STRING_PIECE=2]="STRING_PIECE"})(FieldOptions_CType||(FieldOptions_CType={}));var FieldOptions_JSType;(function(FieldOptions_JSType2){FieldOptions_JSType2[FieldOptions_JSType2.JS_NORMAL=0]="JS_NORMAL",FieldOptions_JSType2[FieldOptions_JSType2.JS_STRING=1]="JS_STRING",FieldOptions_JSType2[FieldOptions_JSType2.JS_NUMBER=2]="JS_NUMBER"})(FieldOptions_JSType||(FieldOptions_JSType={}));var FieldOptions_OptionRetention;(function(FieldOptions_OptionRetention2){FieldOptions_OptionRetention2[FieldOptions_OptionRetention2.RETENTION_UNKNOWN=0]="RETENTION_UNKNOWN",FieldOptions_OptionRetention2[FieldOptions_OptionRetention2.RETENTION_RUNTIME=1]="RETENTION_RUNTIME",FieldOptions_OptionRetention2[FieldOptions_OptionRetention2.RETENTION_SOURCE=2]="RETENTION_SOURCE"})(FieldOptions_OptionRetention||(FieldOptions_OptionRetention={}));var FieldOptions_OptionTargetType;(function(FieldOptions_OptionTargetType2){FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2.TARGET_TYPE_UNKNOWN=0]="TARGET_TYPE_UNKNOWN",FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2.TARGET_TYPE_FILE=1]="TARGET_TYPE_FILE",FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2.TARGET_TYPE_EXTENSION_RANGE=2]="TARGET_TYPE_EXTENSION_RANGE",FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2.TARGET_TYPE_MESSAGE=3]="TARGET_TYPE_MESSAGE",FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2.TARGET_TYPE_FIELD=4]="TARGET_TYPE_FIELD",FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2.TARGET_TYPE_ONEOF=5]="TARGET_TYPE_ONEOF",FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2.TARGET_TYPE_ENUM=6]="TARGET_TYPE_ENUM",FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2.TARGET_TYPE_ENUM_ENTRY=7]="TARGET_TYPE_ENUM_ENTRY",FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2.TARGET_TYPE_SERVICE=8]="TARGET_TYPE_SERVICE",FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2.TARGET_TYPE_METHOD=9]="TARGET_TYPE_METHOD"})(FieldOptions_OptionTargetType||(FieldOptions_OptionTargetType={}));var MethodOptions_IdempotencyLevel;(function(MethodOptions_IdempotencyLevel2){MethodOptions_IdempotencyLevel2[MethodOptions_IdempotencyLevel2.IDEMPOTENCY_UNKNOWN=0]="IDEMPOTENCY_UNKNOWN",MethodOptions_IdempotencyLevel2[MethodOptions_IdempotencyLevel2.NO_SIDE_EFFECTS=1]="NO_SIDE_EFFECTS",MethodOptions_IdempotencyLevel2[MethodOptions_IdempotencyLevel2.IDEMPOTENT=2]="IDEMPOTENT"})(MethodOptions_IdempotencyLevel||(MethodOptions_IdempotencyLevel={}));var FeatureSet_VisibilityFeature_DefaultSymbolVisibility;(function(FeatureSet_VisibilityFeature_DefaultSymbolVisibility2){FeatureSet_VisibilityFeature_DefaultSymbolVisibility2[FeatureSet_VisibilityFeature_DefaultSymbolVisibility2.DEFAULT_SYMBOL_VISIBILITY_UNKNOWN=0]="DEFAULT_SYMBOL_VISIBILITY_UNKNOWN",FeatureSet_VisibilityFeature_DefaultSymbolVisibility2[FeatureSet_VisibilityFeature_DefaultSymbolVisibility2.EXPORT_ALL=1]="EXPORT_ALL",FeatureSet_VisibilityFeature_DefaultSymbolVisibility2[FeatureSet_VisibilityFeature_DefaultSymbolVisibility2.EXPORT_TOP_LEVEL=2]="EXPORT_TOP_LEVEL",FeatureSet_VisibilityFeature_DefaultSymbolVisibility2[FeatureSet_VisibilityFeature_DefaultSymbolVisibility2.LOCAL_ALL=3]="LOCAL_ALL",FeatureSet_VisibilityFeature_DefaultSymbolVisibility2[FeatureSet_VisibilityFeature_DefaultSymbolVisibility2.STRICT=4]="STRICT"})(FeatureSet_VisibilityFeature_DefaultSymbolVisibility||(FeatureSet_VisibilityFeature_DefaultSymbolVisibility={}));var FeatureSet_FieldPresence;(function(FeatureSet_FieldPresence2){FeatureSet_FieldPresence2[FeatureSet_FieldPresence2.FIELD_PRESENCE_UNKNOWN=0]="FIELD_PRESENCE_UNKNOWN",FeatureSet_FieldPresence2[FeatureSet_FieldPresence2.EXPLICIT=1]="EXPLICIT",FeatureSet_FieldPresence2[FeatureSet_FieldPresence2.IMPLICIT=2]="IMPLICIT",FeatureSet_FieldPresence2[FeatureSet_FieldPresence2.LEGACY_REQUIRED=3]="LEGACY_REQUIRED"})(FeatureSet_FieldPresence||(FeatureSet_FieldPresence={}));var FeatureSet_EnumType;(function(FeatureSet_EnumType2){FeatureSet_EnumType2[FeatureSet_EnumType2.ENUM_TYPE_UNKNOWN=0]="ENUM_TYPE_UNKNOWN",FeatureSet_EnumType2[FeatureSet_EnumType2.OPEN=1]="OPEN",FeatureSet_EnumType2[FeatureSet_EnumType2.CLOSED=2]="CLOSED"})(FeatureSet_EnumType||(FeatureSet_EnumType={}));var FeatureSet_RepeatedFieldEncoding;(function(FeatureSet_RepeatedFieldEncoding2){FeatureSet_RepeatedFieldEncoding2[FeatureSet_RepeatedFieldEncoding2.REPEATED_FIELD_ENCODING_UNKNOWN=0]="REPEATED_FIELD_ENCODING_UNKNOWN",FeatureSet_RepeatedFieldEncoding2[FeatureSet_RepeatedFieldEncoding2.PACKED=1]="PACKED",FeatureSet_RepeatedFieldEncoding2[FeatureSet_RepeatedFieldEncoding2.EXPANDED=2]="EXPANDED"})(FeatureSet_RepeatedFieldEncoding||(FeatureSet_RepeatedFieldEncoding={}));var FeatureSet_Utf8Validation;(function(FeatureSet_Utf8Validation2){FeatureSet_Utf8Validation2[FeatureSet_Utf8Validation2.UTF8_VALIDATION_UNKNOWN=0]="UTF8_VALIDATION_UNKNOWN",FeatureSet_Utf8Validation2[FeatureSet_Utf8Validation2.VERIFY=2]="VERIFY",FeatureSet_Utf8Validation2[FeatureSet_Utf8Validation2.NONE=3]="NONE"})(FeatureSet_Utf8Validation||(FeatureSet_Utf8Validation={}));var FeatureSet_MessageEncoding;(function(FeatureSet_MessageEncoding2){FeatureSet_MessageEncoding2[FeatureSet_MessageEncoding2.MESSAGE_ENCODING_UNKNOWN=0]="MESSAGE_ENCODING_UNKNOWN",FeatureSet_MessageEncoding2[FeatureSet_MessageEncoding2.LENGTH_PREFIXED=1]="LENGTH_PREFIXED",FeatureSet_MessageEncoding2[FeatureSet_MessageEncoding2.DELIMITED=2]="DELIMITED"})(FeatureSet_MessageEncoding||(FeatureSet_MessageEncoding={}));var FeatureSet_JsonFormat;(function(FeatureSet_JsonFormat2){FeatureSet_JsonFormat2[FeatureSet_JsonFormat2.JSON_FORMAT_UNKNOWN=0]="JSON_FORMAT_UNKNOWN",FeatureSet_JsonFormat2[FeatureSet_JsonFormat2.ALLOW=1]="ALLOW",FeatureSet_JsonFormat2[FeatureSet_JsonFormat2.LEGACY_BEST_EFFORT=2]="LEGACY_BEST_EFFORT"})(FeatureSet_JsonFormat||(FeatureSet_JsonFormat={}));var FeatureSet_EnforceNamingStyle;(function(FeatureSet_EnforceNamingStyle2){FeatureSet_EnforceNamingStyle2[FeatureSet_EnforceNamingStyle2.ENFORCE_NAMING_STYLE_UNKNOWN=0]="ENFORCE_NAMING_STYLE_UNKNOWN",FeatureSet_EnforceNamingStyle2[FeatureSet_EnforceNamingStyle2.STYLE2024=1]="STYLE2024",FeatureSet_EnforceNamingStyle2[FeatureSet_EnforceNamingStyle2.STYLE_LEGACY=2]="STYLE_LEGACY"})(FeatureSet_EnforceNamingStyle||(FeatureSet_EnforceNamingStyle={}));var GeneratedCodeInfo_Annotation_Semantic;(function(GeneratedCodeInfo_Annotation_Semantic2){GeneratedCodeInfo_Annotation_Semantic2[GeneratedCodeInfo_Annotation_Semantic2.NONE=0]="NONE",GeneratedCodeInfo_Annotation_Semantic2[GeneratedCodeInfo_Annotation_Semantic2.SET=1]="SET",GeneratedCodeInfo_Annotation_Semantic2[GeneratedCodeInfo_Annotation_Semantic2.ALIAS=2]="ALIAS"})(GeneratedCodeInfo_Annotation_Semantic||(GeneratedCodeInfo_Annotation_Semantic={}));var Edition;(function(Edition2){Edition2[Edition2.EDITION_UNKNOWN=0]="EDITION_UNKNOWN",Edition2[Edition2.EDITION_LEGACY=900]="EDITION_LEGACY",Edition2[Edition2.EDITION_PROTO2=998]="EDITION_PROTO2",Edition2[Edition2.EDITION_PROTO3=999]="EDITION_PROTO3",Edition2[Edition2.EDITION_2023=1e3]="EDITION_2023",Edition2[Edition2.EDITION_2024=1001]="EDITION_2024",Edition2[Edition2.EDITION_UNSTABLE=9999]="EDITION_UNSTABLE",Edition2[Edition2.EDITION_1_TEST_ONLY=1]="EDITION_1_TEST_ONLY",Edition2[Edition2.EDITION_2_TEST_ONLY=2]="EDITION_2_TEST_ONLY",Edition2[Edition2.EDITION_99997_TEST_ONLY=99997]="EDITION_99997_TEST_ONLY",Edition2[Edition2.EDITION_99998_TEST_ONLY=99998]="EDITION_99998_TEST_ONLY",Edition2[Edition2.EDITION_99999_TEST_ONLY=99999]="EDITION_99999_TEST_ONLY",Edition2[Edition2.EDITION_MAX=2147483647]="EDITION_MAX"})(Edition||(Edition={}));var SymbolVisibility;(function(SymbolVisibility2){SymbolVisibility2[SymbolVisibility2.VISIBILITY_UNSET=0]="VISIBILITY_UNSET",SymbolVisibility2[SymbolVisibility2.VISIBILITY_LOCAL=1]="VISIBILITY_LOCAL",SymbolVisibility2[SymbolVisibility2.VISIBILITY_EXPORT=2]="VISIBILITY_EXPORT"})(SymbolVisibility||(SymbolVisibility={}));var readDefaults={readUnknownFields:!0};function makeReadOptions(options){return options?Object.assign(Object.assign({},readDefaults),options):readDefaults}function fromBinary(schema,bytes,options){let msg=reflect(schema,void 0,!1);return readMessage(msg,new BinaryReader(bytes),makeReadOptions(options),!1,bytes.byteLength),msg.message}function readMessage(message,reader,options,delimited,lengthOrDelimitedFieldNo){var _a;let end=delimited?reader.len:reader.pos+lengthOrDelimitedFieldNo,fieldNo,wireType,unknownFields=(_a=message.getUnknown())!==null&&_a!==void 0?_a:[];for(;reader.pos<end&&([fieldNo,wireType]=reader.tag(),!(delimited&&wireType==WireType.EndGroup));){let field=message.findNumber(fieldNo);if(!field){let data=reader.skip(wireType,fieldNo);options.readUnknownFields&&unknownFields.push({no:fieldNo,wireType,data});continue}readField(message,reader,field,wireType,options)}if(delimited&&(wireType!=WireType.EndGroup||fieldNo!==lengthOrDelimitedFieldNo))throw new Error("invalid end group tag");unknownFields.length>0&&message.setUnknown(unknownFields)}function readField(message,reader,field,wireType,options){var _a;switch(field.fieldKind){case"scalar":message.set(field,readScalar(reader,field.scalar,field.utf8Validation));break;case"enum":let val=readScalar(reader,ScalarType.INT32);if(field.enum.open)message.set(field,val);else if(field.enum.values.some(v=>v.number===val))message.set(field,val);else if(options.readUnknownFields){let bytes=[];varint32write(val,bytes);let unknownFields=(_a=message.getUnknown())!==null&&_a!==void 0?_a:[];unknownFields.push({no:field.number,wireType,data:new Uint8Array(bytes)}),message.setUnknown(unknownFields)}break;case"message":message.set(field,readMessageField(reader,options,field,message.get(field)));break;case"list":readListField(reader,wireType,message.get(field),options);break;case"map":readMapEntry(reader,message.get(field),options);break}}function readMapEntry(reader,map,options){let field=map.field(),key,val,len=reader.uint32(),end=reader.pos+len;for(;reader.pos<end;){let[fieldNo]=reader.tag();switch(fieldNo){case 1:key=readScalar(reader,field.mapKey,field.utf8Validation);break;case 2:switch(field.mapKind){case"scalar":val=readScalar(reader,field.scalar,field.utf8Validation);break;case"enum":val=reader.int32();break;case"message":val=readMessageField(reader,options,field);break}break}}if(key===void 0&&(key=scalarZeroValue(field.mapKey,!1)),val===void 0)switch(field.mapKind){case"scalar":val=scalarZeroValue(field.scalar,!1);break;case"enum":val=field.enum.values[0].number;break;case"message":val=reflect(field.message,void 0,!1);break}map.set(key,val)}function readListField(reader,wireType,list,options){var _a;let field=list.field();if(field.listKind==="message"){list.add(readMessageField(reader,options,field));return}let scalarType=(_a=field.scalar)!==null&&_a!==void 0?_a:ScalarType.INT32;if(!(wireType==WireType.LengthDelimited&&scalarType!=ScalarType.STRING&&scalarType!=ScalarType.BYTES)){list.add(readScalar(reader,scalarType,field.utf8Validation));return}let e=reader.uint32()+reader.pos;for(;reader.pos<e;)list.add(readScalar(reader,scalarType,field.utf8Validation))}function readMessageField(reader,options,field,mergeMessage){let delimited=field.delimitedEncoding,message=mergeMessage??reflect(field.message,void 0,!1);return readMessage(message,reader,options,delimited,delimited?field.number:reader.uint32()),message}function readScalar(reader,type,validateUtf8=!1){switch(type){case ScalarType.STRING:return reader.string(validateUtf8);case ScalarType.BOOL:return reader.bool();case ScalarType.DOUBLE:return reader.double();case ScalarType.FLOAT:return reader.float();case ScalarType.INT32:return reader.int32();case ScalarType.INT64:return reader.int64();case ScalarType.UINT64:return reader.uint64();case ScalarType.FIXED64:return reader.fixed64();case ScalarType.BYTES:return reader.bytes();case ScalarType.FIXED32:return reader.fixed32();case ScalarType.SFIXED32:return reader.sfixed32();case ScalarType.SFIXED64:return reader.sfixed64();case ScalarType.SINT64:return reader.sint64();case ScalarType.UINT32:return reader.uint32();case ScalarType.SINT32:return reader.sint32()}}function fileDesc(b64,imports){var _a;let root=fromBinary(FileDescriptorProtoSchema,base64Decode(b64));return root.messageType.forEach(restoreJsonNames),root.dependency=(_a=imports?.map(f=>f.proto.name))!==null&&_a!==void 0?_a:[],createFileRegistry(root,protoFileName=>imports?.find(f=>f.proto.name===protoFileName)).getFile(root.name)}var file_google_protobuf_timestamp=fileDesc("Ch9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvEg9nb29nbGUucHJvdG9idWYiKwoJVGltZXN0YW1wEg8KB3NlY29uZHMYASABKAMSDQoFbmFub3MYAiABKAVChQEKE2NvbS5nb29nbGUucHJvdG9idWZCDlRpbWVzdGFtcFByb3RvUAFaMmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3RpbWVzdGFtcHBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),TimestampSchema=messageDesc(file_google_protobuf_timestamp,0);function timestampFromDate(date3){return timestampFromMs(date3.getTime())}function timestampFromMs(timestampMs){let seconds=Math.floor(timestampMs/1e3);return create(TimestampSchema,{seconds:protoInt64.parse(seconds),nanos:(timestampMs-seconds*1e3)*1e6})}var file_google_protobuf_duration=fileDesc("Ch5nb29nbGUvcHJvdG9idWYvZHVyYXRpb24ucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIqCghEdXJhdGlvbhIPCgdzZWNvbmRzGAEgASgDEg0KBW5hbm9zGAIgASgFQoMBChNjb20uZ29vZ2xlLnByb3RvYnVmQg1EdXJhdGlvblByb3RvUAFaMWdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2R1cmF0aW9ucGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNiBnByb3RvMw");var file_google_protobuf_any=fileDesc("Chlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvEg9nb29nbGUucHJvdG9idWYiJgoDQW55EhAKCHR5cGVfdXJsGAEgASgJEg0KBXZhbHVlGAIgASgMQnYKE2NvbS5nb29nbGUucHJvdG9idWZCCEFueVByb3RvUAFaLGdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2FueXBiogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),AnySchema=messageDesc(file_google_protobuf_any,0);var LEGACY_REQUIRED2=3,writeDefaults={writeUnknownFields:!0};function makeWriteOptions(options){return options?Object.assign(Object.assign({},writeDefaults),options):writeDefaults}function toBinary(schema,message,options){return writeFields(new BinaryWriter,makeWriteOptions(options),reflect(schema,message)).finish()}function writeFields(writer,opts,msg){var _a;for(let f of msg.sortedFields){if(!msg.isSet(f)){if(f.presence==LEGACY_REQUIRED2)throw new Error(`cannot encode ${f} to binary: required field not set`);continue}writeField(writer,opts,msg,f)}if(opts.writeUnknownFields)for(let{no,wireType,data}of(_a=msg.getUnknown())!==null&&_a!==void 0?_a:[])writer.tag(no,wireType).raw(data);return writer}function writeField(writer,opts,msg,field){var _a;switch(field.fieldKind){case"scalar":case"enum":writeScalar(writer,msg.desc.typeName,field.name,(_a=field.scalar)!==null&&_a!==void 0?_a:ScalarType.INT32,field.number,msg.get(field));break;case"list":writeListField(writer,opts,field,msg.get(field));break;case"message":writeMessageField(writer,opts,field,msg.get(field));break;case"map":for(let[key,val]of msg.get(field))writeMapEntry(writer,opts,field,key,val);break}}function writeScalar(writer,msgName,fieldName,scalarType,fieldNo,value){writeScalarValue(writer.tag(fieldNo,writeTypeOfScalar(scalarType)),msgName,fieldName,scalarType,value)}function writeMessageField(writer,opts,field,message){field.delimitedEncoding?writeFields(writer.tag(field.number,WireType.StartGroup),opts,message).tag(field.number,WireType.EndGroup):writeFields(writer.tag(field.number,WireType.LengthDelimited).fork(),opts,message).join()}function writeListField(writer,opts,field,list){var _a;if(field.listKind=="message"){for(let item of list)writeMessageField(writer,opts,field,item);return}let scalarType=(_a=field.scalar)!==null&&_a!==void 0?_a:ScalarType.INT32;if(field.packed){if(!list.size)return;writer.tag(field.number,WireType.LengthDelimited).fork();for(let item of list)writeScalarValue(writer,field.parent.typeName,field.name,scalarType,item);writer.join();return}for(let item of list)writeScalar(writer,field.parent.typeName,field.name,scalarType,field.number,item)}function writeMapEntry(writer,opts,field,key,value){var _a;switch(writer.tag(field.number,WireType.LengthDelimited).fork(),writeScalar(writer,field.parent.typeName,field.name,field.mapKey,1,key),field.mapKind){case"scalar":case"enum":writeScalar(writer,field.parent.typeName,field.name,(_a=field.scalar)!==null&&_a!==void 0?_a:ScalarType.INT32,2,value);break;case"message":writeFields(writer.tag(2,WireType.LengthDelimited).fork(),opts,value).join();break}writer.join()}function writeScalarValue(writer,msgName,fieldName,type,value){try{switch(type){case ScalarType.STRING:writer.string(value);break;case ScalarType.BOOL:writer.bool(value);break;case ScalarType.DOUBLE:writer.double(value);break;case ScalarType.FLOAT:writer.float(value);break;case ScalarType.INT32:writer.int32(value);break;case ScalarType.INT64:writer.int64(value);break;case ScalarType.UINT64:writer.uint64(value);break;case ScalarType.FIXED64:writer.fixed64(value);break;case ScalarType.BYTES:writer.bytes(value);break;case ScalarType.FIXED32:writer.fixed32(value);break;case ScalarType.SFIXED32:writer.sfixed32(value);break;case ScalarType.SFIXED64:writer.sfixed64(value);break;case ScalarType.SINT64:writer.sint64(value);break;case ScalarType.UINT32:writer.uint32(value);break;case ScalarType.SINT32:writer.sint32(value);break}}catch(e){throw e instanceof Error?new Error(`cannot encode field ${msgName}.${fieldName} to binary: ${e.message}`):e}}function writeTypeOfScalar(type){switch(type){case ScalarType.BYTES:case ScalarType.STRING:return WireType.LengthDelimited;case ScalarType.DOUBLE:case ScalarType.FIXED64:case ScalarType.SFIXED64:return WireType.Bit64;case ScalarType.FIXED32:case ScalarType.SFIXED32:case ScalarType.FLOAT:return WireType.Bit32;default:return WireType.Varint}}function anyPack(schema,message,into){let ret=!1;return into||(into=create(AnySchema),ret=!0),into.value=toBinary(schema,message),into.typeUrl=typeNameToUrl(message.$typeName),ret?into:void 0}function anyIs(any,descOrTypeName){if(any.typeUrl==="")return!1;let want=typeof descOrTypeName=="string"?descOrTypeName:descOrTypeName.typeName,got=typeUrlToName(any.typeUrl);return want===got}function anyUnpack(any,registryOrMessageDesc){if(any.typeUrl==="")return;let desc=registryOrMessageDesc.kind=="message"?registryOrMessageDesc:registryOrMessageDesc.getMessage(typeUrlToName(any.typeUrl));if(!(!desc||!anyIs(any,desc)))return fromBinary(desc,any.value)}function typeNameToUrl(name){return`type.googleapis.com/${name}`}function typeUrlToName(url){let slash=url.lastIndexOf("/"),name=slash>=0?url.substring(slash+1):url;if(!name.length)throw new Error(`invalid type url: ${url}`);return name}var file_google_protobuf_field_mask=fileDesc("CiBnb29nbGUvcHJvdG9idWYvZmllbGRfbWFzay5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIhoKCUZpZWxkTWFzaxINCgVwYXRocxgBIAMoCUKFAQoTY29tLmdvb2dsZS5wcm90b2J1ZkIORmllbGRNYXNrUHJvdG9QAVoyZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvdHlwZXMva25vd24vZmllbGRtYXNrcGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNiBnByb3RvMw");var file_google_protobuf_struct=fileDesc("Chxnb29nbGUvcHJvdG9idWYvc3RydWN0LnByb3RvEg9nb29nbGUucHJvdG9idWYihAEKBlN0cnVjdBIzCgZmaWVsZHMYASADKAsyIy5nb29nbGUucHJvdG9idWYuU3RydWN0LkZpZWxkc0VudHJ5GkUKC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRIlCgV2YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZToCOAEi6gEKBVZhbHVlEjAKCm51bGxfdmFsdWUYASABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlSAASFgoMbnVtYmVyX3ZhbHVlGAIgASgBSAASFgoMc3RyaW5nX3ZhbHVlGAMgASgJSAASFAoKYm9vbF92YWx1ZRgEIAEoCEgAEi8KDHN0cnVjdF92YWx1ZRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIABIwCgpsaXN0X3ZhbHVlGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLkxpc3RWYWx1ZUgAQgYKBGtpbmQiMwoJTGlzdFZhbHVlEiYKBnZhbHVlcxgBIAMoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZSobCglOdWxsVmFsdWUSDgoKTlVMTF9WQUxVRRAAQn8KE2NvbS5nb29nbGUucHJvdG9idWZCC1N0cnVjdFByb3RvUAFaL2dvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3N0cnVjdHBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),StructSchema=messageDesc(file_google_protobuf_struct,0),ValueSchema=messageDesc(file_google_protobuf_struct,1),ListValueSchema=messageDesc(file_google_protobuf_struct,2),NullValue;(function(NullValue2){NullValue2[NullValue2.NULL_VALUE=0]="NULL_VALUE"})(NullValue||(NullValue={}));function getExtension(message,extension){assertExtendee(extension,message);let ufs=filterUnknownFields(message.$unknown,extension),[container,field,get]=createExtensionContainer(extension);for(let uf of ufs)readField(container,new BinaryReader(uf.data),field,uf.wireType,{readUnknownFields:!0});return get()}function setExtension(message,extension,value){var _a;assertExtendee(extension,message);let ufs=((_a=message.$unknown)!==null&&_a!==void 0?_a:[]).filter(uf=>uf.no!==extension.number),[container,field]=createExtensionContainer(extension,value),writer=new BinaryWriter;writeField(writer,{writeUnknownFields:!0},container,field);let reader=new BinaryReader(writer.finish());for(;reader.pos<reader.len;){let[no,wireType]=reader.tag(),data=reader.skip(wireType,no);ufs.push({no,wireType,data})}message.$unknown=ufs}function filterUnknownFields(unknownFields,extension){if(unknownFields===void 0)return[];if(extension.fieldKind==="enum"||extension.fieldKind==="scalar"){for(let i=unknownFields.length-1;i>=0;--i)if(unknownFields[i].no==extension.number)return[unknownFields[i]];return[]}return unknownFields.filter(uf=>uf.no===extension.number)}function createExtensionContainer(extension,value){let localName=extension.typeName,field=Object.assign(Object.assign({},extension),{kind:"field",parent:extension.extendee,localName}),desc=Object.assign(Object.assign({},extension.extendee),{fields:[field],members:[field],oneofs:[]}),container=create(desc,value!==void 0?{[localName]:value}:void 0);return[reflect(desc,container),field,()=>{let value2=container[localName];if(value2===void 0){let desc2=extension.message;return isWrapperDesc(desc2)?scalarZeroValue(desc2.fields[0].scalar,desc2.fields[0].longAsString):create(desc2)}return value2}]}function assertExtendee(extension,message){if(extension.extendee.typeName!=message.$typeName)throw new Error(`extension ${extension.typeName} can only be applied to message ${extension.extendee.typeName}`)}var LEGACY_REQUIRED3=3,IMPLICIT4=2,jsonWriteDefaults={alwaysEmitImplicit:!1,enumAsInteger:!1,useProtoFieldName:!1};function makeWriteOptions2(options){return options?Object.assign(Object.assign({},jsonWriteDefaults),options):jsonWriteDefaults}function toJson(schema,message,options){return reflectToJson(reflect(schema,message),makeWriteOptions2(options))}function toJsonString(schema,message,options){var _a;let jsonValue=toJson(schema,message,options);return JSON.stringify(jsonValue,null,(_a=options?.prettySpaces)!==null&&_a!==void 0?_a:0)}function reflectToJson(msg,opts){var _a;let wktJson=tryWktToJson(msg,opts);if(wktJson!==void 0)return wktJson;let json={};for(let f of msg.sortedFields){if(!msg.isSet(f)){if(f.presence==LEGACY_REQUIRED3)throw new Error(`cannot encode ${f} to JSON: required field not set`);if(!opts.alwaysEmitImplicit||f.presence!==IMPLICIT4)continue}let jsonValue=fieldToJson(f,msg.get(f),opts);jsonValue!==void 0&&(json[jsonName(f,opts)]=jsonValue)}if(opts.registry){let tagSeen=new Set;for(let{no}of(_a=msg.getUnknown())!==null&&_a!==void 0?_a:[])if(!tagSeen.has(no)){tagSeen.add(no);let extension=opts.registry.getExtensionFor(msg.desc,no);if(!extension)continue;let value=getExtension(msg.message,extension),[container,field]=createExtensionContainer(extension,value),jsonValue=fieldToJson(field,container.get(field),opts);jsonValue!==void 0&&(json[extension.jsonName]=jsonValue)}}return json}function fieldToJson(f,val,opts){switch(f.fieldKind){case"scalar":return scalarToJson(f,val);case"message":return reflectToJson(val,opts);case"enum":return enumToJsonInternal(f.enum,val,opts.enumAsInteger);case"list":return listToJson(val,opts);case"map":return mapToJson(val,opts)}}function mapToJson(map,opts){let f=map.field(),jsonObj={};switch(f.mapKind){case"scalar":for(let[entryKey,entryValue]of map)jsonObj[entryKey]=scalarToJson(f,entryValue);break;case"message":for(let[entryKey,entryValue]of map)jsonObj[entryKey]=reflectToJson(entryValue,opts);break;case"enum":for(let[entryKey,entryValue]of map)jsonObj[entryKey]=enumToJsonInternal(f.enum,entryValue,opts.enumAsInteger);break}return opts.alwaysEmitImplicit||map.size>0?jsonObj:void 0}function listToJson(list,opts){let f=list.field(),jsonArr=[];switch(f.listKind){case"scalar":for(let item of list)jsonArr.push(scalarToJson(f,item));break;case"enum":for(let item of list)jsonArr.push(enumToJsonInternal(f.enum,item,opts.enumAsInteger));break;case"message":for(let item of list)jsonArr.push(reflectToJson(item,opts));break}return opts.alwaysEmitImplicit||jsonArr.length>0?jsonArr:void 0}function enumToJsonInternal(desc,value,enumAsInteger){var _a;if(typeof value!="number")throw new Error(`cannot encode ${desc} to JSON: expected number, got ${formatVal(value)}`);if(desc.typeName=="google.protobuf.NullValue")return null;if(enumAsInteger)return value;let val=desc.value[value];return(_a=val?.name)!==null&&_a!==void 0?_a:value}function scalarToJson(field,value){var _a,_b,_c,_d,_e,_f;switch(field.scalar){case ScalarType.INT32:case ScalarType.SFIXED32:case ScalarType.SINT32:case ScalarType.FIXED32:case ScalarType.UINT32:if(typeof value!="number")throw new Error(`cannot encode ${field} to JSON: ${(_a=checkField(field,value))===null||_a===void 0?void 0:_a.message}`);return value;case ScalarType.FLOAT:case ScalarType.DOUBLE:if(typeof value!="number")throw new Error(`cannot encode ${field} to JSON: ${(_b=checkField(field,value))===null||_b===void 0?void 0:_b.message}`);return Number.isNaN(value)?"NaN":value===Number.POSITIVE_INFINITY?"Infinity":value===Number.NEGATIVE_INFINITY?"-Infinity":value;case ScalarType.STRING:if(typeof value!="string")throw new Error(`cannot encode ${field} to JSON: ${(_c=checkField(field,value))===null||_c===void 0?void 0:_c.message}`);return value;case ScalarType.BOOL:if(typeof value!="boolean")throw new Error(`cannot encode ${field} to JSON: ${(_d=checkField(field,value))===null||_d===void 0?void 0:_d.message}`);return value;case ScalarType.UINT64:case ScalarType.FIXED64:case ScalarType.INT64:case ScalarType.SFIXED64:case ScalarType.SINT64:if(typeof value=="bigint"||typeof value=="string"||typeof value=="number"&&Number.isInteger(value))return value.toString();throw new Error(`cannot encode ${field} to JSON: ${(_e=checkField(field,value))===null||_e===void 0?void 0:_e.message}`);case ScalarType.BYTES:if(value instanceof Uint8Array)return base64Encode(value);throw new Error(`cannot encode ${field} to JSON: ${(_f=checkField(field,value))===null||_f===void 0?void 0:_f.message}`)}}function jsonName(f,opts){return opts.useProtoFieldName?f.name:f.jsonName}function tryWktToJson(msg,opts){if(msg.desc.typeName.startsWith("google.protobuf."))switch(msg.desc.typeName){case"google.protobuf.Any":return anyToJson(msg.message,opts);case"google.protobuf.Timestamp":return timestampToJson(msg.message);case"google.protobuf.Duration":return durationToJson(msg.message);case"google.protobuf.FieldMask":return fieldMaskToJson(msg.message);case"google.protobuf.Struct":return structToJson(msg.message);case"google.protobuf.Value":return valueToJson(msg.message);case"google.protobuf.ListValue":return listValueToJson(msg.message);default:if(isWrapperDesc(msg.desc)){let valueField=msg.desc.fields[0];return scalarToJson(valueField,msg.get(valueField))}return}}function anyToJson(val,opts){if(val.typeUrl==="")return{};let{registry:registry2}=opts,message,desc;if(registry2&&(message=anyUnpack(val,registry2),message&&(desc=registry2.getMessage(message.$typeName))),!desc||!message)throw new Error(`cannot encode message ${val.$typeName} to JSON: "${val.typeUrl}" is not in the type registry`);let reflected=reflect(desc,message),json=hasCustomJsonRepresentation(desc)?{value:tryWktToJson(reflected,opts)}:reflectToJson(reflected,opts);return json["@type"]=val.typeUrl,json}function durationToJson(val){let seconds=Number(val.seconds),nanos=val.nanos;if(seconds>315576e6||seconds<-315576e6)throw new Error(`cannot encode message ${val.$typeName} to JSON: value out of range`);if(seconds>0&&nanos<0||seconds<0&&nanos>0)throw new Error(`cannot encode message ${val.$typeName} to JSON: nanos sign must match seconds sign`);let text=val.seconds.toString();if(nanos!==0){let nanosStr=Math.abs(nanos).toString();nanosStr="0".repeat(9-nanosStr.length)+nanosStr,nanosStr.substring(3)==="000000"?nanosStr=nanosStr.substring(0,3):nanosStr.substring(6)==="000"&&(nanosStr=nanosStr.substring(0,6)),text+="."+nanosStr,nanos<0&&seconds==0&&(text="-"+text)}return text+"s"}function fieldMaskToJson(val){return val.paths.map(p=>{if(protoSnakeCase(protoCamelCase(p))!==p)throw new Error(`cannot encode message ${val.$typeName} to JSON: lowerCamelCase of path name "${p}" is irreversible`);return protoCamelCase(p)}).join(",")}function structToJson(val){let json={};for(let[k,v]of Object.entries(val.fields))json[k]=valueToJson(v);return json}function valueToJson(val){switch(val.kind.case){case"nullValue":return null;case"numberValue":if(!Number.isFinite(val.kind.value))throw new Error(`${val.$typeName} cannot be NaN or Infinity`);return val.kind.value;case"boolValue":return val.kind.value;case"stringValue":return val.kind.value;case"structValue":return structToJson(val.kind.value);case"listValue":return listValueToJson(val.kind.value);default:throw new Error(`${val.$typeName} must have a value`)}}function listValueToJson(val){return val.values.map(valueToJson)}function timestampToJson(val){let ms=Number(val.seconds)*1e3;if(ms<Date.parse("0001-01-01T00:00:00Z")||ms>Date.parse("9999-12-31T23:59:59Z"))throw new Error(`cannot encode message ${val.$typeName} to JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive`);if(val.nanos<0)throw new Error(`cannot encode message ${val.$typeName} to JSON: nanos must not be negative`);if(val.nanos>999999999)throw new Error(`cannot encode message ${val.$typeName} to JSON: nanos must not be greater than 99999999`);let z="Z";if(val.nanos>0){let nanosStr=(val.nanos+1e9).toString().substring(1);nanosStr.substring(3)==="000000"?z="."+nanosStr.substring(0,3)+"Z":nanosStr.substring(6)==="000"?z="."+nanosStr.substring(0,6)+"Z":z="."+nanosStr+"Z"}return new Date(ms).toISOString().replace(".000Z",z)}var jsonReadDefaults={ignoreUnknownFields:!1};function makeReadOptions2(options){return options?Object.assign(Object.assign({},jsonReadDefaults),options):jsonReadDefaults}function fromJsonString(schema,json,options){return fromJson(schema,parseJsonString(json,schema.typeName),options)}function fromJson(schema,json,options){let msg=reflect(schema);try{readMessage2(msg,json,makeReadOptions2(options))}catch(e){throw isFieldError(e)?new Error(`cannot decode ${e.field()} from JSON: ${e.message}`,{cause:e}):e}return msg.message}var messageJsonFields=new WeakMap;function getJsonField(desc,jsonKey){var _a;if(!messageJsonFields.has(desc)){let jsonNames=new Map;for(let field of desc.fields)jsonNames.set(field.name,field).set(field.jsonName,field);messageJsonFields.set(desc,jsonNames)}return(_a=messageJsonFields.get(desc))===null||_a===void 0?void 0:_a.get(jsonKey)}function readMessage2(msg,json,opts){var _a;if(tryWktFromJson(msg,json,opts))return;if(json==null||Array.isArray(json)||typeof json!="object")throw new Error(`cannot decode ${msg.desc} from JSON: ${formatVal(json)}`);let oneofSeen=new Map;for(let[jsonKey,jsonValue]of Object.entries(json)){let field=getJsonField(msg.desc,jsonKey);if(field){if(field.oneof){if(jsonValue===null&&field.fieldKind=="scalar")continue;let seen=oneofSeen.get(field.oneof);if(seen!==void 0)throw new FieldError(field.oneof,`oneof set multiple times by ${seen.name} and ${field.name}`);oneofSeen.set(field.oneof,field)}readField2(msg,field,jsonValue,opts)}else{let extension;if(jsonKey.startsWith("[")&&jsonKey.endsWith("]")&&(extension=(_a=opts.registry)===null||_a===void 0?void 0:_a.getExtension(jsonKey.substring(1,jsonKey.length-1)))&&extension.extendee.typeName===msg.desc.typeName){let[container,field2,get]=createExtensionContainer(extension);readField2(container,field2,jsonValue,opts),setExtension(msg.message,extension,get())}if(!extension&&!opts.ignoreUnknownFields)throw new Error(`cannot decode ${msg.desc} from JSON: key "${jsonKey}" is unknown`)}}}function readField2(msg,field,json,opts){switch(field.fieldKind){case"scalar":readScalarField(msg,field,json);break;case"enum":readEnumField(msg,field,json,opts);break;case"message":readMessageField2(msg,field,json,opts);break;case"list":readListField2(msg.get(field),json,opts);break;case"map":readMapField(msg.get(field),json,opts);break}}function readListOrMapItem(field,json,opts){if(field.scalar&&json!==null)return scalarFromJson(field,json);if(field.message&&!isResetSentinelNullValue(field,json)){let msgValue=reflect(field.message);return readMessage2(msgValue,json,opts),msgValue}if(field.enum&&!isResetSentinelNullValue(field,json))return readEnum(field.enum,json,opts.ignoreUnknownFields);throw new FieldError(field,`${field.fieldKind==="list"?"list item":"map value"} must not be null`)}function readMapField(map,json,opts){if(json===null)return;let field=map.field();if(typeof json!="object"||Array.isArray(json))throw new FieldError(field,"expected object, got "+formatVal(json));for(let[jsonMapKey,jsonMapValue]of Object.entries(json)){let key=mapKeyFromJson(field.mapKey,jsonMapKey),value=readListOrMapItem(field,jsonMapValue,opts);value!==tokenIgnoredUnknownEnum&&map.set(key,value)}}function readListField2(list,json,opts){if(json===null)return;let field=list.field();if(!Array.isArray(json))throw new FieldError(field,"expected Array, got "+formatVal(json));for(let jsonItem of json){let value=readListOrMapItem(field,jsonItem,opts);value!==tokenIgnoredUnknownEnum&&list.add(value)}}function readMessageField2(msg,field,json,opts){if(isResetSentinelNullValue(field,json)){msg.clear(field);return}let msgValue=msg.isSet(field)?msg.get(field):reflect(field.message);readMessage2(msgValue,json,opts),msg.set(field,msgValue)}function readEnumField(msg,field,json,opts){if(isResetSentinelNullValue(field,json)){msg.clear(field);return}let enumValue=readEnum(field.enum,json,opts.ignoreUnknownFields);enumValue!==tokenIgnoredUnknownEnum&&msg.set(field,enumValue)}function readScalarField(msg,field,json){json===null?msg.clear(field):msg.set(field,scalarFromJson(field,json))}function isResetSentinelNullValue(field,json){var _a,_b;return json===null&&((_a=field.message)===null||_a===void 0?void 0:_a.typeName)!="google.protobuf.Value"&&((_b=field.enum)===null||_b===void 0?void 0:_b.typeName)!="google.protobuf.NullValue"}var tokenIgnoredUnknownEnum=Symbol();function readEnum(desc,json,ignoreUnknownFields){if(json===null)return desc.values[0].number;switch(typeof json){case"number":if(Number.isInteger(json))return json;break;case"string":let value=desc.values.find(ev=>ev.name===json);if(value!==void 0)return value.number;if(ignoreUnknownFields)return tokenIgnoredUnknownEnum;break}throw new Error(`cannot decode ${desc} from JSON: ${formatVal(json)}`)}function scalarFromJson(field,json){switch(field.scalar){case ScalarType.DOUBLE:case ScalarType.FLOAT:if(json==="NaN")return NaN;if(json==="Infinity")return Number.POSITIVE_INFINITY;if(json==="-Infinity")return Number.NEGATIVE_INFINITY;if(typeof json=="number"){if(Number.isNaN(json))throw new FieldError(field,"unexpected NaN number");if(!Number.isFinite(json))throw new FieldError(field,"unexpected infinite number");break}if(typeof json=="string"){if(json===""||json.trim().length!==json.length)break;let float=Number(json);if(!Number.isFinite(float))break;return float}break;case ScalarType.INT32:case ScalarType.FIXED32:case ScalarType.SFIXED32:case ScalarType.SINT32:case ScalarType.UINT32:return int32FromJson(json);case ScalarType.BYTES:if(typeof json=="string"){if(json==="")return new Uint8Array(0);try{return base64Decode(json)}catch(e){let message=e instanceof Error?e.message:String(e);throw new FieldError(field,message)}}break}return json}function mapKeyFromJson(type,jsonString){switch(type){case ScalarType.BOOL:switch(jsonString){case"true":return!0;case"false":return!1}return jsonString;case ScalarType.INT32:case ScalarType.FIXED32:case ScalarType.UINT32:case ScalarType.SFIXED32:case ScalarType.SINT32:return int32FromJson(jsonString);default:return jsonString}}function int32FromJson(json){if(typeof json=="string"){if(json===""||json.trim().length!==json.length)return json;let num=Number(json);return Number.isNaN(num)?json:num}return json}function parseJsonString(jsonString,typeName){try{return JSON.parse(jsonString)}catch(e){let message=e instanceof Error?e.message:String(e);throw new Error(`cannot decode message ${typeName} from JSON: ${message}`,{cause:e})}}function tryWktFromJson(msg,jsonValue,opts){if(!msg.desc.typeName.startsWith("google.protobuf."))return!1;switch(msg.desc.typeName){case"google.protobuf.Any":return anyFromJson(msg.message,jsonValue,opts),!0;case"google.protobuf.Timestamp":return timestampFromJson(msg.message,jsonValue),!0;case"google.protobuf.Duration":return durationFromJson(msg.message,jsonValue),!0;case"google.protobuf.FieldMask":return fieldMaskFromJson(msg.message,jsonValue),!0;case"google.protobuf.Struct":return structFromJson(msg.message,jsonValue),!0;case"google.protobuf.Value":return valueFromJson(msg.message,jsonValue),!0;case"google.protobuf.ListValue":return listValueFromJson(msg.message,jsonValue),!0;default:if(isWrapperDesc(msg.desc)){let valueField=msg.desc.fields[0];return jsonValue===null?msg.clear(valueField):msg.set(valueField,scalarFromJson(valueField,jsonValue)),!0}return!1}}function anyFromJson(any,json,opts){var _a;if(json===null||Array.isArray(json)||typeof json!="object")throw new Error(`cannot decode message ${any.$typeName} from JSON: expected object but got ${formatVal(json)}`);if(Object.keys(json).length==0)return;let typeUrl=json["@type"];if(typeof typeUrl!="string"||typeUrl=="")throw new Error(`cannot decode message ${any.$typeName} from JSON: "@type" is empty`);let typeName=typeUrl.includes("/")?typeUrl.substring(typeUrl.lastIndexOf("/")+1):typeUrl;if(!typeName.length)throw new Error(`cannot decode message ${any.$typeName} from JSON: "@type" is invalid`);let desc=(_a=opts.registry)===null||_a===void 0?void 0:_a.getMessage(typeName);if(!desc)throw new Error(`cannot decode message ${any.$typeName} from JSON: ${typeUrl} is not in the type registry`);let msg=reflect(desc);if(hasCustomJsonRepresentation(desc)&&Object.prototype.hasOwnProperty.call(json,"value")){let value=json.value;readMessage2(msg,value,opts)}else{let copy=Object.assign({},json);delete copy["@type"],readMessage2(msg,copy,opts)}anyPack(msg.desc,msg.message,any)}function timestampFromJson(timestamp,json){if(typeof json!="string")throw new Error(`cannot decode message ${timestamp.$typeName} from JSON: ${formatVal(json)}`);let matches=json.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:\.([0-9]{1,9}))?(?:Z|([+-][0-9][0-9]:[0-9][0-9]))$/);if(!matches)throw new Error(`cannot decode message ${timestamp.$typeName} from JSON: invalid RFC 3339 string`);let ms=Date.parse(matches[1]+"-"+matches[2]+"-"+matches[3]+"T"+matches[4]+":"+matches[5]+":"+matches[6]+(matches[8]?matches[8]:"Z"));if(Number.isNaN(ms))throw new Error(`cannot decode message ${timestamp.$typeName} from JSON: invalid RFC 3339 string`);if(ms<Date.parse("0001-01-01T00:00:00Z")||ms>Date.parse("9999-12-31T23:59:59Z"))throw new Error(`cannot decode message ${timestamp.$typeName} from JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive`);timestamp.seconds=protoInt64.parse(ms/1e3),timestamp.nanos=0,matches[7]&&(timestamp.nanos=parseInt("1"+matches[7]+"0".repeat(9-matches[7].length))-1e9)}function durationFromJson(duration3,json){if(typeof json!="string")throw new Error(`cannot decode message ${duration3.$typeName} from JSON: ${formatVal(json)}`);let match=json.match(/^(-?[0-9]+)(?:\.([0-9]+))?s/);if(match===null)throw new Error(`cannot decode message ${duration3.$typeName} from JSON: ${formatVal(json)}`);let longSeconds=Number(match[1]);if(longSeconds>315576e6||longSeconds<-315576e6)throw new Error(`cannot decode message ${duration3.$typeName} from JSON: ${formatVal(json)}`);if(duration3.seconds=protoInt64.parse(longSeconds),typeof match[2]!="string")return;let nanosStr=match[2]+"0".repeat(9-match[2].length);duration3.nanos=parseInt(nanosStr),(longSeconds<0||Object.is(longSeconds,-0))&&(duration3.nanos=-duration3.nanos)}function fieldMaskFromJson(fieldMask,json){if(typeof json!="string")throw new Error(`cannot decode message ${fieldMask.$typeName} from JSON: ${formatVal(json)}`);json!==""&&(fieldMask.paths=json.split(",").map(path=>{if(path.includes("_"))throw new Error(`cannot decode message ${fieldMask.$typeName} from JSON: path names must be lowerCamelCase`);return protoSnakeCase(path)}))}function structFromJson(struct,json){if(typeof json!="object"||json==null||Array.isArray(json))throw new Error(`cannot decode message ${struct.$typeName} from JSON ${formatVal(json)}`);for(let[k,v]of Object.entries(json)){let parsedV=create(ValueSchema);valueFromJson(parsedV,v),struct.fields[k]=parsedV}}function valueFromJson(value,json){switch(typeof json){case"number":value.kind={case:"numberValue",value:json};break;case"string":value.kind={case:"stringValue",value:json};break;case"boolean":value.kind={case:"boolValue",value:json};break;case"object":if(json===null)value.kind={case:"nullValue",value:NullValue.NULL_VALUE};else if(Array.isArray(json)){let listValue=create(ListValueSchema);listValueFromJson(listValue,json),value.kind={case:"listValue",value:listValue}}else{let struct=create(StructSchema);structFromJson(struct,json),value.kind={case:"structValue",value:struct}}break;default:throw new Error(`cannot decode message ${value.$typeName} from JSON ${formatVal(json)}`)}return value}function listValueFromJson(listValue,json){if(!Array.isArray(json))throw new Error(`cannot decode message ${listValue.$typeName} from JSON ${formatVal(json)}`);for(let e of json){let value=create(ValueSchema);valueFromJson(value,e),listValue.values.push(value)}}function codeToString(value){let name=Code[value];return typeof name!="string"?value.toString():name[0].toLowerCase()+name.substring(1).replace(/[A-Z]/g,c=>"_"+c.toLowerCase())}var ConnectError=class _ConnectError extends Error{constructor(message,code=Code.Unknown,metadata,outgoingDetails,cause){super(createMessage(message,code)),this.name="ConnectError",Object.setPrototypeOf(this,new.target.prototype),this.rawMessage=message,this.code=code,this.metadata=new Headers(metadata??{}),this.details=outgoingDetails??[],this.cause=cause}static from(reason,code=Code.Unknown){return reason instanceof _ConnectError?reason:reason instanceof Error?reason.name=="AbortError"||reason.name=="TimeoutError"?new _ConnectError(reason.message,Code.Canceled):new _ConnectError(reason.message,code,void 0,void 0,reason):new _ConnectError(String(reason),code,void 0,void 0,reason)}static[Symbol.hasInstance](v){return v instanceof Error?Object.getPrototypeOf(v)===_ConnectError.prototype?!0:v.name==="ConnectError"&&"code"in v&&typeof v.code=="number"&&"metadata"in v&&"details"in v&&Array.isArray(v.details)&&"rawMessage"in v&&typeof v.rawMessage=="string"&&"cause"in v:!1}findDetails(typeOrRegistry){let registry2=typeOrRegistry.kind==="message"?{getMessage:typeName=>typeName===typeOrRegistry.typeName?typeOrRegistry:void 0}:typeOrRegistry,details=[];for(let data of this.details){if("desc"in data){registry2.getMessage(data.desc.typeName)&&details.push(create(data.desc,data.value));continue}let desc=registry2.getMessage(data.type);if(desc)try{details.push(fromBinary(desc,data.value))}catch{}}return details}};function createMessage(message,code){return message.length?`[${codeToString(code)}] ${message}`:`[${codeToString(code)}]`}function decodeBinaryHeader(value,desc,options){try{let bytes=base64Decode(value);return desc?fromBinary(desc,bytes,options):bytes}catch(e){throw ConnectError.from(e,Code.DataLoss)}}function makeAnyClient(service,createMethod){let client={};for(let desc of service.methods){let method=createMethod(desc);method!=null&&(client[desc.localName]=method)}return client}var compressedFlag=1;var maxReadMaxBytes=4294967295,maxWriteMaxBytes=maxReadMaxBytes,defaultCompressMinBytes=1024;function validateReadWriteMaxBytes(readMaxBytes,writeMaxBytes,compressMinBytes){if(writeMaxBytes??(writeMaxBytes=maxWriteMaxBytes),readMaxBytes??(readMaxBytes=maxReadMaxBytes),compressMinBytes??(compressMinBytes=defaultCompressMinBytes),writeMaxBytes<1||writeMaxBytes>maxWriteMaxBytes)throw new ConnectError(`writeMaxBytes ${writeMaxBytes} must be >= 1 and <= ${maxWriteMaxBytes}`,Code.Internal);if(readMaxBytes<1||readMaxBytes>maxReadMaxBytes)throw new ConnectError(`readMaxBytes ${readMaxBytes} must be >= 1 and <= ${maxReadMaxBytes}`,Code.Internal);return{readMaxBytes,writeMaxBytes,compressMinBytes}}function assertWriteMaxBytes(writeMaxBytes,bytesWritten){if(bytesWritten>writeMaxBytes)throw new ConnectError(`message size ${bytesWritten} is larger than configured writeMaxBytes ${writeMaxBytes}`,Code.ResourceExhausted)}function assertReadMaxBytes(readMaxBytes,bytesRead,totalSizeKnown=!1){if(bytesRead>readMaxBytes){let message=`message size is larger than configured readMaxBytes ${readMaxBytes}`;throw totalSizeKnown&&(message=`message size ${bytesRead} is larger than configured readMaxBytes ${readMaxBytes}`),new ConnectError(message,Code.ResourceExhausted)}}function createEnvelopeDecoder(readMaxBytes){return new EnvelopeDecoderImpl(readMaxBytes)}var EnvelopeDecoderImpl=class{constructor(readMaxBytes){this.readMaxBytes=readMaxBytes,this.header=new Uint8Array(5),this.headerView=new DataView(this.header.buffer),this.buf=[]}get byteLength(){return this.buf.reduce((a,b)=>a+b.byteLength,0)}decode(chunk){this.buf.push(chunk);let envs=[];for(;;){let env=this.pop();if(!env)break;envs.push(env)}return envs}pop(){if(!(!this.env&&(this.env=this.head(),!this.env))&&this.cons(this.env.data)){let env=this.env;return this.env=void 0,env}}head(){if(!this.cons(this.header))return;let flags=this.headerView.getUint8(0),length=this.headerView.getUint32(1);return assertReadMaxBytes(this.readMaxBytes,length,!0),{flags,data:new Uint8Array(length)}}cons(target){let wantLength=target.byteLength;if(this.byteLength<wantLength)return!1;let offset=0;for(;offset<wantLength;){let chunk=this.buf.shift();chunk.byteLength>wantLength-offset?(target.set(chunk.subarray(0,wantLength-offset),offset),this.buf.unshift(chunk.subarray(wantLength-offset)),offset+=wantLength-offset):(target.set(chunk,offset),offset+=chunk.byteLength)}return!0}};async function envelopeCompress(envelope,compression,compressMinBytes){let{flags,data}=envelope;if((flags&compressedFlag)===compressedFlag)throw new ConnectError("invalid envelope, already compressed",Code.Internal);return compression&&data.byteLength>=compressMinBytes&&(data=await compression.compress(data),flags=flags|compressedFlag),{data,flags}}async function envelopeDecompress(envelope,compression,readMaxBytes){let{flags,data}=envelope;if((flags&compressedFlag)===compressedFlag){if(!compression)throw new ConnectError("received compressed envelope, but do not know how to decompress",Code.Internal);data=await compression.decompress(data,readMaxBytes),flags=flags^compressedFlag}return{data,flags}}function encodeEnvelope(flags,data){let bytes=new Uint8Array(data.length+5);bytes.set(data,5);let v=new DataView(bytes.buffer,bytes.byteOffset,bytes.byteLength);return v.setUint8(0,flags),v.setUint32(1,data.length),bytes}var __asyncValues=function(o){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var m=o[Symbol.asyncIterator],i;return m?m.call(o):(o=typeof __values=="function"?__values(o):o[Symbol.iterator](),i={},verb("next"),verb("throw"),verb("return"),i[Symbol.asyncIterator]=function(){return this},i);function verb(n){i[n]=o[n]&&function(v){return new Promise(function(resolve,reject){v=o[n](v),settle(resolve,reject,v.done,v.value)})}}function settle(resolve,reject,d,v){Promise.resolve(v).then(function(v2){resolve({value:v2,done:d})},reject)}},__await=function(v){return this instanceof __await?(this.v=v,this):new __await(v)},__asyncGenerator=function(thisArg,_arguments,generator){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var g=generator.apply(thisArg,_arguments||[]),i,q=[];return i=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),verb("next"),verb("throw"),verb("return",awaitReturn),i[Symbol.asyncIterator]=function(){return this},i;function awaitReturn(f){return function(v){return Promise.resolve(v).then(f,reject)}}function verb(n,f){g[n]&&(i[n]=function(v){return new Promise(function(a,b){q.push([n,v,a,b])>1||resume(n,v)})},f&&(i[n]=f(i[n])))}function resume(n,v){try{step(g[n](v))}catch(e){settle(q[0][3],e)}}function step(r){r.value instanceof __await?Promise.resolve(r.value.v).then(fulfill,reject):settle(q[0][2],r)}function fulfill(value){resume("next",value)}function reject(value){resume("throw",value)}function settle(f,v){f(v),q.shift(),q.length&&resume(q[0][0],q[0][1])}},__asyncDelegator=function(o){var i,p;return i={},verb("next"),verb("throw",function(e){throw e}),verb("return"),i[Symbol.iterator]=function(){return this},i;function verb(n,f){i[n]=o[n]?function(v){return(p=!p)?{value:__await(o[n](v)),done:!1}:f?f(v):v}:f}};function pipeTo(source,...rest){let[transforms,sink,opt]=pickTransformsAndSink(rest),iterable=source,abortable;return opt?.propagateDownStreamError===!0&&(iterable=abortable=makeIterableAbortable(iterable)),iterable=pipe2(iterable,...transforms,{propagateDownStreamError:!1}),sink(iterable).catch(reason=>abortable?abortable.abort(reason).then(()=>Promise.reject(reason)):Promise.reject(reason))}function pickTransformsAndSink(rest){let opt;typeof rest[rest.length-1]!="function"&&(opt=rest.pop());let sink=rest.pop();return[rest,sink,opt]}function pipe2(source,...rest){return __asyncGenerator(this,arguments,function*(){var _a;let[transforms,opt]=pickTransforms(rest),abortable,sourceIt=source[Symbol.asyncIterator](),iterable={[Symbol.asyncIterator](){return sourceIt}};opt?.propagateDownStreamError===!0&&(iterable=abortable=makeIterableAbortable(iterable));for(let t of transforms)iterable=t(iterable);let it=iterable[Symbol.asyncIterator]();try{for(;;){let r=yield __await(it.next());if(r.done===!0)break;if(!abortable){yield yield __await(r.value);continue}try{yield yield __await(r.value)}catch(e){throw yield __await(abortable.abort(e)),e}}}finally{opt?.propagateDownStreamError===!0&&((_a=sourceIt.return)===null||_a===void 0||_a.call(sourceIt).catch(()=>{}))}})}function pickTransforms(rest){let opt;return typeof rest[rest.length-1]!="function"&&(opt=rest.pop()),[rest,opt]}function transformSerializeEnvelope(serialization,endStreamFlag,endSerialization){return endStreamFlag===void 0||endSerialization===void 0?function(iterable){return __asyncGenerator(this,arguments,function*(){var _a,e_4,_b,_c;try{for(var _d=!0,iterable_4=__asyncValues(iterable),iterable_4_1;iterable_4_1=yield __await(iterable_4.next()),_a=iterable_4_1.done,!_a;_d=!0){_c=iterable_4_1.value,_d=!1;let chunk=_c,data=serialization.serialize(chunk);yield yield __await({flags:0,data})}}catch(e_4_1){e_4={error:e_4_1}}finally{try{!_d&&!_a&&(_b=iterable_4.return)&&(yield __await(_b.call(iterable_4)))}finally{if(e_4)throw e_4.error}}})}:function(iterable){return __asyncGenerator(this,arguments,function*(){var _a,e_5,_b,_c;try{for(var _d=!0,iterable_5=__asyncValues(iterable),iterable_5_1;iterable_5_1=yield __await(iterable_5.next()),_a=iterable_5_1.done,!_a;_d=!0){_c=iterable_5_1.value,_d=!1;let chunk=_c,data,flags=0;chunk.end?(flags=flags|endStreamFlag,data=endSerialization.serialize(chunk.value)):data=serialization.serialize(chunk.value),yield yield __await({flags,data})}}catch(e_5_1){e_5={error:e_5_1}}finally{try{!_d&&!_a&&(_b=iterable_5.return)&&(yield __await(_b.call(iterable_5)))}finally{if(e_5)throw e_5.error}}})}}function transformParseEnvelope(serialization,endStreamFlag,endSerialization){return endSerialization&&endStreamFlag!==void 0?function(iterable){return __asyncGenerator(this,arguments,function*(){var _a,e_6,_b,_c;try{for(var _d=!0,iterable_6=__asyncValues(iterable),iterable_6_1;iterable_6_1=yield __await(iterable_6.next()),_a=iterable_6_1.done,!_a;_d=!0){_c=iterable_6_1.value,_d=!1;let{flags,data}=_c;(flags&endStreamFlag)===endStreamFlag?yield yield __await({value:endSerialization.parse(data),end:!0}):yield yield __await({value:serialization.parse(data),end:!1})}}catch(e_6_1){e_6={error:e_6_1}}finally{try{!_d&&!_a&&(_b=iterable_6.return)&&(yield __await(_b.call(iterable_6)))}finally{if(e_6)throw e_6.error}}})}:function(iterable){return __asyncGenerator(this,arguments,function*(){var _a,e_7,_b,_c;try{for(var _d=!0,iterable_7=__asyncValues(iterable),iterable_7_1;iterable_7_1=yield __await(iterable_7.next()),_a=iterable_7_1.done,!_a;_d=!0){_c=iterable_7_1.value,_d=!1;let{flags,data}=_c;if(endStreamFlag!==void 0&&(flags&endStreamFlag)===endStreamFlag){if(endSerialization===null)throw new ConnectError("unexpected end flag",Code.InvalidArgument);continue}yield yield __await(serialization.parse(data))}}catch(e_7_1){e_7={error:e_7_1}}finally{try{!_d&&!_a&&(_b=iterable_7.return)&&(yield __await(_b.call(iterable_7)))}finally{if(e_7)throw e_7.error}}})}}function transformCompressEnvelope(compression,compressMinBytes){return function(iterable){return __asyncGenerator(this,arguments,function*(){var _a,e_8,_b,_c;try{for(var _d=!0,iterable_8=__asyncValues(iterable),iterable_8_1;iterable_8_1=yield __await(iterable_8.next()),_a=iterable_8_1.done,!_a;_d=!0)_c=iterable_8_1.value,_d=!1,yield yield __await(yield __await(envelopeCompress(_c,compression,compressMinBytes)))}catch(e_8_1){e_8={error:e_8_1}}finally{try{!_d&&!_a&&(_b=iterable_8.return)&&(yield __await(_b.call(iterable_8)))}finally{if(e_8)throw e_8.error}}})}}function transformDecompressEnvelope(compression,readMaxBytes){return function(iterable){return __asyncGenerator(this,arguments,function*(){var _a,e_9,_b,_c;try{for(var _d=!0,iterable_9=__asyncValues(iterable),iterable_9_1;iterable_9_1=yield __await(iterable_9.next()),_a=iterable_9_1.done,!_a;_d=!0)_c=iterable_9_1.value,_d=!1,yield yield __await(yield __await(envelopeDecompress(_c,compression,readMaxBytes)))}catch(e_9_1){e_9={error:e_9_1}}finally{try{!_d&&!_a&&(_b=iterable_9.return)&&(yield __await(_b.call(iterable_9)))}finally{if(e_9)throw e_9.error}}})}}function transformJoinEnvelopes(){return function(iterable){return __asyncGenerator(this,arguments,function*(){var _a,e_10,_b,_c;try{for(var _d=!0,iterable_10=__asyncValues(iterable),iterable_10_1;iterable_10_1=yield __await(iterable_10.next()),_a=iterable_10_1.done,!_a;_d=!0){_c=iterable_10_1.value,_d=!1;let{flags,data}=_c;yield yield __await(encodeEnvelope(flags,data))}}catch(e_10_1){e_10={error:e_10_1}}finally{try{!_d&&!_a&&(_b=iterable_10.return)&&(yield __await(_b.call(iterable_10)))}finally{if(e_10)throw e_10.error}}})}}function transformSplitEnvelope(readMaxBytes){return function(iterable){return __asyncGenerator(this,arguments,function*(){var _a,e_11,_b,_c;let buffer=createEnvelopeDecoder(readMaxBytes);try{for(var _d=!0,iterable_11=__asyncValues(iterable),iterable_11_1;iterable_11_1=yield __await(iterable_11.next()),_a=iterable_11_1.done,!_a;_d=!0){_c=iterable_11_1.value,_d=!1;let chunk=_c;for(let env of buffer.decode(chunk))yield yield __await(env)}}catch(e_11_1){e_11={error:e_11_1}}finally{try{!_d&&!_a&&(_b=iterable_11.return)&&(yield __await(_b.call(iterable_11)))}finally{if(e_11)throw e_11.error}}if(buffer.byteLength>0)throw new ConnectError("protocol error: incomplete envelope",Code.InvalidArgument)})}}function makeIterableAbortable(iterable){let innerCandidate=iterable[Symbol.asyncIterator]();if(innerCandidate.throw===void 0)throw new Error("AsyncIterable does not implement throw");let inner=innerCandidate,aborted2,resultPromise,it={next(){return resultPromise=inner.next().finally(()=>{resultPromise=void 0}),resultPromise},throw(e){return inner.throw(e)}};innerCandidate.return!==void 0&&(it=Object.assign(Object.assign({},it),{return(value){return inner.return(value)}}));let used=!1;return{abort(reason){if(aborted2)return aborted2.state;let f=()=>inner.throw(reason).then(r=>r.done===!0?"completed":"caught",()=>"rethrown");return resultPromise?(aborted2={reason,state:resultPromise.then(f,f)},aborted2.state):(aborted2={reason,state:f()},aborted2.state)},[Symbol.asyncIterator](){if(used)throw new Error("AsyncIterable cannot be re-used");return used=!0,it}}}function createAsyncIterable(items){return __asyncGenerator(this,arguments,function*(){yield __await(yield*__asyncDelegator(__asyncValues(items)))})}var __asyncValues2=function(o){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var m=o[Symbol.asyncIterator],i;return m?m.call(o):(o=typeof __values=="function"?__values(o):o[Symbol.iterator](),i={},verb("next"),verb("throw"),verb("return"),i[Symbol.asyncIterator]=function(){return this},i);function verb(n){i[n]=o[n]&&function(v){return new Promise(function(resolve,reject){v=o[n](v),settle(resolve,reject,v.done,v.value)})}}function settle(resolve,reject,d,v){Promise.resolve(v).then(function(v2){resolve({value:v2,done:d})},reject)}},__await2=function(v){return this instanceof __await2?(this.v=v,this):new __await2(v)},__asyncDelegator2=function(o){var i,p;return i={},verb("next"),verb("throw",function(e){throw e}),verb("return"),i[Symbol.iterator]=function(){return this},i;function verb(n,f){i[n]=o[n]?function(v){return(p=!p)?{value:__await2(o[n](v)),done:!1}:f?f(v):v}:f}},__asyncGenerator2=function(thisArg,_arguments,generator){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var g=generator.apply(thisArg,_arguments||[]),i,q=[];return i=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),verb("next"),verb("throw"),verb("return",awaitReturn),i[Symbol.asyncIterator]=function(){return this},i;function awaitReturn(f){return function(v){return Promise.resolve(v).then(f,reject)}}function verb(n,f){g[n]&&(i[n]=function(v){return new Promise(function(a,b){q.push([n,v,a,b])>1||resume(n,v)})},f&&(i[n]=f(i[n])))}function resume(n,v){try{step(g[n](v))}catch(e){settle(q[0][3],e)}}function step(r){r.value instanceof __await2?Promise.resolve(r.value.v).then(fulfill,reject):settle(q[0][2],r)}function fulfill(value){resume("next",value)}function reject(value){resume("throw",value)}function settle(f,v){f(v),q.shift(),q.length&&resume(q[0][0],q[0][1])}};function createClient(service,transport){return makeAnyClient(service,method=>{switch(method.methodKind){case"unary":return createUnaryFn(transport,method);case"server_streaming":return createServerStreamingFn(transport,method);case"client_streaming":return createClientStreamingFn(transport,method);case"bidi_streaming":return createBiDiStreamingFn(transport,method);default:return null}})}function createUnaryFn(transport,method){return async(input,options)=>{var _a,_b;let response=await transport.unary(method,options?.signal,options?.timeoutMs,options?.headers,input,options?.contextValues);return(_a=options?.onHeader)===null||_a===void 0||_a.call(options,response.header),(_b=options?.onTrailer)===null||_b===void 0||_b.call(options,response.trailer),response.message}}function createServerStreamingFn(transport,method){return(input,options)=>handleStreamResponse(transport.stream(method,options?.signal,options?.timeoutMs,options?.headers,createAsyncIterable([input]),options?.contextValues),options)}function createClientStreamingFn(transport,method){return async(request3,options)=>{var _a,e_1,_b,_c,_d,_e;let response=await transport.stream(method,options?.signal,options?.timeoutMs,options?.headers,request3,options?.contextValues);(_d=options?.onHeader)===null||_d===void 0||_d.call(options,response.header);let singleMessage,count=0;try{for(var _f=!0,_g=__asyncValues2(response.message),_h;_h=await _g.next(),_a=_h.done,!_a;_f=!0)_c=_h.value,_f=!1,singleMessage=_c,count++}catch(e_1_1){e_1={error:e_1_1}}finally{try{!_f&&!_a&&(_b=_g.return)&&await _b.call(_g)}finally{if(e_1)throw e_1.error}}if(!singleMessage)throw new ConnectError("protocol error: missing response message",Code.Unimplemented);if(count>1)throw new ConnectError("protocol error: received extra messages for client streaming method",Code.Unimplemented);return(_e=options?.onTrailer)===null||_e===void 0||_e.call(options,response.trailer),singleMessage}}function createBiDiStreamingFn(transport,method){return(request3,options)=>handleStreamResponse(transport.stream(method,options?.signal,options?.timeoutMs,options?.headers,request3,options?.contextValues),options)}function handleStreamResponse(stream,options){let it=(function(){return __asyncGenerator2(this,arguments,function*(){var _a,_b;let response=yield __await2(stream);(_a=options?.onHeader)===null||_a===void 0||_a.call(options,response.header),yield __await2(yield*__asyncDelegator2(__asyncValues2(response.message))),(_b=options?.onTrailer)===null||_b===void 0||_b.call(options,response.trailer)})})()[Symbol.asyncIterator]();return{[Symbol.asyncIterator]:()=>({next:()=>it.next()})}}function createLinkedAbortController(...signals){let controller=new AbortController,sa=signals.filter(s=>s!==void 0).concat(controller.signal);for(let signal of sa){if(signal.aborted){onAbort.apply(signal);break}signal.addEventListener("abort",onAbort)}function onAbort(){controller.signal.aborted||controller.abort(getAbortSignalReason(this));for(let signal of sa)signal.removeEventListener("abort",onAbort)}return controller}function createDeadlineSignal(timeoutMs){let controller=new AbortController,listener=()=>{controller.abort(new ConnectError("the operation timed out",Code.DeadlineExceeded))},timeoutId;return timeoutMs!==void 0&&(timeoutMs<=0?listener():timeoutId=setTimeout(listener,timeoutMs)),{signal:controller.signal,cleanup:()=>clearTimeout(timeoutId)}}function getAbortSignalReason(signal){if(!signal.aborted)return;if(signal.reason!==void 0)return signal.reason;let e=new Error("This operation was aborted");return e.name="AbortError",e}function createContextValues(){return{get(key){return key.id in this?this[key.id]:key.defaultValue},set(key,value){return this[key.id]=value,this},delete(key){return delete this[key.id],this}}}function trailerParse(data){let headers=new Headers,lines=new TextDecoder().decode(data).split(`\r
197
197
  `);for(let line of lines){if(line==="")continue;let i=line.indexOf(":");if(i>0){let name=line.substring(0,i).trim(),value=line.substring(i+1).trim();headers.append(name,value)}}return headers}function trailerSerialize(trailer){let lines=[];return trailer.forEach((value,key)=>{lines.push(`${key}: ${value}\r
198
- `)}),new TextEncoder().encode(lines.join(""))}function createTrailerSerialization(){return{serialize:trailerSerialize,parse:trailerParse}}var headerContentType="Content-Type",headerEncoding="Grpc-Encoding",headerAcceptEncoding="Grpc-Accept-Encoding",headerTimeout="Grpc-Timeout",headerGrpcStatus="Grpc-Status",headerGrpcMessage="Grpc-Message",headerStatusDetailsBin="Grpc-Status-Details-Bin";var headerUserAgent="User-Agent";var headerXUserAgent="X-User-Agent",headerXGrpcWeb="X-Grpc-Web";var contentTypeProto="application/grpc-web+proto",contentTypeJson="application/grpc-web+json";var file_status=fileDesc("CgxzdGF0dXMucHJvdG8SCmdvb2dsZS5ycGMiTgoGU3RhdHVzEgwKBGNvZGUYASABKAUSDwoHbWVzc2FnZRgCIAEoCRIlCgdkZXRhaWxzGAMgAygLMhQuZ29vZ2xlLnByb3RvYnVmLkFueUJeCg5jb20uZ29vZ2xlLnJwY0ILU3RhdHVzUHJvdG9QAVo3Z29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9ycGMvc3RhdHVzO3N0YXR1c6ICA1JQQ2IGcHJvdG8z",[file_google_protobuf_any]),StatusSchema=messageDesc(file_status,0);var grpcStatusOk="0";function findTrailerError(headerOrTrailer){var _a;let statusBytes=headerOrTrailer.get(headerStatusDetailsBin);if(statusBytes!=null){let status=decodeBinaryHeader(statusBytes,StatusSchema);if(status.code==0)return;let error3=new ConnectError(status.message,status.code,headerOrTrailer);return error3.details=status.details.map(any=>({type:any.typeUrl.substring(any.typeUrl.lastIndexOf("/")+1),value:any.value})),error3}let grpcStatus=headerOrTrailer.get(headerGrpcStatus);if(grpcStatus!=null){if(grpcStatus===grpcStatusOk)return;let code=parseInt(grpcStatus,10);return code in Code?new ConnectError(decodeURIComponent((_a=headerOrTrailer.get(headerGrpcMessage))!==null&&_a!==void 0?_a:""),code,headerOrTrailer):new ConnectError(`invalid grpc-status: ${grpcStatus}`,Code.Internal,headerOrTrailer)}}function createMethodUrl(baseUrl,method){return baseUrl.toString().replace(/\/?$/,`/${method.parent.typeName}/${method.name}`)}function normalize(desc,message){return create(desc,message)}function normalizeIterable(desc,input){function transform2(result){return result.done===!0?result:{done:result.done,value:normalize(desc,result.value)}}return{[Symbol.asyncIterator](){let it=input[Symbol.asyncIterator](),res={next:()=>it.next().then(transform2)};return it.throw!==void 0&&(res.throw=e=>it.throw(e).then(transform2)),it.return!==void 0&&(res.return=v=>it.return(v).then(transform2)),res}}}function applyInterceptors(next,interceptors){if(!interceptors)return next;for(let i of interceptors.concat().reverse())next=i(next);return next}function getJsonOptions(options){var _a;let o=Object.assign({},options);return(_a=o.ignoreUnknownFields)!==null&&_a!==void 0||(o.ignoreUnknownFields=!0),o}function createMethodSerializationLookup(method,binaryOptions,jsonOptions,limitOptions){let inputBinary=limitSerialization(createBinarySerialization(method.input,binaryOptions),limitOptions),inputJson=limitSerialization(createJsonSerialization(method.input,jsonOptions),limitOptions),outputBinary=limitSerialization(createBinarySerialization(method.output,binaryOptions),limitOptions),outputJson=limitSerialization(createJsonSerialization(method.output,jsonOptions),limitOptions);return{getI(useBinaryFormat){return useBinaryFormat?inputBinary:inputJson},getO(useBinaryFormat){return useBinaryFormat?outputBinary:outputJson}}}function limitSerialization(serialization,limitOptions){return{serialize(data){let bytes=serialization.serialize(data);return assertWriteMaxBytes(limitOptions.writeMaxBytes,bytes.byteLength),bytes},parse(data){return assertReadMaxBytes(limitOptions.readMaxBytes,data.byteLength,!0),serialization.parse(data)}}}function createBinarySerialization(desc,options){return{parse(data){try{return fromBinary(desc,data,options)}catch(e){let m=e instanceof Error?e.message:String(e);throw new ConnectError(`parse binary: ${m}`,Code.Internal)}},serialize(data){try{return toBinary(desc,data,options)}catch(e){let m=e instanceof Error?e.message:String(e);throw new ConnectError(`serialize binary: ${m}`,Code.Internal)}}}}function createJsonSerialization(desc,options){var _a,_b;let textEncoder=(_a=options?.textEncoder)!==null&&_a!==void 0?_a:new TextEncoder,textDecoder=(_b=options?.textDecoder)!==null&&_b!==void 0?_b:new TextDecoder,o=getJsonOptions(options);return{parse(data){try{let json=textDecoder.decode(data);return fromJsonString(desc,json,o)}catch(e){throw ConnectError.from(e,Code.InvalidArgument)}},serialize(data){try{let json=toJsonString(desc,data,o);return textEncoder.encode(json)}catch(e){throw ConnectError.from(e,Code.Internal)}}}}var contentTypeRegExp=/^application\/grpc(?:\+(?:(json)(?:; ?charset=utf-?8)?|proto))?$/i,contentTypeProto2="application/grpc+proto",contentTypeJson2="application/grpc+json";function parseContentType(contentType){let match=contentType?.match(contentTypeRegExp);return match?{binary:!match[1]}:void 0}function runUnaryCall(opt){let next=applyInterceptors(opt.next,opt.interceptors),[signal,abort,done]=setupSignal(opt),req=Object.assign(Object.assign({},opt.req),{message:normalize(opt.req.method.input,opt.req.message),signal});return next(req).then(res=>(done(),res),abort)}function runStreamingCall(opt){let next=applyInterceptors(opt.next,opt.interceptors),[signal,abort,done]=setupSignal(opt),req=Object.assign(Object.assign({},opt.req),{message:normalizeIterable(opt.req.method.input,opt.req.message),signal}),doneCalled=!1;return signal.addEventListener("abort",function(){var _a,_b;let it=opt.req.message[Symbol.asyncIterator]();doneCalled||(_a=it.throw)===null||_a===void 0||_a.call(it,this.reason).catch(()=>{}),(_b=it.return)===null||_b===void 0||_b.call(it).catch(()=>{})}),next(req).then(res=>Object.assign(Object.assign({},res),{message:{[Symbol.asyncIterator](){let it=res.message[Symbol.asyncIterator]();return{next(){return it.next().then(r=>(r.done==!0&&(doneCalled=!0,done()),r),abort)}}}}}),abort)}function setupSignal(opt){let{signal,cleanup}=createDeadlineSignal(opt.timeoutMs),controller=createLinkedAbortController(opt.signal,signal);return[controller.signal,function(reason){let e=ConnectError.from(signal.aborted?getAbortSignalReason(signal):reason);return controller.abort(e),cleanup(),Promise.reject(e)},function(){cleanup(),controller.abort()}]}function messageDesc2(file,path,...paths){return paths.reduce((acc,cur)=>acc.nestedMessages[cur],file.messages[path])}function serviceDesc(file,path,...paths){if(paths.length>0)throw new Error;return file.services[path]}var file_grpc_health_v1_health=fileDesc("ChtncnBjL2hlYWx0aC92MS9oZWFsdGgucHJvdG8SDmdycGMuaGVhbHRoLnYxIiUKEkhlYWx0aENoZWNrUmVxdWVzdBIPCgdzZXJ2aWNlGAEgASgJIqkBChNIZWFsdGhDaGVja1Jlc3BvbnNlEkEKBnN0YXR1cxgBIAEoDjIxLmdycGMuaGVhbHRoLnYxLkhlYWx0aENoZWNrUmVzcG9uc2UuU2VydmluZ1N0YXR1cyJPCg1TZXJ2aW5nU3RhdHVzEgsKB1VOS05PV04QABILCgdTRVJWSU5HEAESDwoLTk9UX1NFUlZJTkcQAhITCg9TRVJWSUNFX1VOS05PV04QAyITChFIZWFsdGhMaXN0UmVxdWVzdCKuAQoSSGVhbHRoTGlzdFJlc3BvbnNlEkIKCHN0YXR1c2VzGAEgAygLMjAuZ3JwYy5oZWFsdGgudjEuSGVhbHRoTGlzdFJlc3BvbnNlLlN0YXR1c2VzRW50cnkaVAoNU3RhdHVzZXNFbnRyeRILCgNrZXkYASABKAkSMgoFdmFsdWUYAiABKAsyIy5ncnBjLmhlYWx0aC52MS5IZWFsdGhDaGVja1Jlc3BvbnNlOgI4ATL9AQoGSGVhbHRoElAKBUNoZWNrEiIuZ3JwYy5oZWFsdGgudjEuSGVhbHRoQ2hlY2tSZXF1ZXN0GiMuZ3JwYy5oZWFsdGgudjEuSGVhbHRoQ2hlY2tSZXNwb25zZRJNCgRMaXN0EiEuZ3JwYy5oZWFsdGgudjEuSGVhbHRoTGlzdFJlcXVlc3QaIi5ncnBjLmhlYWx0aC52MS5IZWFsdGhMaXN0UmVzcG9uc2USUgoFV2F0Y2gSIi5ncnBjLmhlYWx0aC52MS5IZWFsdGhDaGVja1JlcXVlc3QaIy5ncnBjLmhlYWx0aC52MS5IZWFsdGhDaGVja1Jlc3BvbnNlMAFCcAoRaW8uZ3JwYy5oZWFsdGgudjFCC0hlYWx0aFByb3RvUAFaLGdvb2dsZS5nb2xhbmcub3JnL2dycGMvaGVhbHRoL2dycGNfaGVhbHRoX3YxogIMR3JwY0hlYWx0aFYxqgIOR3JwYy5IZWFsdGguVjFiBnByb3RvMw");var HealthCheckResponse_ServingStatus;(function(HealthCheckResponse_ServingStatus2){HealthCheckResponse_ServingStatus2[HealthCheckResponse_ServingStatus2.UNKNOWN=0]="UNKNOWN",HealthCheckResponse_ServingStatus2[HealthCheckResponse_ServingStatus2.SERVING=1]="SERVING",HealthCheckResponse_ServingStatus2[HealthCheckResponse_ServingStatus2.NOT_SERVING=2]="NOT_SERVING",HealthCheckResponse_ServingStatus2[HealthCheckResponse_ServingStatus2.SERVICE_UNKNOWN=3]="SERVICE_UNKNOWN"})(HealthCheckResponse_ServingStatus||(HealthCheckResponse_ServingStatus={}));var Health=serviceDesc(file_grpc_health_v1_health,0);function validateTrailer(trailer,header){let err=findTrailerError(trailer);if(err)throw header.forEach((value,key)=>{err.metadata.append(key,value)}),err;if(!header.has(headerGrpcStatus)&&!trailer.has(headerGrpcStatus))throw new ConnectError("protocol error: missing status",Code.Internal)}function requestHeader(useBinaryFormat,timeoutMs,userProvidedHeaders,setUserAgent){var _a,_b;let result=new Headers(userProvidedHeaders??{});result.set(headerContentType,useBinaryFormat?contentTypeProto:contentTypeJson),result.set(headerXGrpcWeb,"1");let userAgent=(_b=(_a=result.get(headerUserAgent))!==null&&_a!==void 0?_a:result.get(headerXUserAgent))!==null&&_b!==void 0?_b:"connect-es/2.1.1";return result.set(headerXUserAgent,userAgent),setUserAgent&&result.set(headerUserAgent,userAgent),timeoutMs!==void 0&&result.set(headerTimeout,`${timeoutMs}m`),result}function requestHeaderWithCompression(useBinaryFormat,timeoutMs,userProvidedHeaders,acceptCompression,sendCompression,setUserAgent){let result=requestHeader(useBinaryFormat,timeoutMs,userProvidedHeaders,setUserAgent);return sendCompression!=null&&result.set(headerEncoding,sendCompression.name),acceptCompression.length>0&&result.set(headerAcceptEncoding,acceptCompression.map(c=>c.name).join(",")),result}function codeFromHttpStatus(httpStatus){switch(httpStatus){case 400:return Code.Internal;case 401:return Code.Unauthenticated;case 403:return Code.PermissionDenied;case 404:return Code.Unimplemented;case 429:return Code.Unavailable;case 502:return Code.Unavailable;case 503:return Code.Unavailable;case 504:return Code.Unavailable;default:return Code.Unknown}}function validateResponse(status,headers){var _a;if(status>=200&&status<300)return{foundStatus:headers.has(headerGrpcStatus),headerError:findTrailerError(headers)};throw new ConnectError(decodeURIComponent((_a=headers.get(headerGrpcMessage))!==null&&_a!==void 0?_a:`HTTP ${status}`),codeFromHttpStatus(status),headers)}function validateResponseWithCompression(acceptCompression,status,headers){let{foundStatus,headerError}=validateResponse(status,headers),compression,encoding=headers.get(headerEncoding);if(encoding!==null&&encoding.toLowerCase()!=="identity"&&(compression=acceptCompression.find(c=>c.name===encoding),!compression))throw new ConnectError(`unsupported response encoding "${encoding}"`,Code.Internal,headers);return{foundStatus,compression,headerError}}var __asyncValues3=function(o){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var m=o[Symbol.asyncIterator],i;return m?m.call(o):(o=typeof __values=="function"?__values(o):o[Symbol.iterator](),i={},verb("next"),verb("throw"),verb("return"),i[Symbol.asyncIterator]=function(){return this},i);function verb(n){i[n]=o[n]&&function(v){return new Promise(function(resolve,reject){v=o[n](v),settle(resolve,reject,v.done,v.value)})}}function settle(resolve,reject,d,v){Promise.resolve(v).then(function(v2){resolve({value:v2,done:d})},reject)}},__await3=function(v){return this instanceof __await3?(this.v=v,this):new __await3(v)},__asyncGenerator3=function(thisArg,_arguments,generator){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var g=generator.apply(thisArg,_arguments||[]),i,q=[];return i=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),verb("next"),verb("throw"),verb("return",awaitReturn),i[Symbol.asyncIterator]=function(){return this},i;function awaitReturn(f){return function(v){return Promise.resolve(v).then(f,reject)}}function verb(n,f){g[n]&&(i[n]=function(v){return new Promise(function(a,b){q.push([n,v,a,b])>1||resume(n,v)})},f&&(i[n]=f(i[n])))}function resume(n,v){try{step(g[n](v))}catch(e){settle(q[0][3],e)}}function step(r){r.value instanceof __await3?Promise.resolve(r.value.v).then(fulfill,reject):settle(q[0][2],r)}function fulfill(value){resume("next",value)}function reject(value){resume("throw",value)}function settle(f,v){f(v),q.shift(),q.length&&resume(q[0][0],q[0][1])}};function createTransport(opt){return{async unary(method,signal,timeoutMs,header,message,contextValues){let serialization=createMethodSerializationLookup(method,opt.binaryOptions,opt.jsonOptions,opt);return timeoutMs=timeoutMs===void 0?opt.defaultTimeoutMs:timeoutMs<=0?void 0:timeoutMs,await runUnaryCall({interceptors:opt.interceptors,signal,timeoutMs,req:{stream:!1,service:method.parent,method,requestMethod:"POST",url:createMethodUrl(opt.baseUrl,method),header:requestHeaderWithCompression(opt.useBinaryFormat,timeoutMs,header,opt.acceptCompression,opt.sendCompression,!0),contextValues:contextValues??createContextValues(),message},next:async req=>{let uRes=await opt.httpClient({url:req.url,method:req.requestMethod,header:req.header,signal:req.signal,body:pipe2(createAsyncIterable([req.message]),transformSerializeEnvelope(serialization.getI(opt.useBinaryFormat)),transformCompressEnvelope(opt.sendCompression,opt.compressMinBytes),transformJoinEnvelopes(),{propagateDownStreamError:!0})}),{compression,headerError}=validateResponseWithCompression(opt.acceptCompression,uRes.status,uRes.header),{trailer,message:message2}=await pipeTo(uRes.body,transformSplitEnvelope(opt.readMaxBytes),transformDecompressEnvelope(compression??null,opt.readMaxBytes),transformParseEnvelope(serialization.getO(opt.useBinaryFormat),128,createTrailerSerialization()),async iterable=>{var _a,e_1,_b,_c;let message3,trailer2;try{for(var _d=!0,iterable_1=__asyncValues3(iterable),iterable_1_1;iterable_1_1=await iterable_1.next(),_a=iterable_1_1.done,!_a;_d=!0){_c=iterable_1_1.value,_d=!1;let env=_c;if(env.end){if(trailer2!==void 0)throw new ConnectError("protocol error: received extra trailer",Code.Unimplemented);trailer2=env.value}else{if(message3!==void 0)throw new ConnectError("protocol error: received extra output message for unary method",Code.Unimplemented);message3=env.value}}}catch(e_1_1){e_1={error:e_1_1}}finally{try{!_d&&!_a&&(_b=iterable_1.return)&&await _b.call(iterable_1)}finally{if(e_1)throw e_1.error}}return{trailer:trailer2,message:message3}},{propagateDownStreamError:!1});if(trailer===void 0)throw headerError??new ConnectError("protocol error: missing trailer",uRes.header.has(headerGrpcStatus)?Code.Unimplemented:Code.Unknown);if(validateTrailer(trailer,uRes.header),message2===void 0)throw new ConnectError("protocol error: missing output message for unary method",trailer.has(headerGrpcStatus)?Code.Unimplemented:Code.Unknown);return{stream:!1,service:method.parent,method,header:uRes.header,message:message2,trailer}}})},async stream(method,signal,timeoutMs,header,input,contextValues){let serialization=createMethodSerializationLookup(method,opt.binaryOptions,opt.jsonOptions,opt);return timeoutMs=timeoutMs===void 0?opt.defaultTimeoutMs:timeoutMs<=0?void 0:timeoutMs,runStreamingCall({interceptors:opt.interceptors,signal,timeoutMs,req:{stream:!0,service:method.parent,method,requestMethod:"POST",url:createMethodUrl(opt.baseUrl,method),header:requestHeaderWithCompression(opt.useBinaryFormat,timeoutMs,header,opt.acceptCompression,opt.sendCompression,!0),contextValues:contextValues??createContextValues(),message:input},next:async req=>{let uRes=await opt.httpClient({url:req.url,method:req.requestMethod,header:req.header,signal:req.signal,body:pipe2(req.message,transformSerializeEnvelope(serialization.getI(opt.useBinaryFormat)),transformCompressEnvelope(opt.sendCompression,opt.compressMinBytes),transformJoinEnvelopes(),{propagateDownStreamError:!0})}),{compression,foundStatus,headerError}=validateResponseWithCompression(opt.acceptCompression,uRes.status,uRes.header);if(headerError)throw headerError;let res=Object.assign(Object.assign({},req),{header:uRes.header,trailer:new Headers,message:pipe2(uRes.body,transformSplitEnvelope(opt.readMaxBytes),transformDecompressEnvelope(compression??null,opt.readMaxBytes),transformParseEnvelope(serialization.getO(opt.useBinaryFormat),128,createTrailerSerialization()),function(iterable){return __asyncGenerator3(this,arguments,function*(){var _a,e_2,_b,_c;if(foundStatus){if((yield __await3(iterable[Symbol.asyncIterator]().next())).done!==!0)throw new ConnectError("protocol error: extra data for trailers-only",Code.InvalidArgument);return yield __await3(void 0)}let trailerReceived=!1;try{for(var _d=!0,iterable_2=__asyncValues3(iterable),iterable_2_1;iterable_2_1=yield __await3(iterable_2.next()),_a=iterable_2_1.done,!_a;_d=!0){_c=iterable_2_1.value,_d=!1;let chunk=_c;if(chunk.end){if(trailerReceived)throw new ConnectError("protocol error: received extra trailer",Code.InvalidArgument);trailerReceived=!0,validateTrailer(chunk.value,uRes.header),chunk.value.forEach((value,key)=>res.trailer.set(key,value));continue}if(trailerReceived)throw new ConnectError("protocol error: received extra message after trailer",Code.InvalidArgument);yield yield __await3(chunk.value)}}catch(e_2_1){e_2={error:e_2_1}}finally{try{!_d&&!_a&&(_b=iterable_2.return)&&(yield __await3(_b.call(iterable_2)))}finally{if(e_2)throw e_2.error}}if(!trailerReceived)throw new ConnectError("protocol error: missing trailer",Code.Internal)})},{propagateDownStreamError:!0})});return res}})}}}function requestHeader2(useBinaryFormat,timeoutMs,userProvidedHeaders){let result=new Headers(userProvidedHeaders??{});return result.set(headerContentType,useBinaryFormat?contentTypeProto2:contentTypeJson2),result.has(headerUserAgent)||result.set(headerUserAgent,"connect-es/2.1.1"),timeoutMs!==void 0&&result.set(headerTimeout,`${timeoutMs}m`),result.set("Te","trailers"),result}function requestHeaderWithCompression2(useBinaryFormat,timeoutMs,userProvidedHeaders,acceptCompression,sendCompression){let result=requestHeader2(useBinaryFormat,timeoutMs,userProvidedHeaders);return sendCompression!=null&&result.set(headerEncoding,sendCompression.name),acceptCompression.length>0&&result.set(headerAcceptEncoding,acceptCompression.map(c=>c.name).join(",")),result}function validateResponse2(status,headers){if(status!=200)throw new ConnectError(`HTTP ${status}`,codeFromHttpStatus(status),headers);let mimeType=headers.get(headerContentType);if(parseContentType(mimeType)==null)throw new ConnectError(`unsupported content type ${mimeType}`,Code.Unknown);return{foundStatus:headers.has(headerGrpcStatus),headerError:findTrailerError(headers)}}function validateResponseWithCompression2(acceptCompression,status,headers){let{foundStatus,headerError}=validateResponse2(status,headers),compression,encoding=headers.get(headerEncoding);if(encoding!==null&&encoding.toLowerCase()!=="identity"&&(compression=acceptCompression.find(c=>c.name===encoding),!compression))throw new ConnectError(`unsupported response encoding "${encoding}"`,Code.Internal,headers);return{foundStatus,compression,headerError}}var __asyncValues4=function(o){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var m=o[Symbol.asyncIterator],i;return m?m.call(o):(o=typeof __values=="function"?__values(o):o[Symbol.iterator](),i={},verb("next"),verb("throw"),verb("return"),i[Symbol.asyncIterator]=function(){return this},i);function verb(n){i[n]=o[n]&&function(v){return new Promise(function(resolve,reject){v=o[n](v),settle(resolve,reject,v.done,v.value)})}}function settle(resolve,reject,d,v){Promise.resolve(v).then(function(v2){resolve({value:v2,done:d})},reject)}},__await4=function(v){return this instanceof __await4?(this.v=v,this):new __await4(v)},__asyncDelegator3=function(o){var i,p;return i={},verb("next"),verb("throw",function(e){throw e}),verb("return"),i[Symbol.iterator]=function(){return this},i;function verb(n,f){i[n]=o[n]?function(v){return(p=!p)?{value:__await4(o[n](v)),done:!1}:f?f(v):v}:f}},__asyncGenerator4=function(thisArg,_arguments,generator){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var g=generator.apply(thisArg,_arguments||[]),i,q=[];return i=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),verb("next"),verb("throw"),verb("return",awaitReturn),i[Symbol.asyncIterator]=function(){return this},i;function awaitReturn(f){return function(v){return Promise.resolve(v).then(f,reject)}}function verb(n,f){g[n]&&(i[n]=function(v){return new Promise(function(a,b){q.push([n,v,a,b])>1||resume(n,v)})},f&&(i[n]=f(i[n])))}function resume(n,v){try{step(g[n](v))}catch(e){settle(q[0][3],e)}}function step(r){r.value instanceof __await4?Promise.resolve(r.value.v).then(fulfill,reject):settle(q[0][2],r)}function fulfill(value){resume("next",value)}function reject(value){resume("throw",value)}function settle(f,v){f(v),q.shift(),q.length&&resume(q[0][0],q[0][1])}};function createTransport2(opt){return{async unary(method,signal,timeoutMs,header,message,contextValues){let serialization=createMethodSerializationLookup(method,opt.binaryOptions,opt.jsonOptions,opt);return timeoutMs=timeoutMs===void 0?opt.defaultTimeoutMs:timeoutMs<=0?void 0:timeoutMs,await runUnaryCall({interceptors:opt.interceptors,signal,timeoutMs,req:{stream:!1,service:method.parent,method,requestMethod:"POST",url:createMethodUrl(opt.baseUrl,method),header:requestHeaderWithCompression2(opt.useBinaryFormat,timeoutMs,header,opt.acceptCompression,opt.sendCompression),contextValues:contextValues??createContextValues(),message},next:async req=>{let uRes=await opt.httpClient({url:req.url,method:"POST",header:req.header,signal:req.signal,body:pipe2(createAsyncIterable([req.message]),transformSerializeEnvelope(serialization.getI(opt.useBinaryFormat)),transformCompressEnvelope(opt.sendCompression,opt.compressMinBytes),transformJoinEnvelopes(),{propagateDownStreamError:!0})}),{compression,headerError}=validateResponseWithCompression2(opt.acceptCompression,uRes.status,uRes.header),message2=await pipeTo(uRes.body,transformSplitEnvelope(opt.readMaxBytes),transformDecompressEnvelope(compression??null,opt.readMaxBytes),transformParseEnvelope(serialization.getO(opt.useBinaryFormat)),async iterable=>{var _a,e_1,_b,_c;let message3;try{for(var _d=!0,iterable_1=__asyncValues4(iterable),iterable_1_1;iterable_1_1=await iterable_1.next(),_a=iterable_1_1.done,!_a;_d=!0){_c=iterable_1_1.value,_d=!1;let chunk=_c;if(message3!==void 0)throw new ConnectError("protocol error: received extra output message for unary method",Code.Unimplemented);message3=chunk}}catch(e_1_1){e_1={error:e_1_1}}finally{try{!_d&&!_a&&(_b=iterable_1.return)&&await _b.call(iterable_1)}finally{if(e_1)throw e_1.error}}return message3},{propagateDownStreamError:!1});if(validateTrailer(uRes.trailer,uRes.header),message2===void 0)throw headerError||new ConnectError("protocol error: missing output message for unary method",uRes.trailer.has(headerGrpcStatus)?Code.Unimplemented:Code.Unknown);if(headerError)throw new ConnectError("protocol error: received output message for unary method with error status",Code.Unknown);return{stream:!1,service:method.parent,method,header:uRes.header,message:message2,trailer:uRes.trailer}}})},async stream(method,signal,timeoutMs,header,input,contextValues){let serialization=createMethodSerializationLookup(method,opt.binaryOptions,opt.jsonOptions,opt);return timeoutMs=timeoutMs===void 0?opt.defaultTimeoutMs:timeoutMs<=0?void 0:timeoutMs,runStreamingCall({interceptors:opt.interceptors,signal,timeoutMs,req:{stream:!0,service:method.parent,method,requestMethod:"POST",url:createMethodUrl(opt.baseUrl,method),header:requestHeaderWithCompression2(opt.useBinaryFormat,timeoutMs,header,opt.acceptCompression,opt.sendCompression),contextValues:contextValues??createContextValues(),message:input},next:async req=>{let uRes=await opt.httpClient({url:req.url,method:"POST",header:req.header,signal:req.signal,body:pipe2(req.message,transformSerializeEnvelope(serialization.getI(opt.useBinaryFormat)),transformCompressEnvelope(opt.sendCompression,opt.compressMinBytes),transformJoinEnvelopes(),{propagateDownStreamError:!0})}),{compression,foundStatus,headerError}=validateResponseWithCompression2(opt.acceptCompression,uRes.status,uRes.header);if(headerError)throw headerError;return Object.assign(Object.assign({},req),{header:uRes.header,trailer:uRes.trailer,message:pipe2(uRes.body,transformSplitEnvelope(opt.readMaxBytes),transformDecompressEnvelope(compression??null,opt.readMaxBytes),transformParseEnvelope(serialization.getO(opt.useBinaryFormat)),function(iterable){return __asyncGenerator4(this,arguments,function*(){yield __await4(yield*__asyncDelegator3(__asyncValues4(iterable))),foundStatus||validateTrailer(uRes.trailer,uRes.header)})},{propagateDownStreamError:!0})})}})}}}import*as zlib from"node:zlib";import{promisify}from"node:util";function connectErrorFromNodeReason(reason){let code=Code.Internal,chain=unwrapNodeErrorChain(reason).map(getNodeErrorProps);chain.some(p=>p.code=="ERR_STREAM_WRITE_AFTER_END")?code=Code.Aborted:chain.some(p=>p.code=="ERR_STREAM_DESTROYED"||p.code=="ERR_HTTP2_INVALID_STREAM"||p.code=="ECONNRESET")?code=Code.Aborted:chain.some(p=>p.code=="ETIMEDOUT"||p.code=="ENOTFOUND"||p.code=="EAI_AGAIN"||p.code=="ECONNREFUSED")&&(code=Code.Unavailable);let ce=ConnectError.from(reason,code);return ce!==reason&&(ce.cause=reason),ce}function unwrapNodeErrorChain(reason){let chain=[];for(;!(!(reason instanceof Error)||chain.includes(reason)||(chain.push(reason),!("cause"in reason)));)reason=reason.cause;return chain}function getNodeErrorProps(reason){let props={};return reason instanceof Error&&("code"in reason&&typeof reason.code=="string"&&(props.code=reason.code),"syscall"in reason&&typeof reason.syscall=="string"&&(props.syscall=reason.syscall)),props}function connectErrorFromH2ResetCode(rstCode){switch(rstCode){case H2Code.PROTOCOL_ERROR:case H2Code.INTERNAL_ERROR:case H2Code.FLOW_CONTROL_ERROR:case H2Code.SETTINGS_TIMEOUT:case H2Code.FRAME_SIZE_ERROR:case H2Code.COMPRESSION_ERROR:case H2Code.CONNECT_ERROR:return new ConnectError(`http/2 stream closed with error code ${H2Code[rstCode]} (0x${rstCode.toString(16)})`,Code.Internal);case H2Code.REFUSED_STREAM:return new ConnectError(`http/2 stream closed with error code ${H2Code[rstCode]} (0x${rstCode.toString(16)})`,Code.Unavailable);case H2Code.CANCEL:return new ConnectError(`http/2 stream closed with error code ${H2Code[rstCode]} (0x${rstCode.toString(16)})`,Code.Canceled);case H2Code.ENHANCE_YOUR_CALM:return new ConnectError(`http/2 stream closed with error code ${H2Code[rstCode]} (0x${rstCode.toString(16)})`,Code.ResourceExhausted);case H2Code.INADEQUATE_SECURITY:return new ConnectError(`http/2 stream closed with error code ${H2Code[rstCode]} (0x${rstCode.toString(16)})`,Code.PermissionDenied);case H2Code.HTTP_1_1_REQUIRED:return new ConnectError(`http/2 stream closed with error code ${H2Code[rstCode]} (0x${rstCode.toString(16)})`,Code.PermissionDenied);default:break}}var H2Code;(function(H2Code2){H2Code2[H2Code2.PROTOCOL_ERROR=1]="PROTOCOL_ERROR",H2Code2[H2Code2.INTERNAL_ERROR=2]="INTERNAL_ERROR",H2Code2[H2Code2.FLOW_CONTROL_ERROR=3]="FLOW_CONTROL_ERROR",H2Code2[H2Code2.SETTINGS_TIMEOUT=4]="SETTINGS_TIMEOUT",H2Code2[H2Code2.STREAM_CLOSED=5]="STREAM_CLOSED",H2Code2[H2Code2.FRAME_SIZE_ERROR=6]="FRAME_SIZE_ERROR",H2Code2[H2Code2.REFUSED_STREAM=7]="REFUSED_STREAM",H2Code2[H2Code2.CANCEL=8]="CANCEL",H2Code2[H2Code2.COMPRESSION_ERROR=9]="COMPRESSION_ERROR",H2Code2[H2Code2.CONNECT_ERROR=10]="CONNECT_ERROR",H2Code2[H2Code2.ENHANCE_YOUR_CALM=11]="ENHANCE_YOUR_CALM",H2Code2[H2Code2.INADEQUATE_SECURITY=12]="INADEQUATE_SECURITY",H2Code2[H2Code2.HTTP_1_1_REQUIRED=13]="HTTP_1_1_REQUIRED"})(H2Code||(H2Code={}));var gzip2=promisify(zlib.gzip),gunzip2=promisify(zlib.gunzip),brotliCompress2=promisify(zlib.brotliCompress),brotliDecompress2=promisify(zlib.brotliDecompress),compressionGzip={name:"gzip",compress(bytes){return asUint8ArrayArrayBuffer(gzip2(bytes,{}))},decompress(bytes,readMaxBytes){return bytes.length==0?Promise.resolve(new Uint8Array(0)):asUint8ArrayArrayBuffer(wrapZLibErrors(gunzip2(bytes,{maxOutputLength:readMaxBytes}),readMaxBytes))}},compressionBrotli={name:"br",compress(bytes){return asUint8ArrayArrayBuffer(brotliCompress2(bytes,{}))},decompress(bytes,readMaxBytes){return bytes.length==0?Promise.resolve(new Uint8Array(0)):asUint8ArrayArrayBuffer(wrapZLibErrors(brotliDecompress2(bytes,{maxOutputLength:readMaxBytes}),readMaxBytes))}};function asUint8ArrayArrayBuffer(bytes){return bytes.then(b=>b.buffer instanceof ArrayBuffer?b:new Uint8Array(b))}function wrapZLibErrors(promise,readMaxBytes){return promise.catch(e=>{var _a;let props=getNodeErrorProps(e),code=Code.Internal,message="decompression failed";switch(props.code){case"ERR_BUFFER_TOO_LARGE":code=Code.ResourceExhausted,message=`message is larger than configured readMaxBytes ${readMaxBytes} after decompression`;break;case"Z_DATA_ERROR":case"ERR_PADDING_2":code=Code.InvalidArgument;break;default:!((_a=props.code)===null||_a===void 0)&&_a.startsWith("ERR__ERROR_FORMAT_")&&(code=Code.InvalidArgument);break}return Promise.reject(new ConnectError(message,code,void 0,void 0,e))})}import*as http from"node:http";import*as https from"node:https";function nodeHeaderToWebHeader(nodeHeaders){let header=new Headers;for(let[k,v]of Object.entries(nodeHeaders))if(!k.startsWith(":")&&v!==void 0)if(typeof v=="string")header.append(k,v);else if(typeof v=="number")header.append(k,String(v));else for(let e of v)header.append(k,e);return header}function webHeaderToNodeHeaders(headersInit,defaultNodeHeaders){if(headersInit===void 0&&defaultNodeHeaders===void 0)return;let o=Object.create(null);if(defaultNodeHeaders!==void 0)if(Array.isArray(defaultNodeHeaders))for(let i=0;i+1<defaultNodeHeaders.length;i+=2){let key=defaultNodeHeaders[i],value=defaultNodeHeaders[i+1];Array.isArray(o[key])?o[key].push(value):typeof o[key]=="string"?o[key]=[o[key],value]:o[key]=value}else for(let[key,value]of Object.entries(defaultNodeHeaders))Array.isArray(value)?o[key]=value.concat():value!==void 0&&(o[key]=value);if(headersInit!==void 0)if(Array.isArray(headersInit))for(let[key,value]of headersInit)appendWebHeader(o,key,value);else if("forEach"in headersInit)typeof headersInit.forEach=="function"&&headersInit.forEach((value,key)=>{appendWebHeader(o,key,value)});else for(let[key,value]of Object.entries(headersInit))appendWebHeader(o,key,value);return o}function appendWebHeader(o,key,value){key=key.toLowerCase();let existing=o[key];Array.isArray(existing)?existing.push(value):existing===void 0?o[key]=value:o[key]=[existing.toString(),value]}import*as http2 from"node:http2";var Http2SessionManager=class{state(){return this.s.t=="ready"?this.verifying!==void 0?"verifying":this.s.streamCount()>0?"open":"idle":this.s.t}error(){if(this.s.t=="error")return this.s.reason}constructor(url,pingOptions,http2SessionOptions){var _a,_b,_c,_d;this.s=closed(),this.shuttingDown=[],this.authority=new URL(url).origin,this.http2SessionOptions=http2SessionOptions,this.options={pingIntervalMs:(_a=pingOptions?.pingIntervalMs)!==null&&_a!==void 0?_a:Number.POSITIVE_INFINITY,pingTimeoutMs:(_b=pingOptions?.pingTimeoutMs)!==null&&_b!==void 0?_b:1e3*15,pingIdleConnection:(_c=pingOptions?.pingIdleConnection)!==null&&_c!==void 0?_c:!1,idleConnectionTimeoutMs:(_d=pingOptions?.idleConnectionTimeoutMs)!==null&&_d!==void 0?_d:1e3*60*15}}async connect(){try{return(await this.gotoReady()).streamCount()>0?"open":"idle"}catch{return"error"}}async request(method,path,headers,options){for(;;){let ready2=await this.gotoReady();try{let stream=ready2.conn.request(Object.assign(Object.assign({},headers),{":method":method,":path":path}),options);return ready2.registerRequest(stream),stream}catch(e){if(ready2.conn.closed||ready2.conn.destroyed)continue;throw e}}}notifyResponseByteRead(stream){this.s.t=="ready"&&this.s.responseByteRead(stream);for(let s of this.shuttingDown)s.responseByteRead(stream)}abort(reason){var _a,_b,_c;let err=reason??new ConnectError("connection aborted",Code.Canceled);(_b=(_a=this.s).abort)===null||_b===void 0||_b.call(_a,err);for(let s of this.shuttingDown)(_c=s.abort)===null||_c===void 0||_c.call(s,err);this.setState(closedOrError(err))}async gotoReady(){for(this.s.t=="ready"?this.s.isShuttingDown()||this.s.conn.closed||this.s.conn.destroyed?this.setState(connect2(this.authority,this.http2SessionOptions)):this.s.requiresVerify()&&await this.verify(this.s):(this.s.t=="closed"||this.s.t=="error")&&this.setState(connect2(this.authority,this.http2SessionOptions));this.s.t!=="ready";){if(this.s.t==="error")throw this.s.reason;this.s.t==="connecting"&&await this.s.conn}return this.s}setState(state){var _a,_b;if((_b=(_a=this.s).onExitState)===null||_b===void 0||_b.call(_a),this.s.t=="ready"&&this.s.isShuttingDown()){let sd=this.s;this.shuttingDown.push(sd),sd.onClose=sd.onError=()=>{let i=this.shuttingDown.indexOf(sd);i!==-1&&this.shuttingDown.splice(i,1)}}switch(state.t){case"connecting":state.conn.then(value=>{this.setState(ready(value,this.options))},reason=>{this.setState(closedOrError(reason))});break;case"ready":state.onClose=()=>this.setState(closed()),state.onError=err=>this.setState(closedOrError(err));break;case"closed":break;case"error":break}this.s=state}verify(stateReady){return this.verifying!==void 0?this.verifying:(this.verifying=stateReady.verify().then(success=>{success||this.setState(connect2(this.authority,this.http2SessionOptions))},reason=>{this.setState(closedOrError(reason))}).finally(()=>{this.verifying=void 0}),this.verifying)}};function closed(){return{t:"closed"}}function error2(reason){return{t:"error",reason}}function closedOrError(reason){return reason instanceof ConnectError&&ConnectError.from(reason).code==Code.Canceled?closed():error2(reason)}function connect2(authority,http2SessionOptions){let resolve,reject,conn=new Promise((res,rej)=>{resolve=res,reject=rej}),newConn=http2.connect(authority,http2SessionOptions);newConn.on("connect",onConnect),newConn.on("error",onError);function onConnect(){resolve?.(newConn),cleanup()}function onError(err){reject?.(connectErrorFromNodeReason(err)),cleanup()}function cleanup(){newConn.off("connect",onConnect),newConn.off("error",onError)}return{t:"connecting",conn,abort(reason){newConn.destroyed||newConn.destroy(void 0,http2.constants.NGHTTP2_CANCEL),reject?.(reason)},onExitState(){cleanup()}}}function ready(conn,options){assertSessionOpen(conn),conn.unref();let lastAliveAt=Date.now(),streamCount=0,pingIntervalId,pingTimeoutId,receivedGoAway=!1,receivedGoAwayEnhanceYourCalmTooManyPings=!1,idleTimeoutId;resetIdleTimeout();let state={t:"ready",conn,streamCount(){return streamCount},requiresVerify(){return Date.now()-lastAliveAt>options.pingIntervalMs},isShuttingDown(){return receivedGoAway},onClose:void 0,onError:void 0,registerRequest(stream){streamCount++,streamCount==1&&(conn.ref(),resetPingInterval(),stopIdleTimeout()),stream.once("response",()=>{lastAliveAt=Date.now(),resetPingInterval()}),stream.once("close",()=>{streamCount--,streamCount==0&&(conn.unref(),resetPingInterval(),resetIdleTimeout())})},responseByteRead(stream){stream.session===conn&&(conn.closed||conn.destroyed||streamCount<=0||(lastAliveAt=Date.now(),resetPingInterval()))},verify(){return conn.ref(),new Promise(resolve=>{let onError2=()=>{resolve(!1)};commonPing(()=>{streamCount==0&&conn.unref(),conn.off("error",onError2),resolve(!0)}),conn.once("error",onError2)})},abort(reason){conn.destroyed||(conn.once("error",()=>{}),conn.destroy(reason,http2.constants.NGHTTP2_CANCEL))},onExitState(){state.isShuttingDown()||(cleanup(),this.onError=void 0,this.onClose=void 0)}};function resetPingInterval(){stopPingInterval(),(streamCount>0||options.pingIdleConnection)&&(pingIntervalId=safeSetTimeout(onPingInterval,options.pingIntervalMs))}function stopPingInterval(){clearTimeout(pingIntervalId),clearTimeout(pingTimeoutId)}function onPingInterval(){commonPing(resetPingInterval)}function commonPing(onSuccess){clearTimeout(pingTimeoutId),pingTimeoutId=safeSetTimeout(()=>{conn.destroy(new ConnectError("PING timed out",Code.Unavailable),http2.constants.NGHTTP2_CANCEL)},options.pingTimeoutMs),conn.ping((err,duration3)=>{if(clearTimeout(pingTimeoutId),err===null){if(duration3>options.pingTimeoutMs){conn.destroy(new ConnectError("PING timed out",Code.Unavailable),http2.constants.NGHTTP2_CANCEL);return}lastAliveAt=Date.now(),onSuccess()}})}function stopIdleTimeout(){clearTimeout(idleTimeoutId)}function resetIdleTimeout(){idleTimeoutId=safeSetTimeout(onIdleTimeout,options.idleConnectionTimeoutMs)}function onIdleTimeout(){conn.close(),onClose()}function onGoaway(errorCode,lastStreamID,opaqueData){if(errorCode===http2.constants.NGHTTP2_NO_ERROR&&streamCount===0){conn.destroy(new ConnectError("received GOAWAY without any open streams",Code.Canceled),http2.constants.NGHTTP2_NO_ERROR);return}receivedGoAway=!0;let tooManyPingsAscii=Buffer.from("too_many_pings","ascii");opaqueData?.equals(tooManyPingsAscii)&&(options.pingIntervalMs=options.pingIntervalMs*2,receivedGoAwayEnhanceYourCalmTooManyPings=!0)}function onClose(){var _a;cleanup(),(_a=state.onClose)===null||_a===void 0||_a.call(state)}function onError(err){var _a,_b;if(cleanup(),receivedGoAwayEnhanceYourCalmTooManyPings){let ce=new ConnectError(`http/2 connection closed with error code ENHANCE_YOUR_CALM (0x${http2.constants.NGHTTP2_ENHANCE_YOUR_CALM.toString(16)}), too_many_pings, doubled the interval`,Code.ResourceExhausted);(_a=state.onError)===null||_a===void 0||_a.call(state,ce)}else(_b=state.onError)===null||_b===void 0||_b.call(state,connectErrorFromNodeReason(err))}function cleanup(){stopPingInterval(),stopIdleTimeout(),conn.off("error",onError),conn.off("close",onClose),conn.off("goaway",onGoaway)}return conn.on("error",onError),conn.on("close",onClose),conn.on("goaway",onGoaway),state}function safeSetTimeout(callback,ms){if(!(ms>2147483647))return setTimeout(callback,ms).unref()}function assertSessionOpen(conn){if(conn.connecting)throw new ConnectError("expected open session, but it is connecting",Code.Internal);if(conn.destroyed)throw new ConnectError("expected open session, but it is destroyed",Code.Internal);if(conn.closed)throw new ConnectError("expected open session, but it is closed",Code.Internal)}function createNodeHttpClient(options){var _a;if(options.httpVersion=="1.1")return createNodeHttp1Client(options.nodeOptions);let sessionProvider=(_a=options.sessionProvider)!==null&&_a!==void 0?_a:(url=>new Http2SessionManager(url));return createNodeHttp2Client(sessionProvider)}function createNodeHttp1Client(httpOptions){return async function(req){let sentinel=createSentinel(req.signal);return new Promise((resolve,reject)=>{sentinel.onError(e=>{reject(e)}),h1Request(sentinel,req.url,Object.assign(Object.assign({},httpOptions),{headers:webHeaderToNodeHeaders(req.header,httpOptions?.headers),method:req.method}),request4=>{sinkRequest(req,request4,sentinel),request4.on("response",response=>{var _a;response.on("error",sentinel.error),sentinel.onError(reason=>response.destroy(reason));let trailer=new Headers;resolve({status:(_a=response.statusCode)!==null&&_a!==void 0?_a:0,header:nodeHeaderToWebHeader(response.headers),body:h1ResponseIterable(sentinel,response,trailer),trailer})})})})}}function createNodeHttp2Client(sessionProvider){return function(req){let sentinel=createSentinel(req.signal),sessionManager=sessionProvider(req.url);return new Promise((resolve,reject)=>{sentinel.onError(e=>{reject(e)}),h2Request(sentinel,sessionManager,req.url,req.method,webHeaderToNodeHeaders(req.header),{},stream=>{sinkRequest(req,stream,sentinel),stream.on("response",headers=>{var _a;let response={status:(_a=headers[":status"])!==null&&_a!==void 0?_a:0,header:nodeHeaderToWebHeader(headers),body:h2ResponseIterable(sentinel,stream,sessionManager),trailer:h2ResponseTrailer(stream)};resolve(response)})})})}}function h1Request(sentinel,url,options,onRequest){let request3;new URL(url).protocol.startsWith("https")?request3=https.request(url,options):request3=http.request(url,options),sentinel.onError(reason=>request3.destroy(reason)),request3.flushHeaders(),request3.on("error",sentinel.error),request3.on("socket",function(socket){function onSocketConnect(){socket.off("connect",onSocketConnect),onRequest(request3)}socket.readyState==="open"?onRequest(request3):socket.on("connect",onSocketConnect)})}function h1ResponseIterable(sentinel,response,trailer){let inner=response[Symbol.asyncIterator]();return{[Symbol.asyncIterator](){return{async next(){let r=await sentinel.race(inner.next());return r.done===!0&&(nodeHeaderToWebHeader(response.trailers).forEach((value,key)=>{trailer.set(key,value)}),sentinel.close()),r},throw(e){throw sentinel.error(e),e}}}}}function h2Request(sentinel,sm,url,method,headers,options,onStream){let requestUrl=new URL(url);if(requestUrl.origin!==sm.authority){let message=`cannot make a request to ${requestUrl.origin}: the http2 session is connected to ${sm.authority}`;sentinel.error(new ConnectError(message,Code.Internal));return}sm.request(method,requestUrl.pathname+requestUrl.search,headers,{}).then(stream=>{sentinel.onError(reason=>{if(stream.closed)return;let rstCode=reason.code==Code.Canceled?H2Code.CANCEL:H2Code.INTERNAL_ERROR;return new Promise(resolve=>stream.close(rstCode,resolve))}),stream.on("error",function(e){stream.writableEnded&&unwrapNodeErrorChain(e).map(getNodeErrorProps).some(p=>p.code=="ERR_STREAM_WRITE_AFTER_END")||sentinel.error(e)}),stream.on("close",function(){let err=connectErrorFromH2ResetCode(stream.rstCode);err&&sentinel.error(err)}),onStream(stream)},reason=>{sentinel.error(reason)})}function h2ResponseTrailer(response){let trailer=new Headers;return response.on("trailers",args=>{nodeHeaderToWebHeader(args).forEach((value,key)=>{trailer.set(key,value)})}),trailer}function h2ResponseIterable(sentinel,response,sm){let inner=response[Symbol.asyncIterator]();return{[Symbol.asyncIterator](){return{async next(){let r=await sentinel.race(inner.next());return r.done===!0&&sentinel.close(),sm?.notifyResponseByteRead(response),r},throw(e){throw sentinel.error(e),e}}}}}async function sinkRequest(request3,nodeRequest,sentinel){if(request3.body===void 0){await new Promise(resolve=>nodeRequest.end(resolve));return}let it=request3.body[Symbol.asyncIterator]();return new Promise(resolve=>{writeNext();function writeNext(){sentinel.isClosed()||it.next().then(r=>{if(r.done===!0){nodeRequest.end(resolve);return}nodeRequest.write(r.value,"binary",e=>{if(e==null){writeNext();return}it.throw!==void 0&&it.throw(connectErrorFromNodeReason(e)).catch(()=>{}),!(nodeRequest.writableEnded&&unwrapNodeErrorChain(e).map(getNodeErrorProps).some(p=>p.code=="ERR_STREAM_WRITE_AFTER_END"))&&sentinel.error(e)})},e=>{sentinel.error(e)})}})}function createSentinel(signal){let rejectRace,closed2=!1,closedError,onErrorListeners=[],sentinel={error(error3){if(!closed2){closed2=!0,closedError=error3 instanceof ConnectError?error3:connectErrorFromNodeReason(error3),rejectRace?.(closedError);for(let onRejected of onErrorListeners)onRejected(closedError);cleanup()}},close(){closed2||(closed2=!0,rejectRace&&rejectRace(new ConnectError("sentinel completed early",Code.Internal)),cleanup())},isClosed(){return closed2},onError(onError){closed2?closedError!==void 0&&onError(closedError):onErrorListeners.push(onError)},race(promise){let resolveRace,race=new Promise((resolve,reject)=>{resolveRace=resolve,rejectRace=reject});return promise.then(value=>{resolveRace?.(value)},reason=>{rejectRace?.(reason)}),closed2&&rejectRace?.(closedError??new ConnectError("sentinel completed early",Code.Internal)),race}};function cleanup(){signal&&signal.removeEventListener("abort",onSignalAbort),onErrorListeners=[],rejectRace=void 0}function onSignalAbort(){sentinel.error(getAbortSignalReason(this))}return signal&&(signal.addEventListener("abort",onSignalAbort),signal.aborted&&sentinel.error(getAbortSignalReason(signal))),sentinel}function validateNodeTransportOptions(options){var _a,_b,_c,_d;let httpClient;if(options.httpVersion=="2"){let sessionManager;options.sessionManager?sessionManager=options.sessionManager:sessionManager=new Http2SessionManager(options.baseUrl,{pingIntervalMs:options.pingIntervalMs,pingIdleConnection:options.pingIdleConnection,pingTimeoutMs:options.pingTimeoutMs,idleConnectionTimeoutMs:options.idleConnectionTimeoutMs},options.nodeOptions),httpClient=createNodeHttpClient({httpVersion:"2",sessionProvider:()=>sessionManager})}else httpClient=createNodeHttpClient({httpVersion:"1.1",nodeOptions:options.nodeOptions});return Object.assign(Object.assign(Object.assign({},options),{httpClient,useBinaryFormat:(_a=options.useBinaryFormat)!==null&&_a!==void 0?_a:!0,interceptors:(_b=options.interceptors)!==null&&_b!==void 0?_b:[],sendCompression:(_c=options.sendCompression)!==null&&_c!==void 0?_c:null,acceptCompression:(_d=options.acceptCompression)!==null&&_d!==void 0?_d:[compressionGzip,compressionBrotli]}),validateReadWriteMaxBytes(options.readMaxBytes,options.writeMaxBytes,options.compressMinBytes))}function createGrpcWebTransport(options){return createTransport(validateNodeTransportOptions(options))}function createGrpcTransport(options){return createTransport2(validateNodeTransportOptions(Object.assign(Object.assign({},options),{httpVersion:"2"})))}var file_ai_stigmer_commons_apiresource_apiresourcekind_api_resource_group=fileDesc("CkdhaS9zdGlnbWVyL2NvbW1vbnMvYXBpcmVzb3VyY2UvYXBpcmVzb3VyY2VraW5kL2FwaV9yZXNvdXJjZV9ncm91cC5wcm90bxIuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLmFwaXJlc291cmNla2luZCI8ChRBcGlSZXNvdXJjZUdyb3VwTWV0YRIOCgZkb21haW4YASABKAkSFAoMZGlzcGxheV9uYW1lGAIgASgJKroBChBBcGlSZXNvdXJjZUdyb3VwEiIKHmFwaV9yZXNvdXJjZV9ncm91cF91bnNwZWNpZmllZBAAEi4KB2FnZW50aWMQARoh6r0sHQoSYWdlbnRpYy5zdGlnbWVyLmFpEgdBZ2VudGljEiIKA2lhbRACGhnqvSwVCg5pYW0uc3RpZ21lci5haRIDSUFNEi4KB3RlbmFuY3kQAxoh6r0sHQoSdGVuYW5jeS5zdGlnbWVyLmFpEgdUZW5hbmN5OogBCgpncm91cF9tZXRhEiEuZ29vZ2xlLnByb3RvYnVmLkVudW1WYWx1ZU9wdGlvbnMY3ccFIAEoCzJELmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5hcGlyZXNvdXJjZWtpbmQuQXBpUmVzb3VyY2VHcm91cE1ldGFSCWdyb3VwTWV0YWIGcHJvdG8z",[file_google_protobuf_descriptor]);var ApiResourceGroup;(function(ApiResourceGroup2){ApiResourceGroup2[ApiResourceGroup2.api_resource_group_unspecified=0]="api_resource_group_unspecified",ApiResourceGroup2[ApiResourceGroup2.agentic=1]="agentic",ApiResourceGroup2[ApiResourceGroup2.iam=2]="iam",ApiResourceGroup2[ApiResourceGroup2.tenancy=3]="tenancy"})(ApiResourceGroup||(ApiResourceGroup={}));var file_ai_stigmer_iam_v1_enum=fileDesc("ChxhaS9zdGlnbWVyL2lhbS92MS9lbnVtLnByb3RvEhFhaS5zdGlnbWVyLmlhbS52MSrSBwoNSWFtUGVybWlzc2lvbhIPCgt1bnNwZWNpZmllZBAAEgwKCGNhbl92aWV3EAESDAoIY2FuX2VkaXQQAhIOCgpjYW5fZGVsZXRlEAMSFAoQY2FuX2dyYW50X2FjY2VzcxAEEhMKD2Nhbl92aWV3X2FjY2VzcxAFEhQKEGNhbl9jcmVhdGVfYWdlbnQQBhIXChNjYW5fY3JlYXRlX3dvcmtmbG93EAcSFgoSY2FuX2NyZWF0ZV9zZXNzaW9uEAgSFAoQY2FuX2NyZWF0ZV9za2lsbBAJEhYKEmNhbl9jcmVhdGVfcHJvamVjdBAKEhIKDmNhbl9jcmVhdGVfaWRwEAsSGgoWY2FuX2NyZWF0ZV9lbnZpcm9ubWVudBAMEh8KG2Nhbl9jcmVhdGVfaWRlbnRpdHlfYWNjb3VudBAVEhgKFGNhbl9jcmVhdGVfb2F1dGhfYXBwEBcSHgoaY2FuX2NyZWF0ZV9wbGF0Zm9ybV9jbGllbnQQGBIbChdjYW5fY3JlYXRlX2V4ZWN1dGlvbl9pbhANEhcKE2Nhbl9jcmVhdGVfaW5zdGFuY2UQDhIPCgtjYW5fZXhlY3V0ZRAPEhQKEGNhbl9yZWFkX3NlY3JldHMQEBIVChFjYW5fYm9vdHN0cmFwX2lhbRAREiAKHGNhbl9tYW5hZ2VfaWRlbnRpdHlfYWNjb3VudHMQEhIYChRsb2dpbl90b19iYWNrX29mZmljZRAUEg8KC2Nhbl9jb25uZWN0EBYSFQoRY2FuX2NyZWF0ZV9ydW5uZXIQGRIaChJjYW5fZGVsZXRlX3Nlc3Npb24QGhoCCAESFAoQY2FuX3ZpZXdfYmlsbGluZxAbEhYKEmNhbl9tYW5hZ2VfYmlsbGluZxAcEhsKF2Nhbl9leGVjdXRlX2JpbGxpbmdfb3BzEB0SGgoWY2FuX2NyZWF0ZV9hZ2VudF9zaGFyZRAeEhoKFmNhbl9jcmVhdGVfY2hhbm5lbF9hcHAQHxIcChhjYW5fbWFuYWdlX21vZGVsX3ByaWNpbmcQIBIeChpjYW5fbWFuYWdlX2N1cnNvcl9hY2NvdW50cxAjEhMKD2Nhbl9wYXJ0aWNpcGF0ZRAkEh0KGWNhbl93cml0ZV9yZXNlcnZlZF9sYWJlbHMQJRIeChpjYW5fdmlld19wcm92aWRlcl9zdGFuZGluZxAmEh0KGWNhbl9zZXRfcHVibGljX3Zpc2liaWxpdHkQJyIECCEQISIECCIQIioPY2FuX3VzZV9yZWNvcmRzKhRjYW5fY3JlYXRlX2RhdGFzdG9yZSpiCgdJYW1Sb2xlEhgKFGlhbV9yb2xlX3Vuc3BlY2lmaWVkEAASCQoFb3duZXIQARIJCgVhZG1pbhACEgoKBm1lbWJlchADEgoKBnZpZXdlchAEEg8KC3BhcnRpY2lwYW50EAViBnByb3RvMw"),IamPermission;(function(IamPermission2){IamPermission2[IamPermission2.unspecified=0]="unspecified",IamPermission2[IamPermission2.can_view=1]="can_view",IamPermission2[IamPermission2.can_edit=2]="can_edit",IamPermission2[IamPermission2.can_delete=3]="can_delete",IamPermission2[IamPermission2.can_grant_access=4]="can_grant_access",IamPermission2[IamPermission2.can_view_access=5]="can_view_access",IamPermission2[IamPermission2.can_create_agent=6]="can_create_agent",IamPermission2[IamPermission2.can_create_workflow=7]="can_create_workflow",IamPermission2[IamPermission2.can_create_session=8]="can_create_session",IamPermission2[IamPermission2.can_create_skill=9]="can_create_skill",IamPermission2[IamPermission2.can_create_project=10]="can_create_project",IamPermission2[IamPermission2.can_create_idp=11]="can_create_idp",IamPermission2[IamPermission2.can_create_environment=12]="can_create_environment",IamPermission2[IamPermission2.can_create_identity_account=21]="can_create_identity_account",IamPermission2[IamPermission2.can_create_oauth_app=23]="can_create_oauth_app",IamPermission2[IamPermission2.can_create_platform_client=24]="can_create_platform_client",IamPermission2[IamPermission2.can_create_execution_in=13]="can_create_execution_in",IamPermission2[IamPermission2.can_create_instance=14]="can_create_instance",IamPermission2[IamPermission2.can_execute=15]="can_execute",IamPermission2[IamPermission2.can_read_secrets=16]="can_read_secrets",IamPermission2[IamPermission2.can_bootstrap_iam=17]="can_bootstrap_iam",IamPermission2[IamPermission2.can_manage_identity_accounts=18]="can_manage_identity_accounts",IamPermission2[IamPermission2.login_to_back_office=20]="login_to_back_office",IamPermission2[IamPermission2.can_connect=22]="can_connect",IamPermission2[IamPermission2.can_create_runner=25]="can_create_runner",IamPermission2[IamPermission2.can_delete_session=26]="can_delete_session",IamPermission2[IamPermission2.can_view_billing=27]="can_view_billing",IamPermission2[IamPermission2.can_manage_billing=28]="can_manage_billing",IamPermission2[IamPermission2.can_execute_billing_ops=29]="can_execute_billing_ops",IamPermission2[IamPermission2.can_create_agent_share=30]="can_create_agent_share",IamPermission2[IamPermission2.can_create_channel_app=31]="can_create_channel_app",IamPermission2[IamPermission2.can_manage_model_pricing=32]="can_manage_model_pricing",IamPermission2[IamPermission2.can_manage_cursor_accounts=35]="can_manage_cursor_accounts",IamPermission2[IamPermission2.can_participate=36]="can_participate",IamPermission2[IamPermission2.can_write_reserved_labels=37]="can_write_reserved_labels",IamPermission2[IamPermission2.can_view_provider_standing=38]="can_view_provider_standing",IamPermission2[IamPermission2.can_set_public_visibility=39]="can_set_public_visibility"})(IamPermission||(IamPermission={}));var IamRole;(function(IamRole2){IamRole2[IamRole2.iam_role_unspecified=0]="iam_role_unspecified",IamRole2[IamRole2.owner=1]="owner",IamRole2[IamRole2.admin=2]="admin",IamRole2[IamRole2.member=3]="member",IamRole2[IamRole2.viewer=4]="viewer",IamRole2[IamRole2.participant=5]="participant"})(IamRole||(IamRole={}));var file_ai_stigmer_commons_apiresource_apiresourcekind_authorization_config=fileDesc("CklhaS9zdGlnbWVyL2NvbW1vbnMvYXBpcmVzb3VyY2UvYXBpcmVzb3VyY2VraW5kL2F1dGhvcml6YXRpb25fY29uZmlnLnByb3RvEi5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuYXBpcmVzb3VyY2VraW5kIoABChBWaXNpYmlsaXR5Q29uZmlnEhcKD3N1cHBvcnRzX3B1YmxpYxgBIAEoCBIZChFzdXBwb3J0c19wbGF0Zm9ybRgCIAEoCBIUCgxzdXBwb3J0c19vcmcYAyABKAgSIgoaZGVmYXVsdHNfdG9fb3JnX3Zpc2liaWxpdHkYBCABKAgiSgoUUGFyZW50UmVsYXRpb25Db25maWcSDAoEa2luZBgBIAEoCRIQCghyZWxhdGlvbhgCIAEoCRISCgpzcGVjX2ZpZWxkGAMgASgJIq4EChNBdXRob3JpemF0aW9uQ29uZmlnEloKCnNjb3BlX3R5cGUYASABKA4yRi5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuYXBpcmVzb3VyY2VraW5kLkF1dGhvcml6YXRpb25TY29wZVR5cGUSWAoKb3duZXJfdHlwZRgCIAEoDjJELmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5hcGlyZXNvdXJjZWtpbmQuT3duZXJBdHRyaWJ1dGlvblR5cGUSVAoGcGFyZW50GAMgASgLMkQuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLmFwaXJlc291cmNla2luZC5QYXJlbnRSZWxhdGlvbkNvbmZpZxJgChJhZGRpdGlvbmFsX3BhcmVudHMYBCADKAsyRC5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuYXBpcmVzb3VyY2VraW5kLlBhcmVudFJlbGF0aW9uQ29uZmlnElQKCnZpc2liaWxpdHkYBSABKAsyQC5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuYXBpcmVzb3VyY2VraW5kLlZpc2liaWxpdHlDb25maWcSHgoWcmVxdWlyZXNfY3JlYXRvcl90dXBsZRgGIAEoCBIzCg9ncmFudGFibGVfcm9sZXMYByADKA4yGi5haS5zdGlnbWVyLmlhbS52MS5JYW1Sb2xlKoUCChZBdXRob3JpemF0aW9uU2NvcGVUeXBlEigKJEFVVEhPUklaQVRJT05fU0NPUEVfVFlQRV9VTlNQRUNJRklFRBAAEiUKIUFVVEhPUklaQVRJT05fU0NPUEVfVFlQRV9QTEFURk9STRABEikKJUFVVEhPUklaQVRJT05fU0NPUEVfVFlQRV9PUkdBTklaQVRJT04QAhIjCh9BVVRIT1JJWkFUSU9OX1NDT1BFX1RZUEVfUEFSRU5UEAMSJwojQVVUSE9SSVpBVElPTl9TQ09QRV9UWVBFX09XTkVSX09OTFkQBBIhCh1BVVRIT1JJWkFUSU9OX1NDT1BFX1RZUEVfTk9ORRAFKskBChRPd25lckF0dHJpYnV0aW9uVHlwZRImCiJPV05FUl9BVFRSSUJVVElPTl9UWVBFX1VOU1BFQ0lGSUVEEAASIQodT1dORVJfQVRUUklCVVRJT05fVFlQRV9ESVJFQ1QQARIkCiBPV05FUl9BVFRSSUJVVElPTl9UWVBFX0lOSEVSSVRFRBACEh8KG09XTkVSX0FUVFJJQlVUSU9OX1RZUEVfU0VMRhADEh8KG09XTkVSX0FUVFJJQlVUSU9OX1RZUEVfTk9ORRAEQhpCGEF1dGhvcml6YXRpb25Db25maWdQcm90b2IGcHJvdG8z",[file_ai_stigmer_iam_v1_enum]);var AuthorizationScopeType;(function(AuthorizationScopeType2){AuthorizationScopeType2[AuthorizationScopeType2.UNSPECIFIED=0]="UNSPECIFIED",AuthorizationScopeType2[AuthorizationScopeType2.PLATFORM=1]="PLATFORM",AuthorizationScopeType2[AuthorizationScopeType2.ORGANIZATION=2]="ORGANIZATION",AuthorizationScopeType2[AuthorizationScopeType2.PARENT=3]="PARENT",AuthorizationScopeType2[AuthorizationScopeType2.OWNER_ONLY=4]="OWNER_ONLY",AuthorizationScopeType2[AuthorizationScopeType2.NONE=5]="NONE"})(AuthorizationScopeType||(AuthorizationScopeType={}));var OwnerAttributionType;(function(OwnerAttributionType2){OwnerAttributionType2[OwnerAttributionType2.UNSPECIFIED=0]="UNSPECIFIED",OwnerAttributionType2[OwnerAttributionType2.DIRECT=1]="DIRECT",OwnerAttributionType2[OwnerAttributionType2.INHERITED=2]="INHERITED",OwnerAttributionType2[OwnerAttributionType2.SELF=3]="SELF",OwnerAttributionType2[OwnerAttributionType2.NONE=4]="NONE"})(OwnerAttributionType||(OwnerAttributionType={}));var file_ai_stigmer_commons_apiresource_apiresourcekind_api_resource_kind=fileDesc("CkZhaS9zdGlnbWVyL2NvbW1vbnMvYXBpcmVzb3VyY2UvYXBpcmVzb3VyY2VraW5kL2FwaV9yZXNvdXJjZV9raW5kLnByb3RvEi5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuYXBpcmVzb3VyY2VraW5kIswDChNBcGlSZXNvdXJjZUtpbmRNZXRhEk8KBWdyb3VwGAEgASgOMkAuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLmFwaXJlc291cmNla2luZC5BcGlSZXNvdXJjZUdyb3VwElMKB3ZlcnNpb24YAiABKA4yQi5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuYXBpcmVzb3VyY2VraW5kLkFwaVJlc291cmNlVmVyc2lvbhIMCgRuYW1lGAMgASgJEhQKDGRpc3BsYXlfbmFtZRgEIAEoCRIRCglpZF9wcmVmaXgYBSABKAkSFAoMaXNfdmVyc2lvbmVkGAYgASgIEhoKEm5vdF9zZWFyY2hfaW5kZXhlZBgHIAEoCBJKCgR0aWVyGAggASgOMjwuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLmFwaXJlc291cmNla2luZC5SZXNvdXJjZVRpZXISWgoNYXV0aG9yaXphdGlvbhgJIAEoCzJDLmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5hcGlyZXNvdXJjZWtpbmQuQXV0aG9yaXphdGlvbkNvbmZpZypCChJBcGlSZXNvdXJjZVZlcnNpb24SJAogYXBpX3Jlc291cmNlX3ZlcnNpb25fdW5zcGVjaWZpZWQQABIGCgJ2MRABKk4KDFJlc291cmNlVGllchIdChlyZXNvdXJjZV90aWVyX3Vuc3BlY2lmaWVkEAASDwoLb3Blbl9zb3VyY2UQARIOCgpjbG91ZF9vbmx5EAIqQQoPUGxhdGZvcm1JZFZhbHVlEiEKHXBsYXRmb3JtX2lkX3ZhbHVlX3Vuc3BlY2lmaWVkEAASCwoHc3RpZ21lchABKpIRCg9BcGlSZXNvdXJjZUtpbmQSHQoZYXBpX3Jlc291cmNlX2tpbmRfdW5rbm93bhAAElsKFGFwaV9yZXNvdXJjZV92ZXJzaW9uEAEaQar/Kz0IARABGhJBcGlSZXNvdXJjZVZlcnNpb24iFEFQSSBSZXNvdXJjZSBWZXJzaW9uKgN2ZXI4AUACSgQIBRAEEj8KCmlhbV9wb2xpY3kQChovqv8rKwgCEAEaCUlhbVBvbGljeSIKSUFNIFBvbGljeSoEaWFtcDgBQAJKBAgCEAESTgoQaWRlbnRpdHlfYWNjb3VudBALGjiq/ys0CAIQARoPSWRlbnRpdHlBY2NvdW50IhBJZGVudGl0eSBBY2NvdW50KgNpZGFAAkoECAQQAxI1CgdhcGlfa2V5EAwaKKr/KyQIAhABGgZBcGlLZXkiB0FQSSBLZXkqA2tleTgBQAJKBAgEEAESPwoKaW52aXRhdGlvbhAUGi+q/ysrCAIQARoKSW52aXRhdGlvbiIKSW52aXRhdGlvbioDaW52OAFAAkoECAIQARJXChFpZGVudGl0eV9wcm92aWRlchAVGkCq/ys8CAIQARoQSWRlbnRpdHlQcm92aWRlciIRSWRlbnRpdHkgUHJvdmlkZXIqA2lkcDgBQAJKCAgCEAE6AgEEEkAKCW9hdXRoX2FwcBAWGjGq/ystCAIQARoIT0F1dGhBcHAiCU9BdXRoIEFwcCoEb2FwcDgBQAJKCAgCEAE6AgEEElEKD3BsYXRmb3JtX2NsaWVudBAXGjyq/ys4CAIQARoOUGxhdGZvcm1DbGllbnQiD1BsYXRmb3JtIENsaWVudCoDcGNsOAFAAkoICAIQAToCAQQSSQoMb3JnYW5pemF0aW9uEB4aN6r/KzMIAxABGgxPcmdhbml6YXRpb24iDE9yZ2FuaXphdGlvbioDb3JnQAFKCggEEAE6BAECAwQSOQoIcGxhdGZvcm0QHxorqv8rJwgDEAEaCFBsYXRmb3JtIghQbGF0Zm9ybSoDcGx0OAFAAkoECAUQBBI8CgVhZ2VudBAoGjGq/ystCAEQARoFQWdlbnQiBUFnZW50KgNhZ3RAAUoSCAIQASoICAEQARgBIAE6AgEEEmsKD2FnZW50X2V4ZWN1dGlvbhApGlaq/ytSCAEQARoOQWdlbnRFeGVjdXRpb24iD0FnZW50IEV4ZWN1dGlvbioDYWV4QAFKJAgDEAIaHgoHc2Vzc2lvbhIHc2Vzc2lvbhoKc2Vzc2lvbl9pZBI4CgdzZXNzaW9uECoaK6r/KycIARABGgdTZXNzaW9uIgdTZXNzaW9uKgNzZXNAAUoICAIQAToCAQQSPgoFc2tpbGwQKxozqv8rLwgBEAEaBVNraWxsIgVTa2lsbCoDc2tsMAFAAUoSCAIQASoICAEQARgBIAE6AgEEEkoKCm1jcF9zZXJ2ZXIQLBo6qv8rNggBEAEaCU1jcFNlcnZlciIKTUNQIFNlcnZlcioDbWNwQAFKEggCEAEqCAgBEAEYASABOgIBBBJsCg5hZ2VudF9pbnN0YW5jZRAtGliq/ytUCAEQARoNQWdlbnRJbnN0YW5jZSIOQWdlbnQgSW5zdGFuY2UqA2FpbkABSigIAhABIhgKBWFnZW50EgVhZ2VudBoIYWdlbnRfaWQqBAgBGAE6AgEEEkUKC2FnZW50X3NoYXJlEC4aNKr/KzAIARABGgpBZ2VudFNoYXJlIgtBZ2VudCBTaGFyZSoDYXNoOAFAAUoICAIQAToCAQQSTAoNYWdlbnRfY2hhbm5lbBAvGjmq/ys1CAEQARoMQWdlbnRDaGFubmVsIg1BZ2VudCBDaGFubmVsKgNhY2g4AUABSgkIAhABOgMBBAUSRwoLY2hhbm5lbF9hcHAQMBo2qv8rMggBEAEaCkNoYW5uZWxBcHAiC0NoYW5uZWwgQXBwKgVjaGFwcDgBQAFKCAgCEAE6AgEEEkcKCHdvcmtmbG93EDIaOar/KzUIARABGghXb3JrZmxvdyIIV29ya2Zsb3cqA3dmbDABQAFKEggCEAEqCAgBEAEYASABOgIBBBJ+ChF3b3JrZmxvd19pbnN0YW5jZRAzGmeq/ytjCAEQARoQV29ya2Zsb3dJbnN0YW5jZSIRV29ya2Zsb3cgSW5zdGFuY2UqA3dpbkABSjEIAhABIiEKCHdvcmtmbG93Egh3b3JrZmxvdxoLd29ya2Zsb3dfaWQqBAgBGAE6AgEEEpYBChJ3b3JrZmxvd19leGVjdXRpb24QNBp+qv8reggBEAEaEVdvcmtmbG93RXhlY3V0aW9uIhJXb3JrZmxvdyBFeGVjdXRpb24qA3dleEABSkYIAhABIjwKEXdvcmtmbG93X2luc3RhbmNlEhF3b3JrZmxvd19pbnN0YW5jZRoUd29ya2Zsb3dfaW5zdGFuY2VfaWQ6AgEEEkoKC2Vudmlyb25tZW50EDUaOar/KzUIARABGgtFbnZpcm9ubWVudCILRW52aXJvbm1lbnQqA2VudkABSg4IAhABKgIYATABOgIBBBI9CghhcnRpZmFjdBA3Gi+q/ysrCAEQARoIQXJ0aWZhY3QiCEFydGlmYWN0KgNhcnQ4AUABSggIAhABOgIBBBJSChFleGVjdXRpb25fY29udGV4dBA2Gjuq/ys3CAEQARoQRXhlY3V0aW9uQ29udGV4dCIRRXhlY3V0aW9uIENvbnRleHQqBGVjdHhAAUoECAQQARI9CghzY2hlZHVsZRA4Gi+q/ysrCAEQARoIU2NoZWR1bGUiCFNjaGVkdWxlKgNzY2g4AUABSggIAhABOgIBBBI4Cgdwcm9qZWN0EDwaK6r/KycIAxABGgdQcm9qZWN0IgdQcm9qZWN0KgNwcmpAAUoICAIQAToCAQQiBAgxEDEqCWRhdGFzdG9yZTqFAQoJa2luZF9tZXRhEiEuZ29vZ2xlLnByb3RvYnVmLkVudW1WYWx1ZU9wdGlvbnMY9b8FIAEoCzJDLmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5hcGlyZXNvdXJjZWtpbmQuQXBpUmVzb3VyY2VLaW5kTWV0YVIIa2luZE1ldGFCG0IZQXBpUmVzb3VyY2VLaW5kT3V0ZXJDbGFzc2IGcHJvdG8z",[file_ai_stigmer_commons_apiresource_apiresourcekind_api_resource_group,file_ai_stigmer_commons_apiresource_apiresourcekind_authorization_config,file_google_protobuf_descriptor]);var ApiResourceVersion;(function(ApiResourceVersion2){ApiResourceVersion2[ApiResourceVersion2.api_resource_version_unspecified=0]="api_resource_version_unspecified",ApiResourceVersion2[ApiResourceVersion2.v1=1]="v1"})(ApiResourceVersion||(ApiResourceVersion={}));var ResourceTier;(function(ResourceTier2){ResourceTier2[ResourceTier2.resource_tier_unspecified=0]="resource_tier_unspecified",ResourceTier2[ResourceTier2.open_source=1]="open_source",ResourceTier2[ResourceTier2.cloud_only=2]="cloud_only"})(ResourceTier||(ResourceTier={}));var PlatformIdValue;(function(PlatformIdValue2){PlatformIdValue2[PlatformIdValue2.platform_id_value_unspecified=0]="platform_id_value_unspecified",PlatformIdValue2[PlatformIdValue2.stigmer=1]="stigmer"})(PlatformIdValue||(PlatformIdValue={}));var ApiResourceKind;(function(ApiResourceKind2){ApiResourceKind2[ApiResourceKind2.api_resource_kind_unknown=0]="api_resource_kind_unknown",ApiResourceKind2[ApiResourceKind2.api_resource_version=1]="api_resource_version",ApiResourceKind2[ApiResourceKind2.iam_policy=10]="iam_policy",ApiResourceKind2[ApiResourceKind2.identity_account=11]="identity_account",ApiResourceKind2[ApiResourceKind2.api_key=12]="api_key",ApiResourceKind2[ApiResourceKind2.invitation=20]="invitation",ApiResourceKind2[ApiResourceKind2.identity_provider=21]="identity_provider",ApiResourceKind2[ApiResourceKind2.oauth_app=22]="oauth_app",ApiResourceKind2[ApiResourceKind2.platform_client=23]="platform_client",ApiResourceKind2[ApiResourceKind2.organization=30]="organization",ApiResourceKind2[ApiResourceKind2.platform=31]="platform",ApiResourceKind2[ApiResourceKind2.agent=40]="agent",ApiResourceKind2[ApiResourceKind2.agent_execution=41]="agent_execution",ApiResourceKind2[ApiResourceKind2.session=42]="session",ApiResourceKind2[ApiResourceKind2.skill=43]="skill",ApiResourceKind2[ApiResourceKind2.mcp_server=44]="mcp_server",ApiResourceKind2[ApiResourceKind2.agent_instance=45]="agent_instance",ApiResourceKind2[ApiResourceKind2.agent_share=46]="agent_share",ApiResourceKind2[ApiResourceKind2.agent_channel=47]="agent_channel",ApiResourceKind2[ApiResourceKind2.channel_app=48]="channel_app",ApiResourceKind2[ApiResourceKind2.workflow=50]="workflow",ApiResourceKind2[ApiResourceKind2.workflow_instance=51]="workflow_instance",ApiResourceKind2[ApiResourceKind2.workflow_execution=52]="workflow_execution",ApiResourceKind2[ApiResourceKind2.environment=53]="environment",ApiResourceKind2[ApiResourceKind2.artifact=55]="artifact",ApiResourceKind2[ApiResourceKind2.execution_context=54]="execution_context",ApiResourceKind2[ApiResourceKind2.schedule=56]="schedule",ApiResourceKind2[ApiResourceKind2.project=60]="project"})(ApiResourceKind||(ApiResourceKind={}));var file_ai_stigmer_commons_rpc_authorization_config=fileDesc("CjFhaS9zdGlnbWVyL2NvbW1vbnMvcnBjL2F1dGhvcml6YXRpb25fY29uZmlnLnByb3RvEhZhaS5zdGlnbWVyLmNvbW1vbnMucnBjIv4BChZScGNBdXRob3JpemF0aW9uQ29uZmlnEjQKCnBlcm1pc3Npb24YASABKA4yIC5haS5zdGlnbWVyLmlhbS52MS5JYW1QZXJtaXNzaW9uElYKDXJlc291cmNlX2tpbmQYAiABKA4yPy5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuYXBpcmVzb3VyY2VraW5kLkFwaVJlc291cmNlS2luZBIaChJyZXNvdXJjZV9raW5kX3BhdGgYAyABKAkSEgoKZmllbGRfcGF0aBgEIAEoCRIRCgllcnJvcl9tc2cYBSABKAkSEwoLcmVzb3VyY2VfaWQYBiABKAliBnByb3RvMw",[file_ai_stigmer_commons_apiresource_apiresourcekind_api_resource_kind,file_ai_stigmer_iam_v1_enum]);var file_ai_stigmer_commons_rpc_method_options=fileDesc("CithaS9zdGlnbWVyL2NvbW1vbnMvcnBjL21ldGhvZF9vcHRpb25zLnByb3RvEhZhaS5zdGlnbWVyLmNvbW1vbnMucnBjOmgKBmNvbmZpZxIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGIiHAyABKAsyLi5haS5zdGlnbWVyLmNvbW1vbnMucnBjLlJwY0F1dGhvcml6YXRpb25Db25maWdSBmNvbmZpZzo9Cglpc19wdWJsaWMSHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxiJhwMgASgIUghpc1B1YmxpYzpUChVpc19za2lwX2F1dGhvcml6YXRpb24SHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxiKhwMgASgIUhNpc1NraXBBdXRob3JpemF0aW9uYgZwcm90bzM",[file_ai_stigmer_commons_rpc_authorization_config,file_google_protobuf_descriptor]);var file_ai_stigmer_agentic_agentexecution_v1_enum=fileDesc("Ci9haS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvZW51bS5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxKv8BCg5FeGVjdXRpb25QaGFzZRIfChtFWEVDVVRJT05fUEhBU0VfVU5TUEVDSUZJRUQQABIVChFFWEVDVVRJT05fUEVORElORxABEhkKFUVYRUNVVElPTl9JTl9QUk9HUkVTUxACEhcKE0VYRUNVVElPTl9DT01QTEVURUQQAxIUChBFWEVDVVRJT05fRkFJTEVEEAQSFwoTRVhFQ1VUSU9OX0NBTkNFTExFRBAFEhgKFEVYRUNVVElPTl9URVJNSU5BVEVEEAgSIgoeRVhFQ1VUSU9OX1dBSVRJTkdfRk9SX0FQUFJPVkFMEAYSFAoQRVhFQ1VUSU9OX1BBVVNFRBAHKooBCgtNZXNzYWdlVHlwZRIcChhNRVNTQUdFX1RZUEVfVU5TUEVDSUZJRUQQABIRCg1NRVNTQUdFX0hVTUFOEAESDgoKTUVTU0FHRV9BSRACEhAKDE1FU1NBR0VfVE9PTBADEhIKDk1FU1NBR0VfU1lTVEVNEAQSFAoQTUVTU0FHRV9USElOS0lORxAFKuEBCg5Ub29sQ2FsbFN0YXR1cxIgChxUT09MX0NBTExfU1RBVFVTX1VOU1BFQ0lGSUVEEAASFQoRVE9PTF9DQUxMX1BFTkRJTkcQARIVChFUT09MX0NBTExfUlVOTklORxACEhcKE1RPT0xfQ0FMTF9DT01QTEVURUQQAxIUChBUT09MX0NBTExfRkFJTEVEEAQSHgoaVE9PTF9DQUxMX1dBSVRJTkdfQVBQUk9WQUwQBRIVChFUT09MX0NBTExfU0tJUFBFRBAGEhkKFVRPT0xfQ0FMTF9JTlRFUlJVUFRFRBAHKs4CCghUb29sS2luZBIZChVUT09MX0tJTkRfVU5TUEVDSUZJRUQQABIXChNUT09MX0tJTkRfRklMRV9SRUFEEAESGAoUVE9PTF9LSU5EX0ZJTEVfV1JJVEUQAhIXChNUT09MX0tJTkRfRklMRV9FRElUEAMSGQoVVE9PTF9LSU5EX0ZJTEVfREVMRVRFEAQSEwoPVE9PTF9LSU5EX1NIRUxMEAUSFAoQVE9PTF9LSU5EX1NFQVJDSBAGEhIKDlRPT0xfS0lORF9MSVNUEAcSEwoPVE9PTF9LSU5EX0ZFVENIEAgSGAoUVE9PTF9LSU5EX1dFQl9TRUFSQ0gQCRITCg9UT09MX0tJTkRfVEhJTksQChISCg5UT09MX0tJTkRfVE9ETxALEhYKElRPT0xfS0lORF9TVUJBR0VOVBAMEhEKDVRPT0xfS0lORF9NQ1AQDSp5CgpUb2RvU3RhdHVzEhsKF1RPRE9fU1RBVFVTX1VOU1BFQ0lGSUVEEAASEAoMVE9ET19QRU5ESU5HEAESFAoQVE9ET19JTl9QUk9HUkVTUxACEhIKDlRPRE9fQ09NUExFVEVEEAMSEgoOVE9ET19DQU5DRUxMRUQQBCqsAQoOU3ViQWdlbnRTdGF0dXMSIAocU1VCX0FHRU5UX1NUQVRVU19VTlNQRUNJRklFRBAAEhUKEVNVQl9BR0VOVF9QRU5ESU5HEAESGQoVU1VCX0FHRU5UX0lOX1BST0dSRVNTEAISFwoTU1VCX0FHRU5UX0NPTVBMRVRFRBADEhQKEFNVQl9BR0VOVF9GQUlMRUQQBBIXChNTVUJfQUdFTlRfQ0FOQ0VMTEVEEAUqiQEKFUV4ZWN1dGlvbkFydGlmYWN0S2luZBInCiNFWEVDVVRJT05fQVJUSUZBQ1RfS0lORF9VTlNQRUNJRklFRBAAEiAKHEVYRUNVVElPTl9BUlRJRkFDVF9LSU5EX0ZJTEUQARIlCiFFWEVDVVRJT05fQVJUSUZBQ1RfS0lORF9ESVJFQ1RPUlkQAipfChNTdW1tYXJpemF0aW9uU291cmNlEiQKIFNVTU1BUklaQVRJT05fU09VUkNFX1VOU1BFQ0lGSUVEEAASDwoLZ3JhcGhfc3RhcnQQARIRCg1taWRfZXhlY3V0aW9uEAIqkgEKF1Rvb2xDYWxsU3RyZWFtaW5nU291cmNlEioKJlRPT0xfQ0FMTF9TVFJFQU1JTkdfU09VUkNFX1VOU1BFQ0lGSUVEEAASJAogVE9PTF9DQUxMX1NUUkVBTUlOR19TT1VSQ0VfSU5QVVQQARIlCiFUT09MX0NBTExfU1RSRUFNSU5HX1NPVVJDRV9PVVRQVVQQAiqLAQoWRXhlY3V0aW9uQ29udHJvbFNpZ25hbBIoCiRFWEVDVVRJT05fQ09OVFJPTF9TSUdOQUxfVU5TUEVDSUZJRUQQABIhCh1FWEVDVVRJT05fQ09OVFJPTF9TSUdOQUxfU1RPUBABEiQKIEVYRUNVVElPTl9DT05UUk9MX1NJR05BTF9XQVJOSU5HEAIqpQEKDkFwcHJvdmFsQWN0aW9uEh8KG0FQUFJPVkFMX0FDVElPTl9VTlNQRUNJRklFRBAAEhsKF0FQUFJPVkFMX0FDVElPTl9BUFBST1ZFEAESGAoUQVBQUk9WQUxfQUNUSU9OX1NLSVAQAhIaChZBUFBST1ZBTF9BQ1RJT05fUkVKRUNUEAMSHwobQVBQUk9WQUxfQUNUSU9OX0FQUFJPVkVfQUxMEAQqsAMKFEFwcHJvdmFsUG9saWN5U291cmNlEiYKIkFQUFJPVkFMX1BPTElDWV9TT1VSQ0VfVU5TUEVDSUZJRUQQABItCilBUFBST1ZBTF9QT0xJQ1lfU09VUkNFX0NMQVNTSUZJRVJfREVGQVVMVBABEioKJkFQUFJPVkFMX1BPTElDWV9TT1VSQ0VfUElOTkVEX09WRVJSSURFEAISKQolQVBQUk9WQUxfUE9MSUNZX1NPVVJDRV9BR0VOVF9PVkVSUklERRADEisKJ0FQUFJPVkFMX1BPTElDWV9TT1VSQ0VfQVVUT19BUFBST1ZFX0FMTBAEEikKJUFQUFJPVkFMX1BPTElDWV9TT1VSQ0VfQVBQUk9WQUxfTEVBU0UQBRIrCidBUFBST1ZBTF9QT0xJQ1lfU09VUkNFX0JVSUxUSU5fQ0FURUdPUlkQBhI5CjVBUFBST1ZBTF9QT0xJQ1lfU09VUkNFX0FOTk9UQVRJT05fREVTVFJVQ1RJVkVfVElHSFRFThAHEioKJkFQUFJPVkFMX1BPTElDWV9TT1VSQ0VfVU5BVFRFTkRFRF9TS0lQEAgq4wEKEUFwcHJvdmFsRXZlbnRUeXBlEiMKH0FQUFJPVkFMX0VWRU5UX1RZUEVfVU5TUEVDSUZJRUQQABIhCh1BUFBST1ZBTF9FVkVOVF9UWVBFX1JFUVVFU1RFRBABEiAKHEFQUFJPVkFMX0VWRU5UX1RZUEVfQVBQUk9WRUQQAhIgChxBUFBST1ZBTF9FVkVOVF9UWVBFX1JFSkVDVEVEEAMSHwobQVBQUk9WQUxfRVZFTlRfVFlQRV9TS0lQUEVEEAQSIQodQVBQUk9WQUxfRVZFTlRfVFlQRV9SRVRSQUNURUQQBSqkAQoYQXBwcm92YWxSZXRyYWN0aW9uUmVhc29uEioKJkFQUFJPVkFMX1JFVFJBQ1RJT05fUkVBU09OX1VOU1BFQ0lGSUVEEAASMQotQVBQUk9WQUxfUkVUUkFDVElPTl9SRUFTT05fU1VCX0FHRU5UX1RFUk1JTkFMEAESKQolQVBQUk9WQUxfUkVUUkFDVElPTl9SRUFTT05fU1VQRVJTRURFRBACKmoKD0ludGVyYWN0aW9uTW9kZRIgChxJTlRFUkFDVElPTl9NT0RFX1VOU1BFQ0lGSUVEEAASGgoWSU5URVJBQ1RJT05fTU9ERV9BR0VOVBABEhkKFUlOVEVSQUNUSU9OX01PREVfUExBThACKmoKDEFwcHJvdmFsTW9kZRIdChlBUFBST1ZBTF9NT0RFX1VOU1BFQ0lGSUVEEAASHQoZQVBQUk9WQUxfTU9ERV9JTlRFUkFDVElWRRABEhwKGEFQUFJPVkFMX01PREVfVU5BVFRFTkRFRBACKl0KC1NlcnZpY2VUaWVyEhwKGFNFUlZJQ0VfVElFUl9VTlNQRUNJRklFRBAAEhkKFVNFUlZJQ0VfVElFUl9TVEFOREFSRBABEhUKEVNFUlZJQ0VfVElFUl9GQVNUEAIqpgEKDkZpbGVDaGFuZ2VUeXBlEiAKHEZJTEVfQ0hBTkdFX1RZUEVfVU5TUEVDSUZJRUQQABIbChdGSUxFX0NIQU5HRV9UWVBFX0NSRUFURRABEhsKF0ZJTEVfQ0hBTkdFX1RZUEVfTU9ESUZZEAISGwoXRklMRV9DSEFOR0VfVFlQRV9ERUxFVEUQAxIbChdGSUxFX0NIQU5HRV9UWVBFX1JFTkFNRRAEKpYBChZGaWxlQ2hhbmdlQ2FwdHVyZUxldmVsEikKJUZJTEVfQ0hBTkdFX0NBUFRVUkVfTEVWRUxfVU5TUEVDSUZJRUQQABIoCiRGSUxFX0NIQU5HRV9DQVBUVVJFX0xFVkVMX1dIT0xFX0ZJTEUQARInCiNGSUxFX0NIQU5HRV9DQVBUVVJFX0xFVkVMX0hVTktfT05MWRACKv0BChNGaWxlQ2hhbmdlU2V0U3RhdHVzEiYKIkZJTEVfQ0hBTkdFX1NFVF9TVEFUVVNfVU5TUEVDSUZJRUQQABIkCiBGSUxFX0NIQU5HRV9TRVRfU1RBVFVTX0NBUFRVUklORxABEioKJkZJTEVfQ0hBTkdFX1NFVF9TVEFUVVNfQVdBSVRJTkdfUkVWSUVXEAISIgoeRklMRV9DSEFOR0VfU0VUX1NUQVRVU19ERUNJREVEEAMSJQohRklMRV9DSEFOR0VfU0VUX1NUQVRVU19SRUNPTkNJTEVEEAQSIQodRklMRV9DSEFOR0VfU0VUX1NUQVRVU19GQUlMRUQQBSrHAQoORmlsZUNoYW5nZUtpbmQSIAocRklMRV9DSEFOR0VfS0lORF9VTlNQRUNJRklFRBAAEhgKFEZJTEVfQ0hBTkdFX0tJTkRfQUREEAESGwoXRklMRV9DSEFOR0VfS0lORF9NT0RJRlkQAhIbChdGSUxFX0NIQU5HRV9LSU5EX0RFTEVURRADEhsKF0ZJTEVfQ0hBTkdFX0tJTkRfUkVOQU1FEAQSIgoeRklMRV9DSEFOR0VfS0lORF9CSU5BUllfQ0hBTkdFEAUq2gEKEEZpbGVDYXB0dXJlQ2xhc3MSIgoeRklMRV9DQVBUVVJFX0NMQVNTX1VOU1BFQ0lGSUVEEAASIgoeRklMRV9DQVBUVVJFX0NMQVNTX0dJVF9UUkFDS0VEEAESLQopRklMRV9DQVBUVVJFX0NMQVNTX0dJVF9VTlRSQUNLRURfQ0FQVFVSRUQQAhIrCidGSUxFX0NBUFRVUkVfQ0xBU1NfR0lUX0lHTk9SRURfQ0FQVFVSRUQQAxIiCh5GSUxFX0NBUFRVUkVfQ0xBU1NfTk9OX0dJVF9DQVMQBCqnAQoQRGlmZkNvbXBsZXRlbmVzcxIhCh1ESUZGX0NPTVBMRVRFTkVTU19VTlNQRUNJRklFRBAAEh4KGkRJRkZfQ09NUExFVEVORVNTX0NPTVBMRVRFEAESJQohRElGRl9DT01QTEVURU5FU1NfUEFSVElBTF9CTE9DS0VEEAISKQolRElGRl9DT01QTEVURU5FU1NfQklOQVJZX1NVTU1BUllfT05MWRADKocBCgxTbmFwc2hvdEtpbmQSHQoZU05BUFNIT1RfS0lORF9VTlNQRUNJRklFRBAAEh4KGlNOQVBTSE9UX0tJTkRfR0lUX1RSRUVfUkVGEAESHgoaU05BUFNIT1RfS0lORF9DQVNfTUFOSUZFU1QQAhIYChRTTkFQU0hPVF9LSU5EX0hZQlJJRBADKnoKEUZpbGVEZWNpc2lvblNjb3BlEiMKH0ZJTEVfREVDSVNJT05fU0NPUEVfVU5TUEVDSUZJRUQQABIiCh5GSUxFX0RFQ0lTSU9OX1NDT1BFX0NIQU5HRV9TRVQQARIcChhGSUxFX0RFQ0lTSU9OX1NDT1BFX0ZJTEUQAip9ChJGaWxlRGVjaXNpb25BY3Rpb24SJAogRklMRV9ERUNJU0lPTl9BQ1RJT05fVU5TUEVDSUZJRUQQABIgChxGSUxFX0RFQ0lTSU9OX0FDVElPTl9BUFBST1ZFEAESHwobRklMRV9ERUNJU0lPTl9BQ1RJT05fUkVKRUNUEAIqiwEKEkZpbGVEZWNpc2lvbk9yaWdpbhIkCiBGSUxFX0RFQ0lTSU9OX09SSUdJTl9VTlNQRUNJRklFRBAAEh0KGUZJTEVfREVDSVNJT05fT1JJR0lOX1VTRVIQARIwCixGSUxFX0RFQ0lTSU9OX09SSUdJTl9QT0xJQ1lfQVBQUk9WRURfQ09NTUFORBACKo0CChNGaWxlUmV2aWV3RXZlbnRUeXBlEiYKIkZJTEVfUkVWSUVXX0VWRU5UX1RZUEVfVU5TUEVDSUZJRUQQABIsCihGSUxFX1JFVklFV19FVkVOVF9UWVBFX0JBU0VMSU5FX0NBUFRVUkVEEAESLQopRklMRV9SRVZJRVdfRVZFTlRfVFlQRV9DQU5ESURBVEVfQ0FQVFVSRUQQAhInCiNGSUxFX1JFVklFV19FVkVOVF9UWVBFX0ZJTEVfREVDSURFRBADEiUKIUZJTEVfUkVWSUVXX0VWRU5UX1RZUEVfUkVDT05DSUxFRBAEEiEKHUZJTEVfUkVWSUVXX0VWRU5UX1RZUEVfRkFJTEVEEAUq+QEKFUZpbGVSZXZpZXdGYWlsdXJlS2luZBIoCiRGSUxFX1JFVklFV19GQUlMVVJFX0tJTkRfVU5TUEVDSUZJRUQQABIrCidGSUxFX1JFVklFV19GQUlMVVJFX0tJTkRfQ0FQVFVSRV9GQUlMRUQQARIuCipGSUxFX1JFVklFV19GQUlMVVJFX0tJTkRfRElGRl9VTlJFVklFV0FCTEUQAhItCilGSUxFX1JFVklFV19GQUlMVVJFX0tJTkRfUkVDT05DSUxFX0ZBSUxFRBADEioKJkZJTEVfUkVWSUVXX0ZBSUxVUkVfS0lORF9IQVNIX01JU01BVENIEAQqxAEKFUZpbGVSZXZpZXdCbG9ja1JlYXNvbhIoCiRGSUxFX1JFVklFV19CTE9DS19SRUFTT05fVU5TUEVDSUZJRUQQABIsCihGSUxFX1JFVklFV19CTE9DS19SRUFTT05fU0VDUkVUX1dJVEhIRUxEEAESKAokRklMRV9SRVZJRVdfQkxPQ0tfUkVBU09OX1NJWkVfRUxJREVEEAISKQolRklMRV9SRVZJRVdfQkxPQ0tfUkVBU09OX1VOUkVWSUVXQUJMRRADYgZwcm90bzM"),ExecutionPhase;(function(ExecutionPhase3){ExecutionPhase3[ExecutionPhase3.EXECUTION_PHASE_UNSPECIFIED=0]="EXECUTION_PHASE_UNSPECIFIED",ExecutionPhase3[ExecutionPhase3.EXECUTION_PENDING=1]="EXECUTION_PENDING",ExecutionPhase3[ExecutionPhase3.EXECUTION_IN_PROGRESS=2]="EXECUTION_IN_PROGRESS",ExecutionPhase3[ExecutionPhase3.EXECUTION_COMPLETED=3]="EXECUTION_COMPLETED",ExecutionPhase3[ExecutionPhase3.EXECUTION_FAILED=4]="EXECUTION_FAILED",ExecutionPhase3[ExecutionPhase3.EXECUTION_CANCELLED=5]="EXECUTION_CANCELLED",ExecutionPhase3[ExecutionPhase3.EXECUTION_TERMINATED=8]="EXECUTION_TERMINATED",ExecutionPhase3[ExecutionPhase3.EXECUTION_WAITING_FOR_APPROVAL=6]="EXECUTION_WAITING_FOR_APPROVAL",ExecutionPhase3[ExecutionPhase3.EXECUTION_PAUSED=7]="EXECUTION_PAUSED"})(ExecutionPhase||(ExecutionPhase={}));var MessageType;(function(MessageType2){MessageType2[MessageType2.MESSAGE_TYPE_UNSPECIFIED=0]="MESSAGE_TYPE_UNSPECIFIED",MessageType2[MessageType2.MESSAGE_HUMAN=1]="MESSAGE_HUMAN",MessageType2[MessageType2.MESSAGE_AI=2]="MESSAGE_AI",MessageType2[MessageType2.MESSAGE_TOOL=3]="MESSAGE_TOOL",MessageType2[MessageType2.MESSAGE_SYSTEM=4]="MESSAGE_SYSTEM",MessageType2[MessageType2.MESSAGE_THINKING=5]="MESSAGE_THINKING"})(MessageType||(MessageType={}));var ToolCallStatus;(function(ToolCallStatus2){ToolCallStatus2[ToolCallStatus2.TOOL_CALL_STATUS_UNSPECIFIED=0]="TOOL_CALL_STATUS_UNSPECIFIED",ToolCallStatus2[ToolCallStatus2.TOOL_CALL_PENDING=1]="TOOL_CALL_PENDING",ToolCallStatus2[ToolCallStatus2.TOOL_CALL_RUNNING=2]="TOOL_CALL_RUNNING",ToolCallStatus2[ToolCallStatus2.TOOL_CALL_COMPLETED=3]="TOOL_CALL_COMPLETED",ToolCallStatus2[ToolCallStatus2.TOOL_CALL_FAILED=4]="TOOL_CALL_FAILED",ToolCallStatus2[ToolCallStatus2.TOOL_CALL_WAITING_APPROVAL=5]="TOOL_CALL_WAITING_APPROVAL",ToolCallStatus2[ToolCallStatus2.TOOL_CALL_SKIPPED=6]="TOOL_CALL_SKIPPED",ToolCallStatus2[ToolCallStatus2.TOOL_CALL_INTERRUPTED=7]="TOOL_CALL_INTERRUPTED"})(ToolCallStatus||(ToolCallStatus={}));var ToolKind;(function(ToolKind2){ToolKind2[ToolKind2.UNSPECIFIED=0]="UNSPECIFIED",ToolKind2[ToolKind2.FILE_READ=1]="FILE_READ",ToolKind2[ToolKind2.FILE_WRITE=2]="FILE_WRITE",ToolKind2[ToolKind2.FILE_EDIT=3]="FILE_EDIT",ToolKind2[ToolKind2.FILE_DELETE=4]="FILE_DELETE",ToolKind2[ToolKind2.SHELL=5]="SHELL",ToolKind2[ToolKind2.SEARCH=6]="SEARCH",ToolKind2[ToolKind2.LIST=7]="LIST",ToolKind2[ToolKind2.FETCH=8]="FETCH",ToolKind2[ToolKind2.WEB_SEARCH=9]="WEB_SEARCH",ToolKind2[ToolKind2.THINK=10]="THINK",ToolKind2[ToolKind2.TODO=11]="TODO",ToolKind2[ToolKind2.SUBAGENT=12]="SUBAGENT",ToolKind2[ToolKind2.MCP=13]="MCP"})(ToolKind||(ToolKind={}));var TodoStatus;(function(TodoStatus2){TodoStatus2[TodoStatus2.TODO_STATUS_UNSPECIFIED=0]="TODO_STATUS_UNSPECIFIED",TodoStatus2[TodoStatus2.TODO_PENDING=1]="TODO_PENDING",TodoStatus2[TodoStatus2.TODO_IN_PROGRESS=2]="TODO_IN_PROGRESS",TodoStatus2[TodoStatus2.TODO_COMPLETED=3]="TODO_COMPLETED",TodoStatus2[TodoStatus2.TODO_CANCELLED=4]="TODO_CANCELLED"})(TodoStatus||(TodoStatus={}));var SubAgentStatus;(function(SubAgentStatus2){SubAgentStatus2[SubAgentStatus2.SUB_AGENT_STATUS_UNSPECIFIED=0]="SUB_AGENT_STATUS_UNSPECIFIED",SubAgentStatus2[SubAgentStatus2.SUB_AGENT_PENDING=1]="SUB_AGENT_PENDING",SubAgentStatus2[SubAgentStatus2.SUB_AGENT_IN_PROGRESS=2]="SUB_AGENT_IN_PROGRESS",SubAgentStatus2[SubAgentStatus2.SUB_AGENT_COMPLETED=3]="SUB_AGENT_COMPLETED",SubAgentStatus2[SubAgentStatus2.SUB_AGENT_FAILED=4]="SUB_AGENT_FAILED",SubAgentStatus2[SubAgentStatus2.SUB_AGENT_CANCELLED=5]="SUB_AGENT_CANCELLED"})(SubAgentStatus||(SubAgentStatus={}));var ExecutionArtifactKind;(function(ExecutionArtifactKind2){ExecutionArtifactKind2[ExecutionArtifactKind2.UNSPECIFIED=0]="UNSPECIFIED",ExecutionArtifactKind2[ExecutionArtifactKind2.FILE=1]="FILE",ExecutionArtifactKind2[ExecutionArtifactKind2.DIRECTORY=2]="DIRECTORY"})(ExecutionArtifactKind||(ExecutionArtifactKind={}));var SummarizationSource;(function(SummarizationSource2){SummarizationSource2[SummarizationSource2.SUMMARIZATION_SOURCE_UNSPECIFIED=0]="SUMMARIZATION_SOURCE_UNSPECIFIED",SummarizationSource2[SummarizationSource2.graph_start=1]="graph_start",SummarizationSource2[SummarizationSource2.mid_execution=2]="mid_execution"})(SummarizationSource||(SummarizationSource={}));var ToolCallStreamingSource;(function(ToolCallStreamingSource2){ToolCallStreamingSource2[ToolCallStreamingSource2.UNSPECIFIED=0]="UNSPECIFIED",ToolCallStreamingSource2[ToolCallStreamingSource2.INPUT=1]="INPUT",ToolCallStreamingSource2[ToolCallStreamingSource2.OUTPUT=2]="OUTPUT"})(ToolCallStreamingSource||(ToolCallStreamingSource={}));var ExecutionControlSignal;(function(ExecutionControlSignal2){ExecutionControlSignal2[ExecutionControlSignal2.UNSPECIFIED=0]="UNSPECIFIED",ExecutionControlSignal2[ExecutionControlSignal2.STOP=1]="STOP",ExecutionControlSignal2[ExecutionControlSignal2.WARNING=2]="WARNING"})(ExecutionControlSignal||(ExecutionControlSignal={}));var ApprovalAction;(function(ApprovalAction2){ApprovalAction2[ApprovalAction2.UNSPECIFIED=0]="UNSPECIFIED",ApprovalAction2[ApprovalAction2.APPROVE=1]="APPROVE",ApprovalAction2[ApprovalAction2.SKIP=2]="SKIP",ApprovalAction2[ApprovalAction2.REJECT=3]="REJECT",ApprovalAction2[ApprovalAction2.APPROVE_ALL=4]="APPROVE_ALL"})(ApprovalAction||(ApprovalAction={}));var ApprovalPolicySource;(function(ApprovalPolicySource2){ApprovalPolicySource2[ApprovalPolicySource2.UNSPECIFIED=0]="UNSPECIFIED",ApprovalPolicySource2[ApprovalPolicySource2.CLASSIFIER_DEFAULT=1]="CLASSIFIER_DEFAULT",ApprovalPolicySource2[ApprovalPolicySource2.PINNED_OVERRIDE=2]="PINNED_OVERRIDE",ApprovalPolicySource2[ApprovalPolicySource2.AGENT_OVERRIDE=3]="AGENT_OVERRIDE",ApprovalPolicySource2[ApprovalPolicySource2.AUTO_APPROVE_ALL=4]="AUTO_APPROVE_ALL",ApprovalPolicySource2[ApprovalPolicySource2.APPROVAL_LEASE=5]="APPROVAL_LEASE",ApprovalPolicySource2[ApprovalPolicySource2.BUILTIN_CATEGORY=6]="BUILTIN_CATEGORY",ApprovalPolicySource2[ApprovalPolicySource2.ANNOTATION_DESTRUCTIVE_TIGHTEN=7]="ANNOTATION_DESTRUCTIVE_TIGHTEN",ApprovalPolicySource2[ApprovalPolicySource2.UNATTENDED_SKIP=8]="UNATTENDED_SKIP"})(ApprovalPolicySource||(ApprovalPolicySource={}));var ApprovalEventType;(function(ApprovalEventType2){ApprovalEventType2[ApprovalEventType2.UNSPECIFIED=0]="UNSPECIFIED",ApprovalEventType2[ApprovalEventType2.REQUESTED=1]="REQUESTED",ApprovalEventType2[ApprovalEventType2.APPROVED=2]="APPROVED",ApprovalEventType2[ApprovalEventType2.REJECTED=3]="REJECTED",ApprovalEventType2[ApprovalEventType2.SKIPPED=4]="SKIPPED",ApprovalEventType2[ApprovalEventType2.RETRACTED=5]="RETRACTED"})(ApprovalEventType||(ApprovalEventType={}));var ApprovalRetractionReason;(function(ApprovalRetractionReason2){ApprovalRetractionReason2[ApprovalRetractionReason2.UNSPECIFIED=0]="UNSPECIFIED",ApprovalRetractionReason2[ApprovalRetractionReason2.SUB_AGENT_TERMINAL=1]="SUB_AGENT_TERMINAL",ApprovalRetractionReason2[ApprovalRetractionReason2.SUPERSEDED=2]="SUPERSEDED"})(ApprovalRetractionReason||(ApprovalRetractionReason={}));var InteractionMode;(function(InteractionMode2){InteractionMode2[InteractionMode2.UNSPECIFIED=0]="UNSPECIFIED",InteractionMode2[InteractionMode2.AGENT=1]="AGENT",InteractionMode2[InteractionMode2.PLAN=2]="PLAN"})(InteractionMode||(InteractionMode={}));var ApprovalMode;(function(ApprovalMode2){ApprovalMode2[ApprovalMode2.UNSPECIFIED=0]="UNSPECIFIED",ApprovalMode2[ApprovalMode2.INTERACTIVE=1]="INTERACTIVE",ApprovalMode2[ApprovalMode2.UNATTENDED=2]="UNATTENDED"})(ApprovalMode||(ApprovalMode={}));var ServiceTier;(function(ServiceTier2){ServiceTier2[ServiceTier2.UNSPECIFIED=0]="UNSPECIFIED",ServiceTier2[ServiceTier2.STANDARD=1]="STANDARD",ServiceTier2[ServiceTier2.FAST=2]="FAST"})(ServiceTier||(ServiceTier={}));var FileChangeType;(function(FileChangeType2){FileChangeType2[FileChangeType2.UNSPECIFIED=0]="UNSPECIFIED",FileChangeType2[FileChangeType2.CREATE=1]="CREATE",FileChangeType2[FileChangeType2.MODIFY=2]="MODIFY",FileChangeType2[FileChangeType2.DELETE=3]="DELETE",FileChangeType2[FileChangeType2.RENAME=4]="RENAME"})(FileChangeType||(FileChangeType={}));var FileChangeCaptureLevel;(function(FileChangeCaptureLevel2){FileChangeCaptureLevel2[FileChangeCaptureLevel2.UNSPECIFIED=0]="UNSPECIFIED",FileChangeCaptureLevel2[FileChangeCaptureLevel2.WHOLE_FILE=1]="WHOLE_FILE",FileChangeCaptureLevel2[FileChangeCaptureLevel2.HUNK_ONLY=2]="HUNK_ONLY"})(FileChangeCaptureLevel||(FileChangeCaptureLevel={}));var FileChangeSetStatus;(function(FileChangeSetStatus2){FileChangeSetStatus2[FileChangeSetStatus2.UNSPECIFIED=0]="UNSPECIFIED",FileChangeSetStatus2[FileChangeSetStatus2.CAPTURING=1]="CAPTURING",FileChangeSetStatus2[FileChangeSetStatus2.AWAITING_REVIEW=2]="AWAITING_REVIEW",FileChangeSetStatus2[FileChangeSetStatus2.DECIDED=3]="DECIDED",FileChangeSetStatus2[FileChangeSetStatus2.RECONCILED=4]="RECONCILED",FileChangeSetStatus2[FileChangeSetStatus2.FAILED=5]="FAILED"})(FileChangeSetStatus||(FileChangeSetStatus={}));var FileChangeKind;(function(FileChangeKind2){FileChangeKind2[FileChangeKind2.UNSPECIFIED=0]="UNSPECIFIED",FileChangeKind2[FileChangeKind2.ADD=1]="ADD",FileChangeKind2[FileChangeKind2.MODIFY=2]="MODIFY",FileChangeKind2[FileChangeKind2.DELETE=3]="DELETE",FileChangeKind2[FileChangeKind2.RENAME=4]="RENAME",FileChangeKind2[FileChangeKind2.BINARY_CHANGE=5]="BINARY_CHANGE"})(FileChangeKind||(FileChangeKind={}));var FileCaptureClass;(function(FileCaptureClass2){FileCaptureClass2[FileCaptureClass2.UNSPECIFIED=0]="UNSPECIFIED",FileCaptureClass2[FileCaptureClass2.GIT_TRACKED=1]="GIT_TRACKED",FileCaptureClass2[FileCaptureClass2.GIT_UNTRACKED_CAPTURED=2]="GIT_UNTRACKED_CAPTURED",FileCaptureClass2[FileCaptureClass2.GIT_IGNORED_CAPTURED=3]="GIT_IGNORED_CAPTURED",FileCaptureClass2[FileCaptureClass2.NON_GIT_CAS=4]="NON_GIT_CAS"})(FileCaptureClass||(FileCaptureClass={}));var DiffCompleteness;(function(DiffCompleteness2){DiffCompleteness2[DiffCompleteness2.UNSPECIFIED=0]="UNSPECIFIED",DiffCompleteness2[DiffCompleteness2.COMPLETE=1]="COMPLETE",DiffCompleteness2[DiffCompleteness2.PARTIAL_BLOCKED=2]="PARTIAL_BLOCKED",DiffCompleteness2[DiffCompleteness2.BINARY_SUMMARY_ONLY=3]="BINARY_SUMMARY_ONLY"})(DiffCompleteness||(DiffCompleteness={}));var SnapshotKind;(function(SnapshotKind2){SnapshotKind2[SnapshotKind2.UNSPECIFIED=0]="UNSPECIFIED",SnapshotKind2[SnapshotKind2.GIT_TREE_REF=1]="GIT_TREE_REF",SnapshotKind2[SnapshotKind2.CAS_MANIFEST=2]="CAS_MANIFEST",SnapshotKind2[SnapshotKind2.HYBRID=3]="HYBRID"})(SnapshotKind||(SnapshotKind={}));var FileDecisionScope;(function(FileDecisionScope2){FileDecisionScope2[FileDecisionScope2.UNSPECIFIED=0]="UNSPECIFIED",FileDecisionScope2[FileDecisionScope2.CHANGE_SET=1]="CHANGE_SET",FileDecisionScope2[FileDecisionScope2.FILE=2]="FILE"})(FileDecisionScope||(FileDecisionScope={}));var FileDecisionAction;(function(FileDecisionAction2){FileDecisionAction2[FileDecisionAction2.UNSPECIFIED=0]="UNSPECIFIED",FileDecisionAction2[FileDecisionAction2.APPROVE=1]="APPROVE",FileDecisionAction2[FileDecisionAction2.REJECT=2]="REJECT"})(FileDecisionAction||(FileDecisionAction={}));var FileDecisionOrigin;(function(FileDecisionOrigin2){FileDecisionOrigin2[FileDecisionOrigin2.UNSPECIFIED=0]="UNSPECIFIED",FileDecisionOrigin2[FileDecisionOrigin2.USER=1]="USER",FileDecisionOrigin2[FileDecisionOrigin2.POLICY_APPROVED_COMMAND=2]="POLICY_APPROVED_COMMAND"})(FileDecisionOrigin||(FileDecisionOrigin={}));var FileReviewEventType;(function(FileReviewEventType2){FileReviewEventType2[FileReviewEventType2.UNSPECIFIED=0]="UNSPECIFIED",FileReviewEventType2[FileReviewEventType2.BASELINE_CAPTURED=1]="BASELINE_CAPTURED",FileReviewEventType2[FileReviewEventType2.CANDIDATE_CAPTURED=2]="CANDIDATE_CAPTURED",FileReviewEventType2[FileReviewEventType2.FILE_DECIDED=3]="FILE_DECIDED",FileReviewEventType2[FileReviewEventType2.RECONCILED=4]="RECONCILED",FileReviewEventType2[FileReviewEventType2.FAILED=5]="FAILED"})(FileReviewEventType||(FileReviewEventType={}));var FileReviewFailureKind;(function(FileReviewFailureKind2){FileReviewFailureKind2[FileReviewFailureKind2.UNSPECIFIED=0]="UNSPECIFIED",FileReviewFailureKind2[FileReviewFailureKind2.CAPTURE_FAILED=1]="CAPTURE_FAILED",FileReviewFailureKind2[FileReviewFailureKind2.DIFF_UNREVIEWABLE=2]="DIFF_UNREVIEWABLE",FileReviewFailureKind2[FileReviewFailureKind2.RECONCILE_FAILED=3]="RECONCILE_FAILED",FileReviewFailureKind2[FileReviewFailureKind2.HASH_MISMATCH=4]="HASH_MISMATCH"})(FileReviewFailureKind||(FileReviewFailureKind={}));var FileReviewBlockReason;(function(FileReviewBlockReason2){FileReviewBlockReason2[FileReviewBlockReason2.UNSPECIFIED=0]="UNSPECIFIED",FileReviewBlockReason2[FileReviewBlockReason2.SECRET_WITHHELD=1]="SECRET_WITHHELD",FileReviewBlockReason2[FileReviewBlockReason2.SIZE_ELIDED=2]="SIZE_ELIDED",FileReviewBlockReason2[FileReviewBlockReason2.UNREVIEWABLE=3]="UNREVIEWABLE"})(FileReviewBlockReason||(FileReviewBlockReason={}));var file_ai_stigmer_agentic_agentexecution_v1_usage=fileDesc("CjBhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvdXNhZ2UucHJvdG8SJGFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MSKxAwoKVG9rZW5Vc2FnZRIUCgxpbnB1dF90b2tlbnMYASABKAMSFQoNb3V0cHV0X3Rva2VucxgCIAEoAxIUCgx0b3RhbF90b2tlbnMYAyABKAMSIwobY2FjaGVfY3JlYXRpb25faW5wdXRfdG9rZW5zGAQgASgDEh8KF2NhY2hlX3JlYWRfaW5wdXRfdG9rZW5zGAUgASgDEhgKEHJlYXNvbmluZ190b2tlbnMYBiABKAMSHgoWdG9vbF91c2VfcHJvbXB0X3Rva2VucxgHIAEoAxIaChJhdWRpb19pbnB1dF90b2tlbnMYCCABKAMSGwoTYXVkaW9fb3V0cHV0X3Rva2VucxgJIAEoAxJqChZwcm92aWRlcl90b2tlbl9kZXRhaWxzGBQgAygLMkouYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlRva2VuVXNhZ2UuUHJvdmlkZXJUb2tlbkRldGFpbHNFbnRyeRo7ChlQcm92aWRlclRva2VuRGV0YWlsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoAzoCOAEiugMKD1ByaWNpbmdTbmFwc2hvdBIgChhwcmljaW5nX3JlZ2lzdHJ5X3ZlcnNpb24YASABKAkSOAoUcHJpY2luZ19lZmZlY3RpdmVfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhAKCGN1cnJlbmN5GAMgASgJEiYKHmlucHV0X3ByaWNlX21pY3Jvc19wZXJfbWlsbGlvbhgKIAEoAxInCh9vdXRwdXRfcHJpY2VfbWljcm9zX3Blcl9taWxsaW9uGAsgASgDEi8KJ2NhY2hlX2NyZWF0aW9uX3ByaWNlX21pY3Jvc19wZXJfbWlsbGlvbhgMIAEoAxIrCiNjYWNoZV9yZWFkX3ByaWNlX21pY3Jvc19wZXJfbWlsbGlvbhgNIAEoAxIqCiJyZWFzb25pbmdfcHJpY2VfbWljcm9zX3Blcl9taWxsaW9uGA4gASgDEiwKJGN1cnNvcl90b2tlbl9yYXRlX21pY3Jvc19wZXJfbWlsbGlvbhgPIAEoAxIdChVtYXJrdXBfcG9saWN5X3ZlcnNpb24YHiABKAkSEQoJY29zdF90aWVyGB8gASgJIqkCCglDb3N0U3RhbXASEAoIY3VycmVuY3kYASABKAkSHAoUcHJvdmlkZXJfY29zdF9taWNyb3MYAiABKAMSJwofY3VzdG9tZXJfYmlsbGFibGVfYW1vdW50X21pY3JvcxgDIAEoAxJXChJjYWxjdWxhdGlvbl9zdGF0dXMYBCABKA4yOy5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQ29zdENhbGN1bGF0aW9uU3RhdHVzEkYKB3ByaWNpbmcYBSABKAsyNS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuUHJpY2luZ1NuYXBzaG90EiIKGmN1cnNvcl9wbGF0Zm9ybV9mZWVfbWljcm9zGAYgASgDItQDCgtQcm94eVRpbWluZxI1ChFwcm94eV9yZWNlaXZlZF9hdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASPwobdXBzdHJlYW1fcmVxdWVzdF9zdGFydGVkX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI6ChZmaXJzdF9yZXNwb25zZV9ieXRlX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI5ChVsYXN0X3Jlc3BvbnNlX2J5dGVfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjYKEnByb3h5X2NvbXBsZXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGAoQdXBzdHJlYW1fdHRmYl9tcxgKIAEoAxIYChB1cHN0cmVhbV90dGxiX21zGAsgASgDEhoKEnN0cmVhbV9kdXJhdGlvbl9tcxgMIAEoAxIfChdwcm94eV90b3RhbF9kdXJhdGlvbl9tcxgNIAEoAxIVCg1yZXF1ZXN0X2J5dGVzGBQgASgDEhYKDnJlc3BvbnNlX2J5dGVzGBUgASgDIvoBCgtCaWxsaW5nTGluaxJOCgxkZWJpdF9zdGF0dXMYASABKA4yOC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQmlsbGluZ0RlYml0U3RhdHVzEhYKDnJlc2VydmF0aW9uX2lkGAIgASgJEhgKEGJpbGxpbmdfZGViaXRfaWQYAyABKAkSLgoKZGViaXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASHQoVYmlsbGluZ19hdHRlbXB0X2NvdW50GAUgASgFEhoKEmxhc3RfYmlsbGluZ19lcnJvchgGIAEoCSLbCgoSTGxtQ2FsbFVzYWdlUmVjb3JkEhcKD3VzYWdlX3JlY29yZF9pZBgBIAEoCRIUCgxleGVjdXRpb25faWQYAiABKAkSGQoRcm9vdF9leGVjdXRpb25faWQYAyABKAkSEAoIc2VxdWVuY2UYBCABKAUSFwoPaWRlbXBvdGVuY3lfa2V5GAUgASgJEh4KFmNhbm9uaWNhbF9wYXlsb2FkX2hhc2gYBiABKAkSLwoLb2JzZXJ2ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmNyZWF0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wElIKD21ldGVyaW5nX3NvdXJjZRgUIAEoDjI5LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5Vc2FnZU1ldGVyaW5nU291cmNlEkoKC3RydXN0X2xldmVsGBUgASgOMjUuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlVzYWdlVHJ1c3RMZXZlbBJRCgx1c2FnZV9zdGF0dXMYFiABKA4yOy5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuVXNhZ2VDb21wbGV0aW9uU3RhdHVzEhMKC2lzX2JpbGxhYmxlGBcgASgIEhAKCHByb3ZpZGVyGB4gASgJEhcKD3JlcXVlc3RlZF9tb2RlbBgfIAEoCRIWCg5yZXNvbHZlZF9tb2RlbBggIAEoCRIQCghlbmRwb2ludBghIAEoCRIRCglzdHJlYW1pbmcYIiABKAgSFAoMc2VydmljZV90aWVyGCMgASgJEhsKE3Byb3ZpZGVyX3JlcXVlc3RfaWQYJCABKAkSDwoHaGFybmVzcxglIAEoCRIZChFjdXJzb3JfYWNjb3VudF9pZBgmIAEoCRIVCg1jdXJzb3Jfa2V5X2lkGCcgASgJEhgKEGh0dHBfc3RhdHVzX2NvZGUYKCABKAUSFQoNZmluaXNoX3JlYXNvbhgpIAEoCRISCgplcnJvcl9jb2RlGCogASgJElAKEWN1cnNvcl9rZXlfc291cmNlGCsgASgOMjUuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkN1cnNvcktleVNvdXJjZRJACgZ0b2tlbnMYMiABKAsyMC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuVG9rZW5Vc2FnZRI9CgRjb3N0GDMgASgLMi8uYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkNvc3RTdGFtcBJHCgxwcm94eV90aW1pbmcYPCABKAsyMS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuUHJveHlUaW1pbmcSGwoTcHJvdmlkZXJfdXNhZ2VfanNvbhhGIAEoCRJCCgdiaWxsaW5nGFAgASgLMjEuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkJpbGxpbmdMaW5rEg4KBm9yZ19pZBgHIAEoCRISCgpzZXNzaW9uX2lkGAggASgJElQKBmxhYmVscxhaIAMoCzJELmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5MbG1DYWxsVXNhZ2VSZWNvcmQuTGFiZWxzRW50cnkaLQoLTGFiZWxzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASK+AgoUVXNhZ2VSZXBvcnRBZ2dyZWdhdGUSFAoMaW5wdXRfdG9rZW5zGAEgASgDEhUKDW91dHB1dF90b2tlbnMYAiABKAMSFAoMdG90YWxfdG9rZW5zGAMgASgDEiMKG2NhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucxgEIAEoAxIfChdjYWNoZV9yZWFkX2lucHV0X3Rva2VucxgFIAEoAxIYChByZWFzb25pbmdfdG9rZW5zGAYgASgDEhYKDmxsbV9jYWxsX2NvdW50GAogASgFEhwKFGJpbGxhYmxlX2Nvc3RfbWljcm9zGBQgASgDEhwKFHByb3ZpZGVyX2Nvc3RfbWljcm9zGBUgASgDEhUKDXByaW1hcnlfbW9kZWwYHiABKAkSGAoQcHJpbWFyeV9wcm92aWRlchgfIAEoCSLwAQoKTW9kZWxVc2FnZRINCgVtb2RlbBgBIAEoCRIQCghwcm92aWRlchgCIAEoCRIUCgxpbnB1dF90b2tlbnMYAyABKAMSFQoNb3V0cHV0X3Rva2VucxgEIAEoAxIjChtjYWNoZV9jcmVhdGlvbl9pbnB1dF90b2tlbnMYBSABKAMSHwoXY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMYBiABKAMSEgoKY2FsbF9jb3VudBgHIAEoBRIcChRiaWxsYWJsZV9jb3N0X21pY3JvcxgIIAEoAxIcChRwcm92aWRlcl9jb3N0X21pY3JvcxgJIAEoAyLYAgoVU3RyZWFtaW5nVXNhZ2VTdW1tYXJ5EhQKDGlucHV0X3Rva2VucxgBIAEoAxIVCg1vdXRwdXRfdG9rZW5zGAIgASgDEhkKEWNhY2hlX3JlYWRfdG9rZW5zGAMgASgDEhoKEmNhY2hlX3dyaXRlX3Rva2VucxgEIAEoAxIUCgx0b3RhbF90b2tlbnMYBSABKAMSEgoKdHVybl9jb3VudBgGIAEoBRIaChJlc3RpbWF0ZWRfY29zdF91c2QYByABKAESDQoFbW9kZWwYCCABKAkSEwoLb2JzZXJ2ZWRfYXQYCSABKAkSUQoWcmVxdWVzdGVkX3NlcnZpY2VfdGllchgKIAEoDjIxLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5TZXJ2aWNlVGllchIeChZyZXF1ZXN0ZWRfbW9kZWxfcGFyYW1zGAsgASgJKq4CChNVc2FnZU1ldGVyaW5nU291cmNlEiUKIVVTQUdFX01FVEVSSU5HX1NPVVJDRV9VTlNQRUNJRklFRBAAEjEKLVVTQUdFX01FVEVSSU5HX1NPVVJDRV9QUk9YWV9QUk9WSURFUl9SRVBPUlRFRBABEjYKMlVTQUdFX01FVEVSSU5HX1NPVVJDRV9SVU5ORVJfUFJPVklERVJfUkVQT1JURURfT1NTEAISIwofVVNBR0VfTUVURVJJTkdfU09VUkNFX0VTVElNQVRFRBADEjMKL1VTQUdFX01FVEVSSU5HX1NPVVJDRV9QUk9WSURFUl9BRE1JTl9SRUNPTkNJTEVEEAQSKwonVVNBR0VfTUVURVJJTkdfU09VUkNFX01BTlVBTF9BREpVU1RNRU5UEAUqqAEKD1VzYWdlVHJ1c3RMZXZlbBIhCh1VU0FHRV9UUlVTVF9MRVZFTF9VTlNQRUNJRklFRBAAEicKI1VTQUdFX1RSVVNUX0xFVkVMX0JJTExJTkdfQVVUSE9SSVRZEAESJQohVVNBR0VfVFJVU1RfTEVWRUxfU0VSVkVSX09CU0VSVkVEEAISIgoeVVNBR0VfVFJVU1RfTEVWRUxfRElTUExBWV9PTkxZEAMq/AIKFVVzYWdlQ29tcGxldGlvblN0YXR1cxInCiNVU0FHRV9DT01QTEVUSU9OX1NUQVRVU19VTlNQRUNJRklFRBAAEiQKIFVTQUdFX0NPTVBMRVRJT05fU1RBVFVTX0NPTVBMRVRFEAESLgoqVVNBR0VfQ09NUExFVElPTl9TVEFUVVNfU1RSRUFNX0lOVEVSUlVQVEVEEAISNQoxVVNBR0VfQ09NUExFVElPTl9TVEFUVVNfUFJPVklERVJfRVJST1JfV0lUSF9VU0FHRRADEjMKL1VTQUdFX0NPTVBMRVRJT05fU1RBVFVTX1BST1ZJREVSX0VSUk9SX05PX1VTQUdFEAQSKgomVVNBR0VfQ09NUExFVElPTl9TVEFUVVNfRVNUSU1BVEVEX09OTFkQBRImCiJVU0FHRV9DT01QTEVUSU9OX1NUQVRVU19SRUNPTkNJTEVEEAYSJAogVVNBR0VfQ09NUExFVElPTl9TVEFUVVNfQ09ORkxJQ1QQByqfAgoSQmlsbGluZ0RlYml0U3RhdHVzEiQKIEJJTExJTkdfREVCSVRfU1RBVFVTX1VOU1BFQ0lGSUVEEAASJwojQklMTElOR19ERUJJVF9TVEFUVVNfTk9UX0FQUExJQ0FCTEUQARIgChxCSUxMSU5HX0RFQklUX1NUQVRVU19QRU5ESU5HEAISIAocQklMTElOR19ERUJJVF9TVEFUVVNfREVCSVRFRBADEikKJUJJTExJTkdfREVCSVRfU1RBVFVTX0ZBSUxFRF9SRVRSWUFCTEUQBBIoCiRCSUxMSU5HX0RFQklUX1NUQVRVU19GQUlMRURfVEVSTUlOQUwQBRIhCh1CSUxMSU5HX0RFQklUX1NUQVRVU19DT05GTElDVBAGKo8CChVDb3N0Q2FsY3VsYXRpb25TdGF0dXMSJwojQ09TVF9DQUxDVUxBVElPTl9TVEFUVVNfVU5TUEVDSUZJRUQQABIkCiBDT1NUX0NBTENVTEFUSU9OX1NUQVRVU19DT01QVVRFRBABEiUKIUNPU1RfQ0FMQ1VMQVRJT05fU1RBVFVTX0VTVElNQVRFRBACEisKJ0NPU1RfQ0FMQ1VMQVRJT05fU1RBVFVTX1BSSUNFX05PVF9GT1VORBADEiYKIkNPU1RfQ0FMQ1VMQVRJT05fU1RBVFVTX1JFQ09OQ0lMRUQQBBIrCidDT1NUX0NBTENVTEFUSU9OX1NUQVRVU19NQU5VQUxfQURKVVNURUQQBSpXCg9DdXJzb3JLZXlTb3VyY2USIQodQ1VSU09SX0tFWV9TT1VSQ0VfVU5TUEVDSUZJRUQQABIhCh1DVVJTT1JfS0VZX1NPVVJDRV9NQU5BR0VEX0tFWRABYgZwcm90bzM",[file_ai_stigmer_agentic_agentexecution_v1_enum,file_google_protobuf_timestamp]);var UsageMeteringSource;(function(UsageMeteringSource2){UsageMeteringSource2[UsageMeteringSource2.UNSPECIFIED=0]="UNSPECIFIED",UsageMeteringSource2[UsageMeteringSource2.PROXY_PROVIDER_REPORTED=1]="PROXY_PROVIDER_REPORTED",UsageMeteringSource2[UsageMeteringSource2.RUNNER_PROVIDER_REPORTED_OSS=2]="RUNNER_PROVIDER_REPORTED_OSS",UsageMeteringSource2[UsageMeteringSource2.ESTIMATED=3]="ESTIMATED",UsageMeteringSource2[UsageMeteringSource2.PROVIDER_ADMIN_RECONCILED=4]="PROVIDER_ADMIN_RECONCILED",UsageMeteringSource2[UsageMeteringSource2.MANUAL_ADJUSTMENT=5]="MANUAL_ADJUSTMENT"})(UsageMeteringSource||(UsageMeteringSource={}));var UsageTrustLevel;(function(UsageTrustLevel2){UsageTrustLevel2[UsageTrustLevel2.UNSPECIFIED=0]="UNSPECIFIED",UsageTrustLevel2[UsageTrustLevel2.BILLING_AUTHORITY=1]="BILLING_AUTHORITY",UsageTrustLevel2[UsageTrustLevel2.SERVER_OBSERVED=2]="SERVER_OBSERVED",UsageTrustLevel2[UsageTrustLevel2.DISPLAY_ONLY=3]="DISPLAY_ONLY"})(UsageTrustLevel||(UsageTrustLevel={}));var UsageCompletionStatus;(function(UsageCompletionStatus2){UsageCompletionStatus2[UsageCompletionStatus2.UNSPECIFIED=0]="UNSPECIFIED",UsageCompletionStatus2[UsageCompletionStatus2.COMPLETE=1]="COMPLETE",UsageCompletionStatus2[UsageCompletionStatus2.STREAM_INTERRUPTED=2]="STREAM_INTERRUPTED",UsageCompletionStatus2[UsageCompletionStatus2.PROVIDER_ERROR_WITH_USAGE=3]="PROVIDER_ERROR_WITH_USAGE",UsageCompletionStatus2[UsageCompletionStatus2.PROVIDER_ERROR_NO_USAGE=4]="PROVIDER_ERROR_NO_USAGE",UsageCompletionStatus2[UsageCompletionStatus2.ESTIMATED_ONLY=5]="ESTIMATED_ONLY",UsageCompletionStatus2[UsageCompletionStatus2.RECONCILED=6]="RECONCILED",UsageCompletionStatus2[UsageCompletionStatus2.CONFLICT=7]="CONFLICT"})(UsageCompletionStatus||(UsageCompletionStatus={}));var BillingDebitStatus;(function(BillingDebitStatus2){BillingDebitStatus2[BillingDebitStatus2.UNSPECIFIED=0]="UNSPECIFIED",BillingDebitStatus2[BillingDebitStatus2.NOT_APPLICABLE=1]="NOT_APPLICABLE",BillingDebitStatus2[BillingDebitStatus2.PENDING=2]="PENDING",BillingDebitStatus2[BillingDebitStatus2.DEBITED=3]="DEBITED",BillingDebitStatus2[BillingDebitStatus2.FAILED_RETRYABLE=4]="FAILED_RETRYABLE",BillingDebitStatus2[BillingDebitStatus2.FAILED_TERMINAL=5]="FAILED_TERMINAL",BillingDebitStatus2[BillingDebitStatus2.CONFLICT=6]="CONFLICT"})(BillingDebitStatus||(BillingDebitStatus={}));var CostCalculationStatus;(function(CostCalculationStatus2){CostCalculationStatus2[CostCalculationStatus2.UNSPECIFIED=0]="UNSPECIFIED",CostCalculationStatus2[CostCalculationStatus2.COMPUTED=1]="COMPUTED",CostCalculationStatus2[CostCalculationStatus2.ESTIMATED=2]="ESTIMATED",CostCalculationStatus2[CostCalculationStatus2.PRICE_NOT_FOUND=3]="PRICE_NOT_FOUND",CostCalculationStatus2[CostCalculationStatus2.RECONCILED=4]="RECONCILED",CostCalculationStatus2[CostCalculationStatus2.MANUAL_ADJUSTED=5]="MANUAL_ADJUSTED"})(CostCalculationStatus||(CostCalculationStatus={}));var CursorKeySource;(function(CursorKeySource2){CursorKeySource2[CursorKeySource2.UNSPECIFIED=0]="UNSPECIFIED",CursorKeySource2[CursorKeySource2.MANAGED_KEY=1]="MANAGED_KEY"})(CursorKeySource||(CursorKeySource={}));var file_buf_validate_validate=fileDesc("ChtidWYvdmFsaWRhdGUvdmFsaWRhdGUucHJvdG8SDGJ1Zi52YWxpZGF0ZSI3CgRSdWxlEgoKAmlkGAEgASgJEg8KB21lc3NhZ2UYAiABKAkSEgoKZXhwcmVzc2lvbhgDIAEoCSKGAQoMTWVzc2FnZVJ1bGVzEhYKDmNlbF9leHByZXNzaW9uGAUgAygJEh8KA2NlbBgDIAMoCzISLmJ1Zi52YWxpZGF0ZS5SdWxlEi0KBW9uZW9mGAQgAygLMh4uYnVmLnZhbGlkYXRlLk1lc3NhZ2VPbmVvZlJ1bGVKBAgBEAJSCGRpc2FibGVkIjQKEE1lc3NhZ2VPbmVvZlJ1bGUSDgoGZmllbGRzGAEgAygJEhAKCHJlcXVpcmVkGAIgASgIIh4KCk9uZW9mUnVsZXMSEAoIcmVxdWlyZWQYASABKAgiiwkKCkZpZWxkUnVsZXMSFgoOY2VsX2V4cHJlc3Npb24YHSADKAkSHwoDY2VsGBcgAygLMhIuYnVmLnZhbGlkYXRlLlJ1bGUSEAoIcmVxdWlyZWQYGSABKAgSJAoGaWdub3JlGBsgASgOMhQuYnVmLnZhbGlkYXRlLklnbm9yZRIpCgVmbG9hdBgBIAEoCzIYLmJ1Zi52YWxpZGF0ZS5GbG9hdFJ1bGVzSAASKwoGZG91YmxlGAIgASgLMhkuYnVmLnZhbGlkYXRlLkRvdWJsZVJ1bGVzSAASKQoFaW50MzIYAyABKAsyGC5idWYudmFsaWRhdGUuSW50MzJSdWxlc0gAEikKBWludDY0GAQgASgLMhguYnVmLnZhbGlkYXRlLkludDY0UnVsZXNIABIrCgZ1aW50MzIYBSABKAsyGS5idWYudmFsaWRhdGUuVUludDMyUnVsZXNIABIrCgZ1aW50NjQYBiABKAsyGS5idWYudmFsaWRhdGUuVUludDY0UnVsZXNIABIrCgZzaW50MzIYByABKAsyGS5idWYudmFsaWRhdGUuU0ludDMyUnVsZXNIABIrCgZzaW50NjQYCCABKAsyGS5idWYudmFsaWRhdGUuU0ludDY0UnVsZXNIABItCgdmaXhlZDMyGAkgASgLMhouYnVmLnZhbGlkYXRlLkZpeGVkMzJSdWxlc0gAEi0KB2ZpeGVkNjQYCiABKAsyGi5idWYudmFsaWRhdGUuRml4ZWQ2NFJ1bGVzSAASLwoIc2ZpeGVkMzIYCyABKAsyGy5idWYudmFsaWRhdGUuU0ZpeGVkMzJSdWxlc0gAEi8KCHNmaXhlZDY0GAwgASgLMhsuYnVmLnZhbGlkYXRlLlNGaXhlZDY0UnVsZXNIABInCgRib29sGA0gASgLMhcuYnVmLnZhbGlkYXRlLkJvb2xSdWxlc0gAEisKBnN0cmluZxgOIAEoCzIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlc0gAEikKBWJ5dGVzGA8gASgLMhguYnVmLnZhbGlkYXRlLkJ5dGVzUnVsZXNIABInCgRlbnVtGBAgASgLMhcuYnVmLnZhbGlkYXRlLkVudW1SdWxlc0gAEi8KCHJlcGVhdGVkGBIgASgLMhsuYnVmLnZhbGlkYXRlLlJlcGVhdGVkUnVsZXNIABIlCgNtYXAYEyABKAsyFi5idWYudmFsaWRhdGUuTWFwUnVsZXNIABIlCgNhbnkYFCABKAsyFi5idWYudmFsaWRhdGUuQW55UnVsZXNIABIvCghkdXJhdGlvbhgVIAEoCzIbLmJ1Zi52YWxpZGF0ZS5EdXJhdGlvblJ1bGVzSAASMgoKZmllbGRfbWFzaxgcIAEoCzIcLmJ1Zi52YWxpZGF0ZS5GaWVsZE1hc2tSdWxlc0gAEjEKCXRpbWVzdGFtcBgWIAEoCzIcLmJ1Zi52YWxpZGF0ZS5UaW1lc3RhbXBSdWxlc0gAQgYKBHR5cGVKBAgYEBlKBAgaEBtSB3NraXBwZWRSDGlnbm9yZV9lbXB0eSJVCg9QcmVkZWZpbmVkUnVsZXMSHwoDY2VsGAEgAygLMhIuYnVmLnZhbGlkYXRlLlJ1bGVKBAgYEBlKBAgaEBtSB3NraXBwZWRSDGlnbm9yZV9lbXB0eSL4FgoKRmxvYXRSdWxlcxJ9CgVjb25zdBgBIAEoAkJuwkhrCmkKC2Zsb2F0LmNvbnN0Glp0aGlzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKSA/ICdtdXN0IGVxdWFsICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycSmQEKAmx0GAIgASgCQooBwkiGAQqDAQoIZmxvYXQubHQadyFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPj0gcnVsZXMubHQpPyAnbXVzdCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSAASqQEKA2x0ZRgDIAEoAkKZAcJIlQEKkgEKCWZsb2F0Lmx0ZRqEASFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPiBydWxlcy5sdGUpPyAnbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEtAHCgJndBgEIAEoAkLBB8JIvQcKhgEKCGZsb2F0Lmd0GnohaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwq9AQoLZmxvYXQuZ3RfbHQarQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrHAQoVZmxvYXQuZ3RfbHRfZXhjbHVzaXZlGq0BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmICh0aGlzLmlzTmFuKCkgfHwgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCkpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKzQEKDGZsb2F0Lmd0X2x0ZRq8AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCtcBChZmbG9hdC5ndF9sdGVfZXhjbHVzaXZlGrwBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHRoaXMuaXNOYW4oKSB8fCAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARKcCAoDZ3RlGAUgASgCQowIwkiICAqVAQoJZmxvYXQuZ3RlGocBIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCswBCgxmbG9hdC5ndGVfbHQauwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCtYBChZmbG9hdC5ndGVfbHRfZXhjbHVzaXZlGrsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAodGhpcy5pc05hbigpIHx8IChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrcAQoNZmxvYXQuZ3RlX2x0ZRrKAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK5gEKF2Zsb2F0Lmd0ZV9sdGVfZXhjbHVzaXZlGsoBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYmICh0aGlzLmlzTmFuKCkgfHwgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSkpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gBEnkKAmluGAYgAygCQm3CSGoKaAoIZmxvYXQuaW4aXCEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ211c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnAKBm5vdF9pbhgHIAMoAkJgwkhdClsKDGZsb2F0Lm5vdF9pbhpLdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAnbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEm8KBmZpbml0ZRgIIAEoCEJfwkhcCloKDGZsb2F0LmZpbml0ZRpKcnVsZXMuZmluaXRlID8gKHRoaXMuaXNOYW4oKSB8fCB0aGlzLmlzSW5mKCkgPyAnbXVzdCBiZSBmaW5pdGUnIDogJycpIDogJycSKwoHZXhhbXBsZRgJIAMoAkIawkgXChUKDWZsb2F0LmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAkILCglsZXNzX3RoYW5CDgoMZ3JlYXRlcl90aGFuIooXCgtEb3VibGVSdWxlcxJ+CgVjb25zdBgBIAEoAUJvwkhsCmoKDGRvdWJsZS5jb25zdBpadGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAnbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEpoBCgJsdBgCIAEoAUKLAcJIhwEKhAEKCWRvdWJsZS5sdBp3IWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+PSBydWxlcy5sdCk/ICdtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKqAQoDbHRlGAMgASgBQpoBwkiWAQqTAQoKZG91YmxlLmx0ZRqEASFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPiBydWxlcy5sdGUpPyAnbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEtUHCgJndBgEIAEoAULGB8JIwgcKhwEKCWRvdWJsZS5ndBp6IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKvgEKDGRvdWJsZS5ndF9sdBqtAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCsgBChZkb3VibGUuZ3RfbHRfZXhjbHVzaXZlGq0BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmICh0aGlzLmlzTmFuKCkgfHwgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCkpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKzgEKDWRvdWJsZS5ndF9sdGUavAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrYAQoXZG91YmxlLmd0X2x0ZV9leGNsdXNpdmUavAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAodGhpcy5pc05hbigpIHx8IChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEqEICgNndGUYBSABKAFCkQjCSI0ICpYBCgpkb3VibGUuZ3RlGocBIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCs0BCg1kb3VibGUuZ3RlX2x0GrsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrXAQoXZG91YmxlLmd0ZV9sdF9leGNsdXNpdmUauwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmICh0aGlzLmlzTmFuKCkgfHwgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSkpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCt0BCg5kb3VibGUuZ3RlX2x0ZRrKAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK5wEKGGRvdWJsZS5ndGVfbHRlX2V4Y2x1c2l2ZRrKAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAodGhpcy5pc05hbigpIHx8IChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ6CgJpbhgGIAMoAUJuwkhrCmkKCWRvdWJsZS5pbhpcISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAnbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycScQoGbm90X2luGAcgAygBQmHCSF4KXAoNZG91YmxlLm5vdF9pbhpLdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAnbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEnAKBmZpbml0ZRgIIAEoCEJgwkhdClsKDWRvdWJsZS5maW5pdGUaSnJ1bGVzLmZpbml0ZSA/ICh0aGlzLmlzTmFuKCkgfHwgdGhpcy5pc0luZigpID8gJ211c3QgYmUgZmluaXRlJyA6ICcnKSA6ICcnEiwKB2V4YW1wbGUYCSADKAFCG8JIGAoWCg5kb3VibGUuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4isBQKCkludDMyUnVsZXMSfQoFY29uc3QYASABKAVCbsJIawppCgtpbnQzMi5jb25zdBpadGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAnbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEoQBCgJsdBgCIAEoBUJ2wkhzCnEKCGludDMyLmx0GmUhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ211c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEpUBCgNsdGUYAyABKAVChQHCSIEBCn8KCWludDMyLmx0ZRpyIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICdtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAAS+QYKAmd0GAQgASgFQuoGwkjmBgp0CghpbnQzMi5ndBpoIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKrQEKC2ludDMyLmd0X2x0Gp0BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq1AQoVaW50MzIuZ3RfbHRfZXhjbHVzaXZlGpsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvQEKDGludDMyLmd0X2x0ZRqsAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycKxQEKFmludDMyLmd0X2x0ZV9leGNsdXNpdmUaqgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEsUHCgNndGUYBSABKAVCtQfCSLEHCoIBCglpbnQzMi5ndGUadSFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwq8AQoMaW50MzIuZ3RlX2x0GqsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCsQBChZpbnQzMi5ndGVfbHRfZXhjbHVzaXZlGqkBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrMAQoNaW50MzIuZ3RlX2x0ZRq6AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrUAQoXaW50MzIuZ3RlX2x0ZV9leGNsdXNpdmUauAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESeQoCaW4YBiADKAVCbcJIagpoCghpbnQzMi5pbhpcISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAnbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycScAoGbm90X2luGAcgAygFQmDCSF0KWwoMaW50MzIubm90X2luGkt0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICdtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSKwoHZXhhbXBsZRgIIAMoBUIawkgXChUKDWludDMyLmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAkILCglsZXNzX3RoYW5CDgoMZ3JlYXRlcl90aGFuIrAUCgpJbnQ2NFJ1bGVzEn0KBWNvbnN0GAEgASgDQm7CSGsKaQoLaW50NjQuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKEAQoCbHQYAiABKANCdsJIcwpxCghpbnQ2NC5sdBplIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICdtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKVAQoDbHRlGAMgASgDQoUBwkiBAQp/CglpbnQ2NC5sdGUaciFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID4gcnVsZXMubHRlPyAnbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEvkGCgJndBgEIAEoA0LqBsJI5gYKdAoIaW50NjQuZ3QaaCFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCq0BCgtpbnQ2NC5ndF9sdBqdAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKtQEKFWludDY0Lmd0X2x0X2V4Y2x1c2l2ZRqbAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndCAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCr0BCgxpbnQ2NC5ndF9sdGUarAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCsUBChZpbnQ2NC5ndF9sdGVfZXhjbHVzaXZlGqoBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLFBwoDZ3RlGAUgASgDQrUHwkixBwqCAQoJaW50NjQuZ3RlGnUhaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVzLmd0ZT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycKvAEKDGludDY0Lmd0ZV9sdBqrAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3RlICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrEAQoWaW50NjQuZ3RlX2x0X2V4Y2x1c2l2ZRqpAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKzAEKDWludDY0Lmd0ZV9sdGUaugFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK1AEKF2ludDY0Lmd0ZV9sdGVfZXhjbHVzaXZlGrgBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gBEnkKAmluGAYgAygDQm3CSGoKaAoIaW50NjQuaW4aXCEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ211c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnAKBm5vdF9pbhgHIAMoA0JgwkhdClsKDGludDY0Lm5vdF9pbhpLdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAnbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEisKB2V4YW1wbGUYCSADKANCGsJIFwoVCg1pbnQ2NC5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbiLCFAoLVUludDMyUnVsZXMSfgoFY29uc3QYASABKA1Cb8JIbApqCgx1aW50MzIuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKFAQoCbHQYAiABKA1Cd8JIdApyCgl1aW50MzIubHQaZSFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID49IHJ1bGVzLmx0PyAnbXVzdCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSAASlwEKA2x0ZRgDIAEoDUKHAcJIgwEKgAEKCnVpbnQzMi5sdGUaciFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID4gcnVsZXMubHRlPyAnbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEv4GCgJndBgEIAEoDULvBsJI6wYKdQoJdWludDMyLmd0GmghaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwquAQoMdWludDMyLmd0X2x0Gp0BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq2AQoWdWludDMyLmd0X2x0X2V4Y2x1c2l2ZRqbAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndCAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCr4BCg11aW50MzIuZ3RfbHRlGqwBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrGAQoXdWludDMyLmd0X2x0ZV9leGNsdXNpdmUaqgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEsoHCgNndGUYBSABKA1CugfCSLYHCoMBCgp1aW50MzIuZ3RlGnUhaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVzLmd0ZT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycKvQEKDXVpbnQzMi5ndGVfbHQaqwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKxQEKF3VpbnQzMi5ndGVfbHRfZXhjbHVzaXZlGqkBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrNAQoOdWludDMyLmd0ZV9sdGUaugFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK1QEKGHVpbnQzMi5ndGVfbHRlX2V4Y2x1c2l2ZRq4AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ6CgJpbhgGIAMoDUJuwkhrCmkKCXVpbnQzMi5pbhpcISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAnbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycScQoGbm90X2luGAcgAygNQmHCSF4KXAoNdWludDMyLm5vdF9pbhpLdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAnbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEiwKB2V4YW1wbGUYCCADKA1CG8JIGAoWCg51aW50MzIuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4iwhQKC1VJbnQ2NFJ1bGVzEn4KBWNvbnN0GAEgASgEQm/CSGwKagoMdWludDY0LmNvbnN0Glp0aGlzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKSA/ICdtdXN0IGVxdWFsICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycShQEKAmx0GAIgASgEQnfCSHQKcgoJdWludDY0Lmx0GmUhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ211c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEpcBCgNsdGUYAyABKARChwHCSIMBCoABCgp1aW50NjQubHRlGnIhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ211c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABL+BgoCZ3QYBCABKARC7wbCSOsGCnUKCXVpbnQ2NC5ndBpoIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKrgEKDHVpbnQ2NC5ndF9sdBqdAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKtgEKFnVpbnQ2NC5ndF9sdF9leGNsdXNpdmUamwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq+AQoNdWludDY0Lmd0X2x0ZRqsAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycKxgEKF3VpbnQ2NC5ndF9sdGVfZXhjbHVzaXZlGqoBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLKBwoDZ3RlGAUgASgEQroHwki2BwqDAQoKdWludDY0Lmd0ZRp1IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCr0BCg11aW50NjQuZ3RlX2x0GqsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCsUBChd1aW50NjQuZ3RlX2x0X2V4Y2x1c2l2ZRqpAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKzQEKDnVpbnQ2NC5ndGVfbHRlGroBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCtUBChh1aW50NjQuZ3RlX2x0ZV9leGNsdXNpdmUauAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESegoCaW4YBiADKARCbsJIawppCgl1aW50NjQuaW4aXCEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ211c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnEKBm5vdF9pbhgHIAMoBEJhwkheClwKDXVpbnQ2NC5ub3RfaW4aS3RoaXMgaW4gcnVsZXMubm90X2luID8gJ211c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJxIsCgdleGFtcGxlGAggAygEQhvCSBgKFgoOdWludDY0LmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAkILCglsZXNzX3RoYW5CDgoMZ3JlYXRlcl90aGFuIsIUCgtTSW50MzJSdWxlcxJ+CgVjb25zdBgBIAEoEUJvwkhsCmoKDHNpbnQzMi5jb25zdBpadGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAnbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEoUBCgJsdBgCIAEoEUJ3wkh0CnIKCXNpbnQzMi5sdBplIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICdtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKXAQoDbHRlGAMgASgRQocBwkiDAQqAAQoKc2ludDMyLmx0ZRpyIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICdtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAAS/gYKAmd0GAQgASgRQu8GwkjrBgp1CglzaW50MzIuZ3QaaCFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCq4BCgxzaW50MzIuZ3RfbHQanQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCrYBChZzaW50MzIuZ3RfbHRfZXhjbHVzaXZlGpsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvgEKDXNpbnQzMi5ndF9sdGUarAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCsYBChdzaW50MzIuZ3RfbHRlX2V4Y2x1c2l2ZRqqAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAESygcKA2d0ZRgFIAEoEUK6B8JItgcKgwEKCnNpbnQzMi5ndGUadSFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwq9AQoNc2ludDMyLmd0ZV9sdBqrAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3RlICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrFAQoXc2ludDMyLmd0ZV9sdF9leGNsdXNpdmUaqQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCs0BCg5zaW50MzIuZ3RlX2x0ZRq6AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrVAQoYc2ludDMyLmd0ZV9sdGVfZXhjbHVzaXZlGrgBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gBEnoKAmluGAYgAygRQm7CSGsKaQoJc2ludDMyLmluGlwhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICdtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJxCgZub3RfaW4YByADKBFCYcJIXgpcCg1zaW50MzIubm90X2luGkt0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICdtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSLAoHZXhhbXBsZRgIIAMoEUIbwkgYChYKDnNpbnQzMi5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbiLCFAoLU0ludDY0UnVsZXMSfgoFY29uc3QYASABKBJCb8JIbApqCgxzaW50NjQuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKFAQoCbHQYAiABKBJCd8JIdApyCglzaW50NjQubHQaZSFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID49IHJ1bGVzLmx0PyAnbXVzdCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSAASlwEKA2x0ZRgDIAEoEkKHAcJIgwEKgAEKCnNpbnQ2NC5sdGUaciFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID4gcnVsZXMubHRlPyAnbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEv4GCgJndBgEIAEoEkLvBsJI6wYKdQoJc2ludDY0Lmd0GmghaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwquAQoMc2ludDY0Lmd0X2x0Gp0BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq2AQoWc2ludDY0Lmd0X2x0X2V4Y2x1c2l2ZRqbAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndCAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCr4BCg1zaW50NjQuZ3RfbHRlGqwBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrGAQoXc2ludDY0Lmd0X2x0ZV9leGNsdXNpdmUaqgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEsoHCgNndGUYBSABKBJCugfCSLYHCoMBCgpzaW50NjQuZ3RlGnUhaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVzLmd0ZT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycKvQEKDXNpbnQ2NC5ndGVfbHQaqwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKxQEKF3NpbnQ2NC5ndGVfbHRfZXhjbHVzaXZlGqkBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrNAQoOc2ludDY0Lmd0ZV9sdGUaugFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK1QEKGHNpbnQ2NC5ndGVfbHRlX2V4Y2x1c2l2ZRq4AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ6CgJpbhgGIAMoEkJuwkhrCmkKCXNpbnQ2NC5pbhpcISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAnbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycScQoGbm90X2luGAcgAygSQmHCSF4KXAoNc2ludDY0Lm5vdF9pbhpLdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAnbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEiwKB2V4YW1wbGUYCCADKBJCG8JIGAoWCg5zaW50NjQuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4i0xQKDEZpeGVkMzJSdWxlcxJ/CgVjb25zdBgBIAEoB0JwwkhtCmsKDWZpeGVkMzIuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKGAQoCbHQYAiABKAdCeMJIdQpzCgpmaXhlZDMyLmx0GmUhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ211c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEpgBCgNsdGUYAyABKAdCiAHCSIQBCoEBCgtmaXhlZDMyLmx0ZRpyIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICdtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASgwcKAmd0GAQgASgHQvQGwkjwBgp2CgpmaXhlZDMyLmd0GmghaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwqvAQoNZml4ZWQzMi5ndF9sdBqdAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKtwEKF2ZpeGVkMzIuZ3RfbHRfZXhjbHVzaXZlGpsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvwEKDmZpeGVkMzIuZ3RfbHRlGqwBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrHAQoYZml4ZWQzMi5ndF9sdGVfZXhjbHVzaXZlGqoBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLPBwoDZ3RlGAUgASgHQr8Hwki7BwqEAQoLZml4ZWQzMi5ndGUadSFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwq+AQoOZml4ZWQzMi5ndGVfbHQaqwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKxgEKGGZpeGVkMzIuZ3RlX2x0X2V4Y2x1c2l2ZRqpAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKzgEKD2ZpeGVkMzIuZ3RlX2x0ZRq6AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrWAQoZZml4ZWQzMi5ndGVfbHRlX2V4Y2x1c2l2ZRq4AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ7CgJpbhgGIAMoB0JvwkhsCmoKCmZpeGVkMzIuaW4aXCEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ211c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnIKBm5vdF9pbhgHIAMoB0JiwkhfCl0KDmZpeGVkMzIubm90X2luGkt0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICdtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSLQoHZXhhbXBsZRgIIAMoB0IcwkgZChcKD2ZpeGVkMzIuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4i0xQKDEZpeGVkNjRSdWxlcxJ/CgVjb25zdBgBIAEoBkJwwkhtCmsKDWZpeGVkNjQuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKGAQoCbHQYAiABKAZCeMJIdQpzCgpmaXhlZDY0Lmx0GmUhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ211c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEpgBCgNsdGUYAyABKAZCiAHCSIQBCoEBCgtmaXhlZDY0Lmx0ZRpyIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICdtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASgwcKAmd0GAQgASgGQvQGwkjwBgp2CgpmaXhlZDY0Lmd0GmghaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwqvAQoNZml4ZWQ2NC5ndF9sdBqdAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKtwEKF2ZpeGVkNjQuZ3RfbHRfZXhjbHVzaXZlGpsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvwEKDmZpeGVkNjQuZ3RfbHRlGqwBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrHAQoYZml4ZWQ2NC5ndF9sdGVfZXhjbHVzaXZlGqoBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLPBwoDZ3RlGAUgASgGQr8Hwki7BwqEAQoLZml4ZWQ2NC5ndGUadSFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwq+AQoOZml4ZWQ2NC5ndGVfbHQaqwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKxgEKGGZpeGVkNjQuZ3RlX2x0X2V4Y2x1c2l2ZRqpAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKzgEKD2ZpeGVkNjQuZ3RlX2x0ZRq6AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrWAQoZZml4ZWQ2NC5ndGVfbHRlX2V4Y2x1c2l2ZRq4AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ7CgJpbhgGIAMoBkJvwkhsCmoKCmZpeGVkNjQuaW4aXCEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ211c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnIKBm5vdF9pbhgHIAMoBkJiwkhfCl0KDmZpeGVkNjQubm90X2luGkt0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICdtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSLQoHZXhhbXBsZRgIIAMoBkIcwkgZChcKD2ZpeGVkNjQuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4i5RQKDVNGaXhlZDMyUnVsZXMSgAEKBWNvbnN0GAEgASgPQnHCSG4KbAoOc2ZpeGVkMzIuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKHAQoCbHQYAiABKA9CecJIdgp0CgtzZml4ZWQzMi5sdBplIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICdtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKZAQoDbHRlGAMgASgPQokBwkiFAQqCAQoMc2ZpeGVkMzIubHRlGnIhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ211c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABKIBwoCZ3QYBCABKA9C+QbCSPUGCncKC3NmaXhlZDMyLmd0GmghaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwqwAQoOc2ZpeGVkMzIuZ3RfbHQanQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCrgBChhzZml4ZWQzMi5ndF9sdF9leGNsdXNpdmUamwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrAAQoPc2ZpeGVkMzIuZ3RfbHRlGqwBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrIAQoZc2ZpeGVkMzIuZ3RfbHRlX2V4Y2x1c2l2ZRqqAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAES1AcKA2d0ZRgFIAEoD0LEB8JIwAcKhQEKDHNmaXhlZDMyLmd0ZRp1IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCr8BCg9zZml4ZWQzMi5ndGVfbHQaqwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKxwEKGXNmaXhlZDMyLmd0ZV9sdF9leGNsdXNpdmUaqQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCs8BChBzZml4ZWQzMi5ndGVfbHRlGroBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCtcBChpzZml4ZWQzMi5ndGVfbHRlX2V4Y2x1c2l2ZRq4AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ8CgJpbhgGIAMoD0JwwkhtCmsKC3NmaXhlZDMyLmluGlwhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICdtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJzCgZub3RfaW4YByADKA9CY8JIYApeCg9zZml4ZWQzMi5ub3RfaW4aS3RoaXMgaW4gcnVsZXMubm90X2luID8gJ211c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJxIuCgdleGFtcGxlGAggAygPQh3CSBoKGAoQc2ZpeGVkMzIuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4i5RQKDVNGaXhlZDY0UnVsZXMSgAEKBWNvbnN0GAEgASgQQnHCSG4KbAoOc2ZpeGVkNjQuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKHAQoCbHQYAiABKBBCecJIdgp0CgtzZml4ZWQ2NC5sdBplIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICdtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKZAQoDbHRlGAMgASgQQokBwkiFAQqCAQoMc2ZpeGVkNjQubHRlGnIhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ211c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABKIBwoCZ3QYBCABKBBC+QbCSPUGCncKC3NmaXhlZDY0Lmd0GmghaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwqwAQoOc2ZpeGVkNjQuZ3RfbHQanQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCrgBChhzZml4ZWQ2NC5ndF9sdF9leGNsdXNpdmUamwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrAAQoPc2ZpeGVkNjQuZ3RfbHRlGqwBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrIAQoZc2ZpeGVkNjQuZ3RfbHRlX2V4Y2x1c2l2ZRqqAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAES1AcKA2d0ZRgFIAEoEELEB8JIwAcKhQEKDHNmaXhlZDY0Lmd0ZRp1IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCr8BCg9zZml4ZWQ2NC5ndGVfbHQaqwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKxwEKGXNmaXhlZDY0Lmd0ZV9sdF9leGNsdXNpdmUaqQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCs8BChBzZml4ZWQ2NC5ndGVfbHRlGroBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCtcBChpzZml4ZWQ2NC5ndGVfbHRlX2V4Y2x1c2l2ZRq4AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ8CgJpbhgGIAMoEEJwwkhtCmsKC3NmaXhlZDY0LmluGlwhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICdtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJzCgZub3RfaW4YByADKBBCY8JIYApeCg9zZml4ZWQ2NC5ub3RfaW4aS3RoaXMgaW4gcnVsZXMubm90X2luID8gJ211c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJxIuCgdleGFtcGxlGAggAygQQh3CSBoKGAoQc2ZpeGVkNjQuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4iwAEKCUJvb2xSdWxlcxJ8CgVjb25zdBgBIAEoCEJtwkhqCmgKCmJvb2wuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxIqCgdleGFtcGxlGAIgAygIQhnCSBYKFAoMYm9vbC5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAIi6jwKC1N0cmluZ1J1bGVzEoABCgVjb25zdBgBIAEoCUJxwkhuCmwKDHN0cmluZy5jb25zdBpcdGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAnbXVzdCBlcXVhbCBgJXNgJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycScQoDbGVuGBMgASgEQmTCSGEKXwoKc3RyaW5nLmxlbhpRdWludCh0aGlzLnNpemUoKSkgIT0gcnVsZXMubGVuID8gJ211c3QgYmUgJXMgY2hhcmFjdGVycycuZm9ybWF0KFtydWxlcy5sZW5dKSA6ICcnEokBCgdtaW5fbGVuGAIgASgEQnjCSHUKcwoOc3RyaW5nLm1pbl9sZW4aYXVpbnQodGhpcy5zaXplKCkpIDwgcnVsZXMubWluX2xlbiA/ICdtdXN0IGJlIGF0IGxlYXN0ICVzIGNoYXJhY3RlcnMnLmZvcm1hdChbcnVsZXMubWluX2xlbl0pIDogJycSiAEKB21heF9sZW4YAyABKARCd8JIdApyCg5zdHJpbmcubWF4X2xlbhpgdWludCh0aGlzLnNpemUoKSkgPiBydWxlcy5tYXhfbGVuID8gJ211c3QgYmUgYXQgbW9zdCAlcyBjaGFyYWN0ZXJzJy5mb3JtYXQoW3J1bGVzLm1heF9sZW5dKSA6ICcnEosBCglsZW5fYnl0ZXMYFCABKARCeMJIdQpzChBzdHJpbmcubGVuX2J5dGVzGl91aW50KGJ5dGVzKHRoaXMpLnNpemUoKSkgIT0gcnVsZXMubGVuX2J5dGVzID8gJ211c3QgYmUgJXMgYnl0ZXMnLmZvcm1hdChbcnVsZXMubGVuX2J5dGVzXSkgOiAnJxKUAQoJbWluX2J5dGVzGAQgASgEQoABwkh9CnsKEHN0cmluZy5taW5fYnl0ZXMaZ3VpbnQoYnl0ZXModGhpcykuc2l6ZSgpKSA8IHJ1bGVzLm1pbl9ieXRlcyA/ICdtdXN0IGJlIGF0IGxlYXN0ICVzIGJ5dGVzJy5mb3JtYXQoW3J1bGVzLm1pbl9ieXRlc10pIDogJycSkgEKCW1heF9ieXRlcxgFIAEoBEJ/wkh8CnoKEHN0cmluZy5tYXhfYnl0ZXMaZnVpbnQoYnl0ZXModGhpcykuc2l6ZSgpKSA+IHJ1bGVzLm1heF9ieXRlcyA/ICdtdXN0IGJlIGF0IG1vc3QgJXMgYnl0ZXMnLmZvcm1hdChbcnVsZXMubWF4X2J5dGVzXSkgOiAnJxKHAQoHcGF0dGVybhgGIAEoCUJ2wkhzCnEKDnN0cmluZy5wYXR0ZXJuGl8hdGhpcy5tYXRjaGVzKHJ1bGVzLnBhdHRlcm4pID8gJ2RvZXMgbm90IG1hdGNoIHJlZ2V4IHBhdHRlcm4gYCVzYCcuZm9ybWF0KFtydWxlcy5wYXR0ZXJuXSkgOiAnJxJ+CgZwcmVmaXgYByABKAlCbsJIawppCg1zdHJpbmcucHJlZml4GlghdGhpcy5zdGFydHNXaXRoKHJ1bGVzLnByZWZpeCkgPyAnZG9lcyBub3QgaGF2ZSBwcmVmaXggYCVzYCcuZm9ybWF0KFtydWxlcy5wcmVmaXhdKSA6ICcnEnwKBnN1ZmZpeBgIIAEoCUJswkhpCmcKDXN0cmluZy5zdWZmaXgaViF0aGlzLmVuZHNXaXRoKHJ1bGVzLnN1ZmZpeCkgPyAnZG9lcyBub3QgaGF2ZSBzdWZmaXggYCVzYCcuZm9ybWF0KFtydWxlcy5zdWZmaXhdKSA6ICcnEooBCghjb250YWlucxgJIAEoCUJ4wkh1CnMKD3N0cmluZy5jb250YWlucxpgIXRoaXMuY29udGFpbnMocnVsZXMuY29udGFpbnMpID8gJ2RvZXMgbm90IGNvbnRhaW4gc3Vic3RyaW5nIGAlc2AnLmZvcm1hdChbcnVsZXMuY29udGFpbnNdKSA6ICcnEpEBCgxub3RfY29udGFpbnMYFyABKAlCe8JIeAp2ChNzdHJpbmcubm90X2NvbnRhaW5zGl90aGlzLmNvbnRhaW5zKHJ1bGVzLm5vdF9jb250YWlucykgPyAnY29udGFpbnMgc3Vic3RyaW5nIGAlc2AnLmZvcm1hdChbcnVsZXMubm90X2NvbnRhaW5zXSkgOiAnJxJ6CgJpbhgKIAMoCUJuwkhrCmkKCXN0cmluZy5pbhpcISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAnbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycScQoGbm90X2luGAsgAygJQmHCSF4KXAoNc3RyaW5nLm5vdF9pbhpLdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAnbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEtkBCgVlbWFpbBgMIAEoCELHAcJIwwEKWwoMc3RyaW5nLmVtYWlsEh1tdXN0IGJlIGEgdmFsaWQgZW1haWwgYWRkcmVzcxosIXJ1bGVzLmVtYWlsIHx8IHRoaXMgPT0gJycgfHwgdGhpcy5pc0VtYWlsKCkKZAoSc3RyaW5nLmVtYWlsX2VtcHR5EjJ2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgZW1haWwgYWRkcmVzcxoaIXJ1bGVzLmVtYWlsIHx8IHRoaXMgIT0gJydIABLhAQoIaG9zdG5hbWUYDSABKAhCzAHCSMgBCl8KD3N0cmluZy5ob3N0bmFtZRIYbXVzdCBiZSBhIHZhbGlkIGhvc3RuYW1lGjIhcnVsZXMuaG9zdG5hbWUgfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzSG9zdG5hbWUoKQplChVzdHJpbmcuaG9zdG5hbWVfZW1wdHkSLXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBob3N0bmFtZRodIXJ1bGVzLmhvc3RuYW1lIHx8IHRoaXMgIT0gJydIABLBAQoCaXAYDiABKAhCsgHCSK4BCk8KCXN0cmluZy5pcBIabXVzdCBiZSBhIHZhbGlkIElQIGFkZHJlc3MaJiFydWxlcy5pcCB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcCgpClsKD3N0cmluZy5pcF9lbXB0eRIvdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQIGFkZHJlc3MaFyFydWxlcy5pcCB8fCB0aGlzICE9ICcnSAAS0AEKBGlwdjQYDyABKAhCvwHCSLsBClYKC3N0cmluZy5pcHY0EhxtdXN0IGJlIGEgdmFsaWQgSVB2NCBhZGRyZXNzGikhcnVsZXMuaXB2NCB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcCg0KQphChFzdHJpbmcuaXB2NF9lbXB0eRIxdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQdjQgYWRkcmVzcxoZIXJ1bGVzLmlwdjQgfHwgdGhpcyAhPSAnJ0gAEtABCgRpcHY2GBAgASgIQr8Bwki7AQpWCgtzdHJpbmcuaXB2NhIcbXVzdCBiZSBhIHZhbGlkIElQdjYgYWRkcmVzcxopIXJ1bGVzLmlwdjYgfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzSXAoNikKYQoRc3RyaW5nLmlwdjZfZW1wdHkSMXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBJUHY2IGFkZHJlc3MaGSFydWxlcy5pcHY2IHx8IHRoaXMgIT0gJydIABK5AQoDdXJpGBEgASgIQqkBwkilAQpLCgpzdHJpbmcudXJpEhNtdXN0IGJlIGEgdmFsaWQgVVJJGighcnVsZXMudXJpIHx8IHRoaXMgPT0gJycgfHwgdGhpcy5pc1VyaSgpClYKEHN0cmluZy51cmlfZW1wdHkSKHZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBVUkkaGCFydWxlcy51cmkgfHwgdGhpcyAhPSAnJ0gAEmoKB3VyaV9yZWYYEiABKAhCV8JIVApSCg5zdHJpbmcudXJpX3JlZhIdbXVzdCBiZSBhIHZhbGlkIFVSSSBSZWZlcmVuY2UaISFydWxlcy51cmlfcmVmIHx8IHRoaXMuaXNVcmlSZWYoKUgAEokCCgdhZGRyZXNzGBUgASgIQvUBwkjxAQp7Cg5zdHJpbmcuYWRkcmVzcxInbXVzdCBiZSBhIHZhbGlkIGhvc3RuYW1lLCBvciBpcCBhZGRyZXNzGkAhcnVsZXMuYWRkcmVzcyB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNIb3N0bmFtZSgpIHx8IHRoaXMuaXNJcCgpCnIKFHN0cmluZy5hZGRyZXNzX2VtcHR5Ejx2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgaG9zdG5hbWUsIG9yIGlwIGFkZHJlc3MaHCFydWxlcy5hZGRyZXNzIHx8IHRoaXMgIT0gJydIABKSAgoEdXVpZBgWIAEoCEKBAsJI/QEKnwEKC3N0cmluZy51dWlkEhRtdXN0IGJlIGEgdmFsaWQgVVVJRBp6IXJ1bGVzLnV1aWQgfHwgdGhpcyA9PSAnJyB8fCB0aGlzLm1hdGNoZXMoJ15bMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0kJykKWQoRc3RyaW5nLnV1aWRfZW1wdHkSKXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBVVUlEGhkhcnVsZXMudXVpZCB8fCB0aGlzICE9ICcnSAAS6gEKBXR1dWlkGCEgASgIQtgBwkjUAQptCgxzdHJpbmcudHV1aWQSHG11c3QgYmUgYSB2YWxpZCB0cmltbWVkIFVVSUQaPyFydWxlcy50dXVpZCB8fCB0aGlzID09ICcnIHx8IHRoaXMubWF0Y2hlcygnXlswLTlhLWZBLUZdezMyfSQnKQpjChJzdHJpbmcudHV1aWRfZW1wdHkSMXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCB0cmltbWVkIFVVSUQaGiFydWxlcy50dXVpZCB8fCB0aGlzICE9ICcnSAASkAIKEWlwX3dpdGhfcHJlZml4bGVuGBogASgIQvIBwkjuAQpyChhzdHJpbmcuaXBfd2l0aF9wcmVmaXhsZW4SGW11c3QgYmUgYSB2YWxpZCBJUCBwcmVmaXgaOyFydWxlcy5pcF93aXRoX3ByZWZpeGxlbiB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcFByZWZpeCgpCngKHnN0cmluZy5pcF93aXRoX3ByZWZpeGxlbl9lbXB0eRIudmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQIHByZWZpeBomIXJ1bGVzLmlwX3dpdGhfcHJlZml4bGVuIHx8IHRoaXMgIT0gJydIABLJAgoTaXB2NF93aXRoX3ByZWZpeGxlbhgbIAEoCEKpAsJIpQIKjQEKGnN0cmluZy5pcHY0X3dpdGhfcHJlZml4bGVuEi9tdXN0IGJlIGEgdmFsaWQgSVB2NCBhZGRyZXNzIHdpdGggcHJlZml4IGxlbmd0aBo+IXJ1bGVzLmlwdjRfd2l0aF9wcmVmaXhsZW4gfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzSXBQcmVmaXgoNCkKkgEKIHN0cmluZy5pcHY0X3dpdGhfcHJlZml4bGVuX2VtcHR5EkR2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVB2NCBhZGRyZXNzIHdpdGggcHJlZml4IGxlbmd0aBooIXJ1bGVzLmlwdjRfd2l0aF9wcmVmaXhsZW4gfHwgdGhpcyAhPSAnJ0gAEskCChNpcHY2X3dpdGhfcHJlZml4bGVuGBwgASgIQqkCwkilAgqNAQoac3RyaW5nLmlwdjZfd2l0aF9wcmVmaXhsZW4SL211c3QgYmUgYSB2YWxpZCBJUHY2IGFkZHJlc3Mgd2l0aCBwcmVmaXggbGVuZ3RoGj4hcnVsZXMuaXB2Nl93aXRoX3ByZWZpeGxlbiB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcFByZWZpeCg2KQqSAQogc3RyaW5nLmlwdjZfd2l0aF9wcmVmaXhsZW5fZW1wdHkSRHZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBJUHY2IGFkZHJlc3Mgd2l0aCBwcmVmaXggbGVuZ3RoGighcnVsZXMuaXB2Nl93aXRoX3ByZWZpeGxlbiB8fCB0aGlzICE9ICcnSAAS7AEKCWlwX3ByZWZpeBgdIAEoCELWAcJI0gEKZgoQc3RyaW5nLmlwX3ByZWZpeBIZbXVzdCBiZSBhIHZhbGlkIElQIHByZWZpeBo3IXJ1bGVzLmlwX3ByZWZpeCB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcFByZWZpeCh0cnVlKQpoChZzdHJpbmcuaXBfcHJlZml4X2VtcHR5Ei52YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVAgcHJlZml4Gh4hcnVsZXMuaXBfcHJlZml4IHx8IHRoaXMgIT0gJydIABL9AQoLaXB2NF9wcmVmaXgYHiABKAhC5QHCSOEBCm8KEnN0cmluZy5pcHY0X3ByZWZpeBIbbXVzdCBiZSBhIHZhbGlkIElQdjQgcHJlZml4GjwhcnVsZXMuaXB2NF9wcmVmaXggfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzSXBQcmVmaXgoNCwgdHJ1ZSkKbgoYc3RyaW5nLmlwdjRfcHJlZml4X2VtcHR5EjB2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVB2NCBwcmVmaXgaICFydWxlcy5pcHY0X3ByZWZpeCB8fCB0aGlzICE9ICcnSAAS/QEKC2lwdjZfcHJlZml4GB8gASgIQuUBwkjhAQpvChJzdHJpbmcuaXB2Nl9wcmVmaXgSG211c3QgYmUgYSB2YWxpZCBJUHY2IHByZWZpeBo8IXJ1bGVzLmlwdjZfcHJlZml4IHx8IHRoaXMgPT0gJycgfHwgdGhpcy5pc0lwUHJlZml4KDYsIHRydWUpCm4KGHN0cmluZy5pcHY2X3ByZWZpeF9lbXB0eRIwdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQdjYgcHJlZml4GiAhcnVsZXMuaXB2Nl9wcmVmaXggfHwgdGhpcyAhPSAnJ0gAEq8CCg1ob3N0X2FuZF9wb3J0GCAgASgIQpUCwkiRAgqTAQoUc3RyaW5nLmhvc3RfYW5kX3BvcnQSO211c3QgYmUgYSB2YWxpZCBob3N0IChob3N0bmFtZSBvciBJUCBhZGRyZXNzKSBhbmQgcG9ydCBwYWlyGj4hcnVsZXMuaG9zdF9hbmRfcG9ydCB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNIb3N0QW5kUG9ydCh0cnVlKQp5ChpzdHJpbmcuaG9zdF9hbmRfcG9ydF9lbXB0eRI3dmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIGhvc3QgYW5kIHBvcnQgcGFpchoiIXJ1bGVzLmhvc3RfYW5kX3BvcnQgfHwgdGhpcyAhPSAnJ0gAEu4BCgR1bGlkGCMgASgIQt0BwkjZAQp8CgtzdHJpbmcudWxpZBIUbXVzdCBiZSBhIHZhbGlkIFVMSUQaVyFydWxlcy51bGlkIHx8IHRoaXMgPT0gJycgfHwgdGhpcy5tYXRjaGVzKCdeWzAtN11bMC05QS1ISktNTlAtVFYtWmEtaGprbW5wLXR2LXpdezI1fSQnKQpZChFzdHJpbmcudWxpZF9lbXB0eRIpdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIFVMSUQaGSFydWxlcy51bGlkIHx8IHRoaXMgIT0gJydIABLUAgoMcHJvdG9idWZfZnFuGCUgASgIQrsCwki3AgqvAQoTc3RyaW5nLnByb3RvYnVmX2ZxbhItbXVzdCBiZSBhIHZhbGlkIGZ1bGx5LXF1YWxpZmllZCBQcm90b2J1ZiBuYW1lGmkhcnVsZXMucHJvdG9idWZfZnFuIHx8IHRoaXMgPT0gJycgfHwgdGhpcy5tYXRjaGVzKCdeW0EtWmEtel9dW0EtWmEtel8wLTldKihcXC5bQS1aYS16X11bQS1aYS16XzAtOV0qKSokJykKggEKGXN0cmluZy5wcm90b2J1Zl9mcW5fZW1wdHkSQnZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBmdWxseS1xdWFsaWZpZWQgUHJvdG9idWYgbmFtZRohIXJ1bGVzLnByb3RvYnVmX2ZxbiB8fCB0aGlzICE9ICcnSAASkQMKEHByb3RvYnVmX2RvdF9mcW4YJiABKAhC9ALCSPACCs0BChdzdHJpbmcucHJvdG9idWZfZG90X2ZxbhJAbXVzdCBiZSBhIHZhbGlkIGZ1bGx5LXF1YWxpZmllZCBQcm90b2J1ZiBuYW1lIHdpdGggYSBsZWFkaW5nIGRvdBpwIXJ1bGVzLnByb3RvYnVmX2RvdF9mcW4gfHwgdGhpcyA9PSAnJyB8fCB0aGlzLm1hdGNoZXMoJ15cXC5bQS1aYS16X11bQS1aYS16XzAtOV0qKFxcLltBLVphLXpfXVtBLVphLXpfMC05XSopKiQnKQqdAQodc3RyaW5nLnByb3RvYnVmX2RvdF9mcW5fZW1wdHkSVXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBmdWxseS1xdWFsaWZpZWQgUHJvdG9idWYgbmFtZSB3aXRoIGEgbGVhZGluZyBkb3QaJSFydWxlcy5wcm90b2J1Zl9kb3RfZnFuIHx8IHRoaXMgIT0gJydIABKcBQoQd2VsbF9rbm93bl9yZWdleBgYIAEoDjIYLmJ1Zi52YWxpZGF0ZS5Lbm93blJlZ2V4QuUEwkjhBArqAQojc3RyaW5nLndlbGxfa25vd25fcmVnZXguaGVhZGVyX25hbWUSIG11c3QgYmUgYSB2YWxpZCBIVFRQIGhlYWRlciBuYW1lGqABcnVsZXMud2VsbF9rbm93bl9yZWdleCAhPSAxIHx8IHRoaXMgPT0gJycgfHwgdGhpcy5tYXRjaGVzKCFoYXMocnVsZXMuc3RyaWN0KSB8fCBydWxlcy5zdHJpY3QgPydeOj9bMC05YS16QS1aISMkJSZcJyorLS5eX3x+XHg2MF0rJCcgOideW15cdTAwMDBcdTAwMEFcdTAwMERdKyQnKQqNAQopc3RyaW5nLndlbGxfa25vd25fcmVnZXguaGVhZGVyX25hbWVfZW1wdHkSNXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBIVFRQIGhlYWRlciBuYW1lGilydWxlcy53ZWxsX2tub3duX3JlZ2V4ICE9IDEgfHwgdGhpcyAhPSAnJwrhAQokc3RyaW5nLndlbGxfa25vd25fcmVnZXguaGVhZGVyX3ZhbHVlEiFtdXN0IGJlIGEgdmFsaWQgSFRUUCBoZWFkZXIgdmFsdWUalQFydWxlcy53ZWxsX2tub3duX3JlZ2V4ICE9IDIgfHwgdGhpcy5tYXRjaGVzKCFoYXMocnVsZXMuc3RyaWN0KSB8fCBydWxlcy5zdHJpY3QgPydeW15cdTAwMDAtXHUwMDA4XHUwMDBBLVx1MDAxRlx1MDA3Rl0qJCcgOideW15cdTAwMDBcdTAwMEFcdTAwMERdKiQnKUgAEg4KBnN0cmljdBgZIAEoCBIsCgdleGFtcGxlGCIgAygJQhvCSBgKFgoOc3RyaW5nLmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAkIMCgp3ZWxsX2tub3duIt0RCgpCeXRlc1J1bGVzEnoKBWNvbnN0GAEgASgMQmvCSGgKZgoLYnl0ZXMuY29uc3QaV3RoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgYmUgJXgnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxJrCgNsZW4YDSABKARCXsJIWwpZCglieXRlcy5sZW4aTHVpbnQodGhpcy5zaXplKCkpICE9IHJ1bGVzLmxlbiA/ICdtdXN0IGJlICVzIGJ5dGVzJy5mb3JtYXQoW3J1bGVzLmxlbl0pIDogJycSgwEKB21pbl9sZW4YAiABKARCcsJIbwptCg1ieXRlcy5taW5fbGVuGlx1aW50KHRoaXMuc2l6ZSgpKSA8IHJ1bGVzLm1pbl9sZW4gPyAnbXVzdCBiZSBhdCBsZWFzdCAlcyBieXRlcycuZm9ybWF0KFtydWxlcy5taW5fbGVuXSkgOiAnJxKCAQoHbWF4X2xlbhgDIAEoBEJxwkhuCmwKDWJ5dGVzLm1heF9sZW4aW3VpbnQodGhpcy5zaXplKCkpID4gcnVsZXMubWF4X2xlbiA/ICdtdXN0IGJlIGF0IG1vc3QgJXMgYnl0ZXMnLmZvcm1hdChbcnVsZXMubWF4X2xlbl0pIDogJycSigEKB3BhdHRlcm4YBCABKAlCecJIdgp0Cg1ieXRlcy5wYXR0ZXJuGmMhc3RyaW5nKHRoaXMpLm1hdGNoZXMocnVsZXMucGF0dGVybikgPyAnbXVzdCBtYXRjaCByZWdleCBwYXR0ZXJuIGAlc2AnLmZvcm1hdChbcnVsZXMucGF0dGVybl0pIDogJycSewoGcHJlZml4GAUgASgMQmvCSGgKZgoMYnl0ZXMucHJlZml4GlYhdGhpcy5zdGFydHNXaXRoKHJ1bGVzLnByZWZpeCkgPyAnZG9lcyBub3QgaGF2ZSBwcmVmaXggJXgnLmZvcm1hdChbcnVsZXMucHJlZml4XSkgOiAnJxJ5CgZzdWZmaXgYBiABKAxCacJIZgpkCgxieXRlcy5zdWZmaXgaVCF0aGlzLmVuZHNXaXRoKHJ1bGVzLnN1ZmZpeCkgPyAnZG9lcyBub3QgaGF2ZSBzdWZmaXggJXgnLmZvcm1hdChbcnVsZXMuc3VmZml4XSkgOiAnJxJ9Cghjb250YWlucxgHIAEoDEJrwkhoCmYKDmJ5dGVzLmNvbnRhaW5zGlQhdGhpcy5jb250YWlucyhydWxlcy5jb250YWlucykgPyAnZG9lcyBub3QgY29udGFpbiAleCcuZm9ybWF0KFtydWxlcy5jb250YWluc10pIDogJycSoQEKAmluGAggAygMQpQBwkiQAQqNAQoIYnl0ZXMuaW4agAFnZXRGaWVsZChydWxlcywgJ2luJykuc2l6ZSgpID4gMCAmJiAhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICdtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJwCgZub3RfaW4YCSADKAxCYMJIXQpbCgxieXRlcy5ub3RfaW4aS3RoaXMgaW4gcnVsZXMubm90X2luID8gJ211c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJxLlAQoCaXAYCiABKAhC1gHCSNIBCm4KCGJ5dGVzLmlwEhptdXN0IGJlIGEgdmFsaWQgSVAgYWRkcmVzcxpGIXJ1bGVzLmlwIHx8IHRoaXMuc2l6ZSgpID09IDAgfHwgdGhpcy5zaXplKCkgPT0gNCB8fCB0aGlzLnNpemUoKSA9PSAxNgpgCg5ieXRlcy5pcF9lbXB0eRIvdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQIGFkZHJlc3MaHSFydWxlcy5pcCB8fCB0aGlzLnNpemUoKSAhPSAwSAAS3gEKBGlwdjQYCyABKAhCzQHCSMkBCl8KCmJ5dGVzLmlwdjQSHG11c3QgYmUgYSB2YWxpZCBJUHY0IGFkZHJlc3MaMyFydWxlcy5pcHY0IHx8IHRoaXMuc2l6ZSgpID09IDAgfHwgdGhpcy5zaXplKCkgPT0gNApmChBieXRlcy5pcHY0X2VtcHR5EjF2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVB2NCBhZGRyZXNzGh8hcnVsZXMuaXB2NCB8fCB0aGlzLnNpemUoKSAhPSAwSAAS3wEKBGlwdjYYDCABKAhCzgHCSMoBCmAKCmJ5dGVzLmlwdjYSHG11c3QgYmUgYSB2YWxpZCBJUHY2IGFkZHJlc3MaNCFydWxlcy5pcHY2IHx8IHRoaXMuc2l6ZSgpID09IDAgfHwgdGhpcy5zaXplKCkgPT0gMTYKZgoQYnl0ZXMuaXB2Nl9lbXB0eRIxdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQdjYgYWRkcmVzcxofIXJ1bGVzLmlwdjYgfHwgdGhpcy5zaXplKCkgIT0gMEgAEs8BCgR1dWlkGA8gASgIQr4Bwki6AQpYCgpieXRlcy51dWlkEhRtdXN0IGJlIGEgdmFsaWQgVVVJRBo0IXJ1bGVzLnV1aWQgfHwgdGhpcy5zaXplKCkgPT0gMCB8fCB0aGlzLnNpemUoKSA9PSAxNgpeChBieXRlcy51dWlkX2VtcHR5Eil2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgVVVJRBofIXJ1bGVzLnV1aWQgfHwgdGhpcy5zaXplKCkgIT0gMEgAEisKB2V4YW1wbGUYDiADKAxCGsJIFwoVCg1ieXRlcy5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCDAoKd2VsbF9rbm93biLBAwoJRW51bVJ1bGVzEnwKBWNvbnN0GAEgASgFQm3CSGoKaAoKZW51bS5jb25zdBpadGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAnbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEhQKDGRlZmluZWRfb25seRgCIAEoCBJ4CgJpbhgDIAMoBUJswkhpCmcKB2VudW0uaW4aXCEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ211c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEm8KBm5vdF9pbhgEIAMoBUJfwkhcCloKC2VudW0ubm90X2luGkt0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICdtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSKgoHZXhhbXBsZRgFIAMoBUIZwkgWChQKDGVudW0uZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACIu0DCg1SZXBlYXRlZFJ1bGVzEpYBCgltaW5faXRlbXMYASABKARCggHCSH8KfQoScmVwZWF0ZWQubWluX2l0ZW1zGmd1aW50KHRoaXMuc2l6ZSgpKSA8IHJ1bGVzLm1pbl9pdGVtcyA/ICdtdXN0IGNvbnRhaW4gYXQgbGVhc3QgJWQgaXRlbShzKScuZm9ybWF0KFtydWxlcy5taW5faXRlbXNdKSA6ICcnEpwBCgltYXhfaXRlbXMYAiABKARCiAHCSIQBCoEBChJyZXBlYXRlZC5tYXhfaXRlbXMaa3VpbnQodGhpcy5zaXplKCkpID4gcnVsZXMubWF4X2l0ZW1zID8gJ211c3QgY29udGFpbiBubyBtb3JlIHRoYW4gJXMgaXRlbShzKScuZm9ybWF0KFtydWxlcy5tYXhfaXRlbXNdKSA6ICcnEnAKBnVuaXF1ZRgDIAEoCEJgwkhdClsKD3JlcGVhdGVkLnVuaXF1ZRIocmVwZWF0ZWQgdmFsdWUgbXVzdCBjb250YWluIHVuaXF1ZSBpdGVtcxoeIXJ1bGVzLnVuaXF1ZSB8fCB0aGlzLnVuaXF1ZSgpEicKBWl0ZW1zGAQgASgLMhguYnVmLnZhbGlkYXRlLkZpZWxkUnVsZXMqCQjoBxCAgICAAiKKAwoITWFwUnVsZXMSjwEKCW1pbl9wYWlycxgBIAEoBEJ8wkh5CncKDW1hcC5taW5fcGFpcnMaZnVpbnQodGhpcy5zaXplKCkpIDwgcnVsZXMubWluX3BhaXJzID8gJ21hcCBtdXN0IGJlIGF0IGxlYXN0ICVkIGVudHJpZXMnLmZvcm1hdChbcnVsZXMubWluX3BhaXJzXSkgOiAnJxKOAQoJbWF4X3BhaXJzGAIgASgEQnvCSHgKdgoNbWFwLm1heF9wYWlycxpldWludCh0aGlzLnNpemUoKSkgPiBydWxlcy5tYXhfcGFpcnMgPyAnbWFwIG11c3QgYmUgYXQgbW9zdCAlZCBlbnRyaWVzJy5mb3JtYXQoW3J1bGVzLm1heF9wYWlyc10pIDogJycSJgoEa2V5cxgEIAEoCzIYLmJ1Zi52YWxpZGF0ZS5GaWVsZFJ1bGVzEigKBnZhbHVlcxgFIAEoCzIYLmJ1Zi52YWxpZGF0ZS5GaWVsZFJ1bGVzKgkI6AcQgICAgAIiJgoIQW55UnVsZXMSCgoCaW4YAiADKAkSDgoGbm90X2luGAMgAygJIr8WCg1EdXJhdGlvblJ1bGVzEpsBCgVjb25zdBgCIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbkJxwkhuCmwKDmR1cmF0aW9uLmNvbnN0Glp0aGlzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKSA/ICdtdXN0IGVxdWFsICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycSogEKAmx0GAMgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQnnCSHYKdAoLZHVyYXRpb24ubHQaZSFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID49IHJ1bGVzLmx0PyAnbXVzdCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSAAStAEKA2x0ZRgEIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbkKJAcJIhQEKggEKDGR1cmF0aW9uLmx0ZRpyIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICdtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASowcKAmd0GAUgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQvkGwkj1Bgp3CgtkdXJhdGlvbi5ndBpoIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKsAEKDmR1cmF0aW9uLmd0X2x0Gp0BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq4AQoYZHVyYXRpb24uZ3RfbHRfZXhjbHVzaXZlGpsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKwAEKD2R1cmF0aW9uLmd0X2x0ZRqsAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycKyAEKGWR1cmF0aW9uLmd0X2x0ZV9leGNsdXNpdmUaqgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEu8HCgNndGUYBiABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25CxAfCSMAHCoUBCgxkdXJhdGlvbi5ndGUadSFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwq/AQoPZHVyYXRpb24uZ3RlX2x0GqsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCscBChlkdXJhdGlvbi5ndGVfbHRfZXhjbHVzaXZlGqkBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrPAQoQZHVyYXRpb24uZ3RlX2x0ZRq6AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrXAQoaZHVyYXRpb24uZ3RlX2x0ZV9leGNsdXNpdmUauAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESlwEKAmluGAcgAygLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQnDCSG0KawoLZHVyYXRpb24uaW4aXCEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ211c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEo4BCgZub3RfaW4YCCADKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25CY8JIYApeCg9kdXJhdGlvbi5ub3RfaW4aS3RoaXMgaW4gcnVsZXMubm90X2luID8gJ211c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJxJJCgdleGFtcGxlGAkgAygLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQh3CSBoKGAoQZHVyYXRpb24uZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4i6wUKDkZpZWxkTWFza1J1bGVzErkBCgVjb25zdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tCjQHCSIkBCoYBChBmaWVsZF9tYXNrLmNvbnN0GnJ0aGlzLnBhdGhzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKS5wYXRocyA/ICdtdXN0IGVxdWFsIHBhdGhzICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKS5wYXRoc10pIDogJycS0wEKAmluGAIgAygJQsYBwkjCAQq/AQoNZmllbGRfbWFzay5pbhqtASF0aGlzLnBhdGhzLmFsbChwLCBwIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSB8fCBnZXRGaWVsZChydWxlcywgJ2luJykuZXhpc3RzKGYsIHAuc3RhcnRzV2l0aChmKycuJykpKSA/ICdtdXN0IG9ubHkgY29udGFpbiBwYXRocyBpbiAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEu0BCgZub3RfaW4YAyADKAlC3AHCSNgBCtUBChFmaWVsZF9tYXNrLm5vdF9pbhq/ASF0aGlzLnBhdGhzLmFsbChwLCAhKHAgaW4gZ2V0RmllbGQocnVsZXMsICdub3RfaW4nKSB8fCBnZXRGaWVsZChydWxlcywgJ25vdF9pbicpLmV4aXN0cyhmLCBwLnN0YXJ0c1dpdGgoZisnLicpKSkpID8gJ211c3Qgbm90IGNvbnRhaW4gYW55IHBhdGhzIGluICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnbm90X2luJyldKSA6ICcnEkwKB2V4YW1wbGUYBCADKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrQh/CSBwKGgoSZmllbGRfbWFzay5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAIisBcKDlRpbWVzdGFtcFJ1bGVzEp0BCgVjb25zdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCcsJIbwptCg90aW1lc3RhbXAuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKkAQoCbHQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQnrCSHcKdQoMdGltZXN0YW1wLmx0GmUhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ211c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAErYBCgNsdGUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQooBwkiGAQqDAQoNdGltZXN0YW1wLmx0ZRpyIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICdtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASZgoGbHRfbm93GAcgASgIQlTCSFEKTwoQdGltZXN0YW1wLmx0X25vdxo7KHJ1bGVzLmx0X25vdyAmJiB0aGlzID4gbm93KSA/ICdtdXN0IGJlIGxlc3MgdGhhbiBub3cnIDogJydIABKpBwoCZ3QYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQv4Gwkj6Bgp4Cgx0aW1lc3RhbXAuZ3QaaCFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCrEBCg90aW1lc3RhbXAuZ3RfbHQanQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCrkBChl0aW1lc3RhbXAuZ3RfbHRfZXhjbHVzaXZlGpsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKwQEKEHRpbWVzdGFtcC5ndF9sdGUarAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCskBChp0aW1lc3RhbXAuZ3RfbHRlX2V4Y2x1c2l2ZRqqAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAES9QcKA2d0ZRgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCyQfCSMUHCoYBCg10aW1lc3RhbXAuZ3RlGnUhaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVzLmd0ZT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycKwAEKEHRpbWVzdGFtcC5ndGVfbHQaqwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKyAEKGnRpbWVzdGFtcC5ndGVfbHRfZXhjbHVzaXZlGqkBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrQAQoRdGltZXN0YW1wLmd0ZV9sdGUaugFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK2AEKG3RpbWVzdGFtcC5ndGVfbHRlX2V4Y2x1c2l2ZRq4AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJpCgZndF9ub3cYCCABKAhCV8JIVApSChB0aW1lc3RhbXAuZ3Rfbm93Gj4ocnVsZXMuZ3Rfbm93ICYmIHRoaXMgPCBub3cpID8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG5vdycgOiAnJ0gBErEBCgZ3aXRoaW4YCSABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25ChQHCSIEBCn8KEHRpbWVzdGFtcC53aXRoaW4aa3RoaXMgPCBub3ctcnVsZXMud2l0aGluIHx8IHRoaXMgPiBub3crcnVsZXMud2l0aGluID8gJ211c3QgYmUgd2l0aGluICVzIG9mIG5vdycuZm9ybWF0KFtydWxlcy53aXRoaW5dKSA6ICcnEksKB2V4YW1wbGUYCiADKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQh7CSBsKGQoRdGltZXN0YW1wLmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAkILCglsZXNzX3RoYW5CDgoMZ3JlYXRlcl90aGFuIjkKClZpb2xhdGlvbnMSKwoKdmlvbGF0aW9ucxgBIAMoCzIXLmJ1Zi52YWxpZGF0ZS5WaW9sYXRpb24inwEKCVZpb2xhdGlvbhImCgVmaWVsZBgFIAEoCzIXLmJ1Zi52YWxpZGF0ZS5GaWVsZFBhdGgSJQoEcnVsZRgGIAEoCzIXLmJ1Zi52YWxpZGF0ZS5GaWVsZFBhdGgSDwoHcnVsZV9pZBgCIAEoCRIPCgdtZXNzYWdlGAMgASgJEg8KB2Zvcl9rZXkYBCABKAhKBAgBEAJSCmZpZWxkX3BhdGgiPQoJRmllbGRQYXRoEjAKCGVsZW1lbnRzGAEgAygLMh4uYnVmLnZhbGlkYXRlLkZpZWxkUGF0aEVsZW1lbnQi6QIKEEZpZWxkUGF0aEVsZW1lbnQSFAoMZmllbGRfbnVtYmVyGAEgASgFEhIKCmZpZWxkX25hbWUYAiABKAkSPgoKZmllbGRfdHlwZRgDIAEoDjIqLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90by5UeXBlEjwKCGtleV90eXBlGAQgASgOMiouZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvLlR5cGUSPgoKdmFsdWVfdHlwZRgFIAEoDjIqLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90by5UeXBlEg8KBWluZGV4GAYgASgESAASEgoIYm9vbF9rZXkYByABKAhIABIRCgdpbnRfa2V5GAggASgDSAASEgoIdWludF9rZXkYCSABKARIABIUCgpzdHJpbmdfa2V5GAogASgJSABCCwoJc3Vic2NyaXB0KqEBCgZJZ25vcmUSFgoSSUdOT1JFX1VOU1BFQ0lGSUVEEAASGAoUSUdOT1JFX0lGX1pFUk9fVkFMVUUQARIRCg1JR05PUkVfQUxXQVlTEAMiBAgCEAIqDElHTk9SRV9FTVBUWSoOSUdOT1JFX0RFRkFVTFQqF0lHTk9SRV9JRl9ERUZBVUxUX1ZBTFVFKhVJR05PUkVfSUZfVU5QT1BVTEFURUQqbgoKS25vd25SZWdleBIbChdLTk9XTl9SRUdFWF9VTlNQRUNJRklFRBAAEiAKHEtOT1dOX1JFR0VYX0hUVFBfSEVBREVSX05BTUUQARIhCh1LTk9XTl9SRUdFWF9IVFRQX0hFQURFUl9WQUxVRRACOlYKB21lc3NhZ2USHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYhwkgASgLMhouYnVmLnZhbGlkYXRlLk1lc3NhZ2VSdWxlc1IHbWVzc2FnZTpOCgVvbmVvZhIdLmdvb2dsZS5wcm90b2J1Zi5PbmVvZk9wdGlvbnMYhwkgASgLMhguYnVmLnZhbGlkYXRlLk9uZW9mUnVsZXNSBW9uZW9mOk4KBWZpZWxkEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxiHCSABKAsyGC5idWYudmFsaWRhdGUuRmllbGRSdWxlc1IFZmllbGQ6XQoKcHJlZGVmaW5lZBIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMYiAkgASgLMh0uYnVmLnZhbGlkYXRlLlByZWRlZmluZWRSdWxlc1IKcHJlZGVmaW5lZEJuChJidWlsZC5idWYudmFsaWRhdGVCDVZhbGlkYXRlUHJvdG9QAVpHYnVmLmJ1aWxkL2dlbi9nby9idWZidWlsZC9wcm90b3ZhbGlkYXRlL3Byb3RvY29sYnVmZmVycy9nby9idWYvdmFsaWRhdGU",[file_google_protobuf_descriptor,file_google_protobuf_duration,file_google_protobuf_field_mask,file_google_protobuf_timestamp]);var Ignore;(function(Ignore2){Ignore2[Ignore2.UNSPECIFIED=0]="UNSPECIFIED",Ignore2[Ignore2.IF_ZERO_VALUE=1]="IF_ZERO_VALUE",Ignore2[Ignore2.ALWAYS=3]="ALWAYS"})(Ignore||(Ignore={}));var KnownRegex;(function(KnownRegex2){KnownRegex2[KnownRegex2.UNSPECIFIED=0]="UNSPECIFIED",KnownRegex2[KnownRegex2.HTTP_HEADER_NAME=1]="HTTP_HEADER_NAME",KnownRegex2[KnownRegex2.HTTP_HEADER_VALUE=2]="HTTP_HEADER_VALUE"})(KnownRegex||(KnownRegex={}));var file_ai_stigmer_commons_rpc_pagination=fileDesc("CidhaS9zdGlnbWVyL2NvbW1vbnMvcnBjL3BhZ2luYXRpb24ucHJvdG8SFmFpLnN0aWdtZXIuY29tbW9ucy5ycGMiJQoIUGFnZUluZm8SCwoDbnVtGAEgASgFEgwKBHNpemUYAiABKAUiMgoOR29vZ2xlUGFnZUluZm8SEgoKcGFnZV90b2tlbhgBIAEoCRIMCgRzaXplGAIgASgFYgZwcm90bzM");var file_ai_stigmer_agentic_environment_v1_spec=fileDesc("CixhaS9zdGlnbWVyL2FnZW50aWMvZW52aXJvbm1lbnQvdjEvc3BlYy5wcm90bxIhYWkuc3RpZ21lci5hZ2VudGljLmVudmlyb25tZW50LnYxItQBCg9FbnZpcm9ubWVudFNwZWMSEwoLZGVzY3JpcHRpb24YASABKAkSSgoEZGF0YRgCIAMoCzI8LmFpLnN0aWdtZXIuYWdlbnRpYy5lbnZpcm9ubWVudC52MS5FbnZpcm9ubWVudFNwZWMuRGF0YUVudHJ5GmAKCURhdGFFbnRyeRILCgNrZXkYASABKAkSQgoFdmFsdWUYAiABKAsyMy5haS5zdGlnbWVyLmFnZW50aWMuZW52aXJvbm1lbnQudjEuRW52aXJvbm1lbnRWYWx1ZToCOAEiSQoQRW52aXJvbm1lbnRWYWx1ZRINCgV2YWx1ZRgBIAEoCRIRCglpc19zZWNyZXQYAiABKAgSEwoLZGVzY3JpcHRpb24YAyABKAkiTQoRRW52VmFyRGVjbGFyYXRpb24SEQoJaXNfc2VjcmV0GAEgASgIEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhAKCG9wdGlvbmFsGAMgASgIYgZwcm90bzM"),EnvironmentSpecSchema=messageDesc2(file_ai_stigmer_agentic_environment_v1_spec,0),EnvironmentValueSchema=messageDesc2(file_ai_stigmer_agentic_environment_v1_spec,1),EnvVarDeclarationSchema=messageDesc2(file_ai_stigmer_agentic_environment_v1_spec,2);var file_ai_stigmer_commons_apiresource_field_options=fileDesc("CjJhaS9zdGlnbWVyL2NvbW1vbnMvYXBpcmVzb3VyY2UvZmllbGRfb3B0aW9ucy5wcm90bxIeYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlOjsKCGNvbXB1dGVkEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxjZwAUgASgIUghjb21wdXRlZDo9CglpbW11dGFibGUSHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zGNrABSABKAhSCWltbXV0YWJsZTpECg1pc19leHByZXNzaW9uEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxjbwAUgASgIUgxpc0V4cHJlc3Npb246hwEKDnJlZmVyZW5jZV9raW5kEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxjcwAUgASgOMj8uYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLmFwaXJlc291cmNla2luZC5BcGlSZXNvdXJjZUtpbmRSDXJlZmVyZW5jZUtpbmQ6TQoQZGlzY3JpbWluYXRlZF9ieRIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMY3cAFIAEoCVIPZGlzY3JpbWluYXRlZEJ5iAEBOlUKE2Rpc2NyaW1pbmF0b3JfdmFsdWUSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYvcEFIAEoCVISZGlzY3JpbWluYXRvclZhbHVliAEBYgZwcm90bzM",[file_ai_stigmer_commons_apiresource_apiresourcekind_api_resource_kind,file_google_protobuf_descriptor]);var file_ai_stigmer_commons_apiresource_enum=fileDesc("CilhaS9zdGlnbWVyL2NvbW1vbnMvYXBpcmVzb3VyY2UvZW51bS5wcm90bxIeYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlKnYKFEFwaVJlc291cmNlRXZlbnRUeXBlEg8KC3Vuc3BlY2lmaWVkEAASCwoHY3JlYXRlZBABEgsKB3VwZGF0ZWQQAhILCgdkZWxldGVkEAMSCwoHcmVuYW1lZBAEEhkKFXN0YWNrX291dHB1dHNfdXBkYXRlZBAFKowBCh1BcGlSZXNvdXJjZVN0YXRlT3BlcmF0aW9uVHlwZRIxCi1hcGlfcmVzb3VyY2Vfc3RhdGVfb3BlcmF0aW9uX3R5cGVfdW5zcGVjaWZpZWQQABIKCgZjcmVhdGUQARIKCgZ1cGRhdGUQAhIKCgZkZWxldGUQAxIICgRyZWFkEAQSCgoGc3RyZWFtEAUqnAEKFUFwaVJlc291cmNlVmlzaWJpbGl0eRInCiNhcGlfcmVzb3VyY2VfdmlzaWJpbGl0eV91bnNwZWNpZmllZBAAEhYKEnZpc2liaWxpdHlfcHJpdmF0ZRABEhUKEXZpc2liaWxpdHlfcHVibGljEAISEgoOdmlzaWJpbGl0eV9vcmcQAxIXChN2aXNpYmlsaXR5X3BsYXRmb3JtEARiBnByb3RvMw"),ApiResourceEventType;(function(ApiResourceEventType2){ApiResourceEventType2[ApiResourceEventType2.unspecified=0]="unspecified",ApiResourceEventType2[ApiResourceEventType2.created=1]="created",ApiResourceEventType2[ApiResourceEventType2.updated=2]="updated",ApiResourceEventType2[ApiResourceEventType2.deleted=3]="deleted",ApiResourceEventType2[ApiResourceEventType2.renamed=4]="renamed",ApiResourceEventType2[ApiResourceEventType2.stack_outputs_updated=5]="stack_outputs_updated"})(ApiResourceEventType||(ApiResourceEventType={}));var ApiResourceStateOperationType;(function(ApiResourceStateOperationType2){ApiResourceStateOperationType2[ApiResourceStateOperationType2.api_resource_state_operation_type_unspecified=0]="api_resource_state_operation_type_unspecified",ApiResourceStateOperationType2[ApiResourceStateOperationType2.create=1]="create",ApiResourceStateOperationType2[ApiResourceStateOperationType2.update=2]="update",ApiResourceStateOperationType2[ApiResourceStateOperationType2.delete=3]="delete",ApiResourceStateOperationType2[ApiResourceStateOperationType2.read=4]="read",ApiResourceStateOperationType2[ApiResourceStateOperationType2.stream=5]="stream"})(ApiResourceStateOperationType||(ApiResourceStateOperationType={}));var ApiResourceVisibility;(function(ApiResourceVisibility2){ApiResourceVisibility2[ApiResourceVisibility2.api_resource_visibility_unspecified=0]="api_resource_visibility_unspecified",ApiResourceVisibility2[ApiResourceVisibility2.visibility_private=1]="visibility_private",ApiResourceVisibility2[ApiResourceVisibility2.visibility_public=2]="visibility_public",ApiResourceVisibility2[ApiResourceVisibility2.visibility_org=3]="visibility_org",ApiResourceVisibility2[ApiResourceVisibility2.visibility_platform=4]="visibility_platform"})(ApiResourceVisibility||(ApiResourceVisibility={}));var file_ai_stigmer_commons_apiresource_io=fileDesc("CidhaS9zdGlnbWVyL2NvbW1vbnMvYXBpcmVzb3VyY2UvaW8ucHJvdG8SHmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZSImCg1BcGlSZXNvdXJjZUlkEhUKBXZhbHVlGAEgASgJQga6SAPIAQEiXQoWQXBpUmVzb3VyY2VEZWxldGVJbnB1dBIbCgtyZXNvdXJjZV9pZBgBIAEoCUIGukgDyAEBEhcKD3ZlcnNpb25fbWVzc2FnZRgCIAEoCRINCgVmb3JjZRgDIAEoCCJKCh1BcGlSZXNvdXJjZUJ5T3JnQnlTbHVnUmVxdWVzdBITCgNvcmcYASABKAlCBrpIA8gBARIUCgRzbHVnGAIgASgJQga6SAPIAQEilAEKF0ZpbmRBcGlSZXNvdXJjZXNSZXF1ZXN0EhMKA29yZxgBIAEoCUIGukgDyAEBEgwKBGtpbmQYAyABKAkSLgoEcGFnZRgEIAEoCzIgLmFpLnN0aWdtZXIuY29tbW9ucy5ycGMuUGFnZUluZm8SEwoLcGFnZV9udW1iZXIYBSABKAUSEQoJcGFnZV9zaXplGAYgASgFIosBChVVcGRhdGVWaXNpYmlsaXR5SW5wdXQSGwoLcmVzb3VyY2VfaWQYASABKAlCBrpIA8gBARJVCgp2aXNpYmlsaXR5GAIgASgOMjUuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLkFwaVJlc291cmNlVmlzaWJpbGl0eUIKukgHggEEEAEgACKWAgoUQXBpUmVzb3VyY2VSZWZlcmVuY2USMgoDb3JnGAEgASgJQiW6SCJyIBg/MhxeJHxeW2Etel1bYS16MC05LV0qW2EtejAtOV0kEk0KBGtpbmQYAiABKA4yPy5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuYXBpcmVzb3VyY2VraW5kLkFwaVJlc291cmNlS2luZBI1CgRzbHVnGAMgASgJQie6SCTIAQFyHxACGD8yGV5bYS16XVthLXowLTktXSpbYS16MC05XSQSRAoHdmVyc2lvbhgEIAEoCUIzukgwci4yLF4kfF5sYXRlc3QkfF5bYS16QS1aMC05Ll8tXSskfF5bYS1mMC05XXs2NH0kYgZwcm90bzM",[file_ai_stigmer_commons_apiresource_apiresourcekind_api_resource_kind,file_ai_stigmer_commons_apiresource_enum,file_ai_stigmer_commons_rpc_pagination,file_buf_validate_validate]);var UpdateVisibilityInputSchema=messageDesc2(file_ai_stigmer_commons_apiresource_io,4),ApiResourceReferenceSchema=messageDesc2(file_ai_stigmer_commons_apiresource_io,5);var file_ai_stigmer_agentic_agent_v1_spec=fileDesc("CiZhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnQvdjEvc3BlYy5wcm90bxIbYWkuc3RpZ21lci5hZ2VudGljLmFnZW50LnYxItcFCglBZ2VudFNwZWMSEwoLZGVzY3JpcHRpb24YASABKAkSEAoIaWNvbl91cmwYAiABKAkSHQoMaW5zdHJ1Y3Rpb25zGAMgASgJQge6SARyAhAKEs4BChFtY3Bfc2VydmVyX3VzYWdlcxgEIAMoCzIrLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudC52MS5NY3BTZXJ2ZXJVc2FnZUKFAbpIgQGSAX4ifLoBeQoWbWNwX3NlcnZlcl91c2FnZXMua2luZBI/bWNwX3NlcnZlcl91c2FnZXMgbXVzdCByZWZlcmVuY2UgcmVzb3VyY2VzIHdpdGgga2luZD1tY3Bfc2VydmVyGh50aGlzLm1jcF9zZXJ2ZXJfcmVmLmtpbmQgPT0gNDQSsAEKCnNraWxsX3JlZnMYBSADKAsyNC5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuQXBpUmVzb3VyY2VSZWZlcmVuY2VCZrpIX5IBXCJaugFXCg9za2lsbF9yZWZzLmtpbmQSM3NraWxsX3JlZnMgbXVzdCByZWZlcmVuY2UgcmVzb3VyY2VzIHdpdGgga2luZD1za2lsbBoPdGhpcy5raW5kID09IDQz4IUsKxI5CgpzdWJfYWdlbnRzGAYgAygLMiUuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50LnYxLlN1YkFnZW50EjwKA2VudhgHIAMoCzIvLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudC52MS5BZ2VudFNwZWMuRW52RW50cnkaYAoIRW52RW50cnkSCwoDa2V5GAEgASgJEkMKBXZhbHVlGAIgASgLMjQuYWkuc3RpZ21lci5hZ2VudGljLmVudmlyb25tZW50LnYxLkVudlZhckRlY2xhcmF0aW9uOgI4AUoECAgQCUoECAkQClIHc2hhcmluZ1IQZGF0YXN0b3JlX3VzYWdlcyLbAgoIU3ViQWdlbnQSFAoEbmFtZRgBIAEoCUIGukgDyAEBEhMKC2Rlc2NyaXB0aW9uGAIgASgJEh0KDGluc3RydWN0aW9ucxgDIAEoCUIHukgEcgIQChI6CgptY3BfYWNjZXNzGAQgAygLMiYuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50LnYxLk1jcEFjY2VzcxKwAQoKc2tpbGxfcmVmcxgFIAMoCzI0LmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZVJlZmVyZW5jZUJmukhfkgFcIlq6AVcKD3NraWxsX3JlZnMua2luZBIzc2tpbGxfcmVmcyBtdXN0IHJlZmVyZW5jZSByZXNvdXJjZXMgd2l0aCBraW5kPXNraWxsGg90aGlzLmtpbmQgPT0gNDPghSwrEhYKDm1vZGVsX292ZXJyaWRlGAYgASgJItUBCg5NY3BTZXJ2ZXJVc2FnZRJYCg5tY3Bfc2VydmVyX3JlZhgBIAEoCzI0LmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZVJlZmVyZW5jZUIKukgDyAEB4IUsLBIVCg1lbmFibGVkX3Rvb2xzGAIgAygJElIKF3Rvb2xfYXBwcm92YWxfb3ZlcnJpZGVzGAMgAygLMjEuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50LnYxLlRvb2xBcHByb3ZhbE92ZXJyaWRlIj4KCU1jcEFjY2VzcxIaCgptY3Bfc2VydmVyGAEgASgJQga6SAPIAQESFQoNZW5hYmxlZF90b29scxgCIAMoCSJeChRUb29sQXBwcm92YWxPdmVycmlkZRIaCgl0b29sX25hbWUYASABKAlCB7pIBHICEAESGQoRcmVxdWlyZXNfYXBwcm92YWwYAiABKAgSDwoHbWVzc2FnZRgDIAEoCWIGcHJvdG8z",[file_ai_stigmer_agentic_environment_v1_spec,file_ai_stigmer_commons_apiresource_field_options,file_ai_stigmer_commons_apiresource_io,file_buf_validate_validate]),AgentSpecSchema=messageDesc2(file_ai_stigmer_agentic_agent_v1_spec,0),SubAgentSchema=messageDesc2(file_ai_stigmer_agentic_agent_v1_spec,1),McpServerUsageSchema=messageDesc2(file_ai_stigmer_agentic_agent_v1_spec,2),McpAccessSchema=messageDesc2(file_ai_stigmer_agentic_agent_v1_spec,3),ToolApprovalOverrideSchema=messageDesc2(file_ai_stigmer_agentic_agent_v1_spec,4);var file_ai_stigmer_commons_apiresource_status=fileDesc("CithaS9zdGlnbWVyL2NvbW1vbnMvYXBpcmVzb3VyY2Uvc3RhdHVzLnByb3RvEh5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UiWQoWQXBpUmVzb3VyY2VBdWRpdFN0YXR1cxI/CgVhdWRpdBhjIAEoCzIwLmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZUF1ZGl0IqgBChBBcGlSZXNvdXJjZUF1ZGl0EkgKCnNwZWNfYXVkaXQYASABKAsyNC5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuQXBpUmVzb3VyY2VBdWRpdEluZm8SSgoMc3RhdHVzX2F1ZGl0GAIgASgLMjQuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLkFwaVJlc291cmNlQXVkaXRJbmZvIpsCChRBcGlSZXNvdXJjZUF1ZGl0SW5mbxJJCgpjcmVhdGVkX2J5GAEgASgLMjUuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLkFwaVJlc291cmNlQXVkaXRBY3RvchIuCgpjcmVhdGVkX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJJCgp1cGRhdGVkX2J5GAMgASgLMjUuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLkFwaVJlc291cmNlQXVkaXRBY3RvchIuCgp1cGRhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBINCgVldmVudBgFIAEoCSJYChVBcGlSZXNvdXJjZUF1ZGl0QWN0b3ISCgoCaWQYASABKAkSDgoGYXZhdGFyGAIgASgJEhQKDGRpc3BsYXlfbmFtZRgDIAEoCRINCgVlbWFpbBgEIAEoCWIGcHJvdG8z",[file_google_protobuf_timestamp]);var file_ai_stigmer_agentic_agent_v1_status=fileDesc("CihhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnQvdjEvc3RhdHVzLnByb3RvEhthaS5zdGlnbWVyLmFnZW50aWMuYWdlbnQudjEigwEKC0FnZW50U3RhdHVzEj8KBWF1ZGl0GGMgASgLMjAuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLkFwaVJlc291cmNlQXVkaXQSGwoTZGVmYXVsdF9pbnN0YW5jZV9pZBgBIAEoCUoECAIQA1IQc2hhcmVfbGlua190b2tlbmIGcHJvdG8z",[file_ai_stigmer_commons_apiresource_status]);var file_ai_stigmer_commons_apiresource_metadata=fileDesc("Ci1haS9zdGlnbWVyL2NvbW1vbnMvYXBpcmVzb3VyY2UvbWV0YWRhdGEucHJvdG8SHmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZSK4BAoTQXBpUmVzb3VyY2VNZXRhZGF0YRIUCgRuYW1lGAEgASgJQga6SAPYAQESMwoEc2x1ZxgCIAEoCUIlukgi2AEBch0QAjIZXlthLXpdW2EtejAtOS1dKlthLXowLTldJBIKCgJpZBgDIAEoCRILCgNvcmcYBCABKAkSUwoKdmlzaWJpbGl0eRgFIAEoDjI1LmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZVZpc2liaWxpdHlCCLpIBYIBAhABEk8KBmxhYmVscxgGIAMoCzI/LmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZU1ldGFkYXRhLkxhYmVsc0VudHJ5ElkKC2Fubm90YXRpb25zGAcgAygLMkQuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLkFwaVJlc291cmNlTWV0YWRhdGEuQW5ub3RhdGlvbnNFbnRyeRIMCgR0YWdzGAggAygJEksKB3ZlcnNpb24YCSABKAsyOi5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuQXBpUmVzb3VyY2VNZXRhZGF0YVZlcnNpb24aLQoLTGFiZWxzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARoyChBBbm5vdGF0aW9uc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiYwoaQXBpUmVzb3VyY2VNZXRhZGF0YVZlcnNpb24SCgoCaWQYASABKAkSDwoHbWVzc2FnZRgCIAEoCRIbChNwcmV2aW91c192ZXJzaW9uX2lkGAMgASgJEgsKA3RhZxgEIAEoCWIGcHJvdG8z",[file_ai_stigmer_commons_apiresource_enum,file_buf_validate_validate]),ApiResourceMetadataSchema=messageDesc2(file_ai_stigmer_commons_apiresource_metadata,0);var file_ai_stigmer_agentic_agent_v1_api=fileDesc("CiVhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnQvdjEvYXBpLnByb3RvEhthaS5zdGlnbWVyLmFnZW50aWMuYWdlbnQudjEilQIKBUFnZW50EjEKC2FwaV92ZXJzaW9uGAEgASgJQhy6SBlyFwoVYWdlbnRpYy5zdGlnbWVyLmFpL3YxEhoKBGtpbmQYAiABKAlCDLpICXIHCgVBZ2VudBJNCghtZXRhZGF0YRgDIAEoCzIzLmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZU1ldGFkYXRhQga6SAPIAQESNAoEc3BlYxgEIAEoCzImLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudC52MS5BZ2VudFNwZWMSOAoGc3RhdHVzGAUgASgLMiguYWkuc3RpZ21lci5hZ2VudGljLmFnZW50LnYxLkFnZW50U3RhdHVzYgZwcm90bzM",[file_ai_stigmer_agentic_agent_v1_spec,file_ai_stigmer_agentic_agent_v1_status,file_ai_stigmer_commons_apiresource_metadata,file_buf_validate_validate]),AgentSchema=messageDesc2(file_ai_stigmer_agentic_agent_v1_api,0);var file_ai_stigmer_agentic_agent_v1_io=fileDesc("CiRhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnQvdjEvaW8ucHJvdG8SG2FpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudC52MSIgCgdBZ2VudElkEhUKBXZhbHVlGAEgASgJQga6SAPIAQEiLgoWR2V0RGVmYXVsdEFnZW50UmVxdWVzdBIUCgNvcmcYASABKAlCB7pIBHICEAFiBnByb3RvMw",[file_buf_validate_validate]);var file_ai_stigmer_commons_apiresource_rpc_service_options=fileDesc("CjhhaS9zdGlnbWVyL2NvbW1vbnMvYXBpcmVzb3VyY2UvcnBjX3NlcnZpY2Vfb3B0aW9ucy5wcm90bxIeYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlOo4BChFhcGlfcmVzb3VyY2Vfa2luZBIfLmdvb2dsZS5wcm90b2J1Zi5TZXJ2aWNlT3B0aW9ucxj0vwUgASgOMj8uYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLmFwaXJlc291cmNla2luZC5BcGlSZXNvdXJjZUtpbmRSD2FwaVJlc291cmNlS2luZGIGcHJvdG8z",[file_ai_stigmer_commons_apiresource_apiresourcekind_api_resource_kind,file_google_protobuf_descriptor]);var file_ai_stigmer_agentic_agent_v1_command=fileDesc("CilhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnQvdjEvY29tbWFuZC5wcm90bxIbYWkuc3RpZ21lci5hZ2VudGljLmFnZW50LnYxMskFChZBZ2VudENvbW1hbmRDb250cm9sbGVyEk8KBWFwcGx5EiIuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50LnYxLkFnZW50GiIuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50LnYxLkFnZW50EpsBCgZjcmVhdGUSIi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnQudjEuQWdlbnQaIi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnQudjEuQWdlbnQiScK4GEUIBhAeIgxtZXRhZGF0YS5vcmcqMXVuYXV0aG9yaXplZCB0byBjcmVhdGUgYWdlbnQgaW4gdGhpcyBvcmdhbml6YXRpb24ShQEKBnVwZGF0ZRIiLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudC52MS5BZ2VudBoiLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudC52MS5BZ2VudCIzwrgYLwgCECgiC21ldGFkYXRhLmlkKhx1bmF1dGhvcml6ZWQgdG8gdXBkYXRlIGFnZW50Eq0BChB1cGRhdGVWaXNpYmlsaXR5EjUuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLlVwZGF0ZVZpc2liaWxpdHlJbnB1dBoiLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudC52MS5BZ2VudCI+wrgYOggCECgiC3Jlc291cmNlX2lkKid1bmF1dGhvcml6ZWQgdG8gdXBkYXRlIGFnZW50IHZpc2liaWxpdHkSgQEKBmRlbGV0ZRIkLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudC52MS5BZ2VudElkGiIuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50LnYxLkFnZW50Ii3CuBgpCAMQKCIFdmFsdWUqHHVuYXV0aG9yaXplZCB0byBkZWxldGUgYWdlbnQaBKD/KyhiBnByb3RvMw",[file_ai_stigmer_agentic_agent_v1_api,file_ai_stigmer_agentic_agent_v1_io,file_ai_stigmer_commons_apiresource_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),AgentCommandController=serviceDesc(file_ai_stigmer_agentic_agent_v1_command,0);var file_ai_stigmer_agentic_agent_v1_query=fileDesc("CidhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnQvdjEvcXVlcnkucHJvdG8SG2FpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudC52MTL4AgoUQWdlbnRRdWVyeUNvbnRyb2xsZXISewoDZ2V0EiQuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50LnYxLkFnZW50SWQaIi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnQudjEuQWdlbnQiKsK4GCYIARAoIgV2YWx1ZSoZdW5hdXRob3JpemVkIHRvIGdldCBhZ2VudBJwCg5nZXRCeVJlZmVyZW5jZRI0LmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZVJlZmVyZW5jZRoiLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudC52MS5BZ2VudCIE0LgYARJrCgpnZXREZWZhdWx0EjMuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50LnYxLkdldERlZmF1bHRBZ2VudFJlcXVlc3QaIi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnQudjEuQWdlbnQiBNC4GAEaBKD/KyhiBnByb3RvMw",[file_ai_stigmer_agentic_agent_v1_api,file_ai_stigmer_agentic_agent_v1_io,file_ai_stigmer_commons_apiresource_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),AgentQueryController=serviceDesc(file_ai_stigmer_agentic_agent_v1_query,0);var file_ai_stigmer_search_v1_io=fileDesc("Ch1haS9zdGlnbWVyL3NlYXJjaC92MS9pby5wcm90bxIUYWkuc3RpZ21lci5zZWFyY2gudjEilQIKDVNlYXJjaFJlcXVlc3QSXQoFa2luZHMYASADKA4yPy5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuYXBpcmVzb3VyY2VraW5kLkFwaVJlc291cmNlS2luZEINukgKkgEHIgWCAQIQARIXCgVxdWVyeRgCIAEoCUIIukgFcgMY9AMSKgoDb3JnGAMgASgJQh26SBpyGBg/MhReJHxeW2Etel1bYS16MC05LV0qJBIWCg5leGNsdWRlX3B1YmxpYxgEIAEoCBIuCgRwYWdlGAUgASgLMiAuYWkuc3RpZ21lci5jb21tb25zLnJwYy5QYWdlSW5mbxIYChBjcm9zc19vcmdfcHVibGljGAYgASgIIvQBCg5TZWFyY2hSZXNwb25zZRIzCgdlbnRyaWVzGAEgAygLMiIuYWkuc3RpZ21lci5zZWFyY2gudjEuU2VhcmNoUmVzdWx0Ek4KDmNvdW50c19ieV9raW5kGAIgAygLMjYuYWkuc3RpZ21lci5zZWFyY2gudjEuU2VhcmNoUmVzcG9uc2UuQ291bnRzQnlLaW5kRW50cnkSEwoLdG90YWxfY291bnQYAyABKAUSEwoLdG90YWxfcGFnZXMYBCABKAUaMwoRQ291bnRzQnlLaW5kRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgFOgI4ASKZAwoMU2VhcmNoUmVzdWx0Ek0KBGtpbmQYASABKA4yPy5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuYXBpcmVzb3VyY2VraW5kLkFwaVJlc291cmNlS2luZBIKCgJpZBgCIAEoCRIMCgRuYW1lGAMgASgJEgwKBHNsdWcYBCABKAkSFgoOcXVhbGlmaWVkX3NsdWcYBSABKAkSCwoDb3JnGAYgASgJEhMKC2Rlc2NyaXB0aW9uGAcgASgJEkkKCnZpc2liaWxpdHkYCCABKA4yNS5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuQXBpUmVzb3VyY2VWaXNpYmlsaXR5EgwKBHRhZ3MYCSADKAkSLgoKY3JlYXRlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDQoFc2NvcmUYDCABKAISEAoIaWNvbl91cmwYDSABKAliBnByb3RvMw",[file_ai_stigmer_commons_apiresource_apiresourcekind_api_resource_kind,file_ai_stigmer_commons_apiresource_enum,file_ai_stigmer_commons_rpc_pagination,file_buf_validate_validate,file_google_protobuf_timestamp]);var SearchResponseSchema=messageDesc2(file_ai_stigmer_search_v1_io,1);var file_ai_stigmer_search_v1_query=fileDesc("CiBhaS9zdGlnbWVyL3NlYXJjaC92MS9xdWVyeS5wcm90bxIUYWkuc3RpZ21lci5zZWFyY2gudjEyagoNU2VhcmNoU2VydmljZRJZCgZzZWFyY2gSIy5haS5zdGlnbWVyLnNlYXJjaC52MS5TZWFyY2hSZXF1ZXN0GiQuYWkuc3RpZ21lci5zZWFyY2gudjEuU2VhcmNoUmVzcG9uc2UiBNC4GAFiBnByb3RvMw",[file_ai_stigmer_commons_rpc_method_options,file_ai_stigmer_search_v1_io]),SearchService=serviceDesc(file_ai_stigmer_search_v1_query,0);var file_ai_stigmer_agentic_session_v1_enum=fileDesc("CihhaS9zdGlnbWVyL2FnZW50aWMvc2Vzc2lvbi92MS9lbnVtLnByb3RvEh1haS5zdGlnbWVyLmFnZW50aWMuc2Vzc2lvbi52MSpZChBHaXRXcml0ZUJhY2tNb2RlEiMKH0dJVF9XUklURV9CQUNLX01PREVfVU5TUEVDSUZJRUQQABIgChxHSVRfV1JJVEVfQkFDS19CUkFOQ0hfQU5EX1BSEAEqSgoHSGFybmVzcxIXChNIQVJORVNTX1VOU1BFQ0lGSUVEEAASEgoOSEFSTkVTU19OQVRJVkUQARISCg5IQVJORVNTX0NVUlNPUhACKmsKD0V4ZWN1dGlvblRhcmdldBIgChxFWEVDVVRJT05fVEFSR0VUX1VOU1BFQ0lGSUVEEAASGgoWRVhFQ1VUSU9OX1RBUkdFVF9MT0NBTBABEhoKFkVYRUNVVElPTl9UQVJHRVRfQ0xPVUQQAipXCgpDdXJzb3JNb2RlEhsKF0NVUlNPUl9NT0RFX1VOU1BFQ0lGSUVEEAASFQoRQ1VSU09SX01PREVfTE9DQUwQARIVChFDVVJTT1JfTU9ERV9DTE9VRBACYgZwcm90bzM"),GitWriteBackMode;(function(GitWriteBackMode2){GitWriteBackMode2[GitWriteBackMode2.GIT_WRITE_BACK_MODE_UNSPECIFIED=0]="GIT_WRITE_BACK_MODE_UNSPECIFIED",GitWriteBackMode2[GitWriteBackMode2.GIT_WRITE_BACK_BRANCH_AND_PR=1]="GIT_WRITE_BACK_BRANCH_AND_PR"})(GitWriteBackMode||(GitWriteBackMode={}));var Harness;(function(Harness2){Harness2[Harness2.UNSPECIFIED=0]="UNSPECIFIED",Harness2[Harness2.NATIVE=1]="NATIVE",Harness2[Harness2.CURSOR=2]="CURSOR"})(Harness||(Harness={}));var ExecutionTarget;(function(ExecutionTarget2){ExecutionTarget2[ExecutionTarget2.UNSPECIFIED=0]="UNSPECIFIED",ExecutionTarget2[ExecutionTarget2.LOCAL=1]="LOCAL",ExecutionTarget2[ExecutionTarget2.CLOUD=2]="CLOUD"})(ExecutionTarget||(ExecutionTarget={}));var CursorMode;(function(CursorMode2){CursorMode2[CursorMode2.UNSPECIFIED=0]="UNSPECIFIED",CursorMode2[CursorMode2.LOCAL=1]="LOCAL",CursorMode2[CursorMode2.CLOUD=2]="CLOUD"})(CursorMode||(CursorMode={}));var file_ai_stigmer_agentic_session_v1_workspace=fileDesc("Ci1haS9zdGlnbWVyL2FnZW50aWMvc2Vzc2lvbi92MS93b3Jrc3BhY2UucHJvdG8SHWFpLnN0aWdtZXIuYWdlbnRpYy5zZXNzaW9uLnYxIqoBCg9Xb3Jrc3BhY2VTb3VyY2USQAoIZ2l0X3JlcG8YASABKAsyLC5haS5zdGlnbWVyLmFnZW50aWMuc2Vzc2lvbi52MS5HaXRSZXBvU291cmNlSAASRAoKbG9jYWxfcGF0aBgCIAEoCzIuLmFpLnN0aWdtZXIuYWdlbnRpYy5zZXNzaW9uLnYxLkxvY2FsUGF0aFNvdXJjZUgAQg8KBnNvdXJjZRIFukgCCAEibwoOV29ya3NwYWNlRW50cnkSFQoEbmFtZRgBIAEoCUIHukgEcgIQARJGCgZzb3VyY2UYAiABKAsyLi5haS5zdGlnbWVyLmFnZW50aWMuc2Vzc2lvbi52MS5Xb3Jrc3BhY2VTb3VyY2VCBrpIA8gBASIoCg9Mb2NhbFBhdGhTb3VyY2USFQoEcGF0aBgBIAEoCUIHukgEcgIQASLIAgoNR2l0UmVwb1NvdXJjZRKlAQoDdXJsGAEgASgJQpcBukiTAboBjAEKGWdpdF9yZXBvX3NvdXJjZS51cmwuaHR0cHMSUnVybCBtdXN0IHVzZSBIVFRQUyAoZS5nLiBodHRwczovL2dpdGh1Yi5jb20vb3JnL3JlcG8pLiBTU0ggVVJMcyBhcmUgbm90IHN1cHBvcnRlZC4aG3RoaXMuc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKcgBARIOCgZicmFuY2gYAiABKAkSDgoGY29tbWl0GAMgASgJEhsKBWRlcHRoGAQgASgFQge6SAQaAigASACIAQESSAoPd3JpdGVfYmFja19tb2RlGAUgASgOMi8uYWkuc3RpZ21lci5hZ2VudGljLnNlc3Npb24udjEuR2l0V3JpdGVCYWNrTW9kZUIICgZfZGVwdGhiBnByb3RvMw",[file_ai_stigmer_agentic_session_v1_enum,file_buf_validate_validate]),WorkspaceSourceSchema=messageDesc2(file_ai_stigmer_agentic_session_v1_workspace,0),WorkspaceEntrySchema=messageDesc2(file_ai_stigmer_agentic_session_v1_workspace,1),LocalPathSourceSchema=messageDesc2(file_ai_stigmer_agentic_session_v1_workspace,2),GitRepoSourceSchema=messageDesc2(file_ai_stigmer_agentic_session_v1_workspace,3);var file_ai_stigmer_agentic_agentexecution_v1_invocation=fileDesc("CjVhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvaW52b2NhdGlvbi5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxIvAECg9BZ2VudEludm9jYXRpb24SrAEKCWFnZW50X3JlZhgBIAEoCzI0LmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZVJlZmVyZW5jZUJjukhcugFWCg5hZ2VudF9yZWYua2luZBIzYWdlbnRfcmVmIG11c3QgcmVmZXJlbmNlIGEgcmVzb3VyY2Ugd2l0aCBraW5kPWFnZW50Gg90aGlzLmtpbmQgPT0gNDDIAQHghSwoEhsKB21lc3NhZ2UYAiABKAlCCrpIB3IFEAEYgEASNwoHaGFybmVzcxgDIAEoDjImLmFpLnN0aWdtZXIuYWdlbnRpYy5zZXNzaW9uLnYxLkhhcm5lc3MSSAoRd29ya3NwYWNlX2VudHJpZXMYBCADKAsyLS5haS5zdGlnbWVyLmFnZW50aWMuc2Vzc2lvbi52MS5Xb3Jrc3BhY2VFbnRyeRLIAQoQZW52aXJvbm1lbnRfcmVmcxgFIAMoCzI0LmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZVJlZmVyZW5jZUJ4ukhxkgFuImy6AWkKFWVudmlyb25tZW50X3JlZnMua2luZBI/ZW52aXJvbm1lbnRfcmVmcyBtdXN0IHJlZmVyZW5jZSByZXNvdXJjZXMgd2l0aCBraW5kPWVudmlyb25tZW50Gg90aGlzLmtpbmQgPT0gNTPghSw1EkMKCnJ1bl9jb25maWcYBiABKAsyLy5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuUnVuQ29uZmlnIroBCglSdW5Db25maWcSEgoKbW9kZWxfbmFtZRgBIAEoCRIkCgxtYXhfY29zdF91c2QYAiABKAFCDrpICxIJKQAAAAAAAAAAEiAKD21heF90b29sX3JvdW5kcxgDIAEoBUIHukgEGgIoABJRCgxzZXJ2aWNlX3RpZXIYBCABKA4yMS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuU2VydmljZVRpZXJCCLpIBYIBAhABYgZwcm90bzM",[file_ai_stigmer_agentic_agentexecution_v1_enum,file_ai_stigmer_agentic_session_v1_enum,file_ai_stigmer_agentic_session_v1_workspace,file_ai_stigmer_commons_apiresource_field_options,file_ai_stigmer_commons_apiresource_io,file_buf_validate_validate]);var RunConfigSchema=messageDesc2(file_ai_stigmer_agentic_agentexecution_v1_invocation,1);var file_ai_stigmer_agentic_agentchannel_v1_delivery=fileDesc("CjFhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRjaGFubmVsL3YxL2RlbGl2ZXJ5LnByb3RvEiJhaS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxIvwFCg9DaGFubmVsRGVsaXZlcnkSEwoLZGVsaXZlcnlfaWQYASABKAkSGAoQYWdlbnRfY2hhbm5lbF9pZBgCIAEoCRILCgNvcmcYAyABKAkSFAoMZXhlY3V0aW9uX2lkGAQgASgJEhIKCnNlc3Npb25faWQYBSABKAkSGAoQY29udmVyc2F0aW9uX2tleRgGIAEoCRIZChFleHRlcm5hbF91c2VyX2tleRgHIAEoCRJJCgZzdGF0dXMYCCABKA4yOS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLkNoYW5uZWxEZWxpdmVyeVN0YXR1cxIQCghhdHRlbXB0cxgJIAEoBRISCgpsYXN0X2Vycm9yGAogASgJEhcKD2lkZW1wb3RlbmN5X2tleRgLIAEoCRJJCgVzbGFjaxgMIAEoCzI4LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuU2xhY2tEZWxpdmVyeUNvbnRleHRIABJPCgh3aGF0c2FwcBgQIAEoCzI7LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuV2hhdHNBcHBEZWxpdmVyeUNvbnRleHRIABIuCgpjcmVhdGVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GA4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIzCg9uZXh0X2F0dGVtcHRfYXQYDyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCnJlcGx5X3RleHQYESABKAkSUwoMZmFpbHVyZV9raW5kGBIgASgOMj0uYWkuc3RpZ21lci5hZ2VudGljLmFnZW50Y2hhbm5lbC52MS5DaGFubmVsQXR0ZW1wdEZhaWx1cmVLaW5kEhYKDmF0dGVtcHRfZGV0YWlsGBMgASgJQhIKEGRlbGl2ZXJ5X2NvbnRleHQiVQoUU2xhY2tEZWxpdmVyeUNvbnRleHQSEgoKY2hhbm5lbF9pZBgBIAEoCRIRCgl0aHJlYWRfdHMYAiABKAkSFgoOcGxhY2Vob2xkZXJfdHMYAyABKAkiSwoXV2hhdHNBcHBEZWxpdmVyeUNvbnRleHQSFwoPcGhvbmVfbnVtYmVyX2lkGAEgASgJEhcKD3JlY2lwaWVudF93YV9pZBgCIAEoCSqIAQoVQ2hhbm5lbERlbGl2ZXJ5U3RhdHVzEicKI2NoYW5uZWxfZGVsaXZlcnlfc3RhdHVzX3Vuc3BlY2lmaWVkEAASCwoHcGVuZGluZxABEg4KCmRlbGl2ZXJpbmcQAhINCglkZWxpdmVyZWQQAxIKCgZmYWlsZWQQBBIOCgpzdXBwcmVzc2VkEAUqfQoZQ2hhbm5lbEF0dGVtcHRGYWlsdXJlS2luZBIfChthdHRlbXB0X2ZhaWx1cmVfdW5zcGVjaWZpZWQQABITCg9hdHRlbXB0X3JlZnVzZWQQARITCg9hdHRlbXB0X2Vycm9yZWQQAhIVChFhdHRlbXB0X3dpdGhkcmF3bhADYgZwcm90bzM",[file_google_protobuf_timestamp]);var ChannelDeliveryStatus;(function(ChannelDeliveryStatus2){ChannelDeliveryStatus2[ChannelDeliveryStatus2.channel_delivery_status_unspecified=0]="channel_delivery_status_unspecified",ChannelDeliveryStatus2[ChannelDeliveryStatus2.pending=1]="pending",ChannelDeliveryStatus2[ChannelDeliveryStatus2.delivering=2]="delivering",ChannelDeliveryStatus2[ChannelDeliveryStatus2.delivered=3]="delivered",ChannelDeliveryStatus2[ChannelDeliveryStatus2.failed=4]="failed",ChannelDeliveryStatus2[ChannelDeliveryStatus2.suppressed=5]="suppressed"})(ChannelDeliveryStatus||(ChannelDeliveryStatus={}));var ChannelAttemptFailureKind;(function(ChannelAttemptFailureKind2){ChannelAttemptFailureKind2[ChannelAttemptFailureKind2.attempt_failure_unspecified=0]="attempt_failure_unspecified",ChannelAttemptFailureKind2[ChannelAttemptFailureKind2.attempt_refused=1]="attempt_refused",ChannelAttemptFailureKind2[ChannelAttemptFailureKind2.attempt_errored=2]="attempt_errored",ChannelAttemptFailureKind2[ChannelAttemptFailureKind2.attempt_withdrawn=3]="attempt_withdrawn"})(ChannelAttemptFailureKind||(ChannelAttemptFailureKind={}));var file_ai_stigmer_agentic_agentchannel_v1_message_io=fileDesc("CjNhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRjaGFubmVsL3YxL21lc3NhZ2VfaW8ucHJvdG8SImFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEivQEKF1NlbmRDaGFubmVsTWVzc2FnZUlucHV0EhgKB2NoYW5uZWwYASABKAlCB7pIBHICGD8SFAoDb3JnGAIgASgJQge6SARyAhg/Eh0KCXJlY2lwaWVudBgDIAEoCUIKukgHcgUQARiAARJTCgdwYXlsb2FkGAQgASgLMjouYWkuc3RpZ21lci5hZ2VudGljLmFnZW50Y2hhbm5lbC52MS5DaGFubmVsT3V0Ym91bmRQYXlsb2FkQga6SAPIAQEisQEKFkNoYW5uZWxPdXRib3VuZFBheWxvYWQSPwoEdGV4dBgBIAEoCzIvLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuVGV4dFBheWxvYWRIABJHCgh0ZW1wbGF0ZRgCIAEoCzIzLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuVGVtcGxhdGVQYXlsb2FkSABCDQoEa2luZBIFukgCCAEiJwoLVGV4dFBheWxvYWQSGAoEYm9keRgBIAEoCUIKukgHcgUQARiAICKBAgoPVGVtcGxhdGVQYXlsb2FkEhgKBG5hbWUYASABKAlCCrpIB3IFEAEYgAQSGQoIbGFuZ3VhZ2UYAiABKAlCB7pIBHICGBASYQoKcGFyYW1ldGVycxgDIAMoCzJDLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuVGVtcGxhdGVQYXlsb2FkLlBhcmFtZXRlcnNFbnRyeUIIukgFmgECEDISIwoRaGVhZGVyX2ltYWdlX2xpbmsYBCABKAlCCLpIBXIDGIAQGjEKD1BhcmFtZXRlcnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIq0BChhTZW5kQ2hhbm5lbE1lc3NhZ2VPdXRwdXQSRwoHb3V0Y29tZRgBIAEoDjI2LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuQ2hhbm5lbFNlbmRPdXRjb21lEhsKE291dGJvdW5kX21lc3NhZ2VfaWQYAiABKAkSGwoTcHJvdmlkZXJfbWVzc2FnZV9pZBgDIAEoCRIOCgZkZXRhaWwYBCABKAkiYgoZTGlzdENoYW5uZWxUZW1wbGF0ZXNJbnB1dBIYCgdjaGFubmVsGAEgASgJQge6SARyAhg/EhQKA29yZxgCIAEoCUIHukgEcgIYPxIVCg1hcHByb3ZlZF9vbmx5GAMgASgIIlgKEENoYW5uZWxUZW1wbGF0ZXMSRAoHZW50cmllcxgBIAMoCzIzLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuQ2hhbm5lbFRlbXBsYXRlIuYBCg9DaGFubmVsVGVtcGxhdGUSDAoEbmFtZRgBIAEoCRIQCghsYW5ndWFnZRgCIAEoCRIQCghjYXRlZ29yeRgDIAEoCRIOCgZzdGF0dXMYBCABKAkSGAoQcGFyYW1ldGVyX2Zvcm1hdBgFIAEoCRIXCg9wYXJhbWV0ZXJfbmFtZXMYBiADKAkSEQoJYm9keV90ZXh0GAcgASgJEhUKDWhlYWRlcl9mb3JtYXQYCCABKAkSGAoQcmVqZWN0aW9uX3JlYXNvbhgJIAEoCRIaChJ1bnN1cHBvcnRlZF9yZWFzb24YCiABKAkiHAoaTGlzdE1lc3NhZ2luZ0NoYW5uZWxzSW5wdXQiWgoRTWVzc2FnaW5nQ2hhbm5lbHMSRQoHZW50cmllcxgBIAMoCzI0LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuTWVzc2FnaW5nQ2hhbm5lbCI1ChBNZXNzYWdpbmdDaGFubmVsEg8KB2NoYW5uZWwYASABKAkSEAoIcHJvdmlkZXIYAiABKAkqYQoSQ2hhbm5lbFNlbmRPdXRjb21lEiQKIGNoYW5uZWxfc2VuZF9vdXRjb21lX3Vuc3BlY2lmaWVkEAASDAoIYWNjZXB0ZWQQARIKCgZxdWV1ZWQQAhILCgdyZWZ1c2VkEANiBnByb3RvMw",[file_buf_validate_validate]),SendChannelMessageInputSchema=messageDesc2(file_ai_stigmer_agentic_agentchannel_v1_message_io,0),ChannelOutboundPayloadSchema=messageDesc2(file_ai_stigmer_agentic_agentchannel_v1_message_io,1),TextPayloadSchema=messageDesc2(file_ai_stigmer_agentic_agentchannel_v1_message_io,2),TemplatePayloadSchema=messageDesc2(file_ai_stigmer_agentic_agentchannel_v1_message_io,3),SendChannelMessageOutputSchema=messageDesc2(file_ai_stigmer_agentic_agentchannel_v1_message_io,4);var ChannelSendOutcome;(function(ChannelSendOutcome2){ChannelSendOutcome2[ChannelSendOutcome2.channel_send_outcome_unspecified=0]="channel_send_outcome_unspecified",ChannelSendOutcome2[ChannelSendOutcome2.accepted=1]="accepted",ChannelSendOutcome2[ChannelSendOutcome2.queued=2]="queued",ChannelSendOutcome2[ChannelSendOutcome2.refused=3]="refused"})(ChannelSendOutcome||(ChannelSendOutcome={}));var file_ai_stigmer_agentic_agentchannel_v1_outbound=fileDesc("CjFhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRjaGFubmVsL3YxL291dGJvdW5kLnByb3RvEiJhaS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxIo8HChZDaGFubmVsT3V0Ym91bmRNZXNzYWdlEhsKE291dGJvdW5kX21lc3NhZ2VfaWQYASABKAkSGAoQYWdlbnRfY2hhbm5lbF9pZBgCIAEoCRILCgNvcmcYAyABKAkSEgoKc2Vzc2lvbl9pZBgEIAEoCRJJCgZvcmlnaW4YBSABKA4yOS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLkNoYW5uZWxPdXRib3VuZE9yaWdpbhIRCglyZWNpcGllbnQYBiABKAkSSwoHcGF5bG9hZBgHIAEoCzI6LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuQ2hhbm5lbE91dGJvdW5kUGF5bG9hZBJJCgZzdGF0dXMYCCABKA4yOS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLkNoYW5uZWxEZWxpdmVyeVN0YXR1cxIQCghhdHRlbXB0cxgJIAEoBRISCgpsYXN0X2Vycm9yGAogASgJEhcKD2lkZW1wb3RlbmN5X2tleRgLIAEoCRIbChNwcm92aWRlcl9tZXNzYWdlX2lkGAwgASgJEi4KCmNyZWF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYDiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjMKD25leHRfYXR0ZW1wdF9hdBgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASTgoNcmVjZWlwdF9zdGF0ZRgQIAEoDjI3LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuQ2hhbm5lbFJlY2VpcHRTdGF0ZRIWCg5yZWNlaXB0X2RldGFpbBgRIAEoCRIaChJyZWNlaXB0X2Vycm9yX2NvZGUYEiABKAUSLgoKcmVjZWlwdF9hdBgTIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFQoNcmVuZGVyZWRfYm9keRgUIAEoCRJTCgxmYWlsdXJlX2tpbmQYFSABKA4yPS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLkNoYW5uZWxBdHRlbXB0RmFpbHVyZUtpbmQSFgoOYXR0ZW1wdF9kZXRhaWwYFiABKAkqgwEKE0NoYW5uZWxSZWNlaXB0U3RhdGUSHQoZcmVjZWlwdF9zdGF0ZV91bnNwZWNpZmllZBAAEhAKDHJlY2VpcHRfc2VudBABEhUKEXJlY2VpcHRfZGVsaXZlcmVkEAISEAoMcmVjZWlwdF9yZWFkEAMSEgoOcmVjZWlwdF9mYWlsZWQQBCqHAQoVQ2hhbm5lbE91dGJvdW5kT3JpZ2luEicKI2NoYW5uZWxfb3V0Ym91bmRfb3JpZ2luX3Vuc3BlY2lmaWVkEAASGAoUY2hhbm5lbF9jb252ZXJzYXRpb24QARIMCghvcGVyYXRvchACEgwKCHBsYXRmb3JtEAMSDwoLcGFydGljaXBhbnQQBGIGcHJvdG8z",[file_ai_stigmer_agentic_agentchannel_v1_delivery,file_ai_stigmer_agentic_agentchannel_v1_message_io,file_google_protobuf_timestamp]);var ChannelReceiptState;(function(ChannelReceiptState2){ChannelReceiptState2[ChannelReceiptState2.receipt_state_unspecified=0]="receipt_state_unspecified",ChannelReceiptState2[ChannelReceiptState2.receipt_sent=1]="receipt_sent",ChannelReceiptState2[ChannelReceiptState2.receipt_delivered=2]="receipt_delivered",ChannelReceiptState2[ChannelReceiptState2.receipt_read=3]="receipt_read",ChannelReceiptState2[ChannelReceiptState2.receipt_failed=4]="receipt_failed"})(ChannelReceiptState||(ChannelReceiptState={}));var ChannelOutboundOrigin;(function(ChannelOutboundOrigin2){ChannelOutboundOrigin2[ChannelOutboundOrigin2.channel_outbound_origin_unspecified=0]="channel_outbound_origin_unspecified",ChannelOutboundOrigin2[ChannelOutboundOrigin2.channel_conversation=1]="channel_conversation",ChannelOutboundOrigin2[ChannelOutboundOrigin2.operator=2]="operator",ChannelOutboundOrigin2[ChannelOutboundOrigin2.platform=3]="platform",ChannelOutboundOrigin2[ChannelOutboundOrigin2.participant=4]="participant"})(ChannelOutboundOrigin||(ChannelOutboundOrigin={}));var file_ai_stigmer_agentic_agentchannel_v1_conversation_io=fileDesc("CjhhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRjaGFubmVsL3YxL2NvbnZlcnNhdGlvbl9pby5wcm90bxIiYWkuc3RpZ21lci5hZ2VudGljLmFnZW50Y2hhbm5lbC52MSL+AwoTQ2hhbm5lbENvbnZlcnNhdGlvbhIYChBhZ2VudF9jaGFubmVsX2lkGAEgASgJEhgKEGNvbnZlcnNhdGlvbl9rZXkYAiABKAkSCwoDb3JnGAMgASgJEkgKB2NvbnRyb2wYBCABKA4yNy5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLkNvbnZlcnNhdGlvbkNvbnRyb2wSFQoNY29udHJvbGxlZF9ieRgFIAEoCRI2ChJjb250cm9sX2NoYW5nZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD25lZWRzX2F0dGVudGlvbhgHIAEoCBIYChBhdHRlbnRpb25fcmVhc29uGAggASgJEjgKFGF0dGVudGlvbl9jaGFuZ2VkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIUCgxkaXNwbGF5X25hbWUYCiABKAkSPAoYbGFzdF9jdXN0b21lcl9tZXNzYWdlX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI0ChBsYXN0X2FjdGl2aXR5X2F0GAwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIWCg5hd2FpdGluZ19yZXBseRgNIAEoCCKGBgoYQ29udmVyc2F0aW9uVGltZWxpbmVJdGVtEg8KB2l0ZW1faWQYASABKAkSQgoEbGFuZRgCIAEoDjI0LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuQ29udmVyc2F0aW9uTGFuZRJKCgZhdXRob3IYAyABKA4yOi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLkNvbnZlcnNhdGlvbkl0ZW1BdXRob3ISEwoLYXV0aG9yZWRfYnkYBCABKAkSDAoEdGV4dBgFIAEoCRIdChVwcm92aWRlcl9tZXNzYWdlX3R5cGUYBiABKAkSJgoCYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wElIKD2RlbGl2ZXJ5X3N0YXR1cxgIIAEoDjI5LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuQ2hhbm5lbERlbGl2ZXJ5U3RhdHVzEk4KDXJlY2VpcHRfc3RhdGUYCSABKA4yNy5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLkNoYW5uZWxSZWNlaXB0U3RhdGUSSQoGb3JpZ2luGAogASgOMjkuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50Y2hhbm5lbC52MS5DaGFubmVsT3V0Ym91bmRPcmlnaW4SFgoOcmVjZWlwdF9kZXRhaWwYCyABKAkSGgoScmVjZWlwdF9lcnJvcl9jb2RlGAwgASgFEkcKBW1lZGlhGA0gASgLMjguYWkuc3RpZ21lci5hZ2VudGljLmFnZW50Y2hhbm5lbC52MS5Db252ZXJzYXRpb25NZWRpYVJlZhIWCg5hdHRlbXB0X2RldGFpbBgOIAEoCRJbChRhdHRlbXB0X2ZhaWx1cmVfa2luZBgPIAEoDjI9LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuQ2hhbm5lbEF0dGVtcHRGYWlsdXJlS2luZCJSChRDb252ZXJzYXRpb25NZWRpYVJlZhIQCghmaWxlbmFtZRgBIAEoCRIUCgxjb250ZW50X3R5cGUYAiABKAkSEgoKc2l6ZV9ieXRlcxgDIAEoAyLjAQodTGlzdENoYW5uZWxDb252ZXJzYXRpb25zSW5wdXQSFgoDb3JnGAEgASgJQgm6SAZyBBABGD8SIgoQYWdlbnRfY2hhbm5lbF9pZBgCIAEoCUIIukgFcgMYgAESMwoJcGFnZV9pbmZvGAMgASgLMiAuYWkuc3RpZ21lci5jb21tb25zLnJwYy5QYWdlSW5mbxJRCgZmaWx0ZXIYBCABKA4yQS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLkNoYW5uZWxDb252ZXJzYXRpb25MaXN0RmlsdGVyInYKF0NoYW5uZWxDb252ZXJzYXRpb25MaXN0EhMKC3RvdGFsX2NvdW50GAEgASgFEkYKBWl0ZW1zGAIgAygLMjcuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50Y2hhbm5lbC52MS5DaGFubmVsQ29udmVyc2F0aW9uImkKG0dldENoYW5uZWxDb252ZXJzYXRpb25JbnB1dBIkChBhZ2VudF9jaGFubmVsX2lkGAEgASgJQgq6SAdyBRABGIABEiQKEGNvbnZlcnNhdGlvbl9rZXkYAiABKAlCCrpIB3IFEAEYgAEikQEKHEdldENvbnZlcnNhdGlvblRpbWVsaW5lSW5wdXQSJAoQYWdlbnRfY2hhbm5lbF9pZBgBIAEoCUIKukgHcgUQARiAARIkChBjb252ZXJzYXRpb25fa2V5GAIgASgJQgq6SAdyBRABGIABEhEKCXBhZ2Vfc2l6ZRgDIAEoBRISCgpwYWdlX3Rva2VuGAQgASgJInwKFENvbnZlcnNhdGlvblRpbWVsaW5lEksKBWl0ZW1zGAEgAygLMjwuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50Y2hhbm5lbC52MS5Db252ZXJzYXRpb25UaW1lbGluZUl0ZW0SFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIo8BCiRHZXRDb252ZXJzYXRpb25NZWRpYURvd25sb2FkVXJsSW5wdXQSJAoQYWdlbnRfY2hhbm5lbF9pZBgBIAEoCUIKukgHcgUQARiAARIkChBjb252ZXJzYXRpb25fa2V5GAIgASgJQgq6SAdyBRABGIABEhsKB2l0ZW1faWQYAyABKAlCCrpIB3IFEAEYgAIiWwocQ29udmVyc2F0aW9uTWVkaWFEb3dubG9hZFVybBILCgN1cmwYASABKAkSLgoKZXhwaXJlc19hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiZgoYQ29udmVyc2F0aW9uQ29udHJvbElucHV0EiQKEGFnZW50X2NoYW5uZWxfaWQYASABKAlCCrpIB3IFEAEYgAESJAoQY29udmVyc2F0aW9uX2tleRgCIAEoCUIKukgHcgUQARiAASK7AQoYUmVwbHlUb0NvbnZlcnNhdGlvbklucHV0EiQKEGFnZW50X2NoYW5uZWxfaWQYASABKAlCCrpIB3IFEAEYgAESJAoQY29udmVyc2F0aW9uX2tleRgCIAEoCUIKukgHcgUQARiAARJTCgdwYXlsb2FkGAMgASgLMjouYWkuc3RpZ21lci5hZ2VudGljLmFnZW50Y2hhbm5lbC52MS5DaGFubmVsT3V0Ym91bmRQYXlsb2FkQga6SAPIAQEiNwoZRXNjYWxhdGVDb252ZXJzYXRpb25JbnB1dBIaCgZyZWFzb24YASABKAlCCrpIB3IFEAEYgAgqYQoTQ29udmVyc2F0aW9uQ29udHJvbBIkCiBjb252ZXJzYXRpb25fY29udHJvbF91bnNwZWNpZmllZBAAEhEKDWNvbnRyb2xfYWdlbnQQARIRCg1jb250cm9sX2h1bWFuEAIqWQoQQ29udmVyc2F0aW9uTGFuZRIhCh1jb252ZXJzYXRpb25fbGFuZV91bnNwZWNpZmllZBAAEg8KC2xhbmVfcHVibGljEAESEQoNbGFuZV9pbnRlcm5hbBACKpMBChZDb252ZXJzYXRpb25JdGVtQXV0aG9yEigKJGNvbnZlcnNhdGlvbl9pdGVtX2F1dGhvcl91bnNwZWNpZmllZBAAEhMKD2F1dGhvcl9jdXN0b21lchABEhAKDGF1dGhvcl9hZ2VudBACEhMKD2F1dGhvcl90ZWFtbWF0ZRADEhMKD2F1dGhvcl9wbGF0Zm9ybRAEKmkKHUNoYW5uZWxDb252ZXJzYXRpb25MaXN0RmlsdGVyEjAKLGNoYW5uZWxfY29udmVyc2F0aW9uX2xpc3RfZmlsdGVyX3Vuc3BlY2lmaWVkEAASFgoSZmlsdGVyX3dhbnRzX2h1bWFuEAFiBnByb3RvMw",[file_ai_stigmer_agentic_agentchannel_v1_delivery,file_ai_stigmer_agentic_agentchannel_v1_message_io,file_ai_stigmer_agentic_agentchannel_v1_outbound,file_ai_stigmer_commons_rpc_pagination,file_buf_validate_validate,file_google_protobuf_timestamp]);var EscalateConversationInputSchema=messageDesc2(file_ai_stigmer_agentic_agentchannel_v1_conversation_io,12),ConversationControl;(function(ConversationControl2){ConversationControl2[ConversationControl2.conversation_control_unspecified=0]="conversation_control_unspecified",ConversationControl2[ConversationControl2.control_agent=1]="control_agent",ConversationControl2[ConversationControl2.control_human=2]="control_human"})(ConversationControl||(ConversationControl={}));var ConversationLane;(function(ConversationLane2){ConversationLane2[ConversationLane2.conversation_lane_unspecified=0]="conversation_lane_unspecified",ConversationLane2[ConversationLane2.lane_public=1]="lane_public",ConversationLane2[ConversationLane2.lane_internal=2]="lane_internal"})(ConversationLane||(ConversationLane={}));var ConversationItemAuthor;(function(ConversationItemAuthor2){ConversationItemAuthor2[ConversationItemAuthor2.conversation_item_author_unspecified=0]="conversation_item_author_unspecified",ConversationItemAuthor2[ConversationItemAuthor2.author_customer=1]="author_customer",ConversationItemAuthor2[ConversationItemAuthor2.author_agent=2]="author_agent",ConversationItemAuthor2[ConversationItemAuthor2.author_teammate=3]="author_teammate",ConversationItemAuthor2[ConversationItemAuthor2.author_platform=4]="author_platform"})(ConversationItemAuthor||(ConversationItemAuthor={}));var ChannelConversationListFilter;(function(ChannelConversationListFilter2){ChannelConversationListFilter2[ChannelConversationListFilter2.channel_conversation_list_filter_unspecified=0]="channel_conversation_list_filter_unspecified",ChannelConversationListFilter2[ChannelConversationListFilter2.filter_wants_human=1]="filter_wants_human"})(ChannelConversationListFilter||(ChannelConversationListFilter={}));var file_ai_stigmer_agentic_agentchannel_v1_conversation_command=fileDesc("Cj1haS9zdGlnbWVyL2FnZW50aWMvYWdlbnRjaGFubmVsL3YxL2NvbnZlcnNhdGlvbl9jb21tYW5kLnByb3RvEiJhaS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxMrcICiRDaGFubmVsQ29udmVyc2F0aW9uQ29tbWFuZENvbnRyb2xsZXIS3QEKBXJlcGx5EjwuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50Y2hhbm5lbC52MS5SZXBseVRvQ29udmVyc2F0aW9uSW5wdXQaPC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLlNlbmRDaGFubmVsTWVzc2FnZU91dHB1dCJYwrgYVAgkEC8iEGFnZW50X2NoYW5uZWxfaWQqPHVuYXV0aG9yaXplZCB0byBwYXJ0aWNpcGF0ZSBpbiBjb252ZXJzYXRpb25zIG9uIHRoaXMgY2hhbm5lbBLbAQoIdGFrZU92ZXISPC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLkNvbnZlcnNhdGlvbkNvbnRyb2xJbnB1dBo3LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuQ2hhbm5lbENvbnZlcnNhdGlvbiJYwrgYVAgkEC8iEGFnZW50X2NoYW5uZWxfaWQqPHVuYXV0aG9yaXplZCB0byBwYXJ0aWNpcGF0ZSBpbiBjb252ZXJzYXRpb25zIG9uIHRoaXMgY2hhbm5lbBLbAQoIaGFuZEJhY2sSPC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLkNvbnZlcnNhdGlvbkNvbnRyb2xJbnB1dBo3LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuQ2hhbm5lbENvbnZlcnNhdGlvbiJYwrgYVAgkEC8iEGFnZW50X2NoYW5uZWxfaWQqPHVuYXV0aG9yaXplZCB0byBwYXJ0aWNpcGF0ZSBpbiBjb252ZXJzYXRpb25zIG9uIHRoaXMgY2hhbm5lbBLhAQoOY2xlYXJBdHRlbnRpb24SPC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLkNvbnZlcnNhdGlvbkNvbnRyb2xJbnB1dBo3LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuQ2hhbm5lbENvbnZlcnNhdGlvbiJYwrgYVAgkEC8iEGFnZW50X2NoYW5uZWxfaWQqPHVuYXV0aG9yaXplZCB0byBwYXJ0aWNpcGF0ZSBpbiBjb252ZXJzYXRpb25zIG9uIHRoaXMgY2hhbm5lbBKIAQoIZXNjYWxhdGUSPS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLkVzY2FsYXRlQ29udmVyc2F0aW9uSW5wdXQaNy5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLkNoYW5uZWxDb252ZXJzYXRpb24iBNC4GAEaBKD/Ky9iBnByb3RvMw",[file_ai_stigmer_agentic_agentchannel_v1_conversation_io,file_ai_stigmer_agentic_agentchannel_v1_message_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),ChannelConversationCommandController=serviceDesc(file_ai_stigmer_agentic_agentchannel_v1_conversation_command,0);var file_ai_stigmer_agentic_agentchannel_v1_message_command=fileDesc("CjhhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRjaGFubmVsL3YxL21lc3NhZ2VfY29tbWFuZC5wcm90bxIiYWkuc3RpZ21lci5hZ2VudGljLmFnZW50Y2hhbm5lbC52MTK4AQofQ2hhbm5lbE1lc3NhZ2VDb21tYW5kQ29udHJvbGxlchKOAQoLc2VuZE1lc3NhZ2USOy5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLlNlbmRDaGFubmVsTWVzc2FnZUlucHV0GjwuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50Y2hhbm5lbC52MS5TZW5kQ2hhbm5lbE1lc3NhZ2VPdXRwdXQiBNC4GAEaBKD/Ky9iBnByb3RvMw",[file_ai_stigmer_agentic_agentchannel_v1_message_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),ChannelMessageCommandController=serviceDesc(file_ai_stigmer_agentic_agentchannel_v1_message_command,0);var file_ai_stigmer_agentic_agentexecution_v1_approval=fileDesc("CjNhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvYXBwcm92YWwucHJvdG8SJGFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MSLLAwoPUGVuZGluZ0FwcHJvdmFsEhQKDHRvb2xfY2FsbF9pZBgBIAEoCRIRCgl0b29sX25hbWUYAiABKAkSDwoHbWVzc2FnZRgDIAEoCRIUCgxhcmdzX3ByZXZpZXcYBCABKAkSFAoMcmVxdWVzdGVkX2F0GAUgASgJEhYKDmZyb21fc3ViX2FnZW50GAYgASgIEhYKDnN1Yl9hZ2VudF9uYW1lGAcgASgJEhcKD21jcF9zZXJ2ZXJfc2x1ZxgIIAEoCRIZChFzdWJfYWdlbnRfc3ViamVjdBgJIAEoCRIXCg9hZ2VudF9yYXRpb25hbGUYCiABKAkSFgoOYnJhbmNoX2F0X2RlbnkYCyABKAkSGAoQaGVhZF9zaGFfYXRfZGVueRgMIAEoCRJBCgl0b29sX2tpbmQYDSABKA4yLi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuVG9vbEtpbmQSWgoWYXBwcm92YWxfcG9saWN5X3NvdXJjZRgPIAEoDjI6LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BcHByb3ZhbFBvbGljeVNvdXJjZUoECA4QDyKDAQoZQ2hpbGRBcHByb3ZhbE5vdGlmaWNhdGlvbhIUCgxleGVjdXRpb25faWQYASABKAkSUAoRcGVuZGluZ19hcHByb3ZhbHMYAiADKAsyNS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuUGVuZGluZ0FwcHJvdmFsIp0DCg9BcHByb3ZhbFJlcXVlc3QSGwoTYXBwcm92YWxfcmVxdWVzdF9pZBgBIAEoCRIUCgx0b29sX2NhbGxfaWQYAiABKAkSFAoMcmVxdWVzdGVkX2F0GAMgASgJEhEKCXRvb2xfbmFtZRgEIAEoCRIPCgdtZXNzYWdlGAUgASgJEhQKDGFyZ3NfcHJldmlldxgGIAEoCRIWCg5mcm9tX3N1Yl9hZ2VudBgHIAEoCBIWCg5zdWJfYWdlbnRfbmFtZRgIIAEoCRIZChFzdWJfYWdlbnRfc3ViamVjdBgJIAEoCRIXCg9tY3Bfc2VydmVyX3NsdWcYCiABKAkSQQoJdG9vbF9raW5kGAsgASgOMi4uYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlRvb2xLaW5kEloKFmFwcHJvdmFsX3BvbGljeV9zb3VyY2UYDSABKA4yOi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQXBwcm92YWxQb2xpY3lTb3VyY2VKBAgMEA0ilwEKEkFwcHJvdmFsUmV0cmFjdGlvbhIbChNhcHByb3ZhbF9yZXF1ZXN0X2lkGAEgASgJEk4KBnJlYXNvbhgCIAEoDjI+LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BcHByb3ZhbFJldHJhY3Rpb25SZWFzb24SFAoMcmV0cmFjdGVkX2F0GAMgASgJIq4BChBBcHByb3ZhbERlY2lzaW9uEhsKE2FwcHJvdmFsX3JlcXVlc3RfaWQYASABKAkSRAoGYWN0aW9uGAIgASgOMjQuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFwcHJvdmFsQWN0aW9uEhIKCmRlY2lkZWRfYXQYAyABKAkSEgoKZGVjaWRlZF9ieRgEIAEoCRIPCgdjb21tZW50GAUgASgJIp4DCg1BcHByb3ZhbEV2ZW50EhAKCGV2ZW50X2lkGAEgASgJEhsKE2FwcHJvdmFsX3JlcXVlc3RfaWQYAiABKAkSSwoKZXZlbnRfdHlwZRgDIAEoDjI3LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BcHByb3ZhbEV2ZW50VHlwZRIRCgl0aW1lc3RhbXAYBCABKAkSDQoFYWN0b3IYBSABKAkSSgoJcmVxdWVzdGVkGAYgASgLMjUuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFwcHJvdmFsUmVxdWVzdEgAEkkKB2RlY2lkZWQYByABKAsyNi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQXBwcm92YWxEZWNpc2lvbkgAEk0KCXJldHJhY3RlZBgIIAEoCzI4LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BcHByb3ZhbFJldHJhY3Rpb25IAEIJCgdwYXlsb2FkInAKE0FwcHJvdmFsRXZlbnRTdHJlYW0SFAoMZXhlY3V0aW9uX2lkGAEgASgJEkMKBmV2ZW50cxgCIAMoCzIzLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BcHByb3ZhbEV2ZW50YgZwcm90bzM",[file_ai_stigmer_agentic_agentexecution_v1_enum]);var file_ai_stigmer_agentic_agentexecution_v1_artifact=fileDesc("CjNhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvYXJ0aWZhY3QucHJvdG8SJGFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MSKEAgoRRXhlY3V0aW9uQXJ0aWZhY3QSDAoEbmFtZRgBIAEoCRIUCgxzYW5kYm94X3BhdGgYAiABKAkSUwoEa2luZBgDIAEoDjI7LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5FeGVjdXRpb25BcnRpZmFjdEtpbmRCCLpIBYIBAhABEhIKCnNpemVfYnl0ZXMYBCABKAMSEwoLc3RvcmFnZV9rZXkYBSABKAkSEgoKY3JlYXRlZF9hdBgHIAEoCRISCgpleHBpcmVzX2F0GAggASgJEg8KB2VudHJpZXMYCSADKAkSFAoMY29udGVudF9oYXNoGAogASgJYgZwcm90bzM",[file_ai_stigmer_agentic_agentexecution_v1_enum,file_buf_validate_validate]);var file_ai_stigmer_agentic_agentexecution_v1_context=fileDesc("CjJhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvY29udGV4dC5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxIoYDChJTdW1tYXJpemF0aW9uRXZlbnQSEQoJdGltZXN0YW1wGAEgASgJEhUKDXRva2Vuc19iZWZvcmUYAiABKAUSFAoMdG9rZW5zX2FmdGVyGAMgASgFEhkKEWNvbXByZXNzaW9uX3JhdGlvGAQgASgCEhMKC2R1cmF0aW9uX21zGAUgASgFEhsKE3N1bW1hcml6YXRpb25fbW9kZWwYBiABKAkSFwoPbWVzc2FnZXNfYmVmb3JlGAcgASgFEhYKDm1lc3NhZ2VzX2FmdGVyGAggASgFEkkKBnNvdXJjZRgJIAEoDjI5LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5TdW1tYXJpemF0aW9uU291cmNlEiIKGnN1bW1hcml6YXRpb25faW5wdXRfdG9rZW5zGAogASgFEiMKG3N1bW1hcml6YXRpb25fb3V0cHV0X3Rva2VucxgLIAEoBRIeChZzdW1tYXJpemF0aW9uX2Nvc3RfdXNkGAwgASgBIqoCCgtDb250ZXh0SW5mbxIbChNjdXJyZW50X3Rva2VuX2NvdW50GAEgASgFEhwKFGNvbnRleHRfd2luZG93X2xpbWl0GAIgASgFEicKH3N1bW1hcml6YXRpb25fdHJpZ2dlcl90aHJlc2hvbGQYAyABKAUSIwobc3VtbWFyaXphdGlvbl90YXJnZXRfdG9rZW5zGAQgASgFEh0KFXN1bW1hcml6YXRpb25fZW5hYmxlZBgFIAEoCBJWChRzdW1tYXJpemF0aW9uX2V2ZW50cxgGIAMoCzI4LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5TdW1tYXJpemF0aW9uRXZlbnQSGwoTdXRpbGl6YXRpb25fcGVyY2VudBgHIAEoAmIGcHJvdG8z",[file_ai_stigmer_agentic_agentexecution_v1_enum]);var file_ai_stigmer_agentic_agentexecution_v1_message=fileDesc("CjJhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvbWVzc2FnZS5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxIoICCgxBZ2VudE1lc3NhZ2USSQoEdHlwZRgBIAEoDjIxLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5NZXNzYWdlVHlwZUIIukgFggECEAESDwoHY29udGVudBgCIAEoCRIRCgl0aW1lc3RhbXAYAyABKAkSQgoKdG9vbF9jYWxscxgEIAMoCzIuLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5Ub29sQ2FsbBIpCghtZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSFAoMaXNfc3RyZWFtaW5nGAYgASgIIqUHCghUb29sQ2FsbBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEiUKBGFyZ3MYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg4KBnJlc3VsdBgEIAEoCRJOCgZzdGF0dXMYBSABKA4yNC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuVG9vbENhbGxTdGF0dXNCCLpIBYIBAhABEhIKCnN0YXJ0ZWRfYXQYByABKAkSFAoMY29tcGxldGVkX2F0GAggASgJEg0KBWVycm9yGAkgASgJEhkKEXJlcXVpcmVzX2FwcHJvdmFsGAogASgIEhgKEGFwcHJvdmFsX21lc3NhZ2UYCyABKAkSHQoVYXBwcm92YWxfcmVxdWVzdGVkX2F0GAwgASgJEhsKE2FwcHJvdmFsX2RlY2lkZWRfYXQYDSABKAkSEwoLYXBwcm92ZWRfYnkYDiABKAkSTQoPYXBwcm92YWxfYWN0aW9uGA8gASgOMjQuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFwcHJvdmFsQWN0aW9uEhQKDGlzX3N0cmVhbWluZxgQIAEoCBJXChBzdHJlYW1pbmdfc291cmNlGBMgASgOMj0uYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlRvb2xDYWxsU3RyZWFtaW5nU291cmNlEhcKD21jcF9zZXJ2ZXJfc2x1ZxgRIAEoCRIUCgxhcmdzX3ByZXZpZXcYEiABKAkSQQoJdG9vbF9raW5kGBQgASgOMi4uYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlRvb2xLaW5kEksKCm91dHB1dF9yZWYYFSABKAsyNy5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuVG9vbENhbGxPdXRwdXRSZWYSWgoWYXBwcm92YWxfcG9saWN5X3NvdXJjZRgXIAEoDjI6LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BcHByb3ZhbFBvbGljeVNvdXJjZRIdChVwb2xpY3lfZW5naW5lX3ZlcnNpb24YGCABKAkSHwoXYXBwcm92YWxfY29udGVudF9kaWdlc3QYGSABKAkSGgoSZmlsZV9jaGFuZ2Vfc2V0X2lkGBogASgJSgQIFhAXIpIBChFUb29sQ2FsbE91dHB1dFJlZhITCgtzdG9yYWdlX2tleRgBIAEoCRISCgpzaXplX2J5dGVzGAMgASgDEhQKDGNvbnRlbnRfaGFzaBgEIAEoCRIRCgltaW1lX3R5cGUYBSABKAkSEAoIaXNfaW1hZ2UYBiABKAgSGQoRdHJ1bmNhdGVkX3ByZXZpZXcYByABKAkiwQMKCkZpbGVDaGFuZ2USDAoEcGF0aBgBIAEoCRIVCg1hYnNvbHV0ZV9wYXRoGAIgASgJElMKC2NoYW5nZV90eXBlGAMgASgOMjQuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkZpbGVDaGFuZ2VUeXBlQgi6SAWCAQIQARJdCg1jYXB0dXJlX2xldmVsGAQgASgOMjwuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkZpbGVDaGFuZ2VDYXB0dXJlTGV2ZWxCCLpIBYIBAhABEkEKBmJlZm9yZRgFIAEoCzIxLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5GaWxlQ29udGVudBJACgVhZnRlchgGIAEoCzIxLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5GaWxlQ29udGVudBIUCgx1bmlmaWVkX2RpZmYYByABKAkSEwoLbGluZXNfYWRkZWQYCCABKAUSFQoNbGluZXNfcmVtb3ZlZBgJIAEoBRITCgtyZW5hbWVfZnJvbRgKIAEoCSKCAQoLRmlsZUNvbnRlbnQSEAoGaW5saW5lGAEgASgJSAASRgoDcmVmGAIgASgLMjcuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlRvb2xDYWxsT3V0cHV0UmVmSAASEQoJaXNfYmluYXJ5GAMgASgIQgYKBGJvZHliBnByb3RvMw",[file_ai_stigmer_agentic_agentexecution_v1_enum,file_buf_validate_validate,file_google_protobuf_struct]);var file_ai_stigmer_agentic_agentexecution_v1_filereview=fileDesc("CjVhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvZmlsZXJldmlldy5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxIokFCg1GaWxlQ2hhbmdlU2V0EgoKAmlkGAEgASgJEg8KB3R1cm5faWQYAiABKAkSEgoKaGFybmVzc19pZBgDIAEoCRJTCgZzdGF0dXMYBCABKA4yOS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRmlsZUNoYW5nZVNldFN0YXR1c0IIukgFggECEAESTAoRYmFzZWxpbmVfc25hcHNob3QYBSABKAsyMS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuU25hcHNob3RSZWYSTQoSY2FuZGlkYXRlX3NuYXBzaG90GAYgASgLMjEuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlNuYXBzaG90UmVmEkwKEWFwcHJvdmVkX3NuYXBzaG90GAcgASgLMjEuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlNuYXBzaG90UmVmEkkKB2NoYW5nZXMYCCADKAsyOC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQ2FwdHVyZWRGaWxlQ2hhbmdlEhgKEGFnZ3JlZ2F0ZV9kaWdlc3QYCSABKAkSWwoRZGlmZl9jb21wbGV0ZW5lc3MYCiABKA4yNi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRGlmZkNvbXBsZXRlbmVzc0IIukgFggECEAESRQoJZGVjaXNpb25zGAsgAygLMjIuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkZpbGVEZWNpc2lvbiKoBQoSQ2FwdHVyZWRGaWxlQ2hhbmdlEgoKAmlkGAEgASgJEhMKC3BhdGhfYmVmb3JlGAIgASgJEhIKCnBhdGhfYWZ0ZXIYAyABKAkSTAoEa2luZBgEIAEoDjI0LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5GaWxlQ2hhbmdlS2luZEIIukgFggECEAESVwoNY2FwdHVyZV9jbGFzcxgFIAEoDjI2LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5GaWxlQ2FwdHVyZUNsYXNzQgi6SAWCAQIQARJBCgZiZWZvcmUYBiABKAsyMS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRmlsZUNvbnRlbnQSQAoFYWZ0ZXIYByABKAsyMS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRmlsZUNvbnRlbnQSFQoNYmVmb3JlX3NoYTI1NhgIIAEoCRIUCgxhZnRlcl9zaGEyNTYYCSABKAkSTQoMdW5pZmllZF9kaWZmGAogASgLMjcuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlRvb2xDYWxsT3V0cHV0UmVmEhUKDWRpZmZfY29tcGxldGUYCyABKAgSEwoLZmlsZV9kaWdlc3QYDCABKAkSXQoOYmxvY2tlZF9yZWFzb24YDSABKA4yOy5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRmlsZVJldmlld0Jsb2NrUmVhc29uQgi6SAWCAQIQARITCgtsaW5lc19hZGRlZBgOIAEoBRIVCg1saW5lc19yZW1vdmVkGA8gASgFItsBCgtTbmFwc2hvdFJlZhJKCgRraW5kGAEgASgOMjIuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlNuYXBzaG90S2luZEIIukgFggECEAESPQoDZ2l0GAIgASgLMjAuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkdpdFRyZWVSZWYSQQoDY2FzGAMgASgLMjQuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkNhc01hbmlmZXN0UmVmIisKCkdpdFRyZWVSZWYSEAoIdHJlZV9vaWQYASABKAkSCwoDcmVmGAIgASgJIj8KDkNhc01hbmlmZXN0UmVmEhcKD21hbmlmZXN0X2RpZ2VzdBgBIAEoCRIUCgxhcnRpZmFjdF91cmkYAiABKAkitwMKDEZpbGVEZWNpc2lvbhIKCgJpZBgBIAEoCRIVCg1jaGFuZ2Vfc2V0X2lkGAIgASgJElAKBXNjb3BlGAMgASgOMjcuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkZpbGVEZWNpc2lvblNjb3BlQgi6SAWCAQIQARIWCg5maWxlX2NoYW5nZV9pZBgEIAEoCRJSCgZhY3Rpb24YBSABKA4yOC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRmlsZURlY2lzaW9uQWN0aW9uQgi6SAWCAQIQARIXCg9leHBlY3RlZF9kaWdlc3QYBiABKAkSEwoLcmV2aWV3ZXJfaWQYByABKAkSEgoKZGVjaWRlZF9hdBgIIAEoCRIOCgZyZWFzb24YCSABKAkSIAoYYWNrbm93bGVkZ2VfdW5yZXZpZXdhYmxlGAogASgIElIKBm9yaWdpbhgLIAEoDjI4LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5GaWxlRGVjaXNpb25PcmlnaW5CCLpIBYIBAhABIqYBChpGaWxlUmV2aWV3QmFzZWxpbmVDYXB0dXJlZBIVCg1jaGFuZ2Vfc2V0X2lkGAEgASgJEg8KB3R1cm5faWQYAiABKAkSEgoKaGFybmVzc19pZBgDIAEoCRJMChFiYXNlbGluZV9zbmFwc2hvdBgEIAEoCzIxLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5TbmFwc2hvdFJlZiJeChVUdXJuQ29tbWFuZFByb3ZlbmFuY2USHQoVY29uc2VudF90b29sX2NhbGxfaWRzGAEgAygJEiYKHmF1dGhvcml6ZWRfYnlfYXV0b19hcHByb3ZlX2FsbBgCIAEoCCKeAwobRmlsZVJldmlld0NhbmRpZGF0ZUNhcHR1cmVkEhUKDWNoYW5nZV9zZXRfaWQYASABKAkSTQoSY2FuZGlkYXRlX3NuYXBzaG90GAIgASgLMjEuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlNuYXBzaG90UmVmEkkKB2NoYW5nZXMYAyADKAsyOC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQ2FwdHVyZWRGaWxlQ2hhbmdlEhgKEGFnZ3JlZ2F0ZV9kaWdlc3QYBCABKAkSWwoRZGlmZl9jb21wbGV0ZW5lc3MYBSABKA4yNi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRGlmZkNvbXBsZXRlbmVzc0IIukgFggECEAESVwoSY29tbWFuZF9wcm92ZW5hbmNlGAYgASgLMjsuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlR1cm5Db21tYW5kUHJvdmVuYW5jZSJ7ChRGaWxlUmV2aWV3UmVjb25jaWxlZBIVCg1jaGFuZ2Vfc2V0X2lkGAEgASgJEkwKEWFwcHJvdmVkX3NuYXBzaG90GAIgASgLMjEuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlNuYXBzaG90UmVmIo8BChFGaWxlUmV2aWV3RmFpbHVyZRIVCg1jaGFuZ2Vfc2V0X2lkGAEgASgJElMKBGtpbmQYAiABKA4yOy5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRmlsZVJldmlld0ZhaWx1cmVLaW5kQgi6SAWCAQIQARIOCgZkZXRhaWwYAyABKAki6QQKD0ZpbGVSZXZpZXdFdmVudBIQCghldmVudF9pZBgBIAEoCRIVCg1jaGFuZ2Vfc2V0X2lkGAIgASgJElcKCmV2ZW50X3R5cGUYAyABKA4yOS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRmlsZVJldmlld0V2ZW50VHlwZUIIukgFggECEAESEQoJdGltZXN0YW1wGAQgASgJEg0KBWFjdG9yGAUgASgJEl0KEWJhc2VsaW5lX2NhcHR1cmVkGAYgASgLMkAuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkZpbGVSZXZpZXdCYXNlbGluZUNhcHR1cmVkSAASXwoSY2FuZGlkYXRlX2NhcHR1cmVkGAcgASgLMkEuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkZpbGVSZXZpZXdDYW5kaWRhdGVDYXB0dXJlZEgAEkoKDGZpbGVfZGVjaWRlZBgIIAEoCzIyLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5GaWxlRGVjaXNpb25IABJQCgpyZWNvbmNpbGVkGAkgASgLMjouYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkZpbGVSZXZpZXdSZWNvbmNpbGVkSAASSQoGZmFpbGVkGAogASgLMjcuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkZpbGVSZXZpZXdGYWlsdXJlSABCCQoHcGF5bG9hZCJ0ChVGaWxlUmV2aWV3RXZlbnRTdHJlYW0SFAoMZXhlY3V0aW9uX2lkGAEgASgJEkUKBmV2ZW50cxgCIAMoCzI1LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5GaWxlUmV2aWV3RXZlbnQi0wEKEkZpbGVDaGFuZ2VQcm9ncmVzcxIVCg1jaGFuZ2Vfc2V0X2lkGAEgASgJEhUKDWZpbGVzX2NoYW5nZWQYAiABKAUSEwoLbGluZXNfYWRkZWQYAyABKAUSFQoNbGluZXNfcmVtb3ZlZBgEIAEoBRJOCgdlbnRyaWVzGAUgAygLMj0uYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkZpbGVDaGFuZ2VQcm9ncmVzc0VudHJ5EhMKC2NhcHR1cmVkX2F0GAYgASgJIrwBChdGaWxlQ2hhbmdlUHJvZ3Jlc3NFbnRyeRITCgtwYXRoX2JlZm9yZRgBIAEoCRISCgpwYXRoX2FmdGVyGAIgASgJEkwKBGtpbmQYAyABKA4yNC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRmlsZUNoYW5nZUtpbmRCCLpIBYIBAhABEhMKC2xpbmVzX2FkZGVkGAQgASgFEhUKDWxpbmVzX3JlbW92ZWQYBSABKAViBnByb3RvMw",[file_ai_stigmer_agentic_agentexecution_v1_enum,file_ai_stigmer_agentic_agentexecution_v1_message,file_buf_validate_validate]);var file_ai_stigmer_agentic_executioncontext_v1_spec=fileDesc("CjFhaS9zdGlnbWVyL2FnZW50aWMvZXhlY3V0aW9uY29udGV4dC92MS9zcGVjLnByb3RvEiZhaS5zdGlnbWVyLmFnZW50aWMuZXhlY3V0aW9uY29udGV4dC52MSLwAQoURXhlY3V0aW9uQ29udGV4dFNwZWMSHQoMZXhlY3V0aW9uX2lkGAEgASgJQge6SARyAhABElQKBGRhdGEYAiADKAsyRi5haS5zdGlnbWVyLmFnZW50aWMuZXhlY3V0aW9uY29udGV4dC52MS5FeGVjdXRpb25Db250ZXh0U3BlYy5EYXRhRW50cnkaYwoJRGF0YUVudHJ5EgsKA2tleRgBIAEoCRJFCgV2YWx1ZRgCIAEoCzI2LmFpLnN0aWdtZXIuYWdlbnRpYy5leGVjdXRpb25jb250ZXh0LnYxLkV4ZWN1dGlvblZhbHVlOgI4ASIyCg5FeGVjdXRpb25WYWx1ZRINCgV2YWx1ZRgBIAEoCRIRCglpc19zZWNyZXQYAiABKAhiBnByb3RvMw",[file_buf_validate_validate]);var ExecutionValueSchema=messageDesc2(file_ai_stigmer_agentic_executioncontext_v1_spec,1);var file_ai_stigmer_agentic_session_v1_spec=fileDesc("CihhaS9zdGlnbWVyL2FnZW50aWMvc2Vzc2lvbi92MS9zcGVjLnByb3RvEh1haS5zdGlnbWVyLmFnZW50aWMuc2Vzc2lvbi52MSKWBwoLU2Vzc2lvblNwZWMSGQoRYWdlbnRfaW5zdGFuY2VfaWQYASABKAkSDwoHc3ViamVjdBgCIAEoCRIYChBoYXJuZXNzX3N0YXRlX2lkGAMgASgJEiAKGGhhcm5lc3Nfc3RhdGVfaWRfaGlzdG9yeRgNIAMoCRJKCghtZXRhZGF0YRgFIAMoCzI4LmFpLnN0aWdtZXIuYWdlbnRpYy5zZXNzaW9uLnYxLlNlc3Npb25TcGVjLk1ldGFkYXRhRW50cnkSSAoRd29ya3NwYWNlX2VudHJpZXMYBiADKAsyLS5haS5zdGlnbWVyLmFnZW50aWMuc2Vzc2lvbi52MS5Xb3Jrc3BhY2VFbnRyeRLZAQoRbWNwX3NlcnZlcl91c2FnZXMYByADKAsyKy5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnQudjEuTWNwU2VydmVyVXNhZ2VCkAG6SIwBkgGIASKFAboBgQEKHnNlc3Npb25fbWNwX3NlcnZlcl91c2FnZXMua2luZBI/bWNwX3NlcnZlcl91c2FnZXMgbXVzdCByZWZlcmVuY2UgcmVzb3VyY2VzIHdpdGgga2luZD1tY3Bfc2VydmVyGh50aGlzLm1jcF9zZXJ2ZXJfcmVmLmtpbmQgPT0gNDQSuAEKCnNraWxsX3JlZnMYCCADKAsyNC5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuQXBpUmVzb3VyY2VSZWZlcmVuY2VCbrpIZ5IBZCJiugFfChdzZXNzaW9uX3NraWxsX3JlZnMua2luZBIzc2tpbGxfcmVmcyBtdXN0IHJlZmVyZW5jZSByZXNvdXJjZXMgd2l0aCBraW5kPXNraWxsGg90aGlzLmtpbmQgPT0gNDPghSwrEjcKB2hhcm5lc3MYCiABKA4yJi5haS5zdGlnbWVyLmFnZW50aWMuc2Vzc2lvbi52MS5IYXJuZXNzEj4KC2N1cnNvcl9tb2RlGAsgASgOMikuYWkuc3RpZ21lci5hZ2VudGljLnNlc3Npb24udjEuQ3Vyc29yTW9kZRJIChBleGVjdXRpb25fdGFyZ2V0GAwgASgOMi4uYWkuc3RpZ21lci5hZ2VudGljLnNlc3Npb24udjEuRXhlY3V0aW9uVGFyZ2V0Gi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AWIGcHJvdG8z",[file_ai_stigmer_agentic_agent_v1_spec,file_ai_stigmer_agentic_session_v1_enum,file_ai_stigmer_agentic_session_v1_workspace,file_ai_stigmer_commons_apiresource_field_options,file_ai_stigmer_commons_apiresource_io,file_buf_validate_validate]);var file_ai_stigmer_agentic_agentexecution_v1_spec=fileDesc("Ci9haS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvc3BlYy5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxIo4KChJBZ2VudEV4ZWN1dGlvblNwZWMSEgoKc2Vzc2lvbl9pZBgBIAEoCRIQCghhZ2VudF9pZBgCIAEoCRJACgxzZXNzaW9uX3NwZWMYDSABKAsyKi5haS5zdGlnbWVyLmFnZW50aWMuc2Vzc2lvbi52MS5TZXNzaW9uU3BlYxIYCgdtZXNzYWdlGAMgASgJQge6SARyAhABEk8KEGV4ZWN1dGlvbl9jb25maWcYBCABKAsyNS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRXhlY3V0aW9uQ29uZmlnEl0KC3J1bnRpbWVfZW52GAUgAygLMkguYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFnZW50RXhlY3V0aW9uU3BlYy5SdW50aW1lRW52RW50cnkSFgoOY2FsbGJhY2tfdG9rZW4YBiABKAwSGAoQYXV0b19hcHByb3ZlX2FsbBgHIAEoCBIaChJwYXJlbnRfd29ya2Zsb3dfaWQYCCABKAkSRQoLYXR0YWNobWVudHMYCSADKAsyMC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQXR0YWNobWVudBIbChN3b3Jrc3BhY2VfZmlsZV9yZWZzGAogAygJEhsKE2FjdGl2aXR5X3Rhc2tfcXVldWUYCyABKAkSHwoXc3VwZXJzZWRlc19leGVjdXRpb25faWQYDCABKAkSVwoUY29udmVyc2F0aW9uX2NhdGNodXAYDiABKAsyOS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQ29udmVyc2F0aW9uQ2F0Y2h1cBJXChRkZWNsYXJlZF9wcmVmZXJlbmNlcxgPIAEoCzI5LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5EZWNsYXJlZFByZWZlcmVuY2VzGmkKD1J1bnRpbWVFbnZFbnRyeRILCgNrZXkYASABKAkSRQoFdmFsdWUYAiABKAsyNi5haS5zdGlnbWVyLmFnZW50aWMuZXhlY3V0aW9uY29udGV4dC52MS5FeGVjdXRpb25WYWx1ZToCOAE6uAO6SLQDGssBCiFhZ2VudF9leGVjdXRpb24uc2Vzc2lvbl9leGNsdXNpdmUScnNlc3Npb25faWQgYW5kIHNlc3Npb25fc3BlYyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIOKAlCByZWZlcmVuY2UgYW4gZXhpc3Rpbmcgc2Vzc2lvbiBvciBkZWZpbmUgYSBuZXcgb25lLCBub3QgYm90aBoyISh0aGlzLnNlc3Npb25faWQgIT0gJycgJiYgaGFzKHRoaXMuc2Vzc2lvbl9zcGVjKSka4wEKKmFnZW50X2V4ZWN1dGlvbi5zZXNzaW9uX3NwZWNfaGFybmVzc19zdGF0ZRJwc2Vzc2lvbl9zcGVjLmhhcm5lc3Nfc3RhdGVfaWQgbXVzdCBiZSBlbXB0eSDigJQgaGFybmVzcyBzdGF0ZSBpcyBjcmVhdGVkIGJ5IHRoZSBydW5uZXIgYWZ0ZXIgdGhlIGZpcnN0IGV4ZWN1dGlvbhpDIWhhcyh0aGlzLnNlc3Npb25fc3BlYykgfHwgdGhpcy5zZXNzaW9uX3NwZWMuaGFybmVzc19zdGF0ZV9pZCA9PSAnJyKlBAoPRXhlY3V0aW9uQ29uZmlnEhIKCm1vZGVsX25hbWUYASABKAkSWQoSY29udGV4dF9tYW5hZ2VtZW50GAIgASgLMj0uYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkNvbnRleHRNYW5hZ2VtZW50Q29uZmlnEhcKD21heF90b29sX3JvdW5kcxgDIAEoBRIdChVtYXhfdG9vbF9yZXN1bHRfY2hhcnMYBCABKAUSFAoMbWF4X2Nvc3RfdXNkGAUgASgBElkKEGludGVyYWN0aW9uX21vZGUYBiABKA4yNS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuSW50ZXJhY3Rpb25Nb2RlQgi6SAWCAQIQARI5ChhzdHJ1Y3R1cmVkX291dHB1dF9zY2hlbWEYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhcKD2J1aWxkX2Zyb21fcGxhbhgIIAEoCBJTCg1hcHByb3ZhbF9tb2RlGAkgASgOMjIuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFwcHJvdmFsTW9kZUIIukgFggECEAESUQoMc2VydmljZV90aWVyGAogASgOMjEuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlNlcnZpY2VUaWVyQgi6SAWCAQIQASKKAQoXQ29udGV4dE1hbmFnZW1lbnRDb25maWcSHQoVZGlzYWJsZV9zdW1tYXJpemF0aW9uGAEgASgIEikKGGN1c3RvbV90cmlnZ2VyX3RocmVzaG9sZBgCIAEoBUIHukgEGgIoABIlChRjdXN0b21fdGFyZ2V0X3Rva2VucxgDIAEoBUIHukgEGgIoACLUAgoKQXR0YWNobWVudBLYAQoIZmlsZW5hbWUYASABKAlCxQG6SMEBugG5AQobYXR0YWNobWVudC5maWxlbmFtZS5ub19wYXRoEk5maWxlbmFtZSBtdXN0IGJlIGEgYmFyZSBmaWxlbmFtZSB3aXRob3V0IHBhdGggc2VwYXJhdG9ycyBvciB0cmF2ZXJzYWwgc2VnbWVudHMaSiF0aGlzLmNvbnRhaW5zKCcvJykgJiYgIXRoaXMuY29udGFpbnMoJ1xcJykgJiYgdGhpcyAhPSAnLicgJiYgdGhpcyAhPSAnLi4ncgIQARIcCgtzdG9yYWdlX2tleRgCIAEoCUIHukgEcgIQARISCgptb3VudF9wYXRoGAMgASgJEhQKDGNvbnRlbnRfdHlwZRgEIAEoCRIPCgdleHRyYWN0GAUgASgIEhIKCmxvY2FsX3BhdGgYBiABKAkiVQoTQ29udmVyc2F0aW9uQ2F0Y2h1cBIOCgZkaWdlc3QYASABKAkSLgoKd2luZG93X2VuZBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiQAoTRGVjbGFyZWRQcmVmZXJlbmNlcxITCgtvcmdfY29udGV4dBgBIAEoCRIUCgx1c2VyX2NvbnRleHQYAiABKAliBnByb3RvMw",[file_ai_stigmer_agentic_agentexecution_v1_enum,file_ai_stigmer_agentic_executioncontext_v1_spec,file_ai_stigmer_agentic_session_v1_spec,file_buf_validate_validate,file_google_protobuf_struct,file_google_protobuf_timestamp]),AgentExecutionSpecSchema=messageDesc2(file_ai_stigmer_agentic_agentexecution_v1_spec,0);var file_ai_stigmer_agentic_agentexecution_v1_todo=fileDesc("Ci9haS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvdG9kby5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxIpEBCghUb2RvSXRlbRIKCgJpZBgBIAEoCRIPCgdjb250ZW50GAIgASgJEkAKBnN0YXR1cxgDIAEoDjIwLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5Ub2RvU3RhdHVzEhIKCmNyZWF0ZWRfYXQYBCABKAkSEgoKdXBkYXRlZF9hdBgFIAEoCWIGcHJvdG8z",[file_ai_stigmer_agentic_agentexecution_v1_enum]);var file_ai_stigmer_agentic_agentexecution_v1_subagent=fileDesc("CjNhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvc3ViYWdlbnQucHJvdG8SJGFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MSKIBAoRU3ViQWdlbnRFeGVjdXRpb24SCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRINCgVpbnB1dBgDIAEoCRIOCgZvdXRwdXQYBCABKAkSTgoGc3RhdHVzGAUgASgOMjQuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlN1YkFnZW50U3RhdHVzQgi6SAWCAQIQARISCgpzdGFydGVkX2F0GAYgASgJEhQKDGNvbXBsZXRlZF9hdBgHIAEoCRINCgVlcnJvchgIIAEoCRIpCghtZXRhZGF0YRgJIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSRAoIbWVzc2FnZXMYCyADKAsyMi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQWdlbnRNZXNzYWdlEg8KB3N1YmplY3QYDSABKAkSUQoFdG9kb3MYDiADKAsyQi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuU3ViQWdlbnRFeGVjdXRpb24uVG9kb3NFbnRyeRpcCgpUb2Rvc0VudHJ5EgsKA2tleRgBIAEoCRI9CgV2YWx1ZRgCIAEoCzIuLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5Ub2RvSXRlbToCOAFiBnByb3RvMw",[file_ai_stigmer_agentic_agentexecution_v1_enum,file_ai_stigmer_agentic_agentexecution_v1_message,file_ai_stigmer_agentic_agentexecution_v1_todo,file_buf_validate_validate,file_google_protobuf_struct]);var file_ai_stigmer_agentic_agentexecution_v1_writeback=fileDesc("CjRhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvd3JpdGViYWNrLnByb3RvEiRhaS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEimgIKEldvcmtzcGFjZVdyaXRlQmFjaxIcChR3b3Jrc3BhY2VfZW50cnlfbmFtZRgBIAEoCRITCgticmFuY2hfbmFtZRgCIAEoCRITCgtiYXNlX2JyYW5jaBgDIAEoCRISCgpjb21taXRfc2hhGAQgASgJEhgKEHB1bGxfcmVxdWVzdF91cmwYBSABKAkSGwoTcHVsbF9yZXF1ZXN0X251bWJlchgGIAEoBRIUCgxkaWZmX3N1bW1hcnkYByABKAkSTAoFcGhhc2UYCCABKA4yPS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuV29ya3NwYWNlV3JpdGVCYWNrUGhhc2USDQoFZXJyb3IYCSABKAkq0AEKF1dvcmtzcGFjZVdyaXRlQmFja1BoYXNlEioKJldPUktTUEFDRV9XUklURV9CQUNLX1BIQVNFX1VOU1BFQ0lGSUVEEAASIgoeV09SS1NQQUNFX1dSSVRFX0JBQ0tfQ09NTUlUVEVEEAESHwobV09SS1NQQUNFX1dSSVRFX0JBQ0tfUFVTSEVEEAISIwofV09SS1NQQUNFX1dSSVRFX0JBQ0tfUFJfQ1JFQVRFRBADEh8KG1dPUktTUEFDRV9XUklURV9CQUNLX0ZBSUxFRBAEYgZwcm90bzM");var WorkspaceWriteBackPhase;(function(WorkspaceWriteBackPhase2){WorkspaceWriteBackPhase2[WorkspaceWriteBackPhase2.WORKSPACE_WRITE_BACK_PHASE_UNSPECIFIED=0]="WORKSPACE_WRITE_BACK_PHASE_UNSPECIFIED",WorkspaceWriteBackPhase2[WorkspaceWriteBackPhase2.WORKSPACE_WRITE_BACK_COMMITTED=1]="WORKSPACE_WRITE_BACK_COMMITTED",WorkspaceWriteBackPhase2[WorkspaceWriteBackPhase2.WORKSPACE_WRITE_BACK_PUSHED=2]="WORKSPACE_WRITE_BACK_PUSHED",WorkspaceWriteBackPhase2[WorkspaceWriteBackPhase2.WORKSPACE_WRITE_BACK_PR_CREATED=3]="WORKSPACE_WRITE_BACK_PR_CREATED",WorkspaceWriteBackPhase2[WorkspaceWriteBackPhase2.WORKSPACE_WRITE_BACK_FAILED=4]="WORKSPACE_WRITE_BACK_FAILED"})(WorkspaceWriteBackPhase||(WorkspaceWriteBackPhase={}));var file_ai_stigmer_agentic_agentexecution_v1_api=fileDesc("Ci5haS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvYXBpLnByb3RvEiRhaS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEiywIKDkFnZW50RXhlY3V0aW9uEjEKC2FwaV92ZXJzaW9uGAEgASgJQhy6SBlyFwoVYWdlbnRpYy5zdGlnbWVyLmFpL3YxEiMKBGtpbmQYAiABKAlCFbpIEnIQCg5BZ2VudEV4ZWN1dGlvbhJNCghtZXRhZGF0YRgDIAEoCzIzLmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZU1ldGFkYXRhQga6SAPIAQESRgoEc3BlYxgEIAEoCzI4LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BZ2VudEV4ZWN1dGlvblNwZWMSSgoGc3RhdHVzGAUgASgLMjouYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFnZW50RXhlY3V0aW9uU3RhdHVzItcLChRBZ2VudEV4ZWN1dGlvblN0YXR1cxI/CgVhdWRpdBhjIAEoCzIwLmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZUF1ZGl0EkQKCG1lc3NhZ2VzGAEgAygLMjIuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFnZW50TWVzc2FnZRJNCgVwaGFzZRgCIAEoDjI0LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5FeGVjdXRpb25QaGFzZUIIukgFggECEAESVQoUc3ViX2FnZW50X2V4ZWN1dGlvbnMYBCADKAsyNy5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuU3ViQWdlbnRFeGVjdXRpb24SDQoFZXJyb3IYBiABKAkSEgoKc3RhcnRlZF9hdBgHIAEoCRIUCgxjb21wbGV0ZWRfYXQYCCABKAkSVAoFdG9kb3MYCSADKAsyRS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQWdlbnRFeGVjdXRpb25TdGF0dXMuVG9kb3NFbnRyeRIWCg5jYWxsYmFja190b2tlbhgKIAEoDBJQChFwZW5kaW5nX2FwcHJvdmFscxgQIAMoCzI1LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5QZW5kaW5nQXBwcm92YWwSWAoVYXBwcm92YWxfZXZlbnRfc3RyZWFtGBYgASgLMjkuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFwcHJvdmFsRXZlbnRTdHJlYW0SRwoMY29udGV4dF9pbmZvGA4gASgLMjEuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkNvbnRleHRJbmZvEkoKCWFydGlmYWN0cxgPIAMoCzI3LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5FeGVjdXRpb25BcnRpZmFjdBJXChV3b3Jrc3BhY2Vfd3JpdGVfYmFja3MYESADKAsyOC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuV29ya3NwYWNlV3JpdGVCYWNrEksKDnNldHVwX3Byb2dyZXNzGBIgASgLMjMuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlNldHVwUHJvZ3Jlc3MSVAoPc3RyZWFtaW5nX3VzYWdlGBQgASgLMjsuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlN0cmVhbWluZ1VzYWdlU3VtbWFyeRIyChFzdHJ1Y3R1cmVkX291dHB1dBgVIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSTQoQZmlsZV9jaGFuZ2Vfc2V0cxgXIAMoCzIzLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5GaWxlQ2hhbmdlU2V0El0KGGZpbGVfcmV2aWV3X2V2ZW50X3N0cmVhbRgYIAEoCzI7LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5GaWxlUmV2aWV3RXZlbnRTdHJlYW0SVgoUZmlsZV9jaGFuZ2VfcHJvZ3Jlc3MYGSABKAsyOC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRmlsZUNoYW5nZVByb2dyZXNzGlwKClRvZG9zRW50cnkSCwoDa2V5GAEgASgJEj0KBXZhbHVlGAIgASgLMi4uYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlRvZG9JdGVtOgI4AUoECAwQDVIQcmVzb2x2ZWRfY29udGV4dCImCg1TZXR1cFByb2dyZXNzEhUKDWN1cnJlbnRfcGhhc2UYASABKAliBnByb3RvMw",[file_ai_stigmer_agentic_agentexecution_v1_approval,file_ai_stigmer_agentic_agentexecution_v1_artifact,file_ai_stigmer_agentic_agentexecution_v1_context,file_ai_stigmer_agentic_agentexecution_v1_enum,file_ai_stigmer_agentic_agentexecution_v1_filereview,file_ai_stigmer_agentic_agentexecution_v1_message,file_ai_stigmer_agentic_agentexecution_v1_spec,file_ai_stigmer_agentic_agentexecution_v1_subagent,file_ai_stigmer_agentic_agentexecution_v1_todo,file_ai_stigmer_agentic_agentexecution_v1_usage,file_ai_stigmer_agentic_agentexecution_v1_writeback,file_ai_stigmer_commons_apiresource_metadata,file_ai_stigmer_commons_apiresource_status,file_buf_validate_validate,file_google_protobuf_struct]),AgentExecutionSchema=messageDesc2(file_ai_stigmer_agentic_agentexecution_v1_api,0);var file_ai_stigmer_agentic_agentexecution_v1_io=fileDesc("Ci1haS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvaW8ucHJvdG8SJGFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MSIpChBBZ2VudEV4ZWN1dGlvbklkEhUKBXZhbHVlGAEgASgJQga6SAPIAQEiIgoJU2Vzc2lvbklkEhUKBXZhbHVlGAEgASgJQga6SAPIAQEicAoSQWdlbnRFeGVjdXRpb25MaXN0EhMKC3RvdGFsX3BhZ2VzGAEgASgFEkUKB2VudHJpZXMYAiADKAsyNC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQWdlbnRFeGVjdXRpb24iowEKGkxpc3RBZ2VudEV4ZWN1dGlvbnNSZXF1ZXN0EhEKCXBhZ2Vfc2l6ZRgBIAEoBRISCgpwYWdlX3Rva2VuGAIgASgJEkMKBXBoYXNlGAMgASgOMjQuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkV4ZWN1dGlvblBoYXNlEgwKBHRhZ3MYBCADKAkSCwoDb3JnGAUgASgJImgKI0xpc3RBZ2VudEV4ZWN1dGlvbnNCeVNlc3Npb25SZXF1ZXN0EhoKCnNlc3Npb25faWQYASABKAlCBrpIA8gBARIRCglwYWdlX3NpemUYAiABKAUSEgoKcGFnZV90b2tlbhgDIAEoCSKUAQofQWdlbnRFeGVjdXRpb25VcGRhdGVTdGF0dXNJbnB1dBIdCgxleGVjdXRpb25faWQYASABKAlCB7pIBHICEAESUgoGc3RhdHVzGAIgASgLMjouYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFnZW50RXhlY3V0aW9uU3RhdHVzQga6SAPIAQEiewoUVXBkYXRlU3RhdHVzUmVzcG9uc2USTAoGc2lnbmFsGAEgASgOMjwuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkV4ZWN1dGlvbkNvbnRyb2xTaWduYWwSFQoNc2lnbmFsX3JlYXNvbhgCIAEoCSK8AQoTU3VibWl0QXBwcm92YWxJbnB1dBIjChJhZ2VudF9leGVjdXRpb25faWQYASABKAlCB7pIBHICEAESHQoMdG9vbF9jYWxsX2lkGAIgASgJQge6SARyAhABElAKBmFjdGlvbhgDIAEoDjI0LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BcHByb3ZhbEFjdGlvbkIKukgHggEEEAEgABIPCgdjb21tZW50GAQgASgJImQKFEFwcHJvdmFsRGVjaXNpb25MaXN0EkwKCWRlY2lzaW9ucxgBIAMoCzI5LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5TdWJtaXRBcHByb3ZhbElucHV0IvQCChdTdWJtaXRGaWxlRGVjaXNpb25JbnB1dBIjChJhZ2VudF9leGVjdXRpb25faWQYASABKAlCB7pIBHICEAESHgoNY2hhbmdlX3NldF9pZBgCIAEoCUIHukgEcgIQARJSCgVzY29wZRgDIAEoDjI3LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5GaWxlRGVjaXNpb25TY29wZUIKukgHggEEEAEgABIWCg5maWxlX2NoYW5nZV9pZBgEIAEoCRJUCgZhY3Rpb24YBSABKA4yOC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRmlsZURlY2lzaW9uQWN0aW9uQgq6SAeCAQQQASAAEiAKD2V4cGVjdGVkX2RpZ2VzdBgGIAEoCUIHukgEcgIQARIOCgZyZWFzb24YByABKAkSIAoYYWNrbm93bGVkZ2VfdW5yZXZpZXdhYmxlGAggASgIIkAKGUNhbmNlbEFnZW50RXhlY3V0aW9uSW5wdXQSEwoCaWQYASABKAlCB7pIBHICEAESDgoGcmVhc29uGAIgASgJIkMKHFRlcm1pbmF0ZUFnZW50RXhlY3V0aW9uSW5wdXQSEwoCaWQYASABKAlCB7pIBHICEAESDgoGcmVhc29uGAIgASgJIjEKGlJlY292ZXJBZ2VudEV4ZWN1dGlvbklucHV0EhMKAmlkGAEgASgJQge6SARyAhABIj8KGFBhdXNlQWdlbnRFeGVjdXRpb25JbnB1dBITCgJpZBgBIAEoCUIHukgEcgIQARIOCgZyZWFzb24YAiABKAkiMAoZUmVzdW1lQWdlbnRFeGVjdXRpb25JbnB1dBITCgJpZBgBIAEoCUIHukgEcgIQASKqAgoXVXBsb2FkQXR0YWNobWVudFJlcXVlc3QS3wEKCGZpbGVuYW1lGAEgASgJQswBukjIAboBwAEKInVwbG9hZF9hdHRhY2htZW50LmZpbGVuYW1lLm5vX3BhdGgSTmZpbGVuYW1lIG11c3QgYmUgYSBiYXJlIGZpbGVuYW1lIHdpdGhvdXQgcGF0aCBzZXBhcmF0b3JzIG9yIHRyYXZlcnNhbCBzZWdtZW50cxpKIXRoaXMuY29udGFpbnMoJy8nKSAmJiAhdGhpcy5jb250YWlucygnXFwnKSAmJiB0aGlzICE9ICcuJyAmJiB0aGlzICE9ICcuLidyAhABEhcKB2NvbnRlbnQYAiABKAxCBrpIA8gBARIUCgxjb250ZW50X3R5cGUYAyABKAkiLwoYVXBsb2FkQXR0YWNobWVudFJlc3BvbnNlEhMKC3N0b3JhZ2Vfa2V5GAEgASgJInMKHUdldEFydGlmYWN0RG93bmxvYWRVcmxSZXF1ZXN0Eh0KDGV4ZWN1dGlvbl9pZBgBIAEoCUIHukgEcgIQARIcCgtzdG9yYWdlX2tleRgCIAEoCUIHukgEcgIQARIVCg1hc19hdHRhY2htZW50GAMgASgIIkoKHkdldEFydGlmYWN0RG93bmxvYWRVcmxSZXNwb25zZRIUCgxkb3dubG9hZF91cmwYASABKAkSEgoKZXhwaXJlc19hdBgCIAEoCSJ/ChlHZXRBcnRpZmFjdENvbnRlbnRSZXF1ZXN0Eh0KDGV4ZWN1dGlvbl9pZBgBIAEoCUIHukgEcgIQARIcCgtzdG9yYWdlX2tleRgCIAEoCUIHukgEcgIQARIRCgltYXhfYnl0ZXMYAyABKAMSEgoKZW50cnlfcGF0aBgEIAEoCSJwChpHZXRBcnRpZmFjdENvbnRlbnRSZXNwb25zZRIPCgdjb250ZW50GAEgASgMEhQKDGNvbnRlbnRfdHlwZRgCIAEoCRIYChB0b3RhbF9zaXplX2J5dGVzGAMgASgDEhEKCXRydW5jYXRlZBgEIAEoCCI9ChxHZXRFeGVjdXRpb25Vc2FnZVJlcG9ydElucHV0Eh0KDGV4ZWN1dGlvbl9pZBgBIAEoCUIHukgEcgIQASK5AQodR2V0RXhlY3V0aW9uVXNhZ2VSZXBvcnRPdXRwdXQSTQoJYWdncmVnYXRlGAEgASgLMjouYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlVzYWdlUmVwb3J0QWdncmVnYXRlEkkKD21vZGVsX2JyZWFrZG93bhgCIAMoCzIwLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5Nb2RlbFVzYWdlIjkKGkdldFNlc3Npb25Vc2FnZVJlcG9ydElucHV0EhsKCnNlc3Npb25faWQYASABKAlCB7pIBHICEAEihAMKG0dldFNlc3Npb25Vc2FnZVJlcG9ydE91dHB1dBISCgpzZXNzaW9uX2lkGAEgASgJEhcKD2V4ZWN1dGlvbl9jb3VudBgCIAEoBRJPCgt0b3RhbF91c2FnZRgDIAEoCzI6LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5Vc2FnZVJlcG9ydEFnZ3JlZ2F0ZRJPCgpleGVjdXRpb25zGAQgAygLMjsuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkV4ZWN1dGlvblVzYWdlU3VtbWFyeRJJCg9tb2RlbF9icmVha2Rvd24YBSADKAsyMC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuTW9kZWxVc2FnZRIaChJmaXJzdF9leGVjdXRpb25fYXQYBiABKAkSGQoRbGFzdF9leGVjdXRpb25fYXQYByABKAkSFAoMaXNfZXN0aW1hdGVkGAggASgIIpkBChhHZXRBZ2VudFVzYWdlUmVwb3J0SW5wdXQSGQoIYWdlbnRfaWQYASABKAlCB7pIBHICEAESEQoJZnJvbV9kYXRlGAIgASgJEg8KB3RvX2RhdGUYAyABKAkSEQoJcGFnZV9zaXplGAQgASgFEhIKCnBhZ2VfdG9rZW4YBSABKAkSFwoGb3JnX2lkGAYgASgJQge6SARyAhABIpkDChlHZXRBZ2VudFVzYWdlUmVwb3J0T3V0cHV0EhAKCGFnZW50X2lkGAEgASgJEhIKCmFnZW50X25hbWUYAiABKAkSTwoLdG90YWxfdXNhZ2UYAyABKAsyOi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuVXNhZ2VSZXBvcnRBZ2dyZWdhdGUSSQoPbW9kZWxfYnJlYWtkb3duGAQgAygLMjAuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLk1vZGVsVXNhZ2USSwoIc2Vzc2lvbnMYBSADKAsyOS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuU2Vzc2lvblVzYWdlU3VtbWFyeRIWCg50b3RhbF9zZXNzaW9ucxgGIAEoBRIYChB0b3RhbF9leGVjdXRpb25zGAcgASgFEiIKGnRvdGFsX2JpbGxhYmxlX2Nvc3RfbWljcm9zGAggASgDEhcKD25leHRfcGFnZV90b2tlbhgJIAEoCSJnChZHZXRPcmdVc2FnZVJlcG9ydElucHV0EhcKBm9yZ19pZBgBIAEoCUIHukgEcgIQARIaCglmcm9tX2RhdGUYAiABKAlCB7pIBHICEAESGAoHdG9fZGF0ZRgDIAEoCUIHukgEcgIQASLVAwoXR2V0T3JnVXNhZ2VSZXBvcnRPdXRwdXQSDgoGb3JnX2lkGAEgASgJEhQKDHRvdGFsX2FnZW50cxgCIAEoBRIWCg50b3RhbF9zZXNzaW9ucxgDIAEoBRIYChB0b3RhbF9leGVjdXRpb25zGAQgASgFEiIKGnRvdGFsX2JpbGxhYmxlX2Nvc3RfbWljcm9zGAUgASgDEkkKD21vZGVsX2JyZWFrZG93bhgGIAMoCzIwLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5Nb2RlbFVzYWdlElMKEnRvcF9hZ2VudHNfYnlfY29zdBgHIAMoCzI3LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BZ2VudFVzYWdlU3VtbWFyeRJJCgtkYWlseV9jb3N0cxgIIAMoCzI0LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5EYWlseUNvc3RFbnRyeRJTChFoYXJuZXNzX2JyZWFrZG93bhgJIAMoCzI4LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5IYXJuZXNzQ29zdFN1bW1hcnkizgIKFUV4ZWN1dGlvblVzYWdlU3VtbWFyeRIUCgxleGVjdXRpb25faWQYASABKAkSEgoKc3RhcnRlZF9hdBgCIAEoCRIUCgxjb21wbGV0ZWRfYXQYAyABKAkSFAoMaW5wdXRfdG9rZW5zGAQgASgDEhUKDW91dHB1dF90b2tlbnMYBSABKAMSHwoXY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMYBiABKAMSHAoUYmlsbGFibGVfY29zdF9taWNyb3MYByABKAMSFQoNcHJpbWFyeV9tb2RlbBgIIAEoCRIXCg9zdWJfYWdlbnRfY291bnQYCSABKAUSQwoFcGhhc2UYCiABKA4yNC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRXhlY3V0aW9uUGhhc2USFAoMaXNfZXN0aW1hdGVkGAsgASgIIq0BChNTZXNzaW9uVXNhZ2VTdW1tYXJ5EhIKCnNlc3Npb25faWQYASABKAkSFwoPZXhlY3V0aW9uX2NvdW50GAIgASgFEhQKDHRvdGFsX3Rva2VucxgDIAEoAxIcChRiaWxsYWJsZV9jb3N0X21pY3JvcxgEIAEoAxIaChJmaXJzdF9leGVjdXRpb25fYXQYBSABKAkSGQoRbGFzdF9leGVjdXRpb25fYXQYBiABKAkihgEKEUFnZW50VXNhZ2VTdW1tYXJ5EhAKCGFnZW50X2lkGAEgASgJEhIKCmFnZW50X25hbWUYAiABKAkSFwoPZXhlY3V0aW9uX2NvdW50GAMgASgFEhQKDHRvdGFsX3Rva2VucxgEIAEoAxIcChRiaWxsYWJsZV9jb3N0X21pY3JvcxgFIAEoAyJrCg5EYWlseUNvc3RFbnRyeRIMCgRkYXRlGAEgASgJEhcKD2V4ZWN1dGlvbl9jb3VudBgCIAEoBRIUCgx0b3RhbF90b2tlbnMYAyABKAMSHAoUYmlsbGFibGVfY29zdF9taWNyb3MYBCABKAMicAoSSGFybmVzc0Nvc3RTdW1tYXJ5Eg8KB2hhcm5lc3MYASABKAkSHAoUYmlsbGFibGVfY29zdF9taWNyb3MYAiABKAMSEgoKY2FsbF9jb3VudBgDIAEoBRIXCg9leGVjdXRpb25fY291bnQYBCABKAUikwEKH0dldEFnZW50RXhlY3V0aW9uU3VtbWFyeVJlcXVlc3QSFAoDb3JnGAEgASgJQge6SARyAhABEloKC3RpbWVfd2luZG93GAIgASgOMkUuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFnZW50RXhlY3V0aW9uU3VtbWFyeVRpbWVXaW5kb3ciygIKFUFnZW50RXhlY3V0aW9uU3VtbWFyeRIUCgxhY3RpdmVfY291bnQYASABKAUSYgoMcGhhc2VfY291bnRzGAIgAygLMkwuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFnZW50RXhlY3V0aW9uU3VtbWFyeS5QaGFzZUNvdW50c0VudHJ5Ei8KDGF2Z19kdXJhdGlvbhgDIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhJSChJ0b3BfZmFpbGluZ19hZ2VudHMYBCADKAsyNi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQWdlbnRGYWlsdXJlUmFuaxoyChBQaGFzZUNvdW50c0VudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEiUQoQQWdlbnRGYWlsdXJlUmFuaxISCgphZ2VudF9zbHVnGAEgASgJEhIKCmFnZW50X25hbWUYAiABKAkSFQoNZmFpbHVyZV9jb3VudBgDIAEoBSqdAgofQWdlbnRFeGVjdXRpb25TdW1tYXJ5VGltZVdpbmRvdxIzCi9BR0VOVF9FWEVDVVRJT05fU1VNTUFSWV9USU1FX1dJTkRPV19VTlNQRUNJRklFRBAAEjAKLEFHRU5UX0VYRUNVVElPTl9TVU1NQVJZX1RJTUVfV0lORE9XX0xBU1RfMjRIEAESLworQUdFTlRfRVhFQ1VUSU9OX1NVTU1BUllfVElNRV9XSU5ET1dfTEFTVF83RBACEjAKLEFHRU5UX0VYRUNVVElPTl9TVU1NQVJZX1RJTUVfV0lORE9XX0xBU1RfMzBEEAMSMAosQUdFTlRfRVhFQ1VUSU9OX1NVTU1BUllfVElNRV9XSU5ET1dfQUxMX1RJTUUQBGIGcHJvdG8z",[file_ai_stigmer_agentic_agentexecution_v1_api,file_ai_stigmer_agentic_agentexecution_v1_enum,file_ai_stigmer_agentic_agentexecution_v1_usage,file_buf_validate_validate,file_google_protobuf_duration]);var AgentExecutionSummaryTimeWindow;(function(AgentExecutionSummaryTimeWindow2){AgentExecutionSummaryTimeWindow2[AgentExecutionSummaryTimeWindow2.UNSPECIFIED=0]="UNSPECIFIED",AgentExecutionSummaryTimeWindow2[AgentExecutionSummaryTimeWindow2.LAST_24H=1]="LAST_24H",AgentExecutionSummaryTimeWindow2[AgentExecutionSummaryTimeWindow2.LAST_7D=2]="LAST_7D",AgentExecutionSummaryTimeWindow2[AgentExecutionSummaryTimeWindow2.LAST_30D=3]="LAST_30D",AgentExecutionSummaryTimeWindow2[AgentExecutionSummaryTimeWindow2.ALL_TIME=4]="ALL_TIME"})(AgentExecutionSummaryTimeWindow||(AgentExecutionSummaryTimeWindow={}));var file_ai_stigmer_agentic_agentexecution_v1_command=fileDesc("CjJhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvY29tbWFuZC5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxMtMRCh9BZ2VudEV4ZWN1dGlvbkNvbW1hbmRDb250cm9sbGVyEnoKBmNyZWF0ZRI0LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BZ2VudEV4ZWN1dGlvbho0LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BZ2VudEV4ZWN1dGlvbiIE0LgYARKzAQoGdXBkYXRlEjQuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFnZW50RXhlY3V0aW9uGjQuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFnZW50RXhlY3V0aW9uIj3CuBg5CAIQKSILbWV0YWRhdGEuaWQqJnVuYXV0aG9yaXplZCB0byB1cGRhdGUgYWdlbnQgZXhlY3V0aW9uEtgBCgx1cGRhdGVTdGF0dXMSRS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQWdlbnRFeGVjdXRpb25VcGRhdGVTdGF0dXNJbnB1dBo6LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5VcGRhdGVTdGF0dXNSZXNwb25zZSJFwrgYQQgCECkiDGV4ZWN1dGlvbl9pZCotdW5hdXRob3JpemVkIHRvIHVwZGF0ZSBhZ2VudCBleGVjdXRpb24gc3RhdHVzEqYBCgZkZWxldGUSLS5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuQXBpUmVzb3VyY2VJZBo0LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BZ2VudEV4ZWN1dGlvbiI3wrgYMwgCECkiBXZhbHVlKiZ1bmF1dGhvcml6ZWQgdG8gZGVsZXRlIGFnZW50IGV4ZWN1dGlvbhLUAQoOc3VibWl0QXBwcm92YWwSOS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuU3VibWl0QXBwcm92YWxJbnB1dBo0LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BZ2VudEV4ZWN1dGlvbiJRwrgYTQgCECkiEmFnZW50X2V4ZWN1dGlvbl9pZCozdW5hdXRob3JpemVkIHRvIHN1Ym1pdCBhcHByb3ZhbCBmb3IgYWdlbnQgZXhlY3V0aW9uEuEBChJzdWJtaXRGaWxlRGVjaXNpb24SPS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuU3VibWl0RmlsZURlY2lzaW9uSW5wdXQaNC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQWdlbnRFeGVjdXRpb24iVsK4GFIIAhApIhJhZ2VudF9leGVjdXRpb25faWQqOHVuYXV0aG9yaXplZCB0byBzdWJtaXQgZmlsZSBkZWNpc2lvbiBmb3IgYWdlbnQgZXhlY3V0aW9uErUBCgZjYW5jZWwSPy5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQ2FuY2VsQWdlbnRFeGVjdXRpb25JbnB1dBo0LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BZ2VudEV4ZWN1dGlvbiI0wrgYMAgCECkiAmlkKiZ1bmF1dGhvcml6ZWQgdG8gY2FuY2VsIGFnZW50IGV4ZWN1dGlvbhK+AQoJdGVybWluYXRlEkIuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlRlcm1pbmF0ZUFnZW50RXhlY3V0aW9uSW5wdXQaNC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQWdlbnRFeGVjdXRpb24iN8K4GDMIAhApIgJpZCopdW5hdXRob3JpemVkIHRvIHRlcm1pbmF0ZSBhZ2VudCBleGVjdXRpb24SuAEKB3JlY292ZXISQC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuUmVjb3ZlckFnZW50RXhlY3V0aW9uSW5wdXQaNC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQWdlbnRFeGVjdXRpb24iNcK4GDEIAhApIgJpZCondW5hdXRob3JpemVkIHRvIHJlY292ZXIgYWdlbnQgZXhlY3V0aW9uErIBCgVwYXVzZRI+LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5QYXVzZUFnZW50RXhlY3V0aW9uSW5wdXQaNC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQWdlbnRFeGVjdXRpb24iM8K4GC8IAhApIgJpZColdW5hdXRob3JpemVkIHRvIHBhdXNlIGFnZW50IGV4ZWN1dGlvbhK1AQoGcmVzdW1lEj8uYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlJlc3VtZUFnZW50RXhlY3V0aW9uSW5wdXQaNC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQWdlbnRFeGVjdXRpb24iNMK4GDAIAhApIgJpZComdW5hdXRob3JpemVkIHRvIHJlc3VtZSBhZ2VudCBleGVjdXRpb24SlwEKEHVwbG9hZEF0dGFjaG1lbnQSPS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuVXBsb2FkQXR0YWNobWVudFJlcXVlc3QaPi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuVXBsb2FkQXR0YWNobWVudFJlc3BvbnNlIgTQuBgBGgSg/yspYgZwcm90bzM",[file_ai_stigmer_agentic_agentexecution_v1_api,file_ai_stigmer_agentic_agentexecution_v1_io,file_ai_stigmer_commons_apiresource_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),AgentExecutionCommandController=serviceDesc(file_ai_stigmer_agentic_agentexecution_v1_command,0);var file_ai_stigmer_agentic_agentexecution_v1_query=fileDesc("CjBhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvcXVlcnkucHJvdG8SJGFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MTKvEQodQWdlbnRFeGVjdXRpb25RdWVyeUNvbnRyb2xsZXISqQEKA2dldBI2LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BZ2VudEV4ZWN1dGlvbklkGjQuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFnZW50RXhlY3V0aW9uIjTCuBgwCAEQKSIFdmFsdWUqI3VuYXV0aG9yaXplZCB0byBnZXQgYWdlbnQgZXhlY3V0aW9uEogBCgRsaXN0EkAuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkxpc3RBZ2VudEV4ZWN1dGlvbnNSZXF1ZXN0GjguYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFnZW50RXhlY3V0aW9uTGlzdCIE0LgYARKaAQoNbGlzdEJ5U2Vzc2lvbhJJLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5MaXN0QWdlbnRFeGVjdXRpb25zQnlTZXNzaW9uUmVxdWVzdBo4LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BZ2VudEV4ZWN1dGlvbkxpc3QiBNC4GAESugEKCXN1YnNjcmliZRI2LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BZ2VudEV4ZWN1dGlvbklkGjQuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFnZW50RXhlY3V0aW9uIj3CuBg5CAEQKSIFdmFsdWUqLHVuYXV0aG9yaXplZCB0byBzdWJzY3JpYmUgdG8gYWdlbnQgZXhlY3V0aW9uMAES8wEKFmdldEFydGlmYWN0RG93bmxvYWRVcmwSQy5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuR2V0QXJ0aWZhY3REb3dubG9hZFVybFJlcXVlc3QaRC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuR2V0QXJ0aWZhY3REb3dubG9hZFVybFJlc3BvbnNlIk7CuBhKCAEQKSIMZXhlY3V0aW9uX2lkKjZ1bmF1dGhvcml6ZWQgdG8gZG93bmxvYWQgYXJ0aWZhY3QgZnJvbSBhZ2VudCBleGVjdXRpb24S6wEKEmdldEFydGlmYWN0Q29udGVudBI/LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5HZXRBcnRpZmFjdENvbnRlbnRSZXF1ZXN0GkAuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkdldEFydGlmYWN0Q29udGVudFJlc3BvbnNlIlLCuBhOCAEQKSIMZXhlY3V0aW9uX2lkKjp1bmF1dGhvcml6ZWQgdG8gcmVhZCBhcnRpZmFjdCBjb250ZW50IGZyb20gYWdlbnQgZXhlY3V0aW9uEucBChdnZXRFeGVjdXRpb25Vc2FnZVJlcG9ydBJCLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5HZXRFeGVjdXRpb25Vc2FnZVJlcG9ydElucHV0GkMuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkdldEV4ZWN1dGlvblVzYWdlUmVwb3J0T3V0cHV0IkPCuBg/CAEQKSIMZXhlY3V0aW9uX2lkKit1bmF1dGhvcml6ZWQgdG8gdmlldyBleGVjdXRpb24gdXNhZ2UgcmVwb3J0Et0BChVnZXRTZXNzaW9uVXNhZ2VSZXBvcnQSQC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuR2V0U2Vzc2lvblVzYWdlUmVwb3J0SW5wdXQaQS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuR2V0U2Vzc2lvblVzYWdlUmVwb3J0T3V0cHV0Ij/CuBg7CAEQKiIKc2Vzc2lvbl9pZCopdW5hdXRob3JpemVkIHRvIHZpZXcgc2Vzc2lvbiB1c2FnZSByZXBvcnQS0QEKE2dldEFnZW50VXNhZ2VSZXBvcnQSPi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuR2V0QWdlbnRVc2FnZVJlcG9ydElucHV0Gj8uYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkdldEFnZW50VXNhZ2VSZXBvcnRPdXRwdXQiOcK4GDUIARAeIgZvcmdfaWQqJ3VuYXV0aG9yaXplZCB0byB2aWV3IGFnZW50IHVzYWdlIHJlcG9ydBLSAQoRZ2V0T3JnVXNhZ2VSZXBvcnQSPC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuR2V0T3JnVXNhZ2VSZXBvcnRJbnB1dBo9LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5HZXRPcmdVc2FnZVJlcG9ydE91dHB1dCJAwrgYPAgBEB4iBm9yZ19pZCoudW5hdXRob3JpemVkIHRvIHZpZXcgb3JnYW5pemF0aW9uIHVzYWdlIHJlcG9ydBKfAQoTZ2V0RXhlY3V0aW9uU3VtbWFyeRJFLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5HZXRBZ2VudEV4ZWN1dGlvblN1bW1hcnlSZXF1ZXN0GjsuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFnZW50RXhlY3V0aW9uU3VtbWFyeSIE0LgYARoEoP8rKWIGcHJvdG8z",[file_ai_stigmer_agentic_agentexecution_v1_api,file_ai_stigmer_agentic_agentexecution_v1_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),AgentExecutionQueryController=serviceDesc(file_ai_stigmer_agentic_agentexecution_v1_query,0);var file_ai_stigmer_agentic_environment_v1_api=fileDesc("CithaS9zdGlnbWVyL2FnZW50aWMvZW52aXJvbm1lbnQvdjEvYXBpLnByb3RvEiFhaS5zdGlnbWVyLmFnZW50aWMuZW52aXJvbm1lbnQudjEiuwIKC0Vudmlyb25tZW50EjEKC2FwaV92ZXJzaW9uGAEgASgJQhy6SBlyFwoVYWdlbnRpYy5zdGlnbWVyLmFpL3YxEiAKBGtpbmQYAiABKAlCErpID3INCgtFbnZpcm9ubWVudBJNCghtZXRhZGF0YRgDIAEoCzIzLmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZU1ldGFkYXRhQga6SAPIAQESQAoEc3BlYxgEIAEoCzIyLmFpLnN0aWdtZXIuYWdlbnRpYy5lbnZpcm9ubWVudC52MS5FbnZpcm9ubWVudFNwZWMSRgoGc3RhdHVzGAUgASgLMjYuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLkFwaVJlc291cmNlQXVkaXRTdGF0dXNiBnByb3RvMw",[file_ai_stigmer_agentic_environment_v1_spec,file_ai_stigmer_commons_apiresource_metadata,file_ai_stigmer_commons_apiresource_status,file_buf_validate_validate]),EnvironmentSchema=messageDesc2(file_ai_stigmer_agentic_environment_v1_api,0);var file_ai_stigmer_agentic_environment_v1_io=fileDesc("CiphaS9zdGlnbWVyL2FnZW50aWMvZW52aXJvbm1lbnQvdjEvaW8ucHJvdG8SIWFpLnN0aWdtZXIuYWdlbnRpYy5lbnZpcm9ubWVudC52MSImCg1FbnZpcm9ubWVudElkEhUKBXZhbHVlGAEgASgJQga6SAPIAQEiVAobRW52aXJvbm1lbnRTZWNyZXRWYWx1ZUlucHV0Eh8KDmVudmlyb25tZW50X2lkGAEgASgJQge6SARyAhABEhQKA2tleRgCIAEoCUIHukgEcgIQASLrAQoXTGlzdEVudmlyb25tZW50c1JlcXVlc3QSFAoDb3JnGAEgASgJQge6SARyAhABElYKBmxhYmVscxgCIAMoCzJGLmFpLnN0aWdtZXIuYWdlbnRpYy5lbnZpcm9ubWVudC52MS5MaXN0RW52aXJvbm1lbnRzUmVxdWVzdC5MYWJlbHNFbnRyeRIzCglwYWdlX2luZm8YAyABKAsyIC5haS5zdGlnbWVyLmNvbW1vbnMucnBjLlBhZ2VJbmZvGi0KC0xhYmVsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiZQoPRW52aXJvbm1lbnRMaXN0EhMKC3RvdGFsX2NvdW50GAEgASgFEj0KBWl0ZW1zGAIgAygLMi4uYWkuc3RpZ21lci5hZ2VudGljLmVudmlyb25tZW50LnYxLkVudmlyb25tZW50IpMCCiFVcGRhdGVFbnZpcm9ubWVudFZhcmlhYmxlc1JlcXVlc3QSHwoOZW52aXJvbm1lbnRfaWQYASABKAlCB7pIBHICEAESZgoJdmFyaWFibGVzGAIgAygLMlMuYWkuc3RpZ21lci5hZ2VudGljLmVudmlyb25tZW50LnYxLlVwZGF0ZUVudmlyb25tZW50VmFyaWFibGVzUmVxdWVzdC5WYXJpYWJsZXNFbnRyeRplCg5WYXJpYWJsZXNFbnRyeRILCgNrZXkYASABKAkSQgoFdmFsdWUYAiABKAsyMy5haS5zdGlnbWVyLmFnZW50aWMuZW52aXJvbm1lbnQudjEuRW52aXJvbm1lbnRWYWx1ZToCOAEiXAohUmVtb3ZlRW52aXJvbm1lbnRWYXJpYWJsZXNSZXF1ZXN0Eh8KDmVudmlyb25tZW50X2lkGAEgASgJQge6SARyAhABEhYKBGtleXMYAiADKAlCCLpIBZIBAggBYgZwcm90bzM",[file_ai_stigmer_agentic_environment_v1_api,file_ai_stigmer_agentic_environment_v1_spec,file_ai_stigmer_commons_rpc_pagination,file_buf_validate_validate]);var file_ai_stigmer_agentic_environment_v1_command=fileDesc("Ci9haS9zdGlnbWVyL2FnZW50aWMvZW52aXJvbm1lbnQvdjEvY29tbWFuZC5wcm90bxIhYWkuc3RpZ21lci5hZ2VudGljLmVudmlyb25tZW50LnYxMoMKChxFbnZpcm9ubWVudENvbW1hbmRDb250cm9sbGVyEmcKBWFwcGx5Ei4uYWkuc3RpZ21lci5hZ2VudGljLmVudmlyb25tZW50LnYxLkVudmlyb25tZW50Gi4uYWkuc3RpZ21lci5hZ2VudGljLmVudmlyb25tZW50LnYxLkVudmlyb25tZW50ErkBCgZjcmVhdGUSLi5haS5zdGlnbWVyLmFnZW50aWMuZW52aXJvbm1lbnQudjEuRW52aXJvbm1lbnQaLi5haS5zdGlnbWVyLmFnZW50aWMuZW52aXJvbm1lbnQudjEuRW52aXJvbm1lbnQiT8K4GEsIDBAeIgxtZXRhZGF0YS5vcmcqN3VuYXV0aG9yaXplZCB0byBjcmVhdGUgZW52aXJvbm1lbnQgaW4gdGhpcyBvcmdhbml6YXRpb24SowEKBnVwZGF0ZRIuLmFpLnN0aWdtZXIuYWdlbnRpYy5lbnZpcm9ubWVudC52MS5FbnZpcm9ubWVudBouLmFpLnN0aWdtZXIuYWdlbnRpYy5lbnZpcm9ubWVudC52MS5FbnZpcm9ubWVudCI5wrgYNQgCEDUiC21ldGFkYXRhLmlkKiJ1bmF1dGhvcml6ZWQgdG8gdXBkYXRlIGVudmlyb25tZW50Er8BChB1cGRhdGVWaXNpYmlsaXR5EjUuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLlVwZGF0ZVZpc2liaWxpdHlJbnB1dBouLmFpLnN0aWdtZXIuYWdlbnRpYy5lbnZpcm9ubWVudC52MS5FbnZpcm9ubWVudCJEwrgYQAgCEDUiC3Jlc291cmNlX2lkKi11bmF1dGhvcml6ZWQgdG8gdXBkYXRlIGVudmlyb25tZW50IHZpc2liaWxpdHkSqwEKBmRlbGV0ZRI2LmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZURlbGV0ZUlucHV0Gi4uYWkuc3RpZ21lci5hZ2VudGljLmVudmlyb25tZW50LnYxLkVudmlyb25tZW50IjnCuBg1CAIQNSILcmVzb3VyY2VfaWQqInVuYXV0aG9yaXplZCB0byBkZWxldGUgZW52aXJvbm1lbnQSzwEKD3VwZGF0ZVZhcmlhYmxlcxJELmFpLnN0aWdtZXIuYWdlbnRpYy5lbnZpcm9ubWVudC52MS5VcGRhdGVFbnZpcm9ubWVudFZhcmlhYmxlc1JlcXVlc3QaLi5haS5zdGlnbWVyLmFnZW50aWMuZW52aXJvbm1lbnQudjEuRW52aXJvbm1lbnQiRsK4GEIIAhA1Ig5lbnZpcm9ubWVudF9pZCosdW5hdXRob3JpemVkIHRvIHVwZGF0ZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMSzwEKD3JlbW92ZVZhcmlhYmxlcxJELmFpLnN0aWdtZXIuYWdlbnRpYy5lbnZpcm9ubWVudC52MS5SZW1vdmVFbnZpcm9ubWVudFZhcmlhYmxlc1JlcXVlc3QaLi5haS5zdGlnbWVyLmFnZW50aWMuZW52aXJvbm1lbnQudjEuRW52aXJvbm1lbnQiRsK4GEIIAhA1Ig5lbnZpcm9ubWVudF9pZCosdW5hdXRob3JpemVkIHRvIHJlbW92ZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMaBKD/KzViBnByb3RvMw",[file_ai_stigmer_agentic_environment_v1_api,file_ai_stigmer_agentic_environment_v1_io,file_ai_stigmer_commons_apiresource_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),EnvironmentCommandController=serviceDesc(file_ai_stigmer_agentic_environment_v1_command,0);var file_ai_stigmer_agentic_environment_v1_query=fileDesc("Ci1haS9zdGlnbWVyL2FnZW50aWMvZW52aXJvbm1lbnQvdjEvcXVlcnkucHJvdG8SIWFpLnN0aWdtZXIuYWdlbnRpYy5lbnZpcm9ubWVudC52MTKMBQoaRW52aXJvbm1lbnRRdWVyeUNvbnRyb2xsZXISlgEKA2dldBItLmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZUlkGi4uYWkuc3RpZ21lci5hZ2VudGljLmVudmlyb25tZW50LnYxLkVudmlyb25tZW50IjDCuBgsCAEQNSIFdmFsdWUqH3VuYXV0aG9yaXplZCB0byBnZXQgZW52aXJvbm1lbnQSfAoOZ2V0QnlSZWZlcmVuY2USNC5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuQXBpUmVzb3VyY2VSZWZlcmVuY2UaLi5haS5zdGlnbWVyLmFnZW50aWMuZW52aXJvbm1lbnQudjEuRW52aXJvbm1lbnQiBNC4GAES0gEKDmdldFNlY3JldFZhbHVlEj4uYWkuc3RpZ21lci5hZ2VudGljLmVudmlyb25tZW50LnYxLkVudmlyb25tZW50U2VjcmV0VmFsdWVJbnB1dBozLmFpLnN0aWdtZXIuYWdlbnRpYy5lbnZpcm9ubWVudC52MS5FbnZpcm9ubWVudFZhbHVlIkvCuBhHCBAQNSIOZW52aXJvbm1lbnRfaWQqMXVuYXV0aG9yaXplZCB0byByZWFkIHNlY3JldCB2YWx1ZXMgKGNyZWF0b3Itb25seSkSfAoEbGlzdBI6LmFpLnN0aWdtZXIuYWdlbnRpYy5lbnZpcm9ubWVudC52MS5MaXN0RW52aXJvbm1lbnRzUmVxdWVzdBoyLmFpLnN0aWdtZXIuYWdlbnRpYy5lbnZpcm9ubWVudC52MS5FbnZpcm9ubWVudExpc3QiBNC4GAEaBKD/KzViBnByb3RvMw",[file_ai_stigmer_agentic_environment_v1_api,file_ai_stigmer_agentic_environment_v1_io,file_ai_stigmer_agentic_environment_v1_spec,file_ai_stigmer_commons_apiresource_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),EnvironmentQueryController=serviceDesc(file_ai_stigmer_agentic_environment_v1_query,0);var file_ai_stigmer_agentic_mcpserver_v1_spec=fileDesc("CiphaS9zdGlnbWVyL2FnZW50aWMvbWNwc2VydmVyL3YxL3NwZWMucHJvdG8SH2FpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEi6QQKDU1jcFNlcnZlclNwZWMSEwoLZGVzY3JpcHRpb24YASABKAkSEAoIaWNvbl91cmwYAiABKAkSDAoEdGFncxgDIAMoCRJDCgVzdGRpbxgEIAEoCzIyLmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuU3RkaW9TZXJ2ZXJDb25maWdIABJBCgRodHRwGAUgASgLMjEuYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5IdHRwU2VydmVyQ29uZmlnSAASHQoVZGVmYXVsdF9lbmFibGVkX3Rvb2xzGAcgAygJEkQKA2VudhgIIAMoCzI3LmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuTWNwU2VydmVyU3BlYy5FbnZFbnRyeRJSChVwaW5uZWRfdG9vbF9hcHByb3ZhbHMYCyADKAsyMy5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLlRvb2xBcHByb3ZhbFBvbGljeRIWCg5yZXBvc2l0b3J5X3VybBgMIAEoCRIUCgxnaXRodWJfc3RhcnMYDSABKAUSPAoEYXV0aBgOIAEoCzIuLmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuTWNwU2VydmVyQXV0aBpgCghFbnZFbnRyeRILCgNrZXkYASABKAkSQwoFdmFsdWUYAiABKAsyNC5haS5zdGlnbWVyLmFnZW50aWMuZW52aXJvbm1lbnQudjEuRW52VmFyRGVjbGFyYXRpb246AjgBQhQKC3NlcnZlcl90eXBlEgW6SAIIASJPChFTdGRpb1NlcnZlckNvbmZpZxIXCgdjb21tYW5kGAEgASgJQga6SAPIAQESDAoEYXJncxgCIAMoCRITCgt3b3JraW5nX2RpchgDIAEoCSLgAgoQSHR0cFNlcnZlckNvbmZpZxIYCgN1cmwYASABKAlCC7pICMgBAXIDiAEBEk8KB2hlYWRlcnMYAiADKAsyPi5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLkh0dHBTZXJ2ZXJDb25maWcuSGVhZGVyc0VudHJ5ElgKDHF1ZXJ5X3BhcmFtcxgDIAMoCzJCLmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuSHR0cFNlcnZlckNvbmZpZy5RdWVyeVBhcmFtc0VudHJ5EiMKD3RpbWVvdXRfc2Vjb25kcxgEIAEoBUIKukgHGgUYrAIoABouCgxIZWFkZXJzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARoyChBRdWVyeVBhcmFtc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiYAoSVG9vbEFwcHJvdmFsUG9saWN5EhoKCXRvb2xfbmFtZRgBIAEoCUIHukgEcgIQARIPCgdtZXNzYWdlGAIgASgJEh0KFWZyb21fZGVzdHJ1Y3RpdmVfaGludBgDIAEoCCL0AgoNTWNwU2VydmVyQXV0aBLMAQoNb2F1dGhfYXBwX3JlZhgBIAEoCzI0LmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZVJlZmVyZW5jZUJ/ukh4ugF1ChJvYXV0aF9hcHBfcmVmLmtpbmQSO29hdXRoX2FwcF9yZWYgbXVzdCByZWZlcmVuY2UgYSByZXNvdXJjZSB3aXRoIGtpbmQ9b2F1dGhfYXBwGiJ0aGlzLnNsdWcgPT0gJycgfHwgdGhpcy5raW5kID09IDIy4IUsFhIfCg50YXJnZXRfZW52X3ZhchgCIAEoCUIHukgEcgIQARIbChN0b2tlbl9saWZldGltZV9oaW50GAMgASgJEhMKC3Njb3BlX2hpbnRzGAQgAygJEhUKDWRpc2NvdmVyeV91cmwYByABKAkSEgoKb2F1dGhfb25seRgKIAEoCEoECAUQBkoECAYQB0oECAgQCUoECAkQCmIGcHJvdG8z",[file_ai_stigmer_agentic_environment_v1_spec,file_ai_stigmer_commons_apiresource_field_options,file_ai_stigmer_commons_apiresource_io,file_buf_validate_validate]),McpServerSpecSchema=messageDesc2(file_ai_stigmer_agentic_mcpserver_v1_spec,0),StdioServerConfigSchema=messageDesc2(file_ai_stigmer_agentic_mcpserver_v1_spec,1),HttpServerConfigSchema=messageDesc2(file_ai_stigmer_agentic_mcpserver_v1_spec,2),ToolApprovalPolicySchema=messageDesc2(file_ai_stigmer_agentic_mcpserver_v1_spec,3),McpServerAuthSchema=messageDesc2(file_ai_stigmer_agentic_mcpserver_v1_spec,4);var file_ai_stigmer_iam_oauthapp_v1_spec=fileDesc("CiVhaS9zdGlnbWVyL2lhbS9vYXV0aGFwcC92MS9zcGVjLnByb3RvEhphaS5zdGlnbWVyLmlhbS5vYXV0aGFwcC52MSKvAwoMT0F1dGhBcHBTcGVjEhAKCHByb3ZpZGVyGAEgASgJEhoKCWNsaWVudF9pZBgCIAEoCUIHukgEcgIQARIeCg1jbGllbnRfc2VjcmV0GAMgASgJQge6SARyAhABEiMKEWF1dGhvcml6YXRpb25fdXJsGAQgASgJQgi6SAVyA4gBARIbCgl0b2tlbl91cmwYBSABKAlCCLpIBXIDiAEBEg4KBnNjb3BlcxgGIAMoCRIUCgx1c2VyaW5mb191cmwYByABKAkSHAoUc2NvcGVfcGFyYW1ldGVyX25hbWUYCCABKAkSUAoWdmVuZG9yX2FwcHJvdmFsX3N0YXR1cxgJIAEoDjIwLmFpLnN0aWdtZXIuaWFtLm9hdXRoYXBwLnYxLlZlbmRvckFwcHJvdmFsU3RhdHVzEiAKGHZlbmRvcl9hcHByb3ZhbF9kb2NzX3VybBgKIAEoCRJXChp0b2tlbl9lbmRwb2ludF9hdXRoX21ldGhvZBgLIAEoDjIzLmFpLnN0aWdtZXIuaWFtLm9hdXRoYXBwLnYxLlRva2VuRW5kcG9pbnRBdXRoTWV0aG9kKqwBChRWZW5kb3JBcHByb3ZhbFN0YXR1cxImCiJWRU5ET1JfQVBQUk9WQUxfU1RBVFVTX1VOU1BFQ0lGSUVEEAASIgoeVkVORE9SX0FQUFJPVkFMX1NUQVRVU19QRU5ESU5HEAESIwofVkVORE9SX0FQUFJPVkFMX1NUQVRVU19BUFBST1ZFRBACEiMKH1ZFTkRPUl9BUFBST1ZBTF9TVEFUVVNfUkVKRUNURUQQAyqsAQoXVG9rZW5FbmRwb2ludEF1dGhNZXRob2QSKgomVE9LRU5fRU5EUE9JTlRfQVVUSF9NRVRIT0RfVU5TUEVDSUZJRUQQABIyCi5UT0tFTl9FTkRQT0lOVF9BVVRIX01FVEhPRF9DTElFTlRfU0VDUkVUX0JBU0lDEAESMQotVE9LRU5fRU5EUE9JTlRfQVVUSF9NRVRIT0RfQ0xJRU5UX1NFQ1JFVF9QT1NUEAJiBnByb3RvMw",[file_buf_validate_validate]);var VendorApprovalStatus;(function(VendorApprovalStatus2){VendorApprovalStatus2[VendorApprovalStatus2.UNSPECIFIED=0]="UNSPECIFIED",VendorApprovalStatus2[VendorApprovalStatus2.PENDING=1]="PENDING",VendorApprovalStatus2[VendorApprovalStatus2.APPROVED=2]="APPROVED",VendorApprovalStatus2[VendorApprovalStatus2.REJECTED=3]="REJECTED"})(VendorApprovalStatus||(VendorApprovalStatus={}));var TokenEndpointAuthMethod;(function(TokenEndpointAuthMethod2){TokenEndpointAuthMethod2[TokenEndpointAuthMethod2.UNSPECIFIED=0]="UNSPECIFIED",TokenEndpointAuthMethod2[TokenEndpointAuthMethod2.CLIENT_SECRET_BASIC=1]="CLIENT_SECRET_BASIC",TokenEndpointAuthMethod2[TokenEndpointAuthMethod2.CLIENT_SECRET_POST=2]="CLIENT_SECRET_POST"})(TokenEndpointAuthMethod||(TokenEndpointAuthMethod={}));var file_ai_stigmer_agentic_mcpserver_v1_status=fileDesc("CixhaS9zdGlnbWVyL2FnZW50aWMvbWNwc2VydmVyL3YxL3N0YXR1cy5wcm90bxIfYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MSLtAwoPTWNwU2VydmVyU3RhdHVzEkoKEHZhbGlkYXRpb25fc3RhdGUYASABKA4yMC5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLlZhbGlkYXRpb25TdGF0ZRIaChJ2YWxpZGF0aW9uX21lc3NhZ2UYAiABKAkSWAoXZGlzY292ZXJlZF9jYXBhYmlsaXRpZXMYAyABKAsyNy5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLkRpc2NvdmVyZWRDYXBhYmlsaXRpZXMSSwoOdG9vbF9hcHByb3ZhbHMYBCADKAsyMy5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLlRvb2xBcHByb3ZhbFBvbGljeRJCCgxvYXV0aF9zdGF0dXMYBSABKAsyLC5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLk9BdXRoU3RhdHVzEkYKDmNvbm5lY3Rfc3RhdHVzGAYgASgLMi4uYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5Db25uZWN0U3RhdHVzEj8KBWF1ZGl0GGMgASgLMjAuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLkFwaVJlc291cmNlQXVkaXQigwIKDUNvbm5lY3RTdGF0dXMSPAoFcGhhc2UYASABKA4yLS5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLkNvbm5lY3RQaGFzZRITCgt3b3JrZmxvd19pZBgCIAEoCRIuCgpzdGFydGVkX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgtmaW5pc2hlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFAoMZmFpbHVyZV9jb2RlGAUgASgJEhcKD2ZhaWx1cmVfbWVzc2FnZRgGIAEoCRIPCgd3YXJuaW5nGAcgASgJIukBChZEaXNjb3ZlcmVkQ2FwYWJpbGl0aWVzEj4KBXRvb2xzGAEgAygLMi8uYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5EaXNjb3ZlcmVkVG9vbBJXChJyZXNvdXJjZV90ZW1wbGF0ZXMYAiADKAsyOy5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLkRpc2NvdmVyZWRSZXNvdXJjZVRlbXBsYXRlEjYKEmxhc3RfZGlzY292ZXJlZF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiYgoORGlzY292ZXJlZFRvb2wSDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRItCgxpbnB1dF9zY2hlbWEYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0ImgKGkRpc2NvdmVyZWRSZXNvdXJjZVRlbXBsYXRlEhQKDHVyaV90ZW1wbGF0ZRgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEhEKCW1pbWVfdHlwZRgEIAEoCSLyAQoLT0F1dGhTdGF0dXMSUAoWdmVuZG9yX2FwcHJvdmFsX3N0YXR1cxgBIAEoDjIwLmFpLnN0aWdtZXIuaWFtLm9hdXRoYXBwLnYxLlZlbmRvckFwcHJvdmFsU3RhdHVzEiAKGHZlbmRvcl9hcHByb3ZhbF9kb2NzX3VybBgCIAEoCRJPChZlZmZlY3RpdmVfb2F1dGhfc291cmNlGAMgASgOMi8uYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5PQXV0aEFwcFNvdXJjZRIeChZlZmZlY3RpdmVfb2F1dGhfYXBwX2lkGAQgASgJKoIBCgxDb25uZWN0UGhhc2USHQoZY29ubmVjdF9waGFzZV91bnNwZWNpZmllZBAAEhwKGGNvbm5lY3RfcGhhc2VfY29ubmVjdGluZxABEhsKF2Nvbm5lY3RfcGhhc2Vfc3VjY2VlZGVkEAISGAoUY29ubmVjdF9waGFzZV9mYWlsZWQQAypLCg9WYWxpZGF0aW9uU3RhdGUSIAocdmFsaWRhdGlvbl9zdGF0ZV91bnNwZWNpZmllZBAAEgkKBXZhbGlkEAESCwoHaW52YWxpZBACKo8BCg5PQXV0aEFwcFNvdXJjZRIgChxPQVVUSF9BUFBfU09VUkNFX1VOU1BFQ0lGSUVEEAASHQoZT0FVVEhfQVBQX1NPVVJDRV9QTEFURk9STRABEiEKHU9BVVRIX0FQUF9TT1VSQ0VfT1JHX09WRVJSSURFEAISGQoVT0FVVEhfQVBQX1NPVVJDRV9OT05FEANiBnByb3RvMw",[file_ai_stigmer_agentic_mcpserver_v1_spec,file_ai_stigmer_commons_apiresource_status,file_ai_stigmer_iam_oauthapp_v1_spec,file_google_protobuf_struct,file_google_protobuf_timestamp]);var ConnectPhase;(function(ConnectPhase2){ConnectPhase2[ConnectPhase2.unspecified=0]="unspecified",ConnectPhase2[ConnectPhase2.connecting=1]="connecting",ConnectPhase2[ConnectPhase2.succeeded=2]="succeeded",ConnectPhase2[ConnectPhase2.failed=3]="failed"})(ConnectPhase||(ConnectPhase={}));var ValidationState;(function(ValidationState3){ValidationState3[ValidationState3.validation_state_unspecified=0]="validation_state_unspecified",ValidationState3[ValidationState3.valid=1]="valid",ValidationState3[ValidationState3.invalid=2]="invalid"})(ValidationState||(ValidationState={}));var OAuthAppSource;(function(OAuthAppSource2){OAuthAppSource2[OAuthAppSource2.OAUTH_APP_SOURCE_UNSPECIFIED=0]="OAUTH_APP_SOURCE_UNSPECIFIED",OAuthAppSource2[OAuthAppSource2.OAUTH_APP_SOURCE_PLATFORM=1]="OAUTH_APP_SOURCE_PLATFORM",OAuthAppSource2[OAuthAppSource2.OAUTH_APP_SOURCE_ORG_OVERRIDE=2]="OAUTH_APP_SOURCE_ORG_OVERRIDE",OAuthAppSource2[OAuthAppSource2.OAUTH_APP_SOURCE_NONE=3]="OAUTH_APP_SOURCE_NONE"})(OAuthAppSource||(OAuthAppSource={}));var file_ai_stigmer_agentic_mcpserver_v1_api=fileDesc("CilhaS9zdGlnbWVyL2FnZW50aWMvbWNwc2VydmVyL3YxL2FwaS5wcm90bxIfYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MSKtAgoJTWNwU2VydmVyEjEKC2FwaV92ZXJzaW9uGAEgASgJQhy6SBlyFwoVYWdlbnRpYy5zdGlnbWVyLmFpL3YxEh4KBGtpbmQYAiABKAlCELpIDXILCglNY3BTZXJ2ZXISTQoIbWV0YWRhdGEYAyABKAsyMy5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuQXBpUmVzb3VyY2VNZXRhZGF0YUIGukgDyAEBEjwKBHNwZWMYBCABKAsyLi5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLk1jcFNlcnZlclNwZWMSQAoGc3RhdHVzGAUgASgLMjAuYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5NY3BTZXJ2ZXJTdGF0dXMibQoNTWNwU2VydmVyTGlzdBITCgthcGlfdmVyc2lvbhgBIAEoCRIMCgRraW5kGAIgASgJEjkKBWl0ZW1zGAMgAygLMiouYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5NY3BTZXJ2ZXJiBnByb3RvMw",[file_ai_stigmer_agentic_mcpserver_v1_spec,file_ai_stigmer_agentic_mcpserver_v1_status,file_ai_stigmer_commons_apiresource_metadata,file_buf_validate_validate]),McpServerSchema=messageDesc2(file_ai_stigmer_agentic_mcpserver_v1_api,0);var file_ai_stigmer_agentic_mcpserver_v1_io=fileDesc("CihhaS9zdGlnbWVyL2FnZW50aWMvbWNwc2VydmVyL3YxL2lvLnByb3RvEh9haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxIiQKC01jcFNlcnZlcklkEhUKBXZhbHVlGAEgASgJQga6SAPIAQEiggIKDENvbm5lY3RJbnB1dBIdCg1tY3Bfc2VydmVyX2lkGAEgASgJQga6SAPIAQESUgoLcnVudGltZV9lbnYYAiADKAsyPS5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLkNvbm5lY3RJbnB1dC5SdW50aW1lRW52RW50cnkSFAoDb3JnGAMgASgJQge6SARyAhABGmkKD1J1bnRpbWVFbnZFbnRyeRILCgNrZXkYASABKAkSRQoFdmFsdWUYAiABKAsyNi5haS5zdGlnbWVyLmFnZW50aWMuZXhlY3V0aW9uY29udGV4dC52MS5FeGVjdXRpb25WYWx1ZToCOAEiUAoZSW5pdGlhdGVPQXV0aENvbm5lY3RJbnB1dBIdCg1tY3Bfc2VydmVyX2lkGAEgASgJQga6SAPIAQESFAoDb3JnGAIgASgJQge6SARyAhABIm0KGkluaXRpYXRlT0F1dGhDb25uZWN0T3V0cHV0EhkKEWF1dGhvcml6YXRpb25fdXJsGAEgASgJEg0KBXN0YXRlGAIgASgJEg4KBnNjb3BlcxgDIAMoCRIVCg1wcm92aWRlcl9uYW1lGAQgASgJIncKGUNvbXBsZXRlT0F1dGhDb25uZWN0SW5wdXQSHQoNbWNwX3NlcnZlcl9pZBgBIAEoCUIGukgDyAEBEiMKEmF1dGhvcml6YXRpb25fY29kZRgCIAEoCUIHukgEcgIQARIWCgVzdGF0ZRgDIAEoCUIHukgEcgIQASJkChpDb21wbGV0ZU9BdXRoQ29ubmVjdE91dHB1dBIRCgljb25uZWN0ZWQYASABKAgSFgoOdGFyZ2V0X2Vudl92YXIYAiABKAkSGwoTdG9rZW5fbGlmZXRpbWVfaGludBgDIAEoCSJNChhHZXRPQXV0aEdyYW50U3RhdHVzSW5wdXQSGwoLcmVzb3VyY2VfaWQYASABKAlCBrpIA8gBARIUCgNvcmcYAiABKAlCB7pIBHICEAEizwEKGUdldE9BdXRoR3JhbnRTdGF0dXNPdXRwdXQSEQoJY29ubmVjdGVkGAEgASgIEh8KF2FjY2Vzc190b2tlbl9leHBpcmVzX2F0GAIgASgDEhYKDnRhcmdldF9lbnZfdmFyGAMgASgJEhMKC2F1dGhfbWV0aG9kGAQgASgJElEKEWNvbm5lY3Rpb25faGVhbHRoGAUgASgOMjYuYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5PQXV0aENvbm5lY3Rpb25IZWFsdGgiSQoURGlzY29ubmVjdE9BdXRoSW5wdXQSGwoLcmVzb3VyY2VfaWQYASABKAlCBrpIA8gBARIUCgNvcmcYAiABKAlCB7pIBHICEAEiLQoVRGlzY29ubmVjdE9BdXRoT3V0cHV0EhQKDGRpc2Nvbm5lY3RlZBgBIAEoCCKEAQoTU2V0T3JnT0F1dGhBcHBJbnB1dBIbCgtyZXNvdXJjZV9pZBgBIAEoCUIGukgDyAEBEhQKA29yZxgCIAEoCUIHukgEcgIQARIaCgljbGllbnRfaWQYAyABKAlCB7pIBHICEAESHgoNY2xpZW50X3NlY3JldBgEIAEoCUIHukgEcgIQASIsChRTZXRPcmdPQXV0aEFwcE91dHB1dBIUCgxvYXV0aF9hcHBfaWQYASABKAkiSAoTR2V0T3JnT0F1dGhBcHBJbnB1dBIbCgtyZXNvdXJjZV9pZBgBIAEoCUIGukgDyAEBEhQKA29yZxgCIAEoCUIHukgEcgIQASJVChRHZXRPcmdPQXV0aEFwcE91dHB1dBIUCgxoYXNfb3ZlcnJpZGUYASABKAgSFAoMb2F1dGhfYXBwX2lkGAIgASgJEhEKCWNsaWVudF9pZBgDIAEoCSJLChZEZWxldGVPcmdPQXV0aEFwcElucHV0EhsKC3Jlc291cmNlX2lkGAEgASgJQga6SAPIAQESFAoDb3JnGAIgASgJQge6SARyAhABIioKF0RlbGV0ZU9yZ09BdXRoQXBwT3V0cHV0Eg8KB2RlbGV0ZWQYASABKAgq7QEKFU9BdXRoQ29ubmVjdGlvbkhlYWx0aBInCiNPQVVUSF9DT05ORUNUSU9OX0hFQUxUSF9VTlNQRUNJRklFRBAAEiMKH09BVVRIX0NPTk5FQ1RJT05fSEVBTFRIX0hFQUxUSFkQARIpCiVPQVVUSF9DT05ORUNUSU9OX0hFQUxUSF9UT0tFTl9FWFBJUkVEEAISNQoxT0FVVEhfQ09OTkVDVElPTl9IRUFMVEhfVE9LRU5fRVhQSVJFRF9SRUZSRVNIQUJMRRADEiQKIE9BVVRIX0NPTk5FQ1RJT05fSEVBTFRIX05PX0dSQU5UEARiBnByb3RvMw",[file_ai_stigmer_agentic_executioncontext_v1_spec,file_buf_validate_validate]);var OAuthConnectionHealth;(function(OAuthConnectionHealth2){OAuthConnectionHealth2[OAuthConnectionHealth2.OAUTH_CONNECTION_HEALTH_UNSPECIFIED=0]="OAUTH_CONNECTION_HEALTH_UNSPECIFIED",OAuthConnectionHealth2[OAuthConnectionHealth2.OAUTH_CONNECTION_HEALTH_HEALTHY=1]="OAUTH_CONNECTION_HEALTH_HEALTHY",OAuthConnectionHealth2[OAuthConnectionHealth2.OAUTH_CONNECTION_HEALTH_TOKEN_EXPIRED=2]="OAUTH_CONNECTION_HEALTH_TOKEN_EXPIRED",OAuthConnectionHealth2[OAuthConnectionHealth2.OAUTH_CONNECTION_HEALTH_TOKEN_EXPIRED_REFRESHABLE=3]="OAUTH_CONNECTION_HEALTH_TOKEN_EXPIRED_REFRESHABLE",OAuthConnectionHealth2[OAuthConnectionHealth2.OAUTH_CONNECTION_HEALTH_NO_GRANT=4]="OAUTH_CONNECTION_HEALTH_NO_GRANT"})(OAuthConnectionHealth||(OAuthConnectionHealth={}));var file_ai_stigmer_agentic_mcpserver_v1_command=fileDesc("Ci1haS9zdGlnbWVyL2FnZW50aWMvbWNwc2VydmVyL3YxL2NvbW1hbmQucHJvdG8SH2FpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEy0hAKGk1jcFNlcnZlckNvbW1hbmRDb250cm9sbGVyEl8KBWFwcGx5EiouYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5NY3BTZXJ2ZXIaKi5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLk1jcFNlcnZlchJmCgZjcmVhdGUSKi5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLk1jcFNlcnZlchoqLmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuTWNwU2VydmVyIgTQuBgBEpoBCgZ1cGRhdGUSKi5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLk1jcFNlcnZlchoqLmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuTWNwU2VydmVyIjjCuBg0CAIQLCILbWV0YWRhdGEuaWQqIXVuYXV0aG9yaXplZCB0byB1cGRhdGUgbWNwIHNlcnZlchKmAQoGZGVsZXRlEjYuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLkFwaVJlc291cmNlRGVsZXRlSW5wdXQaKi5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLk1jcFNlcnZlciI4wrgYNAgDECwiC3Jlc291cmNlX2lkKiF1bmF1dGhvcml6ZWQgdG8gZGVsZXRlIG1jcCBzZXJ2ZXISugEKEHVwZGF0ZVZpc2liaWxpdHkSNS5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuVXBkYXRlVmlzaWJpbGl0eUlucHV0GiouYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5NY3BTZXJ2ZXIiQ8K4GD8IAhAsIgtyZXNvdXJjZV9pZCosdW5hdXRob3JpemVkIHRvIHVwZGF0ZSBtY3Agc2VydmVyIHZpc2liaWxpdHkSpAEKB2Nvbm5lY3QSLS5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLkNvbm5lY3RJbnB1dBoqLmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuTWNwU2VydmVyIj7CuBg6CBYQLCINbWNwX3NlcnZlcl9pZColdW5hdXRob3JpemVkIHRvIGNvbm5lY3QgdG8gbWNwIHNlcnZlchKpAQoMc3RhcnRDb25uZWN0Ei0uYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5Db25uZWN0SW5wdXQaKi5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLk1jcFNlcnZlciI+wrgYOggWECwiDW1jcF9zZXJ2ZXJfaWQqJXVuYXV0aG9yaXplZCB0byBjb25uZWN0IHRvIG1jcCBzZXJ2ZXIS3wEKFGluaXRpYXRlT0F1dGhDb25uZWN0EjouYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5Jbml0aWF0ZU9BdXRoQ29ubmVjdElucHV0GjsuYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5Jbml0aWF0ZU9BdXRoQ29ubmVjdE91dHB1dCJOwrgYSggWECwiDW1jcF9zZXJ2ZXJfaWQqNXVuYXV0aG9yaXplZCB0byBpbml0aWF0ZSBvYXV0aCBjb25uZWN0IGZvciBtY3Agc2VydmVyEt8BChRjb21wbGV0ZU9BdXRoQ29ubmVjdBI6LmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuQ29tcGxldGVPQXV0aENvbm5lY3RJbnB1dBo7LmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuQ29tcGxldGVPQXV0aENvbm5lY3RPdXRwdXQiTsK4GEoIFhAsIg1tY3Bfc2VydmVyX2lkKjV1bmF1dGhvcml6ZWQgdG8gY29tcGxldGUgb2F1dGggY29ubmVjdCBmb3IgbWNwIHNlcnZlchLIAQoPZGlzY29ubmVjdE9BdXRoEjUuYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5EaXNjb25uZWN0T0F1dGhJbnB1dBo2LmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuRGlzY29ubmVjdE9BdXRoT3V0cHV0IkbCuBhCCBYQLCILcmVzb3VyY2VfaWQqL3VuYXV0aG9yaXplZCB0byBkaXNjb25uZWN0IG9hdXRoIGZvciBtY3Agc2VydmVyErgBCg5zZXRPcmdPQXV0aEFwcBI0LmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuU2V0T3JnT0F1dGhBcHBJbnB1dBo1LmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuU2V0T3JnT0F1dGhBcHBPdXRwdXQiOcK4GDUIFxAeIgNvcmcqKnVuYXV0aG9yaXplZCB0byBzZXQgb3JnIG9hdXRoIGFwcCBvdmVycmlkZRLEAQoRZGVsZXRlT3JnT0F1dGhBcHASNy5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLkRlbGV0ZU9yZ09BdXRoQXBwSW5wdXQaOC5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLkRlbGV0ZU9yZ09BdXRoQXBwT3V0cHV0IjzCuBg4CBcQHiIDb3JnKi11bmF1dGhvcml6ZWQgdG8gZGVsZXRlIG9yZyBvYXV0aCBhcHAgb3ZlcnJpZGUaBKD/KyxiBnByb3RvMw",[file_ai_stigmer_agentic_mcpserver_v1_api,file_ai_stigmer_agentic_mcpserver_v1_io,file_ai_stigmer_commons_apiresource_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),McpServerCommandController=serviceDesc(file_ai_stigmer_agentic_mcpserver_v1_command,0);var file_ai_stigmer_agentic_mcpserver_v1_query=fileDesc("CithaS9zdGlnbWVyL2FnZW50aWMvbWNwc2VydmVyL3YxL3F1ZXJ5LnByb3RvEh9haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxMssFChhNY3BTZXJ2ZXJRdWVyeUNvbnRyb2xsZXISkgEKA2dldBItLmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZUlkGiouYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5NY3BTZXJ2ZXIiMMK4GCwIARAsIgV2YWx1ZSofdW5hdXRob3JpemVkIHRvIHZpZXcgbWNwIHNlcnZlchJ4Cg5nZXRCeVJlZmVyZW5jZRI0LmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZVJlZmVyZW5jZRoqLmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuTWNwU2VydmVyIgTQuBgBEtUBChNnZXRPQXV0aEdyYW50U3RhdHVzEjkuYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5HZXRPQXV0aEdyYW50U3RhdHVzSW5wdXQaOi5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLkdldE9BdXRoR3JhbnRTdGF0dXNPdXRwdXQiR8K4GEMIARAsIgtyZXNvdXJjZV9pZCowdW5hdXRob3JpemVkIHRvIHZpZXcgb2F1dGggc3RhdHVzIGZvciBtY3Agc2VydmVyEsEBCg5nZXRPcmdPQXV0aEFwcBI0LmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuR2V0T3JnT0F1dGhBcHBJbnB1dBo1LmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuR2V0T3JnT0F1dGhBcHBPdXRwdXQiQsK4GD4IARAsIgtyZXNvdXJjZV9pZCordW5hdXRob3JpemVkIHRvIHZpZXcgb3JnIG9hdXRoIGFwcCBvdmVycmlkZRoEoP8rLGIGcHJvdG8z",[file_ai_stigmer_agentic_mcpserver_v1_api,file_ai_stigmer_agentic_mcpserver_v1_io,file_ai_stigmer_commons_apiresource_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),McpServerQueryController=serviceDesc(file_ai_stigmer_agentic_mcpserver_v1_query,0);var file_ai_stigmer_agentic_skill_v1_spec=fileDesc("CiZhaS9zdGlnbWVyL2FnZW50aWMvc2tpbGwvdjEvc3BlYy5wcm90bxIbYWkuc3RpZ21lci5hZ2VudGljLnNraWxsLnYxIp0BCglTa2lsbFNwZWMSGQoIc2tpbGxfbWQYASABKAlCB7pIBHICEAESKAoDdGFnGAIgASgJQhu6SBhyFjIUXiR8XlthLXpBLVowLTkuXy1dKyQSMAoEbmFtZRgDIAEoCUIiukgfch0yG15bYS16MC05XSsoWy4tXVthLXowLTldKykqJBITCgtkZXNjcmlwdGlvbhgFIAEoCUoECAQQBWIGcHJvdG8z",[file_buf_validate_validate]);var file_ai_stigmer_agentic_skill_v1_status=fileDesc("CihhaS9zdGlnbWVyL2FnZW50aWMvc2tpbGwvdjEvc3RhdHVzLnByb3RvEhthaS5zdGlnbWVyLmFnZW50aWMuc2tpbGwudjEilQIKC1NraWxsU3RhdHVzEj8KBWF1ZGl0GGMgASgLMjAuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLkFwaVJlc291cmNlQXVkaXQSKwoMdmVyc2lvbl9oYXNoGAEgASgJQhW6SBJyEDIOXlthLWYwLTldezY0fSQSHAoUYXJ0aWZhY3Rfc3RvcmFnZV9rZXkYAiABKAkSNgoFc3RhdGUYAyABKA4yJy5haS5zdGlnbWVyLmFnZW50aWMuc2tpbGwudjEuU2tpbGxTdGF0ZRJCCg5naXRfcHJvdmVuYW5jZRgEIAEoCzIqLmFpLnN0aWdtZXIuYWdlbnRpYy5za2lsbC52MS5HaXRQcm92ZW5hbmNlImIKDUdpdFByb3ZlbmFuY2USGwoKcmVtb3RlX3VybBgBIAEoCUIHukgEcgIQARILCgNyZWYYAiABKAkSFwoGY29tbWl0GAMgASgJQge6SARyAhABEg4KBnN1YmRpchgEIAEoCSpzCgpTa2lsbFN0YXRlEhsKF1NLSUxMX1NUQVRFX1VOU1BFQ0lGSUVEEAASGQoVU0tJTExfU1RBVEVfVVBMT0FESU5HEAESFQoRU0tJTExfU1RBVEVfUkVBRFkQAhIWChJTS0lMTF9TVEFURV9GQUlMRUQQA2IGcHJvdG8z",[file_ai_stigmer_commons_apiresource_status,file_buf_validate_validate]);var SkillState;(function(SkillState2){SkillState2[SkillState2.UNSPECIFIED=0]="UNSPECIFIED",SkillState2[SkillState2.UPLOADING=1]="UPLOADING",SkillState2[SkillState2.READY=2]="READY",SkillState2[SkillState2.FAILED=3]="FAILED"})(SkillState||(SkillState={}));var file_ai_stigmer_agentic_skill_v1_api=fileDesc("CiVhaS9zdGlnbWVyL2FnZW50aWMvc2tpbGwvdjEvYXBpLnByb3RvEhthaS5zdGlnbWVyLmFnZW50aWMuc2tpbGwudjEilQIKBVNraWxsEjEKC2FwaV92ZXJzaW9uGAEgASgJQhy6SBlyFwoVYWdlbnRpYy5zdGlnbWVyLmFpL3YxEhoKBGtpbmQYAiABKAlCDLpICXIHCgVTa2lsbBJNCghtZXRhZGF0YRgDIAEoCzIzLmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZU1ldGFkYXRhQga6SAPIAQESNAoEc3BlYxgEIAEoCzImLmFpLnN0aWdtZXIuYWdlbnRpYy5za2lsbC52MS5Ta2lsbFNwZWMSOAoGc3RhdHVzGAUgASgLMiguYWkuc3RpZ21lci5hZ2VudGljLnNraWxsLnYxLlNraWxsU3RhdHVzImEKCVNraWxsTGlzdBITCgthcGlfdmVyc2lvbhgBIAEoCRIMCgRraW5kGAIgASgJEjEKBWl0ZW1zGAMgAygLMiIuYWkuc3RpZ21lci5hZ2VudGljLnNraWxsLnYxLlNraWxsYgZwcm90bzM",[file_ai_stigmer_agentic_skill_v1_spec,file_ai_stigmer_agentic_skill_v1_status,file_ai_stigmer_commons_apiresource_metadata,file_buf_validate_validate]),SkillSchema=messageDesc2(file_ai_stigmer_agentic_skill_v1_api,0);var file_ai_stigmer_agentic_skill_v1_io=fileDesc("CiRhaS9zdGlnbWVyL2FnZW50aWMvc2tpbGwvdjEvaW8ucHJvdG8SG2FpLnN0aWdtZXIuYWdlbnRpYy5za2lsbC52MSIgCgdTa2lsbElkEhUKBXZhbHVlGAEgASgJQga6SAPIAQEilAMKEFB1c2hTa2lsbFJlcXVlc3QSEwoDb3JnGAEgASgJQga6SAPIAQESEAoIYXJ0aWZhY3QYAiABKAwSKAoDdGFnGAMgASgJQhu6SBhyFjIUXiR8XlthLXpBLVowLTkuXy1dKyQSQgoOZ2l0X3Byb3ZlbmFuY2UYBCABKAsyKi5haS5zdGlnbWVyLmFnZW50aWMuc2tpbGwudjEuR2l0UHJvdmVuYW5jZRIPCgdtZXNzYWdlGAYgASgJEhsKE2FydGlmYWN0X3VwbG9hZF9yZWYYByABKAk6tgG6SLIBGq8BCiJwdXNoX3NraWxsX3JlcXVlc3QuYXJ0aWZhY3Rfc291cmNlEklleGFjdGx5IG9uZSBvZiBhcnRpZmFjdCAoaW5saW5lIGJ5dGVzKSBvciBhcnRpZmFjdF91cGxvYWRfcmVmIG11c3QgYmUgc2V0Gj4odGhpcy5hcnRpZmFjdC5zaXplKCkgPiAwKSAhPSAodGhpcy5hcnRpZmFjdF91cGxvYWRfcmVmICE9ICcnKUoECAUQBiJXCiNDcmVhdGVTa2lsbEFydGlmYWN0VXBsb2FkVXJsUmVxdWVzdBITCgNvcmcYASABKAlCBrpIA8gBARIbCgpzaXplX2J5dGVzGAIgASgDQge6SAQiAiAAIlcKFlNraWxsQXJ0aWZhY3RVcGxvYWRVcmwSCwoDdXJsGAEgASgJEhsKE2FydGlmYWN0X3VwbG9hZF9yZWYYAiABKAkSEwoLdHRsX3NlY29uZHMYAyABKAUiUAoYU2tpbGxBcnRpZmFjdERvd25sb2FkVXJsEgsKA3VybBgBIAEoCRITCgt0dGxfc2Vjb25kcxgCIAEoBRISCgpzaXplX2J5dGVzGAMgASgDIqMBCiVQdXNoU2tpbGxGcm9tRXhlY3V0aW9uQXJ0aWZhY3RSZXF1ZXN0EhMKA29yZxgBIAEoCUIGukgDyAEBEh0KDGV4ZWN1dGlvbl9pZBgCIAEoCUIHukgEcgIQARIcCgtzdG9yYWdlX2tleRgDIAEoCUIHukgEcgIQARIoCgN0YWcYBCABKAlCG7pIGHIWMhReJHxeW2EtekEtWjAtOS5fLV0rJCI6ChJHZXRBcnRpZmFjdFJlcXVlc3QSJAoUYXJ0aWZhY3Rfc3RvcmFnZV9rZXkYASABKAlCBrpIA8gBASInChNHZXRBcnRpZmFjdFJlc3BvbnNlEhAKCGFydGlmYWN0GAEgASgMImoKFkxpc3RTa2lsbFZlcnNpb25zSW5wdXQSEwoDb3JnGAEgASgJQga6SAPIAQESFAoEc2x1ZxgCIAEoCUIGukgDyAEBEhIKCnBhZ2VfdG9rZW4YAyABKAkSEQoJcGFnZV9zaXplGAQgASgFIrYCChFTa2lsbFZlcnNpb25FbnRyeRIUCgx2ZXJzaW9uX2hhc2gYASABKAkSLQoJcHVzaGVkX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJICglwdXNoZWRfYnkYAyABKAsyNS5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuQXBpUmVzb3VyY2VBdWRpdEFjdG9yEgsKA3RhZxgEIAEoCRISCgppc19jdXJyZW50GAUgASgIEkIKDmdpdF9wcm92ZW5hbmNlGAYgASgLMiouYWkuc3RpZ21lci5hZ2VudGljLnNraWxsLnYxLkdpdFByb3ZlbmFuY2USDwoHbWVzc2FnZRgHIAEoCRIcChRhcnRpZmFjdF9zdG9yYWdlX2tleRgIIAEoCSKLAQoZTGlzdFNraWxsVmVyc2lvbnNSZXNwb25zZRJACgh2ZXJzaW9ucxgBIAMoCzIuLmFpLnN0aWdtZXIuYWdlbnRpYy5za2lsbC52MS5Ta2lsbFZlcnNpb25FbnRyeRIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkSEwoLdG90YWxfY291bnQYAyABKAViBnByb3RvMw",[file_ai_stigmer_agentic_skill_v1_status,file_ai_stigmer_commons_apiresource_status,file_buf_validate_validate,file_google_protobuf_timestamp]);var ListSkillVersionsResponseSchema=messageDesc2(file_ai_stigmer_agentic_skill_v1_io,10);var file_ai_stigmer_agentic_skill_v1_command=fileDesc("CilhaS9zdGlnbWVyL2FnZW50aWMvc2tpbGwvdjEvY29tbWFuZC5wcm90bxIbYWkuc3RpZ21lci5hZ2VudGljLnNraWxsLnYxMocHChZTa2lsbENvbW1hbmRDb250cm9sbGVyEpkBCgRwdXNoEi0uYWkuc3RpZ21lci5hZ2VudGljLnNraWxsLnYxLlB1c2hTa2lsbFJlcXVlc3QaIi5haS5zdGlnbWVyLmFnZW50aWMuc2tpbGwudjEuU2tpbGwiPsK4GDoICRAeIgNvcmcqL3VuYXV0aG9yaXplZCB0byBwdXNoIHNraWxsIGluIHRoaXMgb3JnYW5pemF0aW9uEtABChdjcmVhdGVBcnRpZmFjdFVwbG9hZFVybBJALmFpLnN0aWdtZXIuYWdlbnRpYy5za2lsbC52MS5DcmVhdGVTa2lsbEFydGlmYWN0VXBsb2FkVXJsUmVxdWVzdBozLmFpLnN0aWdtZXIuYWdlbnRpYy5za2lsbC52MS5Ta2lsbEFydGlmYWN0VXBsb2FkVXJsIj7CuBg6CAkQHiIDb3JnKi91bmF1dGhvcml6ZWQgdG8gcHVzaCBza2lsbCBpbiB0aGlzIG9yZ2FuaXphdGlvbhLDAQoZcHVzaEZyb21FeGVjdXRpb25BcnRpZmFjdBJCLmFpLnN0aWdtZXIuYWdlbnRpYy5za2lsbC52MS5QdXNoU2tpbGxGcm9tRXhlY3V0aW9uQXJ0aWZhY3RSZXF1ZXN0GiIuYWkuc3RpZ21lci5hZ2VudGljLnNraWxsLnYxLlNraWxsIj7CuBg6CAkQHiIDb3JnKi91bmF1dGhvcml6ZWQgdG8gcHVzaCBza2lsbCBpbiB0aGlzIG9yZ2FuaXphdGlvbhKtAQoQdXBkYXRlVmlzaWJpbGl0eRI1LmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5VcGRhdGVWaXNpYmlsaXR5SW5wdXQaIi5haS5zdGlnbWVyLmFnZW50aWMuc2tpbGwudjEuU2tpbGwiPsK4GDoIAhArIgtyZXNvdXJjZV9pZCondW5hdXRob3JpemVkIHRvIHVwZGF0ZSBza2lsbCB2aXNpYmlsaXR5EoEBCgZkZWxldGUSJC5haS5zdGlnbWVyLmFnZW50aWMuc2tpbGwudjEuU2tpbGxJZBoiLmFpLnN0aWdtZXIuYWdlbnRpYy5za2lsbC52MS5Ta2lsbCItwrgYKQgDECsiBXZhbHVlKhx1bmF1dGhvcml6ZWQgdG8gZGVsZXRlIHNraWxsGgSg/ysrYgZwcm90bzM",[file_ai_stigmer_agentic_skill_v1_api,file_ai_stigmer_agentic_skill_v1_io,file_ai_stigmer_commons_apiresource_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),SkillCommandController=serviceDesc(file_ai_stigmer_agentic_skill_v1_command,0);var file_ai_stigmer_agentic_skill_v1_query=fileDesc("CidhaS9zdGlnbWVyL2FnZW50aWMvc2tpbGwvdjEvcXVlcnkucHJvdG8SG2FpLnN0aWdtZXIuYWdlbnRpYy5za2lsbC52MTKQBQoUU2tpbGxRdWVyeUNvbnRyb2xsZXISewoDZ2V0EiQuYWkuc3RpZ21lci5hZ2VudGljLnNraWxsLnYxLlNraWxsSWQaIi5haS5zdGlnbWVyLmFnZW50aWMuc2tpbGwudjEuU2tpbGwiKsK4GCYIARArIgV2YWx1ZSoZdW5hdXRob3JpemVkIHRvIGdldCBza2lsbBJwCg5nZXRCeVJlZmVyZW5jZRI0LmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZVJlZmVyZW5jZRoiLmFpLnN0aWdtZXIuYWdlbnRpYy5za2lsbC52MS5Ta2lsbCIE0LgYARJ2CgtnZXRBcnRpZmFjdBIvLmFpLnN0aWdtZXIuYWdlbnRpYy5za2lsbC52MS5HZXRBcnRpZmFjdFJlcXVlc3QaMC5haS5zdGlnbWVyLmFnZW50aWMuc2tpbGwudjEuR2V0QXJ0aWZhY3RSZXNwb25zZSIE0LgYARKGAQoWZ2V0QXJ0aWZhY3REb3dubG9hZFVybBIvLmFpLnN0aWdtZXIuYWdlbnRpYy5za2lsbC52MS5HZXRBcnRpZmFjdFJlcXVlc3QaNS5haS5zdGlnbWVyLmFnZW50aWMuc2tpbGwudjEuU2tpbGxBcnRpZmFjdERvd25sb2FkVXJsIgTQuBgBEoEBCgxsaXN0VmVyc2lvbnMSMy5haS5zdGlnbWVyLmFnZW50aWMuc2tpbGwudjEuTGlzdFNraWxsVmVyc2lvbnNJbnB1dBo2LmFpLnN0aWdtZXIuYWdlbnRpYy5za2lsbC52MS5MaXN0U2tpbGxWZXJzaW9uc1Jlc3BvbnNlIgTQuBgBGgSg/ysrYgZwcm90bzM",[file_ai_stigmer_agentic_skill_v1_api,file_ai_stigmer_agentic_skill_v1_io,file_ai_stigmer_commons_apiresource_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),SkillQueryController=serviceDesc(file_ai_stigmer_agentic_skill_v1_query,0);var file_ai_stigmer_agentic_workflow_v1_enum=fileDesc("CilhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvZW51bS5wcm90bxIeYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxKt4CChBXb3JrZmxvd1Rhc2tLaW5kEiIKHndvcmtmbG93X3Rhc2tfa2luZF91bnNwZWNpZmllZBAAEgwKCHNldF92YXJzEAESDQoJaHR0cF9jYWxsEAISDQoJZ3JwY19jYWxsEAMSEQoNYWN0aXZpdHlfY2FsbBAEEg8KC3N3aXRjaF9jYXNlEAUSDAoIZm9yX2VhY2gQBhIICgRmb3JrEAcSDQoJdHJ5X2NhdGNoEAgSCgoGbGlzdGVuEAkSCAoEd2FpdBAKEg8KC3JhaXNlX2Vycm9yEAsSEAoMcnVuX3dvcmtmbG93EAwSDgoKYWdlbnRfY2FsbBANEgwKCGxsbV9jYWxsEA4SDQoJdHJhbnNmb3JtEA8SDwoLaHVtYW5faW5wdXQQEBIMCgh2YWxpZGF0ZRAREg4KCmVtaXRfZXZlbnQQEhIQCgxub3RpZmljYXRpb24QExIICgRldmFsEBQqmQEKFEJ1ZGdldEV4Y2VlZGVkUG9saWN5EiYKImJ1ZGdldF9leGNlZWRlZF9wb2xpY3lfdW5zcGVjaWZpZWQQABIdChlidWRnZXRfZXhjZWVkZWRfdGVybWluYXRlEAESIAocYnVkZ2V0X2V4Y2VlZGVkX2h1bWFuX3JldmlldxACEhgKFGJ1ZGdldF9leGNlZWRlZF93YXJuEANiBnByb3RvMw"),WorkflowTaskKind;(function(WorkflowTaskKind2){WorkflowTaskKind2[WorkflowTaskKind2.workflow_task_kind_unspecified=0]="workflow_task_kind_unspecified",WorkflowTaskKind2[WorkflowTaskKind2.set_vars=1]="set_vars",WorkflowTaskKind2[WorkflowTaskKind2.http_call=2]="http_call",WorkflowTaskKind2[WorkflowTaskKind2.grpc_call=3]="grpc_call",WorkflowTaskKind2[WorkflowTaskKind2.activity_call=4]="activity_call",WorkflowTaskKind2[WorkflowTaskKind2.switch_case=5]="switch_case",WorkflowTaskKind2[WorkflowTaskKind2.for_each=6]="for_each",WorkflowTaskKind2[WorkflowTaskKind2.fork=7]="fork",WorkflowTaskKind2[WorkflowTaskKind2.try_catch=8]="try_catch",WorkflowTaskKind2[WorkflowTaskKind2.listen=9]="listen",WorkflowTaskKind2[WorkflowTaskKind2.wait=10]="wait",WorkflowTaskKind2[WorkflowTaskKind2.raise_error=11]="raise_error",WorkflowTaskKind2[WorkflowTaskKind2.run_workflow=12]="run_workflow",WorkflowTaskKind2[WorkflowTaskKind2.agent_call=13]="agent_call",WorkflowTaskKind2[WorkflowTaskKind2.llm_call=14]="llm_call",WorkflowTaskKind2[WorkflowTaskKind2.transform=15]="transform",WorkflowTaskKind2[WorkflowTaskKind2.human_input=16]="human_input",WorkflowTaskKind2[WorkflowTaskKind2.validate=17]="validate",WorkflowTaskKind2[WorkflowTaskKind2.emit_event=18]="emit_event",WorkflowTaskKind2[WorkflowTaskKind2.notification=19]="notification",WorkflowTaskKind2[WorkflowTaskKind2.eval=20]="eval"})(WorkflowTaskKind||(WorkflowTaskKind={}));var BudgetExceededPolicy;(function(BudgetExceededPolicy2){BudgetExceededPolicy2[BudgetExceededPolicy2.budget_exceeded_policy_unspecified=0]="budget_exceeded_policy_unspecified",BudgetExceededPolicy2[BudgetExceededPolicy2.budget_exceeded_terminate=1]="budget_exceeded_terminate",BudgetExceededPolicy2[BudgetExceededPolicy2.budget_exceeded_human_review=2]="budget_exceeded_human_review",BudgetExceededPolicy2[BudgetExceededPolicy2.budget_exceeded_warn=3]="budget_exceeded_warn"})(BudgetExceededPolicy||(BudgetExceededPolicy={}));var file_ai_stigmer_agentic_workflow_v1_spec=fileDesc("CilhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvc3BlYy5wcm90bxIeYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxIpwDCgxXb3JrZmxvd1NwZWMSEwoLZGVzY3JpcHRpb24YASABKAkSSgoIZG9jdW1lbnQYAiABKAsyMC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuV29ya2Zsb3dEb2N1bWVudEIGukgDyAEBEkUKBXRhc2tzGAMgAygLMiwuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLldvcmtmbG93VGFza0IIukgFkgECCAESQgoDZW52GAQgAygLMjUuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLldvcmtmbG93U3BlYy5FbnZFbnRyeRI+CgZidWRnZXQYBSABKAsyLi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuV29ya2Zsb3dCdWRnZXQaYAoIRW52RW50cnkSCwoDa2V5GAEgASgJEkMKBXZhbHVlGAIgASgLMjQuYWkuc3RpZ21lci5hZ2VudGljLmVudmlyb25tZW50LnYxLkVudlZhckRlY2xhcmF0aW9uOgI4ASKsAQoOV29ya2Zsb3dCdWRnZXQSFwoPbWF4X2Nvc3RfbWljcm9zGAEgASgDEhgKEG1heF90b3RhbF90b2tlbnMYAiABKAMSHAoUbWF4X2R1cmF0aW9uX3NlY29uZHMYAyABKAUSSQoLb25fZXhjZWVkZWQYBCABKA4yNC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuQnVkZ2V0RXhjZWVkZWRQb2xpY3kikAEKEFdvcmtmbG93RG9jdW1lbnQSHQoDZHNsGAEgASgJQhC6SA1yCzIJXjFcLjBcLjAkEhkKCW5hbWVzcGFjZRgCIAEoCUIGukgDyAEBEhQKBG5hbWUYAyABKAlCBrpIA8gBARIXCgd2ZXJzaW9uGAQgASgJQga6SAPIAQESEwoLZGVzY3JpcHRpb24YBSABKAki+gIKDFdvcmtmbG93VGFzaxIvCgRuYW1lGAEgASgJQiG6SB5yHBABMhheW2EtekEtWl9dW2EtekEtWjAtOV9dKiQSRgoEa2luZBgCIAEoDjIwLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5Xb3JrZmxvd1Rhc2tLaW5kQga6SAPIAQESPAoLdGFza19jb25maWcYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Qg66SAPIAQHqhSwEa2luZBI2CgZleHBvcnQYBCABKAsyJi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuRXhwb3J0EjkKBGZsb3cYBSABKAsyKy5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuRmxvd0NvbnRyb2wSQAoKY29tcGVuc2F0ZRgGIAMoCzIsLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5Xb3JrZmxvd1Rhc2siHQoGRXhwb3J0EhMKAmFzGAEgASgJQge6SARyAhABIhsKC0Zsb3dDb250cm9sEgwKBHRoZW4YASABKAliBnByb3RvMw",[file_ai_stigmer_agentic_environment_v1_spec,file_ai_stigmer_agentic_workflow_v1_enum,file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate,file_google_protobuf_struct]),WorkflowSpecSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_spec,0),WorkflowBudgetSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_spec,1),WorkflowDocumentSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_spec,2),WorkflowTaskSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_spec,3),ExportSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_spec,4),FlowControlSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_spec,5);var file_ai_stigmer_agentic_workflow_v1_serverless_validation=fileDesc("CjphaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvc2VydmVybGVzcy92YWxpZGF0aW9uLnByb3RvEilhaS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuc2VydmVybGVzcyLrAQocU2VydmVybGVzc1dvcmtmbG93VmFsaWRhdGlvbhJJCgVzdGF0ZRgBIAEoDjI6LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5zZXJ2ZXJsZXNzLlZhbGlkYXRpb25TdGF0ZRIMCgR5YW1sGAIgASgJEg4KBmVycm9ycxgDIAMoCRIQCgh3YXJuaW5ncxgEIAMoCRIwCgx2YWxpZGF0ZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEh4KFnZhbGlkYXRpb25fd29ya2Zsb3dfaWQYBiABKAkqZAoPVmFsaWRhdGlvblN0YXRlEiAKHFZBTElEQVRJT05fU1RBVEVfVU5TUEVDSUZJRUQQABILCgdQRU5ESU5HEAESCQoFVkFMSUQQAhILCgdJTlZBTElEEAMSCgoGRkFJTEVEEARiBnByb3RvMw",[file_google_protobuf_timestamp]),ServerlessWorkflowValidationSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_serverless_validation,0),ValidationState2;(function(ValidationState3){ValidationState3[ValidationState3.VALIDATION_STATE_UNSPECIFIED=0]="VALIDATION_STATE_UNSPECIFIED",ValidationState3[ValidationState3.PENDING=1]="PENDING",ValidationState3[ValidationState3.VALID=2]="VALID",ValidationState3[ValidationState3.INVALID=3]="INVALID",ValidationState3[ValidationState3.FAILED=4]="FAILED"})(ValidationState2||(ValidationState2={}));var file_ai_stigmer_agentic_workflow_v1_status=fileDesc("CithaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvc3RhdHVzLnByb3RvEh5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEi9QEKDldvcmtmbG93U3RhdHVzEj8KBWF1ZGl0GGMgASgLMjAuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLkFwaVJlc291cmNlQXVkaXQSGwoTZGVmYXVsdF9pbnN0YW5jZV9pZBgBIAEoCRJvCh5zZXJ2ZXJsZXNzX3dvcmtmbG93X3ZhbGlkYXRpb24YAiABKAsyRy5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuc2VydmVybGVzcy5TZXJ2ZXJsZXNzV29ya2Zsb3dWYWxpZGF0aW9uEhQKDHZlcnNpb25faGFzaBgDIAEoCWIGcHJvdG8z",[file_ai_stigmer_agentic_workflow_v1_serverless_validation,file_ai_stigmer_commons_apiresource_status]);var file_ai_stigmer_agentic_workflow_v1_api=fileDesc("CihhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvYXBpLnByb3RvEh5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEipwIKCFdvcmtmbG93EjEKC2FwaV92ZXJzaW9uGAEgASgJQhy6SBlyFwoVYWdlbnRpYy5zdGlnbWVyLmFpL3YxEh0KBGtpbmQYAiABKAlCD7pIDHIKCghXb3JrZmxvdxJNCghtZXRhZGF0YRgDIAEoCzIzLmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZU1ldGFkYXRhQga6SAPIAQESOgoEc3BlYxgEIAEoCzIsLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5Xb3JrZmxvd1NwZWMSPgoGc3RhdHVzGAUgASgLMi4uYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLldvcmtmbG93U3RhdHVzYgZwcm90bzM",[file_ai_stigmer_agentic_workflow_v1_spec,file_ai_stigmer_agentic_workflow_v1_status,file_ai_stigmer_commons_apiresource_metadata,file_buf_validate_validate]),WorkflowSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_api,0);var file_ai_stigmer_agentic_workflow_v1_io=fileDesc("CidhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvaW8ucHJvdG8SHmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MSIjCgpXb3JrZmxvd0lkEhUKBXZhbHVlGAEgASgJQga6SAPIAQFiBnByb3RvMw",[file_buf_validate_validate]);var file_ai_stigmer_agentic_workflow_v1_version=fileDesc("CixhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdmVyc2lvbi5wcm90bxIeYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxIrgCChRXb3JrZmxvd1ZlcnNpb25FbnRyeRIUCgx2ZXJzaW9uX2hhc2gYASABKAkSLgoKYXBwbGllZF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASSQoKYXBwbGllZF9ieRgDIAEoCzI1LmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZUF1ZGl0QWN0b3ISCwoDdGFnGAQgASgJEhIKCmlzX2N1cnJlbnQYBSABKAgSDwoHbWVzc2FnZRgGIAEoCRIWCg52YWxpZGF0ZWRfeWFtbBgHIAEoCRJFCg5naXRfcHJvdmVuYW5jZRgIIAEoCzItLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5HaXRQcm92ZW5hbmNlIlAKDUdpdFByb3ZlbmFuY2USEgoKcmVtb3RlX3VybBgBIAEoCRILCgNyZWYYAiABKAkSDgoGY29tbWl0GAMgASgJEg4KBnN1YmRpchgEIAEoCSJtChlMaXN0V29ya2Zsb3dWZXJzaW9uc0lucHV0EhMKA29yZxgBIAEoCUIGukgDyAEBEhQKBHNsdWcYAiABKAlCBrpIA8gBARISCgpwYWdlX3Rva2VuGAMgASgJEhEKCXBhZ2Vfc2l6ZRgEIAEoBSKUAQocTGlzdFdvcmtmbG93VmVyc2lvbnNSZXNwb25zZRJGCgh2ZXJzaW9ucxgBIAMoCzI0LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5Xb3JrZmxvd1ZlcnNpb25FbnRyeRIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkSEwoLdG90YWxfY291bnQYAyABKAUiYwoXR2V0V29ya2Zsb3dWZXJzaW9uSW5wdXQSGwoLd29ya2Zsb3dfaWQYASABKAlCBrpIA8gBARIrCgx2ZXJzaW9uX2hhc2gYAiABKAlCFbpIEnIQMg5eW2EtZjAtOV17NjR9JCKMAQoXVGFnV29ya2Zsb3dWZXJzaW9uSW5wdXQSGwoLd29ya2Zsb3dfaWQYASABKAlCBrpIA8gBARIrCgx2ZXJzaW9uX2hhc2gYAiABKAlCFbpIEnIQMg5eW2EtZjAtOV17NjR9JBInCgN0YWcYAyABKAlCGrpIF3IVEAEyEV5bYS16QS1aMC05Ll8tXSskYgZwcm90bzM",[file_ai_stigmer_commons_apiresource_status,file_buf_validate_validate,file_google_protobuf_timestamp]),WorkflowVersionEntrySchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_version,0);var ListWorkflowVersionsResponseSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_version,3);var file_ai_stigmer_agentic_workflow_v1_command=fileDesc("CixhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvY29tbWFuZC5wcm90bxIeYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxMpEJChlXb3JrZmxvd0NvbW1hbmRDb250cm9sbGVyElsKBWFwcGx5EiguYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLldvcmtmbG93GiguYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLldvcmtmbG93EqoBCgZjcmVhdGUSKC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuV29ya2Zsb3caKC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuV29ya2Zsb3ciTMK4GEgIBxAeIgxtZXRhZGF0YS5vcmcqNHVuYXV0aG9yaXplZCB0byBjcmVhdGUgd29ya2Zsb3cgaW4gdGhpcyBvcmdhbml6YXRpb24SlAEKBnVwZGF0ZRIoLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5Xb3JrZmxvdxooLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5Xb3JrZmxvdyI2wrgYMggCEDIiC21ldGFkYXRhLmlkKh91bmF1dGhvcml6ZWQgdG8gdXBkYXRlIHdvcmtmbG93ErYBChB1cGRhdGVWaXNpYmlsaXR5EjUuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLlVwZGF0ZVZpc2liaWxpdHlJbnB1dBooLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5Xb3JrZmxvdyJBwrgYPQgCEDIiC3Jlc291cmNlX2lkKip1bmF1dGhvcml6ZWQgdG8gdXBkYXRlIHdvcmtmbG93IHZpc2liaWxpdHkSkAEKBmRlbGV0ZRIqLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5Xb3JrZmxvd0lkGiguYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLldvcmtmbG93IjDCuBgsCAMQMiIFdmFsdWUqH3VuYXV0aG9yaXplZCB0byBkZWxldGUgd29ya2Zsb3cS0QEKDHZhbGlkYXRlU3BlYxIoLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5Xb3JrZmxvdxpHLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5zZXJ2ZXJsZXNzLlNlcnZlcmxlc3NXb3JrZmxvd1ZhbGlkYXRpb24iTsK4GEoIBxAeIgxtZXRhZGF0YS5vcmcqNnVuYXV0aG9yaXplZCB0byB2YWxpZGF0ZSB3b3JrZmxvdyBpbiB0aGlzIG9yZ2FuaXphdGlvbhKsAQoKdGFnVmVyc2lvbhI3LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5UYWdXb3JrZmxvd1ZlcnNpb25JbnB1dBooLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5Xb3JrZmxvdyI7wrgYNwgCEDIiC3dvcmtmbG93X2lkKiR1bmF1dGhvcml6ZWQgdG8gdGFnIHdvcmtmbG93IHZlcnNpb24aBKD/KzJiBnByb3RvMw",[file_ai_stigmer_agentic_workflow_v1_api,file_ai_stigmer_agentic_workflow_v1_io,file_ai_stigmer_agentic_workflow_v1_serverless_validation,file_ai_stigmer_agentic_workflow_v1_version,file_ai_stigmer_commons_apiresource_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),WorkflowCommandController=serviceDesc(file_ai_stigmer_agentic_workflow_v1_command,0);var file_ai_stigmer_agentic_workflow_v1_query=fileDesc("CiphaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvcXVlcnkucHJvdG8SHmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MTLvBAoXV29ya2Zsb3dRdWVyeUNvbnRyb2xsZXISigEKA2dldBIqLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5Xb3JrZmxvd0lkGiguYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLldvcmtmbG93Ii3CuBgpCAEQMiIFdmFsdWUqHHVuYXV0aG9yaXplZCB0byBnZXQgd29ya2Zsb3cSdgoOZ2V0QnlSZWZlcmVuY2USNC5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuQXBpUmVzb3VyY2VSZWZlcmVuY2UaKC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuV29ya2Zsb3ciBNC4GAESjQEKDGxpc3RWZXJzaW9ucxI5LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5MaXN0V29ya2Zsb3dWZXJzaW9uc0lucHV0GjwuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLkxpc3RXb3JrZmxvd1ZlcnNpb25zUmVzcG9uc2UiBNC4GAESuAEKCmdldFZlcnNpb24SNy5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuR2V0V29ya2Zsb3dWZXJzaW9uSW5wdXQaNC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuV29ya2Zsb3dWZXJzaW9uRW50cnkiO8K4GDcIARAyIgt3b3JrZmxvd19pZCokdW5hdXRob3JpemVkIHRvIGdldCB3b3JrZmxvdyB2ZXJzaW9uGgSg/ysyYgZwcm90bzM",[file_ai_stigmer_agentic_workflow_v1_api,file_ai_stigmer_agentic_workflow_v1_io,file_ai_stigmer_agentic_workflow_v1_version,file_ai_stigmer_commons_apiresource_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),WorkflowQueryController=serviceDesc(file_ai_stigmer_agentic_workflow_v1_query,0);var file_ai_stigmer_agentic_workflow_v1_task_kind_descriptor=fileDesc("CjlhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza19raW5kX2Rlc2NyaXB0b3IucHJvdG8SHmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MSJHCg5UYXNrRmllbGRHcm91cBIKCgJpZBgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAki1gIKE1Rhc2tGaWVsZERlc2NyaXB0b3ISDAoEbmFtZRgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSOwoEdHlwZRgEIAEoDjItLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5UYXNrRmllbGRUeXBlEhAKCHJlcXVpcmVkGAUgASgIEhUKDWlzX2V4cHJlc3Npb24YBiABKAgSFQoNZGVmYXVsdF92YWx1ZRgHIAEoCRITCgtlbnVtX3ZhbHVlcxgIIAMoCRIcChRqc29uX3NjaGVtYV9mcmFnbWVudBgJIAEoCRIQCghncm91cF9pZBgKIAEoCRIUCgxmaWVsZF9udW1iZXIYCyABKAUSFAoMZWxlbWVudF90eXBlGAwgASgJEhgKEHZhbGlkYXRpb25faGludHMYDSADKAkimgQKElRhc2tLaW5kRGVzY3JpcHRvchI+CgRraW5kGAEgASgOMjAuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLldvcmtmbG93VGFza0tpbmQSFAoMZGlzcGxheV9uYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEkIKCGNhdGVnb3J5GAQgASgOMjAuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLlRhc2tLaW5kQ2F0ZWdvcnkSDAoEaWNvbhgFIAEoCRIZChFjb25maWdfcHJvdG9fdHlwZRgGIAEoCRJDCgZmaWVsZHMYByADKAsyMy5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuVGFza0ZpZWxkRGVzY3JpcHRvchJECgxmaWVsZF9ncm91cHMYCCADKAsyLi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuVGFza0ZpZWxkR3JvdXASGgoSY29uZmlnX2pzb25fc2NoZW1hGAkgASgJEhoKEm91dHB1dF9qc29uX3NjaGVtYRgKIAEoCRIVCg15YW1sX2V4YW1wbGVzGAsgAygJEhkKEWRvY3VtZW50YXRpb25fdXJsGAwgASgJEhQKDGlzX2FpX25hdGl2ZRgNIAEoCBIhChlyZXF1aXJlc19leHRlcm5hbF9zZXJ2aWNlGA4gASgIIhwKGkdldFRhc2tLaW5kUmVnaXN0cnlSZXF1ZXN0ImYKG0dldFRhc2tLaW5kUmVnaXN0cnlSZXNwb25zZRJHCgtkZXNjcmlwdG9ycxgBIAMoCzIyLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5UYXNrS2luZERlc2NyaXB0b3Iq9wEKEFRhc2tLaW5kQ2F0ZWdvcnkSIgoeVEFTS19LSU5EX0NBVEVHT1JZX1VOU1BFQ0lGSUVEEAASIwofVEFTS19LSU5EX0NBVEVHT1JZX0NPTlRST0xfRkxPVxABEiEKHVRBU0tfS0lORF9DQVRFR09SWV9JTlZPQ0FUSU9OEAISGQoVVEFTS19LSU5EX0NBVEVHT1JZX0FJEAMSGwoXVEFTS19LSU5EX0NBVEVHT1JZX0RBVEEQBBIhCh1UQVNLX0tJTkRfQ0FURUdPUllfR09WRVJOQU5DRRAFEhwKGFRBU0tfS0lORF9DQVRFR09SWV9FVkVOVBAGKqYCCg1UYXNrRmllbGRUeXBlEh8KG1RBU0tfRklFTERfVFlQRV9VTlNQRUNJRklFRBAAEhoKFlRBU0tfRklFTERfVFlQRV9TVFJJTkcQARIZChVUQVNLX0ZJRUxEX1RZUEVfSU5UMzIQAhIZChVUQVNLX0ZJRUxEX1RZUEVfRkxPQVQQAxIYChRUQVNLX0ZJRUxEX1RZUEVfQk9PTBAEEhgKFFRBU0tfRklFTERfVFlQRV9FTlVNEAUSGgoWVEFTS19GSUVMRF9UWVBFX1NUUlVDVBAGEhwKGFRBU0tfRklFTERfVFlQRV9SRVBFQVRFRBAHEhcKE1RBU0tfRklFTERfVFlQRV9NQVAQCBIbChdUQVNLX0ZJRUxEX1RZUEVfTUVTU0FHRRAJYgZwcm90bzM",[file_ai_stigmer_agentic_workflow_v1_enum]);var TaskKindDescriptorSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_task_kind_descriptor,2);var GetTaskKindRegistryResponseSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_task_kind_descriptor,4),TaskKindCategory;(function(TaskKindCategory2){TaskKindCategory2[TaskKindCategory2.UNSPECIFIED=0]="UNSPECIFIED",TaskKindCategory2[TaskKindCategory2.CONTROL_FLOW=1]="CONTROL_FLOW",TaskKindCategory2[TaskKindCategory2.INVOCATION=2]="INVOCATION",TaskKindCategory2[TaskKindCategory2.AI=3]="AI",TaskKindCategory2[TaskKindCategory2.DATA=4]="DATA",TaskKindCategory2[TaskKindCategory2.GOVERNANCE=5]="GOVERNANCE",TaskKindCategory2[TaskKindCategory2.EVENT=6]="EVENT"})(TaskKindCategory||(TaskKindCategory={}));var TaskFieldType;(function(TaskFieldType2){TaskFieldType2[TaskFieldType2.UNSPECIFIED=0]="UNSPECIFIED",TaskFieldType2[TaskFieldType2.STRING=1]="STRING",TaskFieldType2[TaskFieldType2.INT32=2]="INT32",TaskFieldType2[TaskFieldType2.FLOAT=3]="FLOAT",TaskFieldType2[TaskFieldType2.BOOL=4]="BOOL",TaskFieldType2[TaskFieldType2.ENUM=5]="ENUM",TaskFieldType2[TaskFieldType2.STRUCT=6]="STRUCT",TaskFieldType2[TaskFieldType2.REPEATED=7]="REPEATED",TaskFieldType2[TaskFieldType2.MAP=8]="MAP",TaskFieldType2[TaskFieldType2.MESSAGE=9]="MESSAGE"})(TaskFieldType||(TaskFieldType={}));var file_ai_stigmer_agentic_workflow_v1_task_kind_registry_query=fileDesc("Cj1haS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza19raW5kX3JlZ2lzdHJ5X3F1ZXJ5LnByb3RvEh5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEysgEKH1Rhc2tLaW5kUmVnaXN0cnlRdWVyeUNvbnRyb2xsZXISjgEKE2dldFRhc2tLaW5kUmVnaXN0cnkSOi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuR2V0VGFza0tpbmRSZWdpc3RyeVJlcXVlc3QaOy5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuR2V0VGFza0tpbmRSZWdpc3RyeVJlc3BvbnNlYgZwcm90bzM",[file_ai_stigmer_agentic_workflow_v1_task_kind_descriptor]),TaskKindRegistryQueryController=serviceDesc(file_ai_stigmer_agentic_workflow_v1_task_kind_registry_query,0);var file_ai_stigmer_agentic_workflowexecution_v1_enum=fileDesc("CjJhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3dleGVjdXRpb24vdjEvZW51bS5wcm90bxInYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxKtsBCg5FeGVjdXRpb25QaGFzZRIfChtFWEVDVVRJT05fUEhBU0VfVU5TUEVDSUZJRUQQABIVChFFWEVDVVRJT05fUEVORElORxABEhkKFUVYRUNVVElPTl9JTl9QUk9HUkVTUxACEhcKE0VYRUNVVElPTl9DT01QTEVURUQQAxIUChBFWEVDVVRJT05fRkFJTEVEEAQSFwoTRVhFQ1VUSU9OX0NBTkNFTExFRBAFEhgKFEVYRUNVVElPTl9URVJNSU5BVEVEEAYSFAoQRVhFQ1VUSU9OX1BBVVNFRBAHKoQCChBXb3JrZmxvd1Rhc2tUeXBlEiIKHldPUktGTE9XX1RBU0tfVFlQRV9VTlNQRUNJRklFRBAAEiIKHldPUktGTE9XX1RBU0tfQUdFTlRfSU5WT0NBVElPThABEhoKFldPUktGTE9XX1RBU0tfQVBQUk9WQUwQAhIaChZXT1JLRkxPV19UQVNLX0FQSV9DQUxMEAMSHQoZV09SS0ZMT1dfVEFTS19DT05ESVRJT05BTBAEEhoKFldPUktGTE9XX1RBU0tfUEFSQUxMRUwQBRIbChdXT1JLRkxPV19UQVNLX1RSQU5TRk9STRAGEhgKFFdPUktGTE9XX1RBU0tfQ1VTVE9NEAcq6gEKEldvcmtmbG93VGFza1N0YXR1cxIkCiBXT1JLRkxPV19UQVNLX1NUQVRVU19VTlNQRUNJRklFRBAAEhkKFVdPUktGTE9XX1RBU0tfUEVORElORxABEh0KGVdPUktGTE9XX1RBU0tfSU5fUFJPR1JFU1MQAhIbChdXT1JLRkxPV19UQVNLX0NPTVBMRVRFRBADEhgKFFdPUktGTE9XX1RBU0tfRkFJTEVEEAQSGQoVV09SS0ZMT1dfVEFTS19TS0lQUEVEEAUSIgoeV09SS0ZMT1dfVEFTS19XQUlUSU5HX0FQUFJPVkFMEAZiBnByb3RvMw"),ExecutionPhase2;(function(ExecutionPhase3){ExecutionPhase3[ExecutionPhase3.EXECUTION_PHASE_UNSPECIFIED=0]="EXECUTION_PHASE_UNSPECIFIED",ExecutionPhase3[ExecutionPhase3.EXECUTION_PENDING=1]="EXECUTION_PENDING",ExecutionPhase3[ExecutionPhase3.EXECUTION_IN_PROGRESS=2]="EXECUTION_IN_PROGRESS",ExecutionPhase3[ExecutionPhase3.EXECUTION_COMPLETED=3]="EXECUTION_COMPLETED",ExecutionPhase3[ExecutionPhase3.EXECUTION_FAILED=4]="EXECUTION_FAILED",ExecutionPhase3[ExecutionPhase3.EXECUTION_CANCELLED=5]="EXECUTION_CANCELLED",ExecutionPhase3[ExecutionPhase3.EXECUTION_TERMINATED=6]="EXECUTION_TERMINATED",ExecutionPhase3[ExecutionPhase3.EXECUTION_PAUSED=7]="EXECUTION_PAUSED"})(ExecutionPhase2||(ExecutionPhase2={}));var WorkflowTaskType;(function(WorkflowTaskType2){WorkflowTaskType2[WorkflowTaskType2.WORKFLOW_TASK_TYPE_UNSPECIFIED=0]="WORKFLOW_TASK_TYPE_UNSPECIFIED",WorkflowTaskType2[WorkflowTaskType2.WORKFLOW_TASK_AGENT_INVOCATION=1]="WORKFLOW_TASK_AGENT_INVOCATION",WorkflowTaskType2[WorkflowTaskType2.WORKFLOW_TASK_APPROVAL=2]="WORKFLOW_TASK_APPROVAL",WorkflowTaskType2[WorkflowTaskType2.WORKFLOW_TASK_API_CALL=3]="WORKFLOW_TASK_API_CALL",WorkflowTaskType2[WorkflowTaskType2.WORKFLOW_TASK_CONDITIONAL=4]="WORKFLOW_TASK_CONDITIONAL",WorkflowTaskType2[WorkflowTaskType2.WORKFLOW_TASK_PARALLEL=5]="WORKFLOW_TASK_PARALLEL",WorkflowTaskType2[WorkflowTaskType2.WORKFLOW_TASK_TRANSFORM=6]="WORKFLOW_TASK_TRANSFORM",WorkflowTaskType2[WorkflowTaskType2.WORKFLOW_TASK_CUSTOM=7]="WORKFLOW_TASK_CUSTOM"})(WorkflowTaskType||(WorkflowTaskType={}));var WorkflowTaskStatus;(function(WorkflowTaskStatus2){WorkflowTaskStatus2[WorkflowTaskStatus2.WORKFLOW_TASK_STATUS_UNSPECIFIED=0]="WORKFLOW_TASK_STATUS_UNSPECIFIED",WorkflowTaskStatus2[WorkflowTaskStatus2.WORKFLOW_TASK_PENDING=1]="WORKFLOW_TASK_PENDING",WorkflowTaskStatus2[WorkflowTaskStatus2.WORKFLOW_TASK_IN_PROGRESS=2]="WORKFLOW_TASK_IN_PROGRESS",WorkflowTaskStatus2[WorkflowTaskStatus2.WORKFLOW_TASK_COMPLETED=3]="WORKFLOW_TASK_COMPLETED",WorkflowTaskStatus2[WorkflowTaskStatus2.WORKFLOW_TASK_FAILED=4]="WORKFLOW_TASK_FAILED",WorkflowTaskStatus2[WorkflowTaskStatus2.WORKFLOW_TASK_SKIPPED=5]="WORKFLOW_TASK_SKIPPED",WorkflowTaskStatus2[WorkflowTaskStatus2.WORKFLOW_TASK_WAITING_APPROVAL=6]="WORKFLOW_TASK_WAITING_APPROVAL"})(WorkflowTaskStatus||(WorkflowTaskStatus={}));var file_ai_stigmer_agentic_workflowexecution_v1_spec=fileDesc("CjJhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3dleGVjdXRpb24vdjEvc3BlYy5wcm90bxInYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxIrwEChVXb3JrZmxvd0V4ZWN1dGlvblNwZWMSHAoUd29ya2Zsb3dfaW5zdGFuY2VfaWQYASABKAkSEwoLd29ya2Zsb3dfaWQYBiABKAkSFwoPdHJpZ2dlcl9tZXNzYWdlGAMgASgJEm0KEHRyaWdnZXJfbWV0YWRhdGEYBCADKAsyUy5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuV29ya2Zsb3dFeGVjdXRpb25TcGVjLlRyaWdnZXJNZXRhZGF0YUVudHJ5EmMKC3J1bnRpbWVfZW52GAUgAygLMk4uYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXhlY3V0aW9uU3BlYy5SdW50aW1lRW52RW50cnkSFgoOY2FsbGJhY2tfdG9rZW4YByABKAwSSAoQZXhlY3V0aW9uX3RhcmdldBgIIAEoDjIuLmFpLnN0aWdtZXIuYWdlbnRpYy5zZXNzaW9uLnYxLkV4ZWN1dGlvblRhcmdldBo2ChRUcmlnZ2VyTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGmkKD1J1bnRpbWVFbnZFbnRyeRILCgNrZXkYASABKAkSRQoFdmFsdWUYAiABKAsyNi5haS5zdGlnbWVyLmFnZW50aWMuZXhlY3V0aW9uY29udGV4dC52MS5FeGVjdXRpb25WYWx1ZToCOAFiBnByb3RvMw",[file_ai_stigmer_agentic_executioncontext_v1_spec,file_ai_stigmer_agentic_session_v1_enum]),WorkflowExecutionSpecSchema=messageDesc2(file_ai_stigmer_agentic_workflowexecution_v1_spec,0);var file_ai_stigmer_agentic_workflowexecution_v1_api=fileDesc("CjFhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3dleGVjdXRpb24vdjEvYXBpLnByb3RvEidhaS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEi3QIKEVdvcmtmbG93RXhlY3V0aW9uEjEKC2FwaV92ZXJzaW9uGAEgASgJQhy6SBlyFwoVYWdlbnRpYy5zdGlnbWVyLmFpL3YxEiYKBGtpbmQYAiABKAlCGLpIFXITChFXb3JrZmxvd0V4ZWN1dGlvbhJNCghtZXRhZGF0YRgDIAEoCzIzLmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZU1ldGFkYXRhQga6SAPIAQESTAoEc3BlYxgEIAEoCzI+LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd0V4ZWN1dGlvblNwZWMSUAoGc3RhdHVzGAUgASgLMkAuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXhlY3V0aW9uU3RhdHVzIqQFChdXb3JrZmxvd0V4ZWN1dGlvblN0YXR1cxI/CgVhdWRpdBhjIAEoCzIwLmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZUF1ZGl0ElAKBXBoYXNlGAEgASgOMjcuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLkV4ZWN1dGlvblBoYXNlQgi6SAWCAQIQARJECgV0YXNrcxgCIAMoCzI1LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd1Rhc2sSJwoGb3V0cHV0GAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBINCgVlcnJvchgEIAEoCRISCgpzdGFydGVkX2F0GAUgASgJEhQKDGNvbXBsZXRlZF9hdBgGIAEoCRIcChR0ZW1wb3JhbF93b3JrZmxvd19pZBgHIAEoCRJbChFwZW5kaW5nX2FwcHJvdmFscxgJIAMoCzJALmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd1BlbmRpbmdBcHByb3ZhbBIZChF0b3RhbF9jb3N0X21pY3JvcxgKIAEoAxIaChJ0b3RhbF9pbnB1dF90b2tlbnMYCyABKAMSGwoTdG90YWxfb3V0cHV0X3Rva2VucxgMIAEoAxIdChV3b3JrZmxvd192ZXJzaW9uX2hhc2gYDSABKAkSYAoUcGVuZGluZ19maWxlX3Jldmlld3MYDiADKAsyQi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuV29ya2Zsb3dQZW5kaW5nRmlsZVJldmlldyKEAQoXV29ya2Zsb3dQZW5kaW5nQXBwcm92YWwSRwoIYXBwcm92YWwYASABKAsyNS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuUGVuZGluZ0FwcHJvdmFsEiAKGGNoaWxkX2FnZW50X2V4ZWN1dGlvbl9pZBgCIAEoCSJUChlXb3JrZmxvd1BlbmRpbmdGaWxlUmV2aWV3EiAKGGNoaWxkX2FnZW50X2V4ZWN1dGlvbl9pZBgBIAEoCRIVCg1jaGFuZ2Vfc2V0X2lkGAIgAygJIv8DCgxXb3JrZmxvd1Rhc2sSDwoHdGFza19pZBgBIAEoCRIRCgl0YXNrX25hbWUYAiABKAkSVgoJdGFza190eXBlGAMgASgOMjkuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93VGFza1R5cGVCCLpIBYIBAhABEiYKBWlucHV0GAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBInCgZvdXRwdXQYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0ElUKBnN0YXR1cxgGIAEoDjI7LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd1Rhc2tTdGF0dXNCCLpIBYIBAhABEhIKCnN0YXJ0ZWRfYXQYByABKAkSFAoMY29tcGxldGVkX2F0GAggASgJEg0KBWVycm9yGAkgASgJEikKCG1ldGFkYXRhGAogASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIUCgxhcnRpZmFjdF9pZHMYCyADKAkSEwoLY29zdF9taWNyb3MYDCABKAMSFAoMaW5wdXRfdG9rZW5zGA0gASgDEhUKDW91dHB1dF90b2tlbnMYDiABKAMSDwoHdWlfaGludBgPIAEoCWIGcHJvdG8z",[file_ai_stigmer_agentic_agentexecution_v1_approval,file_ai_stigmer_agentic_workflowexecution_v1_enum,file_ai_stigmer_agentic_workflowexecution_v1_spec,file_ai_stigmer_commons_apiresource_metadata,file_ai_stigmer_commons_apiresource_status,file_buf_validate_validate,file_google_protobuf_struct]),WorkflowExecutionSchema=messageDesc2(file_ai_stigmer_agentic_workflowexecution_v1_api,0);var file_ai_stigmer_agentic_workflowexecution_v1_event=fileDesc("CjNhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3dleGVjdXRpb24vdjEvZXZlbnQucHJvdG8SJ2FpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MSKGEQoWV29ya2Zsb3dFeGVjdXRpb25FdmVudBIZCghldmVudF9pZBgBIAEoCUIHukgEcgIQARJYCgpldmVudF90eXBlGAIgASgOMjouYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXZlbnRUeXBlQgi6SAWCAQIQARIXCg9zZXF1ZW5jZV9udW1iZXIYAyABKAQSHAoLb2NjdXJyZWRfYXQYBCABKAlCB7pIBHICEAESEQoJdGFza19uYW1lGAUgASgJEl0KEWV4ZWN1dGlvbl9zdGFydGVkGAogASgLMkAuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLkV4ZWN1dGlvblN0YXJ0ZWRQYXlsb2FkSAASYQoTZXhlY3V0aW9uX2NvbXBsZXRlZBgLIAEoCzJCLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5FeGVjdXRpb25Db21wbGV0ZWRQYXlsb2FkSAASWwoQZXhlY3V0aW9uX2ZhaWxlZBgMIAEoCzI/LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5FeGVjdXRpb25GYWlsZWRQYXlsb2FkSAASWwoQZXhlY3V0aW9uX3BhdXNlZBgNIAEoCzI/LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5FeGVjdXRpb25QYXVzZWRQYXlsb2FkSAASXQoRZXhlY3V0aW9uX3Jlc3VtZWQYDiABKAsyQC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuRXhlY3V0aW9uUmVzdW1lZFBheWxvYWRIABJhChNleGVjdXRpb25fY2FuY2VsbGVkGA8gASgLMkIuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLkV4ZWN1dGlvbkNhbmNlbGxlZFBheWxvYWRIABJjChRleGVjdXRpb25fdGVybWluYXRlZBgQIAEoCzJDLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5FeGVjdXRpb25UZXJtaW5hdGVkUGF5bG9hZEgAElMKDHRhc2tfc3RhcnRlZBgUIAEoCzI7LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5UYXNrU3RhcnRlZFBheWxvYWRIABJXCg50YXNrX2NvbXBsZXRlZBgVIAEoCzI9LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5UYXNrQ29tcGxldGVkUGF5bG9hZEgAElEKC3Rhc2tfZmFpbGVkGBYgASgLMjouYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLlRhc2tGYWlsZWRQYXlsb2FkSAASUwoMdGFza19za2lwcGVkGBcgASgLMjsuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLlRhc2tTa2lwcGVkUGF5bG9hZEgAElUKDXRhc2tfcmV0cnlpbmcYGCABKAsyPC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuVGFza1JldHJ5aW5nUGF5bG9hZEgAEl4KEmFnZW50X2NhbGxfc3RhcnRlZBgeIAEoCzJALmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5BZ2VudENhbGxTdGFydGVkUGF5bG9hZEgAEmAKE2FnZW50X2NhbGxfcHJvZ3Jlc3MYHyABKAsyQS5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuQWdlbnRDYWxsUHJvZ3Jlc3NQYXlsb2FkSAASYgoUYWdlbnRfY2FsbF9jb21wbGV0ZWQYICABKAsyQi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuQWdlbnRDYWxsQ29tcGxldGVkUGF5bG9hZEgAEl8KEmFwcHJvdmFsX3JlcXVlc3RlZBgoIAEoCzJBLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5BcHByb3ZhbFJlcXVlc3RlZFBheWxvYWRIABJdChFhcHByb3ZhbF9yZXNvbHZlZBgpIAEoCzJALmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5BcHByb3ZhbFJlc29sdmVkUGF5bG9hZEgAEl0KEWJ1ZGdldF9jaGVja3BvaW50GDIgASgLMkAuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLkJ1ZGdldENoZWNrcG9pbnRQYXlsb2FkSAASWQoPc2lnbmFsX3JlY2VpdmVkGDwgASgLMj4uYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLlNpZ25hbFJlY2VpdmVkUGF5bG9hZEgAElUKDWV2ZW50X2VtaXR0ZWQYPSABKAsyPC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuRXZlbnRFbWl0dGVkUGF5bG9hZEgAElsKEGFydGlmYWN0X2NyZWF0ZWQYRiABKAsyPy5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuQXJ0aWZhY3RDcmVhdGVkUGF5bG9hZEgAQgkKB3BheWxvYWQiYQoXRXhlY3V0aW9uU3RhcnRlZFBheWxvYWQSEwoLdG90YWxfdGFza3MYASABKAUSEwoLd29ya2Zsb3dfaWQYAiABKAkSHAoUd29ya2Zsb3dfaW5zdGFuY2VfaWQYAyABKAkikgEKGUV4ZWN1dGlvbkNvbXBsZXRlZFBheWxvYWQSLwoOb3V0cHV0X3N1bW1hcnkYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhMKC2R1cmF0aW9uX21zGAIgASgDEhkKEXRvdGFsX2Nvc3RfbWljcm9zGAMgASgDEhQKDHRvdGFsX3Rva2VucxgEIAEoAyJWChZFeGVjdXRpb25GYWlsZWRQYXlsb2FkEg0KBWVycm9yGAEgASgJEhgKEGZhaWxlZF90YXNrX25hbWUYAiABKAkSEwoLZHVyYXRpb25fbXMYAyABKAMiOwoWRXhlY3V0aW9uUGF1c2VkUGF5bG9hZBIOCgZyZWFzb24YASABKAkSEQoJcGF1c2VkX2J5GAIgASgJIi0KF0V4ZWN1dGlvblJlc3VtZWRQYXlsb2FkEhIKCnJlc3VtZWRfYnkYASABKAkiQQoZRXhlY3V0aW9uQ2FuY2VsbGVkUGF5bG9hZBIOCgZyZWFzb24YASABKAkSFAoMY2FuY2VsbGVkX2J5GAIgASgJIkMKGkV4ZWN1dGlvblRlcm1pbmF0ZWRQYXlsb2FkEg4KBnJlYXNvbhgBIAEoCRIVCg10ZXJtaW5hdGVkX2J5GAIgASgJIqEBChJUYXNrU3RhcnRlZFBheWxvYWQSQwoJdGFza19raW5kGAEgASgOMjAuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLldvcmtmbG93VGFza0tpbmQSLgoNaW5wdXRfc3VtbWFyeRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSFgoOYXR0ZW1wdF9udW1iZXIYAyABKAUiywEKFFRhc2tDb21wbGV0ZWRQYXlsb2FkEkMKCXRhc2tfa2luZBgBIAEoDjIwLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5Xb3JrZmxvd1Rhc2tLaW5kEhMKC2R1cmF0aW9uX21zGAIgASgDEi8KDm91dHB1dF9zdW1tYXJ5GAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBITCgtjb3N0X21pY3JvcxgEIAEoAxITCgt0b2tlbnNfdXNlZBgFIAEoAyK+AQoRVGFza0ZhaWxlZFBheWxvYWQSQwoJdGFza19raW5kGAEgASgOMjAuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLldvcmtmbG93VGFza0tpbmQSDQoFZXJyb3IYAiABKAkSFgoOYXR0ZW1wdF9udW1iZXIYAyABKAUSFAoMbWF4X2F0dGVtcHRzGAQgASgFEhIKCndpbGxfcmV0cnkYBSABKAgSEwoLZHVyYXRpb25fbXMYBiABKAMiaQoSVGFza1NraXBwZWRQYXlsb2FkEkMKCXRhc2tfa2luZBgBIAEoDjIwLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5Xb3JrZmxvd1Rhc2tLaW5kEg4KBnJlYXNvbhgCIAEoCSJVChNUYXNrUmV0cnlpbmdQYXlsb2FkEhYKDmZhaWxlZF9hdHRlbXB0GAEgASgFEhQKDG5leHRfYXR0ZW1wdBgCIAEoBRIQCghkZWxheV9tcxgDIAEoAyJiChdBZ2VudENhbGxTdGFydGVkUGF5bG9hZBIaChJjaGlsZF9leGVjdXRpb25faWQYASABKAkSEgoKYWdlbnRfc2x1ZxgCIAEoCRIXCg9tZXNzYWdlX3N1bW1hcnkYAyABKAki5wEKGEFnZW50Q2FsbFByb2dyZXNzUGF5bG9hZBIaChJjaGlsZF9leGVjdXRpb25faWQYASABKAkSSQoLYWdlbnRfcGhhc2UYAiABKA4yNC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRXhlY3V0aW9uUGhhc2USGQoRY3VycmVudF90b29sX25hbWUYAyABKAkSFwoPdG9rZW5zX2NvbnN1bWVkGAQgASgDEhYKDm1lc3NhZ2VzX2NvdW50GAUgASgFEhgKEHRvb2xfY2FsbHNfY291bnQYBiABKAUi1AEKGUFnZW50Q2FsbENvbXBsZXRlZFBheWxvYWQSGgoSY2hpbGRfZXhlY3V0aW9uX2lkGAEgASgJEkkKC2FnZW50X3BoYXNlGAIgASgOMjQuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkV4ZWN1dGlvblBoYXNlEhMKC2R1cmF0aW9uX21zGAMgASgDEhcKD3Rva2Vuc19jb25zdW1lZBgEIAEoAxITCgtjb3N0X21pY3JvcxgFIAEoAxINCgVlcnJvchgGIAEoCSI0ChVIdW1hbklucHV0T3V0Y29tZUluZm8SDAoEbmFtZRgBIAEoCRINCgVsYWJlbBgCIAEoCSLfAgoYQXBwcm92YWxSZXF1ZXN0ZWRQYXlsb2FkEg4KBnByb21wdBgBIAEoCRIRCglhcHByb3ZlcnMYAiADKAkSFwoPdGltZW91dF9zZWNvbmRzGAMgASgFEhQKDHRvb2xfY2FsbF9pZBgEIAEoCRIaChJjaGlsZF9leGVjdXRpb25faWQYBSABKAkSUAoIb3V0Y29tZXMYBiADKAsyPi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuSHVtYW5JbnB1dE91dGNvbWVJbmZvEiwKC2Zvcm1fc2NoZW1hGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBInCgdwYXlsb2FkGAggASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEg8KB3VpX2hpbnQYCSABKAkSGwoTcGF5bG9hZF9hcnRpZmFjdF9pZBgKIAEoCSLxAQoXQXBwcm92YWxSZXNvbHZlZFBheWxvYWQSRAoGYWN0aW9uGAEgASgOMjQuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFwcHJvdmFsQWN0aW9uEhMKC3Jlc29sdmVkX2J5GAIgASgJEg8KB2NvbW1lbnQYAyABKAkSGAoQd2FpdF9kdXJhdGlvbl9tcxgEIAEoAxJQChFyZXNvbHZlZF9ieV9hY3RvchgFIAEoCzI1LmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZUF1ZGl0QWN0b3Ii9wEKF0J1ZGdldENoZWNrcG9pbnRQYXlsb2FkEhwKFGNvc3RfY29uc3VtZWRfbWljcm9zGAEgASgDEh0KFWNvc3RfcmVtYWluaW5nX21pY3JvcxgCIAEoAxIXCg90b2tlbnNfY29uc3VtZWQYAyABKAMSGAoQdG9rZW5zX3JlbWFpbmluZxgEIAEoAxIaChJ0aHJlc2hvbGRfYnJlYWNoZWQYBSABKAgSUAoSb25fZXhjZWVkZWRfcG9saWN5GAYgASgOMjQuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLkJ1ZGdldEV4Y2VlZGVkUG9saWN5Il4KFVNpZ25hbFJlY2VpdmVkUGF5bG9hZBITCgtzaWduYWxfbmFtZRgBIAEoCRIwCg9wYXlsb2FkX3N1bW1hcnkYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IlYKE0V2ZW50RW1pdHRlZFBheWxvYWQSEgoKZXZlbnRfdHlwZRgBIAEoCRIUCgxldmVudF9zb3VyY2UYAiABKAkSFQoNZXZlbnRfc3ViamVjdBgDIAEoCSJtChZBcnRpZmFjdENyZWF0ZWRQYXlsb2FkEhMKC2FydGlmYWN0X2lkGAEgASgJEhQKDGRpc3BsYXlfbmFtZRgCIAEoCRIUCgxjb250ZW50X3R5cGUYAyABKAkSEgoKc2l6ZV9ieXRlcxgEIAEoAyqJBAoRV29ya2Zsb3dFdmVudFR5cGUSIwofd29ya2Zsb3dfZXZlbnRfdHlwZV91bnNwZWNpZmllZBAAEhUKEWV4ZWN1dGlvbl9zdGFydGVkEAESFwoTZXhlY3V0aW9uX2NvbXBsZXRlZBACEhQKEGV4ZWN1dGlvbl9mYWlsZWQQAxIUChBleGVjdXRpb25fcGF1c2VkEAQSFQoRZXhlY3V0aW9uX3Jlc3VtZWQQBRIXChNleGVjdXRpb25fY2FuY2VsbGVkEAYSGAoUZXhlY3V0aW9uX3Rlcm1pbmF0ZWQQBxIQCgx0YXNrX3N0YXJ0ZWQQCxISCg50YXNrX2NvbXBsZXRlZBAMEg8KC3Rhc2tfZmFpbGVkEA0SEAoMdGFza19za2lwcGVkEA4SEQoNdGFza19yZXRyeWluZxAPEhYKEmFnZW50X2NhbGxfc3RhcnRlZBAVEhcKE2FnZW50X2NhbGxfcHJvZ3Jlc3MQFhIYChRhZ2VudF9jYWxsX2NvbXBsZXRlZBAXEhYKEmFwcHJvdmFsX3JlcXVlc3RlZBAfEhUKEWFwcHJvdmFsX3Jlc29sdmVkECASFQoRYnVkZ2V0X2NoZWNrcG9pbnQQKRITCg9zaWduYWxfcmVjZWl2ZWQQMxIRCg1ldmVudF9lbWl0dGVkEDQSFAoQYXJ0aWZhY3RfY3JlYXRlZBA1YgZwcm90bzM",[file_ai_stigmer_agentic_agentexecution_v1_enum,file_ai_stigmer_agentic_workflow_v1_enum,file_ai_stigmer_commons_apiresource_status,file_buf_validate_validate,file_google_protobuf_struct]);var WorkflowEventType;(function(WorkflowEventType2){WorkflowEventType2[WorkflowEventType2.workflow_event_type_unspecified=0]="workflow_event_type_unspecified",WorkflowEventType2[WorkflowEventType2.execution_started=1]="execution_started",WorkflowEventType2[WorkflowEventType2.execution_completed=2]="execution_completed",WorkflowEventType2[WorkflowEventType2.execution_failed=3]="execution_failed",WorkflowEventType2[WorkflowEventType2.execution_paused=4]="execution_paused",WorkflowEventType2[WorkflowEventType2.execution_resumed=5]="execution_resumed",WorkflowEventType2[WorkflowEventType2.execution_cancelled=6]="execution_cancelled",WorkflowEventType2[WorkflowEventType2.execution_terminated=7]="execution_terminated",WorkflowEventType2[WorkflowEventType2.task_started=11]="task_started",WorkflowEventType2[WorkflowEventType2.task_completed=12]="task_completed",WorkflowEventType2[WorkflowEventType2.task_failed=13]="task_failed",WorkflowEventType2[WorkflowEventType2.task_skipped=14]="task_skipped",WorkflowEventType2[WorkflowEventType2.task_retrying=15]="task_retrying",WorkflowEventType2[WorkflowEventType2.agent_call_started=21]="agent_call_started",WorkflowEventType2[WorkflowEventType2.agent_call_progress=22]="agent_call_progress",WorkflowEventType2[WorkflowEventType2.agent_call_completed=23]="agent_call_completed",WorkflowEventType2[WorkflowEventType2.approval_requested=31]="approval_requested",WorkflowEventType2[WorkflowEventType2.approval_resolved=32]="approval_resolved",WorkflowEventType2[WorkflowEventType2.budget_checkpoint=41]="budget_checkpoint",WorkflowEventType2[WorkflowEventType2.signal_received=51]="signal_received",WorkflowEventType2[WorkflowEventType2.event_emitted=52]="event_emitted",WorkflowEventType2[WorkflowEventType2.artifact_created=53]="artifact_created"})(WorkflowEventType||(WorkflowEventType={}));var file_ai_stigmer_agentic_workflowexecution_v1_io=fileDesc("CjBhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3dleGVjdXRpb24vdjEvaW8ucHJvdG8SJ2FpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MSIsChNXb3JrZmxvd0V4ZWN1dGlvbklkEhUKBXZhbHVlGAEgASgJQga6SAPIAQEiIwoKV29ya2Zsb3dJZBIVCgV2YWx1ZRgBIAEoCUIGukgDyAEBInkKFVdvcmtmbG93RXhlY3V0aW9uTGlzdBITCgt0b3RhbF9wYWdlcxgBIAEoBRJLCgdlbnRyaWVzGAIgAygLMjouYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXhlY3V0aW9uIuQCCh1MaXN0V29ya2Zsb3dFeGVjdXRpb25zUmVxdWVzdBIRCglwYWdlX3NpemUYASABKAUSEgoKcGFnZV90b2tlbhgCIAEoCRJGCgVwaGFzZRgDIAEoDjI3LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5FeGVjdXRpb25QaGFzZRIMCgR0YWdzGAQgAygJElAKBmZpbHRlchgFIAEoCzJALmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5FeGVjdXRpb25GaWx0ZXJDcml0ZXJpYRJPCgpzb3J0X2ZpZWxkGAYgASgOMjsuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLkV4ZWN1dGlvblNvcnRGaWVsZBIWCg5zb3J0X2FzY2VuZGluZxgHIAEoCBILCgNvcmcYCCABKAkiqAIKJ0xpc3RXb3JrZmxvd0V4ZWN1dGlvbnNCeVdvcmtmbG93UmVxdWVzdBIbCgt3b3JrZmxvd19pZBgBIAEoCUIGukgDyAEBEhEKCXBhZ2Vfc2l6ZRgCIAEoBRISCgpwYWdlX3Rva2VuGAMgASgJElAKBmZpbHRlchgEIAEoCzJALmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5FeGVjdXRpb25GaWx0ZXJDcml0ZXJpYRJPCgpzb3J0X2ZpZWxkGAUgASgOMjsuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLkV4ZWN1dGlvblNvcnRGaWVsZBIWCg5zb3J0X2FzY2VuZGluZxgGIAEoCCLmAgoiV29ya2Zsb3dFeGVjdXRpb25VcGRhdGVTdGF0dXNJbnB1dBIdCgxleGVjdXRpb25faWQYASABKAlCB7pIBHICEAESWAoGc3RhdHVzGAIgASgLMkAuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXhlY3V0aW9uU3RhdHVzQga6SAPIAQESTwoGZXZlbnRzGAogAygLMj8uYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXhlY3V0aW9uRXZlbnQSIAoYdXBkYXRlX3BlbmRpbmdfYXBwcm92YWxzGAsgASgIEiMKG3VwZGF0ZV9wZW5kaW5nX2ZpbGVfcmV2aWV3cxgMIAEoCBIvCidwZW5kaW5nX3VwZGF0ZV9jaGlsZF9hZ2VudF9leGVjdXRpb25faWQYDSABKAkivgEKG1N1Ym1pdFdvcmtmbG93QXBwcm92YWxJbnB1dBIdCgxleGVjdXRpb25faWQYASABKAlCB7pIBHICEAESHQoMdG9vbF9jYWxsX2lkGAIgASgJQge6SARyAhABElAKBmFjdGlvbhgDIAEoDjI0LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BcHByb3ZhbEFjdGlvbkIKukgHggEEEAEgABIPCgdjb21tZW50GAQgASgJIqEDCh9TdWJtaXRXb3JrZmxvd0ZpbGVEZWNpc2lvbklucHV0Eh0KDGV4ZWN1dGlvbl9pZBgBIAEoCUIHukgEcgIQARIpChhjaGlsZF9hZ2VudF9leGVjdXRpb25faWQYAiABKAlCB7pIBHICEAESHgoNY2hhbmdlX3NldF9pZBgDIAEoCUIHukgEcgIQARJSCgVzY29wZRgEIAEoDjI3LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5GaWxlRGVjaXNpb25TY29wZUIKukgHggEEEAEgABIWCg5maWxlX2NoYW5nZV9pZBgFIAEoCRJUCgZhY3Rpb24YBiABKA4yOC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRmlsZURlY2lzaW9uQWN0aW9uQgq6SAeCAQQQASAAEiAKD2V4cGVjdGVkX2RpZ2VzdBgHIAEoCUIHukgEcgIQARIOCgZyZWFzb24YCCABKAkSIAoYYWNrbm93bGVkZ2VfdW5yZXZpZXdhYmxlGAkgASgIIsUBCh9TdWJtaXRXb3JrZmxvd1Rhc2tBcHByb3ZhbElucHV0Eh0KDGV4ZWN1dGlvbl9pZBgBIAEoCUIHukgEcgIQARIaCgl0YXNrX25hbWUYAiABKAlCB7pIBHICEAESGAoHb3V0Y29tZRgDIAEoCUIHukgEcgIQARIqCglmb3JtX2RhdGEYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhAKCHJldmlld2VyGAUgASgJEg8KB2NvbW1lbnQYBiABKAkiQQohU3Vic2NyaWJlV29ya2Zsb3dFeGVjdXRpb25SZXF1ZXN0EhwKDGV4ZWN1dGlvbl9pZBgBIAEoCUIGukgDyAEBIkMKHENhbmNlbFdvcmtmbG93RXhlY3V0aW9uSW5wdXQSEwoCaWQYASABKAlCB7pIBHICEAESDgoGcmVhc29uGAIgASgJIkYKH1Rlcm1pbmF0ZVdvcmtmbG93RXhlY3V0aW9uSW5wdXQSEwoCaWQYASABKAlCB7pIBHICEAESDgoGcmVhc29uGAIgASgJIkQKHVJlY292ZXJXb3JrZmxvd0V4ZWN1dGlvbklucHV0EhMKAmlkGAEgASgJQge6SARyAhABEg4KBnJlYXNvbhgCIAEoCSJCChtQYXVzZVdvcmtmbG93RXhlY3V0aW9uSW5wdXQSEwoCaWQYASABKAlCB7pIBHICEAESDgoGcmVhc29uGAIgASgJIjMKHFJlc3VtZVdvcmtmbG93RXhlY3V0aW9uSW5wdXQSEwoCaWQYASABKAlCB7pIBHICEAEikQEKD1NlbmRTaWduYWxJbnB1dBIdCgxleGVjdXRpb25faWQYASABKAlCB7pIBHICEAESHAoLc2lnbmFsX25hbWUYAiABKAlCB7pIBHICEAESKAoHcGF5bG9hZBgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSFwoPaWRlbXBvdGVuY3lfa2V5GAQgASgJIsIBChJHZXRFdmVudExvZ1JlcXVlc3QSHQoMZXhlY3V0aW9uX2lkGAEgASgJQge6SARyAhABEhYKDmFmdGVyX3NlcXVlbmNlGAIgASgEEk8KC2V2ZW50X3R5cGVzGAMgAygOMjouYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXZlbnRUeXBlEhEKCXRhc2tfbmFtZRgEIAEoCRIRCglwYWdlX3NpemUYBSABKAUikQEKE0dldEV2ZW50TG9nUmVzcG9uc2USTwoGZXZlbnRzGAEgAygLMj8uYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXhlY3V0aW9uRXZlbnQSEAoIaGFzX21vcmUYAiABKAgSFwoPbGF0ZXN0X3NlcXVlbmNlGAMgASgEIqABChZTdWJzY3JpYmVFdmVudHNSZXF1ZXN0Eh0KDGV4ZWN1dGlvbl9pZBgBIAEoCUIHukgEcgIQARIWCg5hZnRlcl9zZXF1ZW5jZRgCIAEoBBJPCgtldmVudF90eXBlcxgDIAMoDjI6LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd0V2ZW50VHlwZSKMAwoXRXhlY3V0aW9uRmlsdGVyQ3JpdGVyaWESRwoGcGhhc2VzGAEgAygOMjcuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLkV4ZWN1dGlvblBoYXNlEjEKDXN0YXJ0ZWRfYWZ0ZXIYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjIKDnN0YXJ0ZWRfYmVmb3JlGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgxtaW5fZHVyYXRpb24YBCABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SLwoMbWF4X2R1cmF0aW9uGAUgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEhcKD21pbl9jb3N0X21pY3JvcxgGIAEoAxIXCg9tYXhfY29zdF9taWNyb3MYByABKAMSGAoQZmFpbGVkX3Rhc2tfbmFtZRgIIAEoCRITCgtoYXNfcmV0cmllcxgJIAEoCCKYAQoaR2V0RXhlY3V0aW9uU3VtbWFyeVJlcXVlc3QSFAoDb3JnGAEgASgJQge6SARyAhABEk8KC3RpbWVfd2luZG93GAIgASgOMjouYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLlN1bW1hcnlUaW1lV2luZG93EhMKC3dvcmtmbG93X2lkGAMgASgJIqMEChBFeGVjdXRpb25TdW1tYXJ5EhQKDGFjdGl2ZV9jb3VudBgBIAEoBRJgCgxwaGFzZV9jb3VudHMYAiADKAsySi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuRXhlY3V0aW9uU3VtbWFyeS5QaGFzZUNvdW50c0VudHJ5ElAKCnRvdGFsX2Nvc3QYAyABKAsyPC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuV29ya2Zsb3dDb3N0U3VtbWFyeRIvCgxhdmdfZHVyYXRpb24YBCABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SWwoVdG9wX2ZhaWxpbmdfd29ya2Zsb3dzGAUgAygLMjwuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RmFpbHVyZVJhbmsSWAoQY29zdF9ieV93b3JrZmxvdxgGIAMoCzI+LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd0Nvc3RCcmVha2Rvd24SEwoLdG90YWxfY291bnQYByABKAUSFAoMc3VjY2Vzc19yYXRlGAggASgBGjIKEFBoYXNlQ291bnRzRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgFOgI4ASJmChNXb3JrZmxvd0Nvc3RTdW1tYXJ5EhYKDnRvdGFsX2Nvc3RfdXNkGAEgASgBEhoKEnRvdGFsX2lucHV0X3Rva2VucxgCIAEoAxIbChN0b3RhbF9vdXRwdXRfdG9rZW5zGAMgASgDIloKE1dvcmtmbG93RmFpbHVyZVJhbmsSFQoNd29ya2Zsb3dfc2x1ZxgBIAEoCRIVCg13b3JrZmxvd19uYW1lGAIgASgJEhUKDWZhaWx1cmVfY291bnQYAyABKAUidgoVV29ya2Zsb3dDb3N0QnJlYWtkb3duEhUKDXdvcmtmbG93X3NsdWcYASABKAkSFQoNd29ya2Zsb3dfbmFtZRgCIAEoCRIWCg50b3RhbF9jb3N0X3VzZBgDIAEoARIXCg9leGVjdXRpb25fY291bnQYBCABKAUiWgobTGlzdFBlbmRpbmdBcHByb3ZhbHNSZXF1ZXN0EhQKA29yZxgBIAEoCUIHukgEcgIQARIRCglwYWdlX3NpemUYAiABKAUSEgoKcGFnZV90b2tlbhgDIAEoCSKFAgoPUGVuZGluZ0FwcHJvdmFsEhQKDGV4ZWN1dGlvbl9pZBgBIAEoCRIVCg13b3JrZmxvd19uYW1lGAIgASgJEhEKCXRhc2tfbmFtZRgDIAEoCRIRCglyZXF1ZXN0ZXIYBCABKAkSMAoMcmVxdWVzdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp0aW1lb3V0X2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCgtmb3JtX3NjaGVtYRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSDwoHdWlfaGludBgIIAEoCSKPAQoUUGVuZGluZ0FwcHJvdmFsc0xpc3QSSQoHZW50cmllcxgBIAMoCzI4LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5QZW5kaW5nQXBwcm92YWwSEwoLdG90YWxfY291bnQYAiABKAUSFwoPbmV4dF9wYWdlX3Rva2VuGAMgASgJKsIBChJFeGVjdXRpb25Tb3J0RmllbGQSJAogRVhFQ1VUSU9OX1NPUlRfRklFTERfVU5TUEVDSUZJRUQQABIjCh9FWEVDVVRJT05fU09SVF9GSUVMRF9TVEFSVEVEX0FUEAESIQodRVhFQ1VUSU9OX1NPUlRfRklFTERfRFVSQVRJT04QAhIdChlFWEVDVVRJT05fU09SVF9GSUVMRF9DT1NUEAMSHwobRVhFQ1VUSU9OX1NPUlRfRklFTERfU1RBVFVTEAQqvwEKEVN1bW1hcnlUaW1lV2luZG93EiMKH1NVTU1BUllfVElNRV9XSU5ET1dfVU5TUEVDSUZJRUQQABIgChxTVU1NQVJZX1RJTUVfV0lORE9XX0xBU1RfMjRIEAESHwobU1VNTUFSWV9USU1FX1dJTkRPV19MQVNUXzdEEAISIAocU1VNTUFSWV9USU1FX1dJTkRPV19MQVNUXzMwRBADEiAKHFNVTU1BUllfVElNRV9XSU5ET1dfQUxMX1RJTUUQBGIGcHJvdG8z",[file_ai_stigmer_agentic_agentexecution_v1_enum,file_ai_stigmer_agentic_workflowexecution_v1_api,file_ai_stigmer_agentic_workflowexecution_v1_enum,file_ai_stigmer_agentic_workflowexecution_v1_event,file_buf_validate_validate,file_google_protobuf_duration,file_google_protobuf_struct,file_google_protobuf_timestamp]);var GetEventLogResponseSchema=messageDesc2(file_ai_stigmer_agentic_workflowexecution_v1_io,17);var PendingApprovalsListSchema=messageDesc2(file_ai_stigmer_agentic_workflowexecution_v1_io,27),ExecutionSortField;(function(ExecutionSortField2){ExecutionSortField2[ExecutionSortField2.UNSPECIFIED=0]="UNSPECIFIED",ExecutionSortField2[ExecutionSortField2.STARTED_AT=1]="STARTED_AT",ExecutionSortField2[ExecutionSortField2.DURATION=2]="DURATION",ExecutionSortField2[ExecutionSortField2.COST=3]="COST",ExecutionSortField2[ExecutionSortField2.STATUS=4]="STATUS"})(ExecutionSortField||(ExecutionSortField={}));var SummaryTimeWindow;(function(SummaryTimeWindow2){SummaryTimeWindow2[SummaryTimeWindow2.UNSPECIFIED=0]="UNSPECIFIED",SummaryTimeWindow2[SummaryTimeWindow2.LAST_24H=1]="LAST_24H",SummaryTimeWindow2[SummaryTimeWindow2.LAST_7D=2]="LAST_7D",SummaryTimeWindow2[SummaryTimeWindow2.LAST_30D=3]="LAST_30D",SummaryTimeWindow2[SummaryTimeWindow2.ALL_TIME=4]="ALL_TIME"})(SummaryTimeWindow||(SummaryTimeWindow={}));var file_ai_stigmer_agentic_workflowexecution_v1_command=fileDesc("CjVhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3dleGVjdXRpb24vdjEvY29tbWFuZC5wcm90bxInYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxMo0VCiJXb3JrZmxvd0V4ZWN1dGlvbkNvbW1hbmRDb250cm9sbGVyEoYBCgZjcmVhdGUSOi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuV29ya2Zsb3dFeGVjdXRpb24aOi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuV29ya2Zsb3dFeGVjdXRpb24iBNC4GAESwgEKBnVwZGF0ZRI6LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd0V4ZWN1dGlvbho6LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd0V4ZWN1dGlvbiJAwrgYPAgCEDQiC21ldGFkYXRhLmlkKil1bmF1dGhvcml6ZWQgdG8gdXBkYXRlIHdvcmtmbG93IGV4ZWN1dGlvbhLhAQoMdXBkYXRlU3RhdHVzEksuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXhlY3V0aW9uVXBkYXRlU3RhdHVzSW5wdXQaOi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuV29ya2Zsb3dFeGVjdXRpb24iSMK4GEQIAhA0IgxleGVjdXRpb25faWQqMHVuYXV0aG9yaXplZCB0byB1cGRhdGUgd29ya2Zsb3cgZXhlY3V0aW9uIHN0YXR1cxLiAQoOc3VibWl0QXBwcm92YWwSRC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuU3VibWl0V29ya2Zsb3dBcHByb3ZhbElucHV0GjouYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXhlY3V0aW9uIk7CuBhKCAIQNCIMZXhlY3V0aW9uX2lkKjZ1bmF1dGhvcml6ZWQgdG8gc3VibWl0IGFwcHJvdmFsIGZvciB3b3JrZmxvdyBleGVjdXRpb24S7wEKEnN1Ym1pdEZpbGVEZWNpc2lvbhJILmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5TdWJtaXRXb3JrZmxvd0ZpbGVEZWNpc2lvbklucHV0GjouYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXhlY3V0aW9uIlPCuBhPCAIQNCIMZXhlY3V0aW9uX2lkKjt1bmF1dGhvcml6ZWQgdG8gc3VibWl0IGZpbGUgZGVjaXNpb24gZm9yIHdvcmtmbG93IGV4ZWN1dGlvbhLpAQoac3VibWl0V29ya2Zsb3dUYXNrQXBwcm92YWwSSC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuU3VibWl0V29ya2Zsb3dUYXNrQXBwcm92YWxJbnB1dBo6LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd0V4ZWN1dGlvbiJFwrgYQQgCEDQiDGV4ZWN1dGlvbl9pZCotdW5hdXRob3JpemVkIHRvIHN1Ym1pdCB3b3JrZmxvdyB0YXNrIGFwcHJvdmFsEq8BCgZkZWxldGUSLS5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuQXBpUmVzb3VyY2VJZBo6LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd0V4ZWN1dGlvbiI6wrgYNggCEDQiBXZhbHVlKil1bmF1dGhvcml6ZWQgdG8gZGVsZXRlIHdvcmtmbG93IGV4ZWN1dGlvbhLNAQoKc2VuZFNpZ25hbBI4LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5TZW5kU2lnbmFsSW5wdXQaOi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuV29ya2Zsb3dFeGVjdXRpb24iScK4GEUIAhA0IgxleGVjdXRpb25faWQqMXVuYXV0aG9yaXplZCB0byBzZW5kIHNpZ25hbCB0byB3b3JrZmxvdyBleGVjdXRpb24SxAEKBmNhbmNlbBJFLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5DYW5jZWxXb3JrZmxvd0V4ZWN1dGlvbklucHV0GjouYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXhlY3V0aW9uIjfCuBgzCAIQNCICaWQqKXVuYXV0aG9yaXplZCB0byBjYW5jZWwgd29ya2Zsb3cgZXhlY3V0aW9uEs0BCgl0ZXJtaW5hdGUSSC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuVGVybWluYXRlV29ya2Zsb3dFeGVjdXRpb25JbnB1dBo6LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd0V4ZWN1dGlvbiI6wrgYNggCEDQiAmlkKix1bmF1dGhvcml6ZWQgdG8gdGVybWluYXRlIHdvcmtmbG93IGV4ZWN1dGlvbhLHAQoHcmVjb3ZlchJGLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5SZWNvdmVyV29ya2Zsb3dFeGVjdXRpb25JbnB1dBo6LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd0V4ZWN1dGlvbiI4wrgYNAgCEDQiAmlkKip1bmF1dGhvcml6ZWQgdG8gcmVjb3ZlciB3b3JrZmxvdyBleGVjdXRpb24SwQEKBXBhdXNlEkQuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLlBhdXNlV29ya2Zsb3dFeGVjdXRpb25JbnB1dBo6LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd0V4ZWN1dGlvbiI2wrgYMggCEDQiAmlkKih1bmF1dGhvcml6ZWQgdG8gcGF1c2Ugd29ya2Zsb3cgZXhlY3V0aW9uEsQBCgZyZXN1bWUSRS5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuUmVzdW1lV29ya2Zsb3dFeGVjdXRpb25JbnB1dBo6LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd0V4ZWN1dGlvbiI3wrgYMwgCEDQiAmlkKil1bmF1dGhvcml6ZWQgdG8gcmVzdW1lIHdvcmtmbG93IGV4ZWN1dGlvbhoEoP8rNGIGcHJvdG8z",[file_ai_stigmer_agentic_workflowexecution_v1_api,file_ai_stigmer_agentic_workflowexecution_v1_io,file_ai_stigmer_commons_apiresource_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),WorkflowExecutionCommandController=serviceDesc(file_ai_stigmer_agentic_workflowexecution_v1_command,0);var file_ai_stigmer_agentic_workflowexecution_v1_query=fileDesc("CjNhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3dleGVjdXRpb24vdjEvcXVlcnkucHJvdG8SJ2FpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MTKDDAogV29ya2Zsb3dFeGVjdXRpb25RdWVyeUNvbnRyb2xsZXISuAEKA2dldBI8LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd0V4ZWN1dGlvbklkGjouYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXhlY3V0aW9uIjfCuBgzCAEQNCIFdmFsdWUqJnVuYXV0aG9yaXplZCB0byBnZXQgd29ya2Zsb3cgZXhlY3V0aW9uEpQBCgRsaXN0EkYuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLkxpc3RXb3JrZmxvd0V4ZWN1dGlvbnNSZXF1ZXN0Gj4uYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXhlY3V0aW9uTGlzdCIE0LgYARKoAQoObGlzdEJ5V29ya2Zsb3cSUC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuTGlzdFdvcmtmbG93RXhlY3V0aW9uc0J5V29ya2Zsb3dSZXF1ZXN0Gj4uYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXhlY3V0aW9uTGlzdCIE0LgYARLcAQoJc3Vic2NyaWJlEkouYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLlN1YnNjcmliZVdvcmtmbG93RXhlY3V0aW9uUmVxdWVzdBo6LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd0V4ZWN1dGlvbiJFwrgYQQgBEDQiDGV4ZWN1dGlvbl9pZCotdW5hdXRob3JpemVkIHRvIGdldCB3b3JrZmxvdyBleGVjdXRpb24gc3RyZWFtMAES0gEKC2dldEV2ZW50TG9nEjsuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLkdldEV2ZW50TG9nUmVxdWVzdBo8LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5HZXRFdmVudExvZ1Jlc3BvbnNlIkjCuBhECAEQNCIMZXhlY3V0aW9uX2lkKjB1bmF1dGhvcml6ZWQgdG8gZ2V0IHdvcmtmbG93IGV4ZWN1dGlvbiBldmVudCBsb2cS5QEKD3N1YnNjcmliZUV2ZW50cxI/LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5TdWJzY3JpYmVFdmVudHNSZXF1ZXN0Gj8uYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXhlY3V0aW9uRXZlbnQiTsK4GEoIARA0IgxleGVjdXRpb25faWQqNnVuYXV0aG9yaXplZCB0byBzdWJzY3JpYmUgdG8gd29ya2Zsb3cgZXhlY3V0aW9uIGV2ZW50czABEpsBChNnZXRFeGVjdXRpb25TdW1tYXJ5EkMuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLkdldEV4ZWN1dGlvblN1bW1hcnlSZXF1ZXN0GjkuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLkV4ZWN1dGlvblN1bW1hcnkiBNC4GAESoQEKFGxpc3RQZW5kaW5nQXBwcm92YWxzEkQuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLkxpc3RQZW5kaW5nQXBwcm92YWxzUmVxdWVzdBo9LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5QZW5kaW5nQXBwcm92YWxzTGlzdCIE0LgYARoEoP8rNGIGcHJvdG8z",[file_ai_stigmer_agentic_workflowexecution_v1_api,file_ai_stigmer_agentic_workflowexecution_v1_event,file_ai_stigmer_agentic_workflowexecution_v1_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),WorkflowExecutionQueryController=serviceDesc(file_ai_stigmer_agentic_workflowexecution_v1_query,0);var file_google_rpc_error_details=fileDesc("Ch5nb29nbGUvcnBjL2Vycm9yX2RldGFpbHMucHJvdG8SCmdvb2dsZS5ycGMikwEKCUVycm9ySW5mbxIOCgZyZWFzb24YASABKAkSDgoGZG9tYWluGAIgASgJEjUKCG1ldGFkYXRhGAMgAygLMiMuZ29vZ2xlLnJwYy5FcnJvckluZm8uTWV0YWRhdGFFbnRyeRovCg1NZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiOwoJUmV0cnlJbmZvEi4KC3JldHJ5X2RlbGF5GAEgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uIjIKCURlYnVnSW5mbxIVCg1zdGFja19lbnRyaWVzGAEgAygJEg4KBmRldGFpbBgCIAEoCSKPAwoMUXVvdGFGYWlsdXJlEjYKCnZpb2xhdGlvbnMYASADKAsyIi5nb29nbGUucnBjLlF1b3RhRmFpbHVyZS5WaW9sYXRpb24axgIKCVZpb2xhdGlvbhIPCgdzdWJqZWN0GAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhMKC2FwaV9zZXJ2aWNlGAMgASgJEhQKDHF1b3RhX21ldHJpYxgEIAEoCRIQCghxdW90YV9pZBgFIAEoCRJRChBxdW90YV9kaW1lbnNpb25zGAYgAygLMjcuZ29vZ2xlLnJwYy5RdW90YUZhaWx1cmUuVmlvbGF0aW9uLlF1b3RhRGltZW5zaW9uc0VudHJ5EhMKC3F1b3RhX3ZhbHVlGAcgASgDEh8KEmZ1dHVyZV9xdW90YV92YWx1ZRgIIAEoA0gAiAEBGjYKFFF1b3RhRGltZW5zaW9uc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCFQoTX2Z1dHVyZV9xdW90YV92YWx1ZSKVAQoTUHJlY29uZGl0aW9uRmFpbHVyZRI9Cgp2aW9sYXRpb25zGAEgAygLMikuZ29vZ2xlLnJwYy5QcmVjb25kaXRpb25GYWlsdXJlLlZpb2xhdGlvbho/CglWaW9sYXRpb24SDAoEdHlwZRgBIAEoCRIPCgdzdWJqZWN0GAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJIswBCgpCYWRSZXF1ZXN0Ej8KEGZpZWxkX3Zpb2xhdGlvbnMYASADKAsyJS5nb29nbGUucnBjLkJhZFJlcXVlc3QuRmllbGRWaW9sYXRpb24afQoORmllbGRWaW9sYXRpb24SDQoFZmllbGQYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSDgoGcmVhc29uGAMgASgJEjcKEWxvY2FsaXplZF9tZXNzYWdlGAQgASgLMhwuZ29vZ2xlLnJwYy5Mb2NhbGl6ZWRNZXNzYWdlIjcKC1JlcXVlc3RJbmZvEhIKCnJlcXVlc3RfaWQYASABKAkSFAoMc2VydmluZ19kYXRhGAIgASgJImAKDFJlc291cmNlSW5mbxIVCg1yZXNvdXJjZV90eXBlGAEgASgJEhUKDXJlc291cmNlX25hbWUYAiABKAkSDQoFb3duZXIYAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkiVgoESGVscBIkCgVsaW5rcxgBIAMoCzIVLmdvb2dsZS5ycGMuSGVscC5MaW5rGigKBExpbmsSEwoLZGVzY3JpcHRpb24YASABKAkSCwoDdXJsGAIgASgJIjMKEExvY2FsaXplZE1lc3NhZ2USDgoGbG9jYWxlGAEgASgJEg8KB21lc3NhZ2UYAiABKAlCbAoOY29tLmdvb2dsZS5ycGNCEUVycm9yRGV0YWlsc1Byb3RvUAFaP2dvb2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL2dvb2dsZWFwaXMvcnBjL2VycmRldGFpbHM7ZXJyZGV0YWlsc6ICA1JQQ2IGcHJvdG8z",[file_google_protobuf_duration]),ErrorInfoSchema=messageDesc2(file_google_rpc_error_details,0);var CONNECT_CODE_TO_CATEGORY={[Code.Unauthenticated]:"auth",[Code.PermissionDenied]:"permission",[Code.NotFound]:"not-found",[Code.InvalidArgument]:"validation",[Code.FailedPrecondition]:"validation",[Code.OutOfRange]:"validation",[Code.AlreadyExists]:"validation",[Code.Aborted]:"validation",[Code.Internal]:"server",[Code.Unknown]:"server",[Code.DataLoss]:"server",[Code.Unimplemented]:"server",[Code.Unavailable]:"unavailable",[Code.DeadlineExceeded]:"unavailable",[Code.ResourceExhausted]:"unavailable",[Code.Canceled]:"cancelled"};var rpcMetadataStore=new WeakMap;function annotateRpcError(error3,metadata){rpcMetadataStore.set(error3,metadata)}function createAuthInterceptor(getAccessToken){return next=>async request3=>{let token=await getAccessToken();return token&&request3.header.set("Authorization",`Bearer ${token}`),next(request3)}}var rpcMetadataInterceptor=next=>async request3=>{try{return await next(request3)}catch(error3){if(error3!==null&&typeof error3=="object"){let segments=request3.url.split("/"),method=segments.at(-1)??"",service=segments.at(-2)??"";annotateRpcError(error3,{method:method.charAt(0).toLowerCase()+method.slice(1),path:`/${service}/${method}`})}throw error3}},errorStripInterceptor=next=>async request3=>{try{return await next(request3)}catch(error3){throw error3 instanceof Error&&error3.message&&(error3.message=error3.message.replace(/^\[.*?]\s*/,"")),error3}};function createNodeTransport(config2){let tokenProvider=config2.apiKey?()=>config2.apiKey:config2.getAccessToken??(()=>null),interceptors=[createAuthInterceptor(tokenProvider),rpcMetadataInterceptor,errorStripInterceptor];return config2.protocol==="grpc"?createGrpcTransport({baseUrl:config2.baseUrl,interceptors}):createGrpcWebTransport({baseUrl:config2.baseUrl,httpVersion:"2",interceptors})}function normalizeEndpoint(raw){let endpoint=raw.trim();if(endpoint==="")throw new Error("normalizeEndpoint: endpoint must not be empty");if(endpoint=endpoint.replace(/^https?:\/\//i,"").replace(/\/+$/,""),endpoint==="")throw new Error("normalizeEndpoint: endpoint has no host");let{host,port}=splitHostPort(endpoint);return port!==""?`${port==="443"?"https":"http"}://${endpoint}`:isLoopbackHost(host)?`http://${endpoint}`:`https://${endpoint}:443`}function splitHostPort(authority){if(authority.startsWith("[")){let close=authority.indexOf("]");if(close===-1)return{host:authority,port:""};let host=authority.slice(0,close+1),rest=authority.slice(close+1);return rest.startsWith(":")?{host,port:rest.slice(1)}:{host,port:""}}let lastColon=authority.lastIndexOf(":");return lastColon===-1||authority.indexOf(":")!==lastColon?{host:authority,port:""}:{host:authority.slice(0,lastColon),port:authority.slice(lastColon+1)}}function isLoopbackHost(host){return host==="localhost"||host==="127.0.0.1"||host==="::1"||host==="[::1]"}var DEFAULT_RPC_TIMEOUT_MS=3e4;function resolveToken(extra,fallback){let token=extra?.authInfo?.token;return token!==void 0&&token!==""?token:fallback}function transportForToken(serverAddress,token){return createNodeTransport({baseUrl:normalizeEndpoint(serverAddress),apiKey:token===""?void 0:token,protocol:"grpc"})}async function withTransport(serverAddress,token,fn){return fn(transportForToken(serverAddress,token),{timeoutMs:DEFAULT_RPC_TIMEOUT_MS})}async function withClient(service,serverAddress,token,fn){return withTransport(serverAddress,token,(transport,callOptions)=>fn(createClient(service,transport),callOptions))}var READINESS_RPC_TIMEOUT_MS=4e3,READINESS_CACHE_TTL_MS=5e3;async function checkBackendHealth(serverAddress){let client=createClient(Health,transportForToken(serverAddress,""));try{let res=await client.check({},{timeoutMs:READINESS_RPC_TIMEOUT_MS});return res.status===HealthCheckResponse_ServingStatus.SERVING?{ready:!0}:{ready:!1,reason:`backend health status: ${HealthCheckResponse_ServingStatus[res.status]??res.status}`}}catch(err){return{ready:!1,reason:`backend health check failed: ${err instanceof Error?err.message:String(err)}`}}}function createReadinessCheck(serverAddress,check2=checkBackendHealth){let cached2,inFlight;return async()=>cached2!==void 0&&Date.now()-cached2.at<READINESS_CACHE_TTL_MS?cached2.result:(inFlight===void 0&&(inFlight=check2(serverAddress).then(result=>(cached2={result,at:Date.now()},result)).finally(()=>{inFlight=void 0})),inFlight)}function textResult(text){return{content:[{type:"text",text}]}}function errorResult(err){return{content:[{type:"text",text:err instanceof Error?err.message:String(err)}],isError:!0}}async function textOrError(produce){try{return textResult(await produce())}catch(err){return errorResult(err)}}function rpcError(err,resourceDescription){let ce=ConnectError.from(err);return log.warn("rpc call failed",{resource:resourceDescription,code:Code[ce.code],grpc_message:ce.rawMessage}),new Error(classifyCode(ce,resourceDescription))}function classifyCode(ce,resourceDescription){switch(ce.code){case Code.NotFound:return`${resourceDescription} not found. Verify the org and slug are correct.`;case Code.PermissionDenied:return`Permission denied for ${resourceDescription}. Check your API key permissions.`;case Code.Unauthenticated:return"Authentication failed. Check your API key.";case Code.Unavailable:return"Stigmer server is unavailable. Ensure it is running and reachable.";case Code.DeadlineExceeded:return"Request timed out contacting stigmer-server.";case Code.InvalidArgument:return ce.rawMessage;default:return`unexpected error: ${ce.rawMessage}`}}function toProtoJson(schema,message){return JSON.stringify(toJson(schema,message,{useProtoFieldName:!0}),null,2)}var DEFAULT_MESSAGE_LIMIT=5,COMPACT_PRUNED_STATUS_FIELDS=["approval_events","callback_token","sub_agent_executions"];async function fetchAgentExecution(serverAddress,token,executionId,view,messageLimit){if(executionId==="")throw new Error("execution_id is required");return withClient(AgentExecutionQueryController,serverAddress,token,async(client,callOptions)=>{let execution;try{execution=await client.get({value:executionId},callOptions)}catch(err){throw rpcError(err,`agent execution "${executionId}"`)}return view==="full"?toProtoJson(AgentExecutionSchema,execution):compactExecutionJson(execution,messageLimit)})}function compactExecution(execution,messageLimit){let data=JSON.parse(toProtoJson(AgentExecutionSchema,execution)),totalMessages=0,status=data.status;if(status!==void 0){let messages=Array.isArray(status.messages)?status.messages:[];totalMessages=messages.length,messages.length>messageLimit&&(status.messages=messages.slice(-messageLimit));for(let field of COMPACT_PRUNED_STATUS_FIELDS)delete status[field]}return{totalMessages,data}}function compactExecutionJson(execution,messageLimit){let{totalMessages,data}=compactExecution(execution,messageLimit);return JSON.stringify({view:"compact",total_messages:totalMessages,execution:data},null,2)}var APPROVAL_ACTIONS={approve:ApprovalAction.APPROVE,skip:ApprovalAction.SKIP,reject:ApprovalAction.REJECT};async function submitAgentApproval(serverAddress,token,args){let action=APPROVAL_ACTIONS[args.action];if(action===void 0)throw new Error(`unknown action "${args.action}"; valid actions: approve, skip, reject`);return withClient(AgentExecutionCommandController,serverAddress,token,async(client,callOptions)=>{try{let execution=await client.submitApproval({agentExecutionId:args.executionId,toolCallId:args.toolCallId,action,comment:args.comment??""},callOptions);return compactExecutionJson(execution,DEFAULT_MESSAGE_LIMIT)}catch(err){throw rpcError(err,`approval for agent execution "${args.executionId}"`)}})}var API_VERSION="agentic.stigmer.ai/v1";async function runAgent(serverAddress,token,args){let desc=`agent "${args.agent}" in org "${args.org}"`;return withTransport(serverAddress,token,async(transport,callOptions)=>{let query=createClient(AgentQueryController,transport),agentId;try{agentId=(await query.getByReference({org:args.org,kind:ApiResourceKind.agent,slug:args.agent},callOptions)).metadata?.id??""}catch(err){throw rpcError(err,desc)}let execution=create(AgentExecutionSchema,{apiVersion:API_VERSION,kind:"AgentExecution",metadata:create(ApiResourceMetadataSchema,{name:executionName(),org:args.org}),spec:create(AgentExecutionSpecSchema,{message:args.message===""?"execute":args.message,runtimeEnv:toExecutionValues(args.runtimeEnv),sessionId:args.sessionId??"",agentId})}),command=createClient(AgentExecutionCommandController,transport);try{let created=await command.create(execution,callOptions);return toProtoJson(AgentExecutionSchema,created)}catch(err){throw rpcError(err,`execution of ${desc}`)}})}function toExecutionValues(env){let out={};for(let[key,value]of Object.entries(env??{}))out[key]=create(ExecutionValueSchema,{value,isSecret:!1});return out}function executionName(){return`execution-${Date.now()*1e3}`}function registerAgentExecutionTools(server,target){return server.registerTool("run_agent",{description:"Start an agent execution (asynchronous). Returns immediately with the created execution (aex_* ID) while the run continues in the background \u2014 poll get_agent_execution to observe progress, pending approvals, and the final result. Omit session_id to start a fresh conversation; pass one to send a follow-up message into an existing session.",inputSchema:{org:external_exports.string().describe("Organization slug that owns the agent (e.g. stigmer)."),agent:external_exports.string().describe("Agent slug \u2014 the unique identifier within the org (e.g. code-reviewer)."),message:external_exports.string().describe("The instruction or message for the agent to act on."),session_id:external_exports.string().optional().describe("Existing session ID to continue a conversation (from a previous execution's spec.session_id). Omit to start a new session."),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 attached to the agent, never through this tool.")}},(args,extra)=>textOrError(()=>runAgent(target.serverAddress,resolveToken(extra,target.apiKey),{org:args.org,agent:args.agent,message:args.message,sessionId:args.session_id,runtimeEnv:args.runtime_env}))),server.registerTool("get_agent_execution",{description:"Get an agent execution's status: phase, messages, pending approvals, errors, timing. Agent executions have no event log \u2014 poll this tool to track a run started with run_agent (terminal phases: completed, failed, cancelled, terminated). The default compact view returns the last few messages and omits bulky bookkeeping fields (resolved context, approval ledger, sub-agent transcripts); total_messages tells you when the tail is a window. Use view=full for the complete record.",inputSchema:{execution_id:external_exports.string().describe("Agent execution ID (aex_* format)."),view:external_exports.enum(["compact","full"]).optional().describe("Response shape: compact (default, bounded message tail) or full protojson."),message_limit:external_exports.number().int().min(1).optional().describe(`Compact view only: number of trailing messages to return (default ${DEFAULT_MESSAGE_LIMIT}).`)}},(args,extra)=>textOrError(()=>fetchAgentExecution(target.serverAddress,resolveToken(extra,target.apiKey),args.execution_id,args.view??"compact",args.message_limit??DEFAULT_MESSAGE_LIMIT))),server.registerTool("submit_agent_execution_approval",{description:"Approve, skip, or reject a tool call an agent execution is waiting on (phase waiting-for-approval). Find pending requests in get_agent_execution's status.pending_approvals \u2014 tool_call_id must match exactly. reject denies the single tool call and feeds your comment back to the agent, which then continues; to stop the whole run use cancel_execution instead.",inputSchema:{execution_id:external_exports.string().describe("Agent execution ID (aex_* format)."),tool_call_id:external_exports.string().describe("Tool call awaiting the decision (status.pending_approvals[].tool_call_id)."),action:external_exports.enum(["approve","skip","reject"]).describe("approve: execute the tool. skip: don't execute, agent proceeds without it. reject: don't execute, agent is told why (see comment) and adapts."),comment:external_exports.string().optional().describe("Reason for the decision; on reject it is fed back to the agent.")}},(args,extra)=>textOrError(()=>submitAgentApproval(target.serverAddress,resolveToken(extra,target.apiKey),{executionId:args.execution_id,toolCallId:args.tool_call_id,action:args.action,comment:args.comment}))),["run_agent","get_agent_execution","submit_agent_execution_approval"]}function parseResourceURI(uri){let segments=pathSegments(uri);if(segments.length!==2)throw new Error(`expected URI path with 2 segments (org/slug), got ${segments.length} in "${uri}"`);let org=segments[0]??"",slug=segments[1]??"";if(org===""||slug==="")throw new Error(`org and slug must be non-empty in "${uri}"`);return{org,slug}}function parseVersionedResourceURI(uri){let segments=pathSegments(uri),org="",slug="",version2="";switch(segments.length){case 2:org=segments[0]??"",slug=segments[1]??"";break;case 3:if(org=segments[0]??"",slug=segments[1]??"",version2=segments[2]??"",version2==="")throw new Error(`version segment must be non-empty in "${uri}"`);break;default:throw new Error(`expected URI path with 2 or 3 segments (org/slug[/version]), got ${segments.length} in "${uri}"`)}if(org===""||slug==="")throw new Error(`org and slug must be non-empty in "${uri}"`);return{org,slug,version:version2}}var kindToAuthority={agent:"agents",environment:"environments",mcp_server:"mcp-servers",skill:"skills",workflow:"workflows"};function buildResourceURI(kind,org,slug){let authority=kindToAuthority[kind];return authority===void 0||org===""||slug===""?"":`stigmer://${authority}/${org}/${slug}`}function pathSegments(uri){let parsed;try{parsed=new URL(uri)}catch(err){throw new Error(`malformed resource URI "${uri}": ${err instanceof Error?err.message:err}`)}if(parsed.protocol!=="stigmer:")throw new Error(`unexpected URI scheme "${parsed.protocol.replace(/:$/,"")}", expected "stigmer"`);let trimmed=parsed.pathname.replace(/^\/+/,"").replace(/\/+$/,"");return trimmed===""?[]:trimmed.split("/")}function registerResource(server,target,opts){server.registerResource(opts.name,new ResourceTemplate(opts.template,{list:void 0}),{title:opts.title,description:opts.description,mimeType:"application/json"},async(uri,_vars,extra)=>{let{org,slug}=parseResourceURI(uri.href),text=await opts.fetch(target.serverAddress,resolveToken(extra,target.apiKey),org,slug);return jsonResource(uri.href,text)})}function registerVersionedResource(server,target,opts){server.registerResource(opts.name,new ResourceTemplate(opts.template,{list:void 0}),{title:opts.title,description:opts.description,mimeType:"application/json"},async(uri,_vars,extra)=>{let{org,slug,version:version2}=parseVersionedResourceURI(uri.href),text=await opts.fetch(target.serverAddress,resolveToken(extra,target.apiKey),org,slug,version2);return jsonResource(uri.href,text)})}function jsonResource(uri,text){return{contents:[{uri,mimeType:"application/json",text}]}}async function fetchAgent(serverAddress,token,org,slug){return withClient(AgentQueryController,serverAddress,token,async(client,callOptions)=>{try{let agent=await client.getByReference({org,kind:ApiResourceKind.agent,slug},callOptions);return toProtoJson(AgentSchema,agent)}catch(err){throw rpcError(err,`agent "${slug}" in org "${org}"`)}})}function registerAgentResources(server,target){return registerResource(server,target,{name:"stigmer_agent",title:"Stigmer Agent",description:"Full definition of a Stigmer agent, identified by organization and slug.",template:"stigmer://agents/{org}/{slug}",fetch:fetchAgent}),["stigmer_agent"]}function generateSlug(name){if(!name)return"";let out="",lastHyphen=!1;for(let ch of name.toLowerCase())ch>="a"&&ch<="z"||ch>="0"&&ch<="9"?(out+=ch,lastHyphen=!1):lastHyphen||(out+="-",lastHyphen=!0);return out.replace(/^-+/,"").replace(/-+$/,"")}function visibilityFromString(s){return s&&s.toUpperCase()==="PUBLIC"?ApiResourceVisibility.visibility_public:s&&s.toUpperCase()==="PRIVATE"?ApiResourceVisibility.visibility_private:ApiResourceVisibility.api_resource_visibility_unspecified}function enumFromString(enumObj,value){if(value===void 0)return 0;let v=enumObj[value];return typeof v=="number"?v:0}function toTimestamp(value){return timestampFromDate(new Date(value))}var AgentInputShape={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: PRIVATE or PUBLIC. Applied at create; on updates a changed value is landed through the guarded UpdateVisibility RPC. Omit to leave unchanged."),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."),icon_url:external_exports.string().optional().describe("Icon URL for marketplace and UI display. Must be a publicly accessible URL to an image (SVG, PNG, or JPEG)."),instructions:external_exports.string().optional().describe("System prompt defining the agent's behavior and personality."),mcp_server_usages:external_exports.array(external_exports.lazy(()=>McpServerUsageInputSchema)).optional().describe("MCP servers this agent can use. Each entry must reference a unique McpServer resource by slug."),skill_refs:external_exports.array(external_exports.lazy(()=>SkillRefInputSchema)).optional().describe("Skill resources providing additional knowledge to the agent."),sub_agents:external_exports.array(external_exports.lazy(()=>SubAgentInputSchema)).optional().describe("Sub-agents that can be delegated to. Sub-agents can access a subset of the parent's MCP servers and tools."),env:external_exports.record(external_exports.lazy(()=>EnvVarDeclarationInputSchema)).optional().describe("Environment variable declarations for this agent. Keys are variable names; values describe their metadata and optionality.")},AgentInputSchema=external_exports.object(AgentInputShape),McpServerRefInputSchema=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). Use explicit org for cross-org references (e.g., marketplace resources)."),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.")}),ToolApprovalOverrideInputSchema=external_exports.object({tool_name:external_exports.string().optional().describe("Name of the tool to override."),requires_approval:external_exports.boolean().optional().describe("Whether this tool requires approval for this agent."),message:external_exports.string().optional().describe("Custom approval message shown to the reviewer. Supports {{args.field}} placeholders. When empty, falls back to the McpServer default or auto-generates 'Execute tool: {tool_name}'.")}),McpServerUsageInputSchema=external_exports.object({mcp_server_ref:external_exports.lazy(()=>McpServerRefInputSchema).describe("Reference to the McpServer resource."),enabled_tools:external_exports.array(external_exports.string()).optional().describe("Tools to enable from this MCP server for this agent. Empty list uses the McpServer's default_enabled_tools. Sub-agents can only restrict this set further, not expand it."),tool_approval_overrides:external_exports.array(external_exports.lazy(()=>ToolApprovalOverrideInputSchema)).optional().describe("Override approval requirements for specific tools. Takes precedence over McpServerSpec.pinned_tool_approvals and McpServerStatus.tool_approvals. Scoped to THIS usage's server: an override applies only to tools of the McpServer referenced by mcp_server_ref \u2014 a same-named tool on another server is unaffected.")}),SkillRefInputSchema=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). Use explicit org for cross-org references (e.g., marketplace resources)."),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."),version:external_exports.string().optional().describe("Version of the resource (optional, only applicable to versioned resources like Skills). Supports three formats: 1. Empty/unset \u2192 Resolves to 'latest' (most recent version) 2. Tag name \u2192 Resolves to version with this tag (e.g., 'stable', 'v1.0') 3. Exact hash \u2192 Immutable reference to specific version (e.g., 'abc123...') Default behavior: Empty means 'latest' (current version). This field is ignored for non-versioned resources. Examples: - version: '' \u2192 Use latest version - version: 'latest' \u2192 Use latest version (explicit) - version: 'stable' \u2192 Use version tagged as 'stable' - version: 'v1.0' \u2192 Use version tagged as 'v1.0' - version: 'abc123...' \u2192 Use exact version with this hash (immutable)")}),McpAccessInputSchema=external_exports.object({mcp_server:external_exports.string().describe("Slug of the McpServer to grant access to. Must match a mcp_server_ref.slug from the parent's mcp_server_usages."),enabled_tools:external_exports.array(external_exports.string()).optional().describe("Tools this sub-agent can use from this MCP server. Must be a subset of the parent's enabled_tools for this server. Empty list grants access to all tools the parent has enabled.")}),SubAgentInputSchema=external_exports.object({name:external_exports.string().describe("Unique name of the sub-agent within the parent agent."),description:external_exports.string().optional().describe("What this sub-agent specializes in."),instructions:external_exports.string().optional().describe("System prompt for this sub-agent."),mcp_access:external_exports.array(external_exports.lazy(()=>McpAccessInputSchema)).optional().describe("MCP server access grants for this sub-agent. Each entry references a parent McpServerUsage by slug and optionally restricts which tools are available."),skill_refs:external_exports.array(external_exports.lazy(()=>SkillRefInputSchema)).optional().describe("Skill resources for this sub-agent."),model_override:external_exports.string().optional().describe("Model override for this sub-agent. When set, uses this model instead of the parent's model. When empty, inherits the parent agent's model.")}),EnvVarDeclarationInputSchema=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.")});function agentInputToProto(input){let slug=input.slug&&input.slug.length>0?input.slug:generateSlug(input.name),spec=create(AgentSpecSchema);if(input.description!==void 0&&(spec.description=input.description),input.icon_url!==void 0&&(spec.iconUrl=input.icon_url),input.instructions!==void 0&&(spec.instructions=input.instructions),input.mcp_server_usages!==void 0&&(spec.mcpServerUsages=input.mcp_server_usages.map(mcpServerUsageInputToProto)),input.skill_refs!==void 0&&(spec.skillRefs=input.skill_refs.map(skillRefInputToProto)),input.sub_agents!==void 0&&(spec.subAgents=input.sub_agents.map(subAgentInputToProto)),input.env!==void 0)for(let[k,v]of Object.entries(input.env))spec.env[k]=envVarDeclarationInputToProto(v);return Object.assign(create(AgentSchema),{apiVersion:"agentic.stigmer.ai/v1",kind:"Agent",metadata:Object.assign(create(ApiResourceMetadataSchema),{name:input.name,slug,org:input.org,...input.visibility!==void 0&&{visibility:visibilityFromString(input.visibility)},...input.labels!==void 0&&{labels:input.labels},...input.tags!==void 0&&{tags:input.tags}}),spec})}function mcpServerRefInputToProto(input){return create(ApiResourceReferenceSchema,{org:input.org,slug:input.slug,kind:ApiResourceKind.mcp_server})}function toolApprovalOverrideInputToProto(input){let result=create(ToolApprovalOverrideSchema);return input.tool_name!==void 0&&(result.toolName=input.tool_name),input.requires_approval!==void 0&&(result.requiresApproval=input.requires_approval),input.message!==void 0&&(result.message=input.message),result}function mcpServerUsageInputToProto(input){let result=create(McpServerUsageSchema);return input.mcp_server_ref!==void 0&&(result.mcpServerRef=mcpServerRefInputToProto(input.mcp_server_ref)),input.enabled_tools!==void 0&&(result.enabledTools=input.enabled_tools),input.tool_approval_overrides!==void 0&&(result.toolApprovalOverrides=input.tool_approval_overrides.map(toolApprovalOverrideInputToProto)),result}function skillRefInputToProto(input){return create(ApiResourceReferenceSchema,{org:input.org,slug:input.slug,kind:ApiResourceKind.skill,version:input.version})}function mcpAccessInputToProto(input){let result=create(McpAccessSchema);return input.mcp_server!==void 0&&(result.mcpServer=input.mcp_server),input.enabled_tools!==void 0&&(result.enabledTools=input.enabled_tools),result}function subAgentInputToProto(input){let result=create(SubAgentSchema);return input.name!==void 0&&(result.name=input.name),input.description!==void 0&&(result.description=input.description),input.instructions!==void 0&&(result.instructions=input.instructions),input.mcp_access!==void 0&&(result.mcpAccess=input.mcp_access.map(mcpAccessInputToProto)),input.skill_refs!==void 0&&(result.skillRefs=input.skill_refs.map(skillRefInputToProto)),input.model_override!==void 0&&(result.modelOverride=input.model_override),result}function envVarDeclarationInputToProto(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}async function applyDeclaredVisibility(client,callOptions,applied,declared){if(declared===ApiResourceVisibility.api_resource_visibility_unspecified)return applied;let resourceId=applied.metadata?.id??"";return resourceId===""||applied.metadata?.visibility===declared?applied:client.updateVisibility(create(UpdateVisibilityInputSchema,{resourceId,visibility:declared}),callOptions)}async function applyAgent(serverAddress,token,input){let agent=agentInputToProto(input),desc=`agent "${agent.metadata?.slug??""}" in org "${agent.metadata?.org??""}"`;return withClient(AgentCommandController,serverAddress,token,async(client,callOptions)=>{try{let applied=await client.apply(agent,callOptions),result=await applyDeclaredVisibility(client,callOptions,applied,agent.metadata?.visibility??ApiResourceVisibility.api_resource_visibility_unspecified);return toProtoJson(AgentSchema,result)}catch(err){throw rpcError(err,desc)}})}async function deleteAgent(serverAddress,token,org,slug){let desc=`agent "${slug}" in org "${org}"`;return withTransport(serverAddress,token,async(transport,callOptions)=>{let query=createClient(AgentQueryController,transport),id;try{id=(await query.getByReference({org,kind:ApiResourceKind.agent,slug},callOptions)).metadata?.id??""}catch(err){throw rpcError(err,desc)}let command=createClient(AgentCommandController,transport);try{let deleted=await command.delete({value:id},callOptions);return toProtoJson(AgentSchema,deleted)}catch(err){throw rpcError(err,desc)}})}function registerAgentTools(server,target){return server.registerTool("get_agent",{description:"Get full details of a Stigmer agent by its org and slug (e.g. org=stigmer slug=code-reviewer).",inputSchema:{org:external_exports.string().describe("Organization slug that owns the agent (e.g. stigmer)."),slug:external_exports.string().describe("Agent slug \u2014 the unique identifier within the org (e.g. code-reviewer).")}},(args,extra)=>textOrError(()=>fetchAgent(target.serverAddress,resolveToken(extra,target.apiKey),args.org,args.slug))),server.registerTool("apply_agent",{description:"Create or update a Stigmer agent (idempotent). Provide identity fields (name, org) and agent configuration (instructions, skills, MCP servers, etc.).",inputSchema:AgentInputShape},(args,extra)=>textOrError(()=>applyAgent(target.serverAddress,resolveToken(extra,target.apiKey),args))),server.registerTool("delete_agent",{description:"Delete a Stigmer agent by its org and slug. Returns the deleted agent.",inputSchema:{org:external_exports.string().describe("Organization slug that owns the agent (e.g. stigmer)."),slug:external_exports.string().describe("Agent slug \u2014 the unique identifier within the org (e.g. code-reviewer).")}},(args,extra)=>textOrError(()=>deleteAgent(target.serverAddress,resolveToken(extra,target.apiKey),args.org,args.slug))),["get_agent","apply_agent","delete_agent"]}async function sendChannelMessage(serverAddress,token,args){let request3=create(SendChannelMessageInputSchema,{channel:args.channel??"",recipient:args.recipient,payload:buildPayload(args)});return withClient(ChannelMessageCommandController,serverAddress,token,async(client,opts)=>toProtoJson(SendChannelMessageOutputSchema,await client.sendMessage(request3,opts)))}function buildPayload(args){return args.template!==void 0?create(ChannelOutboundPayloadSchema,{kind:{case:"template",value:create(TemplatePayloadSchema,{name:args.template.name,language:args.template.language??"",parameters:args.template.parameters??{},headerImageLink:args.template.header_image_link??""})}}):create(ChannelOutboundPayloadSchema,{kind:{case:"text",value:create(TextPayloadSchema,{body:args.text??""})}})}var DOMAIN_CODES=new Set([Code.PermissionDenied,Code.InvalidArgument,Code.FailedPrecondition]);async function channelResult(toolContext,produce){try{return textResult(await produce())}catch(err){let ce=ConnectError.from(err);return DOMAIN_CODES.has(ce.code)?{content:[{type:"text",text:JSON.stringify(domainError(ce))}],isError:!0}:errorResult(rpcError(ce,toolContext))}}function domainError(ce){let payload={error:ce.rawMessage,code:grpcStatusName(ce.code)},details=ce.findDetails(ErrorInfoSchema);return details.length>0&&details[0].reason!==""&&(payload.reason=details[0].reason),payload}function grpcStatusName(code){return Code[code].replace(/([a-z0-9])([A-Z])/g,"$1_$2").toUpperCase()}var templateShape=external_exports.object({name:external_exports.string().describe("Approved template name on the channel's provider registry."),language:external_exports.string().optional().describe("Template language code (e.g. en, en_US). Omit when the template exists in exactly one language."),parameters:external_exports.record(external_exports.string()).optional().describe('Placeholder values. Positional templates key by position ("1", "2", \u2026); named templates key by parameter name ("member_name").'),header_image_link:external_exports.string().optional().describe("Public HTTPS URL for the image header. Required exactly when the template declares an image header.")});function registerChannelTools(server,target){return server.registerTool("send_channel_message",{description:"Send a business-initiated message to a recipient on this agent's messaging channel (e.g. WhatsApp). Exactly one of text | template. Outside a 24-hour customer-service window the provider only accepts a pre-approved template, so prefer a template from <available_channel_templates>. The result carries a typed outcome: accepted (sent), queued (the platform retries in the background \u2014 do not resend), or refused (terminal; detail says why \u2014 adapt, never retry the same send).",inputSchema:{recipient:external_exports.string().describe(`Recipient's key on the channel's provider, passed to the provider verbatim. WhatsApp: the wa_id \u2014 digits only INCLUDING the country code, no "+" or separators (e.g. "919912850490"). Never reformat a wa_id another tool returned.`),text:external_exports.string().optional().describe("Plain text body. Only deliverable inside an open 24-hour customer-service window."),template:templateShape.optional().describe("Pre-approved template send \u2014 required outside a 24-hour window."),channel:external_exports.string().optional().describe("Channel slug. Only needed when this agent serves more than one proactive-messaging channel (a refusal will list them).")}},(args,extra)=>{let hasText=args.text!==void 0&&args.text!=="",hasTemplate=args.template!==void 0;return hasText===hasTemplate?Promise.resolve(errorResult(hasText?"supply exactly one of text | template, not both":"supply exactly one of text | template \u2014 text for an open 24-hour window, template otherwise")):channelResult(`message to "${args.recipient}"`,()=>sendChannelMessage(target.serverAddress,resolveToken(extra,target.apiKey),{recipient:args.recipient,text:args.text,template:args.template,channel:args.channel}))}),["send_channel_message"]}async function escalateConversation(serverAddress,token,reason){let request3=create(EscalateConversationInputSchema,{reason});await withClient(ChannelConversationCommandController,serverAddress,token,(client,opts)=>client.escalate(request3,opts))}var DOMAIN_CODES2=new Set([Code.PermissionDenied,Code.InvalidArgument,Code.FailedPrecondition,Code.NotFound]);async function conversationResult(toolContext,produce){try{return textResult(await produce())}catch(err){let ce=ConnectError.from(err);return DOMAIN_CODES2.has(ce.code)?{content:[{type:"text",text:JSON.stringify(domainError2(ce))}],isError:!0}:errorResult(rpcError(ce,toolContext))}}function domainError2(ce){return{error:ce.rawMessage,code:grpcStatusName2(ce.code)}}function grpcStatusName2(code){return Code[code].replace(/([a-z0-9])([A-Z])/g,"$1_$2").toUpperCase()}var ESCALATE_DESCRIPTION=["Flag this conversation for a human teammate to look at. Use this when you cannot resolve the customer's request yourself: you lack the information, the request needs a decision you are not authorized to make, or the customer has asked for a person.","You keep serving the conversation after calling this. Nothing is handed off automatically and no one is paged. Do not tell the customer a human will reply, and never promise a response time.","Write the reason for a teammate who has not read the conversation. Calling this again with a new reason is safe; the latest reason is what they see."].join(`
198
+ `)}),new TextEncoder().encode(lines.join(""))}function createTrailerSerialization(){return{serialize:trailerSerialize,parse:trailerParse}}var headerContentType="Content-Type",headerEncoding="Grpc-Encoding",headerAcceptEncoding="Grpc-Accept-Encoding",headerTimeout="Grpc-Timeout",headerGrpcStatus="Grpc-Status",headerGrpcMessage="Grpc-Message",headerStatusDetailsBin="Grpc-Status-Details-Bin";var headerUserAgent="User-Agent";var headerXUserAgent="X-User-Agent",headerXGrpcWeb="X-Grpc-Web";var contentTypeProto="application/grpc-web+proto",contentTypeJson="application/grpc-web+json";var file_status=fileDesc("CgxzdGF0dXMucHJvdG8SCmdvb2dsZS5ycGMiTgoGU3RhdHVzEgwKBGNvZGUYASABKAUSDwoHbWVzc2FnZRgCIAEoCRIlCgdkZXRhaWxzGAMgAygLMhQuZ29vZ2xlLnByb3RvYnVmLkFueUJeCg5jb20uZ29vZ2xlLnJwY0ILU3RhdHVzUHJvdG9QAVo3Z29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9ycGMvc3RhdHVzO3N0YXR1c6ICA1JQQ2IGcHJvdG8z",[file_google_protobuf_any]),StatusSchema=messageDesc(file_status,0);var grpcStatusOk="0";function findTrailerError(headerOrTrailer){var _a;let statusBytes=headerOrTrailer.get(headerStatusDetailsBin);if(statusBytes!=null){let status=decodeBinaryHeader(statusBytes,StatusSchema);if(status.code==0)return;let error3=new ConnectError(status.message,status.code,headerOrTrailer);return error3.details=status.details.map(any=>({type:any.typeUrl.substring(any.typeUrl.lastIndexOf("/")+1),value:any.value})),error3}let grpcStatus=headerOrTrailer.get(headerGrpcStatus);if(grpcStatus!=null){if(grpcStatus===grpcStatusOk)return;let code=parseInt(grpcStatus,10);return code in Code?new ConnectError(decodeURIComponent((_a=headerOrTrailer.get(headerGrpcMessage))!==null&&_a!==void 0?_a:""),code,headerOrTrailer):new ConnectError(`invalid grpc-status: ${grpcStatus}`,Code.Internal,headerOrTrailer)}}function createMethodUrl(baseUrl,method){return baseUrl.toString().replace(/\/?$/,`/${method.parent.typeName}/${method.name}`)}function normalize(desc,message){return create(desc,message)}function normalizeIterable(desc,input){function transform2(result){return result.done===!0?result:{done:result.done,value:normalize(desc,result.value)}}return{[Symbol.asyncIterator](){let it=input[Symbol.asyncIterator](),res={next:()=>it.next().then(transform2)};return it.throw!==void 0&&(res.throw=e=>it.throw(e).then(transform2)),it.return!==void 0&&(res.return=v=>it.return(v).then(transform2)),res}}}function applyInterceptors(next,interceptors){if(!interceptors)return next;for(let i of interceptors.concat().reverse())next=i(next);return next}function getJsonOptions(options){var _a;let o=Object.assign({},options);return(_a=o.ignoreUnknownFields)!==null&&_a!==void 0||(o.ignoreUnknownFields=!0),o}function createMethodSerializationLookup(method,binaryOptions,jsonOptions,limitOptions){let inputBinary=limitSerialization(createBinarySerialization(method.input,binaryOptions),limitOptions),inputJson=limitSerialization(createJsonSerialization(method.input,jsonOptions),limitOptions),outputBinary=limitSerialization(createBinarySerialization(method.output,binaryOptions),limitOptions),outputJson=limitSerialization(createJsonSerialization(method.output,jsonOptions),limitOptions);return{getI(useBinaryFormat){return useBinaryFormat?inputBinary:inputJson},getO(useBinaryFormat){return useBinaryFormat?outputBinary:outputJson}}}function limitSerialization(serialization,limitOptions){return{serialize(data){let bytes=serialization.serialize(data);return assertWriteMaxBytes(limitOptions.writeMaxBytes,bytes.byteLength),bytes},parse(data){return assertReadMaxBytes(limitOptions.readMaxBytes,data.byteLength,!0),serialization.parse(data)}}}function createBinarySerialization(desc,options){return{parse(data){try{return fromBinary(desc,data,options)}catch(e){let m=e instanceof Error?e.message:String(e);throw new ConnectError(`parse binary: ${m}`,Code.Internal)}},serialize(data){try{return toBinary(desc,data,options)}catch(e){let m=e instanceof Error?e.message:String(e);throw new ConnectError(`serialize binary: ${m}`,Code.Internal)}}}}function createJsonSerialization(desc,options){var _a,_b;let textEncoder=(_a=options?.textEncoder)!==null&&_a!==void 0?_a:new TextEncoder,textDecoder=(_b=options?.textDecoder)!==null&&_b!==void 0?_b:new TextDecoder,o=getJsonOptions(options);return{parse(data){try{let json=textDecoder.decode(data);return fromJsonString(desc,json,o)}catch(e){throw ConnectError.from(e,Code.InvalidArgument)}},serialize(data){try{let json=toJsonString(desc,data,o);return textEncoder.encode(json)}catch(e){throw ConnectError.from(e,Code.Internal)}}}}var contentTypeRegExp=/^application\/grpc(?:\+(?:(json)(?:; ?charset=utf-?8)?|proto))?$/i,contentTypeProto2="application/grpc+proto",contentTypeJson2="application/grpc+json";function parseContentType(contentType){let match=contentType?.match(contentTypeRegExp);return match?{binary:!match[1]}:void 0}function runUnaryCall(opt){let next=applyInterceptors(opt.next,opt.interceptors),[signal,abort,done]=setupSignal(opt),req=Object.assign(Object.assign({},opt.req),{message:normalize(opt.req.method.input,opt.req.message),signal});return next(req).then(res=>(done(),res),abort)}function runStreamingCall(opt){let next=applyInterceptors(opt.next,opt.interceptors),[signal,abort,done]=setupSignal(opt),req=Object.assign(Object.assign({},opt.req),{message:normalizeIterable(opt.req.method.input,opt.req.message),signal}),doneCalled=!1;return signal.addEventListener("abort",function(){var _a,_b;let it=opt.req.message[Symbol.asyncIterator]();doneCalled||(_a=it.throw)===null||_a===void 0||_a.call(it,this.reason).catch(()=>{}),(_b=it.return)===null||_b===void 0||_b.call(it).catch(()=>{})}),next(req).then(res=>Object.assign(Object.assign({},res),{message:{[Symbol.asyncIterator](){let it=res.message[Symbol.asyncIterator]();return{next(){return it.next().then(r=>(r.done==!0&&(doneCalled=!0,done()),r),abort)}}}}}),abort)}function setupSignal(opt){let{signal,cleanup}=createDeadlineSignal(opt.timeoutMs),controller=createLinkedAbortController(opt.signal,signal);return[controller.signal,function(reason){let e=ConnectError.from(signal.aborted?getAbortSignalReason(signal):reason);return controller.abort(e),cleanup(),Promise.reject(e)},function(){cleanup(),controller.abort()}]}function messageDesc2(file,path,...paths){return paths.reduce((acc,cur)=>acc.nestedMessages[cur],file.messages[path])}function serviceDesc(file,path,...paths){if(paths.length>0)throw new Error;return file.services[path]}var file_grpc_health_v1_health=fileDesc("ChtncnBjL2hlYWx0aC92MS9oZWFsdGgucHJvdG8SDmdycGMuaGVhbHRoLnYxIiUKEkhlYWx0aENoZWNrUmVxdWVzdBIPCgdzZXJ2aWNlGAEgASgJIqkBChNIZWFsdGhDaGVja1Jlc3BvbnNlEkEKBnN0YXR1cxgBIAEoDjIxLmdycGMuaGVhbHRoLnYxLkhlYWx0aENoZWNrUmVzcG9uc2UuU2VydmluZ1N0YXR1cyJPCg1TZXJ2aW5nU3RhdHVzEgsKB1VOS05PV04QABILCgdTRVJWSU5HEAESDwoLTk9UX1NFUlZJTkcQAhITCg9TRVJWSUNFX1VOS05PV04QAyITChFIZWFsdGhMaXN0UmVxdWVzdCKuAQoSSGVhbHRoTGlzdFJlc3BvbnNlEkIKCHN0YXR1c2VzGAEgAygLMjAuZ3JwYy5oZWFsdGgudjEuSGVhbHRoTGlzdFJlc3BvbnNlLlN0YXR1c2VzRW50cnkaVAoNU3RhdHVzZXNFbnRyeRILCgNrZXkYASABKAkSMgoFdmFsdWUYAiABKAsyIy5ncnBjLmhlYWx0aC52MS5IZWFsdGhDaGVja1Jlc3BvbnNlOgI4ATL9AQoGSGVhbHRoElAKBUNoZWNrEiIuZ3JwYy5oZWFsdGgudjEuSGVhbHRoQ2hlY2tSZXF1ZXN0GiMuZ3JwYy5oZWFsdGgudjEuSGVhbHRoQ2hlY2tSZXNwb25zZRJNCgRMaXN0EiEuZ3JwYy5oZWFsdGgudjEuSGVhbHRoTGlzdFJlcXVlc3QaIi5ncnBjLmhlYWx0aC52MS5IZWFsdGhMaXN0UmVzcG9uc2USUgoFV2F0Y2gSIi5ncnBjLmhlYWx0aC52MS5IZWFsdGhDaGVja1JlcXVlc3QaIy5ncnBjLmhlYWx0aC52MS5IZWFsdGhDaGVja1Jlc3BvbnNlMAFCcAoRaW8uZ3JwYy5oZWFsdGgudjFCC0hlYWx0aFByb3RvUAFaLGdvb2dsZS5nb2xhbmcub3JnL2dycGMvaGVhbHRoL2dycGNfaGVhbHRoX3YxogIMR3JwY0hlYWx0aFYxqgIOR3JwYy5IZWFsdGguVjFiBnByb3RvMw");var HealthCheckResponse_ServingStatus;(function(HealthCheckResponse_ServingStatus2){HealthCheckResponse_ServingStatus2[HealthCheckResponse_ServingStatus2.UNKNOWN=0]="UNKNOWN",HealthCheckResponse_ServingStatus2[HealthCheckResponse_ServingStatus2.SERVING=1]="SERVING",HealthCheckResponse_ServingStatus2[HealthCheckResponse_ServingStatus2.NOT_SERVING=2]="NOT_SERVING",HealthCheckResponse_ServingStatus2[HealthCheckResponse_ServingStatus2.SERVICE_UNKNOWN=3]="SERVICE_UNKNOWN"})(HealthCheckResponse_ServingStatus||(HealthCheckResponse_ServingStatus={}));var Health=serviceDesc(file_grpc_health_v1_health,0);function validateTrailer(trailer,header){let err=findTrailerError(trailer);if(err)throw header.forEach((value,key)=>{err.metadata.append(key,value)}),err;if(!header.has(headerGrpcStatus)&&!trailer.has(headerGrpcStatus))throw new ConnectError("protocol error: missing status",Code.Internal)}function requestHeader(useBinaryFormat,timeoutMs,userProvidedHeaders,setUserAgent){var _a,_b;let result=new Headers(userProvidedHeaders??{});result.set(headerContentType,useBinaryFormat?contentTypeProto:contentTypeJson),result.set(headerXGrpcWeb,"1");let userAgent=(_b=(_a=result.get(headerUserAgent))!==null&&_a!==void 0?_a:result.get(headerXUserAgent))!==null&&_b!==void 0?_b:"connect-es/2.1.1";return result.set(headerXUserAgent,userAgent),setUserAgent&&result.set(headerUserAgent,userAgent),timeoutMs!==void 0&&result.set(headerTimeout,`${timeoutMs}m`),result}function requestHeaderWithCompression(useBinaryFormat,timeoutMs,userProvidedHeaders,acceptCompression,sendCompression,setUserAgent){let result=requestHeader(useBinaryFormat,timeoutMs,userProvidedHeaders,setUserAgent);return sendCompression!=null&&result.set(headerEncoding,sendCompression.name),acceptCompression.length>0&&result.set(headerAcceptEncoding,acceptCompression.map(c=>c.name).join(",")),result}function codeFromHttpStatus(httpStatus){switch(httpStatus){case 400:return Code.Internal;case 401:return Code.Unauthenticated;case 403:return Code.PermissionDenied;case 404:return Code.Unimplemented;case 429:return Code.Unavailable;case 502:return Code.Unavailable;case 503:return Code.Unavailable;case 504:return Code.Unavailable;default:return Code.Unknown}}function validateResponse(status,headers){var _a;if(status>=200&&status<300)return{foundStatus:headers.has(headerGrpcStatus),headerError:findTrailerError(headers)};throw new ConnectError(decodeURIComponent((_a=headers.get(headerGrpcMessage))!==null&&_a!==void 0?_a:`HTTP ${status}`),codeFromHttpStatus(status),headers)}function validateResponseWithCompression(acceptCompression,status,headers){let{foundStatus,headerError}=validateResponse(status,headers),compression,encoding=headers.get(headerEncoding);if(encoding!==null&&encoding.toLowerCase()!=="identity"&&(compression=acceptCompression.find(c=>c.name===encoding),!compression))throw new ConnectError(`unsupported response encoding "${encoding}"`,Code.Internal,headers);return{foundStatus,compression,headerError}}var __asyncValues3=function(o){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var m=o[Symbol.asyncIterator],i;return m?m.call(o):(o=typeof __values=="function"?__values(o):o[Symbol.iterator](),i={},verb("next"),verb("throw"),verb("return"),i[Symbol.asyncIterator]=function(){return this},i);function verb(n){i[n]=o[n]&&function(v){return new Promise(function(resolve,reject){v=o[n](v),settle(resolve,reject,v.done,v.value)})}}function settle(resolve,reject,d,v){Promise.resolve(v).then(function(v2){resolve({value:v2,done:d})},reject)}},__await3=function(v){return this instanceof __await3?(this.v=v,this):new __await3(v)},__asyncGenerator3=function(thisArg,_arguments,generator){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var g=generator.apply(thisArg,_arguments||[]),i,q=[];return i=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),verb("next"),verb("throw"),verb("return",awaitReturn),i[Symbol.asyncIterator]=function(){return this},i;function awaitReturn(f){return function(v){return Promise.resolve(v).then(f,reject)}}function verb(n,f){g[n]&&(i[n]=function(v){return new Promise(function(a,b){q.push([n,v,a,b])>1||resume(n,v)})},f&&(i[n]=f(i[n])))}function resume(n,v){try{step(g[n](v))}catch(e){settle(q[0][3],e)}}function step(r){r.value instanceof __await3?Promise.resolve(r.value.v).then(fulfill,reject):settle(q[0][2],r)}function fulfill(value){resume("next",value)}function reject(value){resume("throw",value)}function settle(f,v){f(v),q.shift(),q.length&&resume(q[0][0],q[0][1])}};function createTransport(opt){return{async unary(method,signal,timeoutMs,header,message,contextValues){let serialization=createMethodSerializationLookup(method,opt.binaryOptions,opt.jsonOptions,opt);return timeoutMs=timeoutMs===void 0?opt.defaultTimeoutMs:timeoutMs<=0?void 0:timeoutMs,await runUnaryCall({interceptors:opt.interceptors,signal,timeoutMs,req:{stream:!1,service:method.parent,method,requestMethod:"POST",url:createMethodUrl(opt.baseUrl,method),header:requestHeaderWithCompression(opt.useBinaryFormat,timeoutMs,header,opt.acceptCompression,opt.sendCompression,!0),contextValues:contextValues??createContextValues(),message},next:async req=>{let uRes=await opt.httpClient({url:req.url,method:req.requestMethod,header:req.header,signal:req.signal,body:pipe2(createAsyncIterable([req.message]),transformSerializeEnvelope(serialization.getI(opt.useBinaryFormat)),transformCompressEnvelope(opt.sendCompression,opt.compressMinBytes),transformJoinEnvelopes(),{propagateDownStreamError:!0})}),{compression,headerError}=validateResponseWithCompression(opt.acceptCompression,uRes.status,uRes.header),{trailer,message:message2}=await pipeTo(uRes.body,transformSplitEnvelope(opt.readMaxBytes),transformDecompressEnvelope(compression??null,opt.readMaxBytes),transformParseEnvelope(serialization.getO(opt.useBinaryFormat),128,createTrailerSerialization()),async iterable=>{var _a,e_1,_b,_c;let message3,trailer2;try{for(var _d=!0,iterable_1=__asyncValues3(iterable),iterable_1_1;iterable_1_1=await iterable_1.next(),_a=iterable_1_1.done,!_a;_d=!0){_c=iterable_1_1.value,_d=!1;let env=_c;if(env.end){if(trailer2!==void 0)throw new ConnectError("protocol error: received extra trailer",Code.Unimplemented);trailer2=env.value}else{if(message3!==void 0)throw new ConnectError("protocol error: received extra output message for unary method",Code.Unimplemented);message3=env.value}}}catch(e_1_1){e_1={error:e_1_1}}finally{try{!_d&&!_a&&(_b=iterable_1.return)&&await _b.call(iterable_1)}finally{if(e_1)throw e_1.error}}return{trailer:trailer2,message:message3}},{propagateDownStreamError:!1});if(trailer===void 0)throw headerError??new ConnectError("protocol error: missing trailer",uRes.header.has(headerGrpcStatus)?Code.Unimplemented:Code.Unknown);if(validateTrailer(trailer,uRes.header),message2===void 0)throw new ConnectError("protocol error: missing output message for unary method",trailer.has(headerGrpcStatus)?Code.Unimplemented:Code.Unknown);return{stream:!1,service:method.parent,method,header:uRes.header,message:message2,trailer}}})},async stream(method,signal,timeoutMs,header,input,contextValues){let serialization=createMethodSerializationLookup(method,opt.binaryOptions,opt.jsonOptions,opt);return timeoutMs=timeoutMs===void 0?opt.defaultTimeoutMs:timeoutMs<=0?void 0:timeoutMs,runStreamingCall({interceptors:opt.interceptors,signal,timeoutMs,req:{stream:!0,service:method.parent,method,requestMethod:"POST",url:createMethodUrl(opt.baseUrl,method),header:requestHeaderWithCompression(opt.useBinaryFormat,timeoutMs,header,opt.acceptCompression,opt.sendCompression,!0),contextValues:contextValues??createContextValues(),message:input},next:async req=>{let uRes=await opt.httpClient({url:req.url,method:req.requestMethod,header:req.header,signal:req.signal,body:pipe2(req.message,transformSerializeEnvelope(serialization.getI(opt.useBinaryFormat)),transformCompressEnvelope(opt.sendCompression,opt.compressMinBytes),transformJoinEnvelopes(),{propagateDownStreamError:!0})}),{compression,foundStatus,headerError}=validateResponseWithCompression(opt.acceptCompression,uRes.status,uRes.header);if(headerError)throw headerError;let res=Object.assign(Object.assign({},req),{header:uRes.header,trailer:new Headers,message:pipe2(uRes.body,transformSplitEnvelope(opt.readMaxBytes),transformDecompressEnvelope(compression??null,opt.readMaxBytes),transformParseEnvelope(serialization.getO(opt.useBinaryFormat),128,createTrailerSerialization()),function(iterable){return __asyncGenerator3(this,arguments,function*(){var _a,e_2,_b,_c;if(foundStatus){if((yield __await3(iterable[Symbol.asyncIterator]().next())).done!==!0)throw new ConnectError("protocol error: extra data for trailers-only",Code.InvalidArgument);return yield __await3(void 0)}let trailerReceived=!1;try{for(var _d=!0,iterable_2=__asyncValues3(iterable),iterable_2_1;iterable_2_1=yield __await3(iterable_2.next()),_a=iterable_2_1.done,!_a;_d=!0){_c=iterable_2_1.value,_d=!1;let chunk=_c;if(chunk.end){if(trailerReceived)throw new ConnectError("protocol error: received extra trailer",Code.InvalidArgument);trailerReceived=!0,validateTrailer(chunk.value,uRes.header),chunk.value.forEach((value,key)=>res.trailer.set(key,value));continue}if(trailerReceived)throw new ConnectError("protocol error: received extra message after trailer",Code.InvalidArgument);yield yield __await3(chunk.value)}}catch(e_2_1){e_2={error:e_2_1}}finally{try{!_d&&!_a&&(_b=iterable_2.return)&&(yield __await3(_b.call(iterable_2)))}finally{if(e_2)throw e_2.error}}if(!trailerReceived)throw new ConnectError("protocol error: missing trailer",Code.Internal)})},{propagateDownStreamError:!0})});return res}})}}}function requestHeader2(useBinaryFormat,timeoutMs,userProvidedHeaders){let result=new Headers(userProvidedHeaders??{});return result.set(headerContentType,useBinaryFormat?contentTypeProto2:contentTypeJson2),result.has(headerUserAgent)||result.set(headerUserAgent,"connect-es/2.1.1"),timeoutMs!==void 0&&result.set(headerTimeout,`${timeoutMs}m`),result.set("Te","trailers"),result}function requestHeaderWithCompression2(useBinaryFormat,timeoutMs,userProvidedHeaders,acceptCompression,sendCompression){let result=requestHeader2(useBinaryFormat,timeoutMs,userProvidedHeaders);return sendCompression!=null&&result.set(headerEncoding,sendCompression.name),acceptCompression.length>0&&result.set(headerAcceptEncoding,acceptCompression.map(c=>c.name).join(",")),result}function validateResponse2(status,headers){if(status!=200)throw new ConnectError(`HTTP ${status}`,codeFromHttpStatus(status),headers);let mimeType=headers.get(headerContentType);if(parseContentType(mimeType)==null)throw new ConnectError(`unsupported content type ${mimeType}`,Code.Unknown);return{foundStatus:headers.has(headerGrpcStatus),headerError:findTrailerError(headers)}}function validateResponseWithCompression2(acceptCompression,status,headers){let{foundStatus,headerError}=validateResponse2(status,headers),compression,encoding=headers.get(headerEncoding);if(encoding!==null&&encoding.toLowerCase()!=="identity"&&(compression=acceptCompression.find(c=>c.name===encoding),!compression))throw new ConnectError(`unsupported response encoding "${encoding}"`,Code.Internal,headers);return{foundStatus,compression,headerError}}var __asyncValues4=function(o){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var m=o[Symbol.asyncIterator],i;return m?m.call(o):(o=typeof __values=="function"?__values(o):o[Symbol.iterator](),i={},verb("next"),verb("throw"),verb("return"),i[Symbol.asyncIterator]=function(){return this},i);function verb(n){i[n]=o[n]&&function(v){return new Promise(function(resolve,reject){v=o[n](v),settle(resolve,reject,v.done,v.value)})}}function settle(resolve,reject,d,v){Promise.resolve(v).then(function(v2){resolve({value:v2,done:d})},reject)}},__await4=function(v){return this instanceof __await4?(this.v=v,this):new __await4(v)},__asyncDelegator3=function(o){var i,p;return i={},verb("next"),verb("throw",function(e){throw e}),verb("return"),i[Symbol.iterator]=function(){return this},i;function verb(n,f){i[n]=o[n]?function(v){return(p=!p)?{value:__await4(o[n](v)),done:!1}:f?f(v):v}:f}},__asyncGenerator4=function(thisArg,_arguments,generator){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var g=generator.apply(thisArg,_arguments||[]),i,q=[];return i=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),verb("next"),verb("throw"),verb("return",awaitReturn),i[Symbol.asyncIterator]=function(){return this},i;function awaitReturn(f){return function(v){return Promise.resolve(v).then(f,reject)}}function verb(n,f){g[n]&&(i[n]=function(v){return new Promise(function(a,b){q.push([n,v,a,b])>1||resume(n,v)})},f&&(i[n]=f(i[n])))}function resume(n,v){try{step(g[n](v))}catch(e){settle(q[0][3],e)}}function step(r){r.value instanceof __await4?Promise.resolve(r.value.v).then(fulfill,reject):settle(q[0][2],r)}function fulfill(value){resume("next",value)}function reject(value){resume("throw",value)}function settle(f,v){f(v),q.shift(),q.length&&resume(q[0][0],q[0][1])}};function createTransport2(opt){return{async unary(method,signal,timeoutMs,header,message,contextValues){let serialization=createMethodSerializationLookup(method,opt.binaryOptions,opt.jsonOptions,opt);return timeoutMs=timeoutMs===void 0?opt.defaultTimeoutMs:timeoutMs<=0?void 0:timeoutMs,await runUnaryCall({interceptors:opt.interceptors,signal,timeoutMs,req:{stream:!1,service:method.parent,method,requestMethod:"POST",url:createMethodUrl(opt.baseUrl,method),header:requestHeaderWithCompression2(opt.useBinaryFormat,timeoutMs,header,opt.acceptCompression,opt.sendCompression),contextValues:contextValues??createContextValues(),message},next:async req=>{let uRes=await opt.httpClient({url:req.url,method:"POST",header:req.header,signal:req.signal,body:pipe2(createAsyncIterable([req.message]),transformSerializeEnvelope(serialization.getI(opt.useBinaryFormat)),transformCompressEnvelope(opt.sendCompression,opt.compressMinBytes),transformJoinEnvelopes(),{propagateDownStreamError:!0})}),{compression,headerError}=validateResponseWithCompression2(opt.acceptCompression,uRes.status,uRes.header),message2=await pipeTo(uRes.body,transformSplitEnvelope(opt.readMaxBytes),transformDecompressEnvelope(compression??null,opt.readMaxBytes),transformParseEnvelope(serialization.getO(opt.useBinaryFormat)),async iterable=>{var _a,e_1,_b,_c;let message3;try{for(var _d=!0,iterable_1=__asyncValues4(iterable),iterable_1_1;iterable_1_1=await iterable_1.next(),_a=iterable_1_1.done,!_a;_d=!0){_c=iterable_1_1.value,_d=!1;let chunk=_c;if(message3!==void 0)throw new ConnectError("protocol error: received extra output message for unary method",Code.Unimplemented);message3=chunk}}catch(e_1_1){e_1={error:e_1_1}}finally{try{!_d&&!_a&&(_b=iterable_1.return)&&await _b.call(iterable_1)}finally{if(e_1)throw e_1.error}}return message3},{propagateDownStreamError:!1});if(validateTrailer(uRes.trailer,uRes.header),message2===void 0)throw headerError||new ConnectError("protocol error: missing output message for unary method",uRes.trailer.has(headerGrpcStatus)?Code.Unimplemented:Code.Unknown);if(headerError)throw new ConnectError("protocol error: received output message for unary method with error status",Code.Unknown);return{stream:!1,service:method.parent,method,header:uRes.header,message:message2,trailer:uRes.trailer}}})},async stream(method,signal,timeoutMs,header,input,contextValues){let serialization=createMethodSerializationLookup(method,opt.binaryOptions,opt.jsonOptions,opt);return timeoutMs=timeoutMs===void 0?opt.defaultTimeoutMs:timeoutMs<=0?void 0:timeoutMs,runStreamingCall({interceptors:opt.interceptors,signal,timeoutMs,req:{stream:!0,service:method.parent,method,requestMethod:"POST",url:createMethodUrl(opt.baseUrl,method),header:requestHeaderWithCompression2(opt.useBinaryFormat,timeoutMs,header,opt.acceptCompression,opt.sendCompression),contextValues:contextValues??createContextValues(),message:input},next:async req=>{let uRes=await opt.httpClient({url:req.url,method:"POST",header:req.header,signal:req.signal,body:pipe2(req.message,transformSerializeEnvelope(serialization.getI(opt.useBinaryFormat)),transformCompressEnvelope(opt.sendCompression,opt.compressMinBytes),transformJoinEnvelopes(),{propagateDownStreamError:!0})}),{compression,foundStatus,headerError}=validateResponseWithCompression2(opt.acceptCompression,uRes.status,uRes.header);if(headerError)throw headerError;return Object.assign(Object.assign({},req),{header:uRes.header,trailer:uRes.trailer,message:pipe2(uRes.body,transformSplitEnvelope(opt.readMaxBytes),transformDecompressEnvelope(compression??null,opt.readMaxBytes),transformParseEnvelope(serialization.getO(opt.useBinaryFormat)),function(iterable){return __asyncGenerator4(this,arguments,function*(){yield __await4(yield*__asyncDelegator3(__asyncValues4(iterable))),foundStatus||validateTrailer(uRes.trailer,uRes.header)})},{propagateDownStreamError:!0})})}})}}}import*as zlib from"node:zlib";import{promisify}from"node:util";function connectErrorFromNodeReason(reason){let code=Code.Internal,chain=unwrapNodeErrorChain(reason).map(getNodeErrorProps);chain.some(p=>p.code=="ERR_STREAM_WRITE_AFTER_END")?code=Code.Aborted:chain.some(p=>p.code=="ERR_STREAM_DESTROYED"||p.code=="ERR_HTTP2_INVALID_STREAM"||p.code=="ECONNRESET")?code=Code.Aborted:chain.some(p=>p.code=="ETIMEDOUT"||p.code=="ENOTFOUND"||p.code=="EAI_AGAIN"||p.code=="ECONNREFUSED")&&(code=Code.Unavailable);let ce=ConnectError.from(reason,code);return ce!==reason&&(ce.cause=reason),ce}function unwrapNodeErrorChain(reason){let chain=[];for(;!(!(reason instanceof Error)||chain.includes(reason)||(chain.push(reason),!("cause"in reason)));)reason=reason.cause;return chain}function getNodeErrorProps(reason){let props={};return reason instanceof Error&&("code"in reason&&typeof reason.code=="string"&&(props.code=reason.code),"syscall"in reason&&typeof reason.syscall=="string"&&(props.syscall=reason.syscall)),props}function connectErrorFromH2ResetCode(rstCode){switch(rstCode){case H2Code.PROTOCOL_ERROR:case H2Code.INTERNAL_ERROR:case H2Code.FLOW_CONTROL_ERROR:case H2Code.SETTINGS_TIMEOUT:case H2Code.FRAME_SIZE_ERROR:case H2Code.COMPRESSION_ERROR:case H2Code.CONNECT_ERROR:return new ConnectError(`http/2 stream closed with error code ${H2Code[rstCode]} (0x${rstCode.toString(16)})`,Code.Internal);case H2Code.REFUSED_STREAM:return new ConnectError(`http/2 stream closed with error code ${H2Code[rstCode]} (0x${rstCode.toString(16)})`,Code.Unavailable);case H2Code.CANCEL:return new ConnectError(`http/2 stream closed with error code ${H2Code[rstCode]} (0x${rstCode.toString(16)})`,Code.Canceled);case H2Code.ENHANCE_YOUR_CALM:return new ConnectError(`http/2 stream closed with error code ${H2Code[rstCode]} (0x${rstCode.toString(16)})`,Code.ResourceExhausted);case H2Code.INADEQUATE_SECURITY:return new ConnectError(`http/2 stream closed with error code ${H2Code[rstCode]} (0x${rstCode.toString(16)})`,Code.PermissionDenied);case H2Code.HTTP_1_1_REQUIRED:return new ConnectError(`http/2 stream closed with error code ${H2Code[rstCode]} (0x${rstCode.toString(16)})`,Code.PermissionDenied);default:break}}var H2Code;(function(H2Code2){H2Code2[H2Code2.PROTOCOL_ERROR=1]="PROTOCOL_ERROR",H2Code2[H2Code2.INTERNAL_ERROR=2]="INTERNAL_ERROR",H2Code2[H2Code2.FLOW_CONTROL_ERROR=3]="FLOW_CONTROL_ERROR",H2Code2[H2Code2.SETTINGS_TIMEOUT=4]="SETTINGS_TIMEOUT",H2Code2[H2Code2.STREAM_CLOSED=5]="STREAM_CLOSED",H2Code2[H2Code2.FRAME_SIZE_ERROR=6]="FRAME_SIZE_ERROR",H2Code2[H2Code2.REFUSED_STREAM=7]="REFUSED_STREAM",H2Code2[H2Code2.CANCEL=8]="CANCEL",H2Code2[H2Code2.COMPRESSION_ERROR=9]="COMPRESSION_ERROR",H2Code2[H2Code2.CONNECT_ERROR=10]="CONNECT_ERROR",H2Code2[H2Code2.ENHANCE_YOUR_CALM=11]="ENHANCE_YOUR_CALM",H2Code2[H2Code2.INADEQUATE_SECURITY=12]="INADEQUATE_SECURITY",H2Code2[H2Code2.HTTP_1_1_REQUIRED=13]="HTTP_1_1_REQUIRED"})(H2Code||(H2Code={}));var gzip2=promisify(zlib.gzip),gunzip2=promisify(zlib.gunzip),brotliCompress2=promisify(zlib.brotliCompress),brotliDecompress2=promisify(zlib.brotliDecompress),compressionGzip={name:"gzip",compress(bytes){return asUint8ArrayArrayBuffer(gzip2(bytes,{}))},decompress(bytes,readMaxBytes){return bytes.length==0?Promise.resolve(new Uint8Array(0)):asUint8ArrayArrayBuffer(wrapZLibErrors(gunzip2(bytes,{maxOutputLength:readMaxBytes}),readMaxBytes))}},compressionBrotli={name:"br",compress(bytes){return asUint8ArrayArrayBuffer(brotliCompress2(bytes,{}))},decompress(bytes,readMaxBytes){return bytes.length==0?Promise.resolve(new Uint8Array(0)):asUint8ArrayArrayBuffer(wrapZLibErrors(brotliDecompress2(bytes,{maxOutputLength:readMaxBytes}),readMaxBytes))}};function asUint8ArrayArrayBuffer(bytes){return bytes.then(b=>b.buffer instanceof ArrayBuffer?b:new Uint8Array(b))}function wrapZLibErrors(promise,readMaxBytes){return promise.catch(e=>{var _a;let props=getNodeErrorProps(e),code=Code.Internal,message="decompression failed";switch(props.code){case"ERR_BUFFER_TOO_LARGE":code=Code.ResourceExhausted,message=`message is larger than configured readMaxBytes ${readMaxBytes} after decompression`;break;case"Z_DATA_ERROR":case"ERR_PADDING_2":code=Code.InvalidArgument;break;default:!((_a=props.code)===null||_a===void 0)&&_a.startsWith("ERR__ERROR_FORMAT_")&&(code=Code.InvalidArgument);break}return Promise.reject(new ConnectError(message,code,void 0,void 0,e))})}import*as http from"node:http";import*as https from"node:https";function nodeHeaderToWebHeader(nodeHeaders){let header=new Headers;for(let[k,v]of Object.entries(nodeHeaders))if(!k.startsWith(":")&&v!==void 0)if(typeof v=="string")header.append(k,v);else if(typeof v=="number")header.append(k,String(v));else for(let e of v)header.append(k,e);return header}function webHeaderToNodeHeaders(headersInit,defaultNodeHeaders){if(headersInit===void 0&&defaultNodeHeaders===void 0)return;let o=Object.create(null);if(defaultNodeHeaders!==void 0)if(Array.isArray(defaultNodeHeaders))for(let i=0;i+1<defaultNodeHeaders.length;i+=2){let key=defaultNodeHeaders[i],value=defaultNodeHeaders[i+1];Array.isArray(o[key])?o[key].push(value):typeof o[key]=="string"?o[key]=[o[key],value]:o[key]=value}else for(let[key,value]of Object.entries(defaultNodeHeaders))Array.isArray(value)?o[key]=value.concat():value!==void 0&&(o[key]=value);if(headersInit!==void 0)if(Array.isArray(headersInit))for(let[key,value]of headersInit)appendWebHeader(o,key,value);else if("forEach"in headersInit)typeof headersInit.forEach=="function"&&headersInit.forEach((value,key)=>{appendWebHeader(o,key,value)});else for(let[key,value]of Object.entries(headersInit))appendWebHeader(o,key,value);return o}function appendWebHeader(o,key,value){key=key.toLowerCase();let existing=o[key];Array.isArray(existing)?existing.push(value):existing===void 0?o[key]=value:o[key]=[existing.toString(),value]}import*as http2 from"node:http2";var Http2SessionManager=class{state(){return this.s.t=="ready"?this.verifying!==void 0?"verifying":this.s.streamCount()>0?"open":"idle":this.s.t}error(){if(this.s.t=="error")return this.s.reason}constructor(url,pingOptions,http2SessionOptions){var _a,_b,_c,_d;this.s=closed(),this.shuttingDown=[],this.authority=new URL(url).origin,this.http2SessionOptions=http2SessionOptions,this.options={pingIntervalMs:(_a=pingOptions?.pingIntervalMs)!==null&&_a!==void 0?_a:Number.POSITIVE_INFINITY,pingTimeoutMs:(_b=pingOptions?.pingTimeoutMs)!==null&&_b!==void 0?_b:1e3*15,pingIdleConnection:(_c=pingOptions?.pingIdleConnection)!==null&&_c!==void 0?_c:!1,idleConnectionTimeoutMs:(_d=pingOptions?.idleConnectionTimeoutMs)!==null&&_d!==void 0?_d:1e3*60*15}}async connect(){try{return(await this.gotoReady()).streamCount()>0?"open":"idle"}catch{return"error"}}async request(method,path,headers,options){for(;;){let ready2=await this.gotoReady();try{let stream=ready2.conn.request(Object.assign(Object.assign({},headers),{":method":method,":path":path}),options);return ready2.registerRequest(stream),stream}catch(e){if(ready2.conn.closed||ready2.conn.destroyed)continue;throw e}}}notifyResponseByteRead(stream){this.s.t=="ready"&&this.s.responseByteRead(stream);for(let s of this.shuttingDown)s.responseByteRead(stream)}abort(reason){var _a,_b,_c;let err=reason??new ConnectError("connection aborted",Code.Canceled);(_b=(_a=this.s).abort)===null||_b===void 0||_b.call(_a,err);for(let s of this.shuttingDown)(_c=s.abort)===null||_c===void 0||_c.call(s,err);this.setState(closedOrError(err))}async gotoReady(){for(this.s.t=="ready"?this.s.isShuttingDown()||this.s.conn.closed||this.s.conn.destroyed?this.setState(connect2(this.authority,this.http2SessionOptions)):this.s.requiresVerify()&&await this.verify(this.s):(this.s.t=="closed"||this.s.t=="error")&&this.setState(connect2(this.authority,this.http2SessionOptions));this.s.t!=="ready";){if(this.s.t==="error")throw this.s.reason;this.s.t==="connecting"&&await this.s.conn}return this.s}setState(state){var _a,_b;if((_b=(_a=this.s).onExitState)===null||_b===void 0||_b.call(_a),this.s.t=="ready"&&this.s.isShuttingDown()){let sd=this.s;this.shuttingDown.push(sd),sd.onClose=sd.onError=()=>{let i=this.shuttingDown.indexOf(sd);i!==-1&&this.shuttingDown.splice(i,1)}}switch(state.t){case"connecting":state.conn.then(value=>{this.setState(ready(value,this.options))},reason=>{this.setState(closedOrError(reason))});break;case"ready":state.onClose=()=>this.setState(closed()),state.onError=err=>this.setState(closedOrError(err));break;case"closed":break;case"error":break}this.s=state}verify(stateReady){return this.verifying!==void 0?this.verifying:(this.verifying=stateReady.verify().then(success=>{success||this.setState(connect2(this.authority,this.http2SessionOptions))},reason=>{this.setState(closedOrError(reason))}).finally(()=>{this.verifying=void 0}),this.verifying)}};function closed(){return{t:"closed"}}function error2(reason){return{t:"error",reason}}function closedOrError(reason){return reason instanceof ConnectError&&ConnectError.from(reason).code==Code.Canceled?closed():error2(reason)}function connect2(authority,http2SessionOptions){let resolve,reject,conn=new Promise((res,rej)=>{resolve=res,reject=rej}),newConn=http2.connect(authority,http2SessionOptions);newConn.on("connect",onConnect),newConn.on("error",onError);function onConnect(){resolve?.(newConn),cleanup()}function onError(err){reject?.(connectErrorFromNodeReason(err)),cleanup()}function cleanup(){newConn.off("connect",onConnect),newConn.off("error",onError)}return{t:"connecting",conn,abort(reason){newConn.destroyed||newConn.destroy(void 0,http2.constants.NGHTTP2_CANCEL),reject?.(reason)},onExitState(){cleanup()}}}function ready(conn,options){assertSessionOpen(conn),conn.unref();let lastAliveAt=Date.now(),streamCount=0,pingIntervalId,pingTimeoutId,receivedGoAway=!1,receivedGoAwayEnhanceYourCalmTooManyPings=!1,idleTimeoutId;resetIdleTimeout();let state={t:"ready",conn,streamCount(){return streamCount},requiresVerify(){return Date.now()-lastAliveAt>options.pingIntervalMs},isShuttingDown(){return receivedGoAway},onClose:void 0,onError:void 0,registerRequest(stream){streamCount++,streamCount==1&&(conn.ref(),resetPingInterval(),stopIdleTimeout()),stream.once("response",()=>{lastAliveAt=Date.now(),resetPingInterval()}),stream.once("close",()=>{streamCount--,streamCount==0&&(conn.unref(),resetPingInterval(),resetIdleTimeout())})},responseByteRead(stream){stream.session===conn&&(conn.closed||conn.destroyed||streamCount<=0||(lastAliveAt=Date.now(),resetPingInterval()))},verify(){return conn.ref(),new Promise(resolve=>{let onError2=()=>{resolve(!1)};commonPing(()=>{streamCount==0&&conn.unref(),conn.off("error",onError2),resolve(!0)}),conn.once("error",onError2)})},abort(reason){conn.destroyed||(conn.once("error",()=>{}),conn.destroy(reason,http2.constants.NGHTTP2_CANCEL))},onExitState(){state.isShuttingDown()||(cleanup(),this.onError=void 0,this.onClose=void 0)}};function resetPingInterval(){stopPingInterval(),(streamCount>0||options.pingIdleConnection)&&(pingIntervalId=safeSetTimeout(onPingInterval,options.pingIntervalMs))}function stopPingInterval(){clearTimeout(pingIntervalId),clearTimeout(pingTimeoutId)}function onPingInterval(){commonPing(resetPingInterval)}function commonPing(onSuccess){clearTimeout(pingTimeoutId),pingTimeoutId=safeSetTimeout(()=>{conn.destroy(new ConnectError("PING timed out",Code.Unavailable),http2.constants.NGHTTP2_CANCEL)},options.pingTimeoutMs),conn.ping((err,duration3)=>{if(clearTimeout(pingTimeoutId),err===null){if(duration3>options.pingTimeoutMs){conn.destroy(new ConnectError("PING timed out",Code.Unavailable),http2.constants.NGHTTP2_CANCEL);return}lastAliveAt=Date.now(),onSuccess()}})}function stopIdleTimeout(){clearTimeout(idleTimeoutId)}function resetIdleTimeout(){idleTimeoutId=safeSetTimeout(onIdleTimeout,options.idleConnectionTimeoutMs)}function onIdleTimeout(){conn.close(),onClose()}function onGoaway(errorCode,lastStreamID,opaqueData){if(errorCode===http2.constants.NGHTTP2_NO_ERROR&&streamCount===0){conn.destroy(new ConnectError("received GOAWAY without any open streams",Code.Canceled),http2.constants.NGHTTP2_NO_ERROR);return}receivedGoAway=!0;let tooManyPingsAscii=Buffer.from("too_many_pings","ascii");opaqueData?.equals(tooManyPingsAscii)&&(options.pingIntervalMs=options.pingIntervalMs*2,receivedGoAwayEnhanceYourCalmTooManyPings=!0)}function onClose(){var _a;cleanup(),(_a=state.onClose)===null||_a===void 0||_a.call(state)}function onError(err){var _a,_b;if(cleanup(),receivedGoAwayEnhanceYourCalmTooManyPings){let ce=new ConnectError(`http/2 connection closed with error code ENHANCE_YOUR_CALM (0x${http2.constants.NGHTTP2_ENHANCE_YOUR_CALM.toString(16)}), too_many_pings, doubled the interval`,Code.ResourceExhausted);(_a=state.onError)===null||_a===void 0||_a.call(state,ce)}else(_b=state.onError)===null||_b===void 0||_b.call(state,connectErrorFromNodeReason(err))}function cleanup(){stopPingInterval(),stopIdleTimeout(),conn.off("error",onError),conn.off("close",onClose),conn.off("goaway",onGoaway)}return conn.on("error",onError),conn.on("close",onClose),conn.on("goaway",onGoaway),state}function safeSetTimeout(callback,ms){if(!(ms>2147483647))return setTimeout(callback,ms).unref()}function assertSessionOpen(conn){if(conn.connecting)throw new ConnectError("expected open session, but it is connecting",Code.Internal);if(conn.destroyed)throw new ConnectError("expected open session, but it is destroyed",Code.Internal);if(conn.closed)throw new ConnectError("expected open session, but it is closed",Code.Internal)}function createNodeHttpClient(options){var _a;if(options.httpVersion=="1.1")return createNodeHttp1Client(options.nodeOptions);let sessionProvider=(_a=options.sessionProvider)!==null&&_a!==void 0?_a:(url=>new Http2SessionManager(url));return createNodeHttp2Client(sessionProvider)}function createNodeHttp1Client(httpOptions){return async function(req){let sentinel=createSentinel(req.signal);return new Promise((resolve,reject)=>{sentinel.onError(e=>{reject(e)}),h1Request(sentinel,req.url,Object.assign(Object.assign({},httpOptions),{headers:webHeaderToNodeHeaders(req.header,httpOptions?.headers),method:req.method}),request4=>{sinkRequest(req,request4,sentinel),request4.on("response",response=>{var _a;response.on("error",sentinel.error),sentinel.onError(reason=>response.destroy(reason));let trailer=new Headers;resolve({status:(_a=response.statusCode)!==null&&_a!==void 0?_a:0,header:nodeHeaderToWebHeader(response.headers),body:h1ResponseIterable(sentinel,response,trailer),trailer})})})})}}function createNodeHttp2Client(sessionProvider){return function(req){let sentinel=createSentinel(req.signal),sessionManager=sessionProvider(req.url);return new Promise((resolve,reject)=>{sentinel.onError(e=>{reject(e)}),h2Request(sentinel,sessionManager,req.url,req.method,webHeaderToNodeHeaders(req.header),{},stream=>{sinkRequest(req,stream,sentinel),stream.on("response",headers=>{var _a;let response={status:(_a=headers[":status"])!==null&&_a!==void 0?_a:0,header:nodeHeaderToWebHeader(headers),body:h2ResponseIterable(sentinel,stream,sessionManager),trailer:h2ResponseTrailer(stream)};resolve(response)})})})}}function h1Request(sentinel,url,options,onRequest){let request3;new URL(url).protocol.startsWith("https")?request3=https.request(url,options):request3=http.request(url,options),sentinel.onError(reason=>request3.destroy(reason)),request3.flushHeaders(),request3.on("error",sentinel.error),request3.on("socket",function(socket){function onSocketConnect(){socket.off("connect",onSocketConnect),onRequest(request3)}socket.readyState==="open"?onRequest(request3):socket.on("connect",onSocketConnect)})}function h1ResponseIterable(sentinel,response,trailer){let inner=response[Symbol.asyncIterator]();return{[Symbol.asyncIterator](){return{async next(){let r=await sentinel.race(inner.next());return r.done===!0&&(nodeHeaderToWebHeader(response.trailers).forEach((value,key)=>{trailer.set(key,value)}),sentinel.close()),r},throw(e){throw sentinel.error(e),e}}}}}function h2Request(sentinel,sm,url,method,headers,options,onStream){let requestUrl=new URL(url);if(requestUrl.origin!==sm.authority){let message=`cannot make a request to ${requestUrl.origin}: the http2 session is connected to ${sm.authority}`;sentinel.error(new ConnectError(message,Code.Internal));return}sm.request(method,requestUrl.pathname+requestUrl.search,headers,{}).then(stream=>{sentinel.onError(reason=>{if(stream.closed)return;let rstCode=reason.code==Code.Canceled?H2Code.CANCEL:H2Code.INTERNAL_ERROR;return new Promise(resolve=>stream.close(rstCode,resolve))}),stream.on("error",function(e){stream.writableEnded&&unwrapNodeErrorChain(e).map(getNodeErrorProps).some(p=>p.code=="ERR_STREAM_WRITE_AFTER_END")||sentinel.error(e)}),stream.on("close",function(){let err=connectErrorFromH2ResetCode(stream.rstCode);err&&sentinel.error(err)}),onStream(stream)},reason=>{sentinel.error(reason)})}function h2ResponseTrailer(response){let trailer=new Headers;return response.on("trailers",args=>{nodeHeaderToWebHeader(args).forEach((value,key)=>{trailer.set(key,value)})}),trailer}function h2ResponseIterable(sentinel,response,sm){let inner=response[Symbol.asyncIterator]();return{[Symbol.asyncIterator](){return{async next(){let r=await sentinel.race(inner.next());return r.done===!0&&sentinel.close(),sm?.notifyResponseByteRead(response),r},throw(e){throw sentinel.error(e),e}}}}}async function sinkRequest(request3,nodeRequest,sentinel){if(request3.body===void 0){await new Promise(resolve=>nodeRequest.end(resolve));return}let it=request3.body[Symbol.asyncIterator]();return new Promise(resolve=>{writeNext();function writeNext(){sentinel.isClosed()||it.next().then(r=>{if(r.done===!0){nodeRequest.end(resolve);return}nodeRequest.write(r.value,"binary",e=>{if(e==null){writeNext();return}it.throw!==void 0&&it.throw(connectErrorFromNodeReason(e)).catch(()=>{}),!(nodeRequest.writableEnded&&unwrapNodeErrorChain(e).map(getNodeErrorProps).some(p=>p.code=="ERR_STREAM_WRITE_AFTER_END"))&&sentinel.error(e)})},e=>{sentinel.error(e)})}})}function createSentinel(signal){let rejectRace,closed2=!1,closedError,onErrorListeners=[],sentinel={error(error3){if(!closed2){closed2=!0,closedError=error3 instanceof ConnectError?error3:connectErrorFromNodeReason(error3),rejectRace?.(closedError);for(let onRejected of onErrorListeners)onRejected(closedError);cleanup()}},close(){closed2||(closed2=!0,rejectRace&&rejectRace(new ConnectError("sentinel completed early",Code.Internal)),cleanup())},isClosed(){return closed2},onError(onError){closed2?closedError!==void 0&&onError(closedError):onErrorListeners.push(onError)},race(promise){let resolveRace,race=new Promise((resolve,reject)=>{resolveRace=resolve,rejectRace=reject});return promise.then(value=>{resolveRace?.(value)},reason=>{rejectRace?.(reason)}),closed2&&rejectRace?.(closedError??new ConnectError("sentinel completed early",Code.Internal)),race}};function cleanup(){signal&&signal.removeEventListener("abort",onSignalAbort),onErrorListeners=[],rejectRace=void 0}function onSignalAbort(){sentinel.error(getAbortSignalReason(this))}return signal&&(signal.addEventListener("abort",onSignalAbort),signal.aborted&&sentinel.error(getAbortSignalReason(signal))),sentinel}function validateNodeTransportOptions(options){var _a,_b,_c,_d;let httpClient;if(options.httpVersion=="2"){let sessionManager;options.sessionManager?sessionManager=options.sessionManager:sessionManager=new Http2SessionManager(options.baseUrl,{pingIntervalMs:options.pingIntervalMs,pingIdleConnection:options.pingIdleConnection,pingTimeoutMs:options.pingTimeoutMs,idleConnectionTimeoutMs:options.idleConnectionTimeoutMs},options.nodeOptions),httpClient=createNodeHttpClient({httpVersion:"2",sessionProvider:()=>sessionManager})}else httpClient=createNodeHttpClient({httpVersion:"1.1",nodeOptions:options.nodeOptions});return Object.assign(Object.assign(Object.assign({},options),{httpClient,useBinaryFormat:(_a=options.useBinaryFormat)!==null&&_a!==void 0?_a:!0,interceptors:(_b=options.interceptors)!==null&&_b!==void 0?_b:[],sendCompression:(_c=options.sendCompression)!==null&&_c!==void 0?_c:null,acceptCompression:(_d=options.acceptCompression)!==null&&_d!==void 0?_d:[compressionGzip,compressionBrotli]}),validateReadWriteMaxBytes(options.readMaxBytes,options.writeMaxBytes,options.compressMinBytes))}function createGrpcWebTransport(options){return createTransport(validateNodeTransportOptions(options))}function createGrpcTransport(options){return createTransport2(validateNodeTransportOptions(Object.assign(Object.assign({},options),{httpVersion:"2"})))}var file_ai_stigmer_commons_apiresource_apiresourcekind_api_resource_group=fileDesc("CkdhaS9zdGlnbWVyL2NvbW1vbnMvYXBpcmVzb3VyY2UvYXBpcmVzb3VyY2VraW5kL2FwaV9yZXNvdXJjZV9ncm91cC5wcm90bxIuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLmFwaXJlc291cmNla2luZCI8ChRBcGlSZXNvdXJjZUdyb3VwTWV0YRIOCgZkb21haW4YASABKAkSFAoMZGlzcGxheV9uYW1lGAIgASgJKroBChBBcGlSZXNvdXJjZUdyb3VwEiIKHmFwaV9yZXNvdXJjZV9ncm91cF91bnNwZWNpZmllZBAAEi4KB2FnZW50aWMQARoh6r0sHQoSYWdlbnRpYy5zdGlnbWVyLmFpEgdBZ2VudGljEiIKA2lhbRACGhnqvSwVCg5pYW0uc3RpZ21lci5haRIDSUFNEi4KB3RlbmFuY3kQAxoh6r0sHQoSdGVuYW5jeS5zdGlnbWVyLmFpEgdUZW5hbmN5OogBCgpncm91cF9tZXRhEiEuZ29vZ2xlLnByb3RvYnVmLkVudW1WYWx1ZU9wdGlvbnMY3ccFIAEoCzJELmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5hcGlyZXNvdXJjZWtpbmQuQXBpUmVzb3VyY2VHcm91cE1ldGFSCWdyb3VwTWV0YWIGcHJvdG8z",[file_google_protobuf_descriptor]);var ApiResourceGroup;(function(ApiResourceGroup2){ApiResourceGroup2[ApiResourceGroup2.api_resource_group_unspecified=0]="api_resource_group_unspecified",ApiResourceGroup2[ApiResourceGroup2.agentic=1]="agentic",ApiResourceGroup2[ApiResourceGroup2.iam=2]="iam",ApiResourceGroup2[ApiResourceGroup2.tenancy=3]="tenancy"})(ApiResourceGroup||(ApiResourceGroup={}));var file_ai_stigmer_iam_v1_enum=fileDesc("ChxhaS9zdGlnbWVyL2lhbS92MS9lbnVtLnByb3RvEhFhaS5zdGlnbWVyLmlhbS52MSrSBwoNSWFtUGVybWlzc2lvbhIPCgt1bnNwZWNpZmllZBAAEgwKCGNhbl92aWV3EAESDAoIY2FuX2VkaXQQAhIOCgpjYW5fZGVsZXRlEAMSFAoQY2FuX2dyYW50X2FjY2VzcxAEEhMKD2Nhbl92aWV3X2FjY2VzcxAFEhQKEGNhbl9jcmVhdGVfYWdlbnQQBhIXChNjYW5fY3JlYXRlX3dvcmtmbG93EAcSFgoSY2FuX2NyZWF0ZV9zZXNzaW9uEAgSFAoQY2FuX2NyZWF0ZV9za2lsbBAJEhYKEmNhbl9jcmVhdGVfcHJvamVjdBAKEhIKDmNhbl9jcmVhdGVfaWRwEAsSGgoWY2FuX2NyZWF0ZV9lbnZpcm9ubWVudBAMEh8KG2Nhbl9jcmVhdGVfaWRlbnRpdHlfYWNjb3VudBAVEhgKFGNhbl9jcmVhdGVfb2F1dGhfYXBwEBcSHgoaY2FuX2NyZWF0ZV9wbGF0Zm9ybV9jbGllbnQQGBIbChdjYW5fY3JlYXRlX2V4ZWN1dGlvbl9pbhANEhcKE2Nhbl9jcmVhdGVfaW5zdGFuY2UQDhIPCgtjYW5fZXhlY3V0ZRAPEhQKEGNhbl9yZWFkX3NlY3JldHMQEBIVChFjYW5fYm9vdHN0cmFwX2lhbRAREiAKHGNhbl9tYW5hZ2VfaWRlbnRpdHlfYWNjb3VudHMQEhIYChRsb2dpbl90b19iYWNrX29mZmljZRAUEg8KC2Nhbl9jb25uZWN0EBYSFQoRY2FuX2NyZWF0ZV9ydW5uZXIQGRIaChJjYW5fZGVsZXRlX3Nlc3Npb24QGhoCCAESFAoQY2FuX3ZpZXdfYmlsbGluZxAbEhYKEmNhbl9tYW5hZ2VfYmlsbGluZxAcEhsKF2Nhbl9leGVjdXRlX2JpbGxpbmdfb3BzEB0SGgoWY2FuX2NyZWF0ZV9hZ2VudF9zaGFyZRAeEhoKFmNhbl9jcmVhdGVfY2hhbm5lbF9hcHAQHxIcChhjYW5fbWFuYWdlX21vZGVsX3ByaWNpbmcQIBIeChpjYW5fbWFuYWdlX2N1cnNvcl9hY2NvdW50cxAjEhMKD2Nhbl9wYXJ0aWNpcGF0ZRAkEh0KGWNhbl93cml0ZV9yZXNlcnZlZF9sYWJlbHMQJRIeChpjYW5fdmlld19wcm92aWRlcl9zdGFuZGluZxAmEh0KGWNhbl9zZXRfcHVibGljX3Zpc2liaWxpdHkQJyIECCEQISIECCIQIioPY2FuX3VzZV9yZWNvcmRzKhRjYW5fY3JlYXRlX2RhdGFzdG9yZSpiCgdJYW1Sb2xlEhgKFGlhbV9yb2xlX3Vuc3BlY2lmaWVkEAASCQoFb3duZXIQARIJCgVhZG1pbhACEgoKBm1lbWJlchADEgoKBnZpZXdlchAEEg8KC3BhcnRpY2lwYW50EAViBnByb3RvMw"),IamPermission;(function(IamPermission2){IamPermission2[IamPermission2.unspecified=0]="unspecified",IamPermission2[IamPermission2.can_view=1]="can_view",IamPermission2[IamPermission2.can_edit=2]="can_edit",IamPermission2[IamPermission2.can_delete=3]="can_delete",IamPermission2[IamPermission2.can_grant_access=4]="can_grant_access",IamPermission2[IamPermission2.can_view_access=5]="can_view_access",IamPermission2[IamPermission2.can_create_agent=6]="can_create_agent",IamPermission2[IamPermission2.can_create_workflow=7]="can_create_workflow",IamPermission2[IamPermission2.can_create_session=8]="can_create_session",IamPermission2[IamPermission2.can_create_skill=9]="can_create_skill",IamPermission2[IamPermission2.can_create_project=10]="can_create_project",IamPermission2[IamPermission2.can_create_idp=11]="can_create_idp",IamPermission2[IamPermission2.can_create_environment=12]="can_create_environment",IamPermission2[IamPermission2.can_create_identity_account=21]="can_create_identity_account",IamPermission2[IamPermission2.can_create_oauth_app=23]="can_create_oauth_app",IamPermission2[IamPermission2.can_create_platform_client=24]="can_create_platform_client",IamPermission2[IamPermission2.can_create_execution_in=13]="can_create_execution_in",IamPermission2[IamPermission2.can_create_instance=14]="can_create_instance",IamPermission2[IamPermission2.can_execute=15]="can_execute",IamPermission2[IamPermission2.can_read_secrets=16]="can_read_secrets",IamPermission2[IamPermission2.can_bootstrap_iam=17]="can_bootstrap_iam",IamPermission2[IamPermission2.can_manage_identity_accounts=18]="can_manage_identity_accounts",IamPermission2[IamPermission2.login_to_back_office=20]="login_to_back_office",IamPermission2[IamPermission2.can_connect=22]="can_connect",IamPermission2[IamPermission2.can_create_runner=25]="can_create_runner",IamPermission2[IamPermission2.can_delete_session=26]="can_delete_session",IamPermission2[IamPermission2.can_view_billing=27]="can_view_billing",IamPermission2[IamPermission2.can_manage_billing=28]="can_manage_billing",IamPermission2[IamPermission2.can_execute_billing_ops=29]="can_execute_billing_ops",IamPermission2[IamPermission2.can_create_agent_share=30]="can_create_agent_share",IamPermission2[IamPermission2.can_create_channel_app=31]="can_create_channel_app",IamPermission2[IamPermission2.can_manage_model_pricing=32]="can_manage_model_pricing",IamPermission2[IamPermission2.can_manage_cursor_accounts=35]="can_manage_cursor_accounts",IamPermission2[IamPermission2.can_participate=36]="can_participate",IamPermission2[IamPermission2.can_write_reserved_labels=37]="can_write_reserved_labels",IamPermission2[IamPermission2.can_view_provider_standing=38]="can_view_provider_standing",IamPermission2[IamPermission2.can_set_public_visibility=39]="can_set_public_visibility"})(IamPermission||(IamPermission={}));var IamRole;(function(IamRole2){IamRole2[IamRole2.iam_role_unspecified=0]="iam_role_unspecified",IamRole2[IamRole2.owner=1]="owner",IamRole2[IamRole2.admin=2]="admin",IamRole2[IamRole2.member=3]="member",IamRole2[IamRole2.viewer=4]="viewer",IamRole2[IamRole2.participant=5]="participant"})(IamRole||(IamRole={}));var file_ai_stigmer_commons_apiresource_apiresourcekind_authorization_config=fileDesc("CklhaS9zdGlnbWVyL2NvbW1vbnMvYXBpcmVzb3VyY2UvYXBpcmVzb3VyY2VraW5kL2F1dGhvcml6YXRpb25fY29uZmlnLnByb3RvEi5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuYXBpcmVzb3VyY2VraW5kIoABChBWaXNpYmlsaXR5Q29uZmlnEhcKD3N1cHBvcnRzX3B1YmxpYxgBIAEoCBIZChFzdXBwb3J0c19wbGF0Zm9ybRgCIAEoCBIUCgxzdXBwb3J0c19vcmcYAyABKAgSIgoaZGVmYXVsdHNfdG9fb3JnX3Zpc2liaWxpdHkYBCABKAgiSgoUUGFyZW50UmVsYXRpb25Db25maWcSDAoEa2luZBgBIAEoCRIQCghyZWxhdGlvbhgCIAEoCRISCgpzcGVjX2ZpZWxkGAMgASgJIq4EChNBdXRob3JpemF0aW9uQ29uZmlnEloKCnNjb3BlX3R5cGUYASABKA4yRi5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuYXBpcmVzb3VyY2VraW5kLkF1dGhvcml6YXRpb25TY29wZVR5cGUSWAoKb3duZXJfdHlwZRgCIAEoDjJELmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5hcGlyZXNvdXJjZWtpbmQuT3duZXJBdHRyaWJ1dGlvblR5cGUSVAoGcGFyZW50GAMgASgLMkQuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLmFwaXJlc291cmNla2luZC5QYXJlbnRSZWxhdGlvbkNvbmZpZxJgChJhZGRpdGlvbmFsX3BhcmVudHMYBCADKAsyRC5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuYXBpcmVzb3VyY2VraW5kLlBhcmVudFJlbGF0aW9uQ29uZmlnElQKCnZpc2liaWxpdHkYBSABKAsyQC5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuYXBpcmVzb3VyY2VraW5kLlZpc2liaWxpdHlDb25maWcSHgoWcmVxdWlyZXNfY3JlYXRvcl90dXBsZRgGIAEoCBIzCg9ncmFudGFibGVfcm9sZXMYByADKA4yGi5haS5zdGlnbWVyLmlhbS52MS5JYW1Sb2xlKoUCChZBdXRob3JpemF0aW9uU2NvcGVUeXBlEigKJEFVVEhPUklaQVRJT05fU0NPUEVfVFlQRV9VTlNQRUNJRklFRBAAEiUKIUFVVEhPUklaQVRJT05fU0NPUEVfVFlQRV9QTEFURk9STRABEikKJUFVVEhPUklaQVRJT05fU0NPUEVfVFlQRV9PUkdBTklaQVRJT04QAhIjCh9BVVRIT1JJWkFUSU9OX1NDT1BFX1RZUEVfUEFSRU5UEAMSJwojQVVUSE9SSVpBVElPTl9TQ09QRV9UWVBFX09XTkVSX09OTFkQBBIhCh1BVVRIT1JJWkFUSU9OX1NDT1BFX1RZUEVfTk9ORRAFKskBChRPd25lckF0dHJpYnV0aW9uVHlwZRImCiJPV05FUl9BVFRSSUJVVElPTl9UWVBFX1VOU1BFQ0lGSUVEEAASIQodT1dORVJfQVRUUklCVVRJT05fVFlQRV9ESVJFQ1QQARIkCiBPV05FUl9BVFRSSUJVVElPTl9UWVBFX0lOSEVSSVRFRBACEh8KG09XTkVSX0FUVFJJQlVUSU9OX1RZUEVfU0VMRhADEh8KG09XTkVSX0FUVFJJQlVUSU9OX1RZUEVfTk9ORRAEQhpCGEF1dGhvcml6YXRpb25Db25maWdQcm90b2IGcHJvdG8z",[file_ai_stigmer_iam_v1_enum]);var AuthorizationScopeType;(function(AuthorizationScopeType2){AuthorizationScopeType2[AuthorizationScopeType2.UNSPECIFIED=0]="UNSPECIFIED",AuthorizationScopeType2[AuthorizationScopeType2.PLATFORM=1]="PLATFORM",AuthorizationScopeType2[AuthorizationScopeType2.ORGANIZATION=2]="ORGANIZATION",AuthorizationScopeType2[AuthorizationScopeType2.PARENT=3]="PARENT",AuthorizationScopeType2[AuthorizationScopeType2.OWNER_ONLY=4]="OWNER_ONLY",AuthorizationScopeType2[AuthorizationScopeType2.NONE=5]="NONE"})(AuthorizationScopeType||(AuthorizationScopeType={}));var OwnerAttributionType;(function(OwnerAttributionType2){OwnerAttributionType2[OwnerAttributionType2.UNSPECIFIED=0]="UNSPECIFIED",OwnerAttributionType2[OwnerAttributionType2.DIRECT=1]="DIRECT",OwnerAttributionType2[OwnerAttributionType2.INHERITED=2]="INHERITED",OwnerAttributionType2[OwnerAttributionType2.SELF=3]="SELF",OwnerAttributionType2[OwnerAttributionType2.NONE=4]="NONE"})(OwnerAttributionType||(OwnerAttributionType={}));var file_ai_stigmer_commons_apiresource_apiresourcekind_api_resource_kind=fileDesc("CkZhaS9zdGlnbWVyL2NvbW1vbnMvYXBpcmVzb3VyY2UvYXBpcmVzb3VyY2VraW5kL2FwaV9yZXNvdXJjZV9raW5kLnByb3RvEi5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuYXBpcmVzb3VyY2VraW5kIswDChNBcGlSZXNvdXJjZUtpbmRNZXRhEk8KBWdyb3VwGAEgASgOMkAuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLmFwaXJlc291cmNla2luZC5BcGlSZXNvdXJjZUdyb3VwElMKB3ZlcnNpb24YAiABKA4yQi5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuYXBpcmVzb3VyY2VraW5kLkFwaVJlc291cmNlVmVyc2lvbhIMCgRuYW1lGAMgASgJEhQKDGRpc3BsYXlfbmFtZRgEIAEoCRIRCglpZF9wcmVmaXgYBSABKAkSFAoMaXNfdmVyc2lvbmVkGAYgASgIEhoKEm5vdF9zZWFyY2hfaW5kZXhlZBgHIAEoCBJKCgR0aWVyGAggASgOMjwuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLmFwaXJlc291cmNla2luZC5SZXNvdXJjZVRpZXISWgoNYXV0aG9yaXphdGlvbhgJIAEoCzJDLmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5hcGlyZXNvdXJjZWtpbmQuQXV0aG9yaXphdGlvbkNvbmZpZypCChJBcGlSZXNvdXJjZVZlcnNpb24SJAogYXBpX3Jlc291cmNlX3ZlcnNpb25fdW5zcGVjaWZpZWQQABIGCgJ2MRABKk4KDFJlc291cmNlVGllchIdChlyZXNvdXJjZV90aWVyX3Vuc3BlY2lmaWVkEAASDwoLb3Blbl9zb3VyY2UQARIOCgpjbG91ZF9vbmx5EAIqQQoPUGxhdGZvcm1JZFZhbHVlEiEKHXBsYXRmb3JtX2lkX3ZhbHVlX3Vuc3BlY2lmaWVkEAASCwoHc3RpZ21lchABKpIRCg9BcGlSZXNvdXJjZUtpbmQSHQoZYXBpX3Jlc291cmNlX2tpbmRfdW5rbm93bhAAElsKFGFwaV9yZXNvdXJjZV92ZXJzaW9uEAEaQar/Kz0IARABGhJBcGlSZXNvdXJjZVZlcnNpb24iFEFQSSBSZXNvdXJjZSBWZXJzaW9uKgN2ZXI4AUACSgQIBRAEEj8KCmlhbV9wb2xpY3kQChovqv8rKwgCEAEaCUlhbVBvbGljeSIKSUFNIFBvbGljeSoEaWFtcDgBQAJKBAgCEAESTgoQaWRlbnRpdHlfYWNjb3VudBALGjiq/ys0CAIQARoPSWRlbnRpdHlBY2NvdW50IhBJZGVudGl0eSBBY2NvdW50KgNpZGFAAkoECAQQAxI1CgdhcGlfa2V5EAwaKKr/KyQIAhABGgZBcGlLZXkiB0FQSSBLZXkqA2tleTgBQAJKBAgEEAESPwoKaW52aXRhdGlvbhAUGi+q/ysrCAIQARoKSW52aXRhdGlvbiIKSW52aXRhdGlvbioDaW52OAFAAkoECAIQARJXChFpZGVudGl0eV9wcm92aWRlchAVGkCq/ys8CAIQARoQSWRlbnRpdHlQcm92aWRlciIRSWRlbnRpdHkgUHJvdmlkZXIqA2lkcDgBQAJKCAgCEAE6AgEEEkAKCW9hdXRoX2FwcBAWGjGq/ystCAIQARoIT0F1dGhBcHAiCU9BdXRoIEFwcCoEb2FwcDgBQAJKCAgCEAE6AgEEElEKD3BsYXRmb3JtX2NsaWVudBAXGjyq/ys4CAIQARoOUGxhdGZvcm1DbGllbnQiD1BsYXRmb3JtIENsaWVudCoDcGNsOAFAAkoICAIQAToCAQQSSQoMb3JnYW5pemF0aW9uEB4aN6r/KzMIAxABGgxPcmdhbml6YXRpb24iDE9yZ2FuaXphdGlvbioDb3JnQAFKCggEEAE6BAECAwQSOQoIcGxhdGZvcm0QHxorqv8rJwgDEAEaCFBsYXRmb3JtIghQbGF0Zm9ybSoDcGx0OAFAAkoECAUQBBI8CgVhZ2VudBAoGjGq/ystCAEQARoFQWdlbnQiBUFnZW50KgNhZ3RAAUoSCAIQASoICAEQARgBIAE6AgEEEmsKD2FnZW50X2V4ZWN1dGlvbhApGlaq/ytSCAEQARoOQWdlbnRFeGVjdXRpb24iD0FnZW50IEV4ZWN1dGlvbioDYWV4QAFKJAgDEAIaHgoHc2Vzc2lvbhIHc2Vzc2lvbhoKc2Vzc2lvbl9pZBI4CgdzZXNzaW9uECoaK6r/KycIARABGgdTZXNzaW9uIgdTZXNzaW9uKgNzZXNAAUoICAIQAToCAQQSPgoFc2tpbGwQKxozqv8rLwgBEAEaBVNraWxsIgVTa2lsbCoDc2tsMAFAAUoSCAIQASoICAEQARgBIAE6AgEEEkoKCm1jcF9zZXJ2ZXIQLBo6qv8rNggBEAEaCU1jcFNlcnZlciIKTUNQIFNlcnZlcioDbWNwQAFKEggCEAEqCAgBEAEYASABOgIBBBJsCg5hZ2VudF9pbnN0YW5jZRAtGliq/ytUCAEQARoNQWdlbnRJbnN0YW5jZSIOQWdlbnQgSW5zdGFuY2UqA2FpbkABSigIAhABIhgKBWFnZW50EgVhZ2VudBoIYWdlbnRfaWQqBAgBGAE6AgEEEkUKC2FnZW50X3NoYXJlEC4aNKr/KzAIARABGgpBZ2VudFNoYXJlIgtBZ2VudCBTaGFyZSoDYXNoOAFAAUoICAIQAToCAQQSTAoNYWdlbnRfY2hhbm5lbBAvGjmq/ys1CAEQARoMQWdlbnRDaGFubmVsIg1BZ2VudCBDaGFubmVsKgNhY2g4AUABSgkIAhABOgMBBAUSRwoLY2hhbm5lbF9hcHAQMBo2qv8rMggBEAEaCkNoYW5uZWxBcHAiC0NoYW5uZWwgQXBwKgVjaGFwcDgBQAFKCAgCEAE6AgEEEkcKCHdvcmtmbG93EDIaOar/KzUIARABGghXb3JrZmxvdyIIV29ya2Zsb3cqA3dmbDABQAFKEggCEAEqCAgBEAEYASABOgIBBBJ+ChF3b3JrZmxvd19pbnN0YW5jZRAzGmeq/ytjCAEQARoQV29ya2Zsb3dJbnN0YW5jZSIRV29ya2Zsb3cgSW5zdGFuY2UqA3dpbkABSjEIAhABIiEKCHdvcmtmbG93Egh3b3JrZmxvdxoLd29ya2Zsb3dfaWQqBAgBGAE6AgEEEpYBChJ3b3JrZmxvd19leGVjdXRpb24QNBp+qv8reggBEAEaEVdvcmtmbG93RXhlY3V0aW9uIhJXb3JrZmxvdyBFeGVjdXRpb24qA3dleEABSkYIAhABIjwKEXdvcmtmbG93X2luc3RhbmNlEhF3b3JrZmxvd19pbnN0YW5jZRoUd29ya2Zsb3dfaW5zdGFuY2VfaWQ6AgEEEkoKC2Vudmlyb25tZW50EDUaOar/KzUIARABGgtFbnZpcm9ubWVudCILRW52aXJvbm1lbnQqA2VudkABSg4IAhABKgIYATABOgIBBBI9CghhcnRpZmFjdBA3Gi+q/ysrCAEQARoIQXJ0aWZhY3QiCEFydGlmYWN0KgNhcnQ4AUABSggIAhABOgIBBBJSChFleGVjdXRpb25fY29udGV4dBA2Gjuq/ys3CAEQARoQRXhlY3V0aW9uQ29udGV4dCIRRXhlY3V0aW9uIENvbnRleHQqBGVjdHhAAUoECAQQARI9CghzY2hlZHVsZRA4Gi+q/ysrCAEQARoIU2NoZWR1bGUiCFNjaGVkdWxlKgNzY2g4AUABSggIAhABOgIBBBI4Cgdwcm9qZWN0EDwaK6r/KycIAxABGgdQcm9qZWN0IgdQcm9qZWN0KgNwcmpAAUoICAIQAToCAQQiBAgxEDEqCWRhdGFzdG9yZTqFAQoJa2luZF9tZXRhEiEuZ29vZ2xlLnByb3RvYnVmLkVudW1WYWx1ZU9wdGlvbnMY9b8FIAEoCzJDLmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5hcGlyZXNvdXJjZWtpbmQuQXBpUmVzb3VyY2VLaW5kTWV0YVIIa2luZE1ldGFCG0IZQXBpUmVzb3VyY2VLaW5kT3V0ZXJDbGFzc2IGcHJvdG8z",[file_ai_stigmer_commons_apiresource_apiresourcekind_api_resource_group,file_ai_stigmer_commons_apiresource_apiresourcekind_authorization_config,file_google_protobuf_descriptor]);var ApiResourceVersion;(function(ApiResourceVersion2){ApiResourceVersion2[ApiResourceVersion2.api_resource_version_unspecified=0]="api_resource_version_unspecified",ApiResourceVersion2[ApiResourceVersion2.v1=1]="v1"})(ApiResourceVersion||(ApiResourceVersion={}));var ResourceTier;(function(ResourceTier2){ResourceTier2[ResourceTier2.resource_tier_unspecified=0]="resource_tier_unspecified",ResourceTier2[ResourceTier2.open_source=1]="open_source",ResourceTier2[ResourceTier2.cloud_only=2]="cloud_only"})(ResourceTier||(ResourceTier={}));var PlatformIdValue;(function(PlatformIdValue2){PlatformIdValue2[PlatformIdValue2.platform_id_value_unspecified=0]="platform_id_value_unspecified",PlatformIdValue2[PlatformIdValue2.stigmer=1]="stigmer"})(PlatformIdValue||(PlatformIdValue={}));var ApiResourceKind;(function(ApiResourceKind2){ApiResourceKind2[ApiResourceKind2.api_resource_kind_unknown=0]="api_resource_kind_unknown",ApiResourceKind2[ApiResourceKind2.api_resource_version=1]="api_resource_version",ApiResourceKind2[ApiResourceKind2.iam_policy=10]="iam_policy",ApiResourceKind2[ApiResourceKind2.identity_account=11]="identity_account",ApiResourceKind2[ApiResourceKind2.api_key=12]="api_key",ApiResourceKind2[ApiResourceKind2.invitation=20]="invitation",ApiResourceKind2[ApiResourceKind2.identity_provider=21]="identity_provider",ApiResourceKind2[ApiResourceKind2.oauth_app=22]="oauth_app",ApiResourceKind2[ApiResourceKind2.platform_client=23]="platform_client",ApiResourceKind2[ApiResourceKind2.organization=30]="organization",ApiResourceKind2[ApiResourceKind2.platform=31]="platform",ApiResourceKind2[ApiResourceKind2.agent=40]="agent",ApiResourceKind2[ApiResourceKind2.agent_execution=41]="agent_execution",ApiResourceKind2[ApiResourceKind2.session=42]="session",ApiResourceKind2[ApiResourceKind2.skill=43]="skill",ApiResourceKind2[ApiResourceKind2.mcp_server=44]="mcp_server",ApiResourceKind2[ApiResourceKind2.agent_instance=45]="agent_instance",ApiResourceKind2[ApiResourceKind2.agent_share=46]="agent_share",ApiResourceKind2[ApiResourceKind2.agent_channel=47]="agent_channel",ApiResourceKind2[ApiResourceKind2.channel_app=48]="channel_app",ApiResourceKind2[ApiResourceKind2.workflow=50]="workflow",ApiResourceKind2[ApiResourceKind2.workflow_instance=51]="workflow_instance",ApiResourceKind2[ApiResourceKind2.workflow_execution=52]="workflow_execution",ApiResourceKind2[ApiResourceKind2.environment=53]="environment",ApiResourceKind2[ApiResourceKind2.artifact=55]="artifact",ApiResourceKind2[ApiResourceKind2.execution_context=54]="execution_context",ApiResourceKind2[ApiResourceKind2.schedule=56]="schedule",ApiResourceKind2[ApiResourceKind2.project=60]="project"})(ApiResourceKind||(ApiResourceKind={}));var file_ai_stigmer_commons_rpc_authorization_config=fileDesc("CjFhaS9zdGlnbWVyL2NvbW1vbnMvcnBjL2F1dGhvcml6YXRpb25fY29uZmlnLnByb3RvEhZhaS5zdGlnbWVyLmNvbW1vbnMucnBjIv4BChZScGNBdXRob3JpemF0aW9uQ29uZmlnEjQKCnBlcm1pc3Npb24YASABKA4yIC5haS5zdGlnbWVyLmlhbS52MS5JYW1QZXJtaXNzaW9uElYKDXJlc291cmNlX2tpbmQYAiABKA4yPy5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuYXBpcmVzb3VyY2VraW5kLkFwaVJlc291cmNlS2luZBIaChJyZXNvdXJjZV9raW5kX3BhdGgYAyABKAkSEgoKZmllbGRfcGF0aBgEIAEoCRIRCgllcnJvcl9tc2cYBSABKAkSEwoLcmVzb3VyY2VfaWQYBiABKAliBnByb3RvMw",[file_ai_stigmer_commons_apiresource_apiresourcekind_api_resource_kind,file_ai_stigmer_iam_v1_enum]);var file_ai_stigmer_commons_rpc_method_options=fileDesc("CithaS9zdGlnbWVyL2NvbW1vbnMvcnBjL21ldGhvZF9vcHRpb25zLnByb3RvEhZhaS5zdGlnbWVyLmNvbW1vbnMucnBjOmgKBmNvbmZpZxIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGIiHAyABKAsyLi5haS5zdGlnbWVyLmNvbW1vbnMucnBjLlJwY0F1dGhvcml6YXRpb25Db25maWdSBmNvbmZpZzo9Cglpc19wdWJsaWMSHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxiJhwMgASgIUghpc1B1YmxpYzpUChVpc19za2lwX2F1dGhvcml6YXRpb24SHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxiKhwMgASgIUhNpc1NraXBBdXRob3JpemF0aW9uYgZwcm90bzM",[file_ai_stigmer_commons_rpc_authorization_config,file_google_protobuf_descriptor]);var file_ai_stigmer_agentic_agentexecution_v1_enum=fileDesc("Ci9haS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvZW51bS5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxKv8BCg5FeGVjdXRpb25QaGFzZRIfChtFWEVDVVRJT05fUEhBU0VfVU5TUEVDSUZJRUQQABIVChFFWEVDVVRJT05fUEVORElORxABEhkKFUVYRUNVVElPTl9JTl9QUk9HUkVTUxACEhcKE0VYRUNVVElPTl9DT01QTEVURUQQAxIUChBFWEVDVVRJT05fRkFJTEVEEAQSFwoTRVhFQ1VUSU9OX0NBTkNFTExFRBAFEhgKFEVYRUNVVElPTl9URVJNSU5BVEVEEAgSIgoeRVhFQ1VUSU9OX1dBSVRJTkdfRk9SX0FQUFJPVkFMEAYSFAoQRVhFQ1VUSU9OX1BBVVNFRBAHKooBCgtNZXNzYWdlVHlwZRIcChhNRVNTQUdFX1RZUEVfVU5TUEVDSUZJRUQQABIRCg1NRVNTQUdFX0hVTUFOEAESDgoKTUVTU0FHRV9BSRACEhAKDE1FU1NBR0VfVE9PTBADEhIKDk1FU1NBR0VfU1lTVEVNEAQSFAoQTUVTU0FHRV9USElOS0lORxAFKuEBCg5Ub29sQ2FsbFN0YXR1cxIgChxUT09MX0NBTExfU1RBVFVTX1VOU1BFQ0lGSUVEEAASFQoRVE9PTF9DQUxMX1BFTkRJTkcQARIVChFUT09MX0NBTExfUlVOTklORxACEhcKE1RPT0xfQ0FMTF9DT01QTEVURUQQAxIUChBUT09MX0NBTExfRkFJTEVEEAQSHgoaVE9PTF9DQUxMX1dBSVRJTkdfQVBQUk9WQUwQBRIVChFUT09MX0NBTExfU0tJUFBFRBAGEhkKFVRPT0xfQ0FMTF9JTlRFUlJVUFRFRBAHKs4CCghUb29sS2luZBIZChVUT09MX0tJTkRfVU5TUEVDSUZJRUQQABIXChNUT09MX0tJTkRfRklMRV9SRUFEEAESGAoUVE9PTF9LSU5EX0ZJTEVfV1JJVEUQAhIXChNUT09MX0tJTkRfRklMRV9FRElUEAMSGQoVVE9PTF9LSU5EX0ZJTEVfREVMRVRFEAQSEwoPVE9PTF9LSU5EX1NIRUxMEAUSFAoQVE9PTF9LSU5EX1NFQVJDSBAGEhIKDlRPT0xfS0lORF9MSVNUEAcSEwoPVE9PTF9LSU5EX0ZFVENIEAgSGAoUVE9PTF9LSU5EX1dFQl9TRUFSQ0gQCRITCg9UT09MX0tJTkRfVEhJTksQChISCg5UT09MX0tJTkRfVE9ETxALEhYKElRPT0xfS0lORF9TVUJBR0VOVBAMEhEKDVRPT0xfS0lORF9NQ1AQDSp5CgpUb2RvU3RhdHVzEhsKF1RPRE9fU1RBVFVTX1VOU1BFQ0lGSUVEEAASEAoMVE9ET19QRU5ESU5HEAESFAoQVE9ET19JTl9QUk9HUkVTUxACEhIKDlRPRE9fQ09NUExFVEVEEAMSEgoOVE9ET19DQU5DRUxMRUQQBCqsAQoOU3ViQWdlbnRTdGF0dXMSIAocU1VCX0FHRU5UX1NUQVRVU19VTlNQRUNJRklFRBAAEhUKEVNVQl9BR0VOVF9QRU5ESU5HEAESGQoVU1VCX0FHRU5UX0lOX1BST0dSRVNTEAISFwoTU1VCX0FHRU5UX0NPTVBMRVRFRBADEhQKEFNVQl9BR0VOVF9GQUlMRUQQBBIXChNTVUJfQUdFTlRfQ0FOQ0VMTEVEEAUqiQEKFUV4ZWN1dGlvbkFydGlmYWN0S2luZBInCiNFWEVDVVRJT05fQVJUSUZBQ1RfS0lORF9VTlNQRUNJRklFRBAAEiAKHEVYRUNVVElPTl9BUlRJRkFDVF9LSU5EX0ZJTEUQARIlCiFFWEVDVVRJT05fQVJUSUZBQ1RfS0lORF9ESVJFQ1RPUlkQAipfChNTdW1tYXJpemF0aW9uU291cmNlEiQKIFNVTU1BUklaQVRJT05fU09VUkNFX1VOU1BFQ0lGSUVEEAASDwoLZ3JhcGhfc3RhcnQQARIRCg1taWRfZXhlY3V0aW9uEAIqkgEKF1Rvb2xDYWxsU3RyZWFtaW5nU291cmNlEioKJlRPT0xfQ0FMTF9TVFJFQU1JTkdfU09VUkNFX1VOU1BFQ0lGSUVEEAASJAogVE9PTF9DQUxMX1NUUkVBTUlOR19TT1VSQ0VfSU5QVVQQARIlCiFUT09MX0NBTExfU1RSRUFNSU5HX1NPVVJDRV9PVVRQVVQQAiqLAQoWRXhlY3V0aW9uQ29udHJvbFNpZ25hbBIoCiRFWEVDVVRJT05fQ09OVFJPTF9TSUdOQUxfVU5TUEVDSUZJRUQQABIhCh1FWEVDVVRJT05fQ09OVFJPTF9TSUdOQUxfU1RPUBABEiQKIEVYRUNVVElPTl9DT05UUk9MX1NJR05BTF9XQVJOSU5HEAIqpQEKDkFwcHJvdmFsQWN0aW9uEh8KG0FQUFJPVkFMX0FDVElPTl9VTlNQRUNJRklFRBAAEhsKF0FQUFJPVkFMX0FDVElPTl9BUFBST1ZFEAESGAoUQVBQUk9WQUxfQUNUSU9OX1NLSVAQAhIaChZBUFBST1ZBTF9BQ1RJT05fUkVKRUNUEAMSHwobQVBQUk9WQUxfQUNUSU9OX0FQUFJPVkVfQUxMEAQqsAMKFEFwcHJvdmFsUG9saWN5U291cmNlEiYKIkFQUFJPVkFMX1BPTElDWV9TT1VSQ0VfVU5TUEVDSUZJRUQQABItCilBUFBST1ZBTF9QT0xJQ1lfU09VUkNFX0NMQVNTSUZJRVJfREVGQVVMVBABEioKJkFQUFJPVkFMX1BPTElDWV9TT1VSQ0VfUElOTkVEX09WRVJSSURFEAISKQolQVBQUk9WQUxfUE9MSUNZX1NPVVJDRV9BR0VOVF9PVkVSUklERRADEisKJ0FQUFJPVkFMX1BPTElDWV9TT1VSQ0VfQVVUT19BUFBST1ZFX0FMTBAEEikKJUFQUFJPVkFMX1BPTElDWV9TT1VSQ0VfQVBQUk9WQUxfTEVBU0UQBRIrCidBUFBST1ZBTF9QT0xJQ1lfU09VUkNFX0JVSUxUSU5fQ0FURUdPUlkQBhI5CjVBUFBST1ZBTF9QT0xJQ1lfU09VUkNFX0FOTk9UQVRJT05fREVTVFJVQ1RJVkVfVElHSFRFThAHEioKJkFQUFJPVkFMX1BPTElDWV9TT1VSQ0VfVU5BVFRFTkRFRF9TS0lQEAgq4wEKEUFwcHJvdmFsRXZlbnRUeXBlEiMKH0FQUFJPVkFMX0VWRU5UX1RZUEVfVU5TUEVDSUZJRUQQABIhCh1BUFBST1ZBTF9FVkVOVF9UWVBFX1JFUVVFU1RFRBABEiAKHEFQUFJPVkFMX0VWRU5UX1RZUEVfQVBQUk9WRUQQAhIgChxBUFBST1ZBTF9FVkVOVF9UWVBFX1JFSkVDVEVEEAMSHwobQVBQUk9WQUxfRVZFTlRfVFlQRV9TS0lQUEVEEAQSIQodQVBQUk9WQUxfRVZFTlRfVFlQRV9SRVRSQUNURUQQBSqkAQoYQXBwcm92YWxSZXRyYWN0aW9uUmVhc29uEioKJkFQUFJPVkFMX1JFVFJBQ1RJT05fUkVBU09OX1VOU1BFQ0lGSUVEEAASMQotQVBQUk9WQUxfUkVUUkFDVElPTl9SRUFTT05fU1VCX0FHRU5UX1RFUk1JTkFMEAESKQolQVBQUk9WQUxfUkVUUkFDVElPTl9SRUFTT05fU1VQRVJTRURFRBACKmoKD0ludGVyYWN0aW9uTW9kZRIgChxJTlRFUkFDVElPTl9NT0RFX1VOU1BFQ0lGSUVEEAASGgoWSU5URVJBQ1RJT05fTU9ERV9BR0VOVBABEhkKFUlOVEVSQUNUSU9OX01PREVfUExBThACKmoKDEFwcHJvdmFsTW9kZRIdChlBUFBST1ZBTF9NT0RFX1VOU1BFQ0lGSUVEEAASHQoZQVBQUk9WQUxfTU9ERV9JTlRFUkFDVElWRRABEhwKGEFQUFJPVkFMX01PREVfVU5BVFRFTkRFRBACKl0KC1NlcnZpY2VUaWVyEhwKGFNFUlZJQ0VfVElFUl9VTlNQRUNJRklFRBAAEhkKFVNFUlZJQ0VfVElFUl9TVEFOREFSRBABEhUKEVNFUlZJQ0VfVElFUl9GQVNUEAIqZAoMVGhpbmtpbmdNb2RlEh0KGVRISU5LSU5HX01PREVfVU5TUEVDSUZJRUQQABIaChZUSElOS0lOR19NT0RFX0RJU0FCTEVEEAESGQoVVEhJTktJTkdfTU9ERV9FTkFCTEVEEAIqpgEKDkZpbGVDaGFuZ2VUeXBlEiAKHEZJTEVfQ0hBTkdFX1RZUEVfVU5TUEVDSUZJRUQQABIbChdGSUxFX0NIQU5HRV9UWVBFX0NSRUFURRABEhsKF0ZJTEVfQ0hBTkdFX1RZUEVfTU9ESUZZEAISGwoXRklMRV9DSEFOR0VfVFlQRV9ERUxFVEUQAxIbChdGSUxFX0NIQU5HRV9UWVBFX1JFTkFNRRAEKpYBChZGaWxlQ2hhbmdlQ2FwdHVyZUxldmVsEikKJUZJTEVfQ0hBTkdFX0NBUFRVUkVfTEVWRUxfVU5TUEVDSUZJRUQQABIoCiRGSUxFX0NIQU5HRV9DQVBUVVJFX0xFVkVMX1dIT0xFX0ZJTEUQARInCiNGSUxFX0NIQU5HRV9DQVBUVVJFX0xFVkVMX0hVTktfT05MWRACKv0BChNGaWxlQ2hhbmdlU2V0U3RhdHVzEiYKIkZJTEVfQ0hBTkdFX1NFVF9TVEFUVVNfVU5TUEVDSUZJRUQQABIkCiBGSUxFX0NIQU5HRV9TRVRfU1RBVFVTX0NBUFRVUklORxABEioKJkZJTEVfQ0hBTkdFX1NFVF9TVEFUVVNfQVdBSVRJTkdfUkVWSUVXEAISIgoeRklMRV9DSEFOR0VfU0VUX1NUQVRVU19ERUNJREVEEAMSJQohRklMRV9DSEFOR0VfU0VUX1NUQVRVU19SRUNPTkNJTEVEEAQSIQodRklMRV9DSEFOR0VfU0VUX1NUQVRVU19GQUlMRUQQBSrHAQoORmlsZUNoYW5nZUtpbmQSIAocRklMRV9DSEFOR0VfS0lORF9VTlNQRUNJRklFRBAAEhgKFEZJTEVfQ0hBTkdFX0tJTkRfQUREEAESGwoXRklMRV9DSEFOR0VfS0lORF9NT0RJRlkQAhIbChdGSUxFX0NIQU5HRV9LSU5EX0RFTEVURRADEhsKF0ZJTEVfQ0hBTkdFX0tJTkRfUkVOQU1FEAQSIgoeRklMRV9DSEFOR0VfS0lORF9CSU5BUllfQ0hBTkdFEAUq2gEKEEZpbGVDYXB0dXJlQ2xhc3MSIgoeRklMRV9DQVBUVVJFX0NMQVNTX1VOU1BFQ0lGSUVEEAASIgoeRklMRV9DQVBUVVJFX0NMQVNTX0dJVF9UUkFDS0VEEAESLQopRklMRV9DQVBUVVJFX0NMQVNTX0dJVF9VTlRSQUNLRURfQ0FQVFVSRUQQAhIrCidGSUxFX0NBUFRVUkVfQ0xBU1NfR0lUX0lHTk9SRURfQ0FQVFVSRUQQAxIiCh5GSUxFX0NBUFRVUkVfQ0xBU1NfTk9OX0dJVF9DQVMQBCqnAQoQRGlmZkNvbXBsZXRlbmVzcxIhCh1ESUZGX0NPTVBMRVRFTkVTU19VTlNQRUNJRklFRBAAEh4KGkRJRkZfQ09NUExFVEVORVNTX0NPTVBMRVRFEAESJQohRElGRl9DT01QTEVURU5FU1NfUEFSVElBTF9CTE9DS0VEEAISKQolRElGRl9DT01QTEVURU5FU1NfQklOQVJZX1NVTU1BUllfT05MWRADKocBCgxTbmFwc2hvdEtpbmQSHQoZU05BUFNIT1RfS0lORF9VTlNQRUNJRklFRBAAEh4KGlNOQVBTSE9UX0tJTkRfR0lUX1RSRUVfUkVGEAESHgoaU05BUFNIT1RfS0lORF9DQVNfTUFOSUZFU1QQAhIYChRTTkFQU0hPVF9LSU5EX0hZQlJJRBADKnoKEUZpbGVEZWNpc2lvblNjb3BlEiMKH0ZJTEVfREVDSVNJT05fU0NPUEVfVU5TUEVDSUZJRUQQABIiCh5GSUxFX0RFQ0lTSU9OX1NDT1BFX0NIQU5HRV9TRVQQARIcChhGSUxFX0RFQ0lTSU9OX1NDT1BFX0ZJTEUQAip9ChJGaWxlRGVjaXNpb25BY3Rpb24SJAogRklMRV9ERUNJU0lPTl9BQ1RJT05fVU5TUEVDSUZJRUQQABIgChxGSUxFX0RFQ0lTSU9OX0FDVElPTl9BUFBST1ZFEAESHwobRklMRV9ERUNJU0lPTl9BQ1RJT05fUkVKRUNUEAIqiwEKEkZpbGVEZWNpc2lvbk9yaWdpbhIkCiBGSUxFX0RFQ0lTSU9OX09SSUdJTl9VTlNQRUNJRklFRBAAEh0KGUZJTEVfREVDSVNJT05fT1JJR0lOX1VTRVIQARIwCixGSUxFX0RFQ0lTSU9OX09SSUdJTl9QT0xJQ1lfQVBQUk9WRURfQ09NTUFORBACKo0CChNGaWxlUmV2aWV3RXZlbnRUeXBlEiYKIkZJTEVfUkVWSUVXX0VWRU5UX1RZUEVfVU5TUEVDSUZJRUQQABIsCihGSUxFX1JFVklFV19FVkVOVF9UWVBFX0JBU0VMSU5FX0NBUFRVUkVEEAESLQopRklMRV9SRVZJRVdfRVZFTlRfVFlQRV9DQU5ESURBVEVfQ0FQVFVSRUQQAhInCiNGSUxFX1JFVklFV19FVkVOVF9UWVBFX0ZJTEVfREVDSURFRBADEiUKIUZJTEVfUkVWSUVXX0VWRU5UX1RZUEVfUkVDT05DSUxFRBAEEiEKHUZJTEVfUkVWSUVXX0VWRU5UX1RZUEVfRkFJTEVEEAUq+QEKFUZpbGVSZXZpZXdGYWlsdXJlS2luZBIoCiRGSUxFX1JFVklFV19GQUlMVVJFX0tJTkRfVU5TUEVDSUZJRUQQABIrCidGSUxFX1JFVklFV19GQUlMVVJFX0tJTkRfQ0FQVFVSRV9GQUlMRUQQARIuCipGSUxFX1JFVklFV19GQUlMVVJFX0tJTkRfRElGRl9VTlJFVklFV0FCTEUQAhItCilGSUxFX1JFVklFV19GQUlMVVJFX0tJTkRfUkVDT05DSUxFX0ZBSUxFRBADEioKJkZJTEVfUkVWSUVXX0ZBSUxVUkVfS0lORF9IQVNIX01JU01BVENIEAQqxAEKFUZpbGVSZXZpZXdCbG9ja1JlYXNvbhIoCiRGSUxFX1JFVklFV19CTE9DS19SRUFTT05fVU5TUEVDSUZJRUQQABIsCihGSUxFX1JFVklFV19CTE9DS19SRUFTT05fU0VDUkVUX1dJVEhIRUxEEAESKAokRklMRV9SRVZJRVdfQkxPQ0tfUkVBU09OX1NJWkVfRUxJREVEEAISKQolRklMRV9SRVZJRVdfQkxPQ0tfUkVBU09OX1VOUkVWSUVXQUJMRRADYgZwcm90bzM"),ExecutionPhase;(function(ExecutionPhase3){ExecutionPhase3[ExecutionPhase3.EXECUTION_PHASE_UNSPECIFIED=0]="EXECUTION_PHASE_UNSPECIFIED",ExecutionPhase3[ExecutionPhase3.EXECUTION_PENDING=1]="EXECUTION_PENDING",ExecutionPhase3[ExecutionPhase3.EXECUTION_IN_PROGRESS=2]="EXECUTION_IN_PROGRESS",ExecutionPhase3[ExecutionPhase3.EXECUTION_COMPLETED=3]="EXECUTION_COMPLETED",ExecutionPhase3[ExecutionPhase3.EXECUTION_FAILED=4]="EXECUTION_FAILED",ExecutionPhase3[ExecutionPhase3.EXECUTION_CANCELLED=5]="EXECUTION_CANCELLED",ExecutionPhase3[ExecutionPhase3.EXECUTION_TERMINATED=8]="EXECUTION_TERMINATED",ExecutionPhase3[ExecutionPhase3.EXECUTION_WAITING_FOR_APPROVAL=6]="EXECUTION_WAITING_FOR_APPROVAL",ExecutionPhase3[ExecutionPhase3.EXECUTION_PAUSED=7]="EXECUTION_PAUSED"})(ExecutionPhase||(ExecutionPhase={}));var MessageType;(function(MessageType2){MessageType2[MessageType2.MESSAGE_TYPE_UNSPECIFIED=0]="MESSAGE_TYPE_UNSPECIFIED",MessageType2[MessageType2.MESSAGE_HUMAN=1]="MESSAGE_HUMAN",MessageType2[MessageType2.MESSAGE_AI=2]="MESSAGE_AI",MessageType2[MessageType2.MESSAGE_TOOL=3]="MESSAGE_TOOL",MessageType2[MessageType2.MESSAGE_SYSTEM=4]="MESSAGE_SYSTEM",MessageType2[MessageType2.MESSAGE_THINKING=5]="MESSAGE_THINKING"})(MessageType||(MessageType={}));var ToolCallStatus;(function(ToolCallStatus2){ToolCallStatus2[ToolCallStatus2.TOOL_CALL_STATUS_UNSPECIFIED=0]="TOOL_CALL_STATUS_UNSPECIFIED",ToolCallStatus2[ToolCallStatus2.TOOL_CALL_PENDING=1]="TOOL_CALL_PENDING",ToolCallStatus2[ToolCallStatus2.TOOL_CALL_RUNNING=2]="TOOL_CALL_RUNNING",ToolCallStatus2[ToolCallStatus2.TOOL_CALL_COMPLETED=3]="TOOL_CALL_COMPLETED",ToolCallStatus2[ToolCallStatus2.TOOL_CALL_FAILED=4]="TOOL_CALL_FAILED",ToolCallStatus2[ToolCallStatus2.TOOL_CALL_WAITING_APPROVAL=5]="TOOL_CALL_WAITING_APPROVAL",ToolCallStatus2[ToolCallStatus2.TOOL_CALL_SKIPPED=6]="TOOL_CALL_SKIPPED",ToolCallStatus2[ToolCallStatus2.TOOL_CALL_INTERRUPTED=7]="TOOL_CALL_INTERRUPTED"})(ToolCallStatus||(ToolCallStatus={}));var ToolKind;(function(ToolKind2){ToolKind2[ToolKind2.UNSPECIFIED=0]="UNSPECIFIED",ToolKind2[ToolKind2.FILE_READ=1]="FILE_READ",ToolKind2[ToolKind2.FILE_WRITE=2]="FILE_WRITE",ToolKind2[ToolKind2.FILE_EDIT=3]="FILE_EDIT",ToolKind2[ToolKind2.FILE_DELETE=4]="FILE_DELETE",ToolKind2[ToolKind2.SHELL=5]="SHELL",ToolKind2[ToolKind2.SEARCH=6]="SEARCH",ToolKind2[ToolKind2.LIST=7]="LIST",ToolKind2[ToolKind2.FETCH=8]="FETCH",ToolKind2[ToolKind2.WEB_SEARCH=9]="WEB_SEARCH",ToolKind2[ToolKind2.THINK=10]="THINK",ToolKind2[ToolKind2.TODO=11]="TODO",ToolKind2[ToolKind2.SUBAGENT=12]="SUBAGENT",ToolKind2[ToolKind2.MCP=13]="MCP"})(ToolKind||(ToolKind={}));var TodoStatus;(function(TodoStatus2){TodoStatus2[TodoStatus2.TODO_STATUS_UNSPECIFIED=0]="TODO_STATUS_UNSPECIFIED",TodoStatus2[TodoStatus2.TODO_PENDING=1]="TODO_PENDING",TodoStatus2[TodoStatus2.TODO_IN_PROGRESS=2]="TODO_IN_PROGRESS",TodoStatus2[TodoStatus2.TODO_COMPLETED=3]="TODO_COMPLETED",TodoStatus2[TodoStatus2.TODO_CANCELLED=4]="TODO_CANCELLED"})(TodoStatus||(TodoStatus={}));var SubAgentStatus;(function(SubAgentStatus2){SubAgentStatus2[SubAgentStatus2.SUB_AGENT_STATUS_UNSPECIFIED=0]="SUB_AGENT_STATUS_UNSPECIFIED",SubAgentStatus2[SubAgentStatus2.SUB_AGENT_PENDING=1]="SUB_AGENT_PENDING",SubAgentStatus2[SubAgentStatus2.SUB_AGENT_IN_PROGRESS=2]="SUB_AGENT_IN_PROGRESS",SubAgentStatus2[SubAgentStatus2.SUB_AGENT_COMPLETED=3]="SUB_AGENT_COMPLETED",SubAgentStatus2[SubAgentStatus2.SUB_AGENT_FAILED=4]="SUB_AGENT_FAILED",SubAgentStatus2[SubAgentStatus2.SUB_AGENT_CANCELLED=5]="SUB_AGENT_CANCELLED"})(SubAgentStatus||(SubAgentStatus={}));var ExecutionArtifactKind;(function(ExecutionArtifactKind2){ExecutionArtifactKind2[ExecutionArtifactKind2.UNSPECIFIED=0]="UNSPECIFIED",ExecutionArtifactKind2[ExecutionArtifactKind2.FILE=1]="FILE",ExecutionArtifactKind2[ExecutionArtifactKind2.DIRECTORY=2]="DIRECTORY"})(ExecutionArtifactKind||(ExecutionArtifactKind={}));var SummarizationSource;(function(SummarizationSource2){SummarizationSource2[SummarizationSource2.SUMMARIZATION_SOURCE_UNSPECIFIED=0]="SUMMARIZATION_SOURCE_UNSPECIFIED",SummarizationSource2[SummarizationSource2.graph_start=1]="graph_start",SummarizationSource2[SummarizationSource2.mid_execution=2]="mid_execution"})(SummarizationSource||(SummarizationSource={}));var ToolCallStreamingSource;(function(ToolCallStreamingSource2){ToolCallStreamingSource2[ToolCallStreamingSource2.UNSPECIFIED=0]="UNSPECIFIED",ToolCallStreamingSource2[ToolCallStreamingSource2.INPUT=1]="INPUT",ToolCallStreamingSource2[ToolCallStreamingSource2.OUTPUT=2]="OUTPUT"})(ToolCallStreamingSource||(ToolCallStreamingSource={}));var ExecutionControlSignal;(function(ExecutionControlSignal2){ExecutionControlSignal2[ExecutionControlSignal2.UNSPECIFIED=0]="UNSPECIFIED",ExecutionControlSignal2[ExecutionControlSignal2.STOP=1]="STOP",ExecutionControlSignal2[ExecutionControlSignal2.WARNING=2]="WARNING"})(ExecutionControlSignal||(ExecutionControlSignal={}));var ApprovalAction;(function(ApprovalAction2){ApprovalAction2[ApprovalAction2.UNSPECIFIED=0]="UNSPECIFIED",ApprovalAction2[ApprovalAction2.APPROVE=1]="APPROVE",ApprovalAction2[ApprovalAction2.SKIP=2]="SKIP",ApprovalAction2[ApprovalAction2.REJECT=3]="REJECT",ApprovalAction2[ApprovalAction2.APPROVE_ALL=4]="APPROVE_ALL"})(ApprovalAction||(ApprovalAction={}));var ApprovalPolicySource;(function(ApprovalPolicySource2){ApprovalPolicySource2[ApprovalPolicySource2.UNSPECIFIED=0]="UNSPECIFIED",ApprovalPolicySource2[ApprovalPolicySource2.CLASSIFIER_DEFAULT=1]="CLASSIFIER_DEFAULT",ApprovalPolicySource2[ApprovalPolicySource2.PINNED_OVERRIDE=2]="PINNED_OVERRIDE",ApprovalPolicySource2[ApprovalPolicySource2.AGENT_OVERRIDE=3]="AGENT_OVERRIDE",ApprovalPolicySource2[ApprovalPolicySource2.AUTO_APPROVE_ALL=4]="AUTO_APPROVE_ALL",ApprovalPolicySource2[ApprovalPolicySource2.APPROVAL_LEASE=5]="APPROVAL_LEASE",ApprovalPolicySource2[ApprovalPolicySource2.BUILTIN_CATEGORY=6]="BUILTIN_CATEGORY",ApprovalPolicySource2[ApprovalPolicySource2.ANNOTATION_DESTRUCTIVE_TIGHTEN=7]="ANNOTATION_DESTRUCTIVE_TIGHTEN",ApprovalPolicySource2[ApprovalPolicySource2.UNATTENDED_SKIP=8]="UNATTENDED_SKIP"})(ApprovalPolicySource||(ApprovalPolicySource={}));var ApprovalEventType;(function(ApprovalEventType2){ApprovalEventType2[ApprovalEventType2.UNSPECIFIED=0]="UNSPECIFIED",ApprovalEventType2[ApprovalEventType2.REQUESTED=1]="REQUESTED",ApprovalEventType2[ApprovalEventType2.APPROVED=2]="APPROVED",ApprovalEventType2[ApprovalEventType2.REJECTED=3]="REJECTED",ApprovalEventType2[ApprovalEventType2.SKIPPED=4]="SKIPPED",ApprovalEventType2[ApprovalEventType2.RETRACTED=5]="RETRACTED"})(ApprovalEventType||(ApprovalEventType={}));var ApprovalRetractionReason;(function(ApprovalRetractionReason2){ApprovalRetractionReason2[ApprovalRetractionReason2.UNSPECIFIED=0]="UNSPECIFIED",ApprovalRetractionReason2[ApprovalRetractionReason2.SUB_AGENT_TERMINAL=1]="SUB_AGENT_TERMINAL",ApprovalRetractionReason2[ApprovalRetractionReason2.SUPERSEDED=2]="SUPERSEDED"})(ApprovalRetractionReason||(ApprovalRetractionReason={}));var InteractionMode;(function(InteractionMode2){InteractionMode2[InteractionMode2.UNSPECIFIED=0]="UNSPECIFIED",InteractionMode2[InteractionMode2.AGENT=1]="AGENT",InteractionMode2[InteractionMode2.PLAN=2]="PLAN"})(InteractionMode||(InteractionMode={}));var ApprovalMode;(function(ApprovalMode2){ApprovalMode2[ApprovalMode2.UNSPECIFIED=0]="UNSPECIFIED",ApprovalMode2[ApprovalMode2.INTERACTIVE=1]="INTERACTIVE",ApprovalMode2[ApprovalMode2.UNATTENDED=2]="UNATTENDED"})(ApprovalMode||(ApprovalMode={}));var ServiceTier;(function(ServiceTier2){ServiceTier2[ServiceTier2.UNSPECIFIED=0]="UNSPECIFIED",ServiceTier2[ServiceTier2.STANDARD=1]="STANDARD",ServiceTier2[ServiceTier2.FAST=2]="FAST"})(ServiceTier||(ServiceTier={}));var ThinkingMode;(function(ThinkingMode2){ThinkingMode2[ThinkingMode2.UNSPECIFIED=0]="UNSPECIFIED",ThinkingMode2[ThinkingMode2.DISABLED=1]="DISABLED",ThinkingMode2[ThinkingMode2.ENABLED=2]="ENABLED"})(ThinkingMode||(ThinkingMode={}));var FileChangeType;(function(FileChangeType2){FileChangeType2[FileChangeType2.UNSPECIFIED=0]="UNSPECIFIED",FileChangeType2[FileChangeType2.CREATE=1]="CREATE",FileChangeType2[FileChangeType2.MODIFY=2]="MODIFY",FileChangeType2[FileChangeType2.DELETE=3]="DELETE",FileChangeType2[FileChangeType2.RENAME=4]="RENAME"})(FileChangeType||(FileChangeType={}));var FileChangeCaptureLevel;(function(FileChangeCaptureLevel2){FileChangeCaptureLevel2[FileChangeCaptureLevel2.UNSPECIFIED=0]="UNSPECIFIED",FileChangeCaptureLevel2[FileChangeCaptureLevel2.WHOLE_FILE=1]="WHOLE_FILE",FileChangeCaptureLevel2[FileChangeCaptureLevel2.HUNK_ONLY=2]="HUNK_ONLY"})(FileChangeCaptureLevel||(FileChangeCaptureLevel={}));var FileChangeSetStatus;(function(FileChangeSetStatus2){FileChangeSetStatus2[FileChangeSetStatus2.UNSPECIFIED=0]="UNSPECIFIED",FileChangeSetStatus2[FileChangeSetStatus2.CAPTURING=1]="CAPTURING",FileChangeSetStatus2[FileChangeSetStatus2.AWAITING_REVIEW=2]="AWAITING_REVIEW",FileChangeSetStatus2[FileChangeSetStatus2.DECIDED=3]="DECIDED",FileChangeSetStatus2[FileChangeSetStatus2.RECONCILED=4]="RECONCILED",FileChangeSetStatus2[FileChangeSetStatus2.FAILED=5]="FAILED"})(FileChangeSetStatus||(FileChangeSetStatus={}));var FileChangeKind;(function(FileChangeKind2){FileChangeKind2[FileChangeKind2.UNSPECIFIED=0]="UNSPECIFIED",FileChangeKind2[FileChangeKind2.ADD=1]="ADD",FileChangeKind2[FileChangeKind2.MODIFY=2]="MODIFY",FileChangeKind2[FileChangeKind2.DELETE=3]="DELETE",FileChangeKind2[FileChangeKind2.RENAME=4]="RENAME",FileChangeKind2[FileChangeKind2.BINARY_CHANGE=5]="BINARY_CHANGE"})(FileChangeKind||(FileChangeKind={}));var FileCaptureClass;(function(FileCaptureClass2){FileCaptureClass2[FileCaptureClass2.UNSPECIFIED=0]="UNSPECIFIED",FileCaptureClass2[FileCaptureClass2.GIT_TRACKED=1]="GIT_TRACKED",FileCaptureClass2[FileCaptureClass2.GIT_UNTRACKED_CAPTURED=2]="GIT_UNTRACKED_CAPTURED",FileCaptureClass2[FileCaptureClass2.GIT_IGNORED_CAPTURED=3]="GIT_IGNORED_CAPTURED",FileCaptureClass2[FileCaptureClass2.NON_GIT_CAS=4]="NON_GIT_CAS"})(FileCaptureClass||(FileCaptureClass={}));var DiffCompleteness;(function(DiffCompleteness2){DiffCompleteness2[DiffCompleteness2.UNSPECIFIED=0]="UNSPECIFIED",DiffCompleteness2[DiffCompleteness2.COMPLETE=1]="COMPLETE",DiffCompleteness2[DiffCompleteness2.PARTIAL_BLOCKED=2]="PARTIAL_BLOCKED",DiffCompleteness2[DiffCompleteness2.BINARY_SUMMARY_ONLY=3]="BINARY_SUMMARY_ONLY"})(DiffCompleteness||(DiffCompleteness={}));var SnapshotKind;(function(SnapshotKind2){SnapshotKind2[SnapshotKind2.UNSPECIFIED=0]="UNSPECIFIED",SnapshotKind2[SnapshotKind2.GIT_TREE_REF=1]="GIT_TREE_REF",SnapshotKind2[SnapshotKind2.CAS_MANIFEST=2]="CAS_MANIFEST",SnapshotKind2[SnapshotKind2.HYBRID=3]="HYBRID"})(SnapshotKind||(SnapshotKind={}));var FileDecisionScope;(function(FileDecisionScope2){FileDecisionScope2[FileDecisionScope2.UNSPECIFIED=0]="UNSPECIFIED",FileDecisionScope2[FileDecisionScope2.CHANGE_SET=1]="CHANGE_SET",FileDecisionScope2[FileDecisionScope2.FILE=2]="FILE"})(FileDecisionScope||(FileDecisionScope={}));var FileDecisionAction;(function(FileDecisionAction2){FileDecisionAction2[FileDecisionAction2.UNSPECIFIED=0]="UNSPECIFIED",FileDecisionAction2[FileDecisionAction2.APPROVE=1]="APPROVE",FileDecisionAction2[FileDecisionAction2.REJECT=2]="REJECT"})(FileDecisionAction||(FileDecisionAction={}));var FileDecisionOrigin;(function(FileDecisionOrigin2){FileDecisionOrigin2[FileDecisionOrigin2.UNSPECIFIED=0]="UNSPECIFIED",FileDecisionOrigin2[FileDecisionOrigin2.USER=1]="USER",FileDecisionOrigin2[FileDecisionOrigin2.POLICY_APPROVED_COMMAND=2]="POLICY_APPROVED_COMMAND"})(FileDecisionOrigin||(FileDecisionOrigin={}));var FileReviewEventType;(function(FileReviewEventType2){FileReviewEventType2[FileReviewEventType2.UNSPECIFIED=0]="UNSPECIFIED",FileReviewEventType2[FileReviewEventType2.BASELINE_CAPTURED=1]="BASELINE_CAPTURED",FileReviewEventType2[FileReviewEventType2.CANDIDATE_CAPTURED=2]="CANDIDATE_CAPTURED",FileReviewEventType2[FileReviewEventType2.FILE_DECIDED=3]="FILE_DECIDED",FileReviewEventType2[FileReviewEventType2.RECONCILED=4]="RECONCILED",FileReviewEventType2[FileReviewEventType2.FAILED=5]="FAILED"})(FileReviewEventType||(FileReviewEventType={}));var FileReviewFailureKind;(function(FileReviewFailureKind2){FileReviewFailureKind2[FileReviewFailureKind2.UNSPECIFIED=0]="UNSPECIFIED",FileReviewFailureKind2[FileReviewFailureKind2.CAPTURE_FAILED=1]="CAPTURE_FAILED",FileReviewFailureKind2[FileReviewFailureKind2.DIFF_UNREVIEWABLE=2]="DIFF_UNREVIEWABLE",FileReviewFailureKind2[FileReviewFailureKind2.RECONCILE_FAILED=3]="RECONCILE_FAILED",FileReviewFailureKind2[FileReviewFailureKind2.HASH_MISMATCH=4]="HASH_MISMATCH"})(FileReviewFailureKind||(FileReviewFailureKind={}));var FileReviewBlockReason;(function(FileReviewBlockReason2){FileReviewBlockReason2[FileReviewBlockReason2.UNSPECIFIED=0]="UNSPECIFIED",FileReviewBlockReason2[FileReviewBlockReason2.SECRET_WITHHELD=1]="SECRET_WITHHELD",FileReviewBlockReason2[FileReviewBlockReason2.SIZE_ELIDED=2]="SIZE_ELIDED",FileReviewBlockReason2[FileReviewBlockReason2.UNREVIEWABLE=3]="UNREVIEWABLE"})(FileReviewBlockReason||(FileReviewBlockReason={}));var file_ai_stigmer_agentic_agentexecution_v1_usage=fileDesc("CjBhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvdXNhZ2UucHJvdG8SJGFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MSKxAwoKVG9rZW5Vc2FnZRIUCgxpbnB1dF90b2tlbnMYASABKAMSFQoNb3V0cHV0X3Rva2VucxgCIAEoAxIUCgx0b3RhbF90b2tlbnMYAyABKAMSIwobY2FjaGVfY3JlYXRpb25faW5wdXRfdG9rZW5zGAQgASgDEh8KF2NhY2hlX3JlYWRfaW5wdXRfdG9rZW5zGAUgASgDEhgKEHJlYXNvbmluZ190b2tlbnMYBiABKAMSHgoWdG9vbF91c2VfcHJvbXB0X3Rva2VucxgHIAEoAxIaChJhdWRpb19pbnB1dF90b2tlbnMYCCABKAMSGwoTYXVkaW9fb3V0cHV0X3Rva2VucxgJIAEoAxJqChZwcm92aWRlcl90b2tlbl9kZXRhaWxzGBQgAygLMkouYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlRva2VuVXNhZ2UuUHJvdmlkZXJUb2tlbkRldGFpbHNFbnRyeRo7ChlQcm92aWRlclRva2VuRGV0YWlsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoAzoCOAEiugMKD1ByaWNpbmdTbmFwc2hvdBIgChhwcmljaW5nX3JlZ2lzdHJ5X3ZlcnNpb24YASABKAkSOAoUcHJpY2luZ19lZmZlY3RpdmVfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhAKCGN1cnJlbmN5GAMgASgJEiYKHmlucHV0X3ByaWNlX21pY3Jvc19wZXJfbWlsbGlvbhgKIAEoAxInCh9vdXRwdXRfcHJpY2VfbWljcm9zX3Blcl9taWxsaW9uGAsgASgDEi8KJ2NhY2hlX2NyZWF0aW9uX3ByaWNlX21pY3Jvc19wZXJfbWlsbGlvbhgMIAEoAxIrCiNjYWNoZV9yZWFkX3ByaWNlX21pY3Jvc19wZXJfbWlsbGlvbhgNIAEoAxIqCiJyZWFzb25pbmdfcHJpY2VfbWljcm9zX3Blcl9taWxsaW9uGA4gASgDEiwKJGN1cnNvcl90b2tlbl9yYXRlX21pY3Jvc19wZXJfbWlsbGlvbhgPIAEoAxIdChVtYXJrdXBfcG9saWN5X3ZlcnNpb24YHiABKAkSEQoJY29zdF90aWVyGB8gASgJIqkCCglDb3N0U3RhbXASEAoIY3VycmVuY3kYASABKAkSHAoUcHJvdmlkZXJfY29zdF9taWNyb3MYAiABKAMSJwofY3VzdG9tZXJfYmlsbGFibGVfYW1vdW50X21pY3JvcxgDIAEoAxJXChJjYWxjdWxhdGlvbl9zdGF0dXMYBCABKA4yOy5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQ29zdENhbGN1bGF0aW9uU3RhdHVzEkYKB3ByaWNpbmcYBSABKAsyNS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuUHJpY2luZ1NuYXBzaG90EiIKGmN1cnNvcl9wbGF0Zm9ybV9mZWVfbWljcm9zGAYgASgDItQDCgtQcm94eVRpbWluZxI1ChFwcm94eV9yZWNlaXZlZF9hdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASPwobdXBzdHJlYW1fcmVxdWVzdF9zdGFydGVkX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI6ChZmaXJzdF9yZXNwb25zZV9ieXRlX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI5ChVsYXN0X3Jlc3BvbnNlX2J5dGVfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjYKEnByb3h5X2NvbXBsZXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGAoQdXBzdHJlYW1fdHRmYl9tcxgKIAEoAxIYChB1cHN0cmVhbV90dGxiX21zGAsgASgDEhoKEnN0cmVhbV9kdXJhdGlvbl9tcxgMIAEoAxIfChdwcm94eV90b3RhbF9kdXJhdGlvbl9tcxgNIAEoAxIVCg1yZXF1ZXN0X2J5dGVzGBQgASgDEhYKDnJlc3BvbnNlX2J5dGVzGBUgASgDIvoBCgtCaWxsaW5nTGluaxJOCgxkZWJpdF9zdGF0dXMYASABKA4yOC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQmlsbGluZ0RlYml0U3RhdHVzEhYKDnJlc2VydmF0aW9uX2lkGAIgASgJEhgKEGJpbGxpbmdfZGViaXRfaWQYAyABKAkSLgoKZGViaXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASHQoVYmlsbGluZ19hdHRlbXB0X2NvdW50GAUgASgFEhoKEmxhc3RfYmlsbGluZ19lcnJvchgGIAEoCSLtCgoSTGxtQ2FsbFVzYWdlUmVjb3JkEhcKD3VzYWdlX3JlY29yZF9pZBgBIAEoCRIUCgxleGVjdXRpb25faWQYAiABKAkSGQoRcm9vdF9leGVjdXRpb25faWQYAyABKAkSEAoIc2VxdWVuY2UYBCABKAUSFwoPaWRlbXBvdGVuY3lfa2V5GAUgASgJEh4KFmNhbm9uaWNhbF9wYXlsb2FkX2hhc2gYBiABKAkSLwoLb2JzZXJ2ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmNyZWF0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wElIKD21ldGVyaW5nX3NvdXJjZRgUIAEoDjI5LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5Vc2FnZU1ldGVyaW5nU291cmNlEkoKC3RydXN0X2xldmVsGBUgASgOMjUuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlVzYWdlVHJ1c3RMZXZlbBJRCgx1c2FnZV9zdGF0dXMYFiABKA4yOy5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuVXNhZ2VDb21wbGV0aW9uU3RhdHVzEhMKC2lzX2JpbGxhYmxlGBcgASgIEhAKCHByb3ZpZGVyGB4gASgJEhcKD3JlcXVlc3RlZF9tb2RlbBgfIAEoCRIWCg5yZXNvbHZlZF9tb2RlbBggIAEoCRIQCghlbmRwb2ludBghIAEoCRIRCglzdHJlYW1pbmcYIiABKAgSFAoMc2VydmljZV90aWVyGCMgASgJEhsKE3Byb3ZpZGVyX3JlcXVlc3RfaWQYJCABKAkSDwoHaGFybmVzcxglIAEoCRIZChFjdXJzb3JfYWNjb3VudF9pZBgmIAEoCRIVCg1jdXJzb3Jfa2V5X2lkGCcgASgJEhgKEGh0dHBfc3RhdHVzX2NvZGUYKCABKAUSFQoNZmluaXNoX3JlYXNvbhgpIAEoCRISCgplcnJvcl9jb2RlGCogASgJElAKEWN1cnNvcl9rZXlfc291cmNlGCsgASgOMjUuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkN1cnNvcktleVNvdXJjZRIQCgh0aGlua2luZxgsIAEoCRJACgZ0b2tlbnMYMiABKAsyMC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuVG9rZW5Vc2FnZRI9CgRjb3N0GDMgASgLMi8uYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkNvc3RTdGFtcBJHCgxwcm94eV90aW1pbmcYPCABKAsyMS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuUHJveHlUaW1pbmcSGwoTcHJvdmlkZXJfdXNhZ2VfanNvbhhGIAEoCRJCCgdiaWxsaW5nGFAgASgLMjEuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkJpbGxpbmdMaW5rEg4KBm9yZ19pZBgHIAEoCRISCgpzZXNzaW9uX2lkGAggASgJElQKBmxhYmVscxhaIAMoCzJELmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5MbG1DYWxsVXNhZ2VSZWNvcmQuTGFiZWxzRW50cnkaLQoLTGFiZWxzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASK+AgoUVXNhZ2VSZXBvcnRBZ2dyZWdhdGUSFAoMaW5wdXRfdG9rZW5zGAEgASgDEhUKDW91dHB1dF90b2tlbnMYAiABKAMSFAoMdG90YWxfdG9rZW5zGAMgASgDEiMKG2NhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucxgEIAEoAxIfChdjYWNoZV9yZWFkX2lucHV0X3Rva2VucxgFIAEoAxIYChByZWFzb25pbmdfdG9rZW5zGAYgASgDEhYKDmxsbV9jYWxsX2NvdW50GAogASgFEhwKFGJpbGxhYmxlX2Nvc3RfbWljcm9zGBQgASgDEhwKFHByb3ZpZGVyX2Nvc3RfbWljcm9zGBUgASgDEhUKDXByaW1hcnlfbW9kZWwYHiABKAkSGAoQcHJpbWFyeV9wcm92aWRlchgfIAEoCSLwAQoKTW9kZWxVc2FnZRINCgVtb2RlbBgBIAEoCRIQCghwcm92aWRlchgCIAEoCRIUCgxpbnB1dF90b2tlbnMYAyABKAMSFQoNb3V0cHV0X3Rva2VucxgEIAEoAxIjChtjYWNoZV9jcmVhdGlvbl9pbnB1dF90b2tlbnMYBSABKAMSHwoXY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMYBiABKAMSEgoKY2FsbF9jb3VudBgHIAEoBRIcChRiaWxsYWJsZV9jb3N0X21pY3JvcxgIIAEoAxIcChRwcm92aWRlcl9jb3N0X21pY3JvcxgJIAEoAyKtAwoVU3RyZWFtaW5nVXNhZ2VTdW1tYXJ5EhQKDGlucHV0X3Rva2VucxgBIAEoAxIVCg1vdXRwdXRfdG9rZW5zGAIgASgDEhkKEWNhY2hlX3JlYWRfdG9rZW5zGAMgASgDEhoKEmNhY2hlX3dyaXRlX3Rva2VucxgEIAEoAxIUCgx0b3RhbF90b2tlbnMYBSABKAMSEgoKdHVybl9jb3VudBgGIAEoBRIaChJlc3RpbWF0ZWRfY29zdF91c2QYByABKAESDQoFbW9kZWwYCCABKAkSEwoLb2JzZXJ2ZWRfYXQYCSABKAkSUQoWcmVxdWVzdGVkX3NlcnZpY2VfdGllchgKIAEoDjIxLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5TZXJ2aWNlVGllchIeChZyZXF1ZXN0ZWRfbW9kZWxfcGFyYW1zGAsgASgJElMKF3JlcXVlc3RlZF90aGlua2luZ19tb2RlGAwgASgOMjIuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlRoaW5raW5nTW9kZSquAgoTVXNhZ2VNZXRlcmluZ1NvdXJjZRIlCiFVU0FHRV9NRVRFUklOR19TT1VSQ0VfVU5TUEVDSUZJRUQQABIxCi1VU0FHRV9NRVRFUklOR19TT1VSQ0VfUFJPWFlfUFJPVklERVJfUkVQT1JURUQQARI2CjJVU0FHRV9NRVRFUklOR19TT1VSQ0VfUlVOTkVSX1BST1ZJREVSX1JFUE9SVEVEX09TUxACEiMKH1VTQUdFX01FVEVSSU5HX1NPVVJDRV9FU1RJTUFURUQQAxIzCi9VU0FHRV9NRVRFUklOR19TT1VSQ0VfUFJPVklERVJfQURNSU5fUkVDT05DSUxFRBAEEisKJ1VTQUdFX01FVEVSSU5HX1NPVVJDRV9NQU5VQUxfQURKVVNUTUVOVBAFKqgBCg9Vc2FnZVRydXN0TGV2ZWwSIQodVVNBR0VfVFJVU1RfTEVWRUxfVU5TUEVDSUZJRUQQABInCiNVU0FHRV9UUlVTVF9MRVZFTF9CSUxMSU5HX0FVVEhPUklUWRABEiUKIVVTQUdFX1RSVVNUX0xFVkVMX1NFUlZFUl9PQlNFUlZFRBACEiIKHlVTQUdFX1RSVVNUX0xFVkVMX0RJU1BMQVlfT05MWRADKvwCChVVc2FnZUNvbXBsZXRpb25TdGF0dXMSJwojVVNBR0VfQ09NUExFVElPTl9TVEFUVVNfVU5TUEVDSUZJRUQQABIkCiBVU0FHRV9DT01QTEVUSU9OX1NUQVRVU19DT01QTEVURRABEi4KKlVTQUdFX0NPTVBMRVRJT05fU1RBVFVTX1NUUkVBTV9JTlRFUlJVUFRFRBACEjUKMVVTQUdFX0NPTVBMRVRJT05fU1RBVFVTX1BST1ZJREVSX0VSUk9SX1dJVEhfVVNBR0UQAxIzCi9VU0FHRV9DT01QTEVUSU9OX1NUQVRVU19QUk9WSURFUl9FUlJPUl9OT19VU0FHRRAEEioKJlVTQUdFX0NPTVBMRVRJT05fU1RBVFVTX0VTVElNQVRFRF9PTkxZEAUSJgoiVVNBR0VfQ09NUExFVElPTl9TVEFUVVNfUkVDT05DSUxFRBAGEiQKIFVTQUdFX0NPTVBMRVRJT05fU1RBVFVTX0NPTkZMSUNUEAcqnwIKEkJpbGxpbmdEZWJpdFN0YXR1cxIkCiBCSUxMSU5HX0RFQklUX1NUQVRVU19VTlNQRUNJRklFRBAAEicKI0JJTExJTkdfREVCSVRfU1RBVFVTX05PVF9BUFBMSUNBQkxFEAESIAocQklMTElOR19ERUJJVF9TVEFUVVNfUEVORElORxACEiAKHEJJTExJTkdfREVCSVRfU1RBVFVTX0RFQklURUQQAxIpCiVCSUxMSU5HX0RFQklUX1NUQVRVU19GQUlMRURfUkVUUllBQkxFEAQSKAokQklMTElOR19ERUJJVF9TVEFUVVNfRkFJTEVEX1RFUk1JTkFMEAUSIQodQklMTElOR19ERUJJVF9TVEFUVVNfQ09ORkxJQ1QQBiqPAgoVQ29zdENhbGN1bGF0aW9uU3RhdHVzEicKI0NPU1RfQ0FMQ1VMQVRJT05fU1RBVFVTX1VOU1BFQ0lGSUVEEAASJAogQ09TVF9DQUxDVUxBVElPTl9TVEFUVVNfQ09NUFVURUQQARIlCiFDT1NUX0NBTENVTEFUSU9OX1NUQVRVU19FU1RJTUFURUQQAhIrCidDT1NUX0NBTENVTEFUSU9OX1NUQVRVU19QUklDRV9OT1RfRk9VTkQQAxImCiJDT1NUX0NBTENVTEFUSU9OX1NUQVRVU19SRUNPTkNJTEVEEAQSKwonQ09TVF9DQUxDVUxBVElPTl9TVEFUVVNfTUFOVUFMX0FESlVTVEVEEAUqVwoPQ3Vyc29yS2V5U291cmNlEiEKHUNVUlNPUl9LRVlfU09VUkNFX1VOU1BFQ0lGSUVEEAASIQodQ1VSU09SX0tFWV9TT1VSQ0VfTUFOQUdFRF9LRVkQAWIGcHJvdG8z",[file_ai_stigmer_agentic_agentexecution_v1_enum,file_google_protobuf_timestamp]);var UsageMeteringSource;(function(UsageMeteringSource2){UsageMeteringSource2[UsageMeteringSource2.UNSPECIFIED=0]="UNSPECIFIED",UsageMeteringSource2[UsageMeteringSource2.PROXY_PROVIDER_REPORTED=1]="PROXY_PROVIDER_REPORTED",UsageMeteringSource2[UsageMeteringSource2.RUNNER_PROVIDER_REPORTED_OSS=2]="RUNNER_PROVIDER_REPORTED_OSS",UsageMeteringSource2[UsageMeteringSource2.ESTIMATED=3]="ESTIMATED",UsageMeteringSource2[UsageMeteringSource2.PROVIDER_ADMIN_RECONCILED=4]="PROVIDER_ADMIN_RECONCILED",UsageMeteringSource2[UsageMeteringSource2.MANUAL_ADJUSTMENT=5]="MANUAL_ADJUSTMENT"})(UsageMeteringSource||(UsageMeteringSource={}));var UsageTrustLevel;(function(UsageTrustLevel2){UsageTrustLevel2[UsageTrustLevel2.UNSPECIFIED=0]="UNSPECIFIED",UsageTrustLevel2[UsageTrustLevel2.BILLING_AUTHORITY=1]="BILLING_AUTHORITY",UsageTrustLevel2[UsageTrustLevel2.SERVER_OBSERVED=2]="SERVER_OBSERVED",UsageTrustLevel2[UsageTrustLevel2.DISPLAY_ONLY=3]="DISPLAY_ONLY"})(UsageTrustLevel||(UsageTrustLevel={}));var UsageCompletionStatus;(function(UsageCompletionStatus2){UsageCompletionStatus2[UsageCompletionStatus2.UNSPECIFIED=0]="UNSPECIFIED",UsageCompletionStatus2[UsageCompletionStatus2.COMPLETE=1]="COMPLETE",UsageCompletionStatus2[UsageCompletionStatus2.STREAM_INTERRUPTED=2]="STREAM_INTERRUPTED",UsageCompletionStatus2[UsageCompletionStatus2.PROVIDER_ERROR_WITH_USAGE=3]="PROVIDER_ERROR_WITH_USAGE",UsageCompletionStatus2[UsageCompletionStatus2.PROVIDER_ERROR_NO_USAGE=4]="PROVIDER_ERROR_NO_USAGE",UsageCompletionStatus2[UsageCompletionStatus2.ESTIMATED_ONLY=5]="ESTIMATED_ONLY",UsageCompletionStatus2[UsageCompletionStatus2.RECONCILED=6]="RECONCILED",UsageCompletionStatus2[UsageCompletionStatus2.CONFLICT=7]="CONFLICT"})(UsageCompletionStatus||(UsageCompletionStatus={}));var BillingDebitStatus;(function(BillingDebitStatus2){BillingDebitStatus2[BillingDebitStatus2.UNSPECIFIED=0]="UNSPECIFIED",BillingDebitStatus2[BillingDebitStatus2.NOT_APPLICABLE=1]="NOT_APPLICABLE",BillingDebitStatus2[BillingDebitStatus2.PENDING=2]="PENDING",BillingDebitStatus2[BillingDebitStatus2.DEBITED=3]="DEBITED",BillingDebitStatus2[BillingDebitStatus2.FAILED_RETRYABLE=4]="FAILED_RETRYABLE",BillingDebitStatus2[BillingDebitStatus2.FAILED_TERMINAL=5]="FAILED_TERMINAL",BillingDebitStatus2[BillingDebitStatus2.CONFLICT=6]="CONFLICT"})(BillingDebitStatus||(BillingDebitStatus={}));var CostCalculationStatus;(function(CostCalculationStatus2){CostCalculationStatus2[CostCalculationStatus2.UNSPECIFIED=0]="UNSPECIFIED",CostCalculationStatus2[CostCalculationStatus2.COMPUTED=1]="COMPUTED",CostCalculationStatus2[CostCalculationStatus2.ESTIMATED=2]="ESTIMATED",CostCalculationStatus2[CostCalculationStatus2.PRICE_NOT_FOUND=3]="PRICE_NOT_FOUND",CostCalculationStatus2[CostCalculationStatus2.RECONCILED=4]="RECONCILED",CostCalculationStatus2[CostCalculationStatus2.MANUAL_ADJUSTED=5]="MANUAL_ADJUSTED"})(CostCalculationStatus||(CostCalculationStatus={}));var CursorKeySource;(function(CursorKeySource2){CursorKeySource2[CursorKeySource2.UNSPECIFIED=0]="UNSPECIFIED",CursorKeySource2[CursorKeySource2.MANAGED_KEY=1]="MANAGED_KEY"})(CursorKeySource||(CursorKeySource={}));var file_buf_validate_validate=fileDesc("ChtidWYvdmFsaWRhdGUvdmFsaWRhdGUucHJvdG8SDGJ1Zi52YWxpZGF0ZSI3CgRSdWxlEgoKAmlkGAEgASgJEg8KB21lc3NhZ2UYAiABKAkSEgoKZXhwcmVzc2lvbhgDIAEoCSKGAQoMTWVzc2FnZVJ1bGVzEhYKDmNlbF9leHByZXNzaW9uGAUgAygJEh8KA2NlbBgDIAMoCzISLmJ1Zi52YWxpZGF0ZS5SdWxlEi0KBW9uZW9mGAQgAygLMh4uYnVmLnZhbGlkYXRlLk1lc3NhZ2VPbmVvZlJ1bGVKBAgBEAJSCGRpc2FibGVkIjQKEE1lc3NhZ2VPbmVvZlJ1bGUSDgoGZmllbGRzGAEgAygJEhAKCHJlcXVpcmVkGAIgASgIIh4KCk9uZW9mUnVsZXMSEAoIcmVxdWlyZWQYASABKAgiiwkKCkZpZWxkUnVsZXMSFgoOY2VsX2V4cHJlc3Npb24YHSADKAkSHwoDY2VsGBcgAygLMhIuYnVmLnZhbGlkYXRlLlJ1bGUSEAoIcmVxdWlyZWQYGSABKAgSJAoGaWdub3JlGBsgASgOMhQuYnVmLnZhbGlkYXRlLklnbm9yZRIpCgVmbG9hdBgBIAEoCzIYLmJ1Zi52YWxpZGF0ZS5GbG9hdFJ1bGVzSAASKwoGZG91YmxlGAIgASgLMhkuYnVmLnZhbGlkYXRlLkRvdWJsZVJ1bGVzSAASKQoFaW50MzIYAyABKAsyGC5idWYudmFsaWRhdGUuSW50MzJSdWxlc0gAEikKBWludDY0GAQgASgLMhguYnVmLnZhbGlkYXRlLkludDY0UnVsZXNIABIrCgZ1aW50MzIYBSABKAsyGS5idWYudmFsaWRhdGUuVUludDMyUnVsZXNIABIrCgZ1aW50NjQYBiABKAsyGS5idWYudmFsaWRhdGUuVUludDY0UnVsZXNIABIrCgZzaW50MzIYByABKAsyGS5idWYudmFsaWRhdGUuU0ludDMyUnVsZXNIABIrCgZzaW50NjQYCCABKAsyGS5idWYudmFsaWRhdGUuU0ludDY0UnVsZXNIABItCgdmaXhlZDMyGAkgASgLMhouYnVmLnZhbGlkYXRlLkZpeGVkMzJSdWxlc0gAEi0KB2ZpeGVkNjQYCiABKAsyGi5idWYudmFsaWRhdGUuRml4ZWQ2NFJ1bGVzSAASLwoIc2ZpeGVkMzIYCyABKAsyGy5idWYudmFsaWRhdGUuU0ZpeGVkMzJSdWxlc0gAEi8KCHNmaXhlZDY0GAwgASgLMhsuYnVmLnZhbGlkYXRlLlNGaXhlZDY0UnVsZXNIABInCgRib29sGA0gASgLMhcuYnVmLnZhbGlkYXRlLkJvb2xSdWxlc0gAEisKBnN0cmluZxgOIAEoCzIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlc0gAEikKBWJ5dGVzGA8gASgLMhguYnVmLnZhbGlkYXRlLkJ5dGVzUnVsZXNIABInCgRlbnVtGBAgASgLMhcuYnVmLnZhbGlkYXRlLkVudW1SdWxlc0gAEi8KCHJlcGVhdGVkGBIgASgLMhsuYnVmLnZhbGlkYXRlLlJlcGVhdGVkUnVsZXNIABIlCgNtYXAYEyABKAsyFi5idWYudmFsaWRhdGUuTWFwUnVsZXNIABIlCgNhbnkYFCABKAsyFi5idWYudmFsaWRhdGUuQW55UnVsZXNIABIvCghkdXJhdGlvbhgVIAEoCzIbLmJ1Zi52YWxpZGF0ZS5EdXJhdGlvblJ1bGVzSAASMgoKZmllbGRfbWFzaxgcIAEoCzIcLmJ1Zi52YWxpZGF0ZS5GaWVsZE1hc2tSdWxlc0gAEjEKCXRpbWVzdGFtcBgWIAEoCzIcLmJ1Zi52YWxpZGF0ZS5UaW1lc3RhbXBSdWxlc0gAQgYKBHR5cGVKBAgYEBlKBAgaEBtSB3NraXBwZWRSDGlnbm9yZV9lbXB0eSJVCg9QcmVkZWZpbmVkUnVsZXMSHwoDY2VsGAEgAygLMhIuYnVmLnZhbGlkYXRlLlJ1bGVKBAgYEBlKBAgaEBtSB3NraXBwZWRSDGlnbm9yZV9lbXB0eSL4FgoKRmxvYXRSdWxlcxJ9CgVjb25zdBgBIAEoAkJuwkhrCmkKC2Zsb2F0LmNvbnN0Glp0aGlzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKSA/ICdtdXN0IGVxdWFsICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycSmQEKAmx0GAIgASgCQooBwkiGAQqDAQoIZmxvYXQubHQadyFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPj0gcnVsZXMubHQpPyAnbXVzdCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSAASqQEKA2x0ZRgDIAEoAkKZAcJIlQEKkgEKCWZsb2F0Lmx0ZRqEASFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPiBydWxlcy5sdGUpPyAnbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEtAHCgJndBgEIAEoAkLBB8JIvQcKhgEKCGZsb2F0Lmd0GnohaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwq9AQoLZmxvYXQuZ3RfbHQarQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrHAQoVZmxvYXQuZ3RfbHRfZXhjbHVzaXZlGq0BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmICh0aGlzLmlzTmFuKCkgfHwgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCkpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKzQEKDGZsb2F0Lmd0X2x0ZRq8AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCtcBChZmbG9hdC5ndF9sdGVfZXhjbHVzaXZlGrwBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHRoaXMuaXNOYW4oKSB8fCAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARKcCAoDZ3RlGAUgASgCQowIwkiICAqVAQoJZmxvYXQuZ3RlGocBIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCswBCgxmbG9hdC5ndGVfbHQauwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCtYBChZmbG9hdC5ndGVfbHRfZXhjbHVzaXZlGrsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAodGhpcy5pc05hbigpIHx8IChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrcAQoNZmxvYXQuZ3RlX2x0ZRrKAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK5gEKF2Zsb2F0Lmd0ZV9sdGVfZXhjbHVzaXZlGsoBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYmICh0aGlzLmlzTmFuKCkgfHwgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSkpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gBEnkKAmluGAYgAygCQm3CSGoKaAoIZmxvYXQuaW4aXCEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ211c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnAKBm5vdF9pbhgHIAMoAkJgwkhdClsKDGZsb2F0Lm5vdF9pbhpLdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAnbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEm8KBmZpbml0ZRgIIAEoCEJfwkhcCloKDGZsb2F0LmZpbml0ZRpKcnVsZXMuZmluaXRlID8gKHRoaXMuaXNOYW4oKSB8fCB0aGlzLmlzSW5mKCkgPyAnbXVzdCBiZSBmaW5pdGUnIDogJycpIDogJycSKwoHZXhhbXBsZRgJIAMoAkIawkgXChUKDWZsb2F0LmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAkILCglsZXNzX3RoYW5CDgoMZ3JlYXRlcl90aGFuIooXCgtEb3VibGVSdWxlcxJ+CgVjb25zdBgBIAEoAUJvwkhsCmoKDGRvdWJsZS5jb25zdBpadGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAnbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEpoBCgJsdBgCIAEoAUKLAcJIhwEKhAEKCWRvdWJsZS5sdBp3IWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+PSBydWxlcy5sdCk/ICdtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKqAQoDbHRlGAMgASgBQpoBwkiWAQqTAQoKZG91YmxlLmx0ZRqEASFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPiBydWxlcy5sdGUpPyAnbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEtUHCgJndBgEIAEoAULGB8JIwgcKhwEKCWRvdWJsZS5ndBp6IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKvgEKDGRvdWJsZS5ndF9sdBqtAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCsgBChZkb3VibGUuZ3RfbHRfZXhjbHVzaXZlGq0BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmICh0aGlzLmlzTmFuKCkgfHwgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCkpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKzgEKDWRvdWJsZS5ndF9sdGUavAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrYAQoXZG91YmxlLmd0X2x0ZV9leGNsdXNpdmUavAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAodGhpcy5pc05hbigpIHx8IChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEqEICgNndGUYBSABKAFCkQjCSI0ICpYBCgpkb3VibGUuZ3RlGocBIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCs0BCg1kb3VibGUuZ3RlX2x0GrsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrXAQoXZG91YmxlLmd0ZV9sdF9leGNsdXNpdmUauwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmICh0aGlzLmlzTmFuKCkgfHwgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSkpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCt0BCg5kb3VibGUuZ3RlX2x0ZRrKAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK5wEKGGRvdWJsZS5ndGVfbHRlX2V4Y2x1c2l2ZRrKAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAodGhpcy5pc05hbigpIHx8IChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ6CgJpbhgGIAMoAUJuwkhrCmkKCWRvdWJsZS5pbhpcISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAnbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycScQoGbm90X2luGAcgAygBQmHCSF4KXAoNZG91YmxlLm5vdF9pbhpLdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAnbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEnAKBmZpbml0ZRgIIAEoCEJgwkhdClsKDWRvdWJsZS5maW5pdGUaSnJ1bGVzLmZpbml0ZSA/ICh0aGlzLmlzTmFuKCkgfHwgdGhpcy5pc0luZigpID8gJ211c3QgYmUgZmluaXRlJyA6ICcnKSA6ICcnEiwKB2V4YW1wbGUYCSADKAFCG8JIGAoWCg5kb3VibGUuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4isBQKCkludDMyUnVsZXMSfQoFY29uc3QYASABKAVCbsJIawppCgtpbnQzMi5jb25zdBpadGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAnbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEoQBCgJsdBgCIAEoBUJ2wkhzCnEKCGludDMyLmx0GmUhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ211c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEpUBCgNsdGUYAyABKAVChQHCSIEBCn8KCWludDMyLmx0ZRpyIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICdtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAAS+QYKAmd0GAQgASgFQuoGwkjmBgp0CghpbnQzMi5ndBpoIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKrQEKC2ludDMyLmd0X2x0Gp0BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq1AQoVaW50MzIuZ3RfbHRfZXhjbHVzaXZlGpsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvQEKDGludDMyLmd0X2x0ZRqsAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycKxQEKFmludDMyLmd0X2x0ZV9leGNsdXNpdmUaqgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEsUHCgNndGUYBSABKAVCtQfCSLEHCoIBCglpbnQzMi5ndGUadSFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwq8AQoMaW50MzIuZ3RlX2x0GqsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCsQBChZpbnQzMi5ndGVfbHRfZXhjbHVzaXZlGqkBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrMAQoNaW50MzIuZ3RlX2x0ZRq6AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrUAQoXaW50MzIuZ3RlX2x0ZV9leGNsdXNpdmUauAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESeQoCaW4YBiADKAVCbcJIagpoCghpbnQzMi5pbhpcISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAnbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycScAoGbm90X2luGAcgAygFQmDCSF0KWwoMaW50MzIubm90X2luGkt0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICdtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSKwoHZXhhbXBsZRgIIAMoBUIawkgXChUKDWludDMyLmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAkILCglsZXNzX3RoYW5CDgoMZ3JlYXRlcl90aGFuIrAUCgpJbnQ2NFJ1bGVzEn0KBWNvbnN0GAEgASgDQm7CSGsKaQoLaW50NjQuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKEAQoCbHQYAiABKANCdsJIcwpxCghpbnQ2NC5sdBplIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICdtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKVAQoDbHRlGAMgASgDQoUBwkiBAQp/CglpbnQ2NC5sdGUaciFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID4gcnVsZXMubHRlPyAnbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEvkGCgJndBgEIAEoA0LqBsJI5gYKdAoIaW50NjQuZ3QaaCFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCq0BCgtpbnQ2NC5ndF9sdBqdAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKtQEKFWludDY0Lmd0X2x0X2V4Y2x1c2l2ZRqbAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndCAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCr0BCgxpbnQ2NC5ndF9sdGUarAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCsUBChZpbnQ2NC5ndF9sdGVfZXhjbHVzaXZlGqoBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLFBwoDZ3RlGAUgASgDQrUHwkixBwqCAQoJaW50NjQuZ3RlGnUhaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVzLmd0ZT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycKvAEKDGludDY0Lmd0ZV9sdBqrAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3RlICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrEAQoWaW50NjQuZ3RlX2x0X2V4Y2x1c2l2ZRqpAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKzAEKDWludDY0Lmd0ZV9sdGUaugFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK1AEKF2ludDY0Lmd0ZV9sdGVfZXhjbHVzaXZlGrgBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gBEnkKAmluGAYgAygDQm3CSGoKaAoIaW50NjQuaW4aXCEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ211c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnAKBm5vdF9pbhgHIAMoA0JgwkhdClsKDGludDY0Lm5vdF9pbhpLdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAnbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEisKB2V4YW1wbGUYCSADKANCGsJIFwoVCg1pbnQ2NC5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbiLCFAoLVUludDMyUnVsZXMSfgoFY29uc3QYASABKA1Cb8JIbApqCgx1aW50MzIuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKFAQoCbHQYAiABKA1Cd8JIdApyCgl1aW50MzIubHQaZSFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID49IHJ1bGVzLmx0PyAnbXVzdCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSAASlwEKA2x0ZRgDIAEoDUKHAcJIgwEKgAEKCnVpbnQzMi5sdGUaciFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID4gcnVsZXMubHRlPyAnbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEv4GCgJndBgEIAEoDULvBsJI6wYKdQoJdWludDMyLmd0GmghaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwquAQoMdWludDMyLmd0X2x0Gp0BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq2AQoWdWludDMyLmd0X2x0X2V4Y2x1c2l2ZRqbAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndCAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCr4BCg11aW50MzIuZ3RfbHRlGqwBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrGAQoXdWludDMyLmd0X2x0ZV9leGNsdXNpdmUaqgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEsoHCgNndGUYBSABKA1CugfCSLYHCoMBCgp1aW50MzIuZ3RlGnUhaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVzLmd0ZT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycKvQEKDXVpbnQzMi5ndGVfbHQaqwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKxQEKF3VpbnQzMi5ndGVfbHRfZXhjbHVzaXZlGqkBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrNAQoOdWludDMyLmd0ZV9sdGUaugFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK1QEKGHVpbnQzMi5ndGVfbHRlX2V4Y2x1c2l2ZRq4AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ6CgJpbhgGIAMoDUJuwkhrCmkKCXVpbnQzMi5pbhpcISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAnbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycScQoGbm90X2luGAcgAygNQmHCSF4KXAoNdWludDMyLm5vdF9pbhpLdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAnbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEiwKB2V4YW1wbGUYCCADKA1CG8JIGAoWCg51aW50MzIuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4iwhQKC1VJbnQ2NFJ1bGVzEn4KBWNvbnN0GAEgASgEQm/CSGwKagoMdWludDY0LmNvbnN0Glp0aGlzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKSA/ICdtdXN0IGVxdWFsICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycShQEKAmx0GAIgASgEQnfCSHQKcgoJdWludDY0Lmx0GmUhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ211c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEpcBCgNsdGUYAyABKARChwHCSIMBCoABCgp1aW50NjQubHRlGnIhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ211c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABL+BgoCZ3QYBCABKARC7wbCSOsGCnUKCXVpbnQ2NC5ndBpoIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKrgEKDHVpbnQ2NC5ndF9sdBqdAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKtgEKFnVpbnQ2NC5ndF9sdF9leGNsdXNpdmUamwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq+AQoNdWludDY0Lmd0X2x0ZRqsAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycKxgEKF3VpbnQ2NC5ndF9sdGVfZXhjbHVzaXZlGqoBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLKBwoDZ3RlGAUgASgEQroHwki2BwqDAQoKdWludDY0Lmd0ZRp1IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCr0BCg11aW50NjQuZ3RlX2x0GqsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCsUBChd1aW50NjQuZ3RlX2x0X2V4Y2x1c2l2ZRqpAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKzQEKDnVpbnQ2NC5ndGVfbHRlGroBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCtUBChh1aW50NjQuZ3RlX2x0ZV9leGNsdXNpdmUauAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESegoCaW4YBiADKARCbsJIawppCgl1aW50NjQuaW4aXCEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ211c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnEKBm5vdF9pbhgHIAMoBEJhwkheClwKDXVpbnQ2NC5ub3RfaW4aS3RoaXMgaW4gcnVsZXMubm90X2luID8gJ211c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJxIsCgdleGFtcGxlGAggAygEQhvCSBgKFgoOdWludDY0LmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAkILCglsZXNzX3RoYW5CDgoMZ3JlYXRlcl90aGFuIsIUCgtTSW50MzJSdWxlcxJ+CgVjb25zdBgBIAEoEUJvwkhsCmoKDHNpbnQzMi5jb25zdBpadGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAnbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEoUBCgJsdBgCIAEoEUJ3wkh0CnIKCXNpbnQzMi5sdBplIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICdtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKXAQoDbHRlGAMgASgRQocBwkiDAQqAAQoKc2ludDMyLmx0ZRpyIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICdtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAAS/gYKAmd0GAQgASgRQu8GwkjrBgp1CglzaW50MzIuZ3QaaCFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCq4BCgxzaW50MzIuZ3RfbHQanQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCrYBChZzaW50MzIuZ3RfbHRfZXhjbHVzaXZlGpsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvgEKDXNpbnQzMi5ndF9sdGUarAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCsYBChdzaW50MzIuZ3RfbHRlX2V4Y2x1c2l2ZRqqAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAESygcKA2d0ZRgFIAEoEUK6B8JItgcKgwEKCnNpbnQzMi5ndGUadSFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwq9AQoNc2ludDMyLmd0ZV9sdBqrAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3RlICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrFAQoXc2ludDMyLmd0ZV9sdF9leGNsdXNpdmUaqQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCs0BCg5zaW50MzIuZ3RlX2x0ZRq6AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrVAQoYc2ludDMyLmd0ZV9sdGVfZXhjbHVzaXZlGrgBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gBEnoKAmluGAYgAygRQm7CSGsKaQoJc2ludDMyLmluGlwhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICdtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJxCgZub3RfaW4YByADKBFCYcJIXgpcCg1zaW50MzIubm90X2luGkt0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICdtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSLAoHZXhhbXBsZRgIIAMoEUIbwkgYChYKDnNpbnQzMi5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbiLCFAoLU0ludDY0UnVsZXMSfgoFY29uc3QYASABKBJCb8JIbApqCgxzaW50NjQuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKFAQoCbHQYAiABKBJCd8JIdApyCglzaW50NjQubHQaZSFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID49IHJ1bGVzLmx0PyAnbXVzdCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSAASlwEKA2x0ZRgDIAEoEkKHAcJIgwEKgAEKCnNpbnQ2NC5sdGUaciFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID4gcnVsZXMubHRlPyAnbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEv4GCgJndBgEIAEoEkLvBsJI6wYKdQoJc2ludDY0Lmd0GmghaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwquAQoMc2ludDY0Lmd0X2x0Gp0BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq2AQoWc2ludDY0Lmd0X2x0X2V4Y2x1c2l2ZRqbAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndCAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCr4BCg1zaW50NjQuZ3RfbHRlGqwBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrGAQoXc2ludDY0Lmd0X2x0ZV9leGNsdXNpdmUaqgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEsoHCgNndGUYBSABKBJCugfCSLYHCoMBCgpzaW50NjQuZ3RlGnUhaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVzLmd0ZT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycKvQEKDXNpbnQ2NC5ndGVfbHQaqwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKxQEKF3NpbnQ2NC5ndGVfbHRfZXhjbHVzaXZlGqkBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrNAQoOc2ludDY0Lmd0ZV9sdGUaugFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK1QEKGHNpbnQ2NC5ndGVfbHRlX2V4Y2x1c2l2ZRq4AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ6CgJpbhgGIAMoEkJuwkhrCmkKCXNpbnQ2NC5pbhpcISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAnbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycScQoGbm90X2luGAcgAygSQmHCSF4KXAoNc2ludDY0Lm5vdF9pbhpLdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAnbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEiwKB2V4YW1wbGUYCCADKBJCG8JIGAoWCg5zaW50NjQuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4i0xQKDEZpeGVkMzJSdWxlcxJ/CgVjb25zdBgBIAEoB0JwwkhtCmsKDWZpeGVkMzIuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKGAQoCbHQYAiABKAdCeMJIdQpzCgpmaXhlZDMyLmx0GmUhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ211c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEpgBCgNsdGUYAyABKAdCiAHCSIQBCoEBCgtmaXhlZDMyLmx0ZRpyIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICdtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASgwcKAmd0GAQgASgHQvQGwkjwBgp2CgpmaXhlZDMyLmd0GmghaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwqvAQoNZml4ZWQzMi5ndF9sdBqdAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKtwEKF2ZpeGVkMzIuZ3RfbHRfZXhjbHVzaXZlGpsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvwEKDmZpeGVkMzIuZ3RfbHRlGqwBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrHAQoYZml4ZWQzMi5ndF9sdGVfZXhjbHVzaXZlGqoBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLPBwoDZ3RlGAUgASgHQr8Hwki7BwqEAQoLZml4ZWQzMi5ndGUadSFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwq+AQoOZml4ZWQzMi5ndGVfbHQaqwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKxgEKGGZpeGVkMzIuZ3RlX2x0X2V4Y2x1c2l2ZRqpAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKzgEKD2ZpeGVkMzIuZ3RlX2x0ZRq6AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrWAQoZZml4ZWQzMi5ndGVfbHRlX2V4Y2x1c2l2ZRq4AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ7CgJpbhgGIAMoB0JvwkhsCmoKCmZpeGVkMzIuaW4aXCEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ211c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnIKBm5vdF9pbhgHIAMoB0JiwkhfCl0KDmZpeGVkMzIubm90X2luGkt0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICdtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSLQoHZXhhbXBsZRgIIAMoB0IcwkgZChcKD2ZpeGVkMzIuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4i0xQKDEZpeGVkNjRSdWxlcxJ/CgVjb25zdBgBIAEoBkJwwkhtCmsKDWZpeGVkNjQuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKGAQoCbHQYAiABKAZCeMJIdQpzCgpmaXhlZDY0Lmx0GmUhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ211c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEpgBCgNsdGUYAyABKAZCiAHCSIQBCoEBCgtmaXhlZDY0Lmx0ZRpyIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICdtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASgwcKAmd0GAQgASgGQvQGwkjwBgp2CgpmaXhlZDY0Lmd0GmghaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwqvAQoNZml4ZWQ2NC5ndF9sdBqdAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKtwEKF2ZpeGVkNjQuZ3RfbHRfZXhjbHVzaXZlGpsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvwEKDmZpeGVkNjQuZ3RfbHRlGqwBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrHAQoYZml4ZWQ2NC5ndF9sdGVfZXhjbHVzaXZlGqoBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLPBwoDZ3RlGAUgASgGQr8Hwki7BwqEAQoLZml4ZWQ2NC5ndGUadSFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwq+AQoOZml4ZWQ2NC5ndGVfbHQaqwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKxgEKGGZpeGVkNjQuZ3RlX2x0X2V4Y2x1c2l2ZRqpAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKzgEKD2ZpeGVkNjQuZ3RlX2x0ZRq6AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrWAQoZZml4ZWQ2NC5ndGVfbHRlX2V4Y2x1c2l2ZRq4AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ7CgJpbhgGIAMoBkJvwkhsCmoKCmZpeGVkNjQuaW4aXCEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ211c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnIKBm5vdF9pbhgHIAMoBkJiwkhfCl0KDmZpeGVkNjQubm90X2luGkt0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICdtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSLQoHZXhhbXBsZRgIIAMoBkIcwkgZChcKD2ZpeGVkNjQuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4i5RQKDVNGaXhlZDMyUnVsZXMSgAEKBWNvbnN0GAEgASgPQnHCSG4KbAoOc2ZpeGVkMzIuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKHAQoCbHQYAiABKA9CecJIdgp0CgtzZml4ZWQzMi5sdBplIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICdtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKZAQoDbHRlGAMgASgPQokBwkiFAQqCAQoMc2ZpeGVkMzIubHRlGnIhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ211c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABKIBwoCZ3QYBCABKA9C+QbCSPUGCncKC3NmaXhlZDMyLmd0GmghaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwqwAQoOc2ZpeGVkMzIuZ3RfbHQanQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCrgBChhzZml4ZWQzMi5ndF9sdF9leGNsdXNpdmUamwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrAAQoPc2ZpeGVkMzIuZ3RfbHRlGqwBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrIAQoZc2ZpeGVkMzIuZ3RfbHRlX2V4Y2x1c2l2ZRqqAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAES1AcKA2d0ZRgFIAEoD0LEB8JIwAcKhQEKDHNmaXhlZDMyLmd0ZRp1IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCr8BCg9zZml4ZWQzMi5ndGVfbHQaqwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKxwEKGXNmaXhlZDMyLmd0ZV9sdF9leGNsdXNpdmUaqQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCs8BChBzZml4ZWQzMi5ndGVfbHRlGroBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCtcBChpzZml4ZWQzMi5ndGVfbHRlX2V4Y2x1c2l2ZRq4AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ8CgJpbhgGIAMoD0JwwkhtCmsKC3NmaXhlZDMyLmluGlwhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICdtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJzCgZub3RfaW4YByADKA9CY8JIYApeCg9zZml4ZWQzMi5ub3RfaW4aS3RoaXMgaW4gcnVsZXMubm90X2luID8gJ211c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJxIuCgdleGFtcGxlGAggAygPQh3CSBoKGAoQc2ZpeGVkMzIuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4i5RQKDVNGaXhlZDY0UnVsZXMSgAEKBWNvbnN0GAEgASgQQnHCSG4KbAoOc2ZpeGVkNjQuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKHAQoCbHQYAiABKBBCecJIdgp0CgtzZml4ZWQ2NC5sdBplIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICdtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKZAQoDbHRlGAMgASgQQokBwkiFAQqCAQoMc2ZpeGVkNjQubHRlGnIhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ211c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABKIBwoCZ3QYBCABKBBC+QbCSPUGCncKC3NmaXhlZDY0Lmd0GmghaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwqwAQoOc2ZpeGVkNjQuZ3RfbHQanQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCrgBChhzZml4ZWQ2NC5ndF9sdF9leGNsdXNpdmUamwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrAAQoPc2ZpeGVkNjQuZ3RfbHRlGqwBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrIAQoZc2ZpeGVkNjQuZ3RfbHRlX2V4Y2x1c2l2ZRqqAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAES1AcKA2d0ZRgFIAEoEELEB8JIwAcKhQEKDHNmaXhlZDY0Lmd0ZRp1IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCr8BCg9zZml4ZWQ2NC5ndGVfbHQaqwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKxwEKGXNmaXhlZDY0Lmd0ZV9sdF9leGNsdXNpdmUaqQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCs8BChBzZml4ZWQ2NC5ndGVfbHRlGroBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCtcBChpzZml4ZWQ2NC5ndGVfbHRlX2V4Y2x1c2l2ZRq4AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ8CgJpbhgGIAMoEEJwwkhtCmsKC3NmaXhlZDY0LmluGlwhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICdtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJzCgZub3RfaW4YByADKBBCY8JIYApeCg9zZml4ZWQ2NC5ub3RfaW4aS3RoaXMgaW4gcnVsZXMubm90X2luID8gJ211c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJxIuCgdleGFtcGxlGAggAygQQh3CSBoKGAoQc2ZpeGVkNjQuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4iwAEKCUJvb2xSdWxlcxJ8CgVjb25zdBgBIAEoCEJtwkhqCmgKCmJvb2wuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxIqCgdleGFtcGxlGAIgAygIQhnCSBYKFAoMYm9vbC5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAIi6jwKC1N0cmluZ1J1bGVzEoABCgVjb25zdBgBIAEoCUJxwkhuCmwKDHN0cmluZy5jb25zdBpcdGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAnbXVzdCBlcXVhbCBgJXNgJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycScQoDbGVuGBMgASgEQmTCSGEKXwoKc3RyaW5nLmxlbhpRdWludCh0aGlzLnNpemUoKSkgIT0gcnVsZXMubGVuID8gJ211c3QgYmUgJXMgY2hhcmFjdGVycycuZm9ybWF0KFtydWxlcy5sZW5dKSA6ICcnEokBCgdtaW5fbGVuGAIgASgEQnjCSHUKcwoOc3RyaW5nLm1pbl9sZW4aYXVpbnQodGhpcy5zaXplKCkpIDwgcnVsZXMubWluX2xlbiA/ICdtdXN0IGJlIGF0IGxlYXN0ICVzIGNoYXJhY3RlcnMnLmZvcm1hdChbcnVsZXMubWluX2xlbl0pIDogJycSiAEKB21heF9sZW4YAyABKARCd8JIdApyCg5zdHJpbmcubWF4X2xlbhpgdWludCh0aGlzLnNpemUoKSkgPiBydWxlcy5tYXhfbGVuID8gJ211c3QgYmUgYXQgbW9zdCAlcyBjaGFyYWN0ZXJzJy5mb3JtYXQoW3J1bGVzLm1heF9sZW5dKSA6ICcnEosBCglsZW5fYnl0ZXMYFCABKARCeMJIdQpzChBzdHJpbmcubGVuX2J5dGVzGl91aW50KGJ5dGVzKHRoaXMpLnNpemUoKSkgIT0gcnVsZXMubGVuX2J5dGVzID8gJ211c3QgYmUgJXMgYnl0ZXMnLmZvcm1hdChbcnVsZXMubGVuX2J5dGVzXSkgOiAnJxKUAQoJbWluX2J5dGVzGAQgASgEQoABwkh9CnsKEHN0cmluZy5taW5fYnl0ZXMaZ3VpbnQoYnl0ZXModGhpcykuc2l6ZSgpKSA8IHJ1bGVzLm1pbl9ieXRlcyA/ICdtdXN0IGJlIGF0IGxlYXN0ICVzIGJ5dGVzJy5mb3JtYXQoW3J1bGVzLm1pbl9ieXRlc10pIDogJycSkgEKCW1heF9ieXRlcxgFIAEoBEJ/wkh8CnoKEHN0cmluZy5tYXhfYnl0ZXMaZnVpbnQoYnl0ZXModGhpcykuc2l6ZSgpKSA+IHJ1bGVzLm1heF9ieXRlcyA/ICdtdXN0IGJlIGF0IG1vc3QgJXMgYnl0ZXMnLmZvcm1hdChbcnVsZXMubWF4X2J5dGVzXSkgOiAnJxKHAQoHcGF0dGVybhgGIAEoCUJ2wkhzCnEKDnN0cmluZy5wYXR0ZXJuGl8hdGhpcy5tYXRjaGVzKHJ1bGVzLnBhdHRlcm4pID8gJ2RvZXMgbm90IG1hdGNoIHJlZ2V4IHBhdHRlcm4gYCVzYCcuZm9ybWF0KFtydWxlcy5wYXR0ZXJuXSkgOiAnJxJ+CgZwcmVmaXgYByABKAlCbsJIawppCg1zdHJpbmcucHJlZml4GlghdGhpcy5zdGFydHNXaXRoKHJ1bGVzLnByZWZpeCkgPyAnZG9lcyBub3QgaGF2ZSBwcmVmaXggYCVzYCcuZm9ybWF0KFtydWxlcy5wcmVmaXhdKSA6ICcnEnwKBnN1ZmZpeBgIIAEoCUJswkhpCmcKDXN0cmluZy5zdWZmaXgaViF0aGlzLmVuZHNXaXRoKHJ1bGVzLnN1ZmZpeCkgPyAnZG9lcyBub3QgaGF2ZSBzdWZmaXggYCVzYCcuZm9ybWF0KFtydWxlcy5zdWZmaXhdKSA6ICcnEooBCghjb250YWlucxgJIAEoCUJ4wkh1CnMKD3N0cmluZy5jb250YWlucxpgIXRoaXMuY29udGFpbnMocnVsZXMuY29udGFpbnMpID8gJ2RvZXMgbm90IGNvbnRhaW4gc3Vic3RyaW5nIGAlc2AnLmZvcm1hdChbcnVsZXMuY29udGFpbnNdKSA6ICcnEpEBCgxub3RfY29udGFpbnMYFyABKAlCe8JIeAp2ChNzdHJpbmcubm90X2NvbnRhaW5zGl90aGlzLmNvbnRhaW5zKHJ1bGVzLm5vdF9jb250YWlucykgPyAnY29udGFpbnMgc3Vic3RyaW5nIGAlc2AnLmZvcm1hdChbcnVsZXMubm90X2NvbnRhaW5zXSkgOiAnJxJ6CgJpbhgKIAMoCUJuwkhrCmkKCXN0cmluZy5pbhpcISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAnbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycScQoGbm90X2luGAsgAygJQmHCSF4KXAoNc3RyaW5nLm5vdF9pbhpLdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAnbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEtkBCgVlbWFpbBgMIAEoCELHAcJIwwEKWwoMc3RyaW5nLmVtYWlsEh1tdXN0IGJlIGEgdmFsaWQgZW1haWwgYWRkcmVzcxosIXJ1bGVzLmVtYWlsIHx8IHRoaXMgPT0gJycgfHwgdGhpcy5pc0VtYWlsKCkKZAoSc3RyaW5nLmVtYWlsX2VtcHR5EjJ2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgZW1haWwgYWRkcmVzcxoaIXJ1bGVzLmVtYWlsIHx8IHRoaXMgIT0gJydIABLhAQoIaG9zdG5hbWUYDSABKAhCzAHCSMgBCl8KD3N0cmluZy5ob3N0bmFtZRIYbXVzdCBiZSBhIHZhbGlkIGhvc3RuYW1lGjIhcnVsZXMuaG9zdG5hbWUgfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzSG9zdG5hbWUoKQplChVzdHJpbmcuaG9zdG5hbWVfZW1wdHkSLXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBob3N0bmFtZRodIXJ1bGVzLmhvc3RuYW1lIHx8IHRoaXMgIT0gJydIABLBAQoCaXAYDiABKAhCsgHCSK4BCk8KCXN0cmluZy5pcBIabXVzdCBiZSBhIHZhbGlkIElQIGFkZHJlc3MaJiFydWxlcy5pcCB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcCgpClsKD3N0cmluZy5pcF9lbXB0eRIvdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQIGFkZHJlc3MaFyFydWxlcy5pcCB8fCB0aGlzICE9ICcnSAAS0AEKBGlwdjQYDyABKAhCvwHCSLsBClYKC3N0cmluZy5pcHY0EhxtdXN0IGJlIGEgdmFsaWQgSVB2NCBhZGRyZXNzGikhcnVsZXMuaXB2NCB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcCg0KQphChFzdHJpbmcuaXB2NF9lbXB0eRIxdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQdjQgYWRkcmVzcxoZIXJ1bGVzLmlwdjQgfHwgdGhpcyAhPSAnJ0gAEtABCgRpcHY2GBAgASgIQr8Bwki7AQpWCgtzdHJpbmcuaXB2NhIcbXVzdCBiZSBhIHZhbGlkIElQdjYgYWRkcmVzcxopIXJ1bGVzLmlwdjYgfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzSXAoNikKYQoRc3RyaW5nLmlwdjZfZW1wdHkSMXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBJUHY2IGFkZHJlc3MaGSFydWxlcy5pcHY2IHx8IHRoaXMgIT0gJydIABK5AQoDdXJpGBEgASgIQqkBwkilAQpLCgpzdHJpbmcudXJpEhNtdXN0IGJlIGEgdmFsaWQgVVJJGighcnVsZXMudXJpIHx8IHRoaXMgPT0gJycgfHwgdGhpcy5pc1VyaSgpClYKEHN0cmluZy51cmlfZW1wdHkSKHZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBVUkkaGCFydWxlcy51cmkgfHwgdGhpcyAhPSAnJ0gAEmoKB3VyaV9yZWYYEiABKAhCV8JIVApSCg5zdHJpbmcudXJpX3JlZhIdbXVzdCBiZSBhIHZhbGlkIFVSSSBSZWZlcmVuY2UaISFydWxlcy51cmlfcmVmIHx8IHRoaXMuaXNVcmlSZWYoKUgAEokCCgdhZGRyZXNzGBUgASgIQvUBwkjxAQp7Cg5zdHJpbmcuYWRkcmVzcxInbXVzdCBiZSBhIHZhbGlkIGhvc3RuYW1lLCBvciBpcCBhZGRyZXNzGkAhcnVsZXMuYWRkcmVzcyB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNIb3N0bmFtZSgpIHx8IHRoaXMuaXNJcCgpCnIKFHN0cmluZy5hZGRyZXNzX2VtcHR5Ejx2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgaG9zdG5hbWUsIG9yIGlwIGFkZHJlc3MaHCFydWxlcy5hZGRyZXNzIHx8IHRoaXMgIT0gJydIABKSAgoEdXVpZBgWIAEoCEKBAsJI/QEKnwEKC3N0cmluZy51dWlkEhRtdXN0IGJlIGEgdmFsaWQgVVVJRBp6IXJ1bGVzLnV1aWQgfHwgdGhpcyA9PSAnJyB8fCB0aGlzLm1hdGNoZXMoJ15bMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0kJykKWQoRc3RyaW5nLnV1aWRfZW1wdHkSKXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBVVUlEGhkhcnVsZXMudXVpZCB8fCB0aGlzICE9ICcnSAAS6gEKBXR1dWlkGCEgASgIQtgBwkjUAQptCgxzdHJpbmcudHV1aWQSHG11c3QgYmUgYSB2YWxpZCB0cmltbWVkIFVVSUQaPyFydWxlcy50dXVpZCB8fCB0aGlzID09ICcnIHx8IHRoaXMubWF0Y2hlcygnXlswLTlhLWZBLUZdezMyfSQnKQpjChJzdHJpbmcudHV1aWRfZW1wdHkSMXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCB0cmltbWVkIFVVSUQaGiFydWxlcy50dXVpZCB8fCB0aGlzICE9ICcnSAASkAIKEWlwX3dpdGhfcHJlZml4bGVuGBogASgIQvIBwkjuAQpyChhzdHJpbmcuaXBfd2l0aF9wcmVmaXhsZW4SGW11c3QgYmUgYSB2YWxpZCBJUCBwcmVmaXgaOyFydWxlcy5pcF93aXRoX3ByZWZpeGxlbiB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcFByZWZpeCgpCngKHnN0cmluZy5pcF93aXRoX3ByZWZpeGxlbl9lbXB0eRIudmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQIHByZWZpeBomIXJ1bGVzLmlwX3dpdGhfcHJlZml4bGVuIHx8IHRoaXMgIT0gJydIABLJAgoTaXB2NF93aXRoX3ByZWZpeGxlbhgbIAEoCEKpAsJIpQIKjQEKGnN0cmluZy5pcHY0X3dpdGhfcHJlZml4bGVuEi9tdXN0IGJlIGEgdmFsaWQgSVB2NCBhZGRyZXNzIHdpdGggcHJlZml4IGxlbmd0aBo+IXJ1bGVzLmlwdjRfd2l0aF9wcmVmaXhsZW4gfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzSXBQcmVmaXgoNCkKkgEKIHN0cmluZy5pcHY0X3dpdGhfcHJlZml4bGVuX2VtcHR5EkR2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVB2NCBhZGRyZXNzIHdpdGggcHJlZml4IGxlbmd0aBooIXJ1bGVzLmlwdjRfd2l0aF9wcmVmaXhsZW4gfHwgdGhpcyAhPSAnJ0gAEskCChNpcHY2X3dpdGhfcHJlZml4bGVuGBwgASgIQqkCwkilAgqNAQoac3RyaW5nLmlwdjZfd2l0aF9wcmVmaXhsZW4SL211c3QgYmUgYSB2YWxpZCBJUHY2IGFkZHJlc3Mgd2l0aCBwcmVmaXggbGVuZ3RoGj4hcnVsZXMuaXB2Nl93aXRoX3ByZWZpeGxlbiB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcFByZWZpeCg2KQqSAQogc3RyaW5nLmlwdjZfd2l0aF9wcmVmaXhsZW5fZW1wdHkSRHZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBJUHY2IGFkZHJlc3Mgd2l0aCBwcmVmaXggbGVuZ3RoGighcnVsZXMuaXB2Nl93aXRoX3ByZWZpeGxlbiB8fCB0aGlzICE9ICcnSAAS7AEKCWlwX3ByZWZpeBgdIAEoCELWAcJI0gEKZgoQc3RyaW5nLmlwX3ByZWZpeBIZbXVzdCBiZSBhIHZhbGlkIElQIHByZWZpeBo3IXJ1bGVzLmlwX3ByZWZpeCB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcFByZWZpeCh0cnVlKQpoChZzdHJpbmcuaXBfcHJlZml4X2VtcHR5Ei52YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVAgcHJlZml4Gh4hcnVsZXMuaXBfcHJlZml4IHx8IHRoaXMgIT0gJydIABL9AQoLaXB2NF9wcmVmaXgYHiABKAhC5QHCSOEBCm8KEnN0cmluZy5pcHY0X3ByZWZpeBIbbXVzdCBiZSBhIHZhbGlkIElQdjQgcHJlZml4GjwhcnVsZXMuaXB2NF9wcmVmaXggfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzSXBQcmVmaXgoNCwgdHJ1ZSkKbgoYc3RyaW5nLmlwdjRfcHJlZml4X2VtcHR5EjB2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVB2NCBwcmVmaXgaICFydWxlcy5pcHY0X3ByZWZpeCB8fCB0aGlzICE9ICcnSAAS/QEKC2lwdjZfcHJlZml4GB8gASgIQuUBwkjhAQpvChJzdHJpbmcuaXB2Nl9wcmVmaXgSG211c3QgYmUgYSB2YWxpZCBJUHY2IHByZWZpeBo8IXJ1bGVzLmlwdjZfcHJlZml4IHx8IHRoaXMgPT0gJycgfHwgdGhpcy5pc0lwUHJlZml4KDYsIHRydWUpCm4KGHN0cmluZy5pcHY2X3ByZWZpeF9lbXB0eRIwdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQdjYgcHJlZml4GiAhcnVsZXMuaXB2Nl9wcmVmaXggfHwgdGhpcyAhPSAnJ0gAEq8CCg1ob3N0X2FuZF9wb3J0GCAgASgIQpUCwkiRAgqTAQoUc3RyaW5nLmhvc3RfYW5kX3BvcnQSO211c3QgYmUgYSB2YWxpZCBob3N0IChob3N0bmFtZSBvciBJUCBhZGRyZXNzKSBhbmQgcG9ydCBwYWlyGj4hcnVsZXMuaG9zdF9hbmRfcG9ydCB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNIb3N0QW5kUG9ydCh0cnVlKQp5ChpzdHJpbmcuaG9zdF9hbmRfcG9ydF9lbXB0eRI3dmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIGhvc3QgYW5kIHBvcnQgcGFpchoiIXJ1bGVzLmhvc3RfYW5kX3BvcnQgfHwgdGhpcyAhPSAnJ0gAEu4BCgR1bGlkGCMgASgIQt0BwkjZAQp8CgtzdHJpbmcudWxpZBIUbXVzdCBiZSBhIHZhbGlkIFVMSUQaVyFydWxlcy51bGlkIHx8IHRoaXMgPT0gJycgfHwgdGhpcy5tYXRjaGVzKCdeWzAtN11bMC05QS1ISktNTlAtVFYtWmEtaGprbW5wLXR2LXpdezI1fSQnKQpZChFzdHJpbmcudWxpZF9lbXB0eRIpdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIFVMSUQaGSFydWxlcy51bGlkIHx8IHRoaXMgIT0gJydIABLUAgoMcHJvdG9idWZfZnFuGCUgASgIQrsCwki3AgqvAQoTc3RyaW5nLnByb3RvYnVmX2ZxbhItbXVzdCBiZSBhIHZhbGlkIGZ1bGx5LXF1YWxpZmllZCBQcm90b2J1ZiBuYW1lGmkhcnVsZXMucHJvdG9idWZfZnFuIHx8IHRoaXMgPT0gJycgfHwgdGhpcy5tYXRjaGVzKCdeW0EtWmEtel9dW0EtWmEtel8wLTldKihcXC5bQS1aYS16X11bQS1aYS16XzAtOV0qKSokJykKggEKGXN0cmluZy5wcm90b2J1Zl9mcW5fZW1wdHkSQnZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBmdWxseS1xdWFsaWZpZWQgUHJvdG9idWYgbmFtZRohIXJ1bGVzLnByb3RvYnVmX2ZxbiB8fCB0aGlzICE9ICcnSAASkQMKEHByb3RvYnVmX2RvdF9mcW4YJiABKAhC9ALCSPACCs0BChdzdHJpbmcucHJvdG9idWZfZG90X2ZxbhJAbXVzdCBiZSBhIHZhbGlkIGZ1bGx5LXF1YWxpZmllZCBQcm90b2J1ZiBuYW1lIHdpdGggYSBsZWFkaW5nIGRvdBpwIXJ1bGVzLnByb3RvYnVmX2RvdF9mcW4gfHwgdGhpcyA9PSAnJyB8fCB0aGlzLm1hdGNoZXMoJ15cXC5bQS1aYS16X11bQS1aYS16XzAtOV0qKFxcLltBLVphLXpfXVtBLVphLXpfMC05XSopKiQnKQqdAQodc3RyaW5nLnByb3RvYnVmX2RvdF9mcW5fZW1wdHkSVXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBmdWxseS1xdWFsaWZpZWQgUHJvdG9idWYgbmFtZSB3aXRoIGEgbGVhZGluZyBkb3QaJSFydWxlcy5wcm90b2J1Zl9kb3RfZnFuIHx8IHRoaXMgIT0gJydIABKcBQoQd2VsbF9rbm93bl9yZWdleBgYIAEoDjIYLmJ1Zi52YWxpZGF0ZS5Lbm93blJlZ2V4QuUEwkjhBArqAQojc3RyaW5nLndlbGxfa25vd25fcmVnZXguaGVhZGVyX25hbWUSIG11c3QgYmUgYSB2YWxpZCBIVFRQIGhlYWRlciBuYW1lGqABcnVsZXMud2VsbF9rbm93bl9yZWdleCAhPSAxIHx8IHRoaXMgPT0gJycgfHwgdGhpcy5tYXRjaGVzKCFoYXMocnVsZXMuc3RyaWN0KSB8fCBydWxlcy5zdHJpY3QgPydeOj9bMC05YS16QS1aISMkJSZcJyorLS5eX3x+XHg2MF0rJCcgOideW15cdTAwMDBcdTAwMEFcdTAwMERdKyQnKQqNAQopc3RyaW5nLndlbGxfa25vd25fcmVnZXguaGVhZGVyX25hbWVfZW1wdHkSNXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBIVFRQIGhlYWRlciBuYW1lGilydWxlcy53ZWxsX2tub3duX3JlZ2V4ICE9IDEgfHwgdGhpcyAhPSAnJwrhAQokc3RyaW5nLndlbGxfa25vd25fcmVnZXguaGVhZGVyX3ZhbHVlEiFtdXN0IGJlIGEgdmFsaWQgSFRUUCBoZWFkZXIgdmFsdWUalQFydWxlcy53ZWxsX2tub3duX3JlZ2V4ICE9IDIgfHwgdGhpcy5tYXRjaGVzKCFoYXMocnVsZXMuc3RyaWN0KSB8fCBydWxlcy5zdHJpY3QgPydeW15cdTAwMDAtXHUwMDA4XHUwMDBBLVx1MDAxRlx1MDA3Rl0qJCcgOideW15cdTAwMDBcdTAwMEFcdTAwMERdKiQnKUgAEg4KBnN0cmljdBgZIAEoCBIsCgdleGFtcGxlGCIgAygJQhvCSBgKFgoOc3RyaW5nLmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAkIMCgp3ZWxsX2tub3duIt0RCgpCeXRlc1J1bGVzEnoKBWNvbnN0GAEgASgMQmvCSGgKZgoLYnl0ZXMuY29uc3QaV3RoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgYmUgJXgnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxJrCgNsZW4YDSABKARCXsJIWwpZCglieXRlcy5sZW4aTHVpbnQodGhpcy5zaXplKCkpICE9IHJ1bGVzLmxlbiA/ICdtdXN0IGJlICVzIGJ5dGVzJy5mb3JtYXQoW3J1bGVzLmxlbl0pIDogJycSgwEKB21pbl9sZW4YAiABKARCcsJIbwptCg1ieXRlcy5taW5fbGVuGlx1aW50KHRoaXMuc2l6ZSgpKSA8IHJ1bGVzLm1pbl9sZW4gPyAnbXVzdCBiZSBhdCBsZWFzdCAlcyBieXRlcycuZm9ybWF0KFtydWxlcy5taW5fbGVuXSkgOiAnJxKCAQoHbWF4X2xlbhgDIAEoBEJxwkhuCmwKDWJ5dGVzLm1heF9sZW4aW3VpbnQodGhpcy5zaXplKCkpID4gcnVsZXMubWF4X2xlbiA/ICdtdXN0IGJlIGF0IG1vc3QgJXMgYnl0ZXMnLmZvcm1hdChbcnVsZXMubWF4X2xlbl0pIDogJycSigEKB3BhdHRlcm4YBCABKAlCecJIdgp0Cg1ieXRlcy5wYXR0ZXJuGmMhc3RyaW5nKHRoaXMpLm1hdGNoZXMocnVsZXMucGF0dGVybikgPyAnbXVzdCBtYXRjaCByZWdleCBwYXR0ZXJuIGAlc2AnLmZvcm1hdChbcnVsZXMucGF0dGVybl0pIDogJycSewoGcHJlZml4GAUgASgMQmvCSGgKZgoMYnl0ZXMucHJlZml4GlYhdGhpcy5zdGFydHNXaXRoKHJ1bGVzLnByZWZpeCkgPyAnZG9lcyBub3QgaGF2ZSBwcmVmaXggJXgnLmZvcm1hdChbcnVsZXMucHJlZml4XSkgOiAnJxJ5CgZzdWZmaXgYBiABKAxCacJIZgpkCgxieXRlcy5zdWZmaXgaVCF0aGlzLmVuZHNXaXRoKHJ1bGVzLnN1ZmZpeCkgPyAnZG9lcyBub3QgaGF2ZSBzdWZmaXggJXgnLmZvcm1hdChbcnVsZXMuc3VmZml4XSkgOiAnJxJ9Cghjb250YWlucxgHIAEoDEJrwkhoCmYKDmJ5dGVzLmNvbnRhaW5zGlQhdGhpcy5jb250YWlucyhydWxlcy5jb250YWlucykgPyAnZG9lcyBub3QgY29udGFpbiAleCcuZm9ybWF0KFtydWxlcy5jb250YWluc10pIDogJycSoQEKAmluGAggAygMQpQBwkiQAQqNAQoIYnl0ZXMuaW4agAFnZXRGaWVsZChydWxlcywgJ2luJykuc2l6ZSgpID4gMCAmJiAhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICdtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJwCgZub3RfaW4YCSADKAxCYMJIXQpbCgxieXRlcy5ub3RfaW4aS3RoaXMgaW4gcnVsZXMubm90X2luID8gJ211c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJxLlAQoCaXAYCiABKAhC1gHCSNIBCm4KCGJ5dGVzLmlwEhptdXN0IGJlIGEgdmFsaWQgSVAgYWRkcmVzcxpGIXJ1bGVzLmlwIHx8IHRoaXMuc2l6ZSgpID09IDAgfHwgdGhpcy5zaXplKCkgPT0gNCB8fCB0aGlzLnNpemUoKSA9PSAxNgpgCg5ieXRlcy5pcF9lbXB0eRIvdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQIGFkZHJlc3MaHSFydWxlcy5pcCB8fCB0aGlzLnNpemUoKSAhPSAwSAAS3gEKBGlwdjQYCyABKAhCzQHCSMkBCl8KCmJ5dGVzLmlwdjQSHG11c3QgYmUgYSB2YWxpZCBJUHY0IGFkZHJlc3MaMyFydWxlcy5pcHY0IHx8IHRoaXMuc2l6ZSgpID09IDAgfHwgdGhpcy5zaXplKCkgPT0gNApmChBieXRlcy5pcHY0X2VtcHR5EjF2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVB2NCBhZGRyZXNzGh8hcnVsZXMuaXB2NCB8fCB0aGlzLnNpemUoKSAhPSAwSAAS3wEKBGlwdjYYDCABKAhCzgHCSMoBCmAKCmJ5dGVzLmlwdjYSHG11c3QgYmUgYSB2YWxpZCBJUHY2IGFkZHJlc3MaNCFydWxlcy5pcHY2IHx8IHRoaXMuc2l6ZSgpID09IDAgfHwgdGhpcy5zaXplKCkgPT0gMTYKZgoQYnl0ZXMuaXB2Nl9lbXB0eRIxdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQdjYgYWRkcmVzcxofIXJ1bGVzLmlwdjYgfHwgdGhpcy5zaXplKCkgIT0gMEgAEs8BCgR1dWlkGA8gASgIQr4Bwki6AQpYCgpieXRlcy51dWlkEhRtdXN0IGJlIGEgdmFsaWQgVVVJRBo0IXJ1bGVzLnV1aWQgfHwgdGhpcy5zaXplKCkgPT0gMCB8fCB0aGlzLnNpemUoKSA9PSAxNgpeChBieXRlcy51dWlkX2VtcHR5Eil2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgVVVJRBofIXJ1bGVzLnV1aWQgfHwgdGhpcy5zaXplKCkgIT0gMEgAEisKB2V4YW1wbGUYDiADKAxCGsJIFwoVCg1ieXRlcy5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCDAoKd2VsbF9rbm93biLBAwoJRW51bVJ1bGVzEnwKBWNvbnN0GAEgASgFQm3CSGoKaAoKZW51bS5jb25zdBpadGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAnbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEhQKDGRlZmluZWRfb25seRgCIAEoCBJ4CgJpbhgDIAMoBUJswkhpCmcKB2VudW0uaW4aXCEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ211c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEm8KBm5vdF9pbhgEIAMoBUJfwkhcCloKC2VudW0ubm90X2luGkt0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICdtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSKgoHZXhhbXBsZRgFIAMoBUIZwkgWChQKDGVudW0uZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACIu0DCg1SZXBlYXRlZFJ1bGVzEpYBCgltaW5faXRlbXMYASABKARCggHCSH8KfQoScmVwZWF0ZWQubWluX2l0ZW1zGmd1aW50KHRoaXMuc2l6ZSgpKSA8IHJ1bGVzLm1pbl9pdGVtcyA/ICdtdXN0IGNvbnRhaW4gYXQgbGVhc3QgJWQgaXRlbShzKScuZm9ybWF0KFtydWxlcy5taW5faXRlbXNdKSA6ICcnEpwBCgltYXhfaXRlbXMYAiABKARCiAHCSIQBCoEBChJyZXBlYXRlZC5tYXhfaXRlbXMaa3VpbnQodGhpcy5zaXplKCkpID4gcnVsZXMubWF4X2l0ZW1zID8gJ211c3QgY29udGFpbiBubyBtb3JlIHRoYW4gJXMgaXRlbShzKScuZm9ybWF0KFtydWxlcy5tYXhfaXRlbXNdKSA6ICcnEnAKBnVuaXF1ZRgDIAEoCEJgwkhdClsKD3JlcGVhdGVkLnVuaXF1ZRIocmVwZWF0ZWQgdmFsdWUgbXVzdCBjb250YWluIHVuaXF1ZSBpdGVtcxoeIXJ1bGVzLnVuaXF1ZSB8fCB0aGlzLnVuaXF1ZSgpEicKBWl0ZW1zGAQgASgLMhguYnVmLnZhbGlkYXRlLkZpZWxkUnVsZXMqCQjoBxCAgICAAiKKAwoITWFwUnVsZXMSjwEKCW1pbl9wYWlycxgBIAEoBEJ8wkh5CncKDW1hcC5taW5fcGFpcnMaZnVpbnQodGhpcy5zaXplKCkpIDwgcnVsZXMubWluX3BhaXJzID8gJ21hcCBtdXN0IGJlIGF0IGxlYXN0ICVkIGVudHJpZXMnLmZvcm1hdChbcnVsZXMubWluX3BhaXJzXSkgOiAnJxKOAQoJbWF4X3BhaXJzGAIgASgEQnvCSHgKdgoNbWFwLm1heF9wYWlycxpldWludCh0aGlzLnNpemUoKSkgPiBydWxlcy5tYXhfcGFpcnMgPyAnbWFwIG11c3QgYmUgYXQgbW9zdCAlZCBlbnRyaWVzJy5mb3JtYXQoW3J1bGVzLm1heF9wYWlyc10pIDogJycSJgoEa2V5cxgEIAEoCzIYLmJ1Zi52YWxpZGF0ZS5GaWVsZFJ1bGVzEigKBnZhbHVlcxgFIAEoCzIYLmJ1Zi52YWxpZGF0ZS5GaWVsZFJ1bGVzKgkI6AcQgICAgAIiJgoIQW55UnVsZXMSCgoCaW4YAiADKAkSDgoGbm90X2luGAMgAygJIr8WCg1EdXJhdGlvblJ1bGVzEpsBCgVjb25zdBgCIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbkJxwkhuCmwKDmR1cmF0aW9uLmNvbnN0Glp0aGlzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKSA/ICdtdXN0IGVxdWFsICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycSogEKAmx0GAMgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQnnCSHYKdAoLZHVyYXRpb24ubHQaZSFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID49IHJ1bGVzLmx0PyAnbXVzdCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSAAStAEKA2x0ZRgEIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbkKJAcJIhQEKggEKDGR1cmF0aW9uLmx0ZRpyIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICdtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASowcKAmd0GAUgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQvkGwkj1Bgp3CgtkdXJhdGlvbi5ndBpoIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKsAEKDmR1cmF0aW9uLmd0X2x0Gp0BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq4AQoYZHVyYXRpb24uZ3RfbHRfZXhjbHVzaXZlGpsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKwAEKD2R1cmF0aW9uLmd0X2x0ZRqsAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycKyAEKGWR1cmF0aW9uLmd0X2x0ZV9leGNsdXNpdmUaqgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEu8HCgNndGUYBiABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25CxAfCSMAHCoUBCgxkdXJhdGlvbi5ndGUadSFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwq/AQoPZHVyYXRpb24uZ3RlX2x0GqsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCscBChlkdXJhdGlvbi5ndGVfbHRfZXhjbHVzaXZlGqkBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrPAQoQZHVyYXRpb24uZ3RlX2x0ZRq6AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrXAQoaZHVyYXRpb24uZ3RlX2x0ZV9leGNsdXNpdmUauAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESlwEKAmluGAcgAygLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQnDCSG0KawoLZHVyYXRpb24uaW4aXCEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ211c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEo4BCgZub3RfaW4YCCADKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25CY8JIYApeCg9kdXJhdGlvbi5ub3RfaW4aS3RoaXMgaW4gcnVsZXMubm90X2luID8gJ211c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJxJJCgdleGFtcGxlGAkgAygLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQh3CSBoKGAoQZHVyYXRpb24uZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4i6wUKDkZpZWxkTWFza1J1bGVzErkBCgVjb25zdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tCjQHCSIkBCoYBChBmaWVsZF9tYXNrLmNvbnN0GnJ0aGlzLnBhdGhzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKS5wYXRocyA/ICdtdXN0IGVxdWFsIHBhdGhzICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKS5wYXRoc10pIDogJycS0wEKAmluGAIgAygJQsYBwkjCAQq/AQoNZmllbGRfbWFzay5pbhqtASF0aGlzLnBhdGhzLmFsbChwLCBwIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSB8fCBnZXRGaWVsZChydWxlcywgJ2luJykuZXhpc3RzKGYsIHAuc3RhcnRzV2l0aChmKycuJykpKSA/ICdtdXN0IG9ubHkgY29udGFpbiBwYXRocyBpbiAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEu0BCgZub3RfaW4YAyADKAlC3AHCSNgBCtUBChFmaWVsZF9tYXNrLm5vdF9pbhq/ASF0aGlzLnBhdGhzLmFsbChwLCAhKHAgaW4gZ2V0RmllbGQocnVsZXMsICdub3RfaW4nKSB8fCBnZXRGaWVsZChydWxlcywgJ25vdF9pbicpLmV4aXN0cyhmLCBwLnN0YXJ0c1dpdGgoZisnLicpKSkpID8gJ211c3Qgbm90IGNvbnRhaW4gYW55IHBhdGhzIGluICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnbm90X2luJyldKSA6ICcnEkwKB2V4YW1wbGUYBCADKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrQh/CSBwKGgoSZmllbGRfbWFzay5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAIisBcKDlRpbWVzdGFtcFJ1bGVzEp0BCgVjb25zdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCcsJIbwptCg90aW1lc3RhbXAuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKkAQoCbHQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQnrCSHcKdQoMdGltZXN0YW1wLmx0GmUhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ211c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAErYBCgNsdGUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQooBwkiGAQqDAQoNdGltZXN0YW1wLmx0ZRpyIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICdtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASZgoGbHRfbm93GAcgASgIQlTCSFEKTwoQdGltZXN0YW1wLmx0X25vdxo7KHJ1bGVzLmx0X25vdyAmJiB0aGlzID4gbm93KSA/ICdtdXN0IGJlIGxlc3MgdGhhbiBub3cnIDogJydIABKpBwoCZ3QYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQv4Gwkj6Bgp4Cgx0aW1lc3RhbXAuZ3QaaCFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCrEBCg90aW1lc3RhbXAuZ3RfbHQanQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCrkBChl0aW1lc3RhbXAuZ3RfbHRfZXhjbHVzaXZlGpsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKwQEKEHRpbWVzdGFtcC5ndF9sdGUarAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCskBChp0aW1lc3RhbXAuZ3RfbHRlX2V4Y2x1c2l2ZRqqAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAES9QcKA2d0ZRgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCyQfCSMUHCoYBCg10aW1lc3RhbXAuZ3RlGnUhaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVzLmd0ZT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycKwAEKEHRpbWVzdGFtcC5ndGVfbHQaqwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKyAEKGnRpbWVzdGFtcC5ndGVfbHRfZXhjbHVzaXZlGqkBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrQAQoRdGltZXN0YW1wLmd0ZV9sdGUaugFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK2AEKG3RpbWVzdGFtcC5ndGVfbHRlX2V4Y2x1c2l2ZRq4AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJpCgZndF9ub3cYCCABKAhCV8JIVApSChB0aW1lc3RhbXAuZ3Rfbm93Gj4ocnVsZXMuZ3Rfbm93ICYmIHRoaXMgPCBub3cpID8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG5vdycgOiAnJ0gBErEBCgZ3aXRoaW4YCSABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25ChQHCSIEBCn8KEHRpbWVzdGFtcC53aXRoaW4aa3RoaXMgPCBub3ctcnVsZXMud2l0aGluIHx8IHRoaXMgPiBub3crcnVsZXMud2l0aGluID8gJ211c3QgYmUgd2l0aGluICVzIG9mIG5vdycuZm9ybWF0KFtydWxlcy53aXRoaW5dKSA6ICcnEksKB2V4YW1wbGUYCiADKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQh7CSBsKGQoRdGltZXN0YW1wLmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAkILCglsZXNzX3RoYW5CDgoMZ3JlYXRlcl90aGFuIjkKClZpb2xhdGlvbnMSKwoKdmlvbGF0aW9ucxgBIAMoCzIXLmJ1Zi52YWxpZGF0ZS5WaW9sYXRpb24inwEKCVZpb2xhdGlvbhImCgVmaWVsZBgFIAEoCzIXLmJ1Zi52YWxpZGF0ZS5GaWVsZFBhdGgSJQoEcnVsZRgGIAEoCzIXLmJ1Zi52YWxpZGF0ZS5GaWVsZFBhdGgSDwoHcnVsZV9pZBgCIAEoCRIPCgdtZXNzYWdlGAMgASgJEg8KB2Zvcl9rZXkYBCABKAhKBAgBEAJSCmZpZWxkX3BhdGgiPQoJRmllbGRQYXRoEjAKCGVsZW1lbnRzGAEgAygLMh4uYnVmLnZhbGlkYXRlLkZpZWxkUGF0aEVsZW1lbnQi6QIKEEZpZWxkUGF0aEVsZW1lbnQSFAoMZmllbGRfbnVtYmVyGAEgASgFEhIKCmZpZWxkX25hbWUYAiABKAkSPgoKZmllbGRfdHlwZRgDIAEoDjIqLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90by5UeXBlEjwKCGtleV90eXBlGAQgASgOMiouZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvLlR5cGUSPgoKdmFsdWVfdHlwZRgFIAEoDjIqLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90by5UeXBlEg8KBWluZGV4GAYgASgESAASEgoIYm9vbF9rZXkYByABKAhIABIRCgdpbnRfa2V5GAggASgDSAASEgoIdWludF9rZXkYCSABKARIABIUCgpzdHJpbmdfa2V5GAogASgJSABCCwoJc3Vic2NyaXB0KqEBCgZJZ25vcmUSFgoSSUdOT1JFX1VOU1BFQ0lGSUVEEAASGAoUSUdOT1JFX0lGX1pFUk9fVkFMVUUQARIRCg1JR05PUkVfQUxXQVlTEAMiBAgCEAIqDElHTk9SRV9FTVBUWSoOSUdOT1JFX0RFRkFVTFQqF0lHTk9SRV9JRl9ERUZBVUxUX1ZBTFVFKhVJR05PUkVfSUZfVU5QT1BVTEFURUQqbgoKS25vd25SZWdleBIbChdLTk9XTl9SRUdFWF9VTlNQRUNJRklFRBAAEiAKHEtOT1dOX1JFR0VYX0hUVFBfSEVBREVSX05BTUUQARIhCh1LTk9XTl9SRUdFWF9IVFRQX0hFQURFUl9WQUxVRRACOlYKB21lc3NhZ2USHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYhwkgASgLMhouYnVmLnZhbGlkYXRlLk1lc3NhZ2VSdWxlc1IHbWVzc2FnZTpOCgVvbmVvZhIdLmdvb2dsZS5wcm90b2J1Zi5PbmVvZk9wdGlvbnMYhwkgASgLMhguYnVmLnZhbGlkYXRlLk9uZW9mUnVsZXNSBW9uZW9mOk4KBWZpZWxkEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxiHCSABKAsyGC5idWYudmFsaWRhdGUuRmllbGRSdWxlc1IFZmllbGQ6XQoKcHJlZGVmaW5lZBIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMYiAkgASgLMh0uYnVmLnZhbGlkYXRlLlByZWRlZmluZWRSdWxlc1IKcHJlZGVmaW5lZEJuChJidWlsZC5idWYudmFsaWRhdGVCDVZhbGlkYXRlUHJvdG9QAVpHYnVmLmJ1aWxkL2dlbi9nby9idWZidWlsZC9wcm90b3ZhbGlkYXRlL3Byb3RvY29sYnVmZmVycy9nby9idWYvdmFsaWRhdGU",[file_google_protobuf_descriptor,file_google_protobuf_duration,file_google_protobuf_field_mask,file_google_protobuf_timestamp]);var Ignore;(function(Ignore2){Ignore2[Ignore2.UNSPECIFIED=0]="UNSPECIFIED",Ignore2[Ignore2.IF_ZERO_VALUE=1]="IF_ZERO_VALUE",Ignore2[Ignore2.ALWAYS=3]="ALWAYS"})(Ignore||(Ignore={}));var KnownRegex;(function(KnownRegex2){KnownRegex2[KnownRegex2.UNSPECIFIED=0]="UNSPECIFIED",KnownRegex2[KnownRegex2.HTTP_HEADER_NAME=1]="HTTP_HEADER_NAME",KnownRegex2[KnownRegex2.HTTP_HEADER_VALUE=2]="HTTP_HEADER_VALUE"})(KnownRegex||(KnownRegex={}));var file_ai_stigmer_commons_rpc_pagination=fileDesc("CidhaS9zdGlnbWVyL2NvbW1vbnMvcnBjL3BhZ2luYXRpb24ucHJvdG8SFmFpLnN0aWdtZXIuY29tbW9ucy5ycGMiJQoIUGFnZUluZm8SCwoDbnVtGAEgASgFEgwKBHNpemUYAiABKAUiMgoOR29vZ2xlUGFnZUluZm8SEgoKcGFnZV90b2tlbhgBIAEoCRIMCgRzaXplGAIgASgFYgZwcm90bzM");var file_ai_stigmer_agentic_environment_v1_spec=fileDesc("CixhaS9zdGlnbWVyL2FnZW50aWMvZW52aXJvbm1lbnQvdjEvc3BlYy5wcm90bxIhYWkuc3RpZ21lci5hZ2VudGljLmVudmlyb25tZW50LnYxItQBCg9FbnZpcm9ubWVudFNwZWMSEwoLZGVzY3JpcHRpb24YASABKAkSSgoEZGF0YRgCIAMoCzI8LmFpLnN0aWdtZXIuYWdlbnRpYy5lbnZpcm9ubWVudC52MS5FbnZpcm9ubWVudFNwZWMuRGF0YUVudHJ5GmAKCURhdGFFbnRyeRILCgNrZXkYASABKAkSQgoFdmFsdWUYAiABKAsyMy5haS5zdGlnbWVyLmFnZW50aWMuZW52aXJvbm1lbnQudjEuRW52aXJvbm1lbnRWYWx1ZToCOAEiSQoQRW52aXJvbm1lbnRWYWx1ZRINCgV2YWx1ZRgBIAEoCRIRCglpc19zZWNyZXQYAiABKAgSEwoLZGVzY3JpcHRpb24YAyABKAkiTQoRRW52VmFyRGVjbGFyYXRpb24SEQoJaXNfc2VjcmV0GAEgASgIEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhAKCG9wdGlvbmFsGAMgASgIYgZwcm90bzM"),EnvironmentSpecSchema=messageDesc2(file_ai_stigmer_agentic_environment_v1_spec,0),EnvironmentValueSchema=messageDesc2(file_ai_stigmer_agentic_environment_v1_spec,1),EnvVarDeclarationSchema=messageDesc2(file_ai_stigmer_agentic_environment_v1_spec,2);var file_ai_stigmer_commons_apiresource_field_options=fileDesc("CjJhaS9zdGlnbWVyL2NvbW1vbnMvYXBpcmVzb3VyY2UvZmllbGRfb3B0aW9ucy5wcm90bxIeYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlOjsKCGNvbXB1dGVkEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxjZwAUgASgIUghjb21wdXRlZDo9CglpbW11dGFibGUSHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zGNrABSABKAhSCWltbXV0YWJsZTpECg1pc19leHByZXNzaW9uEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxjbwAUgASgIUgxpc0V4cHJlc3Npb246hwEKDnJlZmVyZW5jZV9raW5kEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxjcwAUgASgOMj8uYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLmFwaXJlc291cmNla2luZC5BcGlSZXNvdXJjZUtpbmRSDXJlZmVyZW5jZUtpbmQ6TQoQZGlzY3JpbWluYXRlZF9ieRIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMY3cAFIAEoCVIPZGlzY3JpbWluYXRlZEJ5iAEBOlUKE2Rpc2NyaW1pbmF0b3JfdmFsdWUSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYvcEFIAEoCVISZGlzY3JpbWluYXRvclZhbHVliAEBYgZwcm90bzM",[file_ai_stigmer_commons_apiresource_apiresourcekind_api_resource_kind,file_google_protobuf_descriptor]);var file_ai_stigmer_commons_apiresource_enum=fileDesc("CilhaS9zdGlnbWVyL2NvbW1vbnMvYXBpcmVzb3VyY2UvZW51bS5wcm90bxIeYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlKnYKFEFwaVJlc291cmNlRXZlbnRUeXBlEg8KC3Vuc3BlY2lmaWVkEAASCwoHY3JlYXRlZBABEgsKB3VwZGF0ZWQQAhILCgdkZWxldGVkEAMSCwoHcmVuYW1lZBAEEhkKFXN0YWNrX291dHB1dHNfdXBkYXRlZBAFKowBCh1BcGlSZXNvdXJjZVN0YXRlT3BlcmF0aW9uVHlwZRIxCi1hcGlfcmVzb3VyY2Vfc3RhdGVfb3BlcmF0aW9uX3R5cGVfdW5zcGVjaWZpZWQQABIKCgZjcmVhdGUQARIKCgZ1cGRhdGUQAhIKCgZkZWxldGUQAxIICgRyZWFkEAQSCgoGc3RyZWFtEAUqnAEKFUFwaVJlc291cmNlVmlzaWJpbGl0eRInCiNhcGlfcmVzb3VyY2VfdmlzaWJpbGl0eV91bnNwZWNpZmllZBAAEhYKEnZpc2liaWxpdHlfcHJpdmF0ZRABEhUKEXZpc2liaWxpdHlfcHVibGljEAISEgoOdmlzaWJpbGl0eV9vcmcQAxIXChN2aXNpYmlsaXR5X3BsYXRmb3JtEARiBnByb3RvMw"),ApiResourceEventType;(function(ApiResourceEventType2){ApiResourceEventType2[ApiResourceEventType2.unspecified=0]="unspecified",ApiResourceEventType2[ApiResourceEventType2.created=1]="created",ApiResourceEventType2[ApiResourceEventType2.updated=2]="updated",ApiResourceEventType2[ApiResourceEventType2.deleted=3]="deleted",ApiResourceEventType2[ApiResourceEventType2.renamed=4]="renamed",ApiResourceEventType2[ApiResourceEventType2.stack_outputs_updated=5]="stack_outputs_updated"})(ApiResourceEventType||(ApiResourceEventType={}));var ApiResourceStateOperationType;(function(ApiResourceStateOperationType2){ApiResourceStateOperationType2[ApiResourceStateOperationType2.api_resource_state_operation_type_unspecified=0]="api_resource_state_operation_type_unspecified",ApiResourceStateOperationType2[ApiResourceStateOperationType2.create=1]="create",ApiResourceStateOperationType2[ApiResourceStateOperationType2.update=2]="update",ApiResourceStateOperationType2[ApiResourceStateOperationType2.delete=3]="delete",ApiResourceStateOperationType2[ApiResourceStateOperationType2.read=4]="read",ApiResourceStateOperationType2[ApiResourceStateOperationType2.stream=5]="stream"})(ApiResourceStateOperationType||(ApiResourceStateOperationType={}));var ApiResourceVisibility;(function(ApiResourceVisibility2){ApiResourceVisibility2[ApiResourceVisibility2.api_resource_visibility_unspecified=0]="api_resource_visibility_unspecified",ApiResourceVisibility2[ApiResourceVisibility2.visibility_private=1]="visibility_private",ApiResourceVisibility2[ApiResourceVisibility2.visibility_public=2]="visibility_public",ApiResourceVisibility2[ApiResourceVisibility2.visibility_org=3]="visibility_org",ApiResourceVisibility2[ApiResourceVisibility2.visibility_platform=4]="visibility_platform"})(ApiResourceVisibility||(ApiResourceVisibility={}));var file_ai_stigmer_commons_apiresource_io=fileDesc("CidhaS9zdGlnbWVyL2NvbW1vbnMvYXBpcmVzb3VyY2UvaW8ucHJvdG8SHmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZSImCg1BcGlSZXNvdXJjZUlkEhUKBXZhbHVlGAEgASgJQga6SAPIAQEiXQoWQXBpUmVzb3VyY2VEZWxldGVJbnB1dBIbCgtyZXNvdXJjZV9pZBgBIAEoCUIGukgDyAEBEhcKD3ZlcnNpb25fbWVzc2FnZRgCIAEoCRINCgVmb3JjZRgDIAEoCCJKCh1BcGlSZXNvdXJjZUJ5T3JnQnlTbHVnUmVxdWVzdBITCgNvcmcYASABKAlCBrpIA8gBARIUCgRzbHVnGAIgASgJQga6SAPIAQEilAEKF0ZpbmRBcGlSZXNvdXJjZXNSZXF1ZXN0EhMKA29yZxgBIAEoCUIGukgDyAEBEgwKBGtpbmQYAyABKAkSLgoEcGFnZRgEIAEoCzIgLmFpLnN0aWdtZXIuY29tbW9ucy5ycGMuUGFnZUluZm8SEwoLcGFnZV9udW1iZXIYBSABKAUSEQoJcGFnZV9zaXplGAYgASgFIosBChVVcGRhdGVWaXNpYmlsaXR5SW5wdXQSGwoLcmVzb3VyY2VfaWQYASABKAlCBrpIA8gBARJVCgp2aXNpYmlsaXR5GAIgASgOMjUuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLkFwaVJlc291cmNlVmlzaWJpbGl0eUIKukgHggEEEAEgACKWAgoUQXBpUmVzb3VyY2VSZWZlcmVuY2USMgoDb3JnGAEgASgJQiW6SCJyIBg/MhxeJHxeW2Etel1bYS16MC05LV0qW2EtejAtOV0kEk0KBGtpbmQYAiABKA4yPy5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuYXBpcmVzb3VyY2VraW5kLkFwaVJlc291cmNlS2luZBI1CgRzbHVnGAMgASgJQie6SCTIAQFyHxACGD8yGV5bYS16XVthLXowLTktXSpbYS16MC05XSQSRAoHdmVyc2lvbhgEIAEoCUIzukgwci4yLF4kfF5sYXRlc3QkfF5bYS16QS1aMC05Ll8tXSskfF5bYS1mMC05XXs2NH0kYgZwcm90bzM",[file_ai_stigmer_commons_apiresource_apiresourcekind_api_resource_kind,file_ai_stigmer_commons_apiresource_enum,file_ai_stigmer_commons_rpc_pagination,file_buf_validate_validate]);var UpdateVisibilityInputSchema=messageDesc2(file_ai_stigmer_commons_apiresource_io,4),ApiResourceReferenceSchema=messageDesc2(file_ai_stigmer_commons_apiresource_io,5);var file_ai_stigmer_agentic_agent_v1_spec=fileDesc("CiZhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnQvdjEvc3BlYy5wcm90bxIbYWkuc3RpZ21lci5hZ2VudGljLmFnZW50LnYxItcFCglBZ2VudFNwZWMSEwoLZGVzY3JpcHRpb24YASABKAkSEAoIaWNvbl91cmwYAiABKAkSHQoMaW5zdHJ1Y3Rpb25zGAMgASgJQge6SARyAhAKEs4BChFtY3Bfc2VydmVyX3VzYWdlcxgEIAMoCzIrLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudC52MS5NY3BTZXJ2ZXJVc2FnZUKFAbpIgQGSAX4ifLoBeQoWbWNwX3NlcnZlcl91c2FnZXMua2luZBI/bWNwX3NlcnZlcl91c2FnZXMgbXVzdCByZWZlcmVuY2UgcmVzb3VyY2VzIHdpdGgga2luZD1tY3Bfc2VydmVyGh50aGlzLm1jcF9zZXJ2ZXJfcmVmLmtpbmQgPT0gNDQSsAEKCnNraWxsX3JlZnMYBSADKAsyNC5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuQXBpUmVzb3VyY2VSZWZlcmVuY2VCZrpIX5IBXCJaugFXCg9za2lsbF9yZWZzLmtpbmQSM3NraWxsX3JlZnMgbXVzdCByZWZlcmVuY2UgcmVzb3VyY2VzIHdpdGgga2luZD1za2lsbBoPdGhpcy5raW5kID09IDQz4IUsKxI5CgpzdWJfYWdlbnRzGAYgAygLMiUuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50LnYxLlN1YkFnZW50EjwKA2VudhgHIAMoCzIvLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudC52MS5BZ2VudFNwZWMuRW52RW50cnkaYAoIRW52RW50cnkSCwoDa2V5GAEgASgJEkMKBXZhbHVlGAIgASgLMjQuYWkuc3RpZ21lci5hZ2VudGljLmVudmlyb25tZW50LnYxLkVudlZhckRlY2xhcmF0aW9uOgI4AUoECAgQCUoECAkQClIHc2hhcmluZ1IQZGF0YXN0b3JlX3VzYWdlcyLbAgoIU3ViQWdlbnQSFAoEbmFtZRgBIAEoCUIGukgDyAEBEhMKC2Rlc2NyaXB0aW9uGAIgASgJEh0KDGluc3RydWN0aW9ucxgDIAEoCUIHukgEcgIQChI6CgptY3BfYWNjZXNzGAQgAygLMiYuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50LnYxLk1jcEFjY2VzcxKwAQoKc2tpbGxfcmVmcxgFIAMoCzI0LmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZVJlZmVyZW5jZUJmukhfkgFcIlq6AVcKD3NraWxsX3JlZnMua2luZBIzc2tpbGxfcmVmcyBtdXN0IHJlZmVyZW5jZSByZXNvdXJjZXMgd2l0aCBraW5kPXNraWxsGg90aGlzLmtpbmQgPT0gNDPghSwrEhYKDm1vZGVsX292ZXJyaWRlGAYgASgJItUBCg5NY3BTZXJ2ZXJVc2FnZRJYCg5tY3Bfc2VydmVyX3JlZhgBIAEoCzI0LmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZVJlZmVyZW5jZUIKukgDyAEB4IUsLBIVCg1lbmFibGVkX3Rvb2xzGAIgAygJElIKF3Rvb2xfYXBwcm92YWxfb3ZlcnJpZGVzGAMgAygLMjEuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50LnYxLlRvb2xBcHByb3ZhbE92ZXJyaWRlIj4KCU1jcEFjY2VzcxIaCgptY3Bfc2VydmVyGAEgASgJQga6SAPIAQESFQoNZW5hYmxlZF90b29scxgCIAMoCSJeChRUb29sQXBwcm92YWxPdmVycmlkZRIaCgl0b29sX25hbWUYASABKAlCB7pIBHICEAESGQoRcmVxdWlyZXNfYXBwcm92YWwYAiABKAgSDwoHbWVzc2FnZRgDIAEoCWIGcHJvdG8z",[file_ai_stigmer_agentic_environment_v1_spec,file_ai_stigmer_commons_apiresource_field_options,file_ai_stigmer_commons_apiresource_io,file_buf_validate_validate]),AgentSpecSchema=messageDesc2(file_ai_stigmer_agentic_agent_v1_spec,0),SubAgentSchema=messageDesc2(file_ai_stigmer_agentic_agent_v1_spec,1),McpServerUsageSchema=messageDesc2(file_ai_stigmer_agentic_agent_v1_spec,2),McpAccessSchema=messageDesc2(file_ai_stigmer_agentic_agent_v1_spec,3),ToolApprovalOverrideSchema=messageDesc2(file_ai_stigmer_agentic_agent_v1_spec,4);var file_ai_stigmer_commons_apiresource_status=fileDesc("CithaS9zdGlnbWVyL2NvbW1vbnMvYXBpcmVzb3VyY2Uvc3RhdHVzLnByb3RvEh5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UiWQoWQXBpUmVzb3VyY2VBdWRpdFN0YXR1cxI/CgVhdWRpdBhjIAEoCzIwLmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZUF1ZGl0IqgBChBBcGlSZXNvdXJjZUF1ZGl0EkgKCnNwZWNfYXVkaXQYASABKAsyNC5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuQXBpUmVzb3VyY2VBdWRpdEluZm8SSgoMc3RhdHVzX2F1ZGl0GAIgASgLMjQuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLkFwaVJlc291cmNlQXVkaXRJbmZvIpsCChRBcGlSZXNvdXJjZUF1ZGl0SW5mbxJJCgpjcmVhdGVkX2J5GAEgASgLMjUuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLkFwaVJlc291cmNlQXVkaXRBY3RvchIuCgpjcmVhdGVkX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJJCgp1cGRhdGVkX2J5GAMgASgLMjUuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLkFwaVJlc291cmNlQXVkaXRBY3RvchIuCgp1cGRhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBINCgVldmVudBgFIAEoCSJYChVBcGlSZXNvdXJjZUF1ZGl0QWN0b3ISCgoCaWQYASABKAkSDgoGYXZhdGFyGAIgASgJEhQKDGRpc3BsYXlfbmFtZRgDIAEoCRINCgVlbWFpbBgEIAEoCWIGcHJvdG8z",[file_google_protobuf_timestamp]);var file_ai_stigmer_agentic_agent_v1_status=fileDesc("CihhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnQvdjEvc3RhdHVzLnByb3RvEhthaS5zdGlnbWVyLmFnZW50aWMuYWdlbnQudjEigwEKC0FnZW50U3RhdHVzEj8KBWF1ZGl0GGMgASgLMjAuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLkFwaVJlc291cmNlQXVkaXQSGwoTZGVmYXVsdF9pbnN0YW5jZV9pZBgBIAEoCUoECAIQA1IQc2hhcmVfbGlua190b2tlbmIGcHJvdG8z",[file_ai_stigmer_commons_apiresource_status]);var file_ai_stigmer_commons_apiresource_metadata=fileDesc("Ci1haS9zdGlnbWVyL2NvbW1vbnMvYXBpcmVzb3VyY2UvbWV0YWRhdGEucHJvdG8SHmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZSK4BAoTQXBpUmVzb3VyY2VNZXRhZGF0YRIUCgRuYW1lGAEgASgJQga6SAPYAQESMwoEc2x1ZxgCIAEoCUIlukgi2AEBch0QAjIZXlthLXpdW2EtejAtOS1dKlthLXowLTldJBIKCgJpZBgDIAEoCRILCgNvcmcYBCABKAkSUwoKdmlzaWJpbGl0eRgFIAEoDjI1LmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZVZpc2liaWxpdHlCCLpIBYIBAhABEk8KBmxhYmVscxgGIAMoCzI/LmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZU1ldGFkYXRhLkxhYmVsc0VudHJ5ElkKC2Fubm90YXRpb25zGAcgAygLMkQuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLkFwaVJlc291cmNlTWV0YWRhdGEuQW5ub3RhdGlvbnNFbnRyeRIMCgR0YWdzGAggAygJEksKB3ZlcnNpb24YCSABKAsyOi5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuQXBpUmVzb3VyY2VNZXRhZGF0YVZlcnNpb24aLQoLTGFiZWxzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARoyChBBbm5vdGF0aW9uc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiYwoaQXBpUmVzb3VyY2VNZXRhZGF0YVZlcnNpb24SCgoCaWQYASABKAkSDwoHbWVzc2FnZRgCIAEoCRIbChNwcmV2aW91c192ZXJzaW9uX2lkGAMgASgJEgsKA3RhZxgEIAEoCWIGcHJvdG8z",[file_ai_stigmer_commons_apiresource_enum,file_buf_validate_validate]),ApiResourceMetadataSchema=messageDesc2(file_ai_stigmer_commons_apiresource_metadata,0);var file_ai_stigmer_agentic_agent_v1_api=fileDesc("CiVhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnQvdjEvYXBpLnByb3RvEhthaS5zdGlnbWVyLmFnZW50aWMuYWdlbnQudjEilQIKBUFnZW50EjEKC2FwaV92ZXJzaW9uGAEgASgJQhy6SBlyFwoVYWdlbnRpYy5zdGlnbWVyLmFpL3YxEhoKBGtpbmQYAiABKAlCDLpICXIHCgVBZ2VudBJNCghtZXRhZGF0YRgDIAEoCzIzLmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZU1ldGFkYXRhQga6SAPIAQESNAoEc3BlYxgEIAEoCzImLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudC52MS5BZ2VudFNwZWMSOAoGc3RhdHVzGAUgASgLMiguYWkuc3RpZ21lci5hZ2VudGljLmFnZW50LnYxLkFnZW50U3RhdHVzYgZwcm90bzM",[file_ai_stigmer_agentic_agent_v1_spec,file_ai_stigmer_agentic_agent_v1_status,file_ai_stigmer_commons_apiresource_metadata,file_buf_validate_validate]),AgentSchema=messageDesc2(file_ai_stigmer_agentic_agent_v1_api,0);var file_ai_stigmer_agentic_agent_v1_io=fileDesc("CiRhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnQvdjEvaW8ucHJvdG8SG2FpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudC52MSIgCgdBZ2VudElkEhUKBXZhbHVlGAEgASgJQga6SAPIAQEiLgoWR2V0RGVmYXVsdEFnZW50UmVxdWVzdBIUCgNvcmcYASABKAlCB7pIBHICEAFiBnByb3RvMw",[file_buf_validate_validate]);var file_ai_stigmer_commons_apiresource_rpc_service_options=fileDesc("CjhhaS9zdGlnbWVyL2NvbW1vbnMvYXBpcmVzb3VyY2UvcnBjX3NlcnZpY2Vfb3B0aW9ucy5wcm90bxIeYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlOo4BChFhcGlfcmVzb3VyY2Vfa2luZBIfLmdvb2dsZS5wcm90b2J1Zi5TZXJ2aWNlT3B0aW9ucxj0vwUgASgOMj8uYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLmFwaXJlc291cmNla2luZC5BcGlSZXNvdXJjZUtpbmRSD2FwaVJlc291cmNlS2luZGIGcHJvdG8z",[file_ai_stigmer_commons_apiresource_apiresourcekind_api_resource_kind,file_google_protobuf_descriptor]);var file_ai_stigmer_agentic_agent_v1_command=fileDesc("CilhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnQvdjEvY29tbWFuZC5wcm90bxIbYWkuc3RpZ21lci5hZ2VudGljLmFnZW50LnYxMskFChZBZ2VudENvbW1hbmRDb250cm9sbGVyEk8KBWFwcGx5EiIuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50LnYxLkFnZW50GiIuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50LnYxLkFnZW50EpsBCgZjcmVhdGUSIi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnQudjEuQWdlbnQaIi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnQudjEuQWdlbnQiScK4GEUIBhAeIgxtZXRhZGF0YS5vcmcqMXVuYXV0aG9yaXplZCB0byBjcmVhdGUgYWdlbnQgaW4gdGhpcyBvcmdhbml6YXRpb24ShQEKBnVwZGF0ZRIiLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudC52MS5BZ2VudBoiLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudC52MS5BZ2VudCIzwrgYLwgCECgiC21ldGFkYXRhLmlkKhx1bmF1dGhvcml6ZWQgdG8gdXBkYXRlIGFnZW50Eq0BChB1cGRhdGVWaXNpYmlsaXR5EjUuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLlVwZGF0ZVZpc2liaWxpdHlJbnB1dBoiLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudC52MS5BZ2VudCI+wrgYOggCECgiC3Jlc291cmNlX2lkKid1bmF1dGhvcml6ZWQgdG8gdXBkYXRlIGFnZW50IHZpc2liaWxpdHkSgQEKBmRlbGV0ZRIkLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudC52MS5BZ2VudElkGiIuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50LnYxLkFnZW50Ii3CuBgpCAMQKCIFdmFsdWUqHHVuYXV0aG9yaXplZCB0byBkZWxldGUgYWdlbnQaBKD/KyhiBnByb3RvMw",[file_ai_stigmer_agentic_agent_v1_api,file_ai_stigmer_agentic_agent_v1_io,file_ai_stigmer_commons_apiresource_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),AgentCommandController=serviceDesc(file_ai_stigmer_agentic_agent_v1_command,0);var file_ai_stigmer_agentic_agent_v1_query=fileDesc("CidhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnQvdjEvcXVlcnkucHJvdG8SG2FpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudC52MTL4AgoUQWdlbnRRdWVyeUNvbnRyb2xsZXISewoDZ2V0EiQuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50LnYxLkFnZW50SWQaIi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnQudjEuQWdlbnQiKsK4GCYIARAoIgV2YWx1ZSoZdW5hdXRob3JpemVkIHRvIGdldCBhZ2VudBJwCg5nZXRCeVJlZmVyZW5jZRI0LmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZVJlZmVyZW5jZRoiLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudC52MS5BZ2VudCIE0LgYARJrCgpnZXREZWZhdWx0EjMuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50LnYxLkdldERlZmF1bHRBZ2VudFJlcXVlc3QaIi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnQudjEuQWdlbnQiBNC4GAEaBKD/KyhiBnByb3RvMw",[file_ai_stigmer_agentic_agent_v1_api,file_ai_stigmer_agentic_agent_v1_io,file_ai_stigmer_commons_apiresource_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),AgentQueryController=serviceDesc(file_ai_stigmer_agentic_agent_v1_query,0);var file_ai_stigmer_search_v1_io=fileDesc("Ch1haS9zdGlnbWVyL3NlYXJjaC92MS9pby5wcm90bxIUYWkuc3RpZ21lci5zZWFyY2gudjEilQIKDVNlYXJjaFJlcXVlc3QSXQoFa2luZHMYASADKA4yPy5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuYXBpcmVzb3VyY2VraW5kLkFwaVJlc291cmNlS2luZEINukgKkgEHIgWCAQIQARIXCgVxdWVyeRgCIAEoCUIIukgFcgMY9AMSKgoDb3JnGAMgASgJQh26SBpyGBg/MhReJHxeW2Etel1bYS16MC05LV0qJBIWCg5leGNsdWRlX3B1YmxpYxgEIAEoCBIuCgRwYWdlGAUgASgLMiAuYWkuc3RpZ21lci5jb21tb25zLnJwYy5QYWdlSW5mbxIYChBjcm9zc19vcmdfcHVibGljGAYgASgIIvQBCg5TZWFyY2hSZXNwb25zZRIzCgdlbnRyaWVzGAEgAygLMiIuYWkuc3RpZ21lci5zZWFyY2gudjEuU2VhcmNoUmVzdWx0Ek4KDmNvdW50c19ieV9raW5kGAIgAygLMjYuYWkuc3RpZ21lci5zZWFyY2gudjEuU2VhcmNoUmVzcG9uc2UuQ291bnRzQnlLaW5kRW50cnkSEwoLdG90YWxfY291bnQYAyABKAUSEwoLdG90YWxfcGFnZXMYBCABKAUaMwoRQ291bnRzQnlLaW5kRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgFOgI4ASKZAwoMU2VhcmNoUmVzdWx0Ek0KBGtpbmQYASABKA4yPy5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuYXBpcmVzb3VyY2VraW5kLkFwaVJlc291cmNlS2luZBIKCgJpZBgCIAEoCRIMCgRuYW1lGAMgASgJEgwKBHNsdWcYBCABKAkSFgoOcXVhbGlmaWVkX3NsdWcYBSABKAkSCwoDb3JnGAYgASgJEhMKC2Rlc2NyaXB0aW9uGAcgASgJEkkKCnZpc2liaWxpdHkYCCABKA4yNS5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuQXBpUmVzb3VyY2VWaXNpYmlsaXR5EgwKBHRhZ3MYCSADKAkSLgoKY3JlYXRlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDQoFc2NvcmUYDCABKAISEAoIaWNvbl91cmwYDSABKAliBnByb3RvMw",[file_ai_stigmer_commons_apiresource_apiresourcekind_api_resource_kind,file_ai_stigmer_commons_apiresource_enum,file_ai_stigmer_commons_rpc_pagination,file_buf_validate_validate,file_google_protobuf_timestamp]);var SearchResponseSchema=messageDesc2(file_ai_stigmer_search_v1_io,1);var file_ai_stigmer_search_v1_query=fileDesc("CiBhaS9zdGlnbWVyL3NlYXJjaC92MS9xdWVyeS5wcm90bxIUYWkuc3RpZ21lci5zZWFyY2gudjEyagoNU2VhcmNoU2VydmljZRJZCgZzZWFyY2gSIy5haS5zdGlnbWVyLnNlYXJjaC52MS5TZWFyY2hSZXF1ZXN0GiQuYWkuc3RpZ21lci5zZWFyY2gudjEuU2VhcmNoUmVzcG9uc2UiBNC4GAFiBnByb3RvMw",[file_ai_stigmer_commons_rpc_method_options,file_ai_stigmer_search_v1_io]),SearchService=serviceDesc(file_ai_stigmer_search_v1_query,0);var file_ai_stigmer_agentic_session_v1_enum=fileDesc("CihhaS9zdGlnbWVyL2FnZW50aWMvc2Vzc2lvbi92MS9lbnVtLnByb3RvEh1haS5zdGlnbWVyLmFnZW50aWMuc2Vzc2lvbi52MSpZChBHaXRXcml0ZUJhY2tNb2RlEiMKH0dJVF9XUklURV9CQUNLX01PREVfVU5TUEVDSUZJRUQQABIgChxHSVRfV1JJVEVfQkFDS19CUkFOQ0hfQU5EX1BSEAEqSgoHSGFybmVzcxIXChNIQVJORVNTX1VOU1BFQ0lGSUVEEAASEgoOSEFSTkVTU19OQVRJVkUQARISCg5IQVJORVNTX0NVUlNPUhACKmsKD0V4ZWN1dGlvblRhcmdldBIgChxFWEVDVVRJT05fVEFSR0VUX1VOU1BFQ0lGSUVEEAASGgoWRVhFQ1VUSU9OX1RBUkdFVF9MT0NBTBABEhoKFkVYRUNVVElPTl9UQVJHRVRfQ0xPVUQQAipXCgpDdXJzb3JNb2RlEhsKF0NVUlNPUl9NT0RFX1VOU1BFQ0lGSUVEEAASFQoRQ1VSU09SX01PREVfTE9DQUwQARIVChFDVVJTT1JfTU9ERV9DTE9VRBACYgZwcm90bzM"),GitWriteBackMode;(function(GitWriteBackMode2){GitWriteBackMode2[GitWriteBackMode2.GIT_WRITE_BACK_MODE_UNSPECIFIED=0]="GIT_WRITE_BACK_MODE_UNSPECIFIED",GitWriteBackMode2[GitWriteBackMode2.GIT_WRITE_BACK_BRANCH_AND_PR=1]="GIT_WRITE_BACK_BRANCH_AND_PR"})(GitWriteBackMode||(GitWriteBackMode={}));var Harness;(function(Harness2){Harness2[Harness2.UNSPECIFIED=0]="UNSPECIFIED",Harness2[Harness2.NATIVE=1]="NATIVE",Harness2[Harness2.CURSOR=2]="CURSOR"})(Harness||(Harness={}));var ExecutionTarget;(function(ExecutionTarget2){ExecutionTarget2[ExecutionTarget2.UNSPECIFIED=0]="UNSPECIFIED",ExecutionTarget2[ExecutionTarget2.LOCAL=1]="LOCAL",ExecutionTarget2[ExecutionTarget2.CLOUD=2]="CLOUD"})(ExecutionTarget||(ExecutionTarget={}));var CursorMode;(function(CursorMode2){CursorMode2[CursorMode2.UNSPECIFIED=0]="UNSPECIFIED",CursorMode2[CursorMode2.LOCAL=1]="LOCAL",CursorMode2[CursorMode2.CLOUD=2]="CLOUD"})(CursorMode||(CursorMode={}));var file_ai_stigmer_agentic_session_v1_workspace=fileDesc("Ci1haS9zdGlnbWVyL2FnZW50aWMvc2Vzc2lvbi92MS93b3Jrc3BhY2UucHJvdG8SHWFpLnN0aWdtZXIuYWdlbnRpYy5zZXNzaW9uLnYxIqoBCg9Xb3Jrc3BhY2VTb3VyY2USQAoIZ2l0X3JlcG8YASABKAsyLC5haS5zdGlnbWVyLmFnZW50aWMuc2Vzc2lvbi52MS5HaXRSZXBvU291cmNlSAASRAoKbG9jYWxfcGF0aBgCIAEoCzIuLmFpLnN0aWdtZXIuYWdlbnRpYy5zZXNzaW9uLnYxLkxvY2FsUGF0aFNvdXJjZUgAQg8KBnNvdXJjZRIFukgCCAEibwoOV29ya3NwYWNlRW50cnkSFQoEbmFtZRgBIAEoCUIHukgEcgIQARJGCgZzb3VyY2UYAiABKAsyLi5haS5zdGlnbWVyLmFnZW50aWMuc2Vzc2lvbi52MS5Xb3Jrc3BhY2VTb3VyY2VCBrpIA8gBASIoCg9Mb2NhbFBhdGhTb3VyY2USFQoEcGF0aBgBIAEoCUIHukgEcgIQASLIAgoNR2l0UmVwb1NvdXJjZRKlAQoDdXJsGAEgASgJQpcBukiTAboBjAEKGWdpdF9yZXBvX3NvdXJjZS51cmwuaHR0cHMSUnVybCBtdXN0IHVzZSBIVFRQUyAoZS5nLiBodHRwczovL2dpdGh1Yi5jb20vb3JnL3JlcG8pLiBTU0ggVVJMcyBhcmUgbm90IHN1cHBvcnRlZC4aG3RoaXMuc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKcgBARIOCgZicmFuY2gYAiABKAkSDgoGY29tbWl0GAMgASgJEhsKBWRlcHRoGAQgASgFQge6SAQaAigASACIAQESSAoPd3JpdGVfYmFja19tb2RlGAUgASgOMi8uYWkuc3RpZ21lci5hZ2VudGljLnNlc3Npb24udjEuR2l0V3JpdGVCYWNrTW9kZUIICgZfZGVwdGhiBnByb3RvMw",[file_ai_stigmer_agentic_session_v1_enum,file_buf_validate_validate]),WorkspaceSourceSchema=messageDesc2(file_ai_stigmer_agentic_session_v1_workspace,0),WorkspaceEntrySchema=messageDesc2(file_ai_stigmer_agentic_session_v1_workspace,1),LocalPathSourceSchema=messageDesc2(file_ai_stigmer_agentic_session_v1_workspace,2),GitRepoSourceSchema=messageDesc2(file_ai_stigmer_agentic_session_v1_workspace,3);var file_ai_stigmer_agentic_agentexecution_v1_invocation=fileDesc("CjVhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvaW52b2NhdGlvbi5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxIvAECg9BZ2VudEludm9jYXRpb24SrAEKCWFnZW50X3JlZhgBIAEoCzI0LmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZVJlZmVyZW5jZUJjukhcugFWCg5hZ2VudF9yZWYua2luZBIzYWdlbnRfcmVmIG11c3QgcmVmZXJlbmNlIGEgcmVzb3VyY2Ugd2l0aCBraW5kPWFnZW50Gg90aGlzLmtpbmQgPT0gNDDIAQHghSwoEhsKB21lc3NhZ2UYAiABKAlCCrpIB3IFEAEYgEASNwoHaGFybmVzcxgDIAEoDjImLmFpLnN0aWdtZXIuYWdlbnRpYy5zZXNzaW9uLnYxLkhhcm5lc3MSSAoRd29ya3NwYWNlX2VudHJpZXMYBCADKAsyLS5haS5zdGlnbWVyLmFnZW50aWMuc2Vzc2lvbi52MS5Xb3Jrc3BhY2VFbnRyeRLIAQoQZW52aXJvbm1lbnRfcmVmcxgFIAMoCzI0LmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZVJlZmVyZW5jZUJ4ukhxkgFuImy6AWkKFWVudmlyb25tZW50X3JlZnMua2luZBI/ZW52aXJvbm1lbnRfcmVmcyBtdXN0IHJlZmVyZW5jZSByZXNvdXJjZXMgd2l0aCBraW5kPWVudmlyb25tZW50Gg90aGlzLmtpbmQgPT0gNTPghSw1EkMKCnJ1bl9jb25maWcYBiABKAsyLy5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuUnVuQ29uZmlnIo8CCglSdW5Db25maWcSEgoKbW9kZWxfbmFtZRgBIAEoCRIkCgxtYXhfY29zdF91c2QYAiABKAFCDrpICxIJKQAAAAAAAAAAEiAKD21heF90b29sX3JvdW5kcxgDIAEoBUIHukgEGgIoABJRCgxzZXJ2aWNlX3RpZXIYBCABKA4yMS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuU2VydmljZVRpZXJCCLpIBYIBAhABElMKDXRoaW5raW5nX21vZGUYBSABKA4yMi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuVGhpbmtpbmdNb2RlQgi6SAWCAQIQAWIGcHJvdG8z",[file_ai_stigmer_agentic_agentexecution_v1_enum,file_ai_stigmer_agentic_session_v1_enum,file_ai_stigmer_agentic_session_v1_workspace,file_ai_stigmer_commons_apiresource_field_options,file_ai_stigmer_commons_apiresource_io,file_buf_validate_validate]);var RunConfigSchema=messageDesc2(file_ai_stigmer_agentic_agentexecution_v1_invocation,1);var file_ai_stigmer_agentic_agentchannel_v1_delivery=fileDesc("CjFhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRjaGFubmVsL3YxL2RlbGl2ZXJ5LnByb3RvEiJhaS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxIvwFCg9DaGFubmVsRGVsaXZlcnkSEwoLZGVsaXZlcnlfaWQYASABKAkSGAoQYWdlbnRfY2hhbm5lbF9pZBgCIAEoCRILCgNvcmcYAyABKAkSFAoMZXhlY3V0aW9uX2lkGAQgASgJEhIKCnNlc3Npb25faWQYBSABKAkSGAoQY29udmVyc2F0aW9uX2tleRgGIAEoCRIZChFleHRlcm5hbF91c2VyX2tleRgHIAEoCRJJCgZzdGF0dXMYCCABKA4yOS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLkNoYW5uZWxEZWxpdmVyeVN0YXR1cxIQCghhdHRlbXB0cxgJIAEoBRISCgpsYXN0X2Vycm9yGAogASgJEhcKD2lkZW1wb3RlbmN5X2tleRgLIAEoCRJJCgVzbGFjaxgMIAEoCzI4LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuU2xhY2tEZWxpdmVyeUNvbnRleHRIABJPCgh3aGF0c2FwcBgQIAEoCzI7LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuV2hhdHNBcHBEZWxpdmVyeUNvbnRleHRIABIuCgpjcmVhdGVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GA4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIzCg9uZXh0X2F0dGVtcHRfYXQYDyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCnJlcGx5X3RleHQYESABKAkSUwoMZmFpbHVyZV9raW5kGBIgASgOMj0uYWkuc3RpZ21lci5hZ2VudGljLmFnZW50Y2hhbm5lbC52MS5DaGFubmVsQXR0ZW1wdEZhaWx1cmVLaW5kEhYKDmF0dGVtcHRfZGV0YWlsGBMgASgJQhIKEGRlbGl2ZXJ5X2NvbnRleHQiVQoUU2xhY2tEZWxpdmVyeUNvbnRleHQSEgoKY2hhbm5lbF9pZBgBIAEoCRIRCgl0aHJlYWRfdHMYAiABKAkSFgoOcGxhY2Vob2xkZXJfdHMYAyABKAkiSwoXV2hhdHNBcHBEZWxpdmVyeUNvbnRleHQSFwoPcGhvbmVfbnVtYmVyX2lkGAEgASgJEhcKD3JlY2lwaWVudF93YV9pZBgCIAEoCSqIAQoVQ2hhbm5lbERlbGl2ZXJ5U3RhdHVzEicKI2NoYW5uZWxfZGVsaXZlcnlfc3RhdHVzX3Vuc3BlY2lmaWVkEAASCwoHcGVuZGluZxABEg4KCmRlbGl2ZXJpbmcQAhINCglkZWxpdmVyZWQQAxIKCgZmYWlsZWQQBBIOCgpzdXBwcmVzc2VkEAUqfQoZQ2hhbm5lbEF0dGVtcHRGYWlsdXJlS2luZBIfChthdHRlbXB0X2ZhaWx1cmVfdW5zcGVjaWZpZWQQABITCg9hdHRlbXB0X3JlZnVzZWQQARITCg9hdHRlbXB0X2Vycm9yZWQQAhIVChFhdHRlbXB0X3dpdGhkcmF3bhADYgZwcm90bzM",[file_google_protobuf_timestamp]);var ChannelDeliveryStatus;(function(ChannelDeliveryStatus2){ChannelDeliveryStatus2[ChannelDeliveryStatus2.channel_delivery_status_unspecified=0]="channel_delivery_status_unspecified",ChannelDeliveryStatus2[ChannelDeliveryStatus2.pending=1]="pending",ChannelDeliveryStatus2[ChannelDeliveryStatus2.delivering=2]="delivering",ChannelDeliveryStatus2[ChannelDeliveryStatus2.delivered=3]="delivered",ChannelDeliveryStatus2[ChannelDeliveryStatus2.failed=4]="failed",ChannelDeliveryStatus2[ChannelDeliveryStatus2.suppressed=5]="suppressed"})(ChannelDeliveryStatus||(ChannelDeliveryStatus={}));var ChannelAttemptFailureKind;(function(ChannelAttemptFailureKind2){ChannelAttemptFailureKind2[ChannelAttemptFailureKind2.attempt_failure_unspecified=0]="attempt_failure_unspecified",ChannelAttemptFailureKind2[ChannelAttemptFailureKind2.attempt_refused=1]="attempt_refused",ChannelAttemptFailureKind2[ChannelAttemptFailureKind2.attempt_errored=2]="attempt_errored",ChannelAttemptFailureKind2[ChannelAttemptFailureKind2.attempt_withdrawn=3]="attempt_withdrawn"})(ChannelAttemptFailureKind||(ChannelAttemptFailureKind={}));var file_ai_stigmer_agentic_agentchannel_v1_message_io=fileDesc("CjNhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRjaGFubmVsL3YxL21lc3NhZ2VfaW8ucHJvdG8SImFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEivQEKF1NlbmRDaGFubmVsTWVzc2FnZUlucHV0EhgKB2NoYW5uZWwYASABKAlCB7pIBHICGD8SFAoDb3JnGAIgASgJQge6SARyAhg/Eh0KCXJlY2lwaWVudBgDIAEoCUIKukgHcgUQARiAARJTCgdwYXlsb2FkGAQgASgLMjouYWkuc3RpZ21lci5hZ2VudGljLmFnZW50Y2hhbm5lbC52MS5DaGFubmVsT3V0Ym91bmRQYXlsb2FkQga6SAPIAQEisQEKFkNoYW5uZWxPdXRib3VuZFBheWxvYWQSPwoEdGV4dBgBIAEoCzIvLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuVGV4dFBheWxvYWRIABJHCgh0ZW1wbGF0ZRgCIAEoCzIzLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuVGVtcGxhdGVQYXlsb2FkSABCDQoEa2luZBIFukgCCAEiJwoLVGV4dFBheWxvYWQSGAoEYm9keRgBIAEoCUIKukgHcgUQARiAICKBAgoPVGVtcGxhdGVQYXlsb2FkEhgKBG5hbWUYASABKAlCCrpIB3IFEAEYgAQSGQoIbGFuZ3VhZ2UYAiABKAlCB7pIBHICGBASYQoKcGFyYW1ldGVycxgDIAMoCzJDLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuVGVtcGxhdGVQYXlsb2FkLlBhcmFtZXRlcnNFbnRyeUIIukgFmgECEDISIwoRaGVhZGVyX2ltYWdlX2xpbmsYBCABKAlCCLpIBXIDGIAQGjEKD1BhcmFtZXRlcnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIq0BChhTZW5kQ2hhbm5lbE1lc3NhZ2VPdXRwdXQSRwoHb3V0Y29tZRgBIAEoDjI2LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuQ2hhbm5lbFNlbmRPdXRjb21lEhsKE291dGJvdW5kX21lc3NhZ2VfaWQYAiABKAkSGwoTcHJvdmlkZXJfbWVzc2FnZV9pZBgDIAEoCRIOCgZkZXRhaWwYBCABKAkiYgoZTGlzdENoYW5uZWxUZW1wbGF0ZXNJbnB1dBIYCgdjaGFubmVsGAEgASgJQge6SARyAhg/EhQKA29yZxgCIAEoCUIHukgEcgIYPxIVCg1hcHByb3ZlZF9vbmx5GAMgASgIIlgKEENoYW5uZWxUZW1wbGF0ZXMSRAoHZW50cmllcxgBIAMoCzIzLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuQ2hhbm5lbFRlbXBsYXRlIuYBCg9DaGFubmVsVGVtcGxhdGUSDAoEbmFtZRgBIAEoCRIQCghsYW5ndWFnZRgCIAEoCRIQCghjYXRlZ29yeRgDIAEoCRIOCgZzdGF0dXMYBCABKAkSGAoQcGFyYW1ldGVyX2Zvcm1hdBgFIAEoCRIXCg9wYXJhbWV0ZXJfbmFtZXMYBiADKAkSEQoJYm9keV90ZXh0GAcgASgJEhUKDWhlYWRlcl9mb3JtYXQYCCABKAkSGAoQcmVqZWN0aW9uX3JlYXNvbhgJIAEoCRIaChJ1bnN1cHBvcnRlZF9yZWFzb24YCiABKAkiHAoaTGlzdE1lc3NhZ2luZ0NoYW5uZWxzSW5wdXQiWgoRTWVzc2FnaW5nQ2hhbm5lbHMSRQoHZW50cmllcxgBIAMoCzI0LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuTWVzc2FnaW5nQ2hhbm5lbCI1ChBNZXNzYWdpbmdDaGFubmVsEg8KB2NoYW5uZWwYASABKAkSEAoIcHJvdmlkZXIYAiABKAkqYQoSQ2hhbm5lbFNlbmRPdXRjb21lEiQKIGNoYW5uZWxfc2VuZF9vdXRjb21lX3Vuc3BlY2lmaWVkEAASDAoIYWNjZXB0ZWQQARIKCgZxdWV1ZWQQAhILCgdyZWZ1c2VkEANiBnByb3RvMw",[file_buf_validate_validate]),SendChannelMessageInputSchema=messageDesc2(file_ai_stigmer_agentic_agentchannel_v1_message_io,0),ChannelOutboundPayloadSchema=messageDesc2(file_ai_stigmer_agentic_agentchannel_v1_message_io,1),TextPayloadSchema=messageDesc2(file_ai_stigmer_agentic_agentchannel_v1_message_io,2),TemplatePayloadSchema=messageDesc2(file_ai_stigmer_agentic_agentchannel_v1_message_io,3),SendChannelMessageOutputSchema=messageDesc2(file_ai_stigmer_agentic_agentchannel_v1_message_io,4);var ChannelSendOutcome;(function(ChannelSendOutcome2){ChannelSendOutcome2[ChannelSendOutcome2.channel_send_outcome_unspecified=0]="channel_send_outcome_unspecified",ChannelSendOutcome2[ChannelSendOutcome2.accepted=1]="accepted",ChannelSendOutcome2[ChannelSendOutcome2.queued=2]="queued",ChannelSendOutcome2[ChannelSendOutcome2.refused=3]="refused"})(ChannelSendOutcome||(ChannelSendOutcome={}));var file_ai_stigmer_agentic_agentchannel_v1_outbound=fileDesc("CjFhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRjaGFubmVsL3YxL291dGJvdW5kLnByb3RvEiJhaS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxIo8HChZDaGFubmVsT3V0Ym91bmRNZXNzYWdlEhsKE291dGJvdW5kX21lc3NhZ2VfaWQYASABKAkSGAoQYWdlbnRfY2hhbm5lbF9pZBgCIAEoCRILCgNvcmcYAyABKAkSEgoKc2Vzc2lvbl9pZBgEIAEoCRJJCgZvcmlnaW4YBSABKA4yOS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLkNoYW5uZWxPdXRib3VuZE9yaWdpbhIRCglyZWNpcGllbnQYBiABKAkSSwoHcGF5bG9hZBgHIAEoCzI6LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuQ2hhbm5lbE91dGJvdW5kUGF5bG9hZBJJCgZzdGF0dXMYCCABKA4yOS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLkNoYW5uZWxEZWxpdmVyeVN0YXR1cxIQCghhdHRlbXB0cxgJIAEoBRISCgpsYXN0X2Vycm9yGAogASgJEhcKD2lkZW1wb3RlbmN5X2tleRgLIAEoCRIbChNwcm92aWRlcl9tZXNzYWdlX2lkGAwgASgJEi4KCmNyZWF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYDiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjMKD25leHRfYXR0ZW1wdF9hdBgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASTgoNcmVjZWlwdF9zdGF0ZRgQIAEoDjI3LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuQ2hhbm5lbFJlY2VpcHRTdGF0ZRIWCg5yZWNlaXB0X2RldGFpbBgRIAEoCRIaChJyZWNlaXB0X2Vycm9yX2NvZGUYEiABKAUSLgoKcmVjZWlwdF9hdBgTIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFQoNcmVuZGVyZWRfYm9keRgUIAEoCRJTCgxmYWlsdXJlX2tpbmQYFSABKA4yPS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLkNoYW5uZWxBdHRlbXB0RmFpbHVyZUtpbmQSFgoOYXR0ZW1wdF9kZXRhaWwYFiABKAkqgwEKE0NoYW5uZWxSZWNlaXB0U3RhdGUSHQoZcmVjZWlwdF9zdGF0ZV91bnNwZWNpZmllZBAAEhAKDHJlY2VpcHRfc2VudBABEhUKEXJlY2VpcHRfZGVsaXZlcmVkEAISEAoMcmVjZWlwdF9yZWFkEAMSEgoOcmVjZWlwdF9mYWlsZWQQBCqHAQoVQ2hhbm5lbE91dGJvdW5kT3JpZ2luEicKI2NoYW5uZWxfb3V0Ym91bmRfb3JpZ2luX3Vuc3BlY2lmaWVkEAASGAoUY2hhbm5lbF9jb252ZXJzYXRpb24QARIMCghvcGVyYXRvchACEgwKCHBsYXRmb3JtEAMSDwoLcGFydGljaXBhbnQQBGIGcHJvdG8z",[file_ai_stigmer_agentic_agentchannel_v1_delivery,file_ai_stigmer_agentic_agentchannel_v1_message_io,file_google_protobuf_timestamp]);var ChannelReceiptState;(function(ChannelReceiptState2){ChannelReceiptState2[ChannelReceiptState2.receipt_state_unspecified=0]="receipt_state_unspecified",ChannelReceiptState2[ChannelReceiptState2.receipt_sent=1]="receipt_sent",ChannelReceiptState2[ChannelReceiptState2.receipt_delivered=2]="receipt_delivered",ChannelReceiptState2[ChannelReceiptState2.receipt_read=3]="receipt_read",ChannelReceiptState2[ChannelReceiptState2.receipt_failed=4]="receipt_failed"})(ChannelReceiptState||(ChannelReceiptState={}));var ChannelOutboundOrigin;(function(ChannelOutboundOrigin2){ChannelOutboundOrigin2[ChannelOutboundOrigin2.channel_outbound_origin_unspecified=0]="channel_outbound_origin_unspecified",ChannelOutboundOrigin2[ChannelOutboundOrigin2.channel_conversation=1]="channel_conversation",ChannelOutboundOrigin2[ChannelOutboundOrigin2.operator=2]="operator",ChannelOutboundOrigin2[ChannelOutboundOrigin2.platform=3]="platform",ChannelOutboundOrigin2[ChannelOutboundOrigin2.participant=4]="participant"})(ChannelOutboundOrigin||(ChannelOutboundOrigin={}));var file_ai_stigmer_agentic_agentchannel_v1_conversation_io=fileDesc("CjhhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRjaGFubmVsL3YxL2NvbnZlcnNhdGlvbl9pby5wcm90bxIiYWkuc3RpZ21lci5hZ2VudGljLmFnZW50Y2hhbm5lbC52MSL+AwoTQ2hhbm5lbENvbnZlcnNhdGlvbhIYChBhZ2VudF9jaGFubmVsX2lkGAEgASgJEhgKEGNvbnZlcnNhdGlvbl9rZXkYAiABKAkSCwoDb3JnGAMgASgJEkgKB2NvbnRyb2wYBCABKA4yNy5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLkNvbnZlcnNhdGlvbkNvbnRyb2wSFQoNY29udHJvbGxlZF9ieRgFIAEoCRI2ChJjb250cm9sX2NoYW5nZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD25lZWRzX2F0dGVudGlvbhgHIAEoCBIYChBhdHRlbnRpb25fcmVhc29uGAggASgJEjgKFGF0dGVudGlvbl9jaGFuZ2VkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIUCgxkaXNwbGF5X25hbWUYCiABKAkSPAoYbGFzdF9jdXN0b21lcl9tZXNzYWdlX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI0ChBsYXN0X2FjdGl2aXR5X2F0GAwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIWCg5hd2FpdGluZ19yZXBseRgNIAEoCCKGBgoYQ29udmVyc2F0aW9uVGltZWxpbmVJdGVtEg8KB2l0ZW1faWQYASABKAkSQgoEbGFuZRgCIAEoDjI0LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuQ29udmVyc2F0aW9uTGFuZRJKCgZhdXRob3IYAyABKA4yOi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLkNvbnZlcnNhdGlvbkl0ZW1BdXRob3ISEwoLYXV0aG9yZWRfYnkYBCABKAkSDAoEdGV4dBgFIAEoCRIdChVwcm92aWRlcl9tZXNzYWdlX3R5cGUYBiABKAkSJgoCYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wElIKD2RlbGl2ZXJ5X3N0YXR1cxgIIAEoDjI5LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuQ2hhbm5lbERlbGl2ZXJ5U3RhdHVzEk4KDXJlY2VpcHRfc3RhdGUYCSABKA4yNy5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLkNoYW5uZWxSZWNlaXB0U3RhdGUSSQoGb3JpZ2luGAogASgOMjkuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50Y2hhbm5lbC52MS5DaGFubmVsT3V0Ym91bmRPcmlnaW4SFgoOcmVjZWlwdF9kZXRhaWwYCyABKAkSGgoScmVjZWlwdF9lcnJvcl9jb2RlGAwgASgFEkcKBW1lZGlhGA0gASgLMjguYWkuc3RpZ21lci5hZ2VudGljLmFnZW50Y2hhbm5lbC52MS5Db252ZXJzYXRpb25NZWRpYVJlZhIWCg5hdHRlbXB0X2RldGFpbBgOIAEoCRJbChRhdHRlbXB0X2ZhaWx1cmVfa2luZBgPIAEoDjI9LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuQ2hhbm5lbEF0dGVtcHRGYWlsdXJlS2luZCJSChRDb252ZXJzYXRpb25NZWRpYVJlZhIQCghmaWxlbmFtZRgBIAEoCRIUCgxjb250ZW50X3R5cGUYAiABKAkSEgoKc2l6ZV9ieXRlcxgDIAEoAyLjAQodTGlzdENoYW5uZWxDb252ZXJzYXRpb25zSW5wdXQSFgoDb3JnGAEgASgJQgm6SAZyBBABGD8SIgoQYWdlbnRfY2hhbm5lbF9pZBgCIAEoCUIIukgFcgMYgAESMwoJcGFnZV9pbmZvGAMgASgLMiAuYWkuc3RpZ21lci5jb21tb25zLnJwYy5QYWdlSW5mbxJRCgZmaWx0ZXIYBCABKA4yQS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLkNoYW5uZWxDb252ZXJzYXRpb25MaXN0RmlsdGVyInYKF0NoYW5uZWxDb252ZXJzYXRpb25MaXN0EhMKC3RvdGFsX2NvdW50GAEgASgFEkYKBWl0ZW1zGAIgAygLMjcuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50Y2hhbm5lbC52MS5DaGFubmVsQ29udmVyc2F0aW9uImkKG0dldENoYW5uZWxDb252ZXJzYXRpb25JbnB1dBIkChBhZ2VudF9jaGFubmVsX2lkGAEgASgJQgq6SAdyBRABGIABEiQKEGNvbnZlcnNhdGlvbl9rZXkYAiABKAlCCrpIB3IFEAEYgAEikQEKHEdldENvbnZlcnNhdGlvblRpbWVsaW5lSW5wdXQSJAoQYWdlbnRfY2hhbm5lbF9pZBgBIAEoCUIKukgHcgUQARiAARIkChBjb252ZXJzYXRpb25fa2V5GAIgASgJQgq6SAdyBRABGIABEhEKCXBhZ2Vfc2l6ZRgDIAEoBRISCgpwYWdlX3Rva2VuGAQgASgJInwKFENvbnZlcnNhdGlvblRpbWVsaW5lEksKBWl0ZW1zGAEgAygLMjwuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50Y2hhbm5lbC52MS5Db252ZXJzYXRpb25UaW1lbGluZUl0ZW0SFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIo8BCiRHZXRDb252ZXJzYXRpb25NZWRpYURvd25sb2FkVXJsSW5wdXQSJAoQYWdlbnRfY2hhbm5lbF9pZBgBIAEoCUIKukgHcgUQARiAARIkChBjb252ZXJzYXRpb25fa2V5GAIgASgJQgq6SAdyBRABGIABEhsKB2l0ZW1faWQYAyABKAlCCrpIB3IFEAEYgAIiWwocQ29udmVyc2F0aW9uTWVkaWFEb3dubG9hZFVybBILCgN1cmwYASABKAkSLgoKZXhwaXJlc19hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiZgoYQ29udmVyc2F0aW9uQ29udHJvbElucHV0EiQKEGFnZW50X2NoYW5uZWxfaWQYASABKAlCCrpIB3IFEAEYgAESJAoQY29udmVyc2F0aW9uX2tleRgCIAEoCUIKukgHcgUQARiAASK7AQoYUmVwbHlUb0NvbnZlcnNhdGlvbklucHV0EiQKEGFnZW50X2NoYW5uZWxfaWQYASABKAlCCrpIB3IFEAEYgAESJAoQY29udmVyc2F0aW9uX2tleRgCIAEoCUIKukgHcgUQARiAARJTCgdwYXlsb2FkGAMgASgLMjouYWkuc3RpZ21lci5hZ2VudGljLmFnZW50Y2hhbm5lbC52MS5DaGFubmVsT3V0Ym91bmRQYXlsb2FkQga6SAPIAQEiNwoZRXNjYWxhdGVDb252ZXJzYXRpb25JbnB1dBIaCgZyZWFzb24YASABKAlCCrpIB3IFEAEYgAgqYQoTQ29udmVyc2F0aW9uQ29udHJvbBIkCiBjb252ZXJzYXRpb25fY29udHJvbF91bnNwZWNpZmllZBAAEhEKDWNvbnRyb2xfYWdlbnQQARIRCg1jb250cm9sX2h1bWFuEAIqWQoQQ29udmVyc2F0aW9uTGFuZRIhCh1jb252ZXJzYXRpb25fbGFuZV91bnNwZWNpZmllZBAAEg8KC2xhbmVfcHVibGljEAESEQoNbGFuZV9pbnRlcm5hbBACKpMBChZDb252ZXJzYXRpb25JdGVtQXV0aG9yEigKJGNvbnZlcnNhdGlvbl9pdGVtX2F1dGhvcl91bnNwZWNpZmllZBAAEhMKD2F1dGhvcl9jdXN0b21lchABEhAKDGF1dGhvcl9hZ2VudBACEhMKD2F1dGhvcl90ZWFtbWF0ZRADEhMKD2F1dGhvcl9wbGF0Zm9ybRAEKmkKHUNoYW5uZWxDb252ZXJzYXRpb25MaXN0RmlsdGVyEjAKLGNoYW5uZWxfY29udmVyc2F0aW9uX2xpc3RfZmlsdGVyX3Vuc3BlY2lmaWVkEAASFgoSZmlsdGVyX3dhbnRzX2h1bWFuEAFiBnByb3RvMw",[file_ai_stigmer_agentic_agentchannel_v1_delivery,file_ai_stigmer_agentic_agentchannel_v1_message_io,file_ai_stigmer_agentic_agentchannel_v1_outbound,file_ai_stigmer_commons_rpc_pagination,file_buf_validate_validate,file_google_protobuf_timestamp]);var EscalateConversationInputSchema=messageDesc2(file_ai_stigmer_agentic_agentchannel_v1_conversation_io,12),ConversationControl;(function(ConversationControl2){ConversationControl2[ConversationControl2.conversation_control_unspecified=0]="conversation_control_unspecified",ConversationControl2[ConversationControl2.control_agent=1]="control_agent",ConversationControl2[ConversationControl2.control_human=2]="control_human"})(ConversationControl||(ConversationControl={}));var ConversationLane;(function(ConversationLane2){ConversationLane2[ConversationLane2.conversation_lane_unspecified=0]="conversation_lane_unspecified",ConversationLane2[ConversationLane2.lane_public=1]="lane_public",ConversationLane2[ConversationLane2.lane_internal=2]="lane_internal"})(ConversationLane||(ConversationLane={}));var ConversationItemAuthor;(function(ConversationItemAuthor2){ConversationItemAuthor2[ConversationItemAuthor2.conversation_item_author_unspecified=0]="conversation_item_author_unspecified",ConversationItemAuthor2[ConversationItemAuthor2.author_customer=1]="author_customer",ConversationItemAuthor2[ConversationItemAuthor2.author_agent=2]="author_agent",ConversationItemAuthor2[ConversationItemAuthor2.author_teammate=3]="author_teammate",ConversationItemAuthor2[ConversationItemAuthor2.author_platform=4]="author_platform"})(ConversationItemAuthor||(ConversationItemAuthor={}));var ChannelConversationListFilter;(function(ChannelConversationListFilter2){ChannelConversationListFilter2[ChannelConversationListFilter2.channel_conversation_list_filter_unspecified=0]="channel_conversation_list_filter_unspecified",ChannelConversationListFilter2[ChannelConversationListFilter2.filter_wants_human=1]="filter_wants_human"})(ChannelConversationListFilter||(ChannelConversationListFilter={}));var file_ai_stigmer_agentic_agentchannel_v1_conversation_command=fileDesc("Cj1haS9zdGlnbWVyL2FnZW50aWMvYWdlbnRjaGFubmVsL3YxL2NvbnZlcnNhdGlvbl9jb21tYW5kLnByb3RvEiJhaS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxMrcICiRDaGFubmVsQ29udmVyc2F0aW9uQ29tbWFuZENvbnRyb2xsZXIS3QEKBXJlcGx5EjwuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50Y2hhbm5lbC52MS5SZXBseVRvQ29udmVyc2F0aW9uSW5wdXQaPC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLlNlbmRDaGFubmVsTWVzc2FnZU91dHB1dCJYwrgYVAgkEC8iEGFnZW50X2NoYW5uZWxfaWQqPHVuYXV0aG9yaXplZCB0byBwYXJ0aWNpcGF0ZSBpbiBjb252ZXJzYXRpb25zIG9uIHRoaXMgY2hhbm5lbBLbAQoIdGFrZU92ZXISPC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLkNvbnZlcnNhdGlvbkNvbnRyb2xJbnB1dBo3LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuQ2hhbm5lbENvbnZlcnNhdGlvbiJYwrgYVAgkEC8iEGFnZW50X2NoYW5uZWxfaWQqPHVuYXV0aG9yaXplZCB0byBwYXJ0aWNpcGF0ZSBpbiBjb252ZXJzYXRpb25zIG9uIHRoaXMgY2hhbm5lbBLbAQoIaGFuZEJhY2sSPC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLkNvbnZlcnNhdGlvbkNvbnRyb2xJbnB1dBo3LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuQ2hhbm5lbENvbnZlcnNhdGlvbiJYwrgYVAgkEC8iEGFnZW50X2NoYW5uZWxfaWQqPHVuYXV0aG9yaXplZCB0byBwYXJ0aWNpcGF0ZSBpbiBjb252ZXJzYXRpb25zIG9uIHRoaXMgY2hhbm5lbBLhAQoOY2xlYXJBdHRlbnRpb24SPC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLkNvbnZlcnNhdGlvbkNvbnRyb2xJbnB1dBo3LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGNoYW5uZWwudjEuQ2hhbm5lbENvbnZlcnNhdGlvbiJYwrgYVAgkEC8iEGFnZW50X2NoYW5uZWxfaWQqPHVuYXV0aG9yaXplZCB0byBwYXJ0aWNpcGF0ZSBpbiBjb252ZXJzYXRpb25zIG9uIHRoaXMgY2hhbm5lbBKIAQoIZXNjYWxhdGUSPS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLkVzY2FsYXRlQ29udmVyc2F0aW9uSW5wdXQaNy5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLkNoYW5uZWxDb252ZXJzYXRpb24iBNC4GAEaBKD/Ky9iBnByb3RvMw",[file_ai_stigmer_agentic_agentchannel_v1_conversation_io,file_ai_stigmer_agentic_agentchannel_v1_message_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),ChannelConversationCommandController=serviceDesc(file_ai_stigmer_agentic_agentchannel_v1_conversation_command,0);var file_ai_stigmer_agentic_agentchannel_v1_message_command=fileDesc("CjhhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRjaGFubmVsL3YxL21lc3NhZ2VfY29tbWFuZC5wcm90bxIiYWkuc3RpZ21lci5hZ2VudGljLmFnZW50Y2hhbm5lbC52MTK4AQofQ2hhbm5lbE1lc3NhZ2VDb21tYW5kQ29udHJvbGxlchKOAQoLc2VuZE1lc3NhZ2USOy5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRjaGFubmVsLnYxLlNlbmRDaGFubmVsTWVzc2FnZUlucHV0GjwuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50Y2hhbm5lbC52MS5TZW5kQ2hhbm5lbE1lc3NhZ2VPdXRwdXQiBNC4GAEaBKD/Ky9iBnByb3RvMw",[file_ai_stigmer_agentic_agentchannel_v1_message_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),ChannelMessageCommandController=serviceDesc(file_ai_stigmer_agentic_agentchannel_v1_message_command,0);var file_ai_stigmer_agentic_agentexecution_v1_approval=fileDesc("CjNhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvYXBwcm92YWwucHJvdG8SJGFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MSLLAwoPUGVuZGluZ0FwcHJvdmFsEhQKDHRvb2xfY2FsbF9pZBgBIAEoCRIRCgl0b29sX25hbWUYAiABKAkSDwoHbWVzc2FnZRgDIAEoCRIUCgxhcmdzX3ByZXZpZXcYBCABKAkSFAoMcmVxdWVzdGVkX2F0GAUgASgJEhYKDmZyb21fc3ViX2FnZW50GAYgASgIEhYKDnN1Yl9hZ2VudF9uYW1lGAcgASgJEhcKD21jcF9zZXJ2ZXJfc2x1ZxgIIAEoCRIZChFzdWJfYWdlbnRfc3ViamVjdBgJIAEoCRIXCg9hZ2VudF9yYXRpb25hbGUYCiABKAkSFgoOYnJhbmNoX2F0X2RlbnkYCyABKAkSGAoQaGVhZF9zaGFfYXRfZGVueRgMIAEoCRJBCgl0b29sX2tpbmQYDSABKA4yLi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuVG9vbEtpbmQSWgoWYXBwcm92YWxfcG9saWN5X3NvdXJjZRgPIAEoDjI6LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BcHByb3ZhbFBvbGljeVNvdXJjZUoECA4QDyKDAQoZQ2hpbGRBcHByb3ZhbE5vdGlmaWNhdGlvbhIUCgxleGVjdXRpb25faWQYASABKAkSUAoRcGVuZGluZ19hcHByb3ZhbHMYAiADKAsyNS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuUGVuZGluZ0FwcHJvdmFsIp0DCg9BcHByb3ZhbFJlcXVlc3QSGwoTYXBwcm92YWxfcmVxdWVzdF9pZBgBIAEoCRIUCgx0b29sX2NhbGxfaWQYAiABKAkSFAoMcmVxdWVzdGVkX2F0GAMgASgJEhEKCXRvb2xfbmFtZRgEIAEoCRIPCgdtZXNzYWdlGAUgASgJEhQKDGFyZ3NfcHJldmlldxgGIAEoCRIWCg5mcm9tX3N1Yl9hZ2VudBgHIAEoCBIWCg5zdWJfYWdlbnRfbmFtZRgIIAEoCRIZChFzdWJfYWdlbnRfc3ViamVjdBgJIAEoCRIXCg9tY3Bfc2VydmVyX3NsdWcYCiABKAkSQQoJdG9vbF9raW5kGAsgASgOMi4uYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlRvb2xLaW5kEloKFmFwcHJvdmFsX3BvbGljeV9zb3VyY2UYDSABKA4yOi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQXBwcm92YWxQb2xpY3lTb3VyY2VKBAgMEA0ilwEKEkFwcHJvdmFsUmV0cmFjdGlvbhIbChNhcHByb3ZhbF9yZXF1ZXN0X2lkGAEgASgJEk4KBnJlYXNvbhgCIAEoDjI+LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BcHByb3ZhbFJldHJhY3Rpb25SZWFzb24SFAoMcmV0cmFjdGVkX2F0GAMgASgJIq4BChBBcHByb3ZhbERlY2lzaW9uEhsKE2FwcHJvdmFsX3JlcXVlc3RfaWQYASABKAkSRAoGYWN0aW9uGAIgASgOMjQuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFwcHJvdmFsQWN0aW9uEhIKCmRlY2lkZWRfYXQYAyABKAkSEgoKZGVjaWRlZF9ieRgEIAEoCRIPCgdjb21tZW50GAUgASgJIp4DCg1BcHByb3ZhbEV2ZW50EhAKCGV2ZW50X2lkGAEgASgJEhsKE2FwcHJvdmFsX3JlcXVlc3RfaWQYAiABKAkSSwoKZXZlbnRfdHlwZRgDIAEoDjI3LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BcHByb3ZhbEV2ZW50VHlwZRIRCgl0aW1lc3RhbXAYBCABKAkSDQoFYWN0b3IYBSABKAkSSgoJcmVxdWVzdGVkGAYgASgLMjUuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFwcHJvdmFsUmVxdWVzdEgAEkkKB2RlY2lkZWQYByABKAsyNi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQXBwcm92YWxEZWNpc2lvbkgAEk0KCXJldHJhY3RlZBgIIAEoCzI4LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BcHByb3ZhbFJldHJhY3Rpb25IAEIJCgdwYXlsb2FkInAKE0FwcHJvdmFsRXZlbnRTdHJlYW0SFAoMZXhlY3V0aW9uX2lkGAEgASgJEkMKBmV2ZW50cxgCIAMoCzIzLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BcHByb3ZhbEV2ZW50YgZwcm90bzM",[file_ai_stigmer_agentic_agentexecution_v1_enum]);var file_ai_stigmer_agentic_agentexecution_v1_artifact=fileDesc("CjNhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvYXJ0aWZhY3QucHJvdG8SJGFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MSKEAgoRRXhlY3V0aW9uQXJ0aWZhY3QSDAoEbmFtZRgBIAEoCRIUCgxzYW5kYm94X3BhdGgYAiABKAkSUwoEa2luZBgDIAEoDjI7LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5FeGVjdXRpb25BcnRpZmFjdEtpbmRCCLpIBYIBAhABEhIKCnNpemVfYnl0ZXMYBCABKAMSEwoLc3RvcmFnZV9rZXkYBSABKAkSEgoKY3JlYXRlZF9hdBgHIAEoCRISCgpleHBpcmVzX2F0GAggASgJEg8KB2VudHJpZXMYCSADKAkSFAoMY29udGVudF9oYXNoGAogASgJYgZwcm90bzM",[file_ai_stigmer_agentic_agentexecution_v1_enum,file_buf_validate_validate]);var file_ai_stigmer_agentic_agentexecution_v1_context=fileDesc("CjJhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvY29udGV4dC5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxIoYDChJTdW1tYXJpemF0aW9uRXZlbnQSEQoJdGltZXN0YW1wGAEgASgJEhUKDXRva2Vuc19iZWZvcmUYAiABKAUSFAoMdG9rZW5zX2FmdGVyGAMgASgFEhkKEWNvbXByZXNzaW9uX3JhdGlvGAQgASgCEhMKC2R1cmF0aW9uX21zGAUgASgFEhsKE3N1bW1hcml6YXRpb25fbW9kZWwYBiABKAkSFwoPbWVzc2FnZXNfYmVmb3JlGAcgASgFEhYKDm1lc3NhZ2VzX2FmdGVyGAggASgFEkkKBnNvdXJjZRgJIAEoDjI5LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5TdW1tYXJpemF0aW9uU291cmNlEiIKGnN1bW1hcml6YXRpb25faW5wdXRfdG9rZW5zGAogASgFEiMKG3N1bW1hcml6YXRpb25fb3V0cHV0X3Rva2VucxgLIAEoBRIeChZzdW1tYXJpemF0aW9uX2Nvc3RfdXNkGAwgASgBIqoCCgtDb250ZXh0SW5mbxIbChNjdXJyZW50X3Rva2VuX2NvdW50GAEgASgFEhwKFGNvbnRleHRfd2luZG93X2xpbWl0GAIgASgFEicKH3N1bW1hcml6YXRpb25fdHJpZ2dlcl90aHJlc2hvbGQYAyABKAUSIwobc3VtbWFyaXphdGlvbl90YXJnZXRfdG9rZW5zGAQgASgFEh0KFXN1bW1hcml6YXRpb25fZW5hYmxlZBgFIAEoCBJWChRzdW1tYXJpemF0aW9uX2V2ZW50cxgGIAMoCzI4LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5TdW1tYXJpemF0aW9uRXZlbnQSGwoTdXRpbGl6YXRpb25fcGVyY2VudBgHIAEoAmIGcHJvdG8z",[file_ai_stigmer_agentic_agentexecution_v1_enum]);var file_ai_stigmer_agentic_agentexecution_v1_message=fileDesc("CjJhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvbWVzc2FnZS5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxIoICCgxBZ2VudE1lc3NhZ2USSQoEdHlwZRgBIAEoDjIxLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5NZXNzYWdlVHlwZUIIukgFggECEAESDwoHY29udGVudBgCIAEoCRIRCgl0aW1lc3RhbXAYAyABKAkSQgoKdG9vbF9jYWxscxgEIAMoCzIuLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5Ub29sQ2FsbBIpCghtZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSFAoMaXNfc3RyZWFtaW5nGAYgASgIIqUHCghUb29sQ2FsbBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEiUKBGFyZ3MYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg4KBnJlc3VsdBgEIAEoCRJOCgZzdGF0dXMYBSABKA4yNC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuVG9vbENhbGxTdGF0dXNCCLpIBYIBAhABEhIKCnN0YXJ0ZWRfYXQYByABKAkSFAoMY29tcGxldGVkX2F0GAggASgJEg0KBWVycm9yGAkgASgJEhkKEXJlcXVpcmVzX2FwcHJvdmFsGAogASgIEhgKEGFwcHJvdmFsX21lc3NhZ2UYCyABKAkSHQoVYXBwcm92YWxfcmVxdWVzdGVkX2F0GAwgASgJEhsKE2FwcHJvdmFsX2RlY2lkZWRfYXQYDSABKAkSEwoLYXBwcm92ZWRfYnkYDiABKAkSTQoPYXBwcm92YWxfYWN0aW9uGA8gASgOMjQuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFwcHJvdmFsQWN0aW9uEhQKDGlzX3N0cmVhbWluZxgQIAEoCBJXChBzdHJlYW1pbmdfc291cmNlGBMgASgOMj0uYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlRvb2xDYWxsU3RyZWFtaW5nU291cmNlEhcKD21jcF9zZXJ2ZXJfc2x1ZxgRIAEoCRIUCgxhcmdzX3ByZXZpZXcYEiABKAkSQQoJdG9vbF9raW5kGBQgASgOMi4uYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlRvb2xLaW5kEksKCm91dHB1dF9yZWYYFSABKAsyNy5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuVG9vbENhbGxPdXRwdXRSZWYSWgoWYXBwcm92YWxfcG9saWN5X3NvdXJjZRgXIAEoDjI6LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BcHByb3ZhbFBvbGljeVNvdXJjZRIdChVwb2xpY3lfZW5naW5lX3ZlcnNpb24YGCABKAkSHwoXYXBwcm92YWxfY29udGVudF9kaWdlc3QYGSABKAkSGgoSZmlsZV9jaGFuZ2Vfc2V0X2lkGBogASgJSgQIFhAXIpIBChFUb29sQ2FsbE91dHB1dFJlZhITCgtzdG9yYWdlX2tleRgBIAEoCRISCgpzaXplX2J5dGVzGAMgASgDEhQKDGNvbnRlbnRfaGFzaBgEIAEoCRIRCgltaW1lX3R5cGUYBSABKAkSEAoIaXNfaW1hZ2UYBiABKAgSGQoRdHJ1bmNhdGVkX3ByZXZpZXcYByABKAkiwQMKCkZpbGVDaGFuZ2USDAoEcGF0aBgBIAEoCRIVCg1hYnNvbHV0ZV9wYXRoGAIgASgJElMKC2NoYW5nZV90eXBlGAMgASgOMjQuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkZpbGVDaGFuZ2VUeXBlQgi6SAWCAQIQARJdCg1jYXB0dXJlX2xldmVsGAQgASgOMjwuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkZpbGVDaGFuZ2VDYXB0dXJlTGV2ZWxCCLpIBYIBAhABEkEKBmJlZm9yZRgFIAEoCzIxLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5GaWxlQ29udGVudBJACgVhZnRlchgGIAEoCzIxLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5GaWxlQ29udGVudBIUCgx1bmlmaWVkX2RpZmYYByABKAkSEwoLbGluZXNfYWRkZWQYCCABKAUSFQoNbGluZXNfcmVtb3ZlZBgJIAEoBRITCgtyZW5hbWVfZnJvbRgKIAEoCSKCAQoLRmlsZUNvbnRlbnQSEAoGaW5saW5lGAEgASgJSAASRgoDcmVmGAIgASgLMjcuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlRvb2xDYWxsT3V0cHV0UmVmSAASEQoJaXNfYmluYXJ5GAMgASgIQgYKBGJvZHliBnByb3RvMw",[file_ai_stigmer_agentic_agentexecution_v1_enum,file_buf_validate_validate,file_google_protobuf_struct]);var file_ai_stigmer_agentic_agentexecution_v1_filereview=fileDesc("CjVhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvZmlsZXJldmlldy5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxIokFCg1GaWxlQ2hhbmdlU2V0EgoKAmlkGAEgASgJEg8KB3R1cm5faWQYAiABKAkSEgoKaGFybmVzc19pZBgDIAEoCRJTCgZzdGF0dXMYBCABKA4yOS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRmlsZUNoYW5nZVNldFN0YXR1c0IIukgFggECEAESTAoRYmFzZWxpbmVfc25hcHNob3QYBSABKAsyMS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuU25hcHNob3RSZWYSTQoSY2FuZGlkYXRlX3NuYXBzaG90GAYgASgLMjEuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlNuYXBzaG90UmVmEkwKEWFwcHJvdmVkX3NuYXBzaG90GAcgASgLMjEuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlNuYXBzaG90UmVmEkkKB2NoYW5nZXMYCCADKAsyOC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQ2FwdHVyZWRGaWxlQ2hhbmdlEhgKEGFnZ3JlZ2F0ZV9kaWdlc3QYCSABKAkSWwoRZGlmZl9jb21wbGV0ZW5lc3MYCiABKA4yNi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRGlmZkNvbXBsZXRlbmVzc0IIukgFggECEAESRQoJZGVjaXNpb25zGAsgAygLMjIuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkZpbGVEZWNpc2lvbiKoBQoSQ2FwdHVyZWRGaWxlQ2hhbmdlEgoKAmlkGAEgASgJEhMKC3BhdGhfYmVmb3JlGAIgASgJEhIKCnBhdGhfYWZ0ZXIYAyABKAkSTAoEa2luZBgEIAEoDjI0LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5GaWxlQ2hhbmdlS2luZEIIukgFggECEAESVwoNY2FwdHVyZV9jbGFzcxgFIAEoDjI2LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5GaWxlQ2FwdHVyZUNsYXNzQgi6SAWCAQIQARJBCgZiZWZvcmUYBiABKAsyMS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRmlsZUNvbnRlbnQSQAoFYWZ0ZXIYByABKAsyMS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRmlsZUNvbnRlbnQSFQoNYmVmb3JlX3NoYTI1NhgIIAEoCRIUCgxhZnRlcl9zaGEyNTYYCSABKAkSTQoMdW5pZmllZF9kaWZmGAogASgLMjcuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlRvb2xDYWxsT3V0cHV0UmVmEhUKDWRpZmZfY29tcGxldGUYCyABKAgSEwoLZmlsZV9kaWdlc3QYDCABKAkSXQoOYmxvY2tlZF9yZWFzb24YDSABKA4yOy5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRmlsZVJldmlld0Jsb2NrUmVhc29uQgi6SAWCAQIQARITCgtsaW5lc19hZGRlZBgOIAEoBRIVCg1saW5lc19yZW1vdmVkGA8gASgFItsBCgtTbmFwc2hvdFJlZhJKCgRraW5kGAEgASgOMjIuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlNuYXBzaG90S2luZEIIukgFggECEAESPQoDZ2l0GAIgASgLMjAuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkdpdFRyZWVSZWYSQQoDY2FzGAMgASgLMjQuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkNhc01hbmlmZXN0UmVmIisKCkdpdFRyZWVSZWYSEAoIdHJlZV9vaWQYASABKAkSCwoDcmVmGAIgASgJIj8KDkNhc01hbmlmZXN0UmVmEhcKD21hbmlmZXN0X2RpZ2VzdBgBIAEoCRIUCgxhcnRpZmFjdF91cmkYAiABKAkitwMKDEZpbGVEZWNpc2lvbhIKCgJpZBgBIAEoCRIVCg1jaGFuZ2Vfc2V0X2lkGAIgASgJElAKBXNjb3BlGAMgASgOMjcuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkZpbGVEZWNpc2lvblNjb3BlQgi6SAWCAQIQARIWCg5maWxlX2NoYW5nZV9pZBgEIAEoCRJSCgZhY3Rpb24YBSABKA4yOC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRmlsZURlY2lzaW9uQWN0aW9uQgi6SAWCAQIQARIXCg9leHBlY3RlZF9kaWdlc3QYBiABKAkSEwoLcmV2aWV3ZXJfaWQYByABKAkSEgoKZGVjaWRlZF9hdBgIIAEoCRIOCgZyZWFzb24YCSABKAkSIAoYYWNrbm93bGVkZ2VfdW5yZXZpZXdhYmxlGAogASgIElIKBm9yaWdpbhgLIAEoDjI4LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5GaWxlRGVjaXNpb25PcmlnaW5CCLpIBYIBAhABIqYBChpGaWxlUmV2aWV3QmFzZWxpbmVDYXB0dXJlZBIVCg1jaGFuZ2Vfc2V0X2lkGAEgASgJEg8KB3R1cm5faWQYAiABKAkSEgoKaGFybmVzc19pZBgDIAEoCRJMChFiYXNlbGluZV9zbmFwc2hvdBgEIAEoCzIxLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5TbmFwc2hvdFJlZiJeChVUdXJuQ29tbWFuZFByb3ZlbmFuY2USHQoVY29uc2VudF90b29sX2NhbGxfaWRzGAEgAygJEiYKHmF1dGhvcml6ZWRfYnlfYXV0b19hcHByb3ZlX2FsbBgCIAEoCCKeAwobRmlsZVJldmlld0NhbmRpZGF0ZUNhcHR1cmVkEhUKDWNoYW5nZV9zZXRfaWQYASABKAkSTQoSY2FuZGlkYXRlX3NuYXBzaG90GAIgASgLMjEuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlNuYXBzaG90UmVmEkkKB2NoYW5nZXMYAyADKAsyOC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQ2FwdHVyZWRGaWxlQ2hhbmdlEhgKEGFnZ3JlZ2F0ZV9kaWdlc3QYBCABKAkSWwoRZGlmZl9jb21wbGV0ZW5lc3MYBSABKA4yNi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRGlmZkNvbXBsZXRlbmVzc0IIukgFggECEAESVwoSY29tbWFuZF9wcm92ZW5hbmNlGAYgASgLMjsuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlR1cm5Db21tYW5kUHJvdmVuYW5jZSJ7ChRGaWxlUmV2aWV3UmVjb25jaWxlZBIVCg1jaGFuZ2Vfc2V0X2lkGAEgASgJEkwKEWFwcHJvdmVkX3NuYXBzaG90GAIgASgLMjEuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlNuYXBzaG90UmVmIo8BChFGaWxlUmV2aWV3RmFpbHVyZRIVCg1jaGFuZ2Vfc2V0X2lkGAEgASgJElMKBGtpbmQYAiABKA4yOy5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRmlsZVJldmlld0ZhaWx1cmVLaW5kQgi6SAWCAQIQARIOCgZkZXRhaWwYAyABKAki6QQKD0ZpbGVSZXZpZXdFdmVudBIQCghldmVudF9pZBgBIAEoCRIVCg1jaGFuZ2Vfc2V0X2lkGAIgASgJElcKCmV2ZW50X3R5cGUYAyABKA4yOS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRmlsZVJldmlld0V2ZW50VHlwZUIIukgFggECEAESEQoJdGltZXN0YW1wGAQgASgJEg0KBWFjdG9yGAUgASgJEl0KEWJhc2VsaW5lX2NhcHR1cmVkGAYgASgLMkAuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkZpbGVSZXZpZXdCYXNlbGluZUNhcHR1cmVkSAASXwoSY2FuZGlkYXRlX2NhcHR1cmVkGAcgASgLMkEuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkZpbGVSZXZpZXdDYW5kaWRhdGVDYXB0dXJlZEgAEkoKDGZpbGVfZGVjaWRlZBgIIAEoCzIyLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5GaWxlRGVjaXNpb25IABJQCgpyZWNvbmNpbGVkGAkgASgLMjouYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkZpbGVSZXZpZXdSZWNvbmNpbGVkSAASSQoGZmFpbGVkGAogASgLMjcuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkZpbGVSZXZpZXdGYWlsdXJlSABCCQoHcGF5bG9hZCJ0ChVGaWxlUmV2aWV3RXZlbnRTdHJlYW0SFAoMZXhlY3V0aW9uX2lkGAEgASgJEkUKBmV2ZW50cxgCIAMoCzI1LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5GaWxlUmV2aWV3RXZlbnQi0wEKEkZpbGVDaGFuZ2VQcm9ncmVzcxIVCg1jaGFuZ2Vfc2V0X2lkGAEgASgJEhUKDWZpbGVzX2NoYW5nZWQYAiABKAUSEwoLbGluZXNfYWRkZWQYAyABKAUSFQoNbGluZXNfcmVtb3ZlZBgEIAEoBRJOCgdlbnRyaWVzGAUgAygLMj0uYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkZpbGVDaGFuZ2VQcm9ncmVzc0VudHJ5EhMKC2NhcHR1cmVkX2F0GAYgASgJIrwBChdGaWxlQ2hhbmdlUHJvZ3Jlc3NFbnRyeRITCgtwYXRoX2JlZm9yZRgBIAEoCRISCgpwYXRoX2FmdGVyGAIgASgJEkwKBGtpbmQYAyABKA4yNC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRmlsZUNoYW5nZUtpbmRCCLpIBYIBAhABEhMKC2xpbmVzX2FkZGVkGAQgASgFEhUKDWxpbmVzX3JlbW92ZWQYBSABKAViBnByb3RvMw",[file_ai_stigmer_agentic_agentexecution_v1_enum,file_ai_stigmer_agentic_agentexecution_v1_message,file_buf_validate_validate]);var file_ai_stigmer_agentic_executioncontext_v1_spec=fileDesc("CjFhaS9zdGlnbWVyL2FnZW50aWMvZXhlY3V0aW9uY29udGV4dC92MS9zcGVjLnByb3RvEiZhaS5zdGlnbWVyLmFnZW50aWMuZXhlY3V0aW9uY29udGV4dC52MSLwAQoURXhlY3V0aW9uQ29udGV4dFNwZWMSHQoMZXhlY3V0aW9uX2lkGAEgASgJQge6SARyAhABElQKBGRhdGEYAiADKAsyRi5haS5zdGlnbWVyLmFnZW50aWMuZXhlY3V0aW9uY29udGV4dC52MS5FeGVjdXRpb25Db250ZXh0U3BlYy5EYXRhRW50cnkaYwoJRGF0YUVudHJ5EgsKA2tleRgBIAEoCRJFCgV2YWx1ZRgCIAEoCzI2LmFpLnN0aWdtZXIuYWdlbnRpYy5leGVjdXRpb25jb250ZXh0LnYxLkV4ZWN1dGlvblZhbHVlOgI4ASIyCg5FeGVjdXRpb25WYWx1ZRINCgV2YWx1ZRgBIAEoCRIRCglpc19zZWNyZXQYAiABKAhiBnByb3RvMw",[file_buf_validate_validate]);var ExecutionValueSchema=messageDesc2(file_ai_stigmer_agentic_executioncontext_v1_spec,1);var file_ai_stigmer_agentic_session_v1_spec=fileDesc("CihhaS9zdGlnbWVyL2FnZW50aWMvc2Vzc2lvbi92MS9zcGVjLnByb3RvEh1haS5zdGlnbWVyLmFnZW50aWMuc2Vzc2lvbi52MSKWBwoLU2Vzc2lvblNwZWMSGQoRYWdlbnRfaW5zdGFuY2VfaWQYASABKAkSDwoHc3ViamVjdBgCIAEoCRIYChBoYXJuZXNzX3N0YXRlX2lkGAMgASgJEiAKGGhhcm5lc3Nfc3RhdGVfaWRfaGlzdG9yeRgNIAMoCRJKCghtZXRhZGF0YRgFIAMoCzI4LmFpLnN0aWdtZXIuYWdlbnRpYy5zZXNzaW9uLnYxLlNlc3Npb25TcGVjLk1ldGFkYXRhRW50cnkSSAoRd29ya3NwYWNlX2VudHJpZXMYBiADKAsyLS5haS5zdGlnbWVyLmFnZW50aWMuc2Vzc2lvbi52MS5Xb3Jrc3BhY2VFbnRyeRLZAQoRbWNwX3NlcnZlcl91c2FnZXMYByADKAsyKy5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnQudjEuTWNwU2VydmVyVXNhZ2VCkAG6SIwBkgGIASKFAboBgQEKHnNlc3Npb25fbWNwX3NlcnZlcl91c2FnZXMua2luZBI/bWNwX3NlcnZlcl91c2FnZXMgbXVzdCByZWZlcmVuY2UgcmVzb3VyY2VzIHdpdGgga2luZD1tY3Bfc2VydmVyGh50aGlzLm1jcF9zZXJ2ZXJfcmVmLmtpbmQgPT0gNDQSuAEKCnNraWxsX3JlZnMYCCADKAsyNC5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuQXBpUmVzb3VyY2VSZWZlcmVuY2VCbrpIZ5IBZCJiugFfChdzZXNzaW9uX3NraWxsX3JlZnMua2luZBIzc2tpbGxfcmVmcyBtdXN0IHJlZmVyZW5jZSByZXNvdXJjZXMgd2l0aCBraW5kPXNraWxsGg90aGlzLmtpbmQgPT0gNDPghSwrEjcKB2hhcm5lc3MYCiABKA4yJi5haS5zdGlnbWVyLmFnZW50aWMuc2Vzc2lvbi52MS5IYXJuZXNzEj4KC2N1cnNvcl9tb2RlGAsgASgOMikuYWkuc3RpZ21lci5hZ2VudGljLnNlc3Npb24udjEuQ3Vyc29yTW9kZRJIChBleGVjdXRpb25fdGFyZ2V0GAwgASgOMi4uYWkuc3RpZ21lci5hZ2VudGljLnNlc3Npb24udjEuRXhlY3V0aW9uVGFyZ2V0Gi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AWIGcHJvdG8z",[file_ai_stigmer_agentic_agent_v1_spec,file_ai_stigmer_agentic_session_v1_enum,file_ai_stigmer_agentic_session_v1_workspace,file_ai_stigmer_commons_apiresource_field_options,file_ai_stigmer_commons_apiresource_io,file_buf_validate_validate]);var file_ai_stigmer_agentic_agentexecution_v1_spec=fileDesc("Ci9haS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvc3BlYy5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxIo4KChJBZ2VudEV4ZWN1dGlvblNwZWMSEgoKc2Vzc2lvbl9pZBgBIAEoCRIQCghhZ2VudF9pZBgCIAEoCRJACgxzZXNzaW9uX3NwZWMYDSABKAsyKi5haS5zdGlnbWVyLmFnZW50aWMuc2Vzc2lvbi52MS5TZXNzaW9uU3BlYxIYCgdtZXNzYWdlGAMgASgJQge6SARyAhABEk8KEGV4ZWN1dGlvbl9jb25maWcYBCABKAsyNS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRXhlY3V0aW9uQ29uZmlnEl0KC3J1bnRpbWVfZW52GAUgAygLMkguYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFnZW50RXhlY3V0aW9uU3BlYy5SdW50aW1lRW52RW50cnkSFgoOY2FsbGJhY2tfdG9rZW4YBiABKAwSGAoQYXV0b19hcHByb3ZlX2FsbBgHIAEoCBIaChJwYXJlbnRfd29ya2Zsb3dfaWQYCCABKAkSRQoLYXR0YWNobWVudHMYCSADKAsyMC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQXR0YWNobWVudBIbChN3b3Jrc3BhY2VfZmlsZV9yZWZzGAogAygJEhsKE2FjdGl2aXR5X3Rhc2tfcXVldWUYCyABKAkSHwoXc3VwZXJzZWRlc19leGVjdXRpb25faWQYDCABKAkSVwoUY29udmVyc2F0aW9uX2NhdGNodXAYDiABKAsyOS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQ29udmVyc2F0aW9uQ2F0Y2h1cBJXChRkZWNsYXJlZF9wcmVmZXJlbmNlcxgPIAEoCzI5LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5EZWNsYXJlZFByZWZlcmVuY2VzGmkKD1J1bnRpbWVFbnZFbnRyeRILCgNrZXkYASABKAkSRQoFdmFsdWUYAiABKAsyNi5haS5zdGlnbWVyLmFnZW50aWMuZXhlY3V0aW9uY29udGV4dC52MS5FeGVjdXRpb25WYWx1ZToCOAE6uAO6SLQDGssBCiFhZ2VudF9leGVjdXRpb24uc2Vzc2lvbl9leGNsdXNpdmUScnNlc3Npb25faWQgYW5kIHNlc3Npb25fc3BlYyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIOKAlCByZWZlcmVuY2UgYW4gZXhpc3Rpbmcgc2Vzc2lvbiBvciBkZWZpbmUgYSBuZXcgb25lLCBub3QgYm90aBoyISh0aGlzLnNlc3Npb25faWQgIT0gJycgJiYgaGFzKHRoaXMuc2Vzc2lvbl9zcGVjKSka4wEKKmFnZW50X2V4ZWN1dGlvbi5zZXNzaW9uX3NwZWNfaGFybmVzc19zdGF0ZRJwc2Vzc2lvbl9zcGVjLmhhcm5lc3Nfc3RhdGVfaWQgbXVzdCBiZSBlbXB0eSDigJQgaGFybmVzcyBzdGF0ZSBpcyBjcmVhdGVkIGJ5IHRoZSBydW5uZXIgYWZ0ZXIgdGhlIGZpcnN0IGV4ZWN1dGlvbhpDIWhhcyh0aGlzLnNlc3Npb25fc3BlYykgfHwgdGhpcy5zZXNzaW9uX3NwZWMuaGFybmVzc19zdGF0ZV9pZCA9PSAnJyL6BAoPRXhlY3V0aW9uQ29uZmlnEhIKCm1vZGVsX25hbWUYASABKAkSWQoSY29udGV4dF9tYW5hZ2VtZW50GAIgASgLMj0uYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkNvbnRleHRNYW5hZ2VtZW50Q29uZmlnEhcKD21heF90b29sX3JvdW5kcxgDIAEoBRIdChVtYXhfdG9vbF9yZXN1bHRfY2hhcnMYBCABKAUSFAoMbWF4X2Nvc3RfdXNkGAUgASgBElkKEGludGVyYWN0aW9uX21vZGUYBiABKA4yNS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuSW50ZXJhY3Rpb25Nb2RlQgi6SAWCAQIQARI5ChhzdHJ1Y3R1cmVkX291dHB1dF9zY2hlbWEYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhcKD2J1aWxkX2Zyb21fcGxhbhgIIAEoCBJTCg1hcHByb3ZhbF9tb2RlGAkgASgOMjIuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFwcHJvdmFsTW9kZUIIukgFggECEAESUQoMc2VydmljZV90aWVyGAogASgOMjEuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlNlcnZpY2VUaWVyQgi6SAWCAQIQARJTCg10aGlua2luZ19tb2RlGAsgASgOMjIuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlRoaW5raW5nTW9kZUIIukgFggECEAEiigEKF0NvbnRleHRNYW5hZ2VtZW50Q29uZmlnEh0KFWRpc2FibGVfc3VtbWFyaXphdGlvbhgBIAEoCBIpChhjdXN0b21fdHJpZ2dlcl90aHJlc2hvbGQYAiABKAVCB7pIBBoCKAASJQoUY3VzdG9tX3RhcmdldF90b2tlbnMYAyABKAVCB7pIBBoCKAAi1AIKCkF0dGFjaG1lbnQS2AEKCGZpbGVuYW1lGAEgASgJQsUBukjBAboBuQEKG2F0dGFjaG1lbnQuZmlsZW5hbWUubm9fcGF0aBJOZmlsZW5hbWUgbXVzdCBiZSBhIGJhcmUgZmlsZW5hbWUgd2l0aG91dCBwYXRoIHNlcGFyYXRvcnMgb3IgdHJhdmVyc2FsIHNlZ21lbnRzGkohdGhpcy5jb250YWlucygnLycpICYmICF0aGlzLmNvbnRhaW5zKCdcXCcpICYmIHRoaXMgIT0gJy4nICYmIHRoaXMgIT0gJy4uJ3ICEAESHAoLc3RvcmFnZV9rZXkYAiABKAlCB7pIBHICEAESEgoKbW91bnRfcGF0aBgDIAEoCRIUCgxjb250ZW50X3R5cGUYBCABKAkSDwoHZXh0cmFjdBgFIAEoCBISCgpsb2NhbF9wYXRoGAYgASgJIlUKE0NvbnZlcnNhdGlvbkNhdGNodXASDgoGZGlnZXN0GAEgASgJEi4KCndpbmRvd19lbmQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIkAKE0RlY2xhcmVkUHJlZmVyZW5jZXMSEwoLb3JnX2NvbnRleHQYASABKAkSFAoMdXNlcl9jb250ZXh0GAIgASgJYgZwcm90bzM",[file_ai_stigmer_agentic_agentexecution_v1_enum,file_ai_stigmer_agentic_executioncontext_v1_spec,file_ai_stigmer_agentic_session_v1_spec,file_buf_validate_validate,file_google_protobuf_struct,file_google_protobuf_timestamp]),AgentExecutionSpecSchema=messageDesc2(file_ai_stigmer_agentic_agentexecution_v1_spec,0);var file_ai_stigmer_agentic_agentexecution_v1_todo=fileDesc("Ci9haS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvdG9kby5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxIpEBCghUb2RvSXRlbRIKCgJpZBgBIAEoCRIPCgdjb250ZW50GAIgASgJEkAKBnN0YXR1cxgDIAEoDjIwLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5Ub2RvU3RhdHVzEhIKCmNyZWF0ZWRfYXQYBCABKAkSEgoKdXBkYXRlZF9hdBgFIAEoCWIGcHJvdG8z",[file_ai_stigmer_agentic_agentexecution_v1_enum]);var file_ai_stigmer_agentic_agentexecution_v1_subagent=fileDesc("CjNhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvc3ViYWdlbnQucHJvdG8SJGFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MSKIBAoRU3ViQWdlbnRFeGVjdXRpb24SCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRINCgVpbnB1dBgDIAEoCRIOCgZvdXRwdXQYBCABKAkSTgoGc3RhdHVzGAUgASgOMjQuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlN1YkFnZW50U3RhdHVzQgi6SAWCAQIQARISCgpzdGFydGVkX2F0GAYgASgJEhQKDGNvbXBsZXRlZF9hdBgHIAEoCRINCgVlcnJvchgIIAEoCRIpCghtZXRhZGF0YRgJIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSRAoIbWVzc2FnZXMYCyADKAsyMi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQWdlbnRNZXNzYWdlEg8KB3N1YmplY3QYDSABKAkSUQoFdG9kb3MYDiADKAsyQi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuU3ViQWdlbnRFeGVjdXRpb24uVG9kb3NFbnRyeRpcCgpUb2Rvc0VudHJ5EgsKA2tleRgBIAEoCRI9CgV2YWx1ZRgCIAEoCzIuLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5Ub2RvSXRlbToCOAFiBnByb3RvMw",[file_ai_stigmer_agentic_agentexecution_v1_enum,file_ai_stigmer_agentic_agentexecution_v1_message,file_ai_stigmer_agentic_agentexecution_v1_todo,file_buf_validate_validate,file_google_protobuf_struct]);var file_ai_stigmer_agentic_agentexecution_v1_writeback=fileDesc("CjRhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvd3JpdGViYWNrLnByb3RvEiRhaS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEimgIKEldvcmtzcGFjZVdyaXRlQmFjaxIcChR3b3Jrc3BhY2VfZW50cnlfbmFtZRgBIAEoCRITCgticmFuY2hfbmFtZRgCIAEoCRITCgtiYXNlX2JyYW5jaBgDIAEoCRISCgpjb21taXRfc2hhGAQgASgJEhgKEHB1bGxfcmVxdWVzdF91cmwYBSABKAkSGwoTcHVsbF9yZXF1ZXN0X251bWJlchgGIAEoBRIUCgxkaWZmX3N1bW1hcnkYByABKAkSTAoFcGhhc2UYCCABKA4yPS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuV29ya3NwYWNlV3JpdGVCYWNrUGhhc2USDQoFZXJyb3IYCSABKAkq0AEKF1dvcmtzcGFjZVdyaXRlQmFja1BoYXNlEioKJldPUktTUEFDRV9XUklURV9CQUNLX1BIQVNFX1VOU1BFQ0lGSUVEEAASIgoeV09SS1NQQUNFX1dSSVRFX0JBQ0tfQ09NTUlUVEVEEAESHwobV09SS1NQQUNFX1dSSVRFX0JBQ0tfUFVTSEVEEAISIwofV09SS1NQQUNFX1dSSVRFX0JBQ0tfUFJfQ1JFQVRFRBADEh8KG1dPUktTUEFDRV9XUklURV9CQUNLX0ZBSUxFRBAEYgZwcm90bzM");var WorkspaceWriteBackPhase;(function(WorkspaceWriteBackPhase2){WorkspaceWriteBackPhase2[WorkspaceWriteBackPhase2.WORKSPACE_WRITE_BACK_PHASE_UNSPECIFIED=0]="WORKSPACE_WRITE_BACK_PHASE_UNSPECIFIED",WorkspaceWriteBackPhase2[WorkspaceWriteBackPhase2.WORKSPACE_WRITE_BACK_COMMITTED=1]="WORKSPACE_WRITE_BACK_COMMITTED",WorkspaceWriteBackPhase2[WorkspaceWriteBackPhase2.WORKSPACE_WRITE_BACK_PUSHED=2]="WORKSPACE_WRITE_BACK_PUSHED",WorkspaceWriteBackPhase2[WorkspaceWriteBackPhase2.WORKSPACE_WRITE_BACK_PR_CREATED=3]="WORKSPACE_WRITE_BACK_PR_CREATED",WorkspaceWriteBackPhase2[WorkspaceWriteBackPhase2.WORKSPACE_WRITE_BACK_FAILED=4]="WORKSPACE_WRITE_BACK_FAILED"})(WorkspaceWriteBackPhase||(WorkspaceWriteBackPhase={}));var file_ai_stigmer_agentic_agentexecution_v1_api=fileDesc("Ci5haS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvYXBpLnByb3RvEiRhaS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEiywIKDkFnZW50RXhlY3V0aW9uEjEKC2FwaV92ZXJzaW9uGAEgASgJQhy6SBlyFwoVYWdlbnRpYy5zdGlnbWVyLmFpL3YxEiMKBGtpbmQYAiABKAlCFbpIEnIQCg5BZ2VudEV4ZWN1dGlvbhJNCghtZXRhZGF0YRgDIAEoCzIzLmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZU1ldGFkYXRhQga6SAPIAQESRgoEc3BlYxgEIAEoCzI4LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BZ2VudEV4ZWN1dGlvblNwZWMSSgoGc3RhdHVzGAUgASgLMjouYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFnZW50RXhlY3V0aW9uU3RhdHVzItcLChRBZ2VudEV4ZWN1dGlvblN0YXR1cxI/CgVhdWRpdBhjIAEoCzIwLmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZUF1ZGl0EkQKCG1lc3NhZ2VzGAEgAygLMjIuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFnZW50TWVzc2FnZRJNCgVwaGFzZRgCIAEoDjI0LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5FeGVjdXRpb25QaGFzZUIIukgFggECEAESVQoUc3ViX2FnZW50X2V4ZWN1dGlvbnMYBCADKAsyNy5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuU3ViQWdlbnRFeGVjdXRpb24SDQoFZXJyb3IYBiABKAkSEgoKc3RhcnRlZF9hdBgHIAEoCRIUCgxjb21wbGV0ZWRfYXQYCCABKAkSVAoFdG9kb3MYCSADKAsyRS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQWdlbnRFeGVjdXRpb25TdGF0dXMuVG9kb3NFbnRyeRIWCg5jYWxsYmFja190b2tlbhgKIAEoDBJQChFwZW5kaW5nX2FwcHJvdmFscxgQIAMoCzI1LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5QZW5kaW5nQXBwcm92YWwSWAoVYXBwcm92YWxfZXZlbnRfc3RyZWFtGBYgASgLMjkuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFwcHJvdmFsRXZlbnRTdHJlYW0SRwoMY29udGV4dF9pbmZvGA4gASgLMjEuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkNvbnRleHRJbmZvEkoKCWFydGlmYWN0cxgPIAMoCzI3LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5FeGVjdXRpb25BcnRpZmFjdBJXChV3b3Jrc3BhY2Vfd3JpdGVfYmFja3MYESADKAsyOC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuV29ya3NwYWNlV3JpdGVCYWNrEksKDnNldHVwX3Byb2dyZXNzGBIgASgLMjMuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlNldHVwUHJvZ3Jlc3MSVAoPc3RyZWFtaW5nX3VzYWdlGBQgASgLMjsuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlN0cmVhbWluZ1VzYWdlU3VtbWFyeRIyChFzdHJ1Y3R1cmVkX291dHB1dBgVIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSTQoQZmlsZV9jaGFuZ2Vfc2V0cxgXIAMoCzIzLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5GaWxlQ2hhbmdlU2V0El0KGGZpbGVfcmV2aWV3X2V2ZW50X3N0cmVhbRgYIAEoCzI7LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5GaWxlUmV2aWV3RXZlbnRTdHJlYW0SVgoUZmlsZV9jaGFuZ2VfcHJvZ3Jlc3MYGSABKAsyOC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRmlsZUNoYW5nZVByb2dyZXNzGlwKClRvZG9zRW50cnkSCwoDa2V5GAEgASgJEj0KBXZhbHVlGAIgASgLMi4uYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlRvZG9JdGVtOgI4AUoECAwQDVIQcmVzb2x2ZWRfY29udGV4dCImCg1TZXR1cFByb2dyZXNzEhUKDWN1cnJlbnRfcGhhc2UYASABKAliBnByb3RvMw",[file_ai_stigmer_agentic_agentexecution_v1_approval,file_ai_stigmer_agentic_agentexecution_v1_artifact,file_ai_stigmer_agentic_agentexecution_v1_context,file_ai_stigmer_agentic_agentexecution_v1_enum,file_ai_stigmer_agentic_agentexecution_v1_filereview,file_ai_stigmer_agentic_agentexecution_v1_message,file_ai_stigmer_agentic_agentexecution_v1_spec,file_ai_stigmer_agentic_agentexecution_v1_subagent,file_ai_stigmer_agentic_agentexecution_v1_todo,file_ai_stigmer_agentic_agentexecution_v1_usage,file_ai_stigmer_agentic_agentexecution_v1_writeback,file_ai_stigmer_commons_apiresource_metadata,file_ai_stigmer_commons_apiresource_status,file_buf_validate_validate,file_google_protobuf_struct]),AgentExecutionSchema=messageDesc2(file_ai_stigmer_agentic_agentexecution_v1_api,0);var file_ai_stigmer_agentic_agentexecution_v1_io=fileDesc("Ci1haS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvaW8ucHJvdG8SJGFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MSIpChBBZ2VudEV4ZWN1dGlvbklkEhUKBXZhbHVlGAEgASgJQga6SAPIAQEiIgoJU2Vzc2lvbklkEhUKBXZhbHVlGAEgASgJQga6SAPIAQEicAoSQWdlbnRFeGVjdXRpb25MaXN0EhMKC3RvdGFsX3BhZ2VzGAEgASgFEkUKB2VudHJpZXMYAiADKAsyNC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQWdlbnRFeGVjdXRpb24iowEKGkxpc3RBZ2VudEV4ZWN1dGlvbnNSZXF1ZXN0EhEKCXBhZ2Vfc2l6ZRgBIAEoBRISCgpwYWdlX3Rva2VuGAIgASgJEkMKBXBoYXNlGAMgASgOMjQuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkV4ZWN1dGlvblBoYXNlEgwKBHRhZ3MYBCADKAkSCwoDb3JnGAUgASgJImgKI0xpc3RBZ2VudEV4ZWN1dGlvbnNCeVNlc3Npb25SZXF1ZXN0EhoKCnNlc3Npb25faWQYASABKAlCBrpIA8gBARIRCglwYWdlX3NpemUYAiABKAUSEgoKcGFnZV90b2tlbhgDIAEoCSKUAQofQWdlbnRFeGVjdXRpb25VcGRhdGVTdGF0dXNJbnB1dBIdCgxleGVjdXRpb25faWQYASABKAlCB7pIBHICEAESUgoGc3RhdHVzGAIgASgLMjouYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFnZW50RXhlY3V0aW9uU3RhdHVzQga6SAPIAQEiewoUVXBkYXRlU3RhdHVzUmVzcG9uc2USTAoGc2lnbmFsGAEgASgOMjwuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkV4ZWN1dGlvbkNvbnRyb2xTaWduYWwSFQoNc2lnbmFsX3JlYXNvbhgCIAEoCSK8AQoTU3VibWl0QXBwcm92YWxJbnB1dBIjChJhZ2VudF9leGVjdXRpb25faWQYASABKAlCB7pIBHICEAESHQoMdG9vbF9jYWxsX2lkGAIgASgJQge6SARyAhABElAKBmFjdGlvbhgDIAEoDjI0LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BcHByb3ZhbEFjdGlvbkIKukgHggEEEAEgABIPCgdjb21tZW50GAQgASgJImQKFEFwcHJvdmFsRGVjaXNpb25MaXN0EkwKCWRlY2lzaW9ucxgBIAMoCzI5LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5TdWJtaXRBcHByb3ZhbElucHV0IvQCChdTdWJtaXRGaWxlRGVjaXNpb25JbnB1dBIjChJhZ2VudF9leGVjdXRpb25faWQYASABKAlCB7pIBHICEAESHgoNY2hhbmdlX3NldF9pZBgCIAEoCUIHukgEcgIQARJSCgVzY29wZRgDIAEoDjI3LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5GaWxlRGVjaXNpb25TY29wZUIKukgHggEEEAEgABIWCg5maWxlX2NoYW5nZV9pZBgEIAEoCRJUCgZhY3Rpb24YBSABKA4yOC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRmlsZURlY2lzaW9uQWN0aW9uQgq6SAeCAQQQASAAEiAKD2V4cGVjdGVkX2RpZ2VzdBgGIAEoCUIHukgEcgIQARIOCgZyZWFzb24YByABKAkSIAoYYWNrbm93bGVkZ2VfdW5yZXZpZXdhYmxlGAggASgIIkAKGUNhbmNlbEFnZW50RXhlY3V0aW9uSW5wdXQSEwoCaWQYASABKAlCB7pIBHICEAESDgoGcmVhc29uGAIgASgJIkMKHFRlcm1pbmF0ZUFnZW50RXhlY3V0aW9uSW5wdXQSEwoCaWQYASABKAlCB7pIBHICEAESDgoGcmVhc29uGAIgASgJIjEKGlJlY292ZXJBZ2VudEV4ZWN1dGlvbklucHV0EhMKAmlkGAEgASgJQge6SARyAhABIj8KGFBhdXNlQWdlbnRFeGVjdXRpb25JbnB1dBITCgJpZBgBIAEoCUIHukgEcgIQARIOCgZyZWFzb24YAiABKAkiMAoZUmVzdW1lQWdlbnRFeGVjdXRpb25JbnB1dBITCgJpZBgBIAEoCUIHukgEcgIQASKqAgoXVXBsb2FkQXR0YWNobWVudFJlcXVlc3QS3wEKCGZpbGVuYW1lGAEgASgJQswBukjIAboBwAEKInVwbG9hZF9hdHRhY2htZW50LmZpbGVuYW1lLm5vX3BhdGgSTmZpbGVuYW1lIG11c3QgYmUgYSBiYXJlIGZpbGVuYW1lIHdpdGhvdXQgcGF0aCBzZXBhcmF0b3JzIG9yIHRyYXZlcnNhbCBzZWdtZW50cxpKIXRoaXMuY29udGFpbnMoJy8nKSAmJiAhdGhpcy5jb250YWlucygnXFwnKSAmJiB0aGlzICE9ICcuJyAmJiB0aGlzICE9ICcuLidyAhABEhcKB2NvbnRlbnQYAiABKAxCBrpIA8gBARIUCgxjb250ZW50X3R5cGUYAyABKAkiLwoYVXBsb2FkQXR0YWNobWVudFJlc3BvbnNlEhMKC3N0b3JhZ2Vfa2V5GAEgASgJInMKHUdldEFydGlmYWN0RG93bmxvYWRVcmxSZXF1ZXN0Eh0KDGV4ZWN1dGlvbl9pZBgBIAEoCUIHukgEcgIQARIcCgtzdG9yYWdlX2tleRgCIAEoCUIHukgEcgIQARIVCg1hc19hdHRhY2htZW50GAMgASgIIkoKHkdldEFydGlmYWN0RG93bmxvYWRVcmxSZXNwb25zZRIUCgxkb3dubG9hZF91cmwYASABKAkSEgoKZXhwaXJlc19hdBgCIAEoCSJ/ChlHZXRBcnRpZmFjdENvbnRlbnRSZXF1ZXN0Eh0KDGV4ZWN1dGlvbl9pZBgBIAEoCUIHukgEcgIQARIcCgtzdG9yYWdlX2tleRgCIAEoCUIHukgEcgIQARIRCgltYXhfYnl0ZXMYAyABKAMSEgoKZW50cnlfcGF0aBgEIAEoCSJwChpHZXRBcnRpZmFjdENvbnRlbnRSZXNwb25zZRIPCgdjb250ZW50GAEgASgMEhQKDGNvbnRlbnRfdHlwZRgCIAEoCRIYChB0b3RhbF9zaXplX2J5dGVzGAMgASgDEhEKCXRydW5jYXRlZBgEIAEoCCI9ChxHZXRFeGVjdXRpb25Vc2FnZVJlcG9ydElucHV0Eh0KDGV4ZWN1dGlvbl9pZBgBIAEoCUIHukgEcgIQASK5AQodR2V0RXhlY3V0aW9uVXNhZ2VSZXBvcnRPdXRwdXQSTQoJYWdncmVnYXRlGAEgASgLMjouYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlVzYWdlUmVwb3J0QWdncmVnYXRlEkkKD21vZGVsX2JyZWFrZG93bhgCIAMoCzIwLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5Nb2RlbFVzYWdlIjkKGkdldFNlc3Npb25Vc2FnZVJlcG9ydElucHV0EhsKCnNlc3Npb25faWQYASABKAlCB7pIBHICEAEihAMKG0dldFNlc3Npb25Vc2FnZVJlcG9ydE91dHB1dBISCgpzZXNzaW9uX2lkGAEgASgJEhcKD2V4ZWN1dGlvbl9jb3VudBgCIAEoBRJPCgt0b3RhbF91c2FnZRgDIAEoCzI6LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5Vc2FnZVJlcG9ydEFnZ3JlZ2F0ZRJPCgpleGVjdXRpb25zGAQgAygLMjsuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkV4ZWN1dGlvblVzYWdlU3VtbWFyeRJJCg9tb2RlbF9icmVha2Rvd24YBSADKAsyMC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuTW9kZWxVc2FnZRIaChJmaXJzdF9leGVjdXRpb25fYXQYBiABKAkSGQoRbGFzdF9leGVjdXRpb25fYXQYByABKAkSFAoMaXNfZXN0aW1hdGVkGAggASgIIpkBChhHZXRBZ2VudFVzYWdlUmVwb3J0SW5wdXQSGQoIYWdlbnRfaWQYASABKAlCB7pIBHICEAESEQoJZnJvbV9kYXRlGAIgASgJEg8KB3RvX2RhdGUYAyABKAkSEQoJcGFnZV9zaXplGAQgASgFEhIKCnBhZ2VfdG9rZW4YBSABKAkSFwoGb3JnX2lkGAYgASgJQge6SARyAhABIpkDChlHZXRBZ2VudFVzYWdlUmVwb3J0T3V0cHV0EhAKCGFnZW50X2lkGAEgASgJEhIKCmFnZW50X25hbWUYAiABKAkSTwoLdG90YWxfdXNhZ2UYAyABKAsyOi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuVXNhZ2VSZXBvcnRBZ2dyZWdhdGUSSQoPbW9kZWxfYnJlYWtkb3duGAQgAygLMjAuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLk1vZGVsVXNhZ2USSwoIc2Vzc2lvbnMYBSADKAsyOS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuU2Vzc2lvblVzYWdlU3VtbWFyeRIWCg50b3RhbF9zZXNzaW9ucxgGIAEoBRIYChB0b3RhbF9leGVjdXRpb25zGAcgASgFEiIKGnRvdGFsX2JpbGxhYmxlX2Nvc3RfbWljcm9zGAggASgDEhcKD25leHRfcGFnZV90b2tlbhgJIAEoCSJnChZHZXRPcmdVc2FnZVJlcG9ydElucHV0EhcKBm9yZ19pZBgBIAEoCUIHukgEcgIQARIaCglmcm9tX2RhdGUYAiABKAlCB7pIBHICEAESGAoHdG9fZGF0ZRgDIAEoCUIHukgEcgIQASLVAwoXR2V0T3JnVXNhZ2VSZXBvcnRPdXRwdXQSDgoGb3JnX2lkGAEgASgJEhQKDHRvdGFsX2FnZW50cxgCIAEoBRIWCg50b3RhbF9zZXNzaW9ucxgDIAEoBRIYChB0b3RhbF9leGVjdXRpb25zGAQgASgFEiIKGnRvdGFsX2JpbGxhYmxlX2Nvc3RfbWljcm9zGAUgASgDEkkKD21vZGVsX2JyZWFrZG93bhgGIAMoCzIwLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5Nb2RlbFVzYWdlElMKEnRvcF9hZ2VudHNfYnlfY29zdBgHIAMoCzI3LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BZ2VudFVzYWdlU3VtbWFyeRJJCgtkYWlseV9jb3N0cxgIIAMoCzI0LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5EYWlseUNvc3RFbnRyeRJTChFoYXJuZXNzX2JyZWFrZG93bhgJIAMoCzI4LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5IYXJuZXNzQ29zdFN1bW1hcnkizgIKFUV4ZWN1dGlvblVzYWdlU3VtbWFyeRIUCgxleGVjdXRpb25faWQYASABKAkSEgoKc3RhcnRlZF9hdBgCIAEoCRIUCgxjb21wbGV0ZWRfYXQYAyABKAkSFAoMaW5wdXRfdG9rZW5zGAQgASgDEhUKDW91dHB1dF90b2tlbnMYBSABKAMSHwoXY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMYBiABKAMSHAoUYmlsbGFibGVfY29zdF9taWNyb3MYByABKAMSFQoNcHJpbWFyeV9tb2RlbBgIIAEoCRIXCg9zdWJfYWdlbnRfY291bnQYCSABKAUSQwoFcGhhc2UYCiABKA4yNC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRXhlY3V0aW9uUGhhc2USFAoMaXNfZXN0aW1hdGVkGAsgASgIIq0BChNTZXNzaW9uVXNhZ2VTdW1tYXJ5EhIKCnNlc3Npb25faWQYASABKAkSFwoPZXhlY3V0aW9uX2NvdW50GAIgASgFEhQKDHRvdGFsX3Rva2VucxgDIAEoAxIcChRiaWxsYWJsZV9jb3N0X21pY3JvcxgEIAEoAxIaChJmaXJzdF9leGVjdXRpb25fYXQYBSABKAkSGQoRbGFzdF9leGVjdXRpb25fYXQYBiABKAkihgEKEUFnZW50VXNhZ2VTdW1tYXJ5EhAKCGFnZW50X2lkGAEgASgJEhIKCmFnZW50X25hbWUYAiABKAkSFwoPZXhlY3V0aW9uX2NvdW50GAMgASgFEhQKDHRvdGFsX3Rva2VucxgEIAEoAxIcChRiaWxsYWJsZV9jb3N0X21pY3JvcxgFIAEoAyJrCg5EYWlseUNvc3RFbnRyeRIMCgRkYXRlGAEgASgJEhcKD2V4ZWN1dGlvbl9jb3VudBgCIAEoBRIUCgx0b3RhbF90b2tlbnMYAyABKAMSHAoUYmlsbGFibGVfY29zdF9taWNyb3MYBCABKAMicAoSSGFybmVzc0Nvc3RTdW1tYXJ5Eg8KB2hhcm5lc3MYASABKAkSHAoUYmlsbGFibGVfY29zdF9taWNyb3MYAiABKAMSEgoKY2FsbF9jb3VudBgDIAEoBRIXCg9leGVjdXRpb25fY291bnQYBCABKAUikwEKH0dldEFnZW50RXhlY3V0aW9uU3VtbWFyeVJlcXVlc3QSFAoDb3JnGAEgASgJQge6SARyAhABEloKC3RpbWVfd2luZG93GAIgASgOMkUuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFnZW50RXhlY3V0aW9uU3VtbWFyeVRpbWVXaW5kb3ciygIKFUFnZW50RXhlY3V0aW9uU3VtbWFyeRIUCgxhY3RpdmVfY291bnQYASABKAUSYgoMcGhhc2VfY291bnRzGAIgAygLMkwuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFnZW50RXhlY3V0aW9uU3VtbWFyeS5QaGFzZUNvdW50c0VudHJ5Ei8KDGF2Z19kdXJhdGlvbhgDIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhJSChJ0b3BfZmFpbGluZ19hZ2VudHMYBCADKAsyNi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQWdlbnRGYWlsdXJlUmFuaxoyChBQaGFzZUNvdW50c0VudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEiUQoQQWdlbnRGYWlsdXJlUmFuaxISCgphZ2VudF9zbHVnGAEgASgJEhIKCmFnZW50X25hbWUYAiABKAkSFQoNZmFpbHVyZV9jb3VudBgDIAEoBSqdAgofQWdlbnRFeGVjdXRpb25TdW1tYXJ5VGltZVdpbmRvdxIzCi9BR0VOVF9FWEVDVVRJT05fU1VNTUFSWV9USU1FX1dJTkRPV19VTlNQRUNJRklFRBAAEjAKLEFHRU5UX0VYRUNVVElPTl9TVU1NQVJZX1RJTUVfV0lORE9XX0xBU1RfMjRIEAESLworQUdFTlRfRVhFQ1VUSU9OX1NVTU1BUllfVElNRV9XSU5ET1dfTEFTVF83RBACEjAKLEFHRU5UX0VYRUNVVElPTl9TVU1NQVJZX1RJTUVfV0lORE9XX0xBU1RfMzBEEAMSMAosQUdFTlRfRVhFQ1VUSU9OX1NVTU1BUllfVElNRV9XSU5ET1dfQUxMX1RJTUUQBGIGcHJvdG8z",[file_ai_stigmer_agentic_agentexecution_v1_api,file_ai_stigmer_agentic_agentexecution_v1_enum,file_ai_stigmer_agentic_agentexecution_v1_usage,file_buf_validate_validate,file_google_protobuf_duration]);var AgentExecutionSummaryTimeWindow;(function(AgentExecutionSummaryTimeWindow2){AgentExecutionSummaryTimeWindow2[AgentExecutionSummaryTimeWindow2.UNSPECIFIED=0]="UNSPECIFIED",AgentExecutionSummaryTimeWindow2[AgentExecutionSummaryTimeWindow2.LAST_24H=1]="LAST_24H",AgentExecutionSummaryTimeWindow2[AgentExecutionSummaryTimeWindow2.LAST_7D=2]="LAST_7D",AgentExecutionSummaryTimeWindow2[AgentExecutionSummaryTimeWindow2.LAST_30D=3]="LAST_30D",AgentExecutionSummaryTimeWindow2[AgentExecutionSummaryTimeWindow2.ALL_TIME=4]="ALL_TIME"})(AgentExecutionSummaryTimeWindow||(AgentExecutionSummaryTimeWindow={}));var file_ai_stigmer_agentic_agentexecution_v1_command=fileDesc("CjJhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvY29tbWFuZC5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxMtMRCh9BZ2VudEV4ZWN1dGlvbkNvbW1hbmRDb250cm9sbGVyEnoKBmNyZWF0ZRI0LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BZ2VudEV4ZWN1dGlvbho0LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BZ2VudEV4ZWN1dGlvbiIE0LgYARKzAQoGdXBkYXRlEjQuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFnZW50RXhlY3V0aW9uGjQuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFnZW50RXhlY3V0aW9uIj3CuBg5CAIQKSILbWV0YWRhdGEuaWQqJnVuYXV0aG9yaXplZCB0byB1cGRhdGUgYWdlbnQgZXhlY3V0aW9uEtgBCgx1cGRhdGVTdGF0dXMSRS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQWdlbnRFeGVjdXRpb25VcGRhdGVTdGF0dXNJbnB1dBo6LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5VcGRhdGVTdGF0dXNSZXNwb25zZSJFwrgYQQgCECkiDGV4ZWN1dGlvbl9pZCotdW5hdXRob3JpemVkIHRvIHVwZGF0ZSBhZ2VudCBleGVjdXRpb24gc3RhdHVzEqYBCgZkZWxldGUSLS5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuQXBpUmVzb3VyY2VJZBo0LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BZ2VudEV4ZWN1dGlvbiI3wrgYMwgCECkiBXZhbHVlKiZ1bmF1dGhvcml6ZWQgdG8gZGVsZXRlIGFnZW50IGV4ZWN1dGlvbhLUAQoOc3VibWl0QXBwcm92YWwSOS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuU3VibWl0QXBwcm92YWxJbnB1dBo0LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BZ2VudEV4ZWN1dGlvbiJRwrgYTQgCECkiEmFnZW50X2V4ZWN1dGlvbl9pZCozdW5hdXRob3JpemVkIHRvIHN1Ym1pdCBhcHByb3ZhbCBmb3IgYWdlbnQgZXhlY3V0aW9uEuEBChJzdWJtaXRGaWxlRGVjaXNpb24SPS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuU3VibWl0RmlsZURlY2lzaW9uSW5wdXQaNC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQWdlbnRFeGVjdXRpb24iVsK4GFIIAhApIhJhZ2VudF9leGVjdXRpb25faWQqOHVuYXV0aG9yaXplZCB0byBzdWJtaXQgZmlsZSBkZWNpc2lvbiBmb3IgYWdlbnQgZXhlY3V0aW9uErUBCgZjYW5jZWwSPy5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQ2FuY2VsQWdlbnRFeGVjdXRpb25JbnB1dBo0LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BZ2VudEV4ZWN1dGlvbiI0wrgYMAgCECkiAmlkKiZ1bmF1dGhvcml6ZWQgdG8gY2FuY2VsIGFnZW50IGV4ZWN1dGlvbhK+AQoJdGVybWluYXRlEkIuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlRlcm1pbmF0ZUFnZW50RXhlY3V0aW9uSW5wdXQaNC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQWdlbnRFeGVjdXRpb24iN8K4GDMIAhApIgJpZCopdW5hdXRob3JpemVkIHRvIHRlcm1pbmF0ZSBhZ2VudCBleGVjdXRpb24SuAEKB3JlY292ZXISQC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuUmVjb3ZlckFnZW50RXhlY3V0aW9uSW5wdXQaNC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQWdlbnRFeGVjdXRpb24iNcK4GDEIAhApIgJpZCondW5hdXRob3JpemVkIHRvIHJlY292ZXIgYWdlbnQgZXhlY3V0aW9uErIBCgVwYXVzZRI+LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5QYXVzZUFnZW50RXhlY3V0aW9uSW5wdXQaNC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQWdlbnRFeGVjdXRpb24iM8K4GC8IAhApIgJpZColdW5hdXRob3JpemVkIHRvIHBhdXNlIGFnZW50IGV4ZWN1dGlvbhK1AQoGcmVzdW1lEj8uYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLlJlc3VtZUFnZW50RXhlY3V0aW9uSW5wdXQaNC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuQWdlbnRFeGVjdXRpb24iNMK4GDAIAhApIgJpZComdW5hdXRob3JpemVkIHRvIHJlc3VtZSBhZ2VudCBleGVjdXRpb24SlwEKEHVwbG9hZEF0dGFjaG1lbnQSPS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuVXBsb2FkQXR0YWNobWVudFJlcXVlc3QaPi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuVXBsb2FkQXR0YWNobWVudFJlc3BvbnNlIgTQuBgBGgSg/yspYgZwcm90bzM",[file_ai_stigmer_agentic_agentexecution_v1_api,file_ai_stigmer_agentic_agentexecution_v1_io,file_ai_stigmer_commons_apiresource_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),AgentExecutionCommandController=serviceDesc(file_ai_stigmer_agentic_agentexecution_v1_command,0);var file_ai_stigmer_agentic_agentexecution_v1_query=fileDesc("CjBhaS9zdGlnbWVyL2FnZW50aWMvYWdlbnRleGVjdXRpb24vdjEvcXVlcnkucHJvdG8SJGFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MTKvEQodQWdlbnRFeGVjdXRpb25RdWVyeUNvbnRyb2xsZXISqQEKA2dldBI2LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BZ2VudEV4ZWN1dGlvbklkGjQuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFnZW50RXhlY3V0aW9uIjTCuBgwCAEQKSIFdmFsdWUqI3VuYXV0aG9yaXplZCB0byBnZXQgYWdlbnQgZXhlY3V0aW9uEogBCgRsaXN0EkAuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkxpc3RBZ2VudEV4ZWN1dGlvbnNSZXF1ZXN0GjguYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFnZW50RXhlY3V0aW9uTGlzdCIE0LgYARKaAQoNbGlzdEJ5U2Vzc2lvbhJJLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5MaXN0QWdlbnRFeGVjdXRpb25zQnlTZXNzaW9uUmVxdWVzdBo4LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BZ2VudEV4ZWN1dGlvbkxpc3QiBNC4GAESugEKCXN1YnNjcmliZRI2LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BZ2VudEV4ZWN1dGlvbklkGjQuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFnZW50RXhlY3V0aW9uIj3CuBg5CAEQKSIFdmFsdWUqLHVuYXV0aG9yaXplZCB0byBzdWJzY3JpYmUgdG8gYWdlbnQgZXhlY3V0aW9uMAES8wEKFmdldEFydGlmYWN0RG93bmxvYWRVcmwSQy5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuR2V0QXJ0aWZhY3REb3dubG9hZFVybFJlcXVlc3QaRC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuR2V0QXJ0aWZhY3REb3dubG9hZFVybFJlc3BvbnNlIk7CuBhKCAEQKSIMZXhlY3V0aW9uX2lkKjZ1bmF1dGhvcml6ZWQgdG8gZG93bmxvYWQgYXJ0aWZhY3QgZnJvbSBhZ2VudCBleGVjdXRpb24S6wEKEmdldEFydGlmYWN0Q29udGVudBI/LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5HZXRBcnRpZmFjdENvbnRlbnRSZXF1ZXN0GkAuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkdldEFydGlmYWN0Q29udGVudFJlc3BvbnNlIlLCuBhOCAEQKSIMZXhlY3V0aW9uX2lkKjp1bmF1dGhvcml6ZWQgdG8gcmVhZCBhcnRpZmFjdCBjb250ZW50IGZyb20gYWdlbnQgZXhlY3V0aW9uEucBChdnZXRFeGVjdXRpb25Vc2FnZVJlcG9ydBJCLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5HZXRFeGVjdXRpb25Vc2FnZVJlcG9ydElucHV0GkMuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkdldEV4ZWN1dGlvblVzYWdlUmVwb3J0T3V0cHV0IkPCuBg/CAEQKSIMZXhlY3V0aW9uX2lkKit1bmF1dGhvcml6ZWQgdG8gdmlldyBleGVjdXRpb24gdXNhZ2UgcmVwb3J0Et0BChVnZXRTZXNzaW9uVXNhZ2VSZXBvcnQSQC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuR2V0U2Vzc2lvblVzYWdlUmVwb3J0SW5wdXQaQS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuR2V0U2Vzc2lvblVzYWdlUmVwb3J0T3V0cHV0Ij/CuBg7CAEQKiIKc2Vzc2lvbl9pZCopdW5hdXRob3JpemVkIHRvIHZpZXcgc2Vzc2lvbiB1c2FnZSByZXBvcnQS0QEKE2dldEFnZW50VXNhZ2VSZXBvcnQSPi5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuR2V0QWdlbnRVc2FnZVJlcG9ydElucHV0Gj8uYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkdldEFnZW50VXNhZ2VSZXBvcnRPdXRwdXQiOcK4GDUIARAeIgZvcmdfaWQqJ3VuYXV0aG9yaXplZCB0byB2aWV3IGFnZW50IHVzYWdlIHJlcG9ydBLSAQoRZ2V0T3JnVXNhZ2VSZXBvcnQSPC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuR2V0T3JnVXNhZ2VSZXBvcnRJbnB1dBo9LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5HZXRPcmdVc2FnZVJlcG9ydE91dHB1dCJAwrgYPAgBEB4iBm9yZ19pZCoudW5hdXRob3JpemVkIHRvIHZpZXcgb3JnYW5pemF0aW9uIHVzYWdlIHJlcG9ydBKfAQoTZ2V0RXhlY3V0aW9uU3VtbWFyeRJFLmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5HZXRBZ2VudEV4ZWN1dGlvblN1bW1hcnlSZXF1ZXN0GjsuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFnZW50RXhlY3V0aW9uU3VtbWFyeSIE0LgYARoEoP8rKWIGcHJvdG8z",[file_ai_stigmer_agentic_agentexecution_v1_api,file_ai_stigmer_agentic_agentexecution_v1_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),AgentExecutionQueryController=serviceDesc(file_ai_stigmer_agentic_agentexecution_v1_query,0);var file_ai_stigmer_agentic_environment_v1_api=fileDesc("CithaS9zdGlnbWVyL2FnZW50aWMvZW52aXJvbm1lbnQvdjEvYXBpLnByb3RvEiFhaS5zdGlnbWVyLmFnZW50aWMuZW52aXJvbm1lbnQudjEiuwIKC0Vudmlyb25tZW50EjEKC2FwaV92ZXJzaW9uGAEgASgJQhy6SBlyFwoVYWdlbnRpYy5zdGlnbWVyLmFpL3YxEiAKBGtpbmQYAiABKAlCErpID3INCgtFbnZpcm9ubWVudBJNCghtZXRhZGF0YRgDIAEoCzIzLmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZU1ldGFkYXRhQga6SAPIAQESQAoEc3BlYxgEIAEoCzIyLmFpLnN0aWdtZXIuYWdlbnRpYy5lbnZpcm9ubWVudC52MS5FbnZpcm9ubWVudFNwZWMSRgoGc3RhdHVzGAUgASgLMjYuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLkFwaVJlc291cmNlQXVkaXRTdGF0dXNiBnByb3RvMw",[file_ai_stigmer_agentic_environment_v1_spec,file_ai_stigmer_commons_apiresource_metadata,file_ai_stigmer_commons_apiresource_status,file_buf_validate_validate]),EnvironmentSchema=messageDesc2(file_ai_stigmer_agentic_environment_v1_api,0);var file_ai_stigmer_agentic_environment_v1_io=fileDesc("CiphaS9zdGlnbWVyL2FnZW50aWMvZW52aXJvbm1lbnQvdjEvaW8ucHJvdG8SIWFpLnN0aWdtZXIuYWdlbnRpYy5lbnZpcm9ubWVudC52MSImCg1FbnZpcm9ubWVudElkEhUKBXZhbHVlGAEgASgJQga6SAPIAQEiVAobRW52aXJvbm1lbnRTZWNyZXRWYWx1ZUlucHV0Eh8KDmVudmlyb25tZW50X2lkGAEgASgJQge6SARyAhABEhQKA2tleRgCIAEoCUIHukgEcgIQASLrAQoXTGlzdEVudmlyb25tZW50c1JlcXVlc3QSFAoDb3JnGAEgASgJQge6SARyAhABElYKBmxhYmVscxgCIAMoCzJGLmFpLnN0aWdtZXIuYWdlbnRpYy5lbnZpcm9ubWVudC52MS5MaXN0RW52aXJvbm1lbnRzUmVxdWVzdC5MYWJlbHNFbnRyeRIzCglwYWdlX2luZm8YAyABKAsyIC5haS5zdGlnbWVyLmNvbW1vbnMucnBjLlBhZ2VJbmZvGi0KC0xhYmVsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiZQoPRW52aXJvbm1lbnRMaXN0EhMKC3RvdGFsX2NvdW50GAEgASgFEj0KBWl0ZW1zGAIgAygLMi4uYWkuc3RpZ21lci5hZ2VudGljLmVudmlyb25tZW50LnYxLkVudmlyb25tZW50IpMCCiFVcGRhdGVFbnZpcm9ubWVudFZhcmlhYmxlc1JlcXVlc3QSHwoOZW52aXJvbm1lbnRfaWQYASABKAlCB7pIBHICEAESZgoJdmFyaWFibGVzGAIgAygLMlMuYWkuc3RpZ21lci5hZ2VudGljLmVudmlyb25tZW50LnYxLlVwZGF0ZUVudmlyb25tZW50VmFyaWFibGVzUmVxdWVzdC5WYXJpYWJsZXNFbnRyeRplCg5WYXJpYWJsZXNFbnRyeRILCgNrZXkYASABKAkSQgoFdmFsdWUYAiABKAsyMy5haS5zdGlnbWVyLmFnZW50aWMuZW52aXJvbm1lbnQudjEuRW52aXJvbm1lbnRWYWx1ZToCOAEiXAohUmVtb3ZlRW52aXJvbm1lbnRWYXJpYWJsZXNSZXF1ZXN0Eh8KDmVudmlyb25tZW50X2lkGAEgASgJQge6SARyAhABEhYKBGtleXMYAiADKAlCCLpIBZIBAggBYgZwcm90bzM",[file_ai_stigmer_agentic_environment_v1_api,file_ai_stigmer_agentic_environment_v1_spec,file_ai_stigmer_commons_rpc_pagination,file_buf_validate_validate]);var file_ai_stigmer_agentic_environment_v1_command=fileDesc("Ci9haS9zdGlnbWVyL2FnZW50aWMvZW52aXJvbm1lbnQvdjEvY29tbWFuZC5wcm90bxIhYWkuc3RpZ21lci5hZ2VudGljLmVudmlyb25tZW50LnYxMoMKChxFbnZpcm9ubWVudENvbW1hbmRDb250cm9sbGVyEmcKBWFwcGx5Ei4uYWkuc3RpZ21lci5hZ2VudGljLmVudmlyb25tZW50LnYxLkVudmlyb25tZW50Gi4uYWkuc3RpZ21lci5hZ2VudGljLmVudmlyb25tZW50LnYxLkVudmlyb25tZW50ErkBCgZjcmVhdGUSLi5haS5zdGlnbWVyLmFnZW50aWMuZW52aXJvbm1lbnQudjEuRW52aXJvbm1lbnQaLi5haS5zdGlnbWVyLmFnZW50aWMuZW52aXJvbm1lbnQudjEuRW52aXJvbm1lbnQiT8K4GEsIDBAeIgxtZXRhZGF0YS5vcmcqN3VuYXV0aG9yaXplZCB0byBjcmVhdGUgZW52aXJvbm1lbnQgaW4gdGhpcyBvcmdhbml6YXRpb24SowEKBnVwZGF0ZRIuLmFpLnN0aWdtZXIuYWdlbnRpYy5lbnZpcm9ubWVudC52MS5FbnZpcm9ubWVudBouLmFpLnN0aWdtZXIuYWdlbnRpYy5lbnZpcm9ubWVudC52MS5FbnZpcm9ubWVudCI5wrgYNQgCEDUiC21ldGFkYXRhLmlkKiJ1bmF1dGhvcml6ZWQgdG8gdXBkYXRlIGVudmlyb25tZW50Er8BChB1cGRhdGVWaXNpYmlsaXR5EjUuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLlVwZGF0ZVZpc2liaWxpdHlJbnB1dBouLmFpLnN0aWdtZXIuYWdlbnRpYy5lbnZpcm9ubWVudC52MS5FbnZpcm9ubWVudCJEwrgYQAgCEDUiC3Jlc291cmNlX2lkKi11bmF1dGhvcml6ZWQgdG8gdXBkYXRlIGVudmlyb25tZW50IHZpc2liaWxpdHkSqwEKBmRlbGV0ZRI2LmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZURlbGV0ZUlucHV0Gi4uYWkuc3RpZ21lci5hZ2VudGljLmVudmlyb25tZW50LnYxLkVudmlyb25tZW50IjnCuBg1CAIQNSILcmVzb3VyY2VfaWQqInVuYXV0aG9yaXplZCB0byBkZWxldGUgZW52aXJvbm1lbnQSzwEKD3VwZGF0ZVZhcmlhYmxlcxJELmFpLnN0aWdtZXIuYWdlbnRpYy5lbnZpcm9ubWVudC52MS5VcGRhdGVFbnZpcm9ubWVudFZhcmlhYmxlc1JlcXVlc3QaLi5haS5zdGlnbWVyLmFnZW50aWMuZW52aXJvbm1lbnQudjEuRW52aXJvbm1lbnQiRsK4GEIIAhA1Ig5lbnZpcm9ubWVudF9pZCosdW5hdXRob3JpemVkIHRvIHVwZGF0ZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMSzwEKD3JlbW92ZVZhcmlhYmxlcxJELmFpLnN0aWdtZXIuYWdlbnRpYy5lbnZpcm9ubWVudC52MS5SZW1vdmVFbnZpcm9ubWVudFZhcmlhYmxlc1JlcXVlc3QaLi5haS5zdGlnbWVyLmFnZW50aWMuZW52aXJvbm1lbnQudjEuRW52aXJvbm1lbnQiRsK4GEIIAhA1Ig5lbnZpcm9ubWVudF9pZCosdW5hdXRob3JpemVkIHRvIHJlbW92ZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMaBKD/KzViBnByb3RvMw",[file_ai_stigmer_agentic_environment_v1_api,file_ai_stigmer_agentic_environment_v1_io,file_ai_stigmer_commons_apiresource_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),EnvironmentCommandController=serviceDesc(file_ai_stigmer_agentic_environment_v1_command,0);var file_ai_stigmer_agentic_environment_v1_query=fileDesc("Ci1haS9zdGlnbWVyL2FnZW50aWMvZW52aXJvbm1lbnQvdjEvcXVlcnkucHJvdG8SIWFpLnN0aWdtZXIuYWdlbnRpYy5lbnZpcm9ubWVudC52MTKMBQoaRW52aXJvbm1lbnRRdWVyeUNvbnRyb2xsZXISlgEKA2dldBItLmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZUlkGi4uYWkuc3RpZ21lci5hZ2VudGljLmVudmlyb25tZW50LnYxLkVudmlyb25tZW50IjDCuBgsCAEQNSIFdmFsdWUqH3VuYXV0aG9yaXplZCB0byBnZXQgZW52aXJvbm1lbnQSfAoOZ2V0QnlSZWZlcmVuY2USNC5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuQXBpUmVzb3VyY2VSZWZlcmVuY2UaLi5haS5zdGlnbWVyLmFnZW50aWMuZW52aXJvbm1lbnQudjEuRW52aXJvbm1lbnQiBNC4GAES0gEKDmdldFNlY3JldFZhbHVlEj4uYWkuc3RpZ21lci5hZ2VudGljLmVudmlyb25tZW50LnYxLkVudmlyb25tZW50U2VjcmV0VmFsdWVJbnB1dBozLmFpLnN0aWdtZXIuYWdlbnRpYy5lbnZpcm9ubWVudC52MS5FbnZpcm9ubWVudFZhbHVlIkvCuBhHCBAQNSIOZW52aXJvbm1lbnRfaWQqMXVuYXV0aG9yaXplZCB0byByZWFkIHNlY3JldCB2YWx1ZXMgKGNyZWF0b3Itb25seSkSfAoEbGlzdBI6LmFpLnN0aWdtZXIuYWdlbnRpYy5lbnZpcm9ubWVudC52MS5MaXN0RW52aXJvbm1lbnRzUmVxdWVzdBoyLmFpLnN0aWdtZXIuYWdlbnRpYy5lbnZpcm9ubWVudC52MS5FbnZpcm9ubWVudExpc3QiBNC4GAEaBKD/KzViBnByb3RvMw",[file_ai_stigmer_agentic_environment_v1_api,file_ai_stigmer_agentic_environment_v1_io,file_ai_stigmer_agentic_environment_v1_spec,file_ai_stigmer_commons_apiresource_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),EnvironmentQueryController=serviceDesc(file_ai_stigmer_agentic_environment_v1_query,0);var file_ai_stigmer_agentic_mcpserver_v1_spec=fileDesc("CiphaS9zdGlnbWVyL2FnZW50aWMvbWNwc2VydmVyL3YxL3NwZWMucHJvdG8SH2FpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEi6QQKDU1jcFNlcnZlclNwZWMSEwoLZGVzY3JpcHRpb24YASABKAkSEAoIaWNvbl91cmwYAiABKAkSDAoEdGFncxgDIAMoCRJDCgVzdGRpbxgEIAEoCzIyLmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuU3RkaW9TZXJ2ZXJDb25maWdIABJBCgRodHRwGAUgASgLMjEuYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5IdHRwU2VydmVyQ29uZmlnSAASHQoVZGVmYXVsdF9lbmFibGVkX3Rvb2xzGAcgAygJEkQKA2VudhgIIAMoCzI3LmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuTWNwU2VydmVyU3BlYy5FbnZFbnRyeRJSChVwaW5uZWRfdG9vbF9hcHByb3ZhbHMYCyADKAsyMy5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLlRvb2xBcHByb3ZhbFBvbGljeRIWCg5yZXBvc2l0b3J5X3VybBgMIAEoCRIUCgxnaXRodWJfc3RhcnMYDSABKAUSPAoEYXV0aBgOIAEoCzIuLmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuTWNwU2VydmVyQXV0aBpgCghFbnZFbnRyeRILCgNrZXkYASABKAkSQwoFdmFsdWUYAiABKAsyNC5haS5zdGlnbWVyLmFnZW50aWMuZW52aXJvbm1lbnQudjEuRW52VmFyRGVjbGFyYXRpb246AjgBQhQKC3NlcnZlcl90eXBlEgW6SAIIASJPChFTdGRpb1NlcnZlckNvbmZpZxIXCgdjb21tYW5kGAEgASgJQga6SAPIAQESDAoEYXJncxgCIAMoCRITCgt3b3JraW5nX2RpchgDIAEoCSLgAgoQSHR0cFNlcnZlckNvbmZpZxIYCgN1cmwYASABKAlCC7pICMgBAXIDiAEBEk8KB2hlYWRlcnMYAiADKAsyPi5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLkh0dHBTZXJ2ZXJDb25maWcuSGVhZGVyc0VudHJ5ElgKDHF1ZXJ5X3BhcmFtcxgDIAMoCzJCLmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuSHR0cFNlcnZlckNvbmZpZy5RdWVyeVBhcmFtc0VudHJ5EiMKD3RpbWVvdXRfc2Vjb25kcxgEIAEoBUIKukgHGgUYrAIoABouCgxIZWFkZXJzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARoyChBRdWVyeVBhcmFtc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiYAoSVG9vbEFwcHJvdmFsUG9saWN5EhoKCXRvb2xfbmFtZRgBIAEoCUIHukgEcgIQARIPCgdtZXNzYWdlGAIgASgJEh0KFWZyb21fZGVzdHJ1Y3RpdmVfaGludBgDIAEoCCL0AgoNTWNwU2VydmVyQXV0aBLMAQoNb2F1dGhfYXBwX3JlZhgBIAEoCzI0LmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZVJlZmVyZW5jZUJ/ukh4ugF1ChJvYXV0aF9hcHBfcmVmLmtpbmQSO29hdXRoX2FwcF9yZWYgbXVzdCByZWZlcmVuY2UgYSByZXNvdXJjZSB3aXRoIGtpbmQ9b2F1dGhfYXBwGiJ0aGlzLnNsdWcgPT0gJycgfHwgdGhpcy5raW5kID09IDIy4IUsFhIfCg50YXJnZXRfZW52X3ZhchgCIAEoCUIHukgEcgIQARIbChN0b2tlbl9saWZldGltZV9oaW50GAMgASgJEhMKC3Njb3BlX2hpbnRzGAQgAygJEhUKDWRpc2NvdmVyeV91cmwYByABKAkSEgoKb2F1dGhfb25seRgKIAEoCEoECAUQBkoECAYQB0oECAgQCUoECAkQCmIGcHJvdG8z",[file_ai_stigmer_agentic_environment_v1_spec,file_ai_stigmer_commons_apiresource_field_options,file_ai_stigmer_commons_apiresource_io,file_buf_validate_validate]),McpServerSpecSchema=messageDesc2(file_ai_stigmer_agentic_mcpserver_v1_spec,0),StdioServerConfigSchema=messageDesc2(file_ai_stigmer_agentic_mcpserver_v1_spec,1),HttpServerConfigSchema=messageDesc2(file_ai_stigmer_agentic_mcpserver_v1_spec,2),ToolApprovalPolicySchema=messageDesc2(file_ai_stigmer_agentic_mcpserver_v1_spec,3),McpServerAuthSchema=messageDesc2(file_ai_stigmer_agentic_mcpserver_v1_spec,4);var file_ai_stigmer_iam_oauthapp_v1_spec=fileDesc("CiVhaS9zdGlnbWVyL2lhbS9vYXV0aGFwcC92MS9zcGVjLnByb3RvEhphaS5zdGlnbWVyLmlhbS5vYXV0aGFwcC52MSKvAwoMT0F1dGhBcHBTcGVjEhAKCHByb3ZpZGVyGAEgASgJEhoKCWNsaWVudF9pZBgCIAEoCUIHukgEcgIQARIeCg1jbGllbnRfc2VjcmV0GAMgASgJQge6SARyAhABEiMKEWF1dGhvcml6YXRpb25fdXJsGAQgASgJQgi6SAVyA4gBARIbCgl0b2tlbl91cmwYBSABKAlCCLpIBXIDiAEBEg4KBnNjb3BlcxgGIAMoCRIUCgx1c2VyaW5mb191cmwYByABKAkSHAoUc2NvcGVfcGFyYW1ldGVyX25hbWUYCCABKAkSUAoWdmVuZG9yX2FwcHJvdmFsX3N0YXR1cxgJIAEoDjIwLmFpLnN0aWdtZXIuaWFtLm9hdXRoYXBwLnYxLlZlbmRvckFwcHJvdmFsU3RhdHVzEiAKGHZlbmRvcl9hcHByb3ZhbF9kb2NzX3VybBgKIAEoCRJXChp0b2tlbl9lbmRwb2ludF9hdXRoX21ldGhvZBgLIAEoDjIzLmFpLnN0aWdtZXIuaWFtLm9hdXRoYXBwLnYxLlRva2VuRW5kcG9pbnRBdXRoTWV0aG9kKqwBChRWZW5kb3JBcHByb3ZhbFN0YXR1cxImCiJWRU5ET1JfQVBQUk9WQUxfU1RBVFVTX1VOU1BFQ0lGSUVEEAASIgoeVkVORE9SX0FQUFJPVkFMX1NUQVRVU19QRU5ESU5HEAESIwofVkVORE9SX0FQUFJPVkFMX1NUQVRVU19BUFBST1ZFRBACEiMKH1ZFTkRPUl9BUFBST1ZBTF9TVEFUVVNfUkVKRUNURUQQAyqsAQoXVG9rZW5FbmRwb2ludEF1dGhNZXRob2QSKgomVE9LRU5fRU5EUE9JTlRfQVVUSF9NRVRIT0RfVU5TUEVDSUZJRUQQABIyCi5UT0tFTl9FTkRQT0lOVF9BVVRIX01FVEhPRF9DTElFTlRfU0VDUkVUX0JBU0lDEAESMQotVE9LRU5fRU5EUE9JTlRfQVVUSF9NRVRIT0RfQ0xJRU5UX1NFQ1JFVF9QT1NUEAJiBnByb3RvMw",[file_buf_validate_validate]);var VendorApprovalStatus;(function(VendorApprovalStatus2){VendorApprovalStatus2[VendorApprovalStatus2.UNSPECIFIED=0]="UNSPECIFIED",VendorApprovalStatus2[VendorApprovalStatus2.PENDING=1]="PENDING",VendorApprovalStatus2[VendorApprovalStatus2.APPROVED=2]="APPROVED",VendorApprovalStatus2[VendorApprovalStatus2.REJECTED=3]="REJECTED"})(VendorApprovalStatus||(VendorApprovalStatus={}));var TokenEndpointAuthMethod;(function(TokenEndpointAuthMethod2){TokenEndpointAuthMethod2[TokenEndpointAuthMethod2.UNSPECIFIED=0]="UNSPECIFIED",TokenEndpointAuthMethod2[TokenEndpointAuthMethod2.CLIENT_SECRET_BASIC=1]="CLIENT_SECRET_BASIC",TokenEndpointAuthMethod2[TokenEndpointAuthMethod2.CLIENT_SECRET_POST=2]="CLIENT_SECRET_POST"})(TokenEndpointAuthMethod||(TokenEndpointAuthMethod={}));var file_ai_stigmer_agentic_mcpserver_v1_status=fileDesc("CixhaS9zdGlnbWVyL2FnZW50aWMvbWNwc2VydmVyL3YxL3N0YXR1cy5wcm90bxIfYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MSLtAwoPTWNwU2VydmVyU3RhdHVzEkoKEHZhbGlkYXRpb25fc3RhdGUYASABKA4yMC5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLlZhbGlkYXRpb25TdGF0ZRIaChJ2YWxpZGF0aW9uX21lc3NhZ2UYAiABKAkSWAoXZGlzY292ZXJlZF9jYXBhYmlsaXRpZXMYAyABKAsyNy5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLkRpc2NvdmVyZWRDYXBhYmlsaXRpZXMSSwoOdG9vbF9hcHByb3ZhbHMYBCADKAsyMy5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLlRvb2xBcHByb3ZhbFBvbGljeRJCCgxvYXV0aF9zdGF0dXMYBSABKAsyLC5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLk9BdXRoU3RhdHVzEkYKDmNvbm5lY3Rfc3RhdHVzGAYgASgLMi4uYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5Db25uZWN0U3RhdHVzEj8KBWF1ZGl0GGMgASgLMjAuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLkFwaVJlc291cmNlQXVkaXQigwIKDUNvbm5lY3RTdGF0dXMSPAoFcGhhc2UYASABKA4yLS5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLkNvbm5lY3RQaGFzZRITCgt3b3JrZmxvd19pZBgCIAEoCRIuCgpzdGFydGVkX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgtmaW5pc2hlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFAoMZmFpbHVyZV9jb2RlGAUgASgJEhcKD2ZhaWx1cmVfbWVzc2FnZRgGIAEoCRIPCgd3YXJuaW5nGAcgASgJIukBChZEaXNjb3ZlcmVkQ2FwYWJpbGl0aWVzEj4KBXRvb2xzGAEgAygLMi8uYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5EaXNjb3ZlcmVkVG9vbBJXChJyZXNvdXJjZV90ZW1wbGF0ZXMYAiADKAsyOy5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLkRpc2NvdmVyZWRSZXNvdXJjZVRlbXBsYXRlEjYKEmxhc3RfZGlzY292ZXJlZF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiYgoORGlzY292ZXJlZFRvb2wSDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRItCgxpbnB1dF9zY2hlbWEYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0ImgKGkRpc2NvdmVyZWRSZXNvdXJjZVRlbXBsYXRlEhQKDHVyaV90ZW1wbGF0ZRgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEhEKCW1pbWVfdHlwZRgEIAEoCSLyAQoLT0F1dGhTdGF0dXMSUAoWdmVuZG9yX2FwcHJvdmFsX3N0YXR1cxgBIAEoDjIwLmFpLnN0aWdtZXIuaWFtLm9hdXRoYXBwLnYxLlZlbmRvckFwcHJvdmFsU3RhdHVzEiAKGHZlbmRvcl9hcHByb3ZhbF9kb2NzX3VybBgCIAEoCRJPChZlZmZlY3RpdmVfb2F1dGhfc291cmNlGAMgASgOMi8uYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5PQXV0aEFwcFNvdXJjZRIeChZlZmZlY3RpdmVfb2F1dGhfYXBwX2lkGAQgASgJKoIBCgxDb25uZWN0UGhhc2USHQoZY29ubmVjdF9waGFzZV91bnNwZWNpZmllZBAAEhwKGGNvbm5lY3RfcGhhc2VfY29ubmVjdGluZxABEhsKF2Nvbm5lY3RfcGhhc2Vfc3VjY2VlZGVkEAISGAoUY29ubmVjdF9waGFzZV9mYWlsZWQQAypLCg9WYWxpZGF0aW9uU3RhdGUSIAocdmFsaWRhdGlvbl9zdGF0ZV91bnNwZWNpZmllZBAAEgkKBXZhbGlkEAESCwoHaW52YWxpZBACKo8BCg5PQXV0aEFwcFNvdXJjZRIgChxPQVVUSF9BUFBfU09VUkNFX1VOU1BFQ0lGSUVEEAASHQoZT0FVVEhfQVBQX1NPVVJDRV9QTEFURk9STRABEiEKHU9BVVRIX0FQUF9TT1VSQ0VfT1JHX09WRVJSSURFEAISGQoVT0FVVEhfQVBQX1NPVVJDRV9OT05FEANiBnByb3RvMw",[file_ai_stigmer_agentic_mcpserver_v1_spec,file_ai_stigmer_commons_apiresource_status,file_ai_stigmer_iam_oauthapp_v1_spec,file_google_protobuf_struct,file_google_protobuf_timestamp]);var ConnectPhase;(function(ConnectPhase2){ConnectPhase2[ConnectPhase2.unspecified=0]="unspecified",ConnectPhase2[ConnectPhase2.connecting=1]="connecting",ConnectPhase2[ConnectPhase2.succeeded=2]="succeeded",ConnectPhase2[ConnectPhase2.failed=3]="failed"})(ConnectPhase||(ConnectPhase={}));var ValidationState;(function(ValidationState3){ValidationState3[ValidationState3.validation_state_unspecified=0]="validation_state_unspecified",ValidationState3[ValidationState3.valid=1]="valid",ValidationState3[ValidationState3.invalid=2]="invalid"})(ValidationState||(ValidationState={}));var OAuthAppSource;(function(OAuthAppSource2){OAuthAppSource2[OAuthAppSource2.OAUTH_APP_SOURCE_UNSPECIFIED=0]="OAUTH_APP_SOURCE_UNSPECIFIED",OAuthAppSource2[OAuthAppSource2.OAUTH_APP_SOURCE_PLATFORM=1]="OAUTH_APP_SOURCE_PLATFORM",OAuthAppSource2[OAuthAppSource2.OAUTH_APP_SOURCE_ORG_OVERRIDE=2]="OAUTH_APP_SOURCE_ORG_OVERRIDE",OAuthAppSource2[OAuthAppSource2.OAUTH_APP_SOURCE_NONE=3]="OAUTH_APP_SOURCE_NONE"})(OAuthAppSource||(OAuthAppSource={}));var file_ai_stigmer_agentic_mcpserver_v1_api=fileDesc("CilhaS9zdGlnbWVyL2FnZW50aWMvbWNwc2VydmVyL3YxL2FwaS5wcm90bxIfYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MSKtAgoJTWNwU2VydmVyEjEKC2FwaV92ZXJzaW9uGAEgASgJQhy6SBlyFwoVYWdlbnRpYy5zdGlnbWVyLmFpL3YxEh4KBGtpbmQYAiABKAlCELpIDXILCglNY3BTZXJ2ZXISTQoIbWV0YWRhdGEYAyABKAsyMy5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuQXBpUmVzb3VyY2VNZXRhZGF0YUIGukgDyAEBEjwKBHNwZWMYBCABKAsyLi5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLk1jcFNlcnZlclNwZWMSQAoGc3RhdHVzGAUgASgLMjAuYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5NY3BTZXJ2ZXJTdGF0dXMibQoNTWNwU2VydmVyTGlzdBITCgthcGlfdmVyc2lvbhgBIAEoCRIMCgRraW5kGAIgASgJEjkKBWl0ZW1zGAMgAygLMiouYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5NY3BTZXJ2ZXJiBnByb3RvMw",[file_ai_stigmer_agentic_mcpserver_v1_spec,file_ai_stigmer_agentic_mcpserver_v1_status,file_ai_stigmer_commons_apiresource_metadata,file_buf_validate_validate]),McpServerSchema=messageDesc2(file_ai_stigmer_agentic_mcpserver_v1_api,0);var file_ai_stigmer_agentic_mcpserver_v1_io=fileDesc("CihhaS9zdGlnbWVyL2FnZW50aWMvbWNwc2VydmVyL3YxL2lvLnByb3RvEh9haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxIiQKC01jcFNlcnZlcklkEhUKBXZhbHVlGAEgASgJQga6SAPIAQEiggIKDENvbm5lY3RJbnB1dBIdCg1tY3Bfc2VydmVyX2lkGAEgASgJQga6SAPIAQESUgoLcnVudGltZV9lbnYYAiADKAsyPS5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLkNvbm5lY3RJbnB1dC5SdW50aW1lRW52RW50cnkSFAoDb3JnGAMgASgJQge6SARyAhABGmkKD1J1bnRpbWVFbnZFbnRyeRILCgNrZXkYASABKAkSRQoFdmFsdWUYAiABKAsyNi5haS5zdGlnbWVyLmFnZW50aWMuZXhlY3V0aW9uY29udGV4dC52MS5FeGVjdXRpb25WYWx1ZToCOAEiUAoZSW5pdGlhdGVPQXV0aENvbm5lY3RJbnB1dBIdCg1tY3Bfc2VydmVyX2lkGAEgASgJQga6SAPIAQESFAoDb3JnGAIgASgJQge6SARyAhABIm0KGkluaXRpYXRlT0F1dGhDb25uZWN0T3V0cHV0EhkKEWF1dGhvcml6YXRpb25fdXJsGAEgASgJEg0KBXN0YXRlGAIgASgJEg4KBnNjb3BlcxgDIAMoCRIVCg1wcm92aWRlcl9uYW1lGAQgASgJIncKGUNvbXBsZXRlT0F1dGhDb25uZWN0SW5wdXQSHQoNbWNwX3NlcnZlcl9pZBgBIAEoCUIGukgDyAEBEiMKEmF1dGhvcml6YXRpb25fY29kZRgCIAEoCUIHukgEcgIQARIWCgVzdGF0ZRgDIAEoCUIHukgEcgIQASJkChpDb21wbGV0ZU9BdXRoQ29ubmVjdE91dHB1dBIRCgljb25uZWN0ZWQYASABKAgSFgoOdGFyZ2V0X2Vudl92YXIYAiABKAkSGwoTdG9rZW5fbGlmZXRpbWVfaGludBgDIAEoCSJNChhHZXRPQXV0aEdyYW50U3RhdHVzSW5wdXQSGwoLcmVzb3VyY2VfaWQYASABKAlCBrpIA8gBARIUCgNvcmcYAiABKAlCB7pIBHICEAEizwEKGUdldE9BdXRoR3JhbnRTdGF0dXNPdXRwdXQSEQoJY29ubmVjdGVkGAEgASgIEh8KF2FjY2Vzc190b2tlbl9leHBpcmVzX2F0GAIgASgDEhYKDnRhcmdldF9lbnZfdmFyGAMgASgJEhMKC2F1dGhfbWV0aG9kGAQgASgJElEKEWNvbm5lY3Rpb25faGVhbHRoGAUgASgOMjYuYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5PQXV0aENvbm5lY3Rpb25IZWFsdGgiSQoURGlzY29ubmVjdE9BdXRoSW5wdXQSGwoLcmVzb3VyY2VfaWQYASABKAlCBrpIA8gBARIUCgNvcmcYAiABKAlCB7pIBHICEAEiLQoVRGlzY29ubmVjdE9BdXRoT3V0cHV0EhQKDGRpc2Nvbm5lY3RlZBgBIAEoCCKEAQoTU2V0T3JnT0F1dGhBcHBJbnB1dBIbCgtyZXNvdXJjZV9pZBgBIAEoCUIGukgDyAEBEhQKA29yZxgCIAEoCUIHukgEcgIQARIaCgljbGllbnRfaWQYAyABKAlCB7pIBHICEAESHgoNY2xpZW50X3NlY3JldBgEIAEoCUIHukgEcgIQASIsChRTZXRPcmdPQXV0aEFwcE91dHB1dBIUCgxvYXV0aF9hcHBfaWQYASABKAkiSAoTR2V0T3JnT0F1dGhBcHBJbnB1dBIbCgtyZXNvdXJjZV9pZBgBIAEoCUIGukgDyAEBEhQKA29yZxgCIAEoCUIHukgEcgIQASJVChRHZXRPcmdPQXV0aEFwcE91dHB1dBIUCgxoYXNfb3ZlcnJpZGUYASABKAgSFAoMb2F1dGhfYXBwX2lkGAIgASgJEhEKCWNsaWVudF9pZBgDIAEoCSJLChZEZWxldGVPcmdPQXV0aEFwcElucHV0EhsKC3Jlc291cmNlX2lkGAEgASgJQga6SAPIAQESFAoDb3JnGAIgASgJQge6SARyAhABIioKF0RlbGV0ZU9yZ09BdXRoQXBwT3V0cHV0Eg8KB2RlbGV0ZWQYASABKAgq7QEKFU9BdXRoQ29ubmVjdGlvbkhlYWx0aBInCiNPQVVUSF9DT05ORUNUSU9OX0hFQUxUSF9VTlNQRUNJRklFRBAAEiMKH09BVVRIX0NPTk5FQ1RJT05fSEVBTFRIX0hFQUxUSFkQARIpCiVPQVVUSF9DT05ORUNUSU9OX0hFQUxUSF9UT0tFTl9FWFBJUkVEEAISNQoxT0FVVEhfQ09OTkVDVElPTl9IRUFMVEhfVE9LRU5fRVhQSVJFRF9SRUZSRVNIQUJMRRADEiQKIE9BVVRIX0NPTk5FQ1RJT05fSEVBTFRIX05PX0dSQU5UEARiBnByb3RvMw",[file_ai_stigmer_agentic_executioncontext_v1_spec,file_buf_validate_validate]);var OAuthConnectionHealth;(function(OAuthConnectionHealth2){OAuthConnectionHealth2[OAuthConnectionHealth2.OAUTH_CONNECTION_HEALTH_UNSPECIFIED=0]="OAUTH_CONNECTION_HEALTH_UNSPECIFIED",OAuthConnectionHealth2[OAuthConnectionHealth2.OAUTH_CONNECTION_HEALTH_HEALTHY=1]="OAUTH_CONNECTION_HEALTH_HEALTHY",OAuthConnectionHealth2[OAuthConnectionHealth2.OAUTH_CONNECTION_HEALTH_TOKEN_EXPIRED=2]="OAUTH_CONNECTION_HEALTH_TOKEN_EXPIRED",OAuthConnectionHealth2[OAuthConnectionHealth2.OAUTH_CONNECTION_HEALTH_TOKEN_EXPIRED_REFRESHABLE=3]="OAUTH_CONNECTION_HEALTH_TOKEN_EXPIRED_REFRESHABLE",OAuthConnectionHealth2[OAuthConnectionHealth2.OAUTH_CONNECTION_HEALTH_NO_GRANT=4]="OAUTH_CONNECTION_HEALTH_NO_GRANT"})(OAuthConnectionHealth||(OAuthConnectionHealth={}));var file_ai_stigmer_agentic_mcpserver_v1_command=fileDesc("Ci1haS9zdGlnbWVyL2FnZW50aWMvbWNwc2VydmVyL3YxL2NvbW1hbmQucHJvdG8SH2FpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEy0hAKGk1jcFNlcnZlckNvbW1hbmRDb250cm9sbGVyEl8KBWFwcGx5EiouYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5NY3BTZXJ2ZXIaKi5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLk1jcFNlcnZlchJmCgZjcmVhdGUSKi5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLk1jcFNlcnZlchoqLmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuTWNwU2VydmVyIgTQuBgBEpoBCgZ1cGRhdGUSKi5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLk1jcFNlcnZlchoqLmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuTWNwU2VydmVyIjjCuBg0CAIQLCILbWV0YWRhdGEuaWQqIXVuYXV0aG9yaXplZCB0byB1cGRhdGUgbWNwIHNlcnZlchKmAQoGZGVsZXRlEjYuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLkFwaVJlc291cmNlRGVsZXRlSW5wdXQaKi5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLk1jcFNlcnZlciI4wrgYNAgDECwiC3Jlc291cmNlX2lkKiF1bmF1dGhvcml6ZWQgdG8gZGVsZXRlIG1jcCBzZXJ2ZXISugEKEHVwZGF0ZVZpc2liaWxpdHkSNS5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuVXBkYXRlVmlzaWJpbGl0eUlucHV0GiouYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5NY3BTZXJ2ZXIiQ8K4GD8IAhAsIgtyZXNvdXJjZV9pZCosdW5hdXRob3JpemVkIHRvIHVwZGF0ZSBtY3Agc2VydmVyIHZpc2liaWxpdHkSpAEKB2Nvbm5lY3QSLS5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLkNvbm5lY3RJbnB1dBoqLmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuTWNwU2VydmVyIj7CuBg6CBYQLCINbWNwX3NlcnZlcl9pZColdW5hdXRob3JpemVkIHRvIGNvbm5lY3QgdG8gbWNwIHNlcnZlchKpAQoMc3RhcnRDb25uZWN0Ei0uYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5Db25uZWN0SW5wdXQaKi5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLk1jcFNlcnZlciI+wrgYOggWECwiDW1jcF9zZXJ2ZXJfaWQqJXVuYXV0aG9yaXplZCB0byBjb25uZWN0IHRvIG1jcCBzZXJ2ZXIS3wEKFGluaXRpYXRlT0F1dGhDb25uZWN0EjouYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5Jbml0aWF0ZU9BdXRoQ29ubmVjdElucHV0GjsuYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5Jbml0aWF0ZU9BdXRoQ29ubmVjdE91dHB1dCJOwrgYSggWECwiDW1jcF9zZXJ2ZXJfaWQqNXVuYXV0aG9yaXplZCB0byBpbml0aWF0ZSBvYXV0aCBjb25uZWN0IGZvciBtY3Agc2VydmVyEt8BChRjb21wbGV0ZU9BdXRoQ29ubmVjdBI6LmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuQ29tcGxldGVPQXV0aENvbm5lY3RJbnB1dBo7LmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuQ29tcGxldGVPQXV0aENvbm5lY3RPdXRwdXQiTsK4GEoIFhAsIg1tY3Bfc2VydmVyX2lkKjV1bmF1dGhvcml6ZWQgdG8gY29tcGxldGUgb2F1dGggY29ubmVjdCBmb3IgbWNwIHNlcnZlchLIAQoPZGlzY29ubmVjdE9BdXRoEjUuYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5EaXNjb25uZWN0T0F1dGhJbnB1dBo2LmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuRGlzY29ubmVjdE9BdXRoT3V0cHV0IkbCuBhCCBYQLCILcmVzb3VyY2VfaWQqL3VuYXV0aG9yaXplZCB0byBkaXNjb25uZWN0IG9hdXRoIGZvciBtY3Agc2VydmVyErgBCg5zZXRPcmdPQXV0aEFwcBI0LmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuU2V0T3JnT0F1dGhBcHBJbnB1dBo1LmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuU2V0T3JnT0F1dGhBcHBPdXRwdXQiOcK4GDUIFxAeIgNvcmcqKnVuYXV0aG9yaXplZCB0byBzZXQgb3JnIG9hdXRoIGFwcCBvdmVycmlkZRLEAQoRZGVsZXRlT3JnT0F1dGhBcHASNy5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLkRlbGV0ZU9yZ09BdXRoQXBwSW5wdXQaOC5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLkRlbGV0ZU9yZ09BdXRoQXBwT3V0cHV0IjzCuBg4CBcQHiIDb3JnKi11bmF1dGhvcml6ZWQgdG8gZGVsZXRlIG9yZyBvYXV0aCBhcHAgb3ZlcnJpZGUaBKD/KyxiBnByb3RvMw",[file_ai_stigmer_agentic_mcpserver_v1_api,file_ai_stigmer_agentic_mcpserver_v1_io,file_ai_stigmer_commons_apiresource_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),McpServerCommandController=serviceDesc(file_ai_stigmer_agentic_mcpserver_v1_command,0);var file_ai_stigmer_agentic_mcpserver_v1_query=fileDesc("CithaS9zdGlnbWVyL2FnZW50aWMvbWNwc2VydmVyL3YxL3F1ZXJ5LnByb3RvEh9haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxMssFChhNY3BTZXJ2ZXJRdWVyeUNvbnRyb2xsZXISkgEKA2dldBItLmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZUlkGiouYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5NY3BTZXJ2ZXIiMMK4GCwIARAsIgV2YWx1ZSofdW5hdXRob3JpemVkIHRvIHZpZXcgbWNwIHNlcnZlchJ4Cg5nZXRCeVJlZmVyZW5jZRI0LmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZVJlZmVyZW5jZRoqLmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuTWNwU2VydmVyIgTQuBgBEtUBChNnZXRPQXV0aEdyYW50U3RhdHVzEjkuYWkuc3RpZ21lci5hZ2VudGljLm1jcHNlcnZlci52MS5HZXRPQXV0aEdyYW50U3RhdHVzSW5wdXQaOi5haS5zdGlnbWVyLmFnZW50aWMubWNwc2VydmVyLnYxLkdldE9BdXRoR3JhbnRTdGF0dXNPdXRwdXQiR8K4GEMIARAsIgtyZXNvdXJjZV9pZCowdW5hdXRob3JpemVkIHRvIHZpZXcgb2F1dGggc3RhdHVzIGZvciBtY3Agc2VydmVyEsEBCg5nZXRPcmdPQXV0aEFwcBI0LmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuR2V0T3JnT0F1dGhBcHBJbnB1dBo1LmFpLnN0aWdtZXIuYWdlbnRpYy5tY3BzZXJ2ZXIudjEuR2V0T3JnT0F1dGhBcHBPdXRwdXQiQsK4GD4IARAsIgtyZXNvdXJjZV9pZCordW5hdXRob3JpemVkIHRvIHZpZXcgb3JnIG9hdXRoIGFwcCBvdmVycmlkZRoEoP8rLGIGcHJvdG8z",[file_ai_stigmer_agentic_mcpserver_v1_api,file_ai_stigmer_agentic_mcpserver_v1_io,file_ai_stigmer_commons_apiresource_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),McpServerQueryController=serviceDesc(file_ai_stigmer_agentic_mcpserver_v1_query,0);var file_ai_stigmer_agentic_skill_v1_spec=fileDesc("CiZhaS9zdGlnbWVyL2FnZW50aWMvc2tpbGwvdjEvc3BlYy5wcm90bxIbYWkuc3RpZ21lci5hZ2VudGljLnNraWxsLnYxIp0BCglTa2lsbFNwZWMSGQoIc2tpbGxfbWQYASABKAlCB7pIBHICEAESKAoDdGFnGAIgASgJQhu6SBhyFjIUXiR8XlthLXpBLVowLTkuXy1dKyQSMAoEbmFtZRgDIAEoCUIiukgfch0yG15bYS16MC05XSsoWy4tXVthLXowLTldKykqJBITCgtkZXNjcmlwdGlvbhgFIAEoCUoECAQQBWIGcHJvdG8z",[file_buf_validate_validate]);var file_ai_stigmer_agentic_skill_v1_status=fileDesc("CihhaS9zdGlnbWVyL2FnZW50aWMvc2tpbGwvdjEvc3RhdHVzLnByb3RvEhthaS5zdGlnbWVyLmFnZW50aWMuc2tpbGwudjEilQIKC1NraWxsU3RhdHVzEj8KBWF1ZGl0GGMgASgLMjAuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLkFwaVJlc291cmNlQXVkaXQSKwoMdmVyc2lvbl9oYXNoGAEgASgJQhW6SBJyEDIOXlthLWYwLTldezY0fSQSHAoUYXJ0aWZhY3Rfc3RvcmFnZV9rZXkYAiABKAkSNgoFc3RhdGUYAyABKA4yJy5haS5zdGlnbWVyLmFnZW50aWMuc2tpbGwudjEuU2tpbGxTdGF0ZRJCCg5naXRfcHJvdmVuYW5jZRgEIAEoCzIqLmFpLnN0aWdtZXIuYWdlbnRpYy5za2lsbC52MS5HaXRQcm92ZW5hbmNlImIKDUdpdFByb3ZlbmFuY2USGwoKcmVtb3RlX3VybBgBIAEoCUIHukgEcgIQARILCgNyZWYYAiABKAkSFwoGY29tbWl0GAMgASgJQge6SARyAhABEg4KBnN1YmRpchgEIAEoCSpzCgpTa2lsbFN0YXRlEhsKF1NLSUxMX1NUQVRFX1VOU1BFQ0lGSUVEEAASGQoVU0tJTExfU1RBVEVfVVBMT0FESU5HEAESFQoRU0tJTExfU1RBVEVfUkVBRFkQAhIWChJTS0lMTF9TVEFURV9GQUlMRUQQA2IGcHJvdG8z",[file_ai_stigmer_commons_apiresource_status,file_buf_validate_validate]);var SkillState;(function(SkillState2){SkillState2[SkillState2.UNSPECIFIED=0]="UNSPECIFIED",SkillState2[SkillState2.UPLOADING=1]="UPLOADING",SkillState2[SkillState2.READY=2]="READY",SkillState2[SkillState2.FAILED=3]="FAILED"})(SkillState||(SkillState={}));var file_ai_stigmer_agentic_skill_v1_api=fileDesc("CiVhaS9zdGlnbWVyL2FnZW50aWMvc2tpbGwvdjEvYXBpLnByb3RvEhthaS5zdGlnbWVyLmFnZW50aWMuc2tpbGwudjEilQIKBVNraWxsEjEKC2FwaV92ZXJzaW9uGAEgASgJQhy6SBlyFwoVYWdlbnRpYy5zdGlnbWVyLmFpL3YxEhoKBGtpbmQYAiABKAlCDLpICXIHCgVTa2lsbBJNCghtZXRhZGF0YRgDIAEoCzIzLmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZU1ldGFkYXRhQga6SAPIAQESNAoEc3BlYxgEIAEoCzImLmFpLnN0aWdtZXIuYWdlbnRpYy5za2lsbC52MS5Ta2lsbFNwZWMSOAoGc3RhdHVzGAUgASgLMiguYWkuc3RpZ21lci5hZ2VudGljLnNraWxsLnYxLlNraWxsU3RhdHVzImEKCVNraWxsTGlzdBITCgthcGlfdmVyc2lvbhgBIAEoCRIMCgRraW5kGAIgASgJEjEKBWl0ZW1zGAMgAygLMiIuYWkuc3RpZ21lci5hZ2VudGljLnNraWxsLnYxLlNraWxsYgZwcm90bzM",[file_ai_stigmer_agentic_skill_v1_spec,file_ai_stigmer_agentic_skill_v1_status,file_ai_stigmer_commons_apiresource_metadata,file_buf_validate_validate]),SkillSchema=messageDesc2(file_ai_stigmer_agentic_skill_v1_api,0);var file_ai_stigmer_agentic_skill_v1_io=fileDesc("CiRhaS9zdGlnbWVyL2FnZW50aWMvc2tpbGwvdjEvaW8ucHJvdG8SG2FpLnN0aWdtZXIuYWdlbnRpYy5za2lsbC52MSIgCgdTa2lsbElkEhUKBXZhbHVlGAEgASgJQga6SAPIAQEilAMKEFB1c2hTa2lsbFJlcXVlc3QSEwoDb3JnGAEgASgJQga6SAPIAQESEAoIYXJ0aWZhY3QYAiABKAwSKAoDdGFnGAMgASgJQhu6SBhyFjIUXiR8XlthLXpBLVowLTkuXy1dKyQSQgoOZ2l0X3Byb3ZlbmFuY2UYBCABKAsyKi5haS5zdGlnbWVyLmFnZW50aWMuc2tpbGwudjEuR2l0UHJvdmVuYW5jZRIPCgdtZXNzYWdlGAYgASgJEhsKE2FydGlmYWN0X3VwbG9hZF9yZWYYByABKAk6tgG6SLIBGq8BCiJwdXNoX3NraWxsX3JlcXVlc3QuYXJ0aWZhY3Rfc291cmNlEklleGFjdGx5IG9uZSBvZiBhcnRpZmFjdCAoaW5saW5lIGJ5dGVzKSBvciBhcnRpZmFjdF91cGxvYWRfcmVmIG11c3QgYmUgc2V0Gj4odGhpcy5hcnRpZmFjdC5zaXplKCkgPiAwKSAhPSAodGhpcy5hcnRpZmFjdF91cGxvYWRfcmVmICE9ICcnKUoECAUQBiJXCiNDcmVhdGVTa2lsbEFydGlmYWN0VXBsb2FkVXJsUmVxdWVzdBITCgNvcmcYASABKAlCBrpIA8gBARIbCgpzaXplX2J5dGVzGAIgASgDQge6SAQiAiAAIlcKFlNraWxsQXJ0aWZhY3RVcGxvYWRVcmwSCwoDdXJsGAEgASgJEhsKE2FydGlmYWN0X3VwbG9hZF9yZWYYAiABKAkSEwoLdHRsX3NlY29uZHMYAyABKAUiUAoYU2tpbGxBcnRpZmFjdERvd25sb2FkVXJsEgsKA3VybBgBIAEoCRITCgt0dGxfc2Vjb25kcxgCIAEoBRISCgpzaXplX2J5dGVzGAMgASgDIqMBCiVQdXNoU2tpbGxGcm9tRXhlY3V0aW9uQXJ0aWZhY3RSZXF1ZXN0EhMKA29yZxgBIAEoCUIGukgDyAEBEh0KDGV4ZWN1dGlvbl9pZBgCIAEoCUIHukgEcgIQARIcCgtzdG9yYWdlX2tleRgDIAEoCUIHukgEcgIQARIoCgN0YWcYBCABKAlCG7pIGHIWMhReJHxeW2EtekEtWjAtOS5fLV0rJCI6ChJHZXRBcnRpZmFjdFJlcXVlc3QSJAoUYXJ0aWZhY3Rfc3RvcmFnZV9rZXkYASABKAlCBrpIA8gBASInChNHZXRBcnRpZmFjdFJlc3BvbnNlEhAKCGFydGlmYWN0GAEgASgMImoKFkxpc3RTa2lsbFZlcnNpb25zSW5wdXQSEwoDb3JnGAEgASgJQga6SAPIAQESFAoEc2x1ZxgCIAEoCUIGukgDyAEBEhIKCnBhZ2VfdG9rZW4YAyABKAkSEQoJcGFnZV9zaXplGAQgASgFIrYCChFTa2lsbFZlcnNpb25FbnRyeRIUCgx2ZXJzaW9uX2hhc2gYASABKAkSLQoJcHVzaGVkX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJICglwdXNoZWRfYnkYAyABKAsyNS5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuQXBpUmVzb3VyY2VBdWRpdEFjdG9yEgsKA3RhZxgEIAEoCRISCgppc19jdXJyZW50GAUgASgIEkIKDmdpdF9wcm92ZW5hbmNlGAYgASgLMiouYWkuc3RpZ21lci5hZ2VudGljLnNraWxsLnYxLkdpdFByb3ZlbmFuY2USDwoHbWVzc2FnZRgHIAEoCRIcChRhcnRpZmFjdF9zdG9yYWdlX2tleRgIIAEoCSKLAQoZTGlzdFNraWxsVmVyc2lvbnNSZXNwb25zZRJACgh2ZXJzaW9ucxgBIAMoCzIuLmFpLnN0aWdtZXIuYWdlbnRpYy5za2lsbC52MS5Ta2lsbFZlcnNpb25FbnRyeRIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkSEwoLdG90YWxfY291bnQYAyABKAViBnByb3RvMw",[file_ai_stigmer_agentic_skill_v1_status,file_ai_stigmer_commons_apiresource_status,file_buf_validate_validate,file_google_protobuf_timestamp]);var ListSkillVersionsResponseSchema=messageDesc2(file_ai_stigmer_agentic_skill_v1_io,10);var file_ai_stigmer_agentic_skill_v1_command=fileDesc("CilhaS9zdGlnbWVyL2FnZW50aWMvc2tpbGwvdjEvY29tbWFuZC5wcm90bxIbYWkuc3RpZ21lci5hZ2VudGljLnNraWxsLnYxMocHChZTa2lsbENvbW1hbmRDb250cm9sbGVyEpkBCgRwdXNoEi0uYWkuc3RpZ21lci5hZ2VudGljLnNraWxsLnYxLlB1c2hTa2lsbFJlcXVlc3QaIi5haS5zdGlnbWVyLmFnZW50aWMuc2tpbGwudjEuU2tpbGwiPsK4GDoICRAeIgNvcmcqL3VuYXV0aG9yaXplZCB0byBwdXNoIHNraWxsIGluIHRoaXMgb3JnYW5pemF0aW9uEtABChdjcmVhdGVBcnRpZmFjdFVwbG9hZFVybBJALmFpLnN0aWdtZXIuYWdlbnRpYy5za2lsbC52MS5DcmVhdGVTa2lsbEFydGlmYWN0VXBsb2FkVXJsUmVxdWVzdBozLmFpLnN0aWdtZXIuYWdlbnRpYy5za2lsbC52MS5Ta2lsbEFydGlmYWN0VXBsb2FkVXJsIj7CuBg6CAkQHiIDb3JnKi91bmF1dGhvcml6ZWQgdG8gcHVzaCBza2lsbCBpbiB0aGlzIG9yZ2FuaXphdGlvbhLDAQoZcHVzaEZyb21FeGVjdXRpb25BcnRpZmFjdBJCLmFpLnN0aWdtZXIuYWdlbnRpYy5za2lsbC52MS5QdXNoU2tpbGxGcm9tRXhlY3V0aW9uQXJ0aWZhY3RSZXF1ZXN0GiIuYWkuc3RpZ21lci5hZ2VudGljLnNraWxsLnYxLlNraWxsIj7CuBg6CAkQHiIDb3JnKi91bmF1dGhvcml6ZWQgdG8gcHVzaCBza2lsbCBpbiB0aGlzIG9yZ2FuaXphdGlvbhKtAQoQdXBkYXRlVmlzaWJpbGl0eRI1LmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5VcGRhdGVWaXNpYmlsaXR5SW5wdXQaIi5haS5zdGlnbWVyLmFnZW50aWMuc2tpbGwudjEuU2tpbGwiPsK4GDoIAhArIgtyZXNvdXJjZV9pZCondW5hdXRob3JpemVkIHRvIHVwZGF0ZSBza2lsbCB2aXNpYmlsaXR5EoEBCgZkZWxldGUSJC5haS5zdGlnbWVyLmFnZW50aWMuc2tpbGwudjEuU2tpbGxJZBoiLmFpLnN0aWdtZXIuYWdlbnRpYy5za2lsbC52MS5Ta2lsbCItwrgYKQgDECsiBXZhbHVlKhx1bmF1dGhvcml6ZWQgdG8gZGVsZXRlIHNraWxsGgSg/ysrYgZwcm90bzM",[file_ai_stigmer_agentic_skill_v1_api,file_ai_stigmer_agentic_skill_v1_io,file_ai_stigmer_commons_apiresource_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),SkillCommandController=serviceDesc(file_ai_stigmer_agentic_skill_v1_command,0);var file_ai_stigmer_agentic_skill_v1_query=fileDesc("CidhaS9zdGlnbWVyL2FnZW50aWMvc2tpbGwvdjEvcXVlcnkucHJvdG8SG2FpLnN0aWdtZXIuYWdlbnRpYy5za2lsbC52MTKQBQoUU2tpbGxRdWVyeUNvbnRyb2xsZXISewoDZ2V0EiQuYWkuc3RpZ21lci5hZ2VudGljLnNraWxsLnYxLlNraWxsSWQaIi5haS5zdGlnbWVyLmFnZW50aWMuc2tpbGwudjEuU2tpbGwiKsK4GCYIARArIgV2YWx1ZSoZdW5hdXRob3JpemVkIHRvIGdldCBza2lsbBJwCg5nZXRCeVJlZmVyZW5jZRI0LmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZVJlZmVyZW5jZRoiLmFpLnN0aWdtZXIuYWdlbnRpYy5za2lsbC52MS5Ta2lsbCIE0LgYARJ2CgtnZXRBcnRpZmFjdBIvLmFpLnN0aWdtZXIuYWdlbnRpYy5za2lsbC52MS5HZXRBcnRpZmFjdFJlcXVlc3QaMC5haS5zdGlnbWVyLmFnZW50aWMuc2tpbGwudjEuR2V0QXJ0aWZhY3RSZXNwb25zZSIE0LgYARKGAQoWZ2V0QXJ0aWZhY3REb3dubG9hZFVybBIvLmFpLnN0aWdtZXIuYWdlbnRpYy5za2lsbC52MS5HZXRBcnRpZmFjdFJlcXVlc3QaNS5haS5zdGlnbWVyLmFnZW50aWMuc2tpbGwudjEuU2tpbGxBcnRpZmFjdERvd25sb2FkVXJsIgTQuBgBEoEBCgxsaXN0VmVyc2lvbnMSMy5haS5zdGlnbWVyLmFnZW50aWMuc2tpbGwudjEuTGlzdFNraWxsVmVyc2lvbnNJbnB1dBo2LmFpLnN0aWdtZXIuYWdlbnRpYy5za2lsbC52MS5MaXN0U2tpbGxWZXJzaW9uc1Jlc3BvbnNlIgTQuBgBGgSg/ysrYgZwcm90bzM",[file_ai_stigmer_agentic_skill_v1_api,file_ai_stigmer_agentic_skill_v1_io,file_ai_stigmer_commons_apiresource_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),SkillQueryController=serviceDesc(file_ai_stigmer_agentic_skill_v1_query,0);var file_ai_stigmer_agentic_workflow_v1_enum=fileDesc("CilhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvZW51bS5wcm90bxIeYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxKt4CChBXb3JrZmxvd1Rhc2tLaW5kEiIKHndvcmtmbG93X3Rhc2tfa2luZF91bnNwZWNpZmllZBAAEgwKCHNldF92YXJzEAESDQoJaHR0cF9jYWxsEAISDQoJZ3JwY19jYWxsEAMSEQoNYWN0aXZpdHlfY2FsbBAEEg8KC3N3aXRjaF9jYXNlEAUSDAoIZm9yX2VhY2gQBhIICgRmb3JrEAcSDQoJdHJ5X2NhdGNoEAgSCgoGbGlzdGVuEAkSCAoEd2FpdBAKEg8KC3JhaXNlX2Vycm9yEAsSEAoMcnVuX3dvcmtmbG93EAwSDgoKYWdlbnRfY2FsbBANEgwKCGxsbV9jYWxsEA4SDQoJdHJhbnNmb3JtEA8SDwoLaHVtYW5faW5wdXQQEBIMCgh2YWxpZGF0ZRAREg4KCmVtaXRfZXZlbnQQEhIQCgxub3RpZmljYXRpb24QExIICgRldmFsEBQqmQEKFEJ1ZGdldEV4Y2VlZGVkUG9saWN5EiYKImJ1ZGdldF9leGNlZWRlZF9wb2xpY3lfdW5zcGVjaWZpZWQQABIdChlidWRnZXRfZXhjZWVkZWRfdGVybWluYXRlEAESIAocYnVkZ2V0X2V4Y2VlZGVkX2h1bWFuX3JldmlldxACEhgKFGJ1ZGdldF9leGNlZWRlZF93YXJuEANiBnByb3RvMw"),WorkflowTaskKind;(function(WorkflowTaskKind2){WorkflowTaskKind2[WorkflowTaskKind2.workflow_task_kind_unspecified=0]="workflow_task_kind_unspecified",WorkflowTaskKind2[WorkflowTaskKind2.set_vars=1]="set_vars",WorkflowTaskKind2[WorkflowTaskKind2.http_call=2]="http_call",WorkflowTaskKind2[WorkflowTaskKind2.grpc_call=3]="grpc_call",WorkflowTaskKind2[WorkflowTaskKind2.activity_call=4]="activity_call",WorkflowTaskKind2[WorkflowTaskKind2.switch_case=5]="switch_case",WorkflowTaskKind2[WorkflowTaskKind2.for_each=6]="for_each",WorkflowTaskKind2[WorkflowTaskKind2.fork=7]="fork",WorkflowTaskKind2[WorkflowTaskKind2.try_catch=8]="try_catch",WorkflowTaskKind2[WorkflowTaskKind2.listen=9]="listen",WorkflowTaskKind2[WorkflowTaskKind2.wait=10]="wait",WorkflowTaskKind2[WorkflowTaskKind2.raise_error=11]="raise_error",WorkflowTaskKind2[WorkflowTaskKind2.run_workflow=12]="run_workflow",WorkflowTaskKind2[WorkflowTaskKind2.agent_call=13]="agent_call",WorkflowTaskKind2[WorkflowTaskKind2.llm_call=14]="llm_call",WorkflowTaskKind2[WorkflowTaskKind2.transform=15]="transform",WorkflowTaskKind2[WorkflowTaskKind2.human_input=16]="human_input",WorkflowTaskKind2[WorkflowTaskKind2.validate=17]="validate",WorkflowTaskKind2[WorkflowTaskKind2.emit_event=18]="emit_event",WorkflowTaskKind2[WorkflowTaskKind2.notification=19]="notification",WorkflowTaskKind2[WorkflowTaskKind2.eval=20]="eval"})(WorkflowTaskKind||(WorkflowTaskKind={}));var BudgetExceededPolicy;(function(BudgetExceededPolicy2){BudgetExceededPolicy2[BudgetExceededPolicy2.budget_exceeded_policy_unspecified=0]="budget_exceeded_policy_unspecified",BudgetExceededPolicy2[BudgetExceededPolicy2.budget_exceeded_terminate=1]="budget_exceeded_terminate",BudgetExceededPolicy2[BudgetExceededPolicy2.budget_exceeded_human_review=2]="budget_exceeded_human_review",BudgetExceededPolicy2[BudgetExceededPolicy2.budget_exceeded_warn=3]="budget_exceeded_warn"})(BudgetExceededPolicy||(BudgetExceededPolicy={}));var file_ai_stigmer_agentic_workflow_v1_spec=fileDesc("CilhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvc3BlYy5wcm90bxIeYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxIpwDCgxXb3JrZmxvd1NwZWMSEwoLZGVzY3JpcHRpb24YASABKAkSSgoIZG9jdW1lbnQYAiABKAsyMC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuV29ya2Zsb3dEb2N1bWVudEIGukgDyAEBEkUKBXRhc2tzGAMgAygLMiwuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLldvcmtmbG93VGFza0IIukgFkgECCAESQgoDZW52GAQgAygLMjUuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLldvcmtmbG93U3BlYy5FbnZFbnRyeRI+CgZidWRnZXQYBSABKAsyLi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuV29ya2Zsb3dCdWRnZXQaYAoIRW52RW50cnkSCwoDa2V5GAEgASgJEkMKBXZhbHVlGAIgASgLMjQuYWkuc3RpZ21lci5hZ2VudGljLmVudmlyb25tZW50LnYxLkVudlZhckRlY2xhcmF0aW9uOgI4ASKsAQoOV29ya2Zsb3dCdWRnZXQSFwoPbWF4X2Nvc3RfbWljcm9zGAEgASgDEhgKEG1heF90b3RhbF90b2tlbnMYAiABKAMSHAoUbWF4X2R1cmF0aW9uX3NlY29uZHMYAyABKAUSSQoLb25fZXhjZWVkZWQYBCABKA4yNC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuQnVkZ2V0RXhjZWVkZWRQb2xpY3kikAEKEFdvcmtmbG93RG9jdW1lbnQSHQoDZHNsGAEgASgJQhC6SA1yCzIJXjFcLjBcLjAkEhkKCW5hbWVzcGFjZRgCIAEoCUIGukgDyAEBEhQKBG5hbWUYAyABKAlCBrpIA8gBARIXCgd2ZXJzaW9uGAQgASgJQga6SAPIAQESEwoLZGVzY3JpcHRpb24YBSABKAki+gIKDFdvcmtmbG93VGFzaxIvCgRuYW1lGAEgASgJQiG6SB5yHBABMhheW2EtekEtWl9dW2EtekEtWjAtOV9dKiQSRgoEa2luZBgCIAEoDjIwLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5Xb3JrZmxvd1Rhc2tLaW5kQga6SAPIAQESPAoLdGFza19jb25maWcYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Qg66SAPIAQHqhSwEa2luZBI2CgZleHBvcnQYBCABKAsyJi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuRXhwb3J0EjkKBGZsb3cYBSABKAsyKy5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuRmxvd0NvbnRyb2wSQAoKY29tcGVuc2F0ZRgGIAMoCzIsLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5Xb3JrZmxvd1Rhc2siHQoGRXhwb3J0EhMKAmFzGAEgASgJQge6SARyAhABIhsKC0Zsb3dDb250cm9sEgwKBHRoZW4YASABKAliBnByb3RvMw",[file_ai_stigmer_agentic_environment_v1_spec,file_ai_stigmer_agentic_workflow_v1_enum,file_ai_stigmer_commons_apiresource_field_options,file_buf_validate_validate,file_google_protobuf_struct]),WorkflowSpecSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_spec,0),WorkflowBudgetSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_spec,1),WorkflowDocumentSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_spec,2),WorkflowTaskSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_spec,3),ExportSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_spec,4),FlowControlSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_spec,5);var file_ai_stigmer_agentic_workflow_v1_serverless_validation=fileDesc("CjphaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvc2VydmVybGVzcy92YWxpZGF0aW9uLnByb3RvEilhaS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuc2VydmVybGVzcyLrAQocU2VydmVybGVzc1dvcmtmbG93VmFsaWRhdGlvbhJJCgVzdGF0ZRgBIAEoDjI6LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5zZXJ2ZXJsZXNzLlZhbGlkYXRpb25TdGF0ZRIMCgR5YW1sGAIgASgJEg4KBmVycm9ycxgDIAMoCRIQCgh3YXJuaW5ncxgEIAMoCRIwCgx2YWxpZGF0ZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEh4KFnZhbGlkYXRpb25fd29ya2Zsb3dfaWQYBiABKAkqZAoPVmFsaWRhdGlvblN0YXRlEiAKHFZBTElEQVRJT05fU1RBVEVfVU5TUEVDSUZJRUQQABILCgdQRU5ESU5HEAESCQoFVkFMSUQQAhILCgdJTlZBTElEEAMSCgoGRkFJTEVEEARiBnByb3RvMw",[file_google_protobuf_timestamp]),ServerlessWorkflowValidationSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_serverless_validation,0),ValidationState2;(function(ValidationState3){ValidationState3[ValidationState3.VALIDATION_STATE_UNSPECIFIED=0]="VALIDATION_STATE_UNSPECIFIED",ValidationState3[ValidationState3.PENDING=1]="PENDING",ValidationState3[ValidationState3.VALID=2]="VALID",ValidationState3[ValidationState3.INVALID=3]="INVALID",ValidationState3[ValidationState3.FAILED=4]="FAILED"})(ValidationState2||(ValidationState2={}));var file_ai_stigmer_agentic_workflow_v1_status=fileDesc("CithaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvc3RhdHVzLnByb3RvEh5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEi9QEKDldvcmtmbG93U3RhdHVzEj8KBWF1ZGl0GGMgASgLMjAuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLkFwaVJlc291cmNlQXVkaXQSGwoTZGVmYXVsdF9pbnN0YW5jZV9pZBgBIAEoCRJvCh5zZXJ2ZXJsZXNzX3dvcmtmbG93X3ZhbGlkYXRpb24YAiABKAsyRy5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuc2VydmVybGVzcy5TZXJ2ZXJsZXNzV29ya2Zsb3dWYWxpZGF0aW9uEhQKDHZlcnNpb25faGFzaBgDIAEoCWIGcHJvdG8z",[file_ai_stigmer_agentic_workflow_v1_serverless_validation,file_ai_stigmer_commons_apiresource_status]);var file_ai_stigmer_agentic_workflow_v1_api=fileDesc("CihhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvYXBpLnByb3RvEh5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEipwIKCFdvcmtmbG93EjEKC2FwaV92ZXJzaW9uGAEgASgJQhy6SBlyFwoVYWdlbnRpYy5zdGlnbWVyLmFpL3YxEh0KBGtpbmQYAiABKAlCD7pIDHIKCghXb3JrZmxvdxJNCghtZXRhZGF0YRgDIAEoCzIzLmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZU1ldGFkYXRhQga6SAPIAQESOgoEc3BlYxgEIAEoCzIsLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5Xb3JrZmxvd1NwZWMSPgoGc3RhdHVzGAUgASgLMi4uYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLldvcmtmbG93U3RhdHVzYgZwcm90bzM",[file_ai_stigmer_agentic_workflow_v1_spec,file_ai_stigmer_agentic_workflow_v1_status,file_ai_stigmer_commons_apiresource_metadata,file_buf_validate_validate]),WorkflowSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_api,0);var file_ai_stigmer_agentic_workflow_v1_io=fileDesc("CidhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvaW8ucHJvdG8SHmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MSIjCgpXb3JrZmxvd0lkEhUKBXZhbHVlGAEgASgJQga6SAPIAQFiBnByb3RvMw",[file_buf_validate_validate]);var file_ai_stigmer_agentic_workflow_v1_version=fileDesc("CixhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdmVyc2lvbi5wcm90bxIeYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxIrgCChRXb3JrZmxvd1ZlcnNpb25FbnRyeRIUCgx2ZXJzaW9uX2hhc2gYASABKAkSLgoKYXBwbGllZF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASSQoKYXBwbGllZF9ieRgDIAEoCzI1LmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZUF1ZGl0QWN0b3ISCwoDdGFnGAQgASgJEhIKCmlzX2N1cnJlbnQYBSABKAgSDwoHbWVzc2FnZRgGIAEoCRIWCg52YWxpZGF0ZWRfeWFtbBgHIAEoCRJFCg5naXRfcHJvdmVuYW5jZRgIIAEoCzItLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5HaXRQcm92ZW5hbmNlIlAKDUdpdFByb3ZlbmFuY2USEgoKcmVtb3RlX3VybBgBIAEoCRILCgNyZWYYAiABKAkSDgoGY29tbWl0GAMgASgJEg4KBnN1YmRpchgEIAEoCSJtChlMaXN0V29ya2Zsb3dWZXJzaW9uc0lucHV0EhMKA29yZxgBIAEoCUIGukgDyAEBEhQKBHNsdWcYAiABKAlCBrpIA8gBARISCgpwYWdlX3Rva2VuGAMgASgJEhEKCXBhZ2Vfc2l6ZRgEIAEoBSKUAQocTGlzdFdvcmtmbG93VmVyc2lvbnNSZXNwb25zZRJGCgh2ZXJzaW9ucxgBIAMoCzI0LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5Xb3JrZmxvd1ZlcnNpb25FbnRyeRIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkSEwoLdG90YWxfY291bnQYAyABKAUiYwoXR2V0V29ya2Zsb3dWZXJzaW9uSW5wdXQSGwoLd29ya2Zsb3dfaWQYASABKAlCBrpIA8gBARIrCgx2ZXJzaW9uX2hhc2gYAiABKAlCFbpIEnIQMg5eW2EtZjAtOV17NjR9JCKMAQoXVGFnV29ya2Zsb3dWZXJzaW9uSW5wdXQSGwoLd29ya2Zsb3dfaWQYASABKAlCBrpIA8gBARIrCgx2ZXJzaW9uX2hhc2gYAiABKAlCFbpIEnIQMg5eW2EtZjAtOV17NjR9JBInCgN0YWcYAyABKAlCGrpIF3IVEAEyEV5bYS16QS1aMC05Ll8tXSskYgZwcm90bzM",[file_ai_stigmer_commons_apiresource_status,file_buf_validate_validate,file_google_protobuf_timestamp]),WorkflowVersionEntrySchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_version,0);var ListWorkflowVersionsResponseSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_version,3);var file_ai_stigmer_agentic_workflow_v1_command=fileDesc("CixhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvY29tbWFuZC5wcm90bxIeYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxMpEJChlXb3JrZmxvd0NvbW1hbmRDb250cm9sbGVyElsKBWFwcGx5EiguYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLldvcmtmbG93GiguYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLldvcmtmbG93EqoBCgZjcmVhdGUSKC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuV29ya2Zsb3caKC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuV29ya2Zsb3ciTMK4GEgIBxAeIgxtZXRhZGF0YS5vcmcqNHVuYXV0aG9yaXplZCB0byBjcmVhdGUgd29ya2Zsb3cgaW4gdGhpcyBvcmdhbml6YXRpb24SlAEKBnVwZGF0ZRIoLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5Xb3JrZmxvdxooLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5Xb3JrZmxvdyI2wrgYMggCEDIiC21ldGFkYXRhLmlkKh91bmF1dGhvcml6ZWQgdG8gdXBkYXRlIHdvcmtmbG93ErYBChB1cGRhdGVWaXNpYmlsaXR5EjUuYWkuc3RpZ21lci5jb21tb25zLmFwaXJlc291cmNlLlVwZGF0ZVZpc2liaWxpdHlJbnB1dBooLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5Xb3JrZmxvdyJBwrgYPQgCEDIiC3Jlc291cmNlX2lkKip1bmF1dGhvcml6ZWQgdG8gdXBkYXRlIHdvcmtmbG93IHZpc2liaWxpdHkSkAEKBmRlbGV0ZRIqLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5Xb3JrZmxvd0lkGiguYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLldvcmtmbG93IjDCuBgsCAMQMiIFdmFsdWUqH3VuYXV0aG9yaXplZCB0byBkZWxldGUgd29ya2Zsb3cS0QEKDHZhbGlkYXRlU3BlYxIoLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5Xb3JrZmxvdxpHLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5zZXJ2ZXJsZXNzLlNlcnZlcmxlc3NXb3JrZmxvd1ZhbGlkYXRpb24iTsK4GEoIBxAeIgxtZXRhZGF0YS5vcmcqNnVuYXV0aG9yaXplZCB0byB2YWxpZGF0ZSB3b3JrZmxvdyBpbiB0aGlzIG9yZ2FuaXphdGlvbhKsAQoKdGFnVmVyc2lvbhI3LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5UYWdXb3JrZmxvd1ZlcnNpb25JbnB1dBooLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5Xb3JrZmxvdyI7wrgYNwgCEDIiC3dvcmtmbG93X2lkKiR1bmF1dGhvcml6ZWQgdG8gdGFnIHdvcmtmbG93IHZlcnNpb24aBKD/KzJiBnByb3RvMw",[file_ai_stigmer_agentic_workflow_v1_api,file_ai_stigmer_agentic_workflow_v1_io,file_ai_stigmer_agentic_workflow_v1_serverless_validation,file_ai_stigmer_agentic_workflow_v1_version,file_ai_stigmer_commons_apiresource_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),WorkflowCommandController=serviceDesc(file_ai_stigmer_agentic_workflow_v1_command,0);var file_ai_stigmer_agentic_workflow_v1_query=fileDesc("CiphaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvcXVlcnkucHJvdG8SHmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MTLvBAoXV29ya2Zsb3dRdWVyeUNvbnRyb2xsZXISigEKA2dldBIqLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5Xb3JrZmxvd0lkGiguYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLldvcmtmbG93Ii3CuBgpCAEQMiIFdmFsdWUqHHVuYXV0aG9yaXplZCB0byBnZXQgd29ya2Zsb3cSdgoOZ2V0QnlSZWZlcmVuY2USNC5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuQXBpUmVzb3VyY2VSZWZlcmVuY2UaKC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuV29ya2Zsb3ciBNC4GAESjQEKDGxpc3RWZXJzaW9ucxI5LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5MaXN0V29ya2Zsb3dWZXJzaW9uc0lucHV0GjwuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLkxpc3RXb3JrZmxvd1ZlcnNpb25zUmVzcG9uc2UiBNC4GAESuAEKCmdldFZlcnNpb24SNy5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuR2V0V29ya2Zsb3dWZXJzaW9uSW5wdXQaNC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuV29ya2Zsb3dWZXJzaW9uRW50cnkiO8K4GDcIARAyIgt3b3JrZmxvd19pZCokdW5hdXRob3JpemVkIHRvIGdldCB3b3JrZmxvdyB2ZXJzaW9uGgSg/ysyYgZwcm90bzM",[file_ai_stigmer_agentic_workflow_v1_api,file_ai_stigmer_agentic_workflow_v1_io,file_ai_stigmer_agentic_workflow_v1_version,file_ai_stigmer_commons_apiresource_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),WorkflowQueryController=serviceDesc(file_ai_stigmer_agentic_workflow_v1_query,0);var file_ai_stigmer_agentic_workflow_v1_task_kind_descriptor=fileDesc("CjlhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza19raW5kX2Rlc2NyaXB0b3IucHJvdG8SHmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MSJHCg5UYXNrRmllbGRHcm91cBIKCgJpZBgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAki1gIKE1Rhc2tGaWVsZERlc2NyaXB0b3ISDAoEbmFtZRgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSOwoEdHlwZRgEIAEoDjItLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5UYXNrRmllbGRUeXBlEhAKCHJlcXVpcmVkGAUgASgIEhUKDWlzX2V4cHJlc3Npb24YBiABKAgSFQoNZGVmYXVsdF92YWx1ZRgHIAEoCRITCgtlbnVtX3ZhbHVlcxgIIAMoCRIcChRqc29uX3NjaGVtYV9mcmFnbWVudBgJIAEoCRIQCghncm91cF9pZBgKIAEoCRIUCgxmaWVsZF9udW1iZXIYCyABKAUSFAoMZWxlbWVudF90eXBlGAwgASgJEhgKEHZhbGlkYXRpb25faGludHMYDSADKAkimgQKElRhc2tLaW5kRGVzY3JpcHRvchI+CgRraW5kGAEgASgOMjAuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLldvcmtmbG93VGFza0tpbmQSFAoMZGlzcGxheV9uYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEkIKCGNhdGVnb3J5GAQgASgOMjAuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLlRhc2tLaW5kQ2F0ZWdvcnkSDAoEaWNvbhgFIAEoCRIZChFjb25maWdfcHJvdG9fdHlwZRgGIAEoCRJDCgZmaWVsZHMYByADKAsyMy5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuVGFza0ZpZWxkRGVzY3JpcHRvchJECgxmaWVsZF9ncm91cHMYCCADKAsyLi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuVGFza0ZpZWxkR3JvdXASGgoSY29uZmlnX2pzb25fc2NoZW1hGAkgASgJEhoKEm91dHB1dF9qc29uX3NjaGVtYRgKIAEoCRIVCg15YW1sX2V4YW1wbGVzGAsgAygJEhkKEWRvY3VtZW50YXRpb25fdXJsGAwgASgJEhQKDGlzX2FpX25hdGl2ZRgNIAEoCBIhChlyZXF1aXJlc19leHRlcm5hbF9zZXJ2aWNlGA4gASgIIhwKGkdldFRhc2tLaW5kUmVnaXN0cnlSZXF1ZXN0ImYKG0dldFRhc2tLaW5kUmVnaXN0cnlSZXNwb25zZRJHCgtkZXNjcmlwdG9ycxgBIAMoCzIyLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5UYXNrS2luZERlc2NyaXB0b3Iq9wEKEFRhc2tLaW5kQ2F0ZWdvcnkSIgoeVEFTS19LSU5EX0NBVEVHT1JZX1VOU1BFQ0lGSUVEEAASIwofVEFTS19LSU5EX0NBVEVHT1JZX0NPTlRST0xfRkxPVxABEiEKHVRBU0tfS0lORF9DQVRFR09SWV9JTlZPQ0FUSU9OEAISGQoVVEFTS19LSU5EX0NBVEVHT1JZX0FJEAMSGwoXVEFTS19LSU5EX0NBVEVHT1JZX0RBVEEQBBIhCh1UQVNLX0tJTkRfQ0FURUdPUllfR09WRVJOQU5DRRAFEhwKGFRBU0tfS0lORF9DQVRFR09SWV9FVkVOVBAGKqYCCg1UYXNrRmllbGRUeXBlEh8KG1RBU0tfRklFTERfVFlQRV9VTlNQRUNJRklFRBAAEhoKFlRBU0tfRklFTERfVFlQRV9TVFJJTkcQARIZChVUQVNLX0ZJRUxEX1RZUEVfSU5UMzIQAhIZChVUQVNLX0ZJRUxEX1RZUEVfRkxPQVQQAxIYChRUQVNLX0ZJRUxEX1RZUEVfQk9PTBAEEhgKFFRBU0tfRklFTERfVFlQRV9FTlVNEAUSGgoWVEFTS19GSUVMRF9UWVBFX1NUUlVDVBAGEhwKGFRBU0tfRklFTERfVFlQRV9SRVBFQVRFRBAHEhcKE1RBU0tfRklFTERfVFlQRV9NQVAQCBIbChdUQVNLX0ZJRUxEX1RZUEVfTUVTU0FHRRAJYgZwcm90bzM",[file_ai_stigmer_agentic_workflow_v1_enum]);var TaskKindDescriptorSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_task_kind_descriptor,2);var GetTaskKindRegistryResponseSchema=messageDesc2(file_ai_stigmer_agentic_workflow_v1_task_kind_descriptor,4),TaskKindCategory;(function(TaskKindCategory2){TaskKindCategory2[TaskKindCategory2.UNSPECIFIED=0]="UNSPECIFIED",TaskKindCategory2[TaskKindCategory2.CONTROL_FLOW=1]="CONTROL_FLOW",TaskKindCategory2[TaskKindCategory2.INVOCATION=2]="INVOCATION",TaskKindCategory2[TaskKindCategory2.AI=3]="AI",TaskKindCategory2[TaskKindCategory2.DATA=4]="DATA",TaskKindCategory2[TaskKindCategory2.GOVERNANCE=5]="GOVERNANCE",TaskKindCategory2[TaskKindCategory2.EVENT=6]="EVENT"})(TaskKindCategory||(TaskKindCategory={}));var TaskFieldType;(function(TaskFieldType2){TaskFieldType2[TaskFieldType2.UNSPECIFIED=0]="UNSPECIFIED",TaskFieldType2[TaskFieldType2.STRING=1]="STRING",TaskFieldType2[TaskFieldType2.INT32=2]="INT32",TaskFieldType2[TaskFieldType2.FLOAT=3]="FLOAT",TaskFieldType2[TaskFieldType2.BOOL=4]="BOOL",TaskFieldType2[TaskFieldType2.ENUM=5]="ENUM",TaskFieldType2[TaskFieldType2.STRUCT=6]="STRUCT",TaskFieldType2[TaskFieldType2.REPEATED=7]="REPEATED",TaskFieldType2[TaskFieldType2.MAP=8]="MAP",TaskFieldType2[TaskFieldType2.MESSAGE=9]="MESSAGE"})(TaskFieldType||(TaskFieldType={}));var file_ai_stigmer_agentic_workflow_v1_task_kind_registry_query=fileDesc("Cj1haS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza19raW5kX3JlZ2lzdHJ5X3F1ZXJ5LnByb3RvEh5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEysgEKH1Rhc2tLaW5kUmVnaXN0cnlRdWVyeUNvbnRyb2xsZXISjgEKE2dldFRhc2tLaW5kUmVnaXN0cnkSOi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuR2V0VGFza0tpbmRSZWdpc3RyeVJlcXVlc3QaOy5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEuR2V0VGFza0tpbmRSZWdpc3RyeVJlc3BvbnNlYgZwcm90bzM",[file_ai_stigmer_agentic_workflow_v1_task_kind_descriptor]),TaskKindRegistryQueryController=serviceDesc(file_ai_stigmer_agentic_workflow_v1_task_kind_registry_query,0);var file_ai_stigmer_agentic_workflowexecution_v1_enum=fileDesc("CjJhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3dleGVjdXRpb24vdjEvZW51bS5wcm90bxInYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxKtsBCg5FeGVjdXRpb25QaGFzZRIfChtFWEVDVVRJT05fUEhBU0VfVU5TUEVDSUZJRUQQABIVChFFWEVDVVRJT05fUEVORElORxABEhkKFUVYRUNVVElPTl9JTl9QUk9HUkVTUxACEhcKE0VYRUNVVElPTl9DT01QTEVURUQQAxIUChBFWEVDVVRJT05fRkFJTEVEEAQSFwoTRVhFQ1VUSU9OX0NBTkNFTExFRBAFEhgKFEVYRUNVVElPTl9URVJNSU5BVEVEEAYSFAoQRVhFQ1VUSU9OX1BBVVNFRBAHKoQCChBXb3JrZmxvd1Rhc2tUeXBlEiIKHldPUktGTE9XX1RBU0tfVFlQRV9VTlNQRUNJRklFRBAAEiIKHldPUktGTE9XX1RBU0tfQUdFTlRfSU5WT0NBVElPThABEhoKFldPUktGTE9XX1RBU0tfQVBQUk9WQUwQAhIaChZXT1JLRkxPV19UQVNLX0FQSV9DQUxMEAMSHQoZV09SS0ZMT1dfVEFTS19DT05ESVRJT05BTBAEEhoKFldPUktGTE9XX1RBU0tfUEFSQUxMRUwQBRIbChdXT1JLRkxPV19UQVNLX1RSQU5TRk9STRAGEhgKFFdPUktGTE9XX1RBU0tfQ1VTVE9NEAcq6gEKEldvcmtmbG93VGFza1N0YXR1cxIkCiBXT1JLRkxPV19UQVNLX1NUQVRVU19VTlNQRUNJRklFRBAAEhkKFVdPUktGTE9XX1RBU0tfUEVORElORxABEh0KGVdPUktGTE9XX1RBU0tfSU5fUFJPR1JFU1MQAhIbChdXT1JLRkxPV19UQVNLX0NPTVBMRVRFRBADEhgKFFdPUktGTE9XX1RBU0tfRkFJTEVEEAQSGQoVV09SS0ZMT1dfVEFTS19TS0lQUEVEEAUSIgoeV09SS0ZMT1dfVEFTS19XQUlUSU5HX0FQUFJPVkFMEAZiBnByb3RvMw"),ExecutionPhase2;(function(ExecutionPhase3){ExecutionPhase3[ExecutionPhase3.EXECUTION_PHASE_UNSPECIFIED=0]="EXECUTION_PHASE_UNSPECIFIED",ExecutionPhase3[ExecutionPhase3.EXECUTION_PENDING=1]="EXECUTION_PENDING",ExecutionPhase3[ExecutionPhase3.EXECUTION_IN_PROGRESS=2]="EXECUTION_IN_PROGRESS",ExecutionPhase3[ExecutionPhase3.EXECUTION_COMPLETED=3]="EXECUTION_COMPLETED",ExecutionPhase3[ExecutionPhase3.EXECUTION_FAILED=4]="EXECUTION_FAILED",ExecutionPhase3[ExecutionPhase3.EXECUTION_CANCELLED=5]="EXECUTION_CANCELLED",ExecutionPhase3[ExecutionPhase3.EXECUTION_TERMINATED=6]="EXECUTION_TERMINATED",ExecutionPhase3[ExecutionPhase3.EXECUTION_PAUSED=7]="EXECUTION_PAUSED"})(ExecutionPhase2||(ExecutionPhase2={}));var WorkflowTaskType;(function(WorkflowTaskType2){WorkflowTaskType2[WorkflowTaskType2.WORKFLOW_TASK_TYPE_UNSPECIFIED=0]="WORKFLOW_TASK_TYPE_UNSPECIFIED",WorkflowTaskType2[WorkflowTaskType2.WORKFLOW_TASK_AGENT_INVOCATION=1]="WORKFLOW_TASK_AGENT_INVOCATION",WorkflowTaskType2[WorkflowTaskType2.WORKFLOW_TASK_APPROVAL=2]="WORKFLOW_TASK_APPROVAL",WorkflowTaskType2[WorkflowTaskType2.WORKFLOW_TASK_API_CALL=3]="WORKFLOW_TASK_API_CALL",WorkflowTaskType2[WorkflowTaskType2.WORKFLOW_TASK_CONDITIONAL=4]="WORKFLOW_TASK_CONDITIONAL",WorkflowTaskType2[WorkflowTaskType2.WORKFLOW_TASK_PARALLEL=5]="WORKFLOW_TASK_PARALLEL",WorkflowTaskType2[WorkflowTaskType2.WORKFLOW_TASK_TRANSFORM=6]="WORKFLOW_TASK_TRANSFORM",WorkflowTaskType2[WorkflowTaskType2.WORKFLOW_TASK_CUSTOM=7]="WORKFLOW_TASK_CUSTOM"})(WorkflowTaskType||(WorkflowTaskType={}));var WorkflowTaskStatus;(function(WorkflowTaskStatus2){WorkflowTaskStatus2[WorkflowTaskStatus2.WORKFLOW_TASK_STATUS_UNSPECIFIED=0]="WORKFLOW_TASK_STATUS_UNSPECIFIED",WorkflowTaskStatus2[WorkflowTaskStatus2.WORKFLOW_TASK_PENDING=1]="WORKFLOW_TASK_PENDING",WorkflowTaskStatus2[WorkflowTaskStatus2.WORKFLOW_TASK_IN_PROGRESS=2]="WORKFLOW_TASK_IN_PROGRESS",WorkflowTaskStatus2[WorkflowTaskStatus2.WORKFLOW_TASK_COMPLETED=3]="WORKFLOW_TASK_COMPLETED",WorkflowTaskStatus2[WorkflowTaskStatus2.WORKFLOW_TASK_FAILED=4]="WORKFLOW_TASK_FAILED",WorkflowTaskStatus2[WorkflowTaskStatus2.WORKFLOW_TASK_SKIPPED=5]="WORKFLOW_TASK_SKIPPED",WorkflowTaskStatus2[WorkflowTaskStatus2.WORKFLOW_TASK_WAITING_APPROVAL=6]="WORKFLOW_TASK_WAITING_APPROVAL"})(WorkflowTaskStatus||(WorkflowTaskStatus={}));var file_ai_stigmer_agentic_workflowexecution_v1_spec=fileDesc("CjJhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3dleGVjdXRpb24vdjEvc3BlYy5wcm90bxInYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxIrwEChVXb3JrZmxvd0V4ZWN1dGlvblNwZWMSHAoUd29ya2Zsb3dfaW5zdGFuY2VfaWQYASABKAkSEwoLd29ya2Zsb3dfaWQYBiABKAkSFwoPdHJpZ2dlcl9tZXNzYWdlGAMgASgJEm0KEHRyaWdnZXJfbWV0YWRhdGEYBCADKAsyUy5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuV29ya2Zsb3dFeGVjdXRpb25TcGVjLlRyaWdnZXJNZXRhZGF0YUVudHJ5EmMKC3J1bnRpbWVfZW52GAUgAygLMk4uYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXhlY3V0aW9uU3BlYy5SdW50aW1lRW52RW50cnkSFgoOY2FsbGJhY2tfdG9rZW4YByABKAwSSAoQZXhlY3V0aW9uX3RhcmdldBgIIAEoDjIuLmFpLnN0aWdtZXIuYWdlbnRpYy5zZXNzaW9uLnYxLkV4ZWN1dGlvblRhcmdldBo2ChRUcmlnZ2VyTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGmkKD1J1bnRpbWVFbnZFbnRyeRILCgNrZXkYASABKAkSRQoFdmFsdWUYAiABKAsyNi5haS5zdGlnbWVyLmFnZW50aWMuZXhlY3V0aW9uY29udGV4dC52MS5FeGVjdXRpb25WYWx1ZToCOAFiBnByb3RvMw",[file_ai_stigmer_agentic_executioncontext_v1_spec,file_ai_stigmer_agentic_session_v1_enum]),WorkflowExecutionSpecSchema=messageDesc2(file_ai_stigmer_agentic_workflowexecution_v1_spec,0);var file_ai_stigmer_agentic_workflowexecution_v1_api=fileDesc("CjFhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3dleGVjdXRpb24vdjEvYXBpLnByb3RvEidhaS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEi3QIKEVdvcmtmbG93RXhlY3V0aW9uEjEKC2FwaV92ZXJzaW9uGAEgASgJQhy6SBlyFwoVYWdlbnRpYy5zdGlnbWVyLmFpL3YxEiYKBGtpbmQYAiABKAlCGLpIFXITChFXb3JrZmxvd0V4ZWN1dGlvbhJNCghtZXRhZGF0YRgDIAEoCzIzLmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZU1ldGFkYXRhQga6SAPIAQESTAoEc3BlYxgEIAEoCzI+LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd0V4ZWN1dGlvblNwZWMSUAoGc3RhdHVzGAUgASgLMkAuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXhlY3V0aW9uU3RhdHVzIqQFChdXb3JrZmxvd0V4ZWN1dGlvblN0YXR1cxI/CgVhdWRpdBhjIAEoCzIwLmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZUF1ZGl0ElAKBXBoYXNlGAEgASgOMjcuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLkV4ZWN1dGlvblBoYXNlQgi6SAWCAQIQARJECgV0YXNrcxgCIAMoCzI1LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd1Rhc2sSJwoGb3V0cHV0GAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBINCgVlcnJvchgEIAEoCRISCgpzdGFydGVkX2F0GAUgASgJEhQKDGNvbXBsZXRlZF9hdBgGIAEoCRIcChR0ZW1wb3JhbF93b3JrZmxvd19pZBgHIAEoCRJbChFwZW5kaW5nX2FwcHJvdmFscxgJIAMoCzJALmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd1BlbmRpbmdBcHByb3ZhbBIZChF0b3RhbF9jb3N0X21pY3JvcxgKIAEoAxIaChJ0b3RhbF9pbnB1dF90b2tlbnMYCyABKAMSGwoTdG90YWxfb3V0cHV0X3Rva2VucxgMIAEoAxIdChV3b3JrZmxvd192ZXJzaW9uX2hhc2gYDSABKAkSYAoUcGVuZGluZ19maWxlX3Jldmlld3MYDiADKAsyQi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuV29ya2Zsb3dQZW5kaW5nRmlsZVJldmlldyKEAQoXV29ya2Zsb3dQZW5kaW5nQXBwcm92YWwSRwoIYXBwcm92YWwYASABKAsyNS5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuUGVuZGluZ0FwcHJvdmFsEiAKGGNoaWxkX2FnZW50X2V4ZWN1dGlvbl9pZBgCIAEoCSJUChlXb3JrZmxvd1BlbmRpbmdGaWxlUmV2aWV3EiAKGGNoaWxkX2FnZW50X2V4ZWN1dGlvbl9pZBgBIAEoCRIVCg1jaGFuZ2Vfc2V0X2lkGAIgAygJIv8DCgxXb3JrZmxvd1Rhc2sSDwoHdGFza19pZBgBIAEoCRIRCgl0YXNrX25hbWUYAiABKAkSVgoJdGFza190eXBlGAMgASgOMjkuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93VGFza1R5cGVCCLpIBYIBAhABEiYKBWlucHV0GAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBInCgZvdXRwdXQYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0ElUKBnN0YXR1cxgGIAEoDjI7LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd1Rhc2tTdGF0dXNCCLpIBYIBAhABEhIKCnN0YXJ0ZWRfYXQYByABKAkSFAoMY29tcGxldGVkX2F0GAggASgJEg0KBWVycm9yGAkgASgJEikKCG1ldGFkYXRhGAogASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIUCgxhcnRpZmFjdF9pZHMYCyADKAkSEwoLY29zdF9taWNyb3MYDCABKAMSFAoMaW5wdXRfdG9rZW5zGA0gASgDEhUKDW91dHB1dF90b2tlbnMYDiABKAMSDwoHdWlfaGludBgPIAEoCWIGcHJvdG8z",[file_ai_stigmer_agentic_agentexecution_v1_approval,file_ai_stigmer_agentic_workflowexecution_v1_enum,file_ai_stigmer_agentic_workflowexecution_v1_spec,file_ai_stigmer_commons_apiresource_metadata,file_ai_stigmer_commons_apiresource_status,file_buf_validate_validate,file_google_protobuf_struct]),WorkflowExecutionSchema=messageDesc2(file_ai_stigmer_agentic_workflowexecution_v1_api,0);var file_ai_stigmer_agentic_workflowexecution_v1_event=fileDesc("CjNhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3dleGVjdXRpb24vdjEvZXZlbnQucHJvdG8SJ2FpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MSKGEQoWV29ya2Zsb3dFeGVjdXRpb25FdmVudBIZCghldmVudF9pZBgBIAEoCUIHukgEcgIQARJYCgpldmVudF90eXBlGAIgASgOMjouYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXZlbnRUeXBlQgi6SAWCAQIQARIXCg9zZXF1ZW5jZV9udW1iZXIYAyABKAQSHAoLb2NjdXJyZWRfYXQYBCABKAlCB7pIBHICEAESEQoJdGFza19uYW1lGAUgASgJEl0KEWV4ZWN1dGlvbl9zdGFydGVkGAogASgLMkAuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLkV4ZWN1dGlvblN0YXJ0ZWRQYXlsb2FkSAASYQoTZXhlY3V0aW9uX2NvbXBsZXRlZBgLIAEoCzJCLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5FeGVjdXRpb25Db21wbGV0ZWRQYXlsb2FkSAASWwoQZXhlY3V0aW9uX2ZhaWxlZBgMIAEoCzI/LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5FeGVjdXRpb25GYWlsZWRQYXlsb2FkSAASWwoQZXhlY3V0aW9uX3BhdXNlZBgNIAEoCzI/LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5FeGVjdXRpb25QYXVzZWRQYXlsb2FkSAASXQoRZXhlY3V0aW9uX3Jlc3VtZWQYDiABKAsyQC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuRXhlY3V0aW9uUmVzdW1lZFBheWxvYWRIABJhChNleGVjdXRpb25fY2FuY2VsbGVkGA8gASgLMkIuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLkV4ZWN1dGlvbkNhbmNlbGxlZFBheWxvYWRIABJjChRleGVjdXRpb25fdGVybWluYXRlZBgQIAEoCzJDLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5FeGVjdXRpb25UZXJtaW5hdGVkUGF5bG9hZEgAElMKDHRhc2tfc3RhcnRlZBgUIAEoCzI7LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5UYXNrU3RhcnRlZFBheWxvYWRIABJXCg50YXNrX2NvbXBsZXRlZBgVIAEoCzI9LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5UYXNrQ29tcGxldGVkUGF5bG9hZEgAElEKC3Rhc2tfZmFpbGVkGBYgASgLMjouYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLlRhc2tGYWlsZWRQYXlsb2FkSAASUwoMdGFza19za2lwcGVkGBcgASgLMjsuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLlRhc2tTa2lwcGVkUGF5bG9hZEgAElUKDXRhc2tfcmV0cnlpbmcYGCABKAsyPC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuVGFza1JldHJ5aW5nUGF5bG9hZEgAEl4KEmFnZW50X2NhbGxfc3RhcnRlZBgeIAEoCzJALmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5BZ2VudENhbGxTdGFydGVkUGF5bG9hZEgAEmAKE2FnZW50X2NhbGxfcHJvZ3Jlc3MYHyABKAsyQS5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuQWdlbnRDYWxsUHJvZ3Jlc3NQYXlsb2FkSAASYgoUYWdlbnRfY2FsbF9jb21wbGV0ZWQYICABKAsyQi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuQWdlbnRDYWxsQ29tcGxldGVkUGF5bG9hZEgAEl8KEmFwcHJvdmFsX3JlcXVlc3RlZBgoIAEoCzJBLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5BcHByb3ZhbFJlcXVlc3RlZFBheWxvYWRIABJdChFhcHByb3ZhbF9yZXNvbHZlZBgpIAEoCzJALmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5BcHByb3ZhbFJlc29sdmVkUGF5bG9hZEgAEl0KEWJ1ZGdldF9jaGVja3BvaW50GDIgASgLMkAuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLkJ1ZGdldENoZWNrcG9pbnRQYXlsb2FkSAASWQoPc2lnbmFsX3JlY2VpdmVkGDwgASgLMj4uYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLlNpZ25hbFJlY2VpdmVkUGF5bG9hZEgAElUKDWV2ZW50X2VtaXR0ZWQYPSABKAsyPC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuRXZlbnRFbWl0dGVkUGF5bG9hZEgAElsKEGFydGlmYWN0X2NyZWF0ZWQYRiABKAsyPy5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuQXJ0aWZhY3RDcmVhdGVkUGF5bG9hZEgAQgkKB3BheWxvYWQiYQoXRXhlY3V0aW9uU3RhcnRlZFBheWxvYWQSEwoLdG90YWxfdGFza3MYASABKAUSEwoLd29ya2Zsb3dfaWQYAiABKAkSHAoUd29ya2Zsb3dfaW5zdGFuY2VfaWQYAyABKAkikgEKGUV4ZWN1dGlvbkNvbXBsZXRlZFBheWxvYWQSLwoOb3V0cHV0X3N1bW1hcnkYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhMKC2R1cmF0aW9uX21zGAIgASgDEhkKEXRvdGFsX2Nvc3RfbWljcm9zGAMgASgDEhQKDHRvdGFsX3Rva2VucxgEIAEoAyJWChZFeGVjdXRpb25GYWlsZWRQYXlsb2FkEg0KBWVycm9yGAEgASgJEhgKEGZhaWxlZF90YXNrX25hbWUYAiABKAkSEwoLZHVyYXRpb25fbXMYAyABKAMiOwoWRXhlY3V0aW9uUGF1c2VkUGF5bG9hZBIOCgZyZWFzb24YASABKAkSEQoJcGF1c2VkX2J5GAIgASgJIi0KF0V4ZWN1dGlvblJlc3VtZWRQYXlsb2FkEhIKCnJlc3VtZWRfYnkYASABKAkiQQoZRXhlY3V0aW9uQ2FuY2VsbGVkUGF5bG9hZBIOCgZyZWFzb24YASABKAkSFAoMY2FuY2VsbGVkX2J5GAIgASgJIkMKGkV4ZWN1dGlvblRlcm1pbmF0ZWRQYXlsb2FkEg4KBnJlYXNvbhgBIAEoCRIVCg10ZXJtaW5hdGVkX2J5GAIgASgJIqEBChJUYXNrU3RhcnRlZFBheWxvYWQSQwoJdGFza19raW5kGAEgASgOMjAuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLldvcmtmbG93VGFza0tpbmQSLgoNaW5wdXRfc3VtbWFyeRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSFgoOYXR0ZW1wdF9udW1iZXIYAyABKAUiywEKFFRhc2tDb21wbGV0ZWRQYXlsb2FkEkMKCXRhc2tfa2luZBgBIAEoDjIwLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5Xb3JrZmxvd1Rhc2tLaW5kEhMKC2R1cmF0aW9uX21zGAIgASgDEi8KDm91dHB1dF9zdW1tYXJ5GAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBITCgtjb3N0X21pY3JvcxgEIAEoAxITCgt0b2tlbnNfdXNlZBgFIAEoAyK+AQoRVGFza0ZhaWxlZFBheWxvYWQSQwoJdGFza19raW5kGAEgASgOMjAuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLldvcmtmbG93VGFza0tpbmQSDQoFZXJyb3IYAiABKAkSFgoOYXR0ZW1wdF9udW1iZXIYAyABKAUSFAoMbWF4X2F0dGVtcHRzGAQgASgFEhIKCndpbGxfcmV0cnkYBSABKAgSEwoLZHVyYXRpb25fbXMYBiABKAMiaQoSVGFza1NraXBwZWRQYXlsb2FkEkMKCXRhc2tfa2luZBgBIAEoDjIwLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvdy52MS5Xb3JrZmxvd1Rhc2tLaW5kEg4KBnJlYXNvbhgCIAEoCSJVChNUYXNrUmV0cnlpbmdQYXlsb2FkEhYKDmZhaWxlZF9hdHRlbXB0GAEgASgFEhQKDG5leHRfYXR0ZW1wdBgCIAEoBRIQCghkZWxheV9tcxgDIAEoAyJiChdBZ2VudENhbGxTdGFydGVkUGF5bG9hZBIaChJjaGlsZF9leGVjdXRpb25faWQYASABKAkSEgoKYWdlbnRfc2x1ZxgCIAEoCRIXCg9tZXNzYWdlX3N1bW1hcnkYAyABKAki5wEKGEFnZW50Q2FsbFByb2dyZXNzUGF5bG9hZBIaChJjaGlsZF9leGVjdXRpb25faWQYASABKAkSSQoLYWdlbnRfcGhhc2UYAiABKA4yNC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRXhlY3V0aW9uUGhhc2USGQoRY3VycmVudF90b29sX25hbWUYAyABKAkSFwoPdG9rZW5zX2NvbnN1bWVkGAQgASgDEhYKDm1lc3NhZ2VzX2NvdW50GAUgASgFEhgKEHRvb2xfY2FsbHNfY291bnQYBiABKAUi1AEKGUFnZW50Q2FsbENvbXBsZXRlZFBheWxvYWQSGgoSY2hpbGRfZXhlY3V0aW9uX2lkGAEgASgJEkkKC2FnZW50X3BoYXNlGAIgASgOMjQuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkV4ZWN1dGlvblBoYXNlEhMKC2R1cmF0aW9uX21zGAMgASgDEhcKD3Rva2Vuc19jb25zdW1lZBgEIAEoAxITCgtjb3N0X21pY3JvcxgFIAEoAxINCgVlcnJvchgGIAEoCSI0ChVIdW1hbklucHV0T3V0Y29tZUluZm8SDAoEbmFtZRgBIAEoCRINCgVsYWJlbBgCIAEoCSLfAgoYQXBwcm92YWxSZXF1ZXN0ZWRQYXlsb2FkEg4KBnByb21wdBgBIAEoCRIRCglhcHByb3ZlcnMYAiADKAkSFwoPdGltZW91dF9zZWNvbmRzGAMgASgFEhQKDHRvb2xfY2FsbF9pZBgEIAEoCRIaChJjaGlsZF9leGVjdXRpb25faWQYBSABKAkSUAoIb3V0Y29tZXMYBiADKAsyPi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuSHVtYW5JbnB1dE91dGNvbWVJbmZvEiwKC2Zvcm1fc2NoZW1hGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBInCgdwYXlsb2FkGAggASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEg8KB3VpX2hpbnQYCSABKAkSGwoTcGF5bG9hZF9hcnRpZmFjdF9pZBgKIAEoCSLxAQoXQXBwcm92YWxSZXNvbHZlZFBheWxvYWQSRAoGYWN0aW9uGAEgASgOMjQuYWkuc3RpZ21lci5hZ2VudGljLmFnZW50ZXhlY3V0aW9uLnYxLkFwcHJvdmFsQWN0aW9uEhMKC3Jlc29sdmVkX2J5GAIgASgJEg8KB2NvbW1lbnQYAyABKAkSGAoQd2FpdF9kdXJhdGlvbl9tcxgEIAEoAxJQChFyZXNvbHZlZF9ieV9hY3RvchgFIAEoCzI1LmFpLnN0aWdtZXIuY29tbW9ucy5hcGlyZXNvdXJjZS5BcGlSZXNvdXJjZUF1ZGl0QWN0b3Ii9wEKF0J1ZGdldENoZWNrcG9pbnRQYXlsb2FkEhwKFGNvc3RfY29uc3VtZWRfbWljcm9zGAEgASgDEh0KFWNvc3RfcmVtYWluaW5nX21pY3JvcxgCIAEoAxIXCg90b2tlbnNfY29uc3VtZWQYAyABKAMSGAoQdG9rZW5zX3JlbWFpbmluZxgEIAEoAxIaChJ0aHJlc2hvbGRfYnJlYWNoZWQYBSABKAgSUAoSb25fZXhjZWVkZWRfcG9saWN5GAYgASgOMjQuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLkJ1ZGdldEV4Y2VlZGVkUG9saWN5Il4KFVNpZ25hbFJlY2VpdmVkUGF5bG9hZBITCgtzaWduYWxfbmFtZRgBIAEoCRIwCg9wYXlsb2FkX3N1bW1hcnkYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IlYKE0V2ZW50RW1pdHRlZFBheWxvYWQSEgoKZXZlbnRfdHlwZRgBIAEoCRIUCgxldmVudF9zb3VyY2UYAiABKAkSFQoNZXZlbnRfc3ViamVjdBgDIAEoCSJtChZBcnRpZmFjdENyZWF0ZWRQYXlsb2FkEhMKC2FydGlmYWN0X2lkGAEgASgJEhQKDGRpc3BsYXlfbmFtZRgCIAEoCRIUCgxjb250ZW50X3R5cGUYAyABKAkSEgoKc2l6ZV9ieXRlcxgEIAEoAyqJBAoRV29ya2Zsb3dFdmVudFR5cGUSIwofd29ya2Zsb3dfZXZlbnRfdHlwZV91bnNwZWNpZmllZBAAEhUKEWV4ZWN1dGlvbl9zdGFydGVkEAESFwoTZXhlY3V0aW9uX2NvbXBsZXRlZBACEhQKEGV4ZWN1dGlvbl9mYWlsZWQQAxIUChBleGVjdXRpb25fcGF1c2VkEAQSFQoRZXhlY3V0aW9uX3Jlc3VtZWQQBRIXChNleGVjdXRpb25fY2FuY2VsbGVkEAYSGAoUZXhlY3V0aW9uX3Rlcm1pbmF0ZWQQBxIQCgx0YXNrX3N0YXJ0ZWQQCxISCg50YXNrX2NvbXBsZXRlZBAMEg8KC3Rhc2tfZmFpbGVkEA0SEAoMdGFza19za2lwcGVkEA4SEQoNdGFza19yZXRyeWluZxAPEhYKEmFnZW50X2NhbGxfc3RhcnRlZBAVEhcKE2FnZW50X2NhbGxfcHJvZ3Jlc3MQFhIYChRhZ2VudF9jYWxsX2NvbXBsZXRlZBAXEhYKEmFwcHJvdmFsX3JlcXVlc3RlZBAfEhUKEWFwcHJvdmFsX3Jlc29sdmVkECASFQoRYnVkZ2V0X2NoZWNrcG9pbnQQKRITCg9zaWduYWxfcmVjZWl2ZWQQMxIRCg1ldmVudF9lbWl0dGVkEDQSFAoQYXJ0aWZhY3RfY3JlYXRlZBA1YgZwcm90bzM",[file_ai_stigmer_agentic_agentexecution_v1_enum,file_ai_stigmer_agentic_workflow_v1_enum,file_ai_stigmer_commons_apiresource_status,file_buf_validate_validate,file_google_protobuf_struct]);var WorkflowEventType;(function(WorkflowEventType2){WorkflowEventType2[WorkflowEventType2.workflow_event_type_unspecified=0]="workflow_event_type_unspecified",WorkflowEventType2[WorkflowEventType2.execution_started=1]="execution_started",WorkflowEventType2[WorkflowEventType2.execution_completed=2]="execution_completed",WorkflowEventType2[WorkflowEventType2.execution_failed=3]="execution_failed",WorkflowEventType2[WorkflowEventType2.execution_paused=4]="execution_paused",WorkflowEventType2[WorkflowEventType2.execution_resumed=5]="execution_resumed",WorkflowEventType2[WorkflowEventType2.execution_cancelled=6]="execution_cancelled",WorkflowEventType2[WorkflowEventType2.execution_terminated=7]="execution_terminated",WorkflowEventType2[WorkflowEventType2.task_started=11]="task_started",WorkflowEventType2[WorkflowEventType2.task_completed=12]="task_completed",WorkflowEventType2[WorkflowEventType2.task_failed=13]="task_failed",WorkflowEventType2[WorkflowEventType2.task_skipped=14]="task_skipped",WorkflowEventType2[WorkflowEventType2.task_retrying=15]="task_retrying",WorkflowEventType2[WorkflowEventType2.agent_call_started=21]="agent_call_started",WorkflowEventType2[WorkflowEventType2.agent_call_progress=22]="agent_call_progress",WorkflowEventType2[WorkflowEventType2.agent_call_completed=23]="agent_call_completed",WorkflowEventType2[WorkflowEventType2.approval_requested=31]="approval_requested",WorkflowEventType2[WorkflowEventType2.approval_resolved=32]="approval_resolved",WorkflowEventType2[WorkflowEventType2.budget_checkpoint=41]="budget_checkpoint",WorkflowEventType2[WorkflowEventType2.signal_received=51]="signal_received",WorkflowEventType2[WorkflowEventType2.event_emitted=52]="event_emitted",WorkflowEventType2[WorkflowEventType2.artifact_created=53]="artifact_created"})(WorkflowEventType||(WorkflowEventType={}));var file_ai_stigmer_agentic_workflowexecution_v1_io=fileDesc("CjBhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3dleGVjdXRpb24vdjEvaW8ucHJvdG8SJ2FpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MSIsChNXb3JrZmxvd0V4ZWN1dGlvbklkEhUKBXZhbHVlGAEgASgJQga6SAPIAQEiIwoKV29ya2Zsb3dJZBIVCgV2YWx1ZRgBIAEoCUIGukgDyAEBInkKFVdvcmtmbG93RXhlY3V0aW9uTGlzdBITCgt0b3RhbF9wYWdlcxgBIAEoBRJLCgdlbnRyaWVzGAIgAygLMjouYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXhlY3V0aW9uIuQCCh1MaXN0V29ya2Zsb3dFeGVjdXRpb25zUmVxdWVzdBIRCglwYWdlX3NpemUYASABKAUSEgoKcGFnZV90b2tlbhgCIAEoCRJGCgVwaGFzZRgDIAEoDjI3LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5FeGVjdXRpb25QaGFzZRIMCgR0YWdzGAQgAygJElAKBmZpbHRlchgFIAEoCzJALmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5FeGVjdXRpb25GaWx0ZXJDcml0ZXJpYRJPCgpzb3J0X2ZpZWxkGAYgASgOMjsuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLkV4ZWN1dGlvblNvcnRGaWVsZBIWCg5zb3J0X2FzY2VuZGluZxgHIAEoCBILCgNvcmcYCCABKAkiqAIKJ0xpc3RXb3JrZmxvd0V4ZWN1dGlvbnNCeVdvcmtmbG93UmVxdWVzdBIbCgt3b3JrZmxvd19pZBgBIAEoCUIGukgDyAEBEhEKCXBhZ2Vfc2l6ZRgCIAEoBRISCgpwYWdlX3Rva2VuGAMgASgJElAKBmZpbHRlchgEIAEoCzJALmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5FeGVjdXRpb25GaWx0ZXJDcml0ZXJpYRJPCgpzb3J0X2ZpZWxkGAUgASgOMjsuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLkV4ZWN1dGlvblNvcnRGaWVsZBIWCg5zb3J0X2FzY2VuZGluZxgGIAEoCCLmAgoiV29ya2Zsb3dFeGVjdXRpb25VcGRhdGVTdGF0dXNJbnB1dBIdCgxleGVjdXRpb25faWQYASABKAlCB7pIBHICEAESWAoGc3RhdHVzGAIgASgLMkAuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXhlY3V0aW9uU3RhdHVzQga6SAPIAQESTwoGZXZlbnRzGAogAygLMj8uYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXhlY3V0aW9uRXZlbnQSIAoYdXBkYXRlX3BlbmRpbmdfYXBwcm92YWxzGAsgASgIEiMKG3VwZGF0ZV9wZW5kaW5nX2ZpbGVfcmV2aWV3cxgMIAEoCBIvCidwZW5kaW5nX3VwZGF0ZV9jaGlsZF9hZ2VudF9leGVjdXRpb25faWQYDSABKAkivgEKG1N1Ym1pdFdvcmtmbG93QXBwcm92YWxJbnB1dBIdCgxleGVjdXRpb25faWQYASABKAlCB7pIBHICEAESHQoMdG9vbF9jYWxsX2lkGAIgASgJQge6SARyAhABElAKBmFjdGlvbhgDIAEoDjI0LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5BcHByb3ZhbEFjdGlvbkIKukgHggEEEAEgABIPCgdjb21tZW50GAQgASgJIqEDCh9TdWJtaXRXb3JrZmxvd0ZpbGVEZWNpc2lvbklucHV0Eh0KDGV4ZWN1dGlvbl9pZBgBIAEoCUIHukgEcgIQARIpChhjaGlsZF9hZ2VudF9leGVjdXRpb25faWQYAiABKAlCB7pIBHICEAESHgoNY2hhbmdlX3NldF9pZBgDIAEoCUIHukgEcgIQARJSCgVzY29wZRgEIAEoDjI3LmFpLnN0aWdtZXIuYWdlbnRpYy5hZ2VudGV4ZWN1dGlvbi52MS5GaWxlRGVjaXNpb25TY29wZUIKukgHggEEEAEgABIWCg5maWxlX2NoYW5nZV9pZBgFIAEoCRJUCgZhY3Rpb24YBiABKA4yOC5haS5zdGlnbWVyLmFnZW50aWMuYWdlbnRleGVjdXRpb24udjEuRmlsZURlY2lzaW9uQWN0aW9uQgq6SAeCAQQQASAAEiAKD2V4cGVjdGVkX2RpZ2VzdBgHIAEoCUIHukgEcgIQARIOCgZyZWFzb24YCCABKAkSIAoYYWNrbm93bGVkZ2VfdW5yZXZpZXdhYmxlGAkgASgIIsUBCh9TdWJtaXRXb3JrZmxvd1Rhc2tBcHByb3ZhbElucHV0Eh0KDGV4ZWN1dGlvbl9pZBgBIAEoCUIHukgEcgIQARIaCgl0YXNrX25hbWUYAiABKAlCB7pIBHICEAESGAoHb3V0Y29tZRgDIAEoCUIHukgEcgIQARIqCglmb3JtX2RhdGEYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhAKCHJldmlld2VyGAUgASgJEg8KB2NvbW1lbnQYBiABKAkiQQohU3Vic2NyaWJlV29ya2Zsb3dFeGVjdXRpb25SZXF1ZXN0EhwKDGV4ZWN1dGlvbl9pZBgBIAEoCUIGukgDyAEBIkMKHENhbmNlbFdvcmtmbG93RXhlY3V0aW9uSW5wdXQSEwoCaWQYASABKAlCB7pIBHICEAESDgoGcmVhc29uGAIgASgJIkYKH1Rlcm1pbmF0ZVdvcmtmbG93RXhlY3V0aW9uSW5wdXQSEwoCaWQYASABKAlCB7pIBHICEAESDgoGcmVhc29uGAIgASgJIkQKHVJlY292ZXJXb3JrZmxvd0V4ZWN1dGlvbklucHV0EhMKAmlkGAEgASgJQge6SARyAhABEg4KBnJlYXNvbhgCIAEoCSJCChtQYXVzZVdvcmtmbG93RXhlY3V0aW9uSW5wdXQSEwoCaWQYASABKAlCB7pIBHICEAESDgoGcmVhc29uGAIgASgJIjMKHFJlc3VtZVdvcmtmbG93RXhlY3V0aW9uSW5wdXQSEwoCaWQYASABKAlCB7pIBHICEAEikQEKD1NlbmRTaWduYWxJbnB1dBIdCgxleGVjdXRpb25faWQYASABKAlCB7pIBHICEAESHAoLc2lnbmFsX25hbWUYAiABKAlCB7pIBHICEAESKAoHcGF5bG9hZBgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSFwoPaWRlbXBvdGVuY3lfa2V5GAQgASgJIsIBChJHZXRFdmVudExvZ1JlcXVlc3QSHQoMZXhlY3V0aW9uX2lkGAEgASgJQge6SARyAhABEhYKDmFmdGVyX3NlcXVlbmNlGAIgASgEEk8KC2V2ZW50X3R5cGVzGAMgAygOMjouYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXZlbnRUeXBlEhEKCXRhc2tfbmFtZRgEIAEoCRIRCglwYWdlX3NpemUYBSABKAUikQEKE0dldEV2ZW50TG9nUmVzcG9uc2USTwoGZXZlbnRzGAEgAygLMj8uYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXhlY3V0aW9uRXZlbnQSEAoIaGFzX21vcmUYAiABKAgSFwoPbGF0ZXN0X3NlcXVlbmNlGAMgASgEIqABChZTdWJzY3JpYmVFdmVudHNSZXF1ZXN0Eh0KDGV4ZWN1dGlvbl9pZBgBIAEoCUIHukgEcgIQARIWCg5hZnRlcl9zZXF1ZW5jZRgCIAEoBBJPCgtldmVudF90eXBlcxgDIAMoDjI6LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd0V2ZW50VHlwZSKMAwoXRXhlY3V0aW9uRmlsdGVyQ3JpdGVyaWESRwoGcGhhc2VzGAEgAygOMjcuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLkV4ZWN1dGlvblBoYXNlEjEKDXN0YXJ0ZWRfYWZ0ZXIYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjIKDnN0YXJ0ZWRfYmVmb3JlGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgxtaW5fZHVyYXRpb24YBCABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SLwoMbWF4X2R1cmF0aW9uGAUgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEhcKD21pbl9jb3N0X21pY3JvcxgGIAEoAxIXCg9tYXhfY29zdF9taWNyb3MYByABKAMSGAoQZmFpbGVkX3Rhc2tfbmFtZRgIIAEoCRITCgtoYXNfcmV0cmllcxgJIAEoCCKYAQoaR2V0RXhlY3V0aW9uU3VtbWFyeVJlcXVlc3QSFAoDb3JnGAEgASgJQge6SARyAhABEk8KC3RpbWVfd2luZG93GAIgASgOMjouYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLlN1bW1hcnlUaW1lV2luZG93EhMKC3dvcmtmbG93X2lkGAMgASgJIqMEChBFeGVjdXRpb25TdW1tYXJ5EhQKDGFjdGl2ZV9jb3VudBgBIAEoBRJgCgxwaGFzZV9jb3VudHMYAiADKAsySi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuRXhlY3V0aW9uU3VtbWFyeS5QaGFzZUNvdW50c0VudHJ5ElAKCnRvdGFsX2Nvc3QYAyABKAsyPC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuV29ya2Zsb3dDb3N0U3VtbWFyeRIvCgxhdmdfZHVyYXRpb24YBCABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SWwoVdG9wX2ZhaWxpbmdfd29ya2Zsb3dzGAUgAygLMjwuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RmFpbHVyZVJhbmsSWAoQY29zdF9ieV93b3JrZmxvdxgGIAMoCzI+LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd0Nvc3RCcmVha2Rvd24SEwoLdG90YWxfY291bnQYByABKAUSFAoMc3VjY2Vzc19yYXRlGAggASgBGjIKEFBoYXNlQ291bnRzRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgFOgI4ASJmChNXb3JrZmxvd0Nvc3RTdW1tYXJ5EhYKDnRvdGFsX2Nvc3RfdXNkGAEgASgBEhoKEnRvdGFsX2lucHV0X3Rva2VucxgCIAEoAxIbChN0b3RhbF9vdXRwdXRfdG9rZW5zGAMgASgDIloKE1dvcmtmbG93RmFpbHVyZVJhbmsSFQoNd29ya2Zsb3dfc2x1ZxgBIAEoCRIVCg13b3JrZmxvd19uYW1lGAIgASgJEhUKDWZhaWx1cmVfY291bnQYAyABKAUidgoVV29ya2Zsb3dDb3N0QnJlYWtkb3duEhUKDXdvcmtmbG93X3NsdWcYASABKAkSFQoNd29ya2Zsb3dfbmFtZRgCIAEoCRIWCg50b3RhbF9jb3N0X3VzZBgDIAEoARIXCg9leGVjdXRpb25fY291bnQYBCABKAUiWgobTGlzdFBlbmRpbmdBcHByb3ZhbHNSZXF1ZXN0EhQKA29yZxgBIAEoCUIHukgEcgIQARIRCglwYWdlX3NpemUYAiABKAUSEgoKcGFnZV90b2tlbhgDIAEoCSKFAgoPUGVuZGluZ0FwcHJvdmFsEhQKDGV4ZWN1dGlvbl9pZBgBIAEoCRIVCg13b3JrZmxvd19uYW1lGAIgASgJEhEKCXRhc2tfbmFtZRgDIAEoCRIRCglyZXF1ZXN0ZXIYBCABKAkSMAoMcmVxdWVzdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp0aW1lb3V0X2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCgtmb3JtX3NjaGVtYRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSDwoHdWlfaGludBgIIAEoCSKPAQoUUGVuZGluZ0FwcHJvdmFsc0xpc3QSSQoHZW50cmllcxgBIAMoCzI4LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5QZW5kaW5nQXBwcm92YWwSEwoLdG90YWxfY291bnQYAiABKAUSFwoPbmV4dF9wYWdlX3Rva2VuGAMgASgJKsIBChJFeGVjdXRpb25Tb3J0RmllbGQSJAogRVhFQ1VUSU9OX1NPUlRfRklFTERfVU5TUEVDSUZJRUQQABIjCh9FWEVDVVRJT05fU09SVF9GSUVMRF9TVEFSVEVEX0FUEAESIQodRVhFQ1VUSU9OX1NPUlRfRklFTERfRFVSQVRJT04QAhIdChlFWEVDVVRJT05fU09SVF9GSUVMRF9DT1NUEAMSHwobRVhFQ1VUSU9OX1NPUlRfRklFTERfU1RBVFVTEAQqvwEKEVN1bW1hcnlUaW1lV2luZG93EiMKH1NVTU1BUllfVElNRV9XSU5ET1dfVU5TUEVDSUZJRUQQABIgChxTVU1NQVJZX1RJTUVfV0lORE9XX0xBU1RfMjRIEAESHwobU1VNTUFSWV9USU1FX1dJTkRPV19MQVNUXzdEEAISIAocU1VNTUFSWV9USU1FX1dJTkRPV19MQVNUXzMwRBADEiAKHFNVTU1BUllfVElNRV9XSU5ET1dfQUxMX1RJTUUQBGIGcHJvdG8z",[file_ai_stigmer_agentic_agentexecution_v1_enum,file_ai_stigmer_agentic_workflowexecution_v1_api,file_ai_stigmer_agentic_workflowexecution_v1_enum,file_ai_stigmer_agentic_workflowexecution_v1_event,file_buf_validate_validate,file_google_protobuf_duration,file_google_protobuf_struct,file_google_protobuf_timestamp]);var GetEventLogResponseSchema=messageDesc2(file_ai_stigmer_agentic_workflowexecution_v1_io,17);var PendingApprovalsListSchema=messageDesc2(file_ai_stigmer_agentic_workflowexecution_v1_io,27),ExecutionSortField;(function(ExecutionSortField2){ExecutionSortField2[ExecutionSortField2.UNSPECIFIED=0]="UNSPECIFIED",ExecutionSortField2[ExecutionSortField2.STARTED_AT=1]="STARTED_AT",ExecutionSortField2[ExecutionSortField2.DURATION=2]="DURATION",ExecutionSortField2[ExecutionSortField2.COST=3]="COST",ExecutionSortField2[ExecutionSortField2.STATUS=4]="STATUS"})(ExecutionSortField||(ExecutionSortField={}));var SummaryTimeWindow;(function(SummaryTimeWindow2){SummaryTimeWindow2[SummaryTimeWindow2.UNSPECIFIED=0]="UNSPECIFIED",SummaryTimeWindow2[SummaryTimeWindow2.LAST_24H=1]="LAST_24H",SummaryTimeWindow2[SummaryTimeWindow2.LAST_7D=2]="LAST_7D",SummaryTimeWindow2[SummaryTimeWindow2.LAST_30D=3]="LAST_30D",SummaryTimeWindow2[SummaryTimeWindow2.ALL_TIME=4]="ALL_TIME"})(SummaryTimeWindow||(SummaryTimeWindow={}));var file_ai_stigmer_agentic_workflowexecution_v1_command=fileDesc("CjVhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3dleGVjdXRpb24vdjEvY29tbWFuZC5wcm90bxInYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxMo0VCiJXb3JrZmxvd0V4ZWN1dGlvbkNvbW1hbmRDb250cm9sbGVyEoYBCgZjcmVhdGUSOi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuV29ya2Zsb3dFeGVjdXRpb24aOi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuV29ya2Zsb3dFeGVjdXRpb24iBNC4GAESwgEKBnVwZGF0ZRI6LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd0V4ZWN1dGlvbho6LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd0V4ZWN1dGlvbiJAwrgYPAgCEDQiC21ldGFkYXRhLmlkKil1bmF1dGhvcml6ZWQgdG8gdXBkYXRlIHdvcmtmbG93IGV4ZWN1dGlvbhLhAQoMdXBkYXRlU3RhdHVzEksuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXhlY3V0aW9uVXBkYXRlU3RhdHVzSW5wdXQaOi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuV29ya2Zsb3dFeGVjdXRpb24iSMK4GEQIAhA0IgxleGVjdXRpb25faWQqMHVuYXV0aG9yaXplZCB0byB1cGRhdGUgd29ya2Zsb3cgZXhlY3V0aW9uIHN0YXR1cxLiAQoOc3VibWl0QXBwcm92YWwSRC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuU3VibWl0V29ya2Zsb3dBcHByb3ZhbElucHV0GjouYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXhlY3V0aW9uIk7CuBhKCAIQNCIMZXhlY3V0aW9uX2lkKjZ1bmF1dGhvcml6ZWQgdG8gc3VibWl0IGFwcHJvdmFsIGZvciB3b3JrZmxvdyBleGVjdXRpb24S7wEKEnN1Ym1pdEZpbGVEZWNpc2lvbhJILmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5TdWJtaXRXb3JrZmxvd0ZpbGVEZWNpc2lvbklucHV0GjouYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXhlY3V0aW9uIlPCuBhPCAIQNCIMZXhlY3V0aW9uX2lkKjt1bmF1dGhvcml6ZWQgdG8gc3VibWl0IGZpbGUgZGVjaXNpb24gZm9yIHdvcmtmbG93IGV4ZWN1dGlvbhLpAQoac3VibWl0V29ya2Zsb3dUYXNrQXBwcm92YWwSSC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuU3VibWl0V29ya2Zsb3dUYXNrQXBwcm92YWxJbnB1dBo6LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd0V4ZWN1dGlvbiJFwrgYQQgCEDQiDGV4ZWN1dGlvbl9pZCotdW5hdXRob3JpemVkIHRvIHN1Ym1pdCB3b3JrZmxvdyB0YXNrIGFwcHJvdmFsEq8BCgZkZWxldGUSLS5haS5zdGlnbWVyLmNvbW1vbnMuYXBpcmVzb3VyY2UuQXBpUmVzb3VyY2VJZBo6LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd0V4ZWN1dGlvbiI6wrgYNggCEDQiBXZhbHVlKil1bmF1dGhvcml6ZWQgdG8gZGVsZXRlIHdvcmtmbG93IGV4ZWN1dGlvbhLNAQoKc2VuZFNpZ25hbBI4LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5TZW5kU2lnbmFsSW5wdXQaOi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuV29ya2Zsb3dFeGVjdXRpb24iScK4GEUIAhA0IgxleGVjdXRpb25faWQqMXVuYXV0aG9yaXplZCB0byBzZW5kIHNpZ25hbCB0byB3b3JrZmxvdyBleGVjdXRpb24SxAEKBmNhbmNlbBJFLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5DYW5jZWxXb3JrZmxvd0V4ZWN1dGlvbklucHV0GjouYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXhlY3V0aW9uIjfCuBgzCAIQNCICaWQqKXVuYXV0aG9yaXplZCB0byBjYW5jZWwgd29ya2Zsb3cgZXhlY3V0aW9uEs0BCgl0ZXJtaW5hdGUSSC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuVGVybWluYXRlV29ya2Zsb3dFeGVjdXRpb25JbnB1dBo6LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd0V4ZWN1dGlvbiI6wrgYNggCEDQiAmlkKix1bmF1dGhvcml6ZWQgdG8gdGVybWluYXRlIHdvcmtmbG93IGV4ZWN1dGlvbhLHAQoHcmVjb3ZlchJGLmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5SZWNvdmVyV29ya2Zsb3dFeGVjdXRpb25JbnB1dBo6LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd0V4ZWN1dGlvbiI4wrgYNAgCEDQiAmlkKip1bmF1dGhvcml6ZWQgdG8gcmVjb3ZlciB3b3JrZmxvdyBleGVjdXRpb24SwQEKBXBhdXNlEkQuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLlBhdXNlV29ya2Zsb3dFeGVjdXRpb25JbnB1dBo6LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd0V4ZWN1dGlvbiI2wrgYMggCEDQiAmlkKih1bmF1dGhvcml6ZWQgdG8gcGF1c2Ugd29ya2Zsb3cgZXhlY3V0aW9uEsQBCgZyZXN1bWUSRS5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuUmVzdW1lV29ya2Zsb3dFeGVjdXRpb25JbnB1dBo6LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd0V4ZWN1dGlvbiI3wrgYMwgCEDQiAmlkKil1bmF1dGhvcml6ZWQgdG8gcmVzdW1lIHdvcmtmbG93IGV4ZWN1dGlvbhoEoP8rNGIGcHJvdG8z",[file_ai_stigmer_agentic_workflowexecution_v1_api,file_ai_stigmer_agentic_workflowexecution_v1_io,file_ai_stigmer_commons_apiresource_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),WorkflowExecutionCommandController=serviceDesc(file_ai_stigmer_agentic_workflowexecution_v1_command,0);var file_ai_stigmer_agentic_workflowexecution_v1_query=fileDesc("CjNhaS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3dleGVjdXRpb24vdjEvcXVlcnkucHJvdG8SJ2FpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MTKDDAogV29ya2Zsb3dFeGVjdXRpb25RdWVyeUNvbnRyb2xsZXISuAEKA2dldBI8LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd0V4ZWN1dGlvbklkGjouYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXhlY3V0aW9uIjfCuBgzCAEQNCIFdmFsdWUqJnVuYXV0aG9yaXplZCB0byBnZXQgd29ya2Zsb3cgZXhlY3V0aW9uEpQBCgRsaXN0EkYuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLkxpc3RXb3JrZmxvd0V4ZWN1dGlvbnNSZXF1ZXN0Gj4uYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXhlY3V0aW9uTGlzdCIE0LgYARKoAQoObGlzdEJ5V29ya2Zsb3cSUC5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3dleGVjdXRpb24udjEuTGlzdFdvcmtmbG93RXhlY3V0aW9uc0J5V29ya2Zsb3dSZXF1ZXN0Gj4uYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXhlY3V0aW9uTGlzdCIE0LgYARLcAQoJc3Vic2NyaWJlEkouYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLlN1YnNjcmliZVdvcmtmbG93RXhlY3V0aW9uUmVxdWVzdBo6LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5Xb3JrZmxvd0V4ZWN1dGlvbiJFwrgYQQgBEDQiDGV4ZWN1dGlvbl9pZCotdW5hdXRob3JpemVkIHRvIGdldCB3b3JrZmxvdyBleGVjdXRpb24gc3RyZWFtMAES0gEKC2dldEV2ZW50TG9nEjsuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLkdldEV2ZW50TG9nUmVxdWVzdBo8LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5HZXRFdmVudExvZ1Jlc3BvbnNlIkjCuBhECAEQNCIMZXhlY3V0aW9uX2lkKjB1bmF1dGhvcml6ZWQgdG8gZ2V0IHdvcmtmbG93IGV4ZWN1dGlvbiBldmVudCBsb2cS5QEKD3N1YnNjcmliZUV2ZW50cxI/LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5TdWJzY3JpYmVFdmVudHNSZXF1ZXN0Gj8uYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLldvcmtmbG93RXhlY3V0aW9uRXZlbnQiTsK4GEoIARA0IgxleGVjdXRpb25faWQqNnVuYXV0aG9yaXplZCB0byBzdWJzY3JpYmUgdG8gd29ya2Zsb3cgZXhlY3V0aW9uIGV2ZW50czABEpsBChNnZXRFeGVjdXRpb25TdW1tYXJ5EkMuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLkdldEV4ZWN1dGlvblN1bW1hcnlSZXF1ZXN0GjkuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLkV4ZWN1dGlvblN1bW1hcnkiBNC4GAESoQEKFGxpc3RQZW5kaW5nQXBwcm92YWxzEkQuYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93ZXhlY3V0aW9uLnYxLkxpc3RQZW5kaW5nQXBwcm92YWxzUmVxdWVzdBo9LmFpLnN0aWdtZXIuYWdlbnRpYy53b3JrZmxvd2V4ZWN1dGlvbi52MS5QZW5kaW5nQXBwcm92YWxzTGlzdCIE0LgYARoEoP8rNGIGcHJvdG8z",[file_ai_stigmer_agentic_workflowexecution_v1_api,file_ai_stigmer_agentic_workflowexecution_v1_event,file_ai_stigmer_agentic_workflowexecution_v1_io,file_ai_stigmer_commons_apiresource_rpc_service_options,file_ai_stigmer_commons_rpc_method_options]),WorkflowExecutionQueryController=serviceDesc(file_ai_stigmer_agentic_workflowexecution_v1_query,0);var file_google_rpc_error_details=fileDesc("Ch5nb29nbGUvcnBjL2Vycm9yX2RldGFpbHMucHJvdG8SCmdvb2dsZS5ycGMikwEKCUVycm9ySW5mbxIOCgZyZWFzb24YASABKAkSDgoGZG9tYWluGAIgASgJEjUKCG1ldGFkYXRhGAMgAygLMiMuZ29vZ2xlLnJwYy5FcnJvckluZm8uTWV0YWRhdGFFbnRyeRovCg1NZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiOwoJUmV0cnlJbmZvEi4KC3JldHJ5X2RlbGF5GAEgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uIjIKCURlYnVnSW5mbxIVCg1zdGFja19lbnRyaWVzGAEgAygJEg4KBmRldGFpbBgCIAEoCSKPAwoMUXVvdGFGYWlsdXJlEjYKCnZpb2xhdGlvbnMYASADKAsyIi5nb29nbGUucnBjLlF1b3RhRmFpbHVyZS5WaW9sYXRpb24axgIKCVZpb2xhdGlvbhIPCgdzdWJqZWN0GAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhMKC2FwaV9zZXJ2aWNlGAMgASgJEhQKDHF1b3RhX21ldHJpYxgEIAEoCRIQCghxdW90YV9pZBgFIAEoCRJRChBxdW90YV9kaW1lbnNpb25zGAYgAygLMjcuZ29vZ2xlLnJwYy5RdW90YUZhaWx1cmUuVmlvbGF0aW9uLlF1b3RhRGltZW5zaW9uc0VudHJ5EhMKC3F1b3RhX3ZhbHVlGAcgASgDEh8KEmZ1dHVyZV9xdW90YV92YWx1ZRgIIAEoA0gAiAEBGjYKFFF1b3RhRGltZW5zaW9uc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCFQoTX2Z1dHVyZV9xdW90YV92YWx1ZSKVAQoTUHJlY29uZGl0aW9uRmFpbHVyZRI9Cgp2aW9sYXRpb25zGAEgAygLMikuZ29vZ2xlLnJwYy5QcmVjb25kaXRpb25GYWlsdXJlLlZpb2xhdGlvbho/CglWaW9sYXRpb24SDAoEdHlwZRgBIAEoCRIPCgdzdWJqZWN0GAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJIswBCgpCYWRSZXF1ZXN0Ej8KEGZpZWxkX3Zpb2xhdGlvbnMYASADKAsyJS5nb29nbGUucnBjLkJhZFJlcXVlc3QuRmllbGRWaW9sYXRpb24afQoORmllbGRWaW9sYXRpb24SDQoFZmllbGQYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSDgoGcmVhc29uGAMgASgJEjcKEWxvY2FsaXplZF9tZXNzYWdlGAQgASgLMhwuZ29vZ2xlLnJwYy5Mb2NhbGl6ZWRNZXNzYWdlIjcKC1JlcXVlc3RJbmZvEhIKCnJlcXVlc3RfaWQYASABKAkSFAoMc2VydmluZ19kYXRhGAIgASgJImAKDFJlc291cmNlSW5mbxIVCg1yZXNvdXJjZV90eXBlGAEgASgJEhUKDXJlc291cmNlX25hbWUYAiABKAkSDQoFb3duZXIYAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkiVgoESGVscBIkCgVsaW5rcxgBIAMoCzIVLmdvb2dsZS5ycGMuSGVscC5MaW5rGigKBExpbmsSEwoLZGVzY3JpcHRpb24YASABKAkSCwoDdXJsGAIgASgJIjMKEExvY2FsaXplZE1lc3NhZ2USDgoGbG9jYWxlGAEgASgJEg8KB21lc3NhZ2UYAiABKAlCbAoOY29tLmdvb2dsZS5ycGNCEUVycm9yRGV0YWlsc1Byb3RvUAFaP2dvb2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL2dvb2dsZWFwaXMvcnBjL2VycmRldGFpbHM7ZXJyZGV0YWlsc6ICA1JQQ2IGcHJvdG8z",[file_google_protobuf_duration]),ErrorInfoSchema=messageDesc2(file_google_rpc_error_details,0);var CONNECT_CODE_TO_CATEGORY={[Code.Unauthenticated]:"auth",[Code.PermissionDenied]:"permission",[Code.NotFound]:"not-found",[Code.InvalidArgument]:"validation",[Code.FailedPrecondition]:"validation",[Code.OutOfRange]:"validation",[Code.AlreadyExists]:"validation",[Code.Aborted]:"validation",[Code.Internal]:"server",[Code.Unknown]:"server",[Code.DataLoss]:"server",[Code.Unimplemented]:"server",[Code.Unavailable]:"unavailable",[Code.DeadlineExceeded]:"unavailable",[Code.ResourceExhausted]:"unavailable",[Code.Canceled]:"cancelled"};var rpcMetadataStore=new WeakMap;function annotateRpcError(error3,metadata){rpcMetadataStore.set(error3,metadata)}function createAuthInterceptor(getAccessToken){return next=>async request3=>{let token=await getAccessToken();return token&&request3.header.set("Authorization",`Bearer ${token}`),next(request3)}}var rpcMetadataInterceptor=next=>async request3=>{try{return await next(request3)}catch(error3){if(error3!==null&&typeof error3=="object"){let segments=request3.url.split("/"),method=segments.at(-1)??"",service=segments.at(-2)??"";annotateRpcError(error3,{method:method.charAt(0).toLowerCase()+method.slice(1),path:`/${service}/${method}`})}throw error3}},errorStripInterceptor=next=>async request3=>{try{return await next(request3)}catch(error3){throw error3 instanceof Error&&error3.message&&(error3.message=error3.message.replace(/^\[.*?]\s*/,"")),error3}};function createNodeTransport(config2){let tokenProvider=config2.apiKey?()=>config2.apiKey:config2.getAccessToken??(()=>null),interceptors=[createAuthInterceptor(tokenProvider),rpcMetadataInterceptor,errorStripInterceptor];return config2.protocol==="grpc"?createGrpcTransport({baseUrl:config2.baseUrl,interceptors}):createGrpcWebTransport({baseUrl:config2.baseUrl,httpVersion:"2",interceptors})}function normalizeEndpoint(raw){let endpoint=raw.trim();if(endpoint==="")throw new Error("normalizeEndpoint: endpoint must not be empty");if(endpoint=endpoint.replace(/^https?:\/\//i,"").replace(/\/+$/,""),endpoint==="")throw new Error("normalizeEndpoint: endpoint has no host");let{host,port}=splitHostPort(endpoint);return port!==""?`${port==="443"?"https":"http"}://${endpoint}`:isLoopbackHost(host)?`http://${endpoint}`:`https://${endpoint}:443`}function splitHostPort(authority){if(authority.startsWith("[")){let close=authority.indexOf("]");if(close===-1)return{host:authority,port:""};let host=authority.slice(0,close+1),rest=authority.slice(close+1);return rest.startsWith(":")?{host,port:rest.slice(1)}:{host,port:""}}let lastColon=authority.lastIndexOf(":");return lastColon===-1||authority.indexOf(":")!==lastColon?{host:authority,port:""}:{host:authority.slice(0,lastColon),port:authority.slice(lastColon+1)}}function isLoopbackHost(host){return host==="localhost"||host==="127.0.0.1"||host==="::1"||host==="[::1]"}var DEFAULT_RPC_TIMEOUT_MS=3e4;function resolveToken(extra,fallback){let token=extra?.authInfo?.token;return token!==void 0&&token!==""?token:fallback}function transportForToken(serverAddress,token){return createNodeTransport({baseUrl:normalizeEndpoint(serverAddress),apiKey:token===""?void 0:token,protocol:"grpc"})}async function withTransport(serverAddress,token,fn){return fn(transportForToken(serverAddress,token),{timeoutMs:DEFAULT_RPC_TIMEOUT_MS})}async function withClient(service,serverAddress,token,fn){return withTransport(serverAddress,token,(transport,callOptions)=>fn(createClient(service,transport),callOptions))}var READINESS_RPC_TIMEOUT_MS=4e3,READINESS_CACHE_TTL_MS=5e3;async function checkBackendHealth(serverAddress){let client=createClient(Health,transportForToken(serverAddress,""));try{let res=await client.check({},{timeoutMs:READINESS_RPC_TIMEOUT_MS});return res.status===HealthCheckResponse_ServingStatus.SERVING?{ready:!0}:{ready:!1,reason:`backend health status: ${HealthCheckResponse_ServingStatus[res.status]??res.status}`}}catch(err){return{ready:!1,reason:`backend health check failed: ${err instanceof Error?err.message:String(err)}`}}}function createReadinessCheck(serverAddress,check2=checkBackendHealth){let cached2,inFlight;return async()=>cached2!==void 0&&Date.now()-cached2.at<READINESS_CACHE_TTL_MS?cached2.result:(inFlight===void 0&&(inFlight=check2(serverAddress).then(result=>(cached2={result,at:Date.now()},result)).finally(()=>{inFlight=void 0})),inFlight)}function textResult(text){return{content:[{type:"text",text}]}}function errorResult(err){return{content:[{type:"text",text:err instanceof Error?err.message:String(err)}],isError:!0}}async function textOrError(produce){try{return textResult(await produce())}catch(err){return errorResult(err)}}function rpcError(err,resourceDescription){let ce=ConnectError.from(err);return log.warn("rpc call failed",{resource:resourceDescription,code:Code[ce.code],grpc_message:ce.rawMessage}),new Error(classifyCode(ce,resourceDescription))}function classifyCode(ce,resourceDescription){switch(ce.code){case Code.NotFound:return`${resourceDescription} not found. Verify the org and slug are correct.`;case Code.PermissionDenied:return`Permission denied for ${resourceDescription}. Check your API key permissions.`;case Code.Unauthenticated:return"Authentication failed. Check your API key.";case Code.Unavailable:return"Stigmer server is unavailable. Ensure it is running and reachable.";case Code.DeadlineExceeded:return"Request timed out contacting stigmer-server.";case Code.InvalidArgument:return ce.rawMessage;default:return`unexpected error: ${ce.rawMessage}`}}function toProtoJson(schema,message){return JSON.stringify(toJson(schema,message,{useProtoFieldName:!0}),null,2)}var DEFAULT_MESSAGE_LIMIT=5,COMPACT_PRUNED_STATUS_FIELDS=["approval_events","callback_token","sub_agent_executions"];async function fetchAgentExecution(serverAddress,token,executionId,view,messageLimit){if(executionId==="")throw new Error("execution_id is required");return withClient(AgentExecutionQueryController,serverAddress,token,async(client,callOptions)=>{let execution;try{execution=await client.get({value:executionId},callOptions)}catch(err){throw rpcError(err,`agent execution "${executionId}"`)}return view==="full"?toProtoJson(AgentExecutionSchema,execution):compactExecutionJson(execution,messageLimit)})}function compactExecution(execution,messageLimit){let data=JSON.parse(toProtoJson(AgentExecutionSchema,execution)),totalMessages=0,status=data.status;if(status!==void 0){let messages=Array.isArray(status.messages)?status.messages:[];totalMessages=messages.length,messages.length>messageLimit&&(status.messages=messages.slice(-messageLimit));for(let field of COMPACT_PRUNED_STATUS_FIELDS)delete status[field]}return{totalMessages,data}}function compactExecutionJson(execution,messageLimit){let{totalMessages,data}=compactExecution(execution,messageLimit);return JSON.stringify({view:"compact",total_messages:totalMessages,execution:data},null,2)}var APPROVAL_ACTIONS={approve:ApprovalAction.APPROVE,skip:ApprovalAction.SKIP,reject:ApprovalAction.REJECT};async function submitAgentApproval(serverAddress,token,args){let action=APPROVAL_ACTIONS[args.action];if(action===void 0)throw new Error(`unknown action "${args.action}"; valid actions: approve, skip, reject`);return withClient(AgentExecutionCommandController,serverAddress,token,async(client,callOptions)=>{try{let execution=await client.submitApproval({agentExecutionId:args.executionId,toolCallId:args.toolCallId,action,comment:args.comment??""},callOptions);return compactExecutionJson(execution,DEFAULT_MESSAGE_LIMIT)}catch(err){throw rpcError(err,`approval for agent execution "${args.executionId}"`)}})}var API_VERSION="agentic.stigmer.ai/v1";async function runAgent(serverAddress,token,args){let desc=`agent "${args.agent}" in org "${args.org}"`;return withTransport(serverAddress,token,async(transport,callOptions)=>{let query=createClient(AgentQueryController,transport),agentId;try{agentId=(await query.getByReference({org:args.org,kind:ApiResourceKind.agent,slug:args.agent},callOptions)).metadata?.id??""}catch(err){throw rpcError(err,desc)}let execution=create(AgentExecutionSchema,{apiVersion:API_VERSION,kind:"AgentExecution",metadata:create(ApiResourceMetadataSchema,{name:executionName(),org:args.org}),spec:create(AgentExecutionSpecSchema,{message:args.message===""?"execute":args.message,runtimeEnv:toExecutionValues(args.runtimeEnv),sessionId:args.sessionId??"",agentId})}),command=createClient(AgentExecutionCommandController,transport);try{let created=await command.create(execution,callOptions);return toProtoJson(AgentExecutionSchema,created)}catch(err){throw rpcError(err,`execution of ${desc}`)}})}function toExecutionValues(env){let out={};for(let[key,value]of Object.entries(env??{}))out[key]=create(ExecutionValueSchema,{value,isSecret:!1});return out}function executionName(){return`execution-${Date.now()*1e3}`}function registerAgentExecutionTools(server,target){return server.registerTool("run_agent",{description:"Start an agent execution (asynchronous). Returns immediately with the created execution (aex_* ID) while the run continues in the background \u2014 poll get_agent_execution to observe progress, pending approvals, and the final result. Omit session_id to start a fresh conversation; pass one to send a follow-up message into an existing session.",inputSchema:{org:external_exports.string().describe("Organization slug that owns the agent (e.g. stigmer)."),agent:external_exports.string().describe("Agent slug \u2014 the unique identifier within the org (e.g. code-reviewer)."),message:external_exports.string().describe("The instruction or message for the agent to act on."),session_id:external_exports.string().optional().describe("Existing session ID to continue a conversation (from a previous execution's spec.session_id). Omit to start a new session."),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 attached to the agent, never through this tool.")}},(args,extra)=>textOrError(()=>runAgent(target.serverAddress,resolveToken(extra,target.apiKey),{org:args.org,agent:args.agent,message:args.message,sessionId:args.session_id,runtimeEnv:args.runtime_env}))),server.registerTool("get_agent_execution",{description:"Get an agent execution's status: phase, messages, pending approvals, errors, timing. Agent executions have no event log \u2014 poll this tool to track a run started with run_agent (terminal phases: completed, failed, cancelled, terminated). The default compact view returns the last few messages and omits bulky bookkeeping fields (resolved context, approval ledger, sub-agent transcripts); total_messages tells you when the tail is a window. Use view=full for the complete record.",inputSchema:{execution_id:external_exports.string().describe("Agent execution ID (aex_* format)."),view:external_exports.enum(["compact","full"]).optional().describe("Response shape: compact (default, bounded message tail) or full protojson."),message_limit:external_exports.number().int().min(1).optional().describe(`Compact view only: number of trailing messages to return (default ${DEFAULT_MESSAGE_LIMIT}).`)}},(args,extra)=>textOrError(()=>fetchAgentExecution(target.serverAddress,resolveToken(extra,target.apiKey),args.execution_id,args.view??"compact",args.message_limit??DEFAULT_MESSAGE_LIMIT))),server.registerTool("submit_agent_execution_approval",{description:"Approve, skip, or reject a tool call an agent execution is waiting on (phase waiting-for-approval). Find pending requests in get_agent_execution's status.pending_approvals \u2014 tool_call_id must match exactly. reject denies the single tool call and feeds your comment back to the agent, which then continues; to stop the whole run use cancel_execution instead.",inputSchema:{execution_id:external_exports.string().describe("Agent execution ID (aex_* format)."),tool_call_id:external_exports.string().describe("Tool call awaiting the decision (status.pending_approvals[].tool_call_id)."),action:external_exports.enum(["approve","skip","reject"]).describe("approve: execute the tool. skip: don't execute, agent proceeds without it. reject: don't execute, agent is told why (see comment) and adapts."),comment:external_exports.string().optional().describe("Reason for the decision; on reject it is fed back to the agent.")}},(args,extra)=>textOrError(()=>submitAgentApproval(target.serverAddress,resolveToken(extra,target.apiKey),{executionId:args.execution_id,toolCallId:args.tool_call_id,action:args.action,comment:args.comment}))),["run_agent","get_agent_execution","submit_agent_execution_approval"]}function parseResourceURI(uri){let segments=pathSegments(uri);if(segments.length!==2)throw new Error(`expected URI path with 2 segments (org/slug), got ${segments.length} in "${uri}"`);let org=segments[0]??"",slug=segments[1]??"";if(org===""||slug==="")throw new Error(`org and slug must be non-empty in "${uri}"`);return{org,slug}}function parseVersionedResourceURI(uri){let segments=pathSegments(uri),org="",slug="",version2="";switch(segments.length){case 2:org=segments[0]??"",slug=segments[1]??"";break;case 3:if(org=segments[0]??"",slug=segments[1]??"",version2=segments[2]??"",version2==="")throw new Error(`version segment must be non-empty in "${uri}"`);break;default:throw new Error(`expected URI path with 2 or 3 segments (org/slug[/version]), got ${segments.length} in "${uri}"`)}if(org===""||slug==="")throw new Error(`org and slug must be non-empty in "${uri}"`);return{org,slug,version:version2}}var kindToAuthority={agent:"agents",environment:"environments",mcp_server:"mcp-servers",skill:"skills",workflow:"workflows"};function buildResourceURI(kind,org,slug){let authority=kindToAuthority[kind];return authority===void 0||org===""||slug===""?"":`stigmer://${authority}/${org}/${slug}`}function pathSegments(uri){let parsed;try{parsed=new URL(uri)}catch(err){throw new Error(`malformed resource URI "${uri}": ${err instanceof Error?err.message:err}`)}if(parsed.protocol!=="stigmer:")throw new Error(`unexpected URI scheme "${parsed.protocol.replace(/:$/,"")}", expected "stigmer"`);let trimmed=parsed.pathname.replace(/^\/+/,"").replace(/\/+$/,"");return trimmed===""?[]:trimmed.split("/")}function registerResource(server,target,opts){server.registerResource(opts.name,new ResourceTemplate(opts.template,{list:void 0}),{title:opts.title,description:opts.description,mimeType:"application/json"},async(uri,_vars,extra)=>{let{org,slug}=parseResourceURI(uri.href),text=await opts.fetch(target.serverAddress,resolveToken(extra,target.apiKey),org,slug);return jsonResource(uri.href,text)})}function registerVersionedResource(server,target,opts){server.registerResource(opts.name,new ResourceTemplate(opts.template,{list:void 0}),{title:opts.title,description:opts.description,mimeType:"application/json"},async(uri,_vars,extra)=>{let{org,slug,version:version2}=parseVersionedResourceURI(uri.href),text=await opts.fetch(target.serverAddress,resolveToken(extra,target.apiKey),org,slug,version2);return jsonResource(uri.href,text)})}function jsonResource(uri,text){return{contents:[{uri,mimeType:"application/json",text}]}}async function fetchAgent(serverAddress,token,org,slug){return withClient(AgentQueryController,serverAddress,token,async(client,callOptions)=>{try{let agent=await client.getByReference({org,kind:ApiResourceKind.agent,slug},callOptions);return toProtoJson(AgentSchema,agent)}catch(err){throw rpcError(err,`agent "${slug}" in org "${org}"`)}})}function registerAgentResources(server,target){return registerResource(server,target,{name:"stigmer_agent",title:"Stigmer Agent",description:"Full definition of a Stigmer agent, identified by organization and slug.",template:"stigmer://agents/{org}/{slug}",fetch:fetchAgent}),["stigmer_agent"]}function generateSlug(name){if(!name)return"";let out="",lastHyphen=!1;for(let ch of name.toLowerCase())ch>="a"&&ch<="z"||ch>="0"&&ch<="9"?(out+=ch,lastHyphen=!1):lastHyphen||(out+="-",lastHyphen=!0);return out.replace(/^-+/,"").replace(/-+$/,"")}function visibilityFromString(s){return s&&s.toUpperCase()==="PUBLIC"?ApiResourceVisibility.visibility_public:s&&s.toUpperCase()==="PRIVATE"?ApiResourceVisibility.visibility_private:ApiResourceVisibility.api_resource_visibility_unspecified}function enumFromString(enumObj,value){if(value===void 0)return 0;let v=enumObj[value];return typeof v=="number"?v:0}function toTimestamp(value){return timestampFromDate(new Date(value))}var AgentInputShape={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: PRIVATE or PUBLIC. Applied at create; on updates a changed value is landed through the guarded UpdateVisibility RPC. Omit to leave unchanged."),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."),icon_url:external_exports.string().optional().describe("Icon URL for marketplace and UI display. Must be a publicly accessible URL to an image (SVG, PNG, or JPEG)."),instructions:external_exports.string().optional().describe("System prompt defining the agent's behavior and personality."),mcp_server_usages:external_exports.array(external_exports.lazy(()=>McpServerUsageInputSchema)).optional().describe("MCP servers this agent can use. Each entry must reference a unique McpServer resource by slug."),skill_refs:external_exports.array(external_exports.lazy(()=>SkillRefInputSchema)).optional().describe("Skill resources providing additional knowledge to the agent."),sub_agents:external_exports.array(external_exports.lazy(()=>SubAgentInputSchema)).optional().describe("Sub-agents that can be delegated to. Sub-agents can access a subset of the parent's MCP servers and tools."),env:external_exports.record(external_exports.lazy(()=>EnvVarDeclarationInputSchema)).optional().describe("Environment variable declarations for this agent. Keys are variable names; values describe their metadata and optionality.")},AgentInputSchema=external_exports.object(AgentInputShape),McpServerRefInputSchema=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). Use explicit org for cross-org references (e.g., marketplace resources)."),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.")}),ToolApprovalOverrideInputSchema=external_exports.object({tool_name:external_exports.string().optional().describe("Name of the tool to override."),requires_approval:external_exports.boolean().optional().describe("Whether this tool requires approval for this agent."),message:external_exports.string().optional().describe("Custom approval message shown to the reviewer. Supports {{args.field}} placeholders. When empty, falls back to the McpServer default or auto-generates 'Execute tool: {tool_name}'.")}),McpServerUsageInputSchema=external_exports.object({mcp_server_ref:external_exports.lazy(()=>McpServerRefInputSchema).describe("Reference to the McpServer resource."),enabled_tools:external_exports.array(external_exports.string()).optional().describe("Tools to enable from this MCP server for this agent. Empty list uses the McpServer's default_enabled_tools. Sub-agents can only restrict this set further, not expand it."),tool_approval_overrides:external_exports.array(external_exports.lazy(()=>ToolApprovalOverrideInputSchema)).optional().describe("Override approval requirements for specific tools. Takes precedence over McpServerSpec.pinned_tool_approvals and McpServerStatus.tool_approvals. Scoped to THIS usage's server: an override applies only to tools of the McpServer referenced by mcp_server_ref \u2014 a same-named tool on another server is unaffected.")}),SkillRefInputSchema=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). Use explicit org for cross-org references (e.g., marketplace resources)."),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."),version:external_exports.string().optional().describe("Version of the resource (optional, only applicable to versioned resources like Skills). Supports three formats: 1. Empty/unset \u2192 Resolves to 'latest' (most recent version) 2. Tag name \u2192 Resolves to version with this tag (e.g., 'stable', 'v1.0') 3. Exact hash \u2192 Immutable reference to specific version (e.g., 'abc123...') Default behavior: Empty means 'latest' (current version). This field is ignored for non-versioned resources. Examples: - version: '' \u2192 Use latest version - version: 'latest' \u2192 Use latest version (explicit) - version: 'stable' \u2192 Use version tagged as 'stable' - version: 'v1.0' \u2192 Use version tagged as 'v1.0' - version: 'abc123...' \u2192 Use exact version with this hash (immutable)")}),McpAccessInputSchema=external_exports.object({mcp_server:external_exports.string().describe("Slug of the McpServer to grant access to. Must match a mcp_server_ref.slug from the parent's mcp_server_usages."),enabled_tools:external_exports.array(external_exports.string()).optional().describe("Tools this sub-agent can use from this MCP server. Must be a subset of the parent's enabled_tools for this server. Empty list grants access to all tools the parent has enabled.")}),SubAgentInputSchema=external_exports.object({name:external_exports.string().describe("Unique name of the sub-agent within the parent agent."),description:external_exports.string().optional().describe("What this sub-agent specializes in."),instructions:external_exports.string().optional().describe("System prompt for this sub-agent."),mcp_access:external_exports.array(external_exports.lazy(()=>McpAccessInputSchema)).optional().describe("MCP server access grants for this sub-agent. Each entry references a parent McpServerUsage by slug and optionally restricts which tools are available."),skill_refs:external_exports.array(external_exports.lazy(()=>SkillRefInputSchema)).optional().describe("Skill resources for this sub-agent."),model_override:external_exports.string().optional().describe("Model override for this sub-agent. When set, uses this model instead of the parent's model. When empty, inherits the parent agent's model.")}),EnvVarDeclarationInputSchema=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.")});function agentInputToProto(input){let slug=input.slug&&input.slug.length>0?input.slug:generateSlug(input.name),spec=create(AgentSpecSchema);if(input.description!==void 0&&(spec.description=input.description),input.icon_url!==void 0&&(spec.iconUrl=input.icon_url),input.instructions!==void 0&&(spec.instructions=input.instructions),input.mcp_server_usages!==void 0&&(spec.mcpServerUsages=input.mcp_server_usages.map(mcpServerUsageInputToProto)),input.skill_refs!==void 0&&(spec.skillRefs=input.skill_refs.map(skillRefInputToProto)),input.sub_agents!==void 0&&(spec.subAgents=input.sub_agents.map(subAgentInputToProto)),input.env!==void 0)for(let[k,v]of Object.entries(input.env))spec.env[k]=envVarDeclarationInputToProto(v);return Object.assign(create(AgentSchema),{apiVersion:"agentic.stigmer.ai/v1",kind:"Agent",metadata:Object.assign(create(ApiResourceMetadataSchema),{name:input.name,slug,org:input.org,...input.visibility!==void 0&&{visibility:visibilityFromString(input.visibility)},...input.labels!==void 0&&{labels:input.labels},...input.tags!==void 0&&{tags:input.tags}}),spec})}function mcpServerRefInputToProto(input){return create(ApiResourceReferenceSchema,{org:input.org,slug:input.slug,kind:ApiResourceKind.mcp_server})}function toolApprovalOverrideInputToProto(input){let result=create(ToolApprovalOverrideSchema);return input.tool_name!==void 0&&(result.toolName=input.tool_name),input.requires_approval!==void 0&&(result.requiresApproval=input.requires_approval),input.message!==void 0&&(result.message=input.message),result}function mcpServerUsageInputToProto(input){let result=create(McpServerUsageSchema);return input.mcp_server_ref!==void 0&&(result.mcpServerRef=mcpServerRefInputToProto(input.mcp_server_ref)),input.enabled_tools!==void 0&&(result.enabledTools=input.enabled_tools),input.tool_approval_overrides!==void 0&&(result.toolApprovalOverrides=input.tool_approval_overrides.map(toolApprovalOverrideInputToProto)),result}function skillRefInputToProto(input){return create(ApiResourceReferenceSchema,{org:input.org,slug:input.slug,kind:ApiResourceKind.skill,version:input.version})}function mcpAccessInputToProto(input){let result=create(McpAccessSchema);return input.mcp_server!==void 0&&(result.mcpServer=input.mcp_server),input.enabled_tools!==void 0&&(result.enabledTools=input.enabled_tools),result}function subAgentInputToProto(input){let result=create(SubAgentSchema);return input.name!==void 0&&(result.name=input.name),input.description!==void 0&&(result.description=input.description),input.instructions!==void 0&&(result.instructions=input.instructions),input.mcp_access!==void 0&&(result.mcpAccess=input.mcp_access.map(mcpAccessInputToProto)),input.skill_refs!==void 0&&(result.skillRefs=input.skill_refs.map(skillRefInputToProto)),input.model_override!==void 0&&(result.modelOverride=input.model_override),result}function envVarDeclarationInputToProto(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}async function applyDeclaredVisibility(client,callOptions,applied,declared){if(declared===ApiResourceVisibility.api_resource_visibility_unspecified)return applied;let resourceId=applied.metadata?.id??"";return resourceId===""||applied.metadata?.visibility===declared?applied:client.updateVisibility(create(UpdateVisibilityInputSchema,{resourceId,visibility:declared}),callOptions)}async function applyAgent(serverAddress,token,input){let agent=agentInputToProto(input),desc=`agent "${agent.metadata?.slug??""}" in org "${agent.metadata?.org??""}"`;return withClient(AgentCommandController,serverAddress,token,async(client,callOptions)=>{try{let applied=await client.apply(agent,callOptions),result=await applyDeclaredVisibility(client,callOptions,applied,agent.metadata?.visibility??ApiResourceVisibility.api_resource_visibility_unspecified);return toProtoJson(AgentSchema,result)}catch(err){throw rpcError(err,desc)}})}async function deleteAgent(serverAddress,token,org,slug){let desc=`agent "${slug}" in org "${org}"`;return withTransport(serverAddress,token,async(transport,callOptions)=>{let query=createClient(AgentQueryController,transport),id;try{id=(await query.getByReference({org,kind:ApiResourceKind.agent,slug},callOptions)).metadata?.id??""}catch(err){throw rpcError(err,desc)}let command=createClient(AgentCommandController,transport);try{let deleted=await command.delete({value:id},callOptions);return toProtoJson(AgentSchema,deleted)}catch(err){throw rpcError(err,desc)}})}function registerAgentTools(server,target){return server.registerTool("get_agent",{description:"Get full details of a Stigmer agent by its org and slug (e.g. org=stigmer slug=code-reviewer).",inputSchema:{org:external_exports.string().describe("Organization slug that owns the agent (e.g. stigmer)."),slug:external_exports.string().describe("Agent slug \u2014 the unique identifier within the org (e.g. code-reviewer).")}},(args,extra)=>textOrError(()=>fetchAgent(target.serverAddress,resolveToken(extra,target.apiKey),args.org,args.slug))),server.registerTool("apply_agent",{description:"Create or update a Stigmer agent (idempotent). Provide identity fields (name, org) and agent configuration (instructions, skills, MCP servers, etc.).",inputSchema:AgentInputShape},(args,extra)=>textOrError(()=>applyAgent(target.serverAddress,resolveToken(extra,target.apiKey),args))),server.registerTool("delete_agent",{description:"Delete a Stigmer agent by its org and slug. Returns the deleted agent.",inputSchema:{org:external_exports.string().describe("Organization slug that owns the agent (e.g. stigmer)."),slug:external_exports.string().describe("Agent slug \u2014 the unique identifier within the org (e.g. code-reviewer).")}},(args,extra)=>textOrError(()=>deleteAgent(target.serverAddress,resolveToken(extra,target.apiKey),args.org,args.slug))),["get_agent","apply_agent","delete_agent"]}async function sendChannelMessage(serverAddress,token,args){let request3=create(SendChannelMessageInputSchema,{channel:args.channel??"",recipient:args.recipient,payload:buildPayload(args)});return withClient(ChannelMessageCommandController,serverAddress,token,async(client,opts)=>toProtoJson(SendChannelMessageOutputSchema,await client.sendMessage(request3,opts)))}function buildPayload(args){return args.template!==void 0?create(ChannelOutboundPayloadSchema,{kind:{case:"template",value:create(TemplatePayloadSchema,{name:args.template.name,language:args.template.language??"",parameters:args.template.parameters??{},headerImageLink:args.template.header_image_link??""})}}):create(ChannelOutboundPayloadSchema,{kind:{case:"text",value:create(TextPayloadSchema,{body:args.text??""})}})}var DOMAIN_CODES=new Set([Code.PermissionDenied,Code.InvalidArgument,Code.FailedPrecondition]);async function channelResult(toolContext,produce){try{return textResult(await produce())}catch(err){let ce=ConnectError.from(err);return DOMAIN_CODES.has(ce.code)?{content:[{type:"text",text:JSON.stringify(domainError(ce))}],isError:!0}:errorResult(rpcError(ce,toolContext))}}function domainError(ce){let payload={error:ce.rawMessage,code:grpcStatusName(ce.code)},details=ce.findDetails(ErrorInfoSchema);return details.length>0&&details[0].reason!==""&&(payload.reason=details[0].reason),payload}function grpcStatusName(code){return Code[code].replace(/([a-z0-9])([A-Z])/g,"$1_$2").toUpperCase()}var templateShape=external_exports.object({name:external_exports.string().describe("Approved template name on the channel's provider registry."),language:external_exports.string().optional().describe("Template language code (e.g. en, en_US). Omit when the template exists in exactly one language."),parameters:external_exports.record(external_exports.string()).optional().describe('Placeholder values. Positional templates key by position ("1", "2", \u2026); named templates key by parameter name ("member_name").'),header_image_link:external_exports.string().optional().describe("Public HTTPS URL for the image header. Required exactly when the template declares an image header.")});function registerChannelTools(server,target){return server.registerTool("send_channel_message",{description:"Send a business-initiated message to a recipient on this agent's messaging channel (e.g. WhatsApp). Exactly one of text | template. Outside a 24-hour customer-service window the provider only accepts a pre-approved template, so prefer a template from <available_channel_templates>. The result carries a typed outcome: accepted (sent), queued (the platform retries in the background \u2014 do not resend), or refused (terminal; detail says why \u2014 adapt, never retry the same send).",inputSchema:{recipient:external_exports.string().describe(`Recipient's key on the channel's provider, passed to the provider verbatim. WhatsApp: the wa_id \u2014 digits only INCLUDING the country code, no "+" or separators (e.g. "919912850490"). Never reformat a wa_id another tool returned.`),text:external_exports.string().optional().describe("Plain text body. Only deliverable inside an open 24-hour customer-service window."),template:templateShape.optional().describe("Pre-approved template send \u2014 required outside a 24-hour window."),channel:external_exports.string().optional().describe("Channel slug. Only needed when this agent serves more than one proactive-messaging channel (a refusal will list them).")}},(args,extra)=>{let hasText=args.text!==void 0&&args.text!=="",hasTemplate=args.template!==void 0;return hasText===hasTemplate?Promise.resolve(errorResult(hasText?"supply exactly one of text | template, not both":"supply exactly one of text | template \u2014 text for an open 24-hour window, template otherwise")):channelResult(`message to "${args.recipient}"`,()=>sendChannelMessage(target.serverAddress,resolveToken(extra,target.apiKey),{recipient:args.recipient,text:args.text,template:args.template,channel:args.channel}))}),["send_channel_message"]}async function escalateConversation(serverAddress,token,reason){let request3=create(EscalateConversationInputSchema,{reason});await withClient(ChannelConversationCommandController,serverAddress,token,(client,opts)=>client.escalate(request3,opts))}var DOMAIN_CODES2=new Set([Code.PermissionDenied,Code.InvalidArgument,Code.FailedPrecondition,Code.NotFound]);async function conversationResult(toolContext,produce){try{return textResult(await produce())}catch(err){let ce=ConnectError.from(err);return DOMAIN_CODES2.has(ce.code)?{content:[{type:"text",text:JSON.stringify(domainError2(ce))}],isError:!0}:errorResult(rpcError(ce,toolContext))}}function domainError2(ce){return{error:ce.rawMessage,code:grpcStatusName2(ce.code)}}function grpcStatusName2(code){return Code[code].replace(/([a-z0-9])([A-Z])/g,"$1_$2").toUpperCase()}var ESCALATE_DESCRIPTION=["Flag this conversation for a human teammate to look at. Use this when you cannot resolve the customer's request yourself: you lack the information, the request needs a decision you are not authorized to make, or the customer has asked for a person.","You keep serving the conversation after calling this. Nothing is handed off automatically and no one is paged. Do not tell the customer a human will reply, and never promise a response time.","Write the reason for a teammate who has not read the conversation. Calling this again with a new reason is safe; the latest reason is what they see."].join(`
199
199
 
200
200
  `),ESCALATION_RECORDED_COPY="Flagged for human attention. Your reason was recorded on this conversation. Keep helping the customer as best you can, and do not tell the customer a human will reply or when.";function registerConversationTools(server,target){return server.registerTool("escalate_to_human",{description:ESCALATE_DESCRIPTION,inputSchema:{reason:external_exports.string().min(1).max(1024).describe("Why you are escalating, written for a teammate who has not read the conversation. Staff see it as the conversation's attention reason. 1-1024 characters.")}},(args,extra)=>conversationResult("escalation",async()=>(await escalateConversation(target.serverAddress,resolveToken(extra,target.apiKey),args.reason),ESCALATION_RECORDED_COPY))),["escalate_to_human"]}async function fetchEnvironment(serverAddress,token,org,slug){return withClient(EnvironmentQueryController,serverAddress,token,async(client,callOptions)=>{try{let environment=await client.getByReference({org,kind:ApiResourceKind.environment,slug},callOptions);return toProtoJson(EnvironmentSchema,environment)}catch(err){throw rpcError(err,`environment "${slug}" in org "${org}"`)}})}function registerEnvironmentResources(server,target){return registerResource(server,target,{name:"stigmer_environment",title:"Stigmer Environment",description:"Full definition of a Stigmer environment, identified by organization and slug. Secret values are redacted.",template:"stigmer://environments/{org}/{slug}",fetch:fetchEnvironment}),["stigmer_environment"]}var EnvironmentInputShape={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: PRIVATE or PUBLIC. Applied at create; on updates a changed value is landed through the guarded UpdateVisibility RPC. Omit to leave unchanged."),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 listing display."),data:external_exports.record(external_exports.lazy(()=>EnvironmentValueInputSchema)).optional().describe("Key-value pairs containing configuration and secrets. Each value includes a flag indicating whether it is a secret.")},EnvironmentInputSchema=external_exports.object(EnvironmentInputShape),EnvironmentValueInputSchema=external_exports.object({value:external_exports.string().optional().describe("The configuration or secret string."),is_secret:external_exports.boolean().optional().describe("Whether this value should be treated as a secret."),description:external_exports.string().optional().describe("Human-readable description of what this value is used for.")});function environmentInputToProto(input){let slug=input.slug&&input.slug.length>0?input.slug:generateSlug(input.name),spec=create(EnvironmentSpecSchema);if(input.description!==void 0&&(spec.description=input.description),input.data!==void 0)for(let[k,v]of Object.entries(input.data))spec.data[k]=environmentValueInputToProto(v);return Object.assign(create(EnvironmentSchema),{apiVersion:"agentic.stigmer.ai/v1",kind:"Environment",metadata:Object.assign(create(ApiResourceMetadataSchema),{name:input.name,slug,org:input.org,...input.visibility!==void 0&&{visibility:visibilityFromString(input.visibility)},...input.labels!==void 0&&{labels:input.labels},...input.tags!==void 0&&{tags:input.tags}}),spec})}function environmentValueInputToProto(input){let result=create(EnvironmentValueSchema);return input.value!==void 0&&(result.value=input.value),input.is_secret!==void 0&&(result.isSecret=input.is_secret),input.description!==void 0&&(result.description=input.description),result}async function applyEnvironment(serverAddress,token,input){let environment=environmentInputToProto(input),desc=`environment "${environment.metadata?.slug??""}" in org "${environment.metadata?.org??""}"`;return withClient(EnvironmentCommandController,serverAddress,token,async(client,callOptions)=>{try{let applied=await client.apply(environment,callOptions),result=await applyDeclaredVisibility(client,callOptions,applied,environment.metadata?.visibility??ApiResourceVisibility.api_resource_visibility_unspecified);return toProtoJson(EnvironmentSchema,result)}catch(err){throw rpcError(err,desc)}})}async function deleteEnvironment(serverAddress,token,org,slug){let desc=`environment "${slug}" in org "${org}"`;return withTransport(serverAddress,token,async(transport,callOptions)=>{let query=createClient(EnvironmentQueryController,transport),id;try{id=(await query.getByReference({org,kind:ApiResourceKind.environment,slug},callOptions)).metadata?.id??""}catch(err){throw rpcError(err,desc)}let command=createClient(EnvironmentCommandController,transport);try{let deleted=await command.delete({resourceId:id},callOptions);return toProtoJson(EnvironmentSchema,deleted)}catch(err){throw rpcError(err,desc)}})}function registerEnvironmentTools(server,target){return server.registerTool("get_environment",{description:"Get full details of a Stigmer environment by its org and slug, including its variable declarations. Secret values are redacted to ***REDACTED*** \u2014 they can never be read back through this tool.",inputSchema:{org:external_exports.string().describe("Organization slug that owns the environment (e.g. stigmer)."),slug:external_exports.string().describe("Environment slug \u2014 the unique identifier within the org (e.g. github-creds).")}},(args,extra)=>textOrError(()=>fetchEnvironment(target.serverAddress,resolveToken(extra,target.apiKey),args.org,args.slug))),server.registerTool("apply_environment",{description:"Create or update a Stigmer environment (idempotent). The spec is applied in full, so include every variable the environment should keep. When updating, secret values read back as ***REDACTED*** \u2014 echoing that marker preserves the existing secret, so a get \u2192 edit \u2192 apply round-trip never destroys secrets; send a real value only to set or rotate one.",inputSchema:EnvironmentInputShape},(args,extra)=>textOrError(()=>applyEnvironment(target.serverAddress,resolveToken(extra,target.apiKey),args))),server.registerTool("delete_environment",{description:"Delete a Stigmer environment by its org and slug. Returns the deleted environment. Agents and workflows referencing it will fail to resolve their variables at run time.",inputSchema:{org:external_exports.string().describe("Organization slug that owns the environment (e.g. stigmer)."),slug:external_exports.string().describe("Environment slug \u2014 the unique identifier within the org (e.g. github-creds).")}},(args,extra)=>textOrError(()=>deleteEnvironment(target.serverAddress,resolveToken(extra,target.apiKey),args.org,args.slug))),["get_environment","apply_environment","delete_environment"]}var TERMINAL_AGENT_PHASES=new Set([ExecutionPhase.EXECUTION_COMPLETED,ExecutionPhase.EXECUTION_FAILED,ExecutionPhase.EXECUTION_CANCELLED,ExecutionPhase.EXECUTION_TERMINATED]),TERMINAL_WORKFLOW_PHASES=new Set([ExecutionPhase2.EXECUTION_COMPLETED,ExecutionPhase2.EXECUTION_FAILED,ExecutionPhase2.EXECUTION_CANCELLED,ExecutionPhase2.EXECUTION_TERMINATED]);function resolveExecutionType(id){let trimmed=id.trim();if(trimmed.startsWith("aex_")||trimmed.startsWith("aex-"))return"agent";if(trimmed.startsWith("wex_")||trimmed.startsWith("wex-"))return"workflow";throw new Error(`unrecognized execution ID format: ${id}
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: PRIVATE or PUBLIC. Applied at create; on updates a changed value is landed through the guarded UpdateVisibility RPC. Omit to leave unchanged."),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). Use explicit org for cross-org references (e.g., marketplace resources)."),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 (or be accessible via cross-org reference)."),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:visibilityFromString(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 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."),exclude_public:external_exports.boolean().optional().describe("Exclude public/platform resources from results."),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,excludePublic:args.exclude_public,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??"",excludePublic:args.excludePublic??!1};((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("Ci9haS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3Mvd2FpdC5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzIowCCghEdXJhdGlvbhIMCgRkYXlzGAEgASgNEg0KBWhvdXJzGAIgASgNEg8KB21pbnV0ZXMYAyABKA0SDwoHc2Vjb25kcxgEIAEoDRIUCgxtaWxsaXNlY29uZHMYBSABKA06qgG6SKYBGqMBChFkdXJhdGlvbi5ub25femVybxIsYXQgbGVhc3Qgb25lIGR1cmF0aW9uIGZpZWxkIG11c3QgYmUgbm9uLXplcm8aYHRoaXMuZGF5cyA+IDAgfHwgdGhpcy5ob3VycyA+IDAgfHwgdGhpcy5taW51dGVzID4gMCB8fCB0aGlzLnNlY29uZHMgPiAwIHx8IHRoaXMubWlsbGlzZWNvbmRzID4gMCKYAQoOV2FpdFRhc2tDb25maWcSQgoIZHVyYXRpb24YASABKAsyLi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MuRHVyYXRpb25IABIrCgV1bnRpbBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIADoI6ossBHdhaXRCCwoJd2FpdF90eXBlYgZwcm90bzM",[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: PRIVATE or PUBLIC. Applied at create; on updates a changed value is landed through the guarded UpdateVisibility RPC. Omit to leave unchanged."),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.")}),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). Use explicit org for cross-org references (e.g., marketplace resources)."),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 reference in 'org/slug' or 'slug' format. - 'slug' only: uses the workflow's organization - 'org/slug': explicit organization reference Examples: 'code-reviewer', 'stigmer/code-reviewer', 'acme/data-analyst' 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:visibilityFromString(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}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 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";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)}}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: PRIVATE or PUBLIC. Applied at create; on updates a changed value is landed through the guarded UpdateVisibility RPC. Omit to leave unchanged."),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). Use explicit org for cross-org references (e.g., marketplace resources)."),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 (or be accessible via cross-org reference)."),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:visibilityFromString(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 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."),exclude_public:external_exports.boolean().optional().describe("Exclude public/platform resources from results."),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,excludePublic:args.exclude_public,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??"",excludePublic:args.excludePublic??!1};((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("Ci9haS9zdGlnbWVyL2FnZW50aWMvd29ya2Zsb3cvdjEvdGFza3Mvd2FpdC5wcm90bxIkYWkuc3RpZ21lci5hZ2VudGljLndvcmtmbG93LnYxLnRhc2tzIowCCghEdXJhdGlvbhIMCgRkYXlzGAEgASgNEg0KBWhvdXJzGAIgASgNEg8KB21pbnV0ZXMYAyABKA0SDwoHc2Vjb25kcxgEIAEoDRIUCgxtaWxsaXNlY29uZHMYBSABKA06qgG6SKYBGqMBChFkdXJhdGlvbi5ub25femVybxIsYXQgbGVhc3Qgb25lIGR1cmF0aW9uIGZpZWxkIG11c3QgYmUgbm9uLXplcm8aYHRoaXMuZGF5cyA+IDAgfHwgdGhpcy5ob3VycyA+IDAgfHwgdGhpcy5taW51dGVzID4gMCB8fCB0aGlzLnNlY29uZHMgPiAwIHx8IHRoaXMubWlsbGlzZWNvbmRzID4gMCKYAQoOV2FpdFRhc2tDb25maWcSQgoIZHVyYXRpb24YASABKAsyLi5haS5zdGlnbWVyLmFnZW50aWMud29ya2Zsb3cudjEudGFza3MuRHVyYXRpb25IABIrCgV1bnRpbBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIADoI6ossBHdhaXRCCwoJd2FpdF90eXBlYgZwcm90bzM",[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: PRIVATE or PUBLIC. Applied at create; on updates a changed value is landed through the guarded UpdateVisibility RPC. Omit to leave unchanged."),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). Use explicit org for cross-org references (e.g., marketplace resources)."),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 reference in 'org/slug' or 'slug' format. - 'slug' only: uses the workflow's organization - 'org/slug': explicit organization reference Examples: 'code-reviewer', 'stigmer/code-reviewer', 'acme/data-analyst' 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:visibilityFromString(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 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";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)}}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=headerValue(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):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 headerValue(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)