// @generated by protoc-gen-es v2.10.2 with parameter "target=ts" // @generated from file agent.proto (package agent.v1, syntax proto3) /* eslint-disable */ import type { Message } from "@bufbuild/protobuf"; import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2"; import { enumDesc, fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2"; /** * Describes the file agent.proto. */ export const file_agent: GenFile = /*@__PURE__*/ fileDesc( "CgthZ2VudC5wcm90bxIIYWdlbnQudjEicgoOR2xvYlRvb2xSZXN1bHQSLAoHc3VjY2VzcxgBIAEoCzIZLmFnZW50LnYxLkdsb2JUb29sU3VjY2Vzc0gAEigKBWVycm9yGAIgASgLMhcuYWdlbnQudjEuR2xvYlRvb2xFcnJvckgAQggKBnJlc3VsdCIeCg1HbG9iVG9vbEVycm9yEg0KBWVycm9yGAEgASgJIokBCg9HbG9iVG9vbFN1Y2Nlc3MSDwoHcGF0dGVybhgBIAEoCRIMCgRwYXRoGAIgASgJEg0KBWZpbGVzGAMgAygJEhMKC3RvdGFsX2ZpbGVzGAQgASgFEhgKEGNsaWVudF90cnVuY2F0ZWQYBSABKAgSGQoRcmlwZ3JlcF90cnVuY2F0ZWQYBiABKAgiRgoMR2xvYlRvb2xDYWxsEgwKBGFyZ3MYASABKAwSKAoGcmVzdWx0GAIgASgLMhguYWdlbnQudjEuR2xvYlRvb2xSZXN1bHQibQoRUmVhZExpbnRzVG9vbENhbGwSKQoEYXJncxgBIAEoCzIbLmFnZW50LnYxLlJlYWRMaW50c1Rvb2xBcmdzEi0KBnJlc3VsdBgCIAEoCzIdLmFnZW50LnYxLlJlYWRMaW50c1Rvb2xSZXN1bHQiIgoRUmVhZExpbnRzVG9vbEFyZ3MSDQoFcGF0aHMYASADKAkigQEKE1JlYWRMaW50c1Rvb2xSZXN1bHQSMQoHc3VjY2VzcxgBIAEoCzIeLmFnZW50LnYxLlJlYWRMaW50c1Rvb2xTdWNjZXNzSAASLQoFZXJyb3IYAiABKAsyHC5hZ2VudC52MS5SZWFkTGludHNUb29sRXJyb3JIAEIICgZyZXN1bHQiewoUUmVhZExpbnRzVG9vbFN1Y2Nlc3MSMwoQZmlsZV9kaWFnbm9zdGljcxgBIAMoCzIZLmFnZW50LnYxLkZpbGVEaWFnbm9zdGljcxITCgt0b3RhbF9maWxlcxgCIAEoBRIZChF0b3RhbF9kaWFnbm9zdGljcxgDIAEoBSJpCg9GaWxlRGlhZ25vc3RpY3MSDAoEcGF0aBgBIAEoCRItCgtkaWFnbm9zdGljcxgCIAMoCzIYLmFnZW50LnYxLkRpYWdub3N0aWNJdGVtEhkKEWRpYWdub3N0aWNzX2NvdW50GAMgASgFIqsBCg5EaWFnbm9zdGljSXRlbRIuCghzZXZlcml0eRgBIAEoDjIcLmFnZW50LnYxLkRpYWdub3N0aWNTZXZlcml0eRIoCgVyYW5nZRgCIAEoCzIZLmFnZW50LnYxLkRpYWdub3N0aWNSYW5nZRIPCgdtZXNzYWdlGAMgASgJEg4KBnNvdXJjZRgEIAEoCRIMCgRjb2RlGAUgASgJEhAKCGlzX3N0YWxlGAYgASgIIlUKD0RpYWdub3N0aWNSYW5nZRIhCgVzdGFydBgBIAEoCzISLmFnZW50LnYxLlBvc2l0aW9uEh8KA2VuZBgCIAEoCzISLmFnZW50LnYxLlBvc2l0aW9uIisKElJlYWRMaW50c1Rvb2xFcnJvchIVCg1lcnJvcl9tZXNzYWdlGAEgASgJIh0KDE1jcFRvb2xFcnJvchINCgVlcnJvchgBIAEoCSLSAQoNTWNwVG9vbFJlc3VsdBInCgdzdWNjZXNzGAEgASgLMhQuYWdlbnQudjEuTWNwU3VjY2Vzc0gAEicKBWVycm9yGAIgASgLMhYuYWdlbnQudjEuTWNwVG9vbEVycm9ySAASKQoIcmVqZWN0ZWQYAyABKAsyFS5hZ2VudC52MS5NY3BSZWplY3RlZEgAEjoKEXBlcm1pc3Npb25fZGVuaWVkGAQgASgLMh0uYWdlbnQudjEuTWNwUGVybWlzc2lvbkRlbmllZEgAQggKBnJlc3VsdCJXCgtNY3BUb29sQ2FsbBIfCgRhcmdzGAEgASgLMhEuYWdlbnQudjEuTWNwQXJncxInCgZyZXN1bHQYAiABKAsyFy5hZ2VudC52MS5NY3BUb29sUmVzdWx0Im0KEVNlbVNlYXJjaFRvb2xDYWxsEikKBGFyZ3MYASABKAsyGy5hZ2VudC52MS5TZW1TZWFyY2hUb29sQXJncxItCgZyZXN1bHQYAiABKAsyHS5hZ2VudC52MS5TZW1TZWFyY2hUb29sUmVzdWx0IlMKEVNlbVNlYXJjaFRvb2xBcmdzEg0KBXF1ZXJ5GAEgASgJEhoKEnRhcmdldF9kaXJlY3RvcmllcxgCIAMoCRITCgtleHBsYW5hdGlvbhgDIAEoCSKBAQoTU2VtU2VhcmNoVG9vbFJlc3VsdBIxCgdzdWNjZXNzGAEgASgLMh4uYWdlbnQudjEuU2VtU2VhcmNoVG9vbFN1Y2Nlc3NIABItCgVlcnJvchgCIAEoCzIcLmFnZW50LnYxLlNlbVNlYXJjaFRvb2xFcnJvckgAQggKBnJlc3VsdCI9ChRTZW1TZWFyY2hUb29sU3VjY2VzcxIPCgdyZXN1bHRzGAEgASgJEhQKDGNvZGVfcmVzdWx0cxgCIAMoDCIrChJTZW1TZWFyY2hUb29sRXJyb3ISFQoNZXJyb3JfbWVzc2FnZRgBIAEoCSKCAQoYTGlzdE1jcFJlc291cmNlc1Rvb2xDYWxsEjAKBGFyZ3MYASABKAsyIi5hZ2VudC52MS5MaXN0TWNwUmVzb3VyY2VzRXhlY0FyZ3MSNAoGcmVzdWx0GAIgASgLMiQuYWdlbnQudjEuTGlzdE1jcFJlc291cmNlc0V4ZWNSZXN1bHQifwoXUmVhZE1jcFJlc291cmNlVG9vbENhbGwSLwoEYXJncxgBIAEoCzIhLmFnZW50LnYxLlJlYWRNY3BSZXNvdXJjZUV4ZWNBcmdzEjMKBnJlc3VsdBgCIAEoCzIjLmFnZW50LnYxLlJlYWRNY3BSZXNvdXJjZUV4ZWNSZXN1bHQiWQoNRmV0Y2hUb29sQ2FsbBIhCgRhcmdzGAEgASgLMhMuYWdlbnQudjEuRmV0Y2hBcmdzEiUKBnJlc3VsdBgCIAEoCzIVLmFnZW50LnYxLkZldGNoUmVzdWx0Im4KFFJlY29yZFNjcmVlblRvb2xDYWxsEigKBGFyZ3MYASABKAsyGi5hZ2VudC52MS5SZWNvcmRTY3JlZW5BcmdzEiwKBnJlc3VsdBgCIAEoCzIcLmFnZW50LnYxLlJlY29yZFNjcmVlblJlc3VsdCJ3ChdXcml0ZVNoZWxsU3RkaW5Ub29sQ2FsbBIrCgRhcmdzGAEgASgLMh0uYWdlbnQudjEuV3JpdGVTaGVsbFN0ZGluQXJncxIvCgZyZXN1bHQYAiABKAsyHy5hZ2VudC52MS5Xcml0ZVNoZWxsU3RkaW5SZXN1bHQisQEKC1JlZmxlY3RBcmdzEiIKGnVuZXhwZWN0ZWRfYWN0aW9uX291dGNvbWVzGAEgASgJEh0KFXJlbGV2YW50X2luc3RydWN0aW9ucxgCIAEoCRIZChFzY2VuYXJpb19hbmFseXNpcxgDIAEoCRIaChJjcml0aWNhbF9zeW50aGVzaXMYBCABKAkSEgoKbmV4dF9zdGVwcxgFIAEoCRIUCgx0b29sX2NhbGxfaWQYBiABKAkibwoNUmVmbGVjdFJlc3VsdBIrCgdzdWNjZXNzGAEgASgLMhguYWdlbnQudjEuUmVmbGVjdFN1Y2Nlc3NIABInCgVlcnJvchgCIAEoCzIWLmFnZW50LnYxLlJlZmxlY3RFcnJvckgAQggKBnJlc3VsdCIQCg5SZWZsZWN0U3VjY2VzcyIdCgxSZWZsZWN0RXJyb3ISDQoFZXJyb3IYASABKAkiXwoPUmVmbGVjdFRvb2xDYWxsEiMKBGFyZ3MYASABKAsyFS5hZ2VudC52MS5SZWZsZWN0QXJncxInCgZyZXN1bHQYAiABKAsyFy5hZ2VudC52MS5SZWZsZWN0UmVzdWx0IlkKF1N0YXJ0R3JpbmRFeGVjdXRpb25BcmdzEhgKC2V4cGxhbmF0aW9uGAEgASgJSACIAQESFAoMdG9vbF9jYWxsX2lkGAIgASgJQg4KDF9leHBsYW5hdGlvbiKTAQoZU3RhcnRHcmluZEV4ZWN1dGlvblJlc3VsdBI3CgdzdWNjZXNzGAEgASgLMiQuYWdlbnQudjEuU3RhcnRHcmluZEV4ZWN1dGlvblN1Y2Nlc3NIABIzCgVlcnJvchgCIAEoCzIiLmFnZW50LnYxLlN0YXJ0R3JpbmRFeGVjdXRpb25FcnJvckgAQggKBnJlc3VsdCIcChpTdGFydEdyaW5kRXhlY3V0aW9uU3VjY2VzcyIpChhTdGFydEdyaW5kRXhlY3V0aW9uRXJyb3ISDQoFZXJyb3IYASABKAkigwEKG1N0YXJ0R3JpbmRFeGVjdXRpb25Ub29sQ2FsbBIvCgRhcmdzGAEgASgLMiEuYWdlbnQudjEuU3RhcnRHcmluZEV4ZWN1dGlvbkFyZ3MSMwoGcmVzdWx0GAIgASgLMiMuYWdlbnQudjEuU3RhcnRHcmluZEV4ZWN1dGlvblJlc3VsdCJYChZTdGFydEdyaW5kUGxhbm5pbmdBcmdzEhgKC2V4cGxhbmF0aW9uGAEgASgJSACIAQESFAoMdG9vbF9jYWxsX2lkGAIgASgJQg4KDF9leHBsYW5hdGlvbiKQAQoYU3RhcnRHcmluZFBsYW5uaW5nUmVzdWx0EjYKB3N1Y2Nlc3MYASABKAsyIy5hZ2VudC52MS5TdGFydEdyaW5kUGxhbm5pbmdTdWNjZXNzSAASMgoFZXJyb3IYAiABKAsyIS5hZ2VudC52MS5TdGFydEdyaW5kUGxhbm5pbmdFcnJvckgAQggKBnJlc3VsdCIbChlTdGFydEdyaW5kUGxhbm5pbmdTdWNjZXNzIigKF1N0YXJ0R3JpbmRQbGFubmluZ0Vycm9yEg0KBWVycm9yGAEgASgJIoABChpTdGFydEdyaW5kUGxhbm5pbmdUb29sQ2FsbBIuCgRhcmdzGAEgASgLMiAuYWdlbnQudjEuU3RhcnRHcmluZFBsYW5uaW5nQXJncxIyCgZyZXN1bHQYAiABKAsyIi5hZ2VudC52MS5TdGFydEdyaW5kUGxhbm5pbmdSZXN1bHQinAEKCFRhc2tBcmdzEhMKC2Rlc2NyaXB0aW9uGAEgASgJEg4KBnByb21wdBgCIAEoCRItCg1zdWJhZ2VudF90eXBlGAMgASgLMhYuYWdlbnQudjEuU3ViYWdlbnRUeXBlEhIKBW1vZGVsGAQgASgJSACIAQESEwoGcmVzdW1lGAUgASgJSAGIAQFCCAoGX21vZGVsQgkKB19yZXN1bWUiqgEKC1Rhc2tTdWNjZXNzEjYKEmNvbnZlcnNhdGlvbl9zdGVwcxgBIAMoCzIaLmFnZW50LnYxLkNvbnZlcnNhdGlvblN0ZXASFQoIYWdlbnRfaWQYAiABKAlIAIgBARIVCg1pc19iYWNrZ3JvdW5kGAMgASgIEhgKC2R1cmF0aW9uX21zGAQgASgESAGIAQFCCwoJX2FnZW50X2lkQg4KDF9kdXJhdGlvbl9tcyIaCglUYXNrRXJyb3ISDQoFZXJyb3IYASABKAkiZgoKVGFza1Jlc3VsdBIoCgdzdWNjZXNzGAEgASgLMhUuYWdlbnQudjEuVGFza1N1Y2Nlc3NIABIkCgVlcnJvchgCIAEoCzITLmFnZW50LnYxLlRhc2tFcnJvckgAQggKBnJlc3VsdCJWCgxUYXNrVG9vbENhbGwSIAoEYXJncxgBIAEoCzISLmFnZW50LnYxLlRhc2tBcmdzEiQKBnJlc3VsdBgCIAEoCzIULmFnZW50LnYxLlRhc2tSZXN1bHQiTAoRVGFza1Rvb2xDYWxsRGVsdGESNwoSaW50ZXJhY3Rpb25fdXBkYXRlGAEgASgLMhsuYWdlbnQudjEuSW50ZXJhY3Rpb25VcGRhdGUiyw8KCFRvb2xDYWxsEjIKD3NoZWxsX3Rvb2xfY2FsbBgBIAEoCzIXLmFnZW50LnYxLlNoZWxsVG9vbENhbGxIABI0ChBkZWxldGVfdG9vbF9jYWxsGAMgASgLMhguYWdlbnQudjEuRGVsZXRlVG9vbENhbGxIABIwCg5nbG9iX3Rvb2xfY2FsbBgEIAEoCzIWLmFnZW50LnYxLkdsb2JUb29sQ2FsbEgAEjAKDmdyZXBfdG9vbF9jYWxsGAUgASgLMhYuYWdlbnQudjEuR3JlcFRvb2xDYWxsSAASMAoOcmVhZF90b29sX2NhbGwYCCABKAsyFi5hZ2VudC52MS5SZWFkVG9vbENhbGxIABI/ChZ1cGRhdGVfdG9kb3NfdG9vbF9jYWxsGAkgASgLMh0uYWdlbnQudjEuVXBkYXRlVG9kb3NUb29sQ2FsbEgAEjsKFHJlYWRfdG9kb3NfdG9vbF9jYWxsGAogASgLMhsuYWdlbnQudjEuUmVhZFRvZG9zVG9vbENhbGxIABIwCg5lZGl0X3Rvb2xfY2FsbBgMIAEoCzIWLmFnZW50LnYxLkVkaXRUb29sQ2FsbEgAEiwKDGxzX3Rvb2xfY2FsbBgNIAEoCzIULmFnZW50LnYxLkxzVG9vbENhbGxIABI7ChRyZWFkX2xpbnRzX3Rvb2xfY2FsbBgOIAEoCzIbLmFnZW50LnYxLlJlYWRMaW50c1Rvb2xDYWxsSAASLgoNbWNwX3Rvb2xfY2FsbBgPIAEoCzIVLmFnZW50LnYxLk1jcFRvb2xDYWxsSAASOwoUc2VtX3NlYXJjaF90b29sX2NhbGwYECABKAsyGy5hZ2VudC52MS5TZW1TZWFyY2hUb29sQ2FsbEgAEj0KFWNyZWF0ZV9wbGFuX3Rvb2xfY2FsbBgRIAEoCzIcLmFnZW50LnYxLkNyZWF0ZVBsYW5Ub29sQ2FsbEgAEjsKFHdlYl9zZWFyY2hfdG9vbF9jYWxsGBIgASgLMhsuYWdlbnQudjEuV2ViU2VhcmNoVG9vbENhbGxIABIwCg50YXNrX3Rvb2xfY2FsbBgTIAEoCzIWLmFnZW50LnYxLlRhc2tUb29sQ2FsbEgAEkoKHGxpc3RfbWNwX3Jlc291cmNlc190b29sX2NhbGwYFCABKAsyIi5hZ2VudC52MS5MaXN0TWNwUmVzb3VyY2VzVG9vbENhbGxIABJIChtyZWFkX21jcF9yZXNvdXJjZV90b29sX2NhbGwYFSABKAsyIS5hZ2VudC52MS5SZWFkTWNwUmVzb3VyY2VUb29sQ2FsbEgAEkYKGmFwcGx5X2FnZW50X2RpZmZfdG9vbF9jYWxsGBYgASgLMiAuYWdlbnQudjEuQXBwbHlBZ2VudERpZmZUb29sQ2FsbEgAEj8KFmFza19xdWVzdGlvbl90b29sX2NhbGwYFyABKAsyHS5hZ2VudC52MS5Bc2tRdWVzdGlvblRvb2xDYWxsSAASMgoPZmV0Y2hfdG9vbF9jYWxsGBggASgLMhcuYWdlbnQudjEuRmV0Y2hUb29sQ2FsbEgAEj0KFXN3aXRjaF9tb2RlX3Rvb2xfY2FsbBgZIAEoCzIcLmFnZW50LnYxLlN3aXRjaE1vZGVUb29sQ2FsbEgAEjsKFGV4YV9zZWFyY2hfdG9vbF9jYWxsGBogASgLMhsuYWdlbnQudjEuRXhhU2VhcmNoVG9vbENhbGxIABI5ChNleGFfZmV0Y2hfdG9vbF9jYWxsGBsgASgLMhouYWdlbnQudjEuRXhhRmV0Y2hUb29sQ2FsbEgAEkMKGGdlbmVyYXRlX2ltYWdlX3Rvb2xfY2FsbBgcIAEoCzIfLmFnZW50LnYxLkdlbmVyYXRlSW1hZ2VUb29sQ2FsbEgAEkEKF3JlY29yZF9zY3JlZW5fdG9vbF9jYWxsGB0gASgLMh4uYWdlbnQudjEuUmVjb3JkU2NyZWVuVG9vbENhbGxIABI/ChZjb21wdXRlcl91c2VfdG9vbF9jYWxsGB4gASgLMh0uYWdlbnQudjEuQ29tcHV0ZXJVc2VUb29sQ2FsbEgAEkgKG3dyaXRlX3NoZWxsX3N0ZGluX3Rvb2xfY2FsbBgfIAEoCzIhLmFnZW50LnYxLldyaXRlU2hlbGxTdGRpblRvb2xDYWxsSAASNgoRcmVmbGVjdF90b29sX2NhbGwYICABKAsyGS5hZ2VudC52MS5SZWZsZWN0VG9vbENhbGxIABJOCh5zZXR1cF92bV9lbnZpcm9ubWVudF90b29sX2NhbGwYISABKAsyJC5hZ2VudC52MS5TZXR1cFZtRW52aXJvbm1lbnRUb29sQ2FsbEgAEjoKE3RydW5jYXRlZF90b29sX2NhbGwYIiABKAsyGy5hZ2VudC52MS5UcnVuY2F0ZWRUb29sQ2FsbEgAElAKH3N0YXJ0X2dyaW5kX2V4ZWN1dGlvbl90b29sX2NhbGwYIyABKAsyJS5hZ2VudC52MS5TdGFydEdyaW5kRXhlY3V0aW9uVG9vbENhbGxIABJOCh5zdGFydF9ncmluZF9wbGFubmluZ190b29sX2NhbGwYJCABKAsyJC5hZ2VudC52MS5TdGFydEdyaW5kUGxhbm5pbmdUb29sQ2FsbEgAQgYKBHRvb2wiFwoVVHJ1bmNhdGVkVG9vbENhbGxBcmdzIhoKGFRydW5jYXRlZFRvb2xDYWxsU3VjY2VzcyInChZUcnVuY2F0ZWRUb29sQ2FsbEVycm9yEg0KBWVycm9yGAEgASgJIo0BChdUcnVuY2F0ZWRUb29sQ2FsbFJlc3VsdBI1CgdzdWNjZXNzGAEgASgLMiIuYWdlbnQudjEuVHJ1bmNhdGVkVG9vbENhbGxTdWNjZXNzSAASMQoFZXJyb3IYAiABKAsyIC5hZ2VudC52MS5UcnVuY2F0ZWRUb29sQ2FsbEVycm9ySABCCAoGcmVzdWx0IpQBChFUcnVuY2F0ZWRUb29sQ2FsbBIdChVvcmlnaW5hbF9zdGVwX2Jsb2JfaWQYASABKAwSLQoEYXJncxgCIAEoCzIfLmFnZW50LnYxLlRydW5jYXRlZFRvb2xDYWxsQXJncxIxCgZyZXN1bHQYAyABKAsyIS5hZ2VudC52MS5UcnVuY2F0ZWRUb29sQ2FsbFJlc3VsdCLRAQoNVG9vbENhbGxEZWx0YRI9ChVzaGVsbF90b29sX2NhbGxfZGVsdGEYASABKAsyHC5hZ2VudC52MS5TaGVsbFRvb2xDYWxsRGVsdGFIABI7ChR0YXNrX3Rvb2xfY2FsbF9kZWx0YRgCIAEoCzIbLmFnZW50LnYxLlRhc2tUb29sQ2FsbERlbHRhSAASOwoUZWRpdF90b29sX2NhbGxfZGVsdGEYAyABKAsyGy5hZ2VudC52MS5FZGl0VG9vbENhbGxEZWx0YUgAQgcKBWRlbHRhIrYBChBDb252ZXJzYXRpb25TdGVwEjcKEWFzc2lzdGFudF9tZXNzYWdlGAEgASgLMhouYWdlbnQudjEuQXNzaXN0YW50TWVzc2FnZUgAEicKCXRvb2xfY2FsbBgCIAEoCzISLmFnZW50LnYxLlRvb2xDYWxsSAASNQoQdGhpbmtpbmdfbWVzc2FnZRgDIAEoCzIZLmFnZW50LnYxLlRoaW5raW5nTWVzc2FnZUgAQgkKB21lc3NhZ2UigQQKEkNvbnZlcnNhdGlvbkFjdGlvbhI6ChN1c2VyX21lc3NhZ2VfYWN0aW9uGAEgASgLMhsuYWdlbnQudjEuVXNlck1lc3NhZ2VBY3Rpb25IABIvCg1yZXN1bWVfYWN0aW9uGAIgASgLMhYuYWdlbnQudjEuUmVzdW1lQWN0aW9uSAASLwoNY2FuY2VsX2FjdGlvbhgDIAEoCzIWLmFnZW50LnYxLkNhbmNlbEFjdGlvbkgAEjUKEHN1bW1hcml6ZV9hY3Rpb24YBCABKAsyGS5hZ2VudC52MS5TdW1tYXJpemVBY3Rpb25IABI8ChRzaGVsbF9jb21tYW5kX2FjdGlvbhgFIAEoCzIcLmFnZW50LnYxLlNoZWxsQ29tbWFuZEFjdGlvbkgAEjYKEXN0YXJ0X3BsYW5fYWN0aW9uGAYgASgLMhkuYWdlbnQudjEuU3RhcnRQbGFuQWN0aW9uSAASOgoTZXhlY3V0ZV9wbGFuX2FjdGlvbhgHIAEoCzIbLmFnZW50LnYxLkV4ZWN1dGVQbGFuQWN0aW9uSAASWgokYXN5bmNfYXNrX3F1ZXN0aW9uX2NvbXBsZXRpb25fYWN0aW9uGAggASgLMiouYWdlbnQudjEuQXN5bmNBc2tRdWVzdGlvbkNvbXBsZXRpb25BY3Rpb25IAEIICgZhY3Rpb24ivwEKEVVzZXJNZXNzYWdlQWN0aW9uEisKDHVzZXJfbWVzc2FnZRgBIAEoCzIVLmFnZW50LnYxLlVzZXJNZXNzYWdlEjEKD3JlcXVlc3RfY29udGV4dBgCIAEoCzIYLmFnZW50LnYxLlJlcXVlc3RDb250ZXh0EikKHHNlbmRfdG9faW50ZXJhY3Rpb25fbGlzdGVuZXIYAyABKAhIAIgBAUIfCh1fc2VuZF90b19pbnRlcmFjdGlvbl9saXN0ZW5lciIOCgxDYW5jZWxBY3Rpb24iQQoMUmVzdW1lQWN0aW9uEjEKD3JlcXVlc3RfY29udGV4dBgCIAEoCzIYLmFnZW50LnYxLlJlcXVlc3RDb250ZXh0IqABCiBBc3luY0Fza1F1ZXN0aW9uQ29tcGxldGlvbkFjdGlvbhIdChVvcmlnaW5hbF90b29sX2NhbGxfaWQYASABKAkSMAoNb3JpZ2luYWxfYXJncxgCIAEoCzIZLmFnZW50LnYxLkFza1F1ZXN0aW9uQXJncxIrCgZyZXN1bHQYAyABKAsyGy5hZ2VudC52MS5Bc2tRdWVzdGlvblJlc3VsdCIRCg9TdW1tYXJpemVBY3Rpb24iVAoSU2hlbGxDb21tYW5kQWN0aW9uEi0KDXNoZWxsX2NvbW1hbmQYASABKAsyFi5hZ2VudC52MS5TaGVsbENvbW1hbmQSDwoHZXhlY19pZBgCIAEoCSKCAQoPU3RhcnRQbGFuQWN0aW9uEisKDHVzZXJfbWVzc2FnZRgBIAEoCzIVLmFnZW50LnYxLlVzZXJNZXNzYWdlEjEKD3JlcXVlc3RfY29udGV4dBgCIAEoCzIYLmFnZW50LnYxLlJlcXVlc3RDb250ZXh0Eg8KB2lzX3NwZWMYAyABKAgi4gEKEUV4ZWN1dGVQbGFuQWN0aW9uEjEKD3JlcXVlc3RfY29udGV4dBgBIAEoCzIYLmFnZW50LnYxLlJlcXVlc3RDb250ZXh0Ei0KBHBsYW4YAiABKAsyGi5hZ2VudC52MS5Db252ZXJzYXRpb25QbGFuSACIAQESGgoNcGxhbl9maWxlX3VyaRgDIAEoCUgBiAEBEh4KEXBsYW5fZmlsZV9jb250ZW50GAQgASgJSAKIAQFCBwoFX3BsYW5CEAoOX3BsYW5fZmlsZV91cmlCFAoSX3BsYW5fZmlsZV9jb250ZW50Ip8DCgtVc2VyTWVzc2FnZRIMCgR0ZXh0GAEgASgJEhIKCm1lc3NhZ2VfaWQYAiABKAkSOAoQc2VsZWN0ZWRfY29udGV4dBgDIAEoCzIZLmFnZW50LnYxLlNlbGVjdGVkQ29udGV4dEgAiAEBEgwKBG1vZGUYBCABKAUSHQoQaXNfc2ltdWxhdGVkX21zZxgFIAEoCEgBiAEBEh8KEmJlc3Rfb2Zfbl9ncm91cF9pZBgGIAEoCUgCiAEBEigKG3RyeV91c2VfYmVzdF9vZl9uX3Byb21vdGlvbhgHIAEoCEgDiAEBEhYKCXJpY2hfdGV4dBgIIAEoCUgEiAEBEh0KFXNlbGVjdGVkX2NvbnRleHRfYmxvYhgKIAEoDBIWCg5jb3JyZWxhdGlvbl9pZBgRIAEoCUITChFfc2VsZWN0ZWRfY29udGV4dEITChFfaXNfc2ltdWxhdGVkX21zZ0IVChNfYmVzdF9vZl9uX2dyb3VwX2lkQh4KHF90cnlfdXNlX2Jlc3Rfb2Zfbl9wcm9tb3Rpb25CDAoKX3JpY2hfdGV4dCIgChBBc3Npc3RhbnRNZXNzYWdlEgwKBHRleHQYASABKAkiNAoPVGhpbmtpbmdNZXNzYWdlEgwKBHRleHQYASABKAkSEwoLZHVyYXRpb25fbXMYAiABKA0iHwoMU2hlbGxDb21tYW5kEg8KB2NvbW1hbmQYASABKAkiQAoLU2hlbGxPdXRwdXQSDgoGc3Rkb3V0GAEgASgJEg4KBnN0ZGVychgCIAEoCRIRCglleGl0X2NvZGUYAyABKAUiogEKEENvbnZlcnNhdGlvblR1cm4SQgoXYWdlbnRfY29udmVyc2F0aW9uX3R1cm4YASABKAsyHy5hZ2VudC52MS5BZ2VudENvbnZlcnNhdGlvblR1cm5IABJCChdzaGVsbF9jb252ZXJzYXRpb25fdHVybhgCIAEoCzIfLmFnZW50LnYxLlNoZWxsQ29udmVyc2F0aW9uVHVybkgAQgYKBHR1cm4iIAoQQ29udmVyc2F0aW9uUGxhbhIMCgRwbGFuGAEgASgJIr0BChlDb252ZXJzYXRpb25UdXJuU3RydWN0dXJlEksKF2FnZW50X2NvbnZlcnNhdGlvbl90dXJuGAEgASgLMiguYWdlbnQudjEuQWdlbnRDb252ZXJzYXRpb25UdXJuU3RydWN0dXJlSAASSwoXc2hlbGxfY29udmVyc2F0aW9uX3R1cm4YAiABKAsyKC5hZ2VudC52MS5TaGVsbENvbnZlcnNhdGlvblR1cm5TdHJ1Y3R1cmVIAEIGCgR0dXJuIpcBChVBZ2VudENvbnZlcnNhdGlvblR1cm4SKwoMdXNlcl9tZXNzYWdlGAEgASgLMhUuYWdlbnQudjEuVXNlck1lc3NhZ2USKQoFc3RlcHMYAiADKAsyGi5hZ2VudC52MS5Db252ZXJzYXRpb25TdGVwEhcKCnJlcXVlc3RfaWQYAyABKAlIAIgBAUINCgtfcmVxdWVzdF9pZCJtCh5BZ2VudENvbnZlcnNhdGlvblR1cm5TdHJ1Y3R1cmUSFAoMdXNlcl9tZXNzYWdlGAEgASgMEg0KBXN0ZXBzGAIgAygMEhcKCnJlcXVlc3RfaWQYAyABKAlIAIgBAUINCgtfcmVxdWVzdF9pZCJzChVTaGVsbENvbnZlcnNhdGlvblR1cm4SLQoNc2hlbGxfY29tbWFuZBgBIAEoCzIWLmFnZW50LnYxLlNoZWxsQ29tbWFuZBIrCgxzaGVsbF9vdXRwdXQYAiABKAsyFS5hZ2VudC52MS5TaGVsbE91dHB1dCJNCh5TaGVsbENvbnZlcnNhdGlvblR1cm5TdHJ1Y3R1cmUSFQoNc2hlbGxfY29tbWFuZBgBIAEoDBIUCgxzaGVsbF9vdXRwdXQYAiABKAwiJgoTQ29udmVyc2F0aW9uU3VtbWFyeRIPCgdzdW1tYXJ5GAEgASgJIngKGkNvbnZlcnNhdGlvblN1bW1hcnlBcmNoaXZlEhsKE3N1bW1hcml6ZWRfbWVzc2FnZXMYASADKAwSDwoHc3VtbWFyeRgCIAEoCRITCgt3aW5kb3dfdGFpbBgDIAEoDRIXCg9zdW1tYXJ5X21lc3NhZ2UYBCABKAwiQwoYQ29udmVyc2F0aW9uVG9rZW5EZXRhaWxzEhMKC3VzZWRfdG9rZW5zGAEgASgNEhIKCm1heF90b2tlbnMYAiABKA0iXwoJRmlsZVN0YXRlEhQKB2NvbnRlbnQYASABKAlIAIgBARIcCg9pbml0aWFsX2NvbnRlbnQYAiABKAlIAYgBAUIKCghfY29udGVudEISChBfaW5pdGlhbF9jb250ZW50ImgKEkZpbGVTdGF0ZVN0cnVjdHVyZRIUCgdjb250ZW50GAEgASgMSACIAQESHAoPaW5pdGlhbF9jb250ZW50GAIgASgMSAGIAQFCCgoIX2NvbnRlbnRCEgoQX2luaXRpYWxfY29udGVudCI3CgpTdGVwVGltaW5nEhMKC2R1cmF0aW9uX21zGAEgASgEEhQKDHRpbWVzdGFtcF9tcxgCIAEoBCL2BAoRQ29udmVyc2F0aW9uU3RhdGUSIQoZcm9vdF9wcm9tcHRfbWVzc2FnZXNfanNvbhgBIAMoCRIpCgV0dXJucxgIIAMoCzIaLmFnZW50LnYxLkNvbnZlcnNhdGlvblR1cm4SIQoFdG9kb3MYAyADKAsyEi5hZ2VudC52MS5Ub2RvSXRlbRIaChJwZW5kaW5nX3Rvb2xfY2FsbHMYBCADKAkSOQoNdG9rZW5fZGV0YWlscxgFIAEoCzIiLmFnZW50LnYxLkNvbnZlcnNhdGlvblRva2VuRGV0YWlscxIzCgdzdW1tYXJ5GAYgASgLMh0uYWdlbnQudjEuQ29udmVyc2F0aW9uU3VtbWFyeUgAiAEBEi0KBHBsYW4YByABKAsyGi5hZ2VudC52MS5Db252ZXJzYXRpb25QbGFuSAGIAQESQgoPc3VtbWFyeV9hcmNoaXZlGAkgASgLMiQuYWdlbnQudjEuQ29udmVyc2F0aW9uU3VtbWFyeUFyY2hpdmVIAogBARJACgtmaWxlX3N0YXRlcxgKIAMoCzIrLmFnZW50LnYxLkNvbnZlcnNhdGlvblN0YXRlLkZpbGVTdGF0ZXNFbnRyeRI+ChBzdW1tYXJ5X2FyY2hpdmVzGAsgAygLMiQuYWdlbnQudjEuQ29udmVyc2F0aW9uU3VtbWFyeUFyY2hpdmUaRgoPRmlsZVN0YXRlc0VudHJ5EgsKA2tleRgBIAEoCRIiCgV2YWx1ZRgCIAEoCzITLmFnZW50LnYxLkZpbGVTdGF0ZToCOAFCCgoIX3N1bW1hcnlCBwoFX3BsYW5CEgoQX3N1bW1hcnlfYXJjaGl2ZSLHAQoWU3ViYWdlbnRQZXJzaXN0ZWRTdGF0ZRJAChJjb252ZXJzYXRpb25fc3RhdGUYASABKAsyJC5hZ2VudC52MS5Db252ZXJzYXRpb25TdGF0ZVN0cnVjdHVyZRIcChRjcmVhdGVkX3RpbWVzdGFtcF9tcxgCIAEoBBIeChZsYXN0X3VzZWRfdGltZXN0YW1wX21zGAMgASgEEi0KDXN1YmFnZW50X3R5cGUYBCABKAsyFi5hZ2VudC52MS5TdWJhZ2VudFR5cGUi4QcKGkNvbnZlcnNhdGlvblN0YXRlU3RydWN0dXJlEhEKCXR1cm5zX29sZBgCIAMoDBIhChlyb290X3Byb21wdF9tZXNzYWdlc19qc29uGAEgAygMEg0KBXR1cm5zGAggAygMEg0KBXRvZG9zGAMgAygMEhoKEnBlbmRpbmdfdG9vbF9jYWxscxgEIAMoCRI5Cg10b2tlbl9kZXRhaWxzGAUgASgLMiIuYWdlbnQudjEuQ29udmVyc2F0aW9uVG9rZW5EZXRhaWxzEhQKB3N1bW1hcnkYBiABKAxIAIgBARIRCgRwbGFuGAcgASgMSAGIAQESHwoXcHJldmlvdXNfd29ya3NwYWNlX3VyaXMYCSADKAkSEQoEbW9kZRgKIAEoBUgCiAEBEhwKD3N1bW1hcnlfYXJjaGl2ZRgLIAEoDEgDiAEBEkkKC2ZpbGVfc3RhdGVzGAwgAygLMjQuYWdlbnQudjEuQ29udmVyc2F0aW9uU3RhdGVTdHJ1Y3R1cmUuRmlsZVN0YXRlc0VudHJ5Ek4KDmZpbGVfc3RhdGVzX3YyGA8gAygLMjYuYWdlbnQudjEuQ29udmVyc2F0aW9uU3RhdGVTdHJ1Y3R1cmUuRmlsZVN0YXRlc1YyRW50cnkSGAoQc3VtbWFyeV9hcmNoaXZlcxgNIAMoDBIqCgx0dXJuX3RpbWluZ3MYDiADKAsyFC5hZ2VudC52MS5TdGVwVGltaW5nElEKD3N1YmFnZW50X3N0YXRlcxgQIAMoCzI4LmFnZW50LnYxLkNvbnZlcnNhdGlvblN0YXRlU3RydWN0dXJlLlN1YmFnZW50U3RhdGVzRW50cnkSGgoSc2VsZl9zdW1tYXJ5X2NvdW50GBEgASgNEhIKCnJlYWRfcGF0aHMYEiADKAkSEwoLZXh0cmFfc3RhdGUYFSABKAwSEwoLY2xpZW50X25hbWUYFiABKAkaMQoPRmlsZVN0YXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoDDoCOAEaUQoRRmlsZVN0YXRlc1YyRW50cnkSCwoDa2V5GAEgASgJEisKBXZhbHVlGAIgASgLMhwuYWdlbnQudjEuRmlsZVN0YXRlU3RydWN0dXJlOgI4ARpXChNTdWJhZ2VudFN0YXRlc0VudHJ5EgsKA2tleRgBIAEoCRIvCgV2YWx1ZRgCIAEoCzIgLmFnZW50LnYxLlN1YmFnZW50UGVyc2lzdGVkU3RhdGU6AjgBQgoKCF9zdW1tYXJ5QgcKBV9wbGFuQgcKBV9tb2RlQhIKEF9zdW1tYXJ5X2FyY2hpdmUiEQoPVGhpbmtpbmdEZXRhaWxzIkgKEUFwaUtleUNyZWRlbnRpYWxzEg8KB2FwaV9rZXkYASABKAkSFQoIYmFzZV91cmwYAiABKAlIAIgBAUILCglfYmFzZV91cmwiSQoQQXp1cmVDcmVkZW50aWFscxIPCgdhcGlfa2V5GAEgASgJEhAKCGJhc2VfdXJsGAIgASgJEhIKCmRlcGxveW1lbnQYAyABKAkiegoSQmVkcm9ja0NyZWRlbnRpYWxzEhIKCmFjY2Vzc19rZXkYASABKAkSEgoKc2VjcmV0X2tleRgCIAEoCRIOCgZyZWdpb24YAyABKAkSGgoNc2Vzc2lvbl90b2tlbhgEIAEoCUgAiAEBQhAKDl9zZXNzaW9uX3Rva2VuIrEDCgxNb2RlbERldGFpbHMSEAoIbW9kZWxfaWQYASABKAkSGAoQZGlzcGxheV9tb2RlbF9pZBgDIAEoCRIUCgxkaXNwbGF5X25hbWUYBCABKAkSGgoSZGlzcGxheV9uYW1lX3Nob3J0GAUgASgJEg8KB2FsaWFzZXMYBiADKAkSOAoQdGhpbmtpbmdfZGV0YWlscxgCIAEoCzIZLmFnZW50LnYxLlRoaW5raW5nRGV0YWlsc0gBiAEBEhUKCG1heF9tb2RlGAcgASgISAKIAQESOgoTYXBpX2tleV9jcmVkZW50aWFscxgIIAEoCzIbLmFnZW50LnYxLkFwaUtleUNyZWRlbnRpYWxzSAASNwoRYXp1cmVfY3JlZGVudGlhbHMYCSABKAsyGi5hZ2VudC52MS5BenVyZUNyZWRlbnRpYWxzSAASOwoTYmVkcm9ja19jcmVkZW50aWFscxgKIAEoCzIcLmFnZW50LnYxLkJlZHJvY2tDcmVkZW50aWFsc0gAQg0KC2NyZWRlbnRpYWxzQhMKEV90aGlua2luZ19kZXRhaWxzQgsKCV9tYXhfbW9kZSK3AgoOUmVxdWVzdGVkTW9kZWwSEAoIbW9kZWxfaWQYASABKAkSEAoIbWF4X21vZGUYAiABKAgSQAoKcGFyYW1ldGVycxgDIAMoCzIsLmFnZW50LnYxLlJlcXVlc3RlZE1vZGVsX01vZGVsUGFyYW1ldGVyYnl0ZXMSOgoTYXBpX2tleV9jcmVkZW50aWFscxgEIAEoCzIbLmFnZW50LnYxLkFwaUtleUNyZWRlbnRpYWxzSAASNwoRYXp1cmVfY3JlZGVudGlhbHMYBSABKAsyGi5hZ2VudC52MS5BenVyZUNyZWRlbnRpYWxzSAASOwoTYmVkcm9ja19jcmVkZW50aWFscxgGIAEoCzIcLmFnZW50LnYxLkJlZHJvY2tDcmVkZW50aWFsc0gAQg0KC2NyZWRlbnRpYWxzIj8KIlJlcXVlc3RlZE1vZGVsX01vZGVsUGFyYW1ldGVyYnl0ZXMSCgoCaWQYASABKAkSDQoFdmFsdWUYAiABKAkiuQQKD0FnZW50UnVuUmVxdWVzdBJAChJjb252ZXJzYXRpb25fc3RhdGUYASABKAsyJC5hZ2VudC52MS5Db252ZXJzYXRpb25TdGF0ZVN0cnVjdHVyZRIsCgZhY3Rpb24YAiABKAsyHC5hZ2VudC52MS5Db252ZXJzYXRpb25BY3Rpb24SLQoNbW9kZWxfZGV0YWlscxgDIAEoCzIWLmFnZW50LnYxLk1vZGVsRGV0YWlscxI2Cg9yZXF1ZXN0ZWRfbW9kZWwYCSABKAsyGC5hZ2VudC52MS5SZXF1ZXN0ZWRNb2RlbEgAiAEBEiUKCW1jcF90b29scxgEIAEoCzISLmFnZW50LnYxLk1jcFRvb2xzEhwKD2NvbnZlcnNhdGlvbl9pZBgFIAEoCUgBiAEBEkQKF21jcF9maWxlX3N5c3RlbV9vcHRpb25zGAYgASgLMh4uYWdlbnQudjEuTWNwRmlsZVN5c3RlbU9wdGlvbnNIAogBARIyCg1za2lsbF9vcHRpb25zGAcgASgLMhYuYWdlbnQudjEuU2tpbGxPcHRpb25zSAOIAQESIQoUY3VzdG9tX3N5c3RlbV9wcm9tcHQYCCABKAlIBIgBAUISChBfcmVxdWVzdGVkX21vZGVsQhIKEF9jb252ZXJzYXRpb25faWRCGgoYX21jcF9maWxlX3N5c3RlbV9vcHRpb25zQhAKDl9za2lsbF9vcHRpb25zQhcKFV9jdXN0b21fc3lzdGVtX3Byb21wdCIfCg9UZXh0RGVsdGFVcGRhdGUSDAoEdGV4dBgBIAEoCSJmChVUb29sQ2FsbFN0YXJ0ZWRVcGRhdGUSDwoHY2FsbF9pZBgBIAEoCRIlCgl0b29sX2NhbGwYAiABKAsyEi5hZ2VudC52MS5Ub29sQ2FsbBIVCg1tb2RlbF9jYWxsX2lkGAMgASgJImgKF1Rvb2xDYWxsQ29tcGxldGVkVXBkYXRlEg8KB2NhbGxfaWQYASABKAkSJQoJdG9vbF9jYWxsGAIgASgLMhIuYWdlbnQudjEuVG9vbENhbGwSFQoNbW9kZWxfY2FsbF9pZBgDIAEoCSJvChNUb29sQ2FsbERlbHRhVXBkYXRlEg8KB2NhbGxfaWQYASABKAkSMAoPdG9vbF9jYWxsX2RlbHRhGAIgASgLMhcuYWdlbnQudjEuVG9vbENhbGxEZWx0YRIVCg1tb2RlbF9jYWxsX2lkGAMgASgJIn8KFVBhcnRpYWxUb29sQ2FsbFVwZGF0ZRIPCgdjYWxsX2lkGAEgASgJEiUKCXRvb2xfY2FsbBgCIAEoCzISLmFnZW50LnYxLlRvb2xDYWxsEhcKD2FyZ3NfdGV4dF9kZWx0YRgDIAEoCRIVCg1tb2RlbF9jYWxsX2lkGAQgASgJIiMKE1RoaW5raW5nRGVsdGFVcGRhdGUSDAoEdGV4dBgBIAEoCSI3ChdUaGlua2luZ0NvbXBsZXRlZFVwZGF0ZRIcChR0aGlua2luZ19kdXJhdGlvbl9tcxgBIAEoBSIiChBUb2tlbkRlbHRhVXBkYXRlEg4KBnRva2VucxgBIAEoBSIgCg1TdW1tYXJ5VXBkYXRlEg8KB3N1bW1hcnkYASABKAkiFgoUU3VtbWFyeVN0YXJ0ZWRVcGRhdGUiEQoPSGVhcnRiZWF0VXBkYXRlIhgKFlN1bW1hcnlDb21wbGV0ZWRVcGRhdGUi1wEKFlNoZWxsT3V0cHV0RGVsdGFVcGRhdGUSLQoGc3Rkb3V0GAEgASgLMhsuYWdlbnQudjEuU2hlbGxTdHJlYW1TdGRvdXRIABItCgZzdGRlcnIYAiABKAsyGy5hZ2VudC52MS5TaGVsbFN0cmVhbVN0ZGVyckgAEikKBGV4aXQYAyABKAsyGS5hZ2VudC52MS5TaGVsbFN0cmVhbUV4aXRIABIrCgVzdGFydBgEIAEoCzIaLmFnZW50LnYxLlNoZWxsU3RyZWFtU3RhcnRIAEIHCgVldmVudCIRCg9UdXJuRW5kZWRVcGRhdGUiSAoZVXNlck1lc3NhZ2VBcHBlbmRlZFVwZGF0ZRIrCgx1c2VyX21lc3NhZ2UYASABKAsyFS5hZ2VudC52MS5Vc2VyTWVzc2FnZSIkChFTdGVwU3RhcnRlZFVwZGF0ZRIPCgdzdGVwX2lkGAEgASgEIkAKE1N0ZXBDb21wbGV0ZWRVcGRhdGUSDwoHc3RlcF9pZBgBIAEoBBIYChBzdGVwX2R1cmF0aW9uX21zGAIgASgDIu8HChFJbnRlcmFjdGlvblVwZGF0ZRIvCgp0ZXh0X2RlbHRhGAEgASgLMhkuYWdlbnQudjEuVGV4dERlbHRhVXBkYXRlSAASPAoRcGFydGlhbF90b29sX2NhbGwYByABKAsyHy5hZ2VudC52MS5QYXJ0aWFsVG9vbENhbGxVcGRhdGVIABI4Cg90b29sX2NhbGxfZGVsdGEYDyABKAsyHS5hZ2VudC52MS5Ub29sQ2FsbERlbHRhVXBkYXRlSAASPAoRdG9vbF9jYWxsX3N0YXJ0ZWQYAiABKAsyHy5hZ2VudC52MS5Ub29sQ2FsbFN0YXJ0ZWRVcGRhdGVIABJAChN0b29sX2NhbGxfY29tcGxldGVkGAMgASgLMiEuYWdlbnQudjEuVG9vbENhbGxDb21wbGV0ZWRVcGRhdGVIABI3Cg50aGlua2luZ19kZWx0YRgEIAEoCzIdLmFnZW50LnYxLlRoaW5raW5nRGVsdGFVcGRhdGVIABI/ChJ0aGlua2luZ19jb21wbGV0ZWQYBSABKAsyIS5hZ2VudC52MS5UaGlua2luZ0NvbXBsZXRlZFVwZGF0ZUgAEkQKFXVzZXJfbWVzc2FnZV9hcHBlbmRlZBgGIAEoCzIjLmFnZW50LnYxLlVzZXJNZXNzYWdlQXBwZW5kZWRVcGRhdGVIABIxCgt0b2tlbl9kZWx0YRgIIAEoCzIaLmFnZW50LnYxLlRva2VuRGVsdGFVcGRhdGVIABIqCgdzdW1tYXJ5GAkgASgLMhcuYWdlbnQudjEuU3VtbWFyeVVwZGF0ZUgAEjkKD3N1bW1hcnlfc3RhcnRlZBgKIAEoCzIeLmFnZW50LnYxLlN1bW1hcnlTdGFydGVkVXBkYXRlSAASPQoRc3VtbWFyeV9jb21wbGV0ZWQYCyABKAsyIC5hZ2VudC52MS5TdW1tYXJ5Q29tcGxldGVkVXBkYXRlSAASPgoSc2hlbGxfb3V0cHV0X2RlbHRhGAwgASgLMiAuYWdlbnQudjEuU2hlbGxPdXRwdXREZWx0YVVwZGF0ZUgAEi4KCWhlYXJ0YmVhdBgNIAEoCzIZLmFnZW50LnYxLkhlYXJ0YmVhdFVwZGF0ZUgAEi8KCnR1cm5fZW5kZWQYDiABKAsyGS5hZ2VudC52MS5UdXJuRW5kZWRVcGRhdGVIABIzCgxzdGVwX3N0YXJ0ZWQYECABKAsyGy5hZ2VudC52MS5TdGVwU3RhcnRlZFVwZGF0ZUgAEjcKDnN0ZXBfY29tcGxldGVkGBEgASgLMh0uYWdlbnQudjEuU3RlcENvbXBsZXRlZFVwZGF0ZUgAQgkKB21lc3NhZ2UimgQKEEludGVyYWN0aW9uUXVlcnkSCgoCaWQYASABKA0SQwoYd2ViX3NlYXJjaF9yZXF1ZXN0X3F1ZXJ5GAIgASgLMh8uYWdlbnQudjEuV2ViU2VhcmNoUmVxdWVzdFF1ZXJ5SAASTwoeYXNrX3F1ZXN0aW9uX2ludGVyYWN0aW9uX3F1ZXJ5GAMgASgLMiUuYWdlbnQudjEuQXNrUXVlc3Rpb25JbnRlcmFjdGlvblF1ZXJ5SAASRQoZc3dpdGNoX21vZGVfcmVxdWVzdF9xdWVyeRgEIAEoCzIgLmFnZW50LnYxLlN3aXRjaE1vZGVSZXF1ZXN0UXVlcnlIABJDChhleGFfc2VhcmNoX3JlcXVlc3RfcXVlcnkYBSABKAsyHy5hZ2VudC52MS5FeGFTZWFyY2hSZXF1ZXN0UXVlcnlIABJBChdleGFfZmV0Y2hfcmVxdWVzdF9xdWVyeRgGIAEoCzIeLmFnZW50LnYxLkV4YUZldGNoUmVxdWVzdFF1ZXJ5SAASRQoZY3JlYXRlX3BsYW5fcmVxdWVzdF9xdWVyeRgHIAEoCzIgLmFnZW50LnYxLkNyZWF0ZVBsYW5SZXF1ZXN0UXVlcnlIABJFChlzZXR1cF92bV9lbnZpcm9ubWVudF9hcmdzGAggASgLMiAuYWdlbnQudjEuU2V0dXBWbUVudmlyb25tZW50QXJnc0gAQgcKBXF1ZXJ5IsYEChNJbnRlcmFjdGlvblJlc3BvbnNlEgoKAmlkGAEgASgNEkkKG3dlYl9zZWFyY2hfcmVxdWVzdF9yZXNwb25zZRgCIAEoCzIiLmFnZW50LnYxLldlYlNlYXJjaFJlcXVlc3RSZXNwb25zZUgAElUKIWFza19xdWVzdGlvbl9pbnRlcmFjdGlvbl9yZXNwb25zZRgDIAEoCzIoLmFnZW50LnYxLkFza1F1ZXN0aW9uSW50ZXJhY3Rpb25SZXNwb25zZUgAEksKHHN3aXRjaF9tb2RlX3JlcXVlc3RfcmVzcG9uc2UYBCABKAsyIy5hZ2VudC52MS5Td2l0Y2hNb2RlUmVxdWVzdFJlc3BvbnNlSAASSQobZXhhX3NlYXJjaF9yZXF1ZXN0X3Jlc3BvbnNlGAUgASgLMiIuYWdlbnQudjEuRXhhU2VhcmNoUmVxdWVzdFJlc3BvbnNlSAASRwoaZXhhX2ZldGNoX3JlcXVlc3RfcmVzcG9uc2UYBiABKAsyIS5hZ2VudC52MS5FeGFGZXRjaFJlcXVlc3RSZXNwb25zZUgAEksKHGNyZWF0ZV9wbGFuX3JlcXVlc3RfcmVzcG9uc2UYByABKAsyIy5hZ2VudC52MS5DcmVhdGVQbGFuUmVxdWVzdFJlc3BvbnNlSAASSQobc2V0dXBfdm1fZW52aXJvbm1lbnRfcmVzdWx0GAggASgLMiIuYWdlbnQudjEuU2V0dXBWbUVudmlyb25tZW50UmVzdWx0SABCCAoGcmVzdWx0IlwKG0Fza1F1ZXN0aW9uSW50ZXJhY3Rpb25RdWVyeRInCgRhcmdzGAEgASgLMhkuYWdlbnQudjEuQXNrUXVlc3Rpb25BcmdzEhQKDHRvb2xfY2FsbF9pZBgCIAEoCSJNCh5Bc2tRdWVzdGlvbkludGVyYWN0aW9uUmVzcG9uc2USKwoGcmVzdWx0GAEgASgLMhsuYWdlbnQudjEuQXNrUXVlc3Rpb25SZXN1bHQiEQoPQ2xpZW50SGVhcnRiZWF0IsYECg5QcmV3YXJtUmVxdWVzdBItCg1tb2RlbF9kZXRhaWxzGAEgASgLMhYuYWdlbnQudjEuTW9kZWxEZXRhaWxzEjYKD3JlcXVlc3RlZF9tb2RlbBgJIAEoCzIYLmFnZW50LnYxLlJlcXVlc3RlZE1vZGVsSACIAQESHAoPY29udmVyc2F0aW9uX2lkGAIgASgJSAGIAQESQAoSY29udmVyc2F0aW9uX3N0YXRlGAMgASgLMiQuYWdlbnQudjEuQ29udmVyc2F0aW9uU3RhdGVTdHJ1Y3R1cmUSJQoJbWNwX3Rvb2xzGAQgASgLMhIuYWdlbnQudjEuTWNwVG9vbHMSRAoXbWNwX2ZpbGVfc3lzdGVtX29wdGlvbnMYBSABKAsyHi5hZ2VudC52MS5NY3BGaWxlU3lzdGVtT3B0aW9uc0gCiAEBEh8KEmJlc3Rfb2Zfbl9ncm91cF9pZBgGIAEoCUgDiAEBEigKG3RyeV91c2VfYmVzdF9vZl9uX3Byb21vdGlvbhgHIAEoCEgEiAEBEiEKFGN1c3RvbV9zeXN0ZW1fcHJvbXB0GAggASgJSAWIAQFCEgoQX3JlcXVlc3RlZF9tb2RlbEISChBfY29udmVyc2F0aW9uX2lkQhoKGF9tY3BfZmlsZV9zeXN0ZW1fb3B0aW9uc0IVChNfYmVzdF9vZl9uX2dyb3VwX2lkQh4KHF90cnlfdXNlX2Jlc3Rfb2Zfbl9wcm9tb3Rpb25CFwoVX2N1c3RvbV9zeXN0ZW1fcHJvbXB0Ih0KD0V4ZWNTZXJ2ZXJBYm9ydBIKCgJpZBgBIAEoDSJRChhFeGVjU2VydmVyQ29udHJvbE1lc3NhZ2USKgoFYWJvcnQYASABKAsyGS5hZ2VudC52MS5FeGVjU2VydmVyQWJvcnRIAEIJCgdtZXNzYWdlIvgDChJBZ2VudENsaWVudE1lc3NhZ2USMAoLcnVuX3JlcXVlc3QYASABKAsyGS5hZ2VudC52MS5BZ2VudFJ1blJlcXVlc3RIABI6ChNleGVjX2NsaWVudF9tZXNzYWdlGAIgASgLMhsuYWdlbnQudjEuRXhlY0NsaWVudE1lc3NhZ2VIABJJChtleGVjX2NsaWVudF9jb250cm9sX21lc3NhZ2UYBSABKAsyIi5hZ2VudC52MS5FeGVjQ2xpZW50Q29udHJvbE1lc3NhZ2VIABI2ChFrdl9jbGllbnRfbWVzc2FnZRgDIAEoCzIZLmFnZW50LnYxLkt2Q2xpZW50TWVzc2FnZUgAEjsKE2NvbnZlcnNhdGlvbl9hY3Rpb24YBCABKAsyHC5hZ2VudC52MS5Db252ZXJzYXRpb25BY3Rpb25IABI9ChRpbnRlcmFjdGlvbl9yZXNwb25zZRgGIAEoCzIdLmFnZW50LnYxLkludGVyYWN0aW9uUmVzcG9uc2VIABI1ChBjbGllbnRfaGVhcnRiZWF0GAcgASgLMhkuYWdlbnQudjEuQ2xpZW50SGVhcnRiZWF0SAASMwoPcHJld2FybV9yZXF1ZXN0GAggASgLMhguYWdlbnQudjEuUHJld2FybVJlcXVlc3RIAEIJCgdtZXNzYWdlIqIDChJBZ2VudFNlcnZlck1lc3NhZ2USOQoSaW50ZXJhY3Rpb25fdXBkYXRlGAEgASgLMhsuYWdlbnQudjEuSW50ZXJhY3Rpb25VcGRhdGVIABI6ChNleGVjX3NlcnZlcl9tZXNzYWdlGAIgASgLMhsuYWdlbnQudjEuRXhlY1NlcnZlck1lc3NhZ2VIABJJChtleGVjX3NlcnZlcl9jb250cm9sX21lc3NhZ2UYBSABKAsyIi5hZ2VudC52MS5FeGVjU2VydmVyQ29udHJvbE1lc3NhZ2VIABJOCh5jb252ZXJzYXRpb25fY2hlY2twb2ludF91cGRhdGUYAyABKAsyJC5hZ2VudC52MS5Db252ZXJzYXRpb25TdGF0ZVN0cnVjdHVyZUgAEjYKEWt2X3NlcnZlcl9tZXNzYWdlGAQgASgLMhkuYWdlbnQudjEuS3ZTZXJ2ZXJNZXNzYWdlSAASNwoRaW50ZXJhY3Rpb25fcXVlcnkYByABKAsyGi5hZ2VudC52MS5JbnRlcmFjdGlvblF1ZXJ5SABCCQoHbWVzc2FnZSIoChBOYW1lQWdlbnRSZXF1ZXN0EhQKDHVzZXJfbWVzc2FnZRgBIAEoCSIhChFOYW1lQWdlbnRSZXNwb25zZRIMCgRuYW1lGAEgASgJIjIKFkdldFVzYWJsZU1vZGVsc1JlcXVlc3QSGAoQY3VzdG9tX21vZGVsX2lkcxgBIAMoCSJBChdHZXRVc2FibGVNb2RlbHNSZXNwb25zZRImCgZtb2RlbHMYASADKAsyFi5hZ2VudC52MS5Nb2RlbERldGFpbHMiHgocR2V0RGVmYXVsdE1vZGVsRm9yQ2xpUmVxdWVzdCJGCh1HZXREZWZhdWx0TW9kZWxGb3JDbGlSZXNwb25zZRIlCgVtb2RlbBgBIAEoCzIWLmFnZW50LnYxLk1vZGVsRGV0YWlscyIfCh1HZXRBbGxvd2VkTW9kZWxJbnRlbnRzUmVxdWVzdCI3Ch5HZXRBbGxvd2VkTW9kZWxJbnRlbnRzUmVzcG9uc2USFQoNbW9kZWxfaW50ZW50cxgBIAMoCSKXAgoTSWRlRWRpdG9yc1N0YXRlRmlsZRIVCg1yZWxhdGl2ZV9wYXRoGAEgASgJEhUKDWFic29sdXRlX3BhdGgYAiABKAkSIQoUaXNfY3VycmVudGx5X2ZvY3VzZWQYAyABKAhIAIgBARIgChNjdXJyZW50X2xpbmVfbnVtYmVyGAQgASgFSAGIAQESHgoRY3VycmVudF9saW5lX3RleHQYBSABKAlIAogBARIXCgpsaW5lX2NvdW50GAYgASgFSAOIAQFCFwoVX2lzX2N1cnJlbnRseV9mb2N1c2VkQhYKFF9jdXJyZW50X2xpbmVfbnVtYmVyQhQKEl9jdXJyZW50X2xpbmVfdGV4dEINCgtfbGluZV9jb3VudCJTChNJZGVFZGl0b3JzU3RhdGVMaXRlEjwKFXJlY2VudGx5X3ZpZXdlZF9maWxlcxgBIAMoCzIdLmFnZW50LnYxLklkZUVkaXRvcnNTdGF0ZUZpbGUidAoWQXBwbHlBZ2VudERpZmZUb29sQ2FsbBIqCgRhcmdzGAEgASgLMhwuYWdlbnQudjEuQXBwbHlBZ2VudERpZmZBcmdzEi4KBnJlc3VsdBgCIAEoCzIeLmFnZW50LnYxLkFwcGx5QWdlbnREaWZmUmVzdWx0IiYKEkFwcGx5QWdlbnREaWZmQXJncxIQCghhZ2VudF9pZBgBIAEoCSKEAQoUQXBwbHlBZ2VudERpZmZSZXN1bHQSMgoHc3VjY2VzcxgBIAEoCzIfLmFnZW50LnYxLkFwcGx5QWdlbnREaWZmU3VjY2Vzc0gAEi4KBWVycm9yGAIgASgLMh0uYWdlbnQudjEuQXBwbHlBZ2VudERpZmZFcnJvckgAQggKBnJlc3VsdCJOChVBcHBseUFnZW50RGlmZlN1Y2Nlc3MSNQoPYXBwbGllZF9jaGFuZ2VzGAEgAygLMhwuYWdlbnQudjEuQXBwbGllZEFnZW50Q2hhbmdlIukBChJBcHBsaWVkQWdlbnRDaGFuZ2USDAoEcGF0aBgBIAEoCRITCgtjaGFuZ2VfdHlwZRgCIAEoBRIbCg5iZWZvcmVfY29udGVudBgDIAEoCUgAiAEBEhoKDWFmdGVyX2NvbnRlbnQYBCABKAlIAYgBARISCgVlcnJvchgFIAEoCUgCiAEBEh4KEW1lc3NhZ2VfZm9yX21vZGVsGAYgASgJSAOIAQFCEQoPX2JlZm9yZV9jb250ZW50QhAKDl9hZnRlcl9jb250ZW50QggKBl9lcnJvckIUChJfbWVzc2FnZV9mb3JfbW9kZWwiWwoTQXBwbHlBZ2VudERpZmZFcnJvchINCgVlcnJvchgBIAEoCRI1Cg9hcHBsaWVkX2NoYW5nZXMYAiADKAsyHC5hZ2VudC52MS5BcHBsaWVkQWdlbnRDaGFuZ2UiawoTQXNrUXVlc3Rpb25Ub29sQ2FsbBInCgRhcmdzGAEgASgLMhkuYWdlbnQudjEuQXNrUXVlc3Rpb25BcmdzEisKBnJlc3VsdBgCIAEoCzIbLmFnZW50LnYxLkFza1F1ZXN0aW9uUmVzdWx0Io8BCg9Bc2tRdWVzdGlvbkFyZ3MSDQoFdGl0bGUYASABKAkSNQoJcXVlc3Rpb25zGAIgAygLMiIuYWdlbnQudjEuQXNrUXVlc3Rpb25BcmdzX1F1ZXN0aW9uEhEKCXJ1bl9hc3luYxgFIAEoCBIjChthc3luY19vcmlnaW5hbF90b29sX2NhbGxfaWQYBiABKAkigQEKGEFza1F1ZXN0aW9uQXJnc19RdWVzdGlvbhIKCgJpZBgBIAEoCRIOCgZwcm9tcHQYAiABKAkSMQoHb3B0aW9ucxgDIAMoCzIgLmFnZW50LnYxLkFza1F1ZXN0aW9uQXJnc19PcHRpb24SFgoOYWxsb3dfbXVsdGlwbGUYBCABKAgiMwoWQXNrUXVlc3Rpb25BcmdzX09wdGlvbhIKCgJpZBgBIAEoCRINCgVsYWJlbBgCIAEoCSISChBBc2tRdWVzdGlvbkFzeW5jItsBChFBc2tRdWVzdGlvblJlc3VsdBIvCgdzdWNjZXNzGAEgASgLMhwuYWdlbnQudjEuQXNrUXVlc3Rpb25TdWNjZXNzSAASKwoFZXJyb3IYAiABKAsyGi5hZ2VudC52MS5Bc2tRdWVzdGlvbkVycm9ySAASMQoIcmVqZWN0ZWQYAyABKAsyHS5hZ2VudC52MS5Bc2tRdWVzdGlvblJlamVjdGVkSAASKwoFYXN5bmMYBCABKAsyGi5hZ2VudC52MS5Bc2tRdWVzdGlvbkFzeW5jSABCCAoGcmVzdWx0IkoKEkFza1F1ZXN0aW9uU3VjY2VzcxI0CgdhbnN3ZXJzGAEgAygLMiMuYWdlbnQudjEuQXNrUXVlc3Rpb25TdWNjZXNzX0Fuc3dlciJNChlBc2tRdWVzdGlvblN1Y2Nlc3NfQW5zd2VyEhMKC3F1ZXN0aW9uX2lkGAEgASgJEhsKE3NlbGVjdGVkX29wdGlvbl9pZHMYAiADKAkiKQoQQXNrUXVlc3Rpb25FcnJvchIVCg1lcnJvcl9tZXNzYWdlGAEgASgJIiUKE0Fza1F1ZXN0aW9uUmVqZWN0ZWQSDgoGcmVhc29uGAEgASgJIokCChhCYWNrZ3JvdW5kU2hlbGxTcGF3bkFyZ3MSDwoHY29tbWFuZBgBIAEoCRIZChF3b3JraW5nX2RpcmVjdG9yeRgCIAEoCRIUCgx0b29sX2NhbGxfaWQYAyABKAkSOwoOcGFyc2luZ19yZXN1bHQYBCABKAsyIy5hZ2VudC52MS5TaGVsbENvbW1hbmRQYXJzaW5nUmVzdWx0EjQKDnNhbmRib3hfcG9saWN5GAUgASgLMhcuYWdlbnQudjEuU2FuZGJveFBvbGljeUgAiAEBEiUKHWVuYWJsZV93cml0ZV9zaGVsbF9zdGRpbl90b29sGAYgASgIQhEKD19zYW5kYm94X3BvbGljeSKBAgoaQmFja2dyb3VuZFNoZWxsU3Bhd25SZXN1bHQSOAoHc3VjY2VzcxgBIAEoCzIlLmFnZW50LnYxLkJhY2tncm91bmRTaGVsbFNwYXduU3VjY2Vzc0gAEjQKBWVycm9yGAIgASgLMiMuYWdlbnQudjEuQmFja2dyb3VuZFNoZWxsU3Bhd25FcnJvckgAEisKCHJlamVjdGVkGAMgASgLMhcuYWdlbnQudjEuU2hlbGxSZWplY3RlZEgAEjwKEXBlcm1pc3Npb25fZGVuaWVkGAQgASgLMh8uYWdlbnQudjEuU2hlbGxQZXJtaXNzaW9uRGVuaWVkSABCCAoGcmVzdWx0InUKG0JhY2tncm91bmRTaGVsbFNwYXduU3VjY2VzcxIQCghzaGVsbF9pZBgBIAEoDRIPCgdjb21tYW5kGAIgASgJEhkKEXdvcmtpbmdfZGlyZWN0b3J5GAMgASgJEhAKA3BpZBgEIAEoDUgAiAEBQgYKBF9waWQiVgoZQmFja2dyb3VuZFNoZWxsU3Bhd25FcnJvchIPCgdjb21tYW5kGAEgASgJEhkKEXdvcmtpbmdfZGlyZWN0b3J5GAIgASgJEg0KBWVycm9yGAMgASgJIjYKE1dyaXRlU2hlbGxTdGRpbkFyZ3MSEAoIc2hlbGxfaWQYASABKA0SDQoFY2hhcnMYAiABKAkihwEKFVdyaXRlU2hlbGxTdGRpblJlc3VsdBIzCgdzdWNjZXNzGAEgASgLMiAuYWdlbnQudjEuV3JpdGVTaGVsbFN0ZGluU3VjY2Vzc0gAEi8KBWVycm9yGAIgASgLMh4uYWdlbnQudjEuV3JpdGVTaGVsbFN0ZGluRXJyb3JIAEIICgZyZXN1bHQiXQoWV3JpdGVTaGVsbFN0ZGluU3VjY2VzcxIQCghzaGVsbF9pZBgBIAEoDRIxCil0ZXJtaW5hbF9maWxlX2xlbmd0aF9iZWZvcmVfaW5wdXRfd3JpdHRlbhgCIAEoDSIlChRXcml0ZVNoZWxsU3RkaW5FcnJvchINCgVlcnJvchgBIAEoCSIiCgpDb29yZGluYXRlEgkKAXgYASABKAUSCQoBeRgCIAEoBSJVCg9Db21wdXRlclVzZUFyZ3MSFAoMdG9vbF9jYWxsX2lkGAEgASgJEiwKB2FjdGlvbnMYAiADKAsyGy5hZ2VudC52MS5Db21wdXRlclVzZUFjdGlvbiKBBAoRQ29tcHV0ZXJVc2VBY3Rpb24SLwoKbW91c2VfbW92ZRgBIAEoCzIZLmFnZW50LnYxLk1vdXNlTW92ZUFjdGlvbkgAEiYKBWNsaWNrGAIgASgLMhUuYWdlbnQudjEuQ2xpY2tBY3Rpb25IABIvCgptb3VzZV9kb3duGAMgASgLMhkuYWdlbnQudjEuTW91c2VEb3duQWN0aW9uSAASKwoIbW91c2VfdXAYBCABKAsyFy5hZ2VudC52MS5Nb3VzZVVwQWN0aW9uSAASJAoEZHJhZxgFIAEoCzIULmFnZW50LnYxLkRyYWdBY3Rpb25IABIoCgZzY3JvbGwYBiABKAsyFi5hZ2VudC52MS5TY3JvbGxBY3Rpb25IABIkCgR0eXBlGAcgASgLMhQuYWdlbnQudjEuVHlwZUFjdGlvbkgAEiIKA2tleRgIIAEoCzITLmFnZW50LnYxLktleUFjdGlvbkgAEiQKBHdhaXQYCSABKAsyFC5hZ2VudC52MS5XYWl0QWN0aW9uSAASMAoKc2NyZWVuc2hvdBgKIAEoCzIaLmFnZW50LnYxLlNjcmVlbnNob3RBY3Rpb25IABI5Cg9jdXJzb3JfcG9zaXRpb24YCyABKAsyHi5hZ2VudC52MS5DdXJzb3JQb3NpdGlvbkFjdGlvbkgAQggKBmFjdGlvbiI7Cg9Nb3VzZU1vdmVBY3Rpb24SKAoKY29vcmRpbmF0ZRgBIAEoCzIULmFnZW50LnYxLkNvb3JkaW5hdGUimAEKC0NsaWNrQWN0aW9uEi0KCmNvb3JkaW5hdGUYASABKAsyFC5hZ2VudC52MS5Db29yZGluYXRlSACIAQESDgoGYnV0dG9uGAIgASgFEg0KBWNvdW50GAMgASgFEhoKDW1vZGlmaWVyX2tleXMYBCABKAlIAYgBAUINCgtfY29vcmRpbmF0ZUIQCg5fbW9kaWZpZXJfa2V5cyIhCg9Nb3VzZURvd25BY3Rpb24SDgoGYnV0dG9uGAEgASgFIh8KDU1vdXNlVXBBY3Rpb24SDgoGYnV0dG9uGAEgASgFIkAKCkRyYWdBY3Rpb24SIgoEcGF0aBgBIAMoCzIULmFnZW50LnYxLkNvb3JkaW5hdGUSDgoGYnV0dG9uGAIgASgFIp0BCgxTY3JvbGxBY3Rpb24SLQoKY29vcmRpbmF0ZRgBIAEoCzIULmFnZW50LnYxLkNvb3JkaW5hdGVIAIgBARIRCglkaXJlY3Rpb24YAiABKAUSDgoGYW1vdW50GAMgASgFEhoKDW1vZGlmaWVyX2tleXMYBCABKAlIAYgBAUINCgtfY29vcmRpbmF0ZUIQCg5fbW9kaWZpZXJfa2V5cyIaCgpUeXBlQWN0aW9uEgwKBHRleHQYASABKAkiTAoJS2V5QWN0aW9uEgsKA2tleRgBIAEoCRIdChBob2xkX2R1cmF0aW9uX21zGAIgASgFSACIAQFCEwoRX2hvbGRfZHVyYXRpb25fbXMiIQoKV2FpdEFjdGlvbhITCgtkdXJhdGlvbl9tcxgBIAEoBSISChBTY3JlZW5zaG90QWN0aW9uIhYKFEN1cnNvclBvc2l0aW9uQWN0aW9uInsKEUNvbXB1dGVyVXNlUmVzdWx0Ei8KB3N1Y2Nlc3MYASABKAsyHC5hZ2VudC52MS5Db21wdXRlclVzZVN1Y2Nlc3NIABIrCgVlcnJvchgCIAEoCzIaLmFnZW50LnYxLkNvbXB1dGVyVXNlRXJyb3JIAEIICgZyZXN1bHQi+wEKEkNvbXB1dGVyVXNlU3VjY2VzcxIUCgxhY3Rpb25fY291bnQYASABKAUSEwoLZHVyYXRpb25fbXMYAiABKAUSFwoKc2NyZWVuc2hvdBgDIAEoCUgAiAEBEhAKA2xvZxgEIAEoCUgBiAEBEhwKD3NjcmVlbnNob3RfcGF0aBgFIAEoCUgCiAEBEjIKD2N1cnNvcl9wb3NpdGlvbhgGIAEoCzIULmFnZW50LnYxLkNvb3JkaW5hdGVIA4gBAUINCgtfc2NyZWVuc2hvdEIGCgRfbG9nQhIKEF9zY3JlZW5zaG90X3BhdGhCEgoQX2N1cnNvcl9wb3NpdGlvbiLAAQoQQ29tcHV0ZXJVc2VFcnJvchINCgVlcnJvchgBIAEoCRIUCgxhY3Rpb25fY291bnQYAiABKAUSEwoLZHVyYXRpb25fbXMYAyABKAUSEAoDbG9nGAQgASgJSACIAQESFwoKc2NyZWVuc2hvdBgFIAEoCUgBiAEBEhwKD3NjcmVlbnNob3RfcGF0aBgGIAEoCUgCiAEBQgYKBF9sb2dCDQoLX3NjcmVlbnNob3RCEgoQX3NjcmVlbnNob3RfcGF0aCJrChNDb21wdXRlclVzZVRvb2xDYWxsEicKBGFyZ3MYASABKAsyGS5hZ2VudC52MS5Db21wdXRlclVzZUFyZ3MSKwoGcmVzdWx0GAIgASgLMhsuYWdlbnQudjEuQ29tcHV0ZXJVc2VSZXN1bHQiaAoSQ3JlYXRlUGxhblRvb2xDYWxsEiYKBGFyZ3MYASABKAsyGC5hZ2VudC52MS5DcmVhdGVQbGFuQXJncxIqCgZyZXN1bHQYAiABKAsyGi5hZ2VudC52MS5DcmVhdGVQbGFuUmVzdWx0IjgKBVBoYXNlEgwKBG5hbWUYASABKAkSIQoFdG9kb3MYAiADKAsyEi5hZ2VudC52MS5Ub2RvSXRlbSKWAQoOQ3JlYXRlUGxhbkFyZ3MSDAoEcGxhbhgBIAEoCRIhCgV0b2RvcxgCIAMoCzISLmFnZW50LnYxLlRvZG9JdGVtEhAKCG92ZXJ2aWV3GAMgASgJEgwKBG5hbWUYBCABKAkSEgoKaXNfcHJvamVjdBgFIAEoCBIfCgZwaGFzZXMYBiADKAsyDy5hZ2VudC52MS5QaGFzZSKKAQoQQ3JlYXRlUGxhblJlc3VsdBIQCghwbGFuX3VyaRgDIAEoCRIuCgdzdWNjZXNzGAEgASgLMhsuYWdlbnQudjEuQ3JlYXRlUGxhblN1Y2Nlc3NIABIqCgVlcnJvchgCIAEoCzIZLmFnZW50LnYxLkNyZWF0ZVBsYW5FcnJvckgAQggKBnJlc3VsdCITChFDcmVhdGVQbGFuU3VjY2VzcyIgCg9DcmVhdGVQbGFuRXJyb3ISDQoFZXJyb3IYASABKAkiVgoWQ3JlYXRlUGxhblJlcXVlc3RRdWVyeRImCgRhcmdzGAEgASgLMhguYWdlbnQudjEuQ3JlYXRlUGxhbkFyZ3MSFAoMdG9vbF9jYWxsX2lkGAIgASgJIkcKGUNyZWF0ZVBsYW5SZXF1ZXN0UmVzcG9uc2USKgoGcmVzdWx0GAEgASgLMhouYWdlbnQudjEuQ3JlYXRlUGxhblJlc3VsdCIWChRDdXJzb3JSdWxlVHlwZUdsb2JhbCIoChdDdXJzb3JSdWxlVHlwZUZpbGVHbG9icxINCgVnbG9icxgBIAMoCSIxChpDdXJzb3JSdWxlVHlwZUFnZW50RmV0Y2hlZBITCgtkZXNjcmlwdGlvbhgBIAEoCSIgCh5DdXJzb3JSdWxlVHlwZU1hbnVhbGx5QXR0YWNoZWQiiwIKDkN1cnNvclJ1bGVUeXBlEjAKBmdsb2JhbBgBIAEoCzIeLmFnZW50LnYxLkN1cnNvclJ1bGVUeXBlR2xvYmFsSAASOQoMZmlsZV9nbG9iYmVkGAIgASgLMiEuYWdlbnQudjEuQ3Vyc29yUnVsZVR5cGVGaWxlR2xvYnNIABI9Cg1hZ2VudF9mZXRjaGVkGAMgASgLMiQuYWdlbnQudjEuQ3Vyc29yUnVsZVR5cGVBZ2VudEZldGNoZWRIABJFChFtYW51YWxseV9hdHRhY2hlZBgEIAEoCzIoLmFnZW50LnYxLkN1cnNvclJ1bGVUeXBlTWFudWFsbHlBdHRhY2hlZEgAQgYKBHR5cGUiyAEKCkN1cnNvclJ1bGUSEQoJZnVsbF9wYXRoGAEgASgJEg8KB2NvbnRlbnQYAiABKAkSJgoEdHlwZRgDIAEoCzIYLmFnZW50LnYxLkN1cnNvclJ1bGVUeXBlEg4KBnNvdXJjZRgEIAEoBRIeChFnaXRfcmVtb3RlX29yaWdpbhgFIAEoCUgAiAEBEhgKC3BhcnNlX2Vycm9yGAYgASgJSAGIAQFCFAoSX2dpdF9yZW1vdGVfb3JpZ2luQg4KDF9wYXJzZV9lcnJvciIwCgpEZWxldGVBcmdzEgwKBHBhdGgYASABKAkSFAoMdG9vbF9jYWxsX2lkGAIgASgJIu0CCgxEZWxldGVSZXN1bHQSKgoHc3VjY2VzcxgBIAEoCzIXLmFnZW50LnYxLkRlbGV0ZVN1Y2Nlc3NIABI2Cg5maWxlX25vdF9mb3VuZBgCIAEoCzIcLmFnZW50LnYxLkRlbGV0ZUZpbGVOb3RGb3VuZEgAEisKCG5vdF9maWxlGAMgASgLMhcuYWdlbnQudjEuRGVsZXRlTm90RmlsZUgAEj0KEXBlcm1pc3Npb25fZGVuaWVkGAQgASgLMiAuYWdlbnQudjEuRGVsZXRlUGVybWlzc2lvbkRlbmllZEgAEi0KCWZpbGVfYnVzeRgFIAEoCzIYLmFnZW50LnYxLkRlbGV0ZUZpbGVCdXN5SAASLAoIcmVqZWN0ZWQYBiABKAsyGC5hZ2VudC52MS5EZWxldGVSZWplY3RlZEgAEiYKBWVycm9yGAcgASgLMhUuYWdlbnQudjEuRGVsZXRlRXJyb3JIAEIICgZyZXN1bHQiXAoNRGVsZXRlU3VjY2VzcxIMCgRwYXRoGAEgASgJEhQKDGRlbGV0ZWRfZmlsZRgCIAEoCRIRCglmaWxlX3NpemUYAyABKAMSFAoMcHJldl9jb250ZW50GAQgASgJIiIKEkRlbGV0ZUZpbGVOb3RGb3VuZBIMCgRwYXRoGAEgASgJIjIKDURlbGV0ZU5vdEZpbGUSDAoEcGF0aBgBIAEoCRITCgthY3R1YWxfdHlwZRgCIAEoCSJZChZEZWxldGVQZXJtaXNzaW9uRGVuaWVkEgwKBHBhdGgYASABKAkSHAoUY2xpZW50X3Zpc2libGVfZXJyb3IYAiABKAkSEwoLaXNfcmVhZG9ubHkYAyABKAgiHgoORGVsZXRlRmlsZUJ1c3kSDAoEcGF0aBgBIAEoCSIuCg5EZWxldGVSZWplY3RlZBIMCgRwYXRoGAEgASgJEg4KBnJlYXNvbhgCIAEoCSIqCgtEZWxldGVFcnJvchIMCgRwYXRoGAEgASgJEg0KBWVycm9yGAIgASgJIlwKDkRlbGV0ZVRvb2xDYWxsEiIKBGFyZ3MYASABKAsyFC5hZ2VudC52MS5EZWxldGVBcmdzEiYKBnJlc3VsdBgCIAEoCzIWLmFnZW50LnYxLkRlbGV0ZVJlc3VsdCI1Cg9EaWFnbm9zdGljc0FyZ3MSDAoEcGF0aBgBIAEoCRIUCgx0b29sX2NhbGxfaWQYAiABKAkirwIKEURpYWdub3N0aWNzUmVzdWx0Ei8KB3N1Y2Nlc3MYASABKAsyHC5hZ2VudC52MS5EaWFnbm9zdGljc1N1Y2Nlc3NIABIrCgVlcnJvchgCIAEoCzIaLmFnZW50LnYxLkRpYWdub3N0aWNzRXJyb3JIABIxCghyZWplY3RlZBgDIAEoCzIdLmFnZW50LnYxLkRpYWdub3N0aWNzUmVqZWN0ZWRIABI7Cg5maWxlX25vdF9mb3VuZBgEIAEoCzIhLmFnZW50LnYxLkRpYWdub3N0aWNzRmlsZU5vdEZvdW5kSAASQgoRcGVybWlzc2lvbl9kZW5pZWQYBSABKAsyJS5hZ2VudC52MS5EaWFnbm9zdGljc1Blcm1pc3Npb25EZW5pZWRIAEIICgZyZXN1bHQiaAoSRGlhZ25vc3RpY3NTdWNjZXNzEgwKBHBhdGgYASABKAkSKQoLZGlhZ25vc3RpY3MYAiADKAsyFC5hZ2VudC52MS5EaWFnbm9zdGljEhkKEXRvdGFsX2RpYWdub3N0aWNzGAMgASgFIn8KCkRpYWdub3N0aWMSEAoIc2V2ZXJpdHkYASABKAUSHgoFcmFuZ2UYAiABKAsyDy5hZ2VudC52MS5SYW5nZRIPCgdtZXNzYWdlGAMgASgJEg4KBnNvdXJjZRgEIAEoCRIMCgRjb2RlGAUgASgJEhAKCGlzX3N0YWxlGAYgASgIIi8KEERpYWdub3N0aWNzRXJyb3ISDAoEcGF0aBgBIAEoCRINCgVlcnJvchgCIAEoCSIzChNEaWFnbm9zdGljc1JlamVjdGVkEgwKBHBhdGgYASABKAkSDgoGcmVhc29uGAIgASgJIicKF0RpYWdub3N0aWNzRmlsZU5vdEZvdW5kEgwKBHBhdGgYASABKAkiKwobRGlhZ25vc3RpY3NQZXJtaXNzaW9uRGVuaWVkEgwKBHBhdGgYASABKAkiSAoIRWRpdEFyZ3MSDAoEcGF0aBgBIAEoCRIbCg5zdHJlYW1fY29udGVudBgGIAEoCUgAiAEBQhEKD19zdHJlYW1fY29udGVudCLWAgoKRWRpdFJlc3VsdBIoCgdzdWNjZXNzGAEgASgLMhUuYWdlbnQudjEuRWRpdFN1Y2Nlc3NIABI0Cg5maWxlX25vdF9mb3VuZBgCIAEoCzIaLmFnZW50LnYxLkVkaXRGaWxlTm90Rm91bmRIABJEChZyZWFkX3Blcm1pc3Npb25fZGVuaWVkGAMgASgLMiIuYWdlbnQudjEuRWRpdFJlYWRQZXJtaXNzaW9uRGVuaWVkSAASRgoXd3JpdGVfcGVybWlzc2lvbl9kZW5pZWQYBCABKAsyIy5hZ2VudC52MS5FZGl0V3JpdGVQZXJtaXNzaW9uRGVuaWVkSAASKgoIcmVqZWN0ZWQYBiABKAsyFi5hZ2VudC52MS5FZGl0UmVqZWN0ZWRIABIkCgVlcnJvchgHIAEoCzITLmFnZW50LnYxLkVkaXRFcnJvckgAQggKBnJlc3VsdCKkAgoLRWRpdFN1Y2Nlc3MSDAoEcGF0aBgBIAEoCRIYCgtsaW5lc19hZGRlZBgDIAEoBUgAiAEBEhoKDWxpbmVzX3JlbW92ZWQYBCABKAVIAYgBARIYCgtkaWZmX3N0cmluZxgFIAEoCUgCiAEBEiUKGGJlZm9yZV9mdWxsX2ZpbGVfY29udGVudBgGIAEoCUgDiAEBEh8KF2FmdGVyX2Z1bGxfZmlsZV9jb250ZW50GAcgASgJEhQKB21lc3NhZ2UYCCABKAlIBIgBAUIOCgxfbGluZXNfYWRkZWRCEAoOX2xpbmVzX3JlbW92ZWRCDgoMX2RpZmZfc3RyaW5nQhsKGV9iZWZvcmVfZnVsbF9maWxlX2NvbnRlbnRCCgoIX21lc3NhZ2UiIAoQRWRpdEZpbGVOb3RGb3VuZBIMCgRwYXRoGAEgASgJIigKGEVkaXRSZWFkUGVybWlzc2lvbkRlbmllZBIMCgRwYXRoGAEgASgJIk0KGUVkaXRXcml0ZVBlcm1pc3Npb25EZW5pZWQSDAoEcGF0aBgBIAEoCRINCgVlcnJvchgCIAEoCRITCgtpc19yZWFkb25seRgDIAEoCCIsCgxFZGl0UmVqZWN0ZWQSDAoEcGF0aBgBIAEoCRIOCgZyZWFzb24YAiABKAkiYgoJRWRpdEVycm9yEgwKBHBhdGgYASABKAkSDQoFZXJyb3IYAiABKAkSIAoTbW9kZWxfdmlzaWJsZV9lcnJvchgFIAEoCUgAiAEBQhYKFF9tb2RlbF92aXNpYmxlX2Vycm9yIlYKDEVkaXRUb29sQ2FsbBIgCgRhcmdzGAEgASgLMhIuYWdlbnQudjEuRWRpdEFyZ3MSJAoGcmVzdWx0GAIgASgLMhQuYWdlbnQudjEuRWRpdFJlc3VsdCIxChFFZGl0VG9vbENhbGxEZWx0YRIcChRzdHJlYW1fY29udGVudF9kZWx0YRgBIAEoCSIxCgxFeGFGZXRjaEFyZ3MSCwoDaWRzGAEgAygJEhQKDHRvb2xfY2FsbF9pZBgCIAEoCSKiAQoORXhhRmV0Y2hSZXN1bHQSLAoHc3VjY2VzcxgBIAEoCzIZLmFnZW50LnYxLkV4YUZldGNoU3VjY2Vzc0gAEigKBWVycm9yGAIgASgLMhcuYWdlbnQudjEuRXhhRmV0Y2hFcnJvckgAEi4KCHJlamVjdGVkGAMgASgLMhouYWdlbnQudjEuRXhhRmV0Y2hSZWplY3RlZEgAQggKBnJlc3VsdCI+Cg9FeGFGZXRjaFN1Y2Nlc3MSKwoIY29udGVudHMYASADKAsyGS5hZ2VudC52MS5FeGFGZXRjaENvbnRlbnQiHgoNRXhhRmV0Y2hFcnJvchINCgVlcnJvchgBIAEoCSIiChBFeGFGZXRjaFJlamVjdGVkEg4KBnJlYXNvbhgBIAEoCSJTCg9FeGFGZXRjaENvbnRlbnQSDQoFdGl0bGUYASABKAkSCwoDdXJsGAIgASgJEgwKBHRleHQYAyABKAkSFgoOcHVibGlzaGVkX2RhdGUYBCABKAkiYgoQRXhhRmV0Y2hUb29sQ2FsbBIkCgRhcmdzGAEgASgLMhYuYWdlbnQudjEuRXhhRmV0Y2hBcmdzEigKBnJlc3VsdBgCIAEoCzIYLmFnZW50LnYxLkV4YUZldGNoUmVzdWx0IjwKFEV4YUZldGNoUmVxdWVzdFF1ZXJ5EiQKBGFyZ3MYASABKAsyFi5hZ2VudC52MS5FeGFGZXRjaEFyZ3MiowEKF0V4YUZldGNoUmVxdWVzdFJlc3BvbnNlEj4KCGFwcHJvdmVkGAEgASgLMiouYWdlbnQudjEuRXhhRmV0Y2hSZXF1ZXN0UmVzcG9uc2VfQXBwcm92ZWRIABI+CghyZWplY3RlZBgCIAEoCzIqLmFnZW50LnYxLkV4YUZldGNoUmVxdWVzdFJlc3BvbnNlX1JlamVjdGVkSABCCAoGcmVzdWx0IiIKIEV4YUZldGNoUmVxdWVzdFJlc3BvbnNlX0FwcHJvdmVkIjIKIEV4YUZldGNoUmVxdWVzdFJlc3BvbnNlX1JlamVjdGVkEg4KBnJlYXNvbhgBIAEoCSJXCg1FeGFTZWFyY2hBcmdzEg0KBXF1ZXJ5GAEgASgJEgwKBHR5cGUYAiABKAkSEwoLbnVtX3Jlc3VsdHMYAyABKAUSFAoMdG9vbF9jYWxsX2lkGAQgASgJIqYBCg9FeGFTZWFyY2hSZXN1bHQSLQoHc3VjY2VzcxgBIAEoCzIaLmFnZW50LnYxLkV4YVNlYXJjaFN1Y2Nlc3NIABIpCgVlcnJvchgCIAEoCzIYLmFnZW50LnYxLkV4YVNlYXJjaEVycm9ySAASLwoIcmVqZWN0ZWQYAyABKAsyGy5hZ2VudC52MS5FeGFTZWFyY2hSZWplY3RlZEgAQggKBnJlc3VsdCJEChBFeGFTZWFyY2hTdWNjZXNzEjAKCnJlZmVyZW5jZXMYASADKAsyHC5hZ2VudC52MS5FeGFTZWFyY2hSZWZlcmVuY2UiHwoORXhhU2VhcmNoRXJyb3ISDQoFZXJyb3IYASABKAkiIwoRRXhhU2VhcmNoUmVqZWN0ZWQSDgoGcmVhc29uGAEgASgJIlYKEkV4YVNlYXJjaFJlZmVyZW5jZRINCgV0aXRsZRgBIAEoCRILCgN1cmwYAiABKAkSDAoEdGV4dBgDIAEoCRIWCg5wdWJsaXNoZWRfZGF0ZRgEIAEoCSJlChFFeGFTZWFyY2hUb29sQ2FsbBIlCgRhcmdzGAEgASgLMhcuYWdlbnQudjEuRXhhU2VhcmNoQXJncxIpCgZyZXN1bHQYAiABKAsyGS5hZ2VudC52MS5FeGFTZWFyY2hSZXN1bHQiPgoVRXhhU2VhcmNoUmVxdWVzdFF1ZXJ5EiUKBGFyZ3MYASABKAsyFy5hZ2VudC52MS5FeGFTZWFyY2hBcmdzIqYBChhFeGFTZWFyY2hSZXF1ZXN0UmVzcG9uc2USPwoIYXBwcm92ZWQYASABKAsyKy5hZ2VudC52MS5FeGFTZWFyY2hSZXF1ZXN0UmVzcG9uc2VfQXBwcm92ZWRIABI/CghyZWplY3RlZBgCIAEoCzIrLmFnZW50LnYxLkV4YVNlYXJjaFJlcXVlc3RSZXNwb25zZV9SZWplY3RlZEgAQggKBnJlc3VsdCIjCiFFeGFTZWFyY2hSZXF1ZXN0UmVzcG9uc2VfQXBwcm92ZWQiMwohRXhhU2VhcmNoUmVxdWVzdFJlc3BvbnNlX1JlamVjdGVkEg4KBnJlYXNvbhgBIAEoCSIjChVFeGVjQ2xpZW50U3RyZWFtQ2xvc2USCgoCaWQYASABKA0iVgoPRXhlY0NsaWVudFRocm93EgoKAmlkGAEgASgNEg0KBWVycm9yGAIgASgJEhgKC3N0YWNrX3RyYWNlGAMgASgJSACIAQFCDgoMX3N0YWNrX3RyYWNlIiEKE0V4ZWNDbGllbnRIZWFydGJlYXQSCgoCaWQYASABKA0ivgEKGEV4ZWNDbGllbnRDb250cm9sTWVzc2FnZRI3CgxzdHJlYW1fY2xvc2UYASABKAsyHy5hZ2VudC52MS5FeGVjQ2xpZW50U3RyZWFtQ2xvc2VIABIqCgV0aHJvdxgCIAEoCzIZLmFnZW50LnYxLkV4ZWNDbGllbnRUaHJvd0gAEjIKCWhlYXJ0YmVhdBgDIAEoCzIdLmFnZW50LnYxLkV4ZWNDbGllbnRIZWFydGJlYXRIAEIJCgdtZXNzYWdlIoQBCgtTcGFuQ29udGV4dBIQCgh0cmFjZV9pZBgBIAEoCRIPCgdzcGFuX2lkGAIgASgJEhgKC3RyYWNlX2ZsYWdzGAMgASgNSACIAQESGAoLdHJhY2Vfc3RhdGUYBCABKAlIAYgBAUIOCgxfdHJhY2VfZmxhZ3NCDgoMX3RyYWNlX3N0YXRlIgsKCUFib3J0QXJncyINCgtBYm9ydFJlc3VsdCKFCAoRRXhlY1NlcnZlck1lc3NhZ2USCgoCaWQYASABKA0SDwoHZXhlY19pZBgPIAEoCRIwCgxzcGFuX2NvbnRleHQYEyABKAsyFS5hZ2VudC52MS5TcGFuQ29udGV4dEgBiAEBEikKCnNoZWxsX2FyZ3MYAiABKAsyEy5hZ2VudC52MS5TaGVsbEFyZ3NIABIpCgp3cml0ZV9hcmdzGAMgASgLMhMuYWdlbnQudjEuV3JpdGVBcmdzSAASKwoLZGVsZXRlX2FyZ3MYBCABKAsyFC5hZ2VudC52MS5EZWxldGVBcmdzSAASJwoJZ3JlcF9hcmdzGAUgASgLMhIuYWdlbnQudjEuR3JlcEFyZ3NIABInCglyZWFkX2FyZ3MYByABKAsyEi5hZ2VudC52MS5SZWFkQXJnc0gAEiMKB2xzX2FyZ3MYCCABKAsyEC5hZ2VudC52MS5Mc0FyZ3NIABI1ChBkaWFnbm9zdGljc19hcmdzGAkgASgLMhkuYWdlbnQudjEuRGlhZ25vc3RpY3NBcmdzSAASPAoUcmVxdWVzdF9jb250ZXh0X2FyZ3MYCiABKAsyHC5hZ2VudC52MS5SZXF1ZXN0Q29udGV4dEFyZ3NIABIlCghtY3BfYXJncxgLIAEoCzIRLmFnZW50LnYxLk1jcEFyZ3NIABIwChFzaGVsbF9zdHJlYW1fYXJncxgOIAEoCzITLmFnZW50LnYxLlNoZWxsQXJnc0gAEkkKG2JhY2tncm91bmRfc2hlbGxfc3Bhd25fYXJncxgQIAEoCzIiLmFnZW50LnYxLkJhY2tncm91bmRTaGVsbFNwYXduQXJnc0gAEkoKHGxpc3RfbWNwX3Jlc291cmNlc19leGVjX2FyZ3MYESABKAsyIi5hZ2VudC52MS5MaXN0TWNwUmVzb3VyY2VzRXhlY0FyZ3NIABJIChtyZWFkX21jcF9yZXNvdXJjZV9leGVjX2FyZ3MYEiABKAsyIS5hZ2VudC52MS5SZWFkTWNwUmVzb3VyY2VFeGVjQXJnc0gAEikKCmZldGNoX2FyZ3MYFCABKAsyEy5hZ2VudC52MS5GZXRjaEFyZ3NIABI4ChJyZWNvcmRfc2NyZWVuX2FyZ3MYFSABKAsyGi5hZ2VudC52MS5SZWNvcmRTY3JlZW5BcmdzSAASNgoRY29tcHV0ZXJfdXNlX2FyZ3MYFiABKAsyGS5hZ2VudC52MS5Db21wdXRlclVzZUFyZ3NIABI/ChZ3cml0ZV9zaGVsbF9zdGRpbl9hcmdzGBcgASgLMh0uYWdlbnQudjEuV3JpdGVTaGVsbFN0ZGluQXJnc0gAQgkKB21lc3NhZ2VCDwoNX3NwYW5fY29udGV4dCL/BwoRRXhlY0NsaWVudE1lc3NhZ2USCgoCaWQYASABKA0SDwoHZXhlY19pZBgPIAEoCRItCgxzaGVsbF9yZXN1bHQYAiABKAsyFS5hZ2VudC52MS5TaGVsbFJlc3VsdEgAEi0KDHdyaXRlX3Jlc3VsdBgDIAEoCzIVLmFnZW50LnYxLldyaXRlUmVzdWx0SAASLwoNZGVsZXRlX3Jlc3VsdBgEIAEoCzIWLmFnZW50LnYxLkRlbGV0ZVJlc3VsdEgAEisKC2dyZXBfcmVzdWx0GAUgASgLMhQuYWdlbnQudjEuR3JlcFJlc3VsdEgAEisKC3JlYWRfcmVzdWx0GAcgASgLMhQuYWdlbnQudjEuUmVhZFJlc3VsdEgAEicKCWxzX3Jlc3VsdBgIIAEoCzISLmFnZW50LnYxLkxzUmVzdWx0SAASOQoSZGlhZ25vc3RpY3NfcmVzdWx0GAkgASgLMhsuYWdlbnQudjEuRGlhZ25vc3RpY3NSZXN1bHRIABJAChZyZXF1ZXN0X2NvbnRleHRfcmVzdWx0GAogASgLMh4uYWdlbnQudjEuUmVxdWVzdENvbnRleHRSZXN1bHRIABIpCgptY3BfcmVzdWx0GAsgASgLMhMuYWdlbnQudjEuTWNwUmVzdWx0SAASLQoMc2hlbGxfc3RyZWFtGA4gASgLMhUuYWdlbnQudjEuU2hlbGxTdHJlYW1IABJNCh1iYWNrZ3JvdW5kX3NoZWxsX3NwYXduX3Jlc3VsdBgQIAEoCzIkLmFnZW50LnYxLkJhY2tncm91bmRTaGVsbFNwYXduUmVzdWx0SAASTgoebGlzdF9tY3BfcmVzb3VyY2VzX2V4ZWNfcmVzdWx0GBEgASgLMiQuYWdlbnQudjEuTGlzdE1jcFJlc291cmNlc0V4ZWNSZXN1bHRIABJMCh1yZWFkX21jcF9yZXNvdXJjZV9leGVjX3Jlc3VsdBgSIAEoCzIjLmFnZW50LnYxLlJlYWRNY3BSZXNvdXJjZUV4ZWNSZXN1bHRIABItCgxmZXRjaF9yZXN1bHQYFCABKAsyFS5hZ2VudC52MS5GZXRjaFJlc3VsdEgAEjwKFHJlY29yZF9zY3JlZW5fcmVzdWx0GBUgASgLMhwuYWdlbnQudjEuUmVjb3JkU2NyZWVuUmVzdWx0SAASOgoTY29tcHV0ZXJfdXNlX3Jlc3VsdBgWIAEoCzIbLmFnZW50LnYxLkNvbXB1dGVyVXNlUmVzdWx0SAASQwoYd3JpdGVfc2hlbGxfc3RkaW5fcmVzdWx0GBcgASgLMh8uYWdlbnQudjEuV3JpdGVTaGVsbFN0ZGluUmVzdWx0SABCCQoHbWVzc2FnZSIuCglGZXRjaEFyZ3MSCwoDdXJsGAEgASgJEhQKDHRvb2xfY2FsbF9pZBgCIAEoCSJpCgtGZXRjaFJlc3VsdBIpCgdzdWNjZXNzGAEgASgLMhYuYWdlbnQudjEuRmV0Y2hTdWNjZXNzSAASJQoFZXJyb3IYAiABKAsyFC5hZ2VudC52MS5GZXRjaEVycm9ySABCCAoGcmVzdWx0IlcKDEZldGNoU3VjY2VzcxILCgN1cmwYASABKAkSDwoHY29udGVudBgCIAEoCRITCgtzdGF0dXNfY29kZRgDIAEoBRIUCgxjb250ZW50X3R5cGUYBCABKAkiKAoKRmV0Y2hFcnJvchILCgN1cmwYASABKAkSDQoFZXJyb3IYAiABKAkibQoRR2VuZXJhdGVJbWFnZUFyZ3MSEwoLZGVzY3JpcHRpb24YASABKAkSFgoJZmlsZV9wYXRoGAIgASgJSACIAQESHQoVcmVmZXJlbmNlX2ltYWdlX3BhdGhzGAUgAygJQgwKCl9maWxlX3BhdGgigQEKE0dlbmVyYXRlSW1hZ2VSZXN1bHQSMQoHc3VjY2VzcxgBIAEoCzIeLmFnZW50LnYxLkdlbmVyYXRlSW1hZ2VTdWNjZXNzSAASLQoFZXJyb3IYAiABKAsyHC5hZ2VudC52MS5HZW5lcmF0ZUltYWdlRXJyb3JIAEIICgZyZXN1bHQiPQoUR2VuZXJhdGVJbWFnZVN1Y2Nlc3MSEQoJZmlsZV9wYXRoGAEgASgJEhIKCmltYWdlX2RhdGEYAiABKAkiIwoSR2VuZXJhdGVJbWFnZUVycm9yEg0KBWVycm9yGAEgASgJInEKFUdlbmVyYXRlSW1hZ2VUb29sQ2FsbBIpCgRhcmdzGAEgASgLMhsuYWdlbnQudjEuR2VuZXJhdGVJbWFnZUFyZ3MSLQoGcmVzdWx0GAIgASgLMh0uYWdlbnQudjEuR2VuZXJhdGVJbWFnZVJlc3VsdCLGBAoIR3JlcEFyZ3MSDwoHcGF0dGVybhgBIAEoCRIRCgRwYXRoGAIgASgJSACIAQESEQoEZ2xvYhgDIAEoCUgBiAEBEhgKC291dHB1dF9tb2RlGAQgASgJSAKIAQESGwoOY29udGV4dF9iZWZvcmUYBSABKAVIA4gBARIaCg1jb250ZXh0X2FmdGVyGAYgASgFSASIAQESFAoHY29udGV4dBgHIAEoBUgFiAEBEh0KEGNhc2VfaW5zZW5zaXRpdmUYCCABKAhIBogBARIRCgR0eXBlGAkgASgJSAeIAQESFwoKaGVhZF9saW1pdBgKIAEoBUgIiAEBEhYKCW11bHRpbGluZRgLIAEoCEgJiAEBEhEKBHNvcnQYDCABKAlICogBARIbCg5zb3J0X2FzY2VuZGluZxgNIAEoCEgLiAEBEhQKDHRvb2xfY2FsbF9pZBgOIAEoCRI0Cg5zYW5kYm94X3BvbGljeRgPIAEoCzIXLmFnZW50LnYxLlNhbmRib3hQb2xpY3lIDIgBAUIHCgVfcGF0aEIHCgVfZ2xvYkIOCgxfb3V0cHV0X21vZGVCEQoPX2NvbnRleHRfYmVmb3JlQhAKDl9jb250ZXh0X2FmdGVyQgoKCF9jb250ZXh0QhMKEV9jYXNlX2luc2Vuc2l0aXZlQgcKBV90eXBlQg0KC19oZWFkX2xpbWl0QgwKCl9tdWx0aWxpbmVCBwoFX3NvcnRCEQoPX3NvcnRfYXNjZW5kaW5nQhEKD19zYW5kYm94X3BvbGljeSJmCgpHcmVwUmVzdWx0EigKB3N1Y2Nlc3MYASABKAsyFS5hZ2VudC52MS5HcmVwU3VjY2Vzc0gAEiQKBWVycm9yGAIgASgLMhMuYWdlbnQudjEuR3JlcEVycm9ySABCCAoGcmVzdWx0IhoKCUdyZXBFcnJvchINCgVlcnJvchgBIAEoCSK0AgoLR3JlcFN1Y2Nlc3MSDwoHcGF0dGVybhgBIAEoCRIMCgRwYXRoGAIgASgJEhMKC291dHB1dF9tb2RlGAMgASgJEkYKEXdvcmtzcGFjZV9yZXN1bHRzGAQgAygLMisuYWdlbnQudjEuR3JlcFN1Y2Nlc3MuV29ya3NwYWNlUmVzdWx0c0VudHJ5EjwKFGFjdGl2ZV9lZGl0b3JfcmVzdWx0GAUgASgLMhkuYWdlbnQudjEuR3JlcFVuaW9uUmVzdWx0SACIAQEaUgoVV29ya3NwYWNlUmVzdWx0c0VudHJ5EgsKA2tleRgBIAEoCRIoCgV2YWx1ZRgCIAEoCzIZLmFnZW50LnYxLkdyZXBVbmlvblJlc3VsdDoCOAFCFwoVX2FjdGl2ZV9lZGl0b3JfcmVzdWx0IqMBCg9HcmVwVW5pb25SZXN1bHQSKgoFY291bnQYASABKAsyGS5hZ2VudC52MS5HcmVwQ291bnRSZXN1bHRIABIqCgVmaWxlcxgCIAEoCzIZLmFnZW50LnYxLkdyZXBGaWxlc1Jlc3VsdEgAEi4KB2NvbnRlbnQYAyABKAsyGy5hZ2VudC52MS5HcmVwQ29udGVudFJlc3VsdEgAQggKBnJlc3VsdCKbAQoPR3JlcENvdW50UmVzdWx0EicKBmNvdW50cxgBIAMoCzIXLmFnZW50LnYxLkdyZXBGaWxlQ291bnQSEwoLdG90YWxfZmlsZXMYAiABKAUSFQoNdG90YWxfbWF0Y2hlcxgDIAEoBRIYChBjbGllbnRfdHJ1bmNhdGVkGAQgASgIEhkKEXJpcGdyZXBfdHJ1bmNhdGVkGAUgASgIIiwKDUdyZXBGaWxlQ291bnQSDAoEZmlsZRgBIAEoCRINCgVjb3VudBgCIAEoBSJqCg9HcmVwRmlsZXNSZXN1bHQSDQoFZmlsZXMYASADKAkSEwoLdG90YWxfZmlsZXMYAiABKAUSGAoQY2xpZW50X3RydW5jYXRlZBgDIAEoCBIZChFyaXBncmVwX3RydW5jYXRlZBgEIAEoCCKkAQoRR3JlcENvbnRlbnRSZXN1bHQSKAoHbWF0Y2hlcxgBIAMoCzIXLmFnZW50LnYxLkdyZXBGaWxlTWF0Y2gSEwoLdG90YWxfbGluZXMYAiABKAUSGwoTdG90YWxfbWF0Y2hlZF9saW5lcxgDIAEoBRIYChBjbGllbnRfdHJ1bmNhdGVkGAQgASgIEhkKEXJpcGdyZXBfdHJ1bmNhdGVkGAUgASgIIkoKDUdyZXBGaWxlTWF0Y2gSDAoEZmlsZRgBIAEoCRIrCgdtYXRjaGVzGAIgAygLMhouYWdlbnQudjEuR3JlcENvbnRlbnRNYXRjaCJsChBHcmVwQ29udGVudE1hdGNoEhMKC2xpbmVfbnVtYmVyGAEgASgFEg8KB2NvbnRlbnQYAiABKAkSGQoRY29udGVudF90cnVuY2F0ZWQYAyABKAgSFwoPaXNfY29udGV4dF9saW5lGAQgASgIIh0KCkdyZXBTdHJlYW0SDwoHcGF0dGVybhgBIAEoCSJWCgxHcmVwVG9vbENhbGwSIAoEYXJncxgBIAEoCzISLmFnZW50LnYxLkdyZXBBcmdzEiQKBnJlc3VsdBgCIAEoCzIULmFnZW50LnYxLkdyZXBSZXN1bHQiHgoLR2V0QmxvYkFyZ3MSDwoHYmxvYl9pZBgBIAEoDCI1Cg1HZXRCbG9iUmVzdWx0EhYKCWJsb2JfZGF0YRgBIAEoDEgAiAEBQgwKCl9ibG9iX2RhdGEiMQoLU2V0QmxvYkFyZ3MSDwoHYmxvYl9pZBgBIAEoDBIRCglibG9iX2RhdGEYAiABKAwiPgoNU2V0QmxvYlJlc3VsdBIjCgVlcnJvchgBIAEoCzIPLmFnZW50LnYxLkVycm9ySACIAQFCCAoGX2Vycm9yIssBCg9LdlNlcnZlck1lc3NhZ2USCgoCaWQYASABKA0SMAoMc3Bhbl9jb250ZXh0GAQgASgLMhUuYWdlbnQudjEuU3BhbkNvbnRleHRIAYgBARIuCg1nZXRfYmxvYl9hcmdzGAIgASgLMhUuYWdlbnQudjEuR2V0QmxvYkFyZ3NIABIuCg1zZXRfYmxvYl9hcmdzGAMgASgLMhUuYWdlbnQudjEuU2V0QmxvYkFyZ3NIAEIJCgdtZXNzYWdlQg8KDV9zcGFuX2NvbnRleHQikAEKD0t2Q2xpZW50TWVzc2FnZRIKCgJpZBgBIAEoDRIyCg9nZXRfYmxvYl9yZXN1bHQYAiABKAsyFy5hZ2VudC52MS5HZXRCbG9iUmVzdWx0SAASMgoPc2V0X2Jsb2JfcmVzdWx0GAMgASgLMhcuYWdlbnQudjEuU2V0QmxvYlJlc3VsdEgAQgkKB21lc3NhZ2UirQEKBkxzQXJncxIMCgRwYXRoGAEgASgJEg4KBmlnbm9yZRgCIAMoCRIUCgx0b29sX2NhbGxfaWQYAyABKAkSNAoOc2FuZGJveF9wb2xpY3kYBCABKAsyFy5hZ2VudC52MS5TYW5kYm94UG9saWN5SACIAQESFwoKdGltZW91dF9tcxgFIAEoDUgBiAEBQhEKD19zYW5kYm94X3BvbGljeUINCgtfdGltZW91dF9tcyKyAQoITHNSZXN1bHQSJgoHc3VjY2VzcxgBIAEoCzITLmFnZW50LnYxLkxzU3VjY2Vzc0gAEiIKBWVycm9yGAIgASgLMhEuYWdlbnQudjEuTHNFcnJvckgAEigKCHJlamVjdGVkGAMgASgLMhQuYWdlbnQudjEuTHNSZWplY3RlZEgAEiYKB3RpbWVvdXQYBCABKAsyEy5hZ2VudC52MS5Mc1RpbWVvdXRIAEIICgZyZXN1bHQiRwoJTHNTdWNjZXNzEjoKE2RpcmVjdG9yeV90cmVlX3Jvb3QYASABKAsyHS5hZ2VudC52MS5Mc0RpcmVjdG9yeVRyZWVOb2RlIvYCChNMc0RpcmVjdG9yeVRyZWVOb2RlEhAKCGFic19wYXRoGAEgASgJEjQKDWNoaWxkcmVuX2RpcnMYAiADKAsyHS5hZ2VudC52MS5Mc0RpcmVjdG9yeVRyZWVOb2RlEjoKDmNoaWxkcmVuX2ZpbGVzGAMgAygLMiIuYWdlbnQudjEuTHNEaXJlY3RvcnlUcmVlTm9kZV9GaWxlEh8KF2NoaWxkcmVuX3dlcmVfcHJvY2Vzc2VkGAQgASgIEmQKHWZ1bGxfc3VidHJlZV9leHRlbnNpb25fY291bnRzGAUgAygLMj0uYWdlbnQudjEuTHNEaXJlY3RvcnlUcmVlTm9kZS5GdWxsU3VidHJlZUV4dGVuc2lvbkNvdW50c0VudHJ5EhEKCW51bV9maWxlcxgGIAEoBRpBCh9GdWxsU3VidHJlZUV4dGVuc2lvbkNvdW50c0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoBToCOAEiegoYTHNEaXJlY3RvcnlUcmVlTm9kZV9GaWxlEgwKBG5hbWUYASABKAkSOgoRdGVybWluYWxfbWV0YWRhdGEYAiABKAsyGi5hZ2VudC52MS5UZXJtaW5hbE1ldGFkYXRhSACIAQFCFAoSX3Rlcm1pbmFsX21ldGFkYXRhIiYKB0xzRXJyb3ISDAoEcGF0aBgBIAEoCRINCgVlcnJvchgCIAEoCSIqCgpMc1JlamVjdGVkEgwKBHBhdGgYASABKAkSDgoGcmVhc29uGAIgASgJIkcKCUxzVGltZW91dBI6ChNkaXJlY3RvcnlfdHJlZV9yb290GAEgASgLMh0uYWdlbnQudjEuTHNEaXJlY3RvcnlUcmVlTm9kZSLxAQoQVGVybWluYWxNZXRhZGF0YRIQCgNjd2QYASABKAlIAIgBARI5Cg1sYXN0X2NvbW1hbmRzGAIgAygLMiIuYWdlbnQudjEuVGVybWluYWxNZXRhZGF0YV9Db21tYW5kEh0KEGxhc3RfbW9kaWZpZWRfbXMYAyABKANIAYgBARJACg9jdXJyZW50X2NvbW1hbmQYBCABKAsyIi5hZ2VudC52MS5UZXJtaW5hbE1ldGFkYXRhX0NvbW1hbmRIAogBAUIGCgRfY3dkQhMKEV9sYXN0X21vZGlmaWVkX21zQhIKEF9jdXJyZW50X2NvbW1hbmQipwEKGFRlcm1pbmFsTWV0YWRhdGFfQ29tbWFuZBIPCgdjb21tYW5kGAEgASgJEhYKCWV4aXRfY29kZRgCIAEoBUgAiAEBEhkKDHRpbWVzdGFtcF9tcxgDIAEoA0gBiAEBEhgKC2R1cmF0aW9uX21zGAQgASgDSAKIAQFCDAoKX2V4aXRfY29kZUIPCg1fdGltZXN0YW1wX21zQg4KDF9kdXJhdGlvbl9tcyJQCgpMc1Rvb2xDYWxsEh4KBGFyZ3MYASABKAsyEC5hZ2VudC52MS5Mc0FyZ3MSIgoGcmVzdWx0GAIgASgLMhIuYWdlbnQudjEuTHNSZXN1bHQitQEKB01jcEFyZ3MSDAoEbmFtZRgBIAEoCRIpCgRhcmdzGAIgAygLMhsuYWdlbnQudjEuTWNwQXJncy5BcmdzRW50cnkSFAoMdG9vbF9jYWxsX2lkGAMgASgJEhsKE3Byb3ZpZGVyX2lkZW50aWZpZXIYBCABKAkSEQoJdG9vbF9uYW1lGAUgASgJGisKCUFyZ3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAw6AjgBIv8BCglNY3BSZXN1bHQSJwoHc3VjY2VzcxgBIAEoCzIULmFnZW50LnYxLk1jcFN1Y2Nlc3NIABIjCgVlcnJvchgCIAEoCzISLmFnZW50LnYxLk1jcEVycm9ySAASKQoIcmVqZWN0ZWQYAyABKAsyFS5hZ2VudC52MS5NY3BSZWplY3RlZEgAEjoKEXBlcm1pc3Npb25fZGVuaWVkGAQgASgLMh0uYWdlbnQudjEuTWNwUGVybWlzc2lvbkRlbmllZEgAEjMKDnRvb2xfbm90X2ZvdW5kGAUgASgLMhkuYWdlbnQudjEuTWNwVG9vbE5vdEZvdW5kSABCCAoGcmVzdWx0IjgKD01jcFRvb2xOb3RGb3VuZBIMCgRuYW1lGAEgASgJEhcKD2F2YWlsYWJsZV90b29scxgCIAMoCSJqCg5NY3BUZXh0Q29udGVudBIMCgR0ZXh0GAEgASgJEjYKD291dHB1dF9sb2NhdGlvbhgCIAEoCzIYLmFnZW50LnYxLk91dHB1dExvY2F0aW9uSACIAQFCEgoQX291dHB1dF9sb2NhdGlvbiIyCg9NY3BJbWFnZUNvbnRlbnQSDAoEZGF0YRgBIAEoDBIRCgltaW1lX3R5cGUYAiABKAkiewoYTWNwVG9vbFJlc3VsdENvbnRlbnRJdGVtEigKBHRleHQYASABKAsyGC5hZ2VudC52MS5NY3BUZXh0Q29udGVudEgAEioKBWltYWdlGAIgASgLMhkuYWdlbnQudjEuTWNwSW1hZ2VDb250ZW50SABCCQoHY29udGVudCJTCgpNY3BTdWNjZXNzEjMKB2NvbnRlbnQYASADKAsyIi5hZ2VudC52MS5NY3BUb29sUmVzdWx0Q29udGVudEl0ZW0SEAoIaXNfZXJyb3IYAiABKAgiGQoITWNwRXJyb3ISDQoFZXJyb3IYASABKAkiMgoLTWNwUmVqZWN0ZWQSDgoGcmVhc29uGAEgASgJEhMKC2lzX3JlYWRvbmx5GAIgASgIIjkKE01jcFBlcm1pc3Npb25EZW5pZWQSDQoFZXJyb3IYASABKAkSEwoLaXNfcmVhZG9ubHkYAiABKAgiOgoYTGlzdE1jcFJlc291cmNlc0V4ZWNBcmdzEhMKBnNlcnZlchgBIAEoCUgAiAEBQgkKB19zZXJ2ZXIixgEKGkxpc3RNY3BSZXNvdXJjZXNFeGVjUmVzdWx0EjQKB3N1Y2Nlc3MYASABKAsyIS5hZ2VudC52MS5MaXN0TWNwUmVzb3VyY2VzU3VjY2Vzc0gAEjAKBWVycm9yGAIgASgLMh8uYWdlbnQudjEuTGlzdE1jcFJlc291cmNlc0Vycm9ySAASNgoIcmVqZWN0ZWQYAyABKAsyIi5hZ2VudC52MS5MaXN0TWNwUmVzb3VyY2VzUmVqZWN0ZWRIAEIICgZyZXN1bHQivQIKJkxpc3RNY3BSZXNvdXJjZXNFeGVjUmVzdWx0X01jcFJlc291cmNlEgsKA3VyaRgBIAEoCRIRCgRuYW1lGAIgASgJSACIAQESGAoLZGVzY3JpcHRpb24YAyABKAlIAYgBARIWCgltaW1lX3R5cGUYBCABKAlIAogBARIOCgZzZXJ2ZXIYBSABKAkSVgoLYW5ub3RhdGlvbnMYBiADKAsyQS5hZ2VudC52MS5MaXN0TWNwUmVzb3VyY2VzRXhlY1Jlc3VsdF9NY3BSZXNvdXJjZS5Bbm5vdGF0aW9uc0VudHJ5GjIKEEFubm90YXRpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CDAoKX21pbWVfdHlwZSJeChdMaXN0TWNwUmVzb3VyY2VzU3VjY2VzcxJDCglyZXNvdXJjZXMYASADKAsyMC5hZ2VudC52MS5MaXN0TWNwUmVzb3VyY2VzRXhlY1Jlc3VsdF9NY3BSZXNvdXJjZSImChVMaXN0TWNwUmVzb3VyY2VzRXJyb3ISDQoFZXJyb3IYASABKAkiKgoYTGlzdE1jcFJlc291cmNlc1JlamVjdGVkEg4KBnJlYXNvbhgBIAEoCSJkChdSZWFkTWNwUmVzb3VyY2VFeGVjQXJncxIOCgZzZXJ2ZXIYASABKAkSCwoDdXJpGAIgASgJEhoKDWRvd25sb2FkX3BhdGgYAyABKAlIAIgBAUIQCg5fZG93bmxvYWRfcGF0aCL6AQoZUmVhZE1jcFJlc291cmNlRXhlY1Jlc3VsdBIzCgdzdWNjZXNzGAEgASgLMiAuYWdlbnQudjEuUmVhZE1jcFJlc291cmNlU3VjY2Vzc0gAEi8KBWVycm9yGAIgASgLMh4uYWdlbnQudjEuUmVhZE1jcFJlc291cmNlRXJyb3JIABI1CghyZWplY3RlZBgDIAEoCzIhLmFnZW50LnYxLlJlYWRNY3BSZXNvdXJjZVJlamVjdGVkSAASNgoJbm90X2ZvdW5kGAQgASgLMiEuYWdlbnQudjEuUmVhZE1jcFJlc291cmNlTm90Rm91bmRIAEIICgZyZXN1bHQi5gIKFlJlYWRNY3BSZXNvdXJjZVN1Y2Nlc3MSCwoDdXJpGAEgASgJEhEKBG5hbWUYAiABKAlIAYgBARIYCgtkZXNjcmlwdGlvbhgDIAEoCUgCiAEBEhYKCW1pbWVfdHlwZRgEIAEoCUgDiAEBEkYKC2Fubm90YXRpb25zGAcgAygLMjEuYWdlbnQudjEuUmVhZE1jcFJlc291cmNlU3VjY2Vzcy5Bbm5vdGF0aW9uc0VudHJ5EhoKDWRvd25sb2FkX3BhdGgYCCABKAlIBIgBARIOCgR0ZXh0GAUgASgJSAASDgoEYmxvYhgGIAEoDEgAGjIKEEFubm90YXRpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIJCgdjb250ZW50QgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIMCgpfbWltZV90eXBlQhAKDl9kb3dubG9hZF9wYXRoIjIKFFJlYWRNY3BSZXNvdXJjZUVycm9yEgsKA3VyaRgBIAEoCRINCgVlcnJvchgCIAEoCSI2ChdSZWFkTWNwUmVzb3VyY2VSZWplY3RlZBILCgN1cmkYASABKAkSDgoGcmVhc29uGAIgASgJIiYKF1JlYWRNY3BSZXNvdXJjZU5vdEZvdW5kEgsKA3VyaRgBIAEoCSJ8ChFNY3BUb29sRGVmaW5pdGlvbhIMCgRuYW1lGAEgASgJEhsKE3Byb3ZpZGVyX2lkZW50aWZpZXIYBCABKAkSEQoJdG9vbF9uYW1lGAUgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhQKDGlucHV0X3NjaGVtYRgDIAEoDCI6CghNY3BUb29scxIuCgltY3BfdG9vbHMYASADKAsyGy5hZ2VudC52MS5NY3BUb29sRGVmaW5pdGlvbiI8Cg9NY3BJbnN0cnVjdGlvbnMSEwoLc2VydmVyX25hbWUYASABKAkSFAoMaW5zdHJ1Y3Rpb25zGAIgASgJItcBCg1NY3BEZXNjcmlwdG9yEhMKC3NlcnZlcl9uYW1lGAEgASgJEhkKEXNlcnZlcl9pZGVudGlmaWVyGAIgASgJEhgKC2ZvbGRlcl9wYXRoGAMgASgJSACIAQESJAoXc2VydmVyX3VzZV9pbnN0cnVjdGlvbnMYBCABKAlIAYgBARIqCgV0b29scxgFIAMoCzIbLmFnZW50LnYxLk1jcFRvb2xEZXNjcmlwdG9yQg4KDF9mb2xkZXJfcGF0aEIaChhfc2VydmVyX3VzZV9pbnN0cnVjdGlvbnMiWAoRTWNwVG9vbERlc2NyaXB0b3ISEQoJdG9vbF9uYW1lGAEgASgJEhwKD2RlZmluaXRpb25fcGF0aBgCIAEoCUgAiAEBQhIKEF9kZWZpbml0aW9uX3BhdGgieAoUTWNwRmlsZVN5c3RlbU9wdGlvbnMSDwoHZW5hYmxlZBgBIAEoCBIdChV3b3Jrc3BhY2VfcHJvamVjdF9kaXIYAiABKAkSMAoPbWNwX2Rlc2NyaXB0b3JzGAMgAygLMhcuYWdlbnQudjEuTWNwRGVzY3JpcHRvciIuCghSZWFkQXJncxIMCgRwYXRoGAEgASgJEhQKDHRvb2xfY2FsbF9pZBgCIAEoCSK4AgoKUmVhZFJlc3VsdBIoCgdzdWNjZXNzGAEgASgLMhUuYWdlbnQudjEuUmVhZFN1Y2Nlc3NIABIkCgVlcnJvchgCIAEoCzITLmFnZW50LnYxLlJlYWRFcnJvckgAEioKCHJlamVjdGVkGAMgASgLMhYuYWdlbnQudjEuUmVhZFJlamVjdGVkSAASNAoOZmlsZV9ub3RfZm91bmQYBCABKAsyGi5hZ2VudC52MS5SZWFkRmlsZU5vdEZvdW5kSAASOwoRcGVybWlzc2lvbl9kZW5pZWQYBSABKAsyHi5hZ2VudC52MS5SZWFkUGVybWlzc2lvbkRlbmllZEgAEjEKDGludmFsaWRfZmlsZRgGIAEoCzIZLmFnZW50LnYxLlJlYWRJbnZhbGlkRmlsZUgAQggKBnJlc3VsdCKzAQoLUmVhZFN1Y2Nlc3MSDAoEcGF0aBgBIAEoCRITCgt0b3RhbF9saW5lcxgDIAEoBRIRCglmaWxlX3NpemUYBCABKAMSEQoJdHJ1bmNhdGVkGAYgASgIEhsKDm91dHB1dF9ibG9iX2lkGAcgASgMSAGIAQESEQoHY29udGVudBgCIAEoCUgAEg4KBGRhdGEYBSABKAxIAEIICgZvdXRwdXRCEQoPX291dHB1dF9ibG9iX2lkIigKCVJlYWRFcnJvchIMCgRwYXRoGAEgASgJEg0KBWVycm9yGAIgASgJIiwKDFJlYWRSZWplY3RlZBIMCgRwYXRoGAEgASgJEg4KBnJlYXNvbhgCIAEoCSIgChBSZWFkRmlsZU5vdEZvdW5kEgwKBHBhdGgYASABKAkiJAoUUmVhZFBlcm1pc3Npb25EZW5pZWQSDAoEcGF0aBgBIAEoCSIvCg9SZWFkSW52YWxpZEZpbGUSDAoEcGF0aBgBIAEoCRIOCgZyZWFzb24YAiABKAkiXgoMUmVhZFRvb2xDYWxsEiQKBGFyZ3MYASABKAsyFi5hZ2VudC52MS5SZWFkVG9vbEFyZ3MSKAoGcmVzdWx0GAIgASgLMhguYWdlbnQudjEuUmVhZFRvb2xSZXN1bHQiWgoMUmVhZFRvb2xBcmdzEgwKBHBhdGgYASABKAkSEwoGb2Zmc2V0GAIgASgFSACIAQESEgoFbGltaXQYAyABKAVIAYgBAUIJCgdfb2Zmc2V0QggKBl9saW1pdCJyCg5SZWFkVG9vbFJlc3VsdBIsCgdzdWNjZXNzGAEgASgLMhkuYWdlbnQudjEuUmVhZFRvb2xTdWNjZXNzSAASKAoFZXJyb3IYAiABKAsyFy5hZ2VudC52MS5SZWFkVG9vbEVycm9ySABCCAoGcmVzdWx0IjEKCVJlYWRSYW5nZRISCgpzdGFydF9saW5lGAEgASgNEhAKCGVuZF9saW5lGAIgASgNIo4CCg9SZWFkVG9vbFN1Y2Nlc3MSEAoIaXNfZW1wdHkYAiABKAgSFgoOZXhjZWVkZWRfbGltaXQYAyABKAgSEwoLdG90YWxfbGluZXMYBCABKA0SEQoJZmlsZV9zaXplGAUgASgNEgwKBHBhdGgYByABKAkSLAoKcmVhZF9yYW5nZRgIIAEoCzITLmFnZW50LnYxLlJlYWRSYW5nZUgBiAEBEhEKB2NvbnRlbnQYASABKAlIABIOCgRkYXRhGAYgASgMSAASFgoMZGF0YV9ibG9iX2lkGAkgASgMSAASGQoPY29udGVudF9ibG9iX2lkGAogASgMSABCCAoGb3V0cHV0Qg0KC19yZWFkX3JhbmdlIiYKDVJlYWRUb29sRXJyb3ISFQoNZXJyb3JfbWVzc2FnZRgBIAEoCSJqChBSZWNvcmRTY3JlZW5BcmdzEgwKBG1vZGUYASABKAUSFAoMdG9vbF9jYWxsX2lkGAIgASgJEh0KEHNhdmVfYXNfZmlsZW5hbWUYAyABKAlIAIgBAUITChFfc2F2ZV9hc19maWxlbmFtZSKJAgoSUmVjb3JkU2NyZWVuUmVzdWx0EjsKDXN0YXJ0X3N1Y2Nlc3MYASABKAsyIi5hZ2VudC52MS5SZWNvcmRTY3JlZW5TdGFydFN1Y2Nlc3NIABI5CgxzYXZlX3N1Y2Nlc3MYAiABKAsyIS5hZ2VudC52MS5SZWNvcmRTY3JlZW5TYXZlU3VjY2Vzc0gAEj8KD2Rpc2NhcmRfc3VjY2VzcxgDIAEoCzIkLmFnZW50LnYxLlJlY29yZFNjcmVlbkRpc2NhcmRTdWNjZXNzSAASMAoHZmFpbHVyZRgEIAEoCzIdLmFnZW50LnYxLlJlY29yZFNjcmVlbkZhaWx1cmVIAEIICgZyZXN1bHQiZwoYUmVjb3JkU2NyZWVuU3RhcnRTdWNjZXNzEiUKHXdhc19wcmlvcl9yZWNvcmRpbmdfY2FuY2VsbGVkGAEgASgIEiQKHHdhc19zYXZlX2FzX2ZpbGVuYW1lX2lnbm9yZWQYAiABKAgioAEKF1JlY29yZFNjcmVlblNhdmVTdWNjZXNzEgwKBHBhdGgYASABKAkSHQoVcmVjb3JkaW5nX2R1cmF0aW9uX21zGAIgASgDEjAKI3JlcXVlc3RlZF9maWxlX3BhdGhfcmVqZWN0ZWRfcmVhc29uGAMgASgFSACIAQFCJgokX3JlcXVlc3RlZF9maWxlX3BhdGhfcmVqZWN0ZWRfcmVhc29uIhwKGlJlY29yZFNjcmVlbkRpc2NhcmRTdWNjZXNzIiQKE1JlY29yZFNjcmVlbkZhaWx1cmUSDQoFZXJyb3IYASABKAkiNgoTQ3Vyc29yUGFja2FnZVByb21wdBIMCgRuYW1lGAEgASgJEhEKCWZpbGVfcGF0aBgCIAEoCSLiAQoNQ3Vyc29yUGFja2FnZRIMCgRuYW1lGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhMKC2ZvbGRlcl9wYXRoGAMgASgJEg8KB2VuYWJsZWQYBCABKAgSGAoLcGFyc2VfZXJyb3IYBSABKAlIAIgBARIuCgdwcm9tcHRzGAYgAygLMh0uYWdlbnQudjEuQ3Vyc29yUGFja2FnZVByb21wdBIYChByZWFkbWVfZmlsZV9wYXRoGAcgASgJEhQKDHBhY2thZ2VfdHlwZRgIIAEoBUIOCgxfcGFyc2VfZXJyb3IiqwIKFlJlcG9zaXRvcnlJbmRleGluZ0luZm8SHwoXcmVsYXRpdmVfd29ya3NwYWNlX3BhdGgYASABKAkSEwoLcmVtb3RlX3VybHMYAiADKAkSFAoMcmVtb3RlX25hbWVzGAMgAygJEhEKCXJlcG9fbmFtZRgEIAEoCRISCgpyZXBvX293bmVyGAUgASgJEhIKCmlzX3RyYWNrZWQYBiABKAgSEAoIaXNfbG9jYWwYByABKAgSJgoZb3J0aG9nb25hbF90cmFuc2Zvcm1fc2VlZBgIIAEoAUgAiAEBEhUKDXdvcmtzcGFjZV91cmkYCSABKAkSGwoTcGF0aF9lbmNyeXB0aW9uX2tleRgKIAEoCUIcChpfb3J0aG9nb25hbF90cmFuc2Zvcm1fc2VlZCJ0ChJSZXF1ZXN0Q29udGV4dEFyZ3MSHQoQbm90ZXNfc2Vzc2lvbl9pZBgCIAEoCUgAiAEBEhkKDHdvcmtzcGFjZV9pZBgDIAEoCUgBiAEBQhMKEV9ub3Rlc19zZXNzaW9uX2lkQg8KDV93b3Jrc3BhY2VfaWQiugEKFFJlcXVlc3RDb250ZXh0UmVzdWx0EjIKB3N1Y2Nlc3MYASABKAsyHy5hZ2VudC52MS5SZXF1ZXN0Q29udGV4dFN1Y2Nlc3NIABIuCgVlcnJvchgCIAEoCzIdLmFnZW50LnYxLlJlcXVlc3RDb250ZXh0RXJyb3JIABI0CghyZWplY3RlZBgDIAEoCzIgLmFnZW50LnYxLlJlcXVlc3RDb250ZXh0UmVqZWN0ZWRIAEIICgZyZXN1bHQiSgoVUmVxdWVzdENvbnRleHRTdWNjZXNzEjEKD3JlcXVlc3RfY29udGV4dBgBIAEoCzIYLmFnZW50LnYxLlJlcXVlc3RDb250ZXh0IiQKE1JlcXVlc3RDb250ZXh0RXJyb3ISDQoFZXJyb3IYASABKAkiKAoWUmVxdWVzdENvbnRleHRSZWplY3RlZBIOCgZyZWFzb24YASABKAkiwgEKCkltYWdlUHJvdG8SDAoEZGF0YRgBIAEoDBIMCgR1dWlkGAIgASgJEgwKBHBhdGgYAyABKAkSMQoJZGltZW5zaW9uGAQgASgLMh4uYWdlbnQudjEuSW1hZ2VQcm90b19EaW1lbnNpb24SJgoZdGFza19zcGVjaWZpY19kZXNjcmlwdGlvbhgGIAEoCUgAiAEBEhEKCW1pbWVfdHlwZRgHIAEoCUIcChpfdGFza19zcGVjaWZpY19kZXNjcmlwdGlvbiI1ChRJbWFnZVByb3RvX0RpbWVuc2lvbhINCgV3aWR0aBgBIAEoBRIOCgZoZWlnaHQYAiABKAUiaAoLR2l0UmVwb0luZm8SDAoEcGF0aBgBIAEoCRIOCgZzdGF0dXMYAiABKAkSEwoLYnJhbmNoX25hbWUYAyABKAkSFwoKcmVtb3RlX3VybBgEIAEoCUgAiAEBQg0KC19yZW1vdGVfdXJsIpsCChFSZXF1ZXN0Q29udGV4dEVudhISCgpvc192ZXJzaW9uGAEgASgJEhcKD3dvcmtzcGFjZV9wYXRocxgCIAMoCRINCgVzaGVsbBgDIAEoCRIXCg9zYW5kYm94X2VuYWJsZWQYBSABKAgSGAoQdGVybWluYWxzX2ZvbGRlchgHIAEoCRIhChlhZ2VudF9zaGFyZWRfbm90ZXNfZm9sZGVyGAggASgJEicKH2FnZW50X2NvbnZlcnNhdGlvbl9ub3Rlc19mb2xkZXIYCSABKAkSEQoJdGltZV96b25lGAogASgJEhYKDnByb2plY3RfZm9sZGVyGAsgASgJEiAKGGFnZW50X3RyYW5zY3JpcHRzX2ZvbGRlchgMIAEoCSI8Cg9EZWJ1Z01vZGVDb25maWcSEAoIbG9nX3BhdGgYASABKAkSFwoPc2VydmVyX2VuZHBvaW50GAIgASgJIrQBCg9Ta2lsbERlc2NyaXB0b3ISDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRITCgtmb2xkZXJfcGF0aBgDIAEoCRIPCgdlbmFibGVkGAQgASgIEhgKC3BhcnNlX2Vycm9yGAUgASgJSACIAQESGAoQcmVhZG1lX2ZpbGVfcGF0aBgGIAEoCRIUCgxwYWNrYWdlX3R5cGUYByABKAVCDgoMX3BhcnNlX2Vycm9yIkQKDFNraWxsT3B0aW9ucxI0ChFza2lsbF9kZXNjcmlwdG9ycxgBIAMoCzIZLmFnZW50LnYxLlNraWxsRGVzY3JpcHRvciL2CAoOUmVxdWVzdENvbnRleHQSIwoFcnVsZXMYAiADKAsyFC5hZ2VudC52MS5DdXJzb3JSdWxlEigKA2VudhgEIAEoCzIbLmFnZW50LnYxLlJlcXVlc3RDb250ZXh0RW52EjkKD3JlcG9zaXRvcnlfaW5mbxgGIAMoCzIgLmFnZW50LnYxLlJlcG9zaXRvcnlJbmRleGluZ0luZm8SKgoFdG9vbHMYByADKAsyGy5hZ2VudC52MS5NY3BUb29sRGVmaW5pdGlvbhInChpjb252ZXJzYXRpb25fbm90ZXNfbGlzdGluZxgIIAEoCUgAiAEBEiEKFHNoYXJlZF9ub3Rlc19saXN0aW5nGAkgASgJSAGIAQESKAoJZ2l0X3JlcG9zGAsgAygLMhUuYWdlbnQudjEuR2l0UmVwb0luZm8SNgoPcHJvamVjdF9sYXlvdXRzGA0gAygLMh0uYWdlbnQudjEuTHNEaXJlY3RvcnlUcmVlTm9kZRIzChBtY3BfaW5zdHJ1Y3Rpb25zGA4gAygLMhkuYWdlbnQudjEuTWNwSW5zdHJ1Y3Rpb25zEjkKEWRlYnVnX21vZGVfY29uZmlnGA8gASgLMhkuYWdlbnQudjEuRGVidWdNb2RlQ29uZmlnSAKIAQESFwoKY2xvdWRfcnVsZRgQIAEoCUgDiAEBEh8KEndlYl9zZWFyY2hfZW5hYmxlZBgRIAEoCEgEiAEBEjIKDXNraWxsX29wdGlvbnMYEiABKAsyFi5hZ2VudC52MS5Ta2lsbE9wdGlvbnNIBYgBARIuCiFyZXBvc2l0b3J5X2luZm9fc2hvdWxkX3F1ZXJ5X3Byb2QYEyABKAhIBogBARJBCg1maWxlX2NvbnRlbnRzGBQgAygLMiouYWdlbnQudjEuUmVxdWVzdENvbnRleHQuRmlsZUNvbnRlbnRzRW50cnkSIAoTdXNlcl9pbnRlbnRfc3VtbWFyeRgVIAEoCUgHiAEBEjIKEGN1c3RvbV9zdWJhZ2VudHMYFiADKAsyGC5hZ2VudC52MS5DdXN0b21TdWJhZ2VudBJEChdtY3BfZmlsZV9zeXN0ZW1fb3B0aW9ucxgXIAEoCzIeLmFnZW50LnYxLk1jcEZpbGVTeXN0ZW1PcHRpb25zSAiIAQEaMwoRRmlsZUNvbnRlbnRzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIdChtfY29udmVyc2F0aW9uX25vdGVzX2xpc3RpbmdCFwoVX3NoYXJlZF9ub3Rlc19saXN0aW5nQhQKEl9kZWJ1Z19tb2RlX2NvbmZpZ0INCgtfY2xvdWRfcnVsZUIVChNfd2ViX3NlYXJjaF9lbmFibGVkQhAKDl9za2lsbF9vcHRpb25zQiQKIl9yZXBvc2l0b3J5X2luZm9fc2hvdWxkX3F1ZXJ5X3Byb2RCFgoUX3VzZXJfaW50ZW50X3N1bW1hcnlCGgoYX21jcF9maWxlX3N5c3RlbV9vcHRpb25zIrICCg1TYW5kYm94UG9saWN5EgwKBHR5cGUYASABKAUSGwoObmV0d29ya19hY2Nlc3MYAiABKAhIAIgBARIiChphZGRpdGlvbmFsX3JlYWR3cml0ZV9wYXRocxgDIAMoCRIhChlhZGRpdGlvbmFsX3JlYWRvbmx5X3BhdGhzGAQgAygJEh0KEGRlYnVnX291dHB1dF9kaXIYBSABKAlIAYgBARIdChBibG9ja19naXRfd3JpdGVzGAYgASgISAKIAQESHgoRZGlzYWJsZV90bXBfd3JpdGUYByABKAhIA4gBAUIRCg9fbmV0d29ya19hY2Nlc3NCEwoRX2RlYnVnX291dHB1dF9kaXJCEwoRX2Jsb2NrX2dpdF93cml0ZXNCFAoSX2Rpc2FibGVfdG1wX3dyaXRlIu8BCg1TZWxlY3RlZEltYWdlEgwKBHV1aWQYAiABKAkSDAoEcGF0aBgDIAEoCRI0CglkaW1lbnNpb24YBCABKAsyIS5hZ2VudC52MS5TZWxlY3RlZEltYWdlX0RpbWVuc2lvbhIRCgltaW1lX3R5cGUYByABKAkSEQoHYmxvYl9pZBgBIAEoDEgAEg4KBGRhdGEYCCABKAxIABJDChFibG9iX2lkX3dpdGhfZGF0YRgJIAEoCzImLmFnZW50LnYxLlNlbGVjdGVkSW1hZ2VfQmxvYklkV2l0aERhdGFIAEIRCg9kYXRhX29yX2Jsb2JfaWQiPQocU2VsZWN0ZWRJbWFnZV9CbG9iSWRXaXRoRGF0YRIPCgdibG9iX2lkGAEgASgMEgwKBGRhdGEYAiABKAwiOAoXU2VsZWN0ZWRJbWFnZV9EaW1lbnNpb24SDQoFd2lkdGgYASABKAUSDgoGaGVpZ2h0GAIgASgFIkkKEUV4dHJhQ29udGV4dEVudHJ5Eg4KBGRhdGEYASABKAlIABIRCgdibG9iX2lkGAIgASgMSABCEQoPZGF0YV9vcl9ibG9iX2lkIlsKDFNlbGVjdGVkRmlsZRIPCgdjb250ZW50GAEgASgJEgwKBHBhdGgYAiABKAkSGgoNcmVsYXRpdmVfcGF0aBgDIAEoCUgAiAEBQhAKDl9yZWxhdGl2ZV9wYXRoIoQBChVTZWxlY3RlZENvZGVTZWxlY3Rpb24SDwoHY29udGVudBgBIAEoCRIMCgRwYXRoGAIgASgJEhoKDXJlbGF0aXZlX3BhdGgYAyABKAlIAIgBARIeCgVyYW5nZRgEIAEoCzIPLmFnZW50LnYxLlJhbmdlQhAKDl9yZWxhdGl2ZV9wYXRoIl0KEFNlbGVjdGVkVGVybWluYWwSDwoHY29udGVudBgBIAEoCRISCgV0aXRsZRgCIAEoCUgAiAEBEhEKBHBhdGgYAyABKAlIAYgBAUIICgZfdGl0bGVCBwoFX3BhdGgihgEKGVNlbGVjdGVkVGVybWluYWxTZWxlY3Rpb24SDwoHY29udGVudBgBIAEoCRISCgV0aXRsZRgCIAEoCUgAiAEBEhEKBHBhdGgYAyABKAlIAYgBARIeCgVyYW5nZRgEIAEoCzIPLmFnZW50LnYxLlJhbmdlQggKBl90aXRsZUIHCgVfcGF0aCKDAQoOU2VsZWN0ZWRGb2xkZXISDAoEcGF0aBgBIAEoCRIaCg1yZWxhdGl2ZV9wYXRoGAIgASgJSACIAQESNQoOZGlyZWN0b3J5X3RyZWUYAyABKAsyHS5hZ2VudC52MS5Mc0RpcmVjdG9yeVRyZWVOb2RlQhAKDl9yZWxhdGl2ZV9wYXRoIp8BChRTZWxlY3RlZEV4dGVybmFsTGluaxILCgN1cmwYASABKAkSDAoEdXVpZBgCIAEoCRIYCgtwZGZfY29udGVudBgDIAEoCUgAiAEBEhMKBmlzX3BkZhgEIAEoCEgBiAEBEhUKCGZpbGVuYW1lGAUgASgJSAKIAQFCDgoMX3BkZl9jb250ZW50QgkKB19pc19wZGZCCwoJX2ZpbGVuYW1lIjgKElNlbGVjdGVkQ3Vyc29yUnVsZRIiCgRydWxlGAEgASgLMhQuYWdlbnQudjEuQ3Vyc29yUnVsZSIiCg9TZWxlY3RlZEdpdERpZmYSDwoHY29udGVudBgBIAEoCSIyCh9TZWxlY3RlZEdpdERpZmZGcm9tQnJhbmNoVG9NYWluEg8KB2NvbnRlbnQYASABKAkiaQoRU2VsZWN0ZWRHaXRDb21taXQSCwoDc2hhGAEgASgJEg8KB21lc3NhZ2UYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARIMCgRkaWZmGAQgASgJQg4KDF9kZXNjcmlwdGlvbiLdAQoTU2VsZWN0ZWRQdWxsUmVxdWVzdBIOCgZudW1iZXIYASABKAUSCwoDdXJsGAIgASgJEhIKBXRpdGxlGAMgASgJSACIAQESEwoLZm9sZGVyX3BhdGgYBCABKAkSGQoMc3VtbWFyeV9qc29uGAUgASgJSAGIAQESGAoLZGVzY3JpcHRpb24YBiABKAlIAogBARIUCgdibG9iX2lkGAcgASgMSAOIAQFCCAoGX3RpdGxlQg8KDV9zdW1tYXJ5X2pzb25CDgoMX2Rlc2NyaXB0aW9uQgoKCF9ibG9iX2lkIrMBChpTZWxlY3RlZEdpdFBSRGlmZlNlbGVjdGlvbhIOCgZwcl91cmwYASABKAkSEQoJZmlsZV9wYXRoGAIgASgJEhIKCnN0YXJ0X2xpbmUYAyABKAUSEAoIZW5kX2xpbmUYBCABKAUSGQoMZGlmZl9jb250ZW50GAUgASgJSACIAQESFAoHYmxvYl9pZBgGIAEoDEgBiAEBQg8KDV9kaWZmX2NvbnRlbnRCCgoIX2Jsb2JfaWQiNgoVU2VsZWN0ZWRDdXJzb3JDb21tYW5kEgwKBG5hbWUYASABKAkSDwoHY29udGVudBgCIAEoCSI1ChVTZWxlY3RlZERvY3VtZW50YXRpb24SDgoGZG9jX2lkGAEgASgJEgwKBG5hbWUYAiABKAkiMgoQU2VsZWN0ZWRQYXN0Q2hhdBIQCghhZ2VudF9pZBgBIAEoCRIMCgRuYW1lGAIgASgJIqsBCglDYWxsRnJhbWUSGgoNZnVuY3Rpb25fbmFtZRgBIAEoCUgAiAEBEhAKA3VybBgCIAEoCUgBiAEBEhgKC2xpbmVfbnVtYmVyGAMgASgFSAKIAQESGgoNY29sdW1uX251bWJlchgEIAEoBUgDiAEBQhAKDl9mdW5jdGlvbl9uYW1lQgYKBF91cmxCDgoMX2xpbmVfbnVtYmVyQhAKDl9jb2x1bW5fbnVtYmVyImgKClN0YWNrVHJhY2USKAoLY2FsbF9mcmFtZXMYASADKAsyEy5hZ2VudC52MS5DYWxsRnJhbWUSHAoPcmF3X3N0YWNrX3RyYWNlGAIgASgJSACIAQFCEgoQX3Jhd19zdGFja190cmFjZSLkAQoSU2VsZWN0ZWRDb25zb2xlTG9nEg8KB21lc3NhZ2UYASABKAkSEQoJdGltZXN0YW1wGAIgASgBEg0KBWxldmVsGAMgASgJEhMKC2NsaWVudF9uYW1lGAQgASgJEhIKCnNlc3Npb25faWQYBSABKAkSLgoLc3RhY2tfdHJhY2UYBiABKAsyFC5hZ2VudC52MS5TdGFja1RyYWNlSACIAQESHQoQb2JqZWN0X2RhdGFfanNvbhgHIAEoCUgBiAEBQg4KDF9zdGFja190cmFjZUITChFfb2JqZWN0X2RhdGFfanNvbiK6AQoRU2VsZWN0ZWRVSUVsZW1lbnQSDwoHZWxlbWVudBgBIAEoCRINCgV4cGF0aBgCIAEoCRIUCgx0ZXh0X2NvbnRlbnQYAyABKAkSDQoFZXh0cmEYBCABKAkSFgoJY29tcG9uZW50GAUgASgJSACIAQESIQoUY29tcG9uZW50X3Byb3BzX2pzb24YBiABKAlIAYgBAUIMCgpfY29tcG9uZW50QhcKFV9jb21wb25lbnRfcHJvcHNfanNvbiIgChBTZWxlY3RlZFN1YmFnZW50EgwKBG5hbWUYASABKAkiggoKD1NlbGVjdGVkQ29udGV4dBIwCg9zZWxlY3RlZF9pbWFnZXMYASADKAsyFy5hZ2VudC52MS5TZWxlY3RlZEltYWdlEjwKEmludm9jYXRpb25fY29udGV4dBgCIAEoCzIbLmFnZW50LnYxLkludm9jYXRpb25Db250ZXh0SACIAQESFQoNZXh0cmFfY29udGV4dBgDIAMoCRI6ChVleHRyYV9jb250ZXh0X2VudHJpZXMYECADKAsyGy5hZ2VudC52MS5FeHRyYUNvbnRleHRFbnRyeRIlCgVmaWxlcxgEIAMoCzIWLmFnZW50LnYxLlNlbGVjdGVkRmlsZRI4Cg9jb2RlX3NlbGVjdGlvbnMYBSADKAsyHy5hZ2VudC52MS5TZWxlY3RlZENvZGVTZWxlY3Rpb24SLQoJdGVybWluYWxzGAYgAygLMhouYWdlbnQudjEuU2VsZWN0ZWRUZXJtaW5hbBJAChN0ZXJtaW5hbF9zZWxlY3Rpb25zGAcgAygLMiMuYWdlbnQudjEuU2VsZWN0ZWRUZXJtaW5hbFNlbGVjdGlvbhIpCgdmb2xkZXJzGAggAygLMhguYWdlbnQudjEuU2VsZWN0ZWRGb2xkZXISNgoOZXh0ZXJuYWxfbGlua3MYCSADKAsyHi5hZ2VudC52MS5TZWxlY3RlZEV4dGVybmFsTGluaxIyCgxjdXJzb3JfcnVsZXMYCiADKAsyHC5hZ2VudC52MS5TZWxlY3RlZEN1cnNvclJ1bGUSMAoIZ2l0X2RpZmYYEiABKAsyGS5hZ2VudC52MS5TZWxlY3RlZEdpdERpZmZIAYgBARJUChxnaXRfZGlmZl9mcm9tX2JyYW5jaF90b19tYWluGAsgASgLMikuYWdlbnQudjEuU2VsZWN0ZWRHaXREaWZmRnJvbUJyYW5jaFRvTWFpbkgCiAEBEjgKD2N1cnNvcl9jb21tYW5kcxgMIAMoCzIfLmFnZW50LnYxLlNlbGVjdGVkQ3Vyc29yQ29tbWFuZBI3Cg5kb2N1bWVudGF0aW9ucxgNIAMoCzIfLmFnZW50LnYxLlNlbGVjdGVkRG9jdW1lbnRhdGlvbhIwCgt1aV9lbGVtZW50cxgOIAMoCzIbLmFnZW50LnYxLlNlbGVjdGVkVUlFbGVtZW50EjIKDGNvbnNvbGVfbG9ncxgPIAMoCzIcLmFnZW50LnYxLlNlbGVjdGVkQ29uc29sZUxvZxIwCgtnaXRfY29tbWl0cxgRIAMoCzIbLmFnZW50LnYxLlNlbGVjdGVkR2l0Q29tbWl0Ei4KCnBhc3RfY2hhdHMYEyADKAsyGi5hZ2VudC52MS5TZWxlY3RlZFBhc3RDaGF0EkQKFmdpdF9wcl9kaWZmX3NlbGVjdGlvbnMYFCADKAsyJC5hZ2VudC52MS5TZWxlY3RlZEdpdFBSRGlmZlNlbGVjdGlvbhI9ChZzZWxlY3RlZF9wdWxsX3JlcXVlc3RzGBUgAygLMh0uYWdlbnQudjEuU2VsZWN0ZWRQdWxsUmVxdWVzdBI2ChJzZWxlY3RlZF9zdWJhZ2VudHMYFiADKAsyGi5hZ2VudC52MS5TZWxlY3RlZFN1YmFnZW50QhUKE19pbnZvY2F0aW9uX2NvbnRleHRCCwoJX2dpdF9kaWZmQh8KHV9naXRfZGlmZl9mcm9tX2JyYW5jaF90b19tYWluIuUBChFJbnZvY2F0aW9uQ29udGV4dBI/CgxzbGFja190aHJlYWQYASABKAsyJy5hZ2VudC52MS5JbnZvY2F0aW9uQ29udGV4dF9TbGFja1RocmVhZEgAEjkKCWdpdGh1Yl9wchgCIAEoCzIkLmFnZW50LnYxLkludm9jYXRpb25Db250ZXh0X0dpdGh1YlBSSAASOQoJaWRlX3N0YXRlGAMgASgLMiQuYWdlbnQudjEuSW52b2NhdGlvbkNvbnRleHRfSWRlU3RhdGVIABIRCgdibG9iX2lkGAogASgMSABCBgoEZGF0YSK7AQodSW52b2NhdGlvbkNvbnRleHRfU2xhY2tUaHJlYWQSDgoGdGhyZWFkGAEgASgJEhkKDGNoYW5uZWxfbmFtZRgCIAEoCUgAiAEBEhwKD2NoYW5uZWxfcHVycG9zZRgDIAEoCUgBiAEBEhoKDWNoYW5uZWxfdG9waWMYBCABKAlIAogBAUIPCg1fY2hhbm5lbF9uYW1lQhIKEF9jaGFubmVsX3B1cnBvc2VCEAoOX2NoYW5uZWxfdG9waWMifAoaSW52b2NhdGlvbkNvbnRleHRfR2l0aHViUFISDQoFdGl0bGUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSEAoIY29tbWVudHMYAyABKAkSGAoLY2lfZmFpbHVyZXMYBCABKAlIAIgBAUIOCgxfY2lfZmFpbHVyZXMi/gEKGkludm9jYXRpb25Db250ZXh0X0lkZVN0YXRlEkAKDXZpc2libGVfZmlsZXMYASADKAsyKS5hZ2VudC52MS5JbnZvY2F0aW9uQ29udGV4dF9JZGVTdGF0ZV9GaWxlEkgKFXJlY2VudGx5X3ZpZXdlZF9maWxlcxgCIAMoCzIpLmFnZW50LnYxLkludm9jYXRpb25Db250ZXh0X0lkZVN0YXRlX0ZpbGUSVAoUY3VycmVudGx5X3ZpZXdlZF9wcnMYAyADKAsyNi5hZ2VudC52MS5JbnZvY2F0aW9uQ29udGV4dF9JZGVTdGF0ZV9WaWV3ZWRQdWxsUmVxdWVzdCKOAgofSW52b2NhdGlvbkNvbnRleHRfSWRlU3RhdGVfRmlsZRIMCgRwYXRoGAEgASgJEhoKDXJlbGF0aXZlX3BhdGgYAiABKAlIAIgBARJWCg9jdXJzb3JfcG9zaXRpb24YAyABKAsyOC5hZ2VudC52MS5JbnZvY2F0aW9uQ29udGV4dF9JZGVTdGF0ZV9GaWxlX0N1cnNvclBvc2l0aW9uSAGIAQESEwoLdG90YWxfbGluZXMYBCABKAUSGwoOYWN0aXZlX2NvbW1hbmQYBSABKAlIAogBAUIQCg5fcmVsYXRpdmVfcGF0aEISChBfY3Vyc29yX3Bvc2l0aW9uQhEKD19hY3RpdmVfY29tbWFuZCJMCi5JbnZvY2F0aW9uQ29udGV4dF9JZGVTdGF0ZV9GaWxlX0N1cnNvclBvc2l0aW9uEgwKBGxpbmUYASABKAUSDAoEdGV4dBgCIAEoCSLpAQosSW52b2NhdGlvbkNvbnRleHRfSWRlU3RhdGVfVmlld2VkUHVsbFJlcXVlc3QSDgoGbnVtYmVyGAEgASgFEgsKA3VybBgCIAEoCRISCgV0aXRsZRgDIAEoCUgAiAEBEhgKC2ZvbGRlcl9wYXRoGAQgASgJSAGIAQESGQoMc3VtbWFyeV9qc29uGAUgASgJSAKIAQESGAoLZGVzY3JpcHRpb24YBiABKAlIA4gBAUIICgZfdGl0bGVCDgoMX2ZvbGRlcl9wYXRoQg8KDV9zdW1tYXJ5X2pzb25CDgoMX2Rlc2NyaXB0aW9uIkgKFlNldHVwVm1FbnZpcm9ubWVudEFyZ3MSFwoPaW5zdGFsbF9jb21tYW5kGAIgASgJEhUKDXN0YXJ0X2NvbW1hbmQYAyABKAkiXAoYU2V0dXBWbUVudmlyb25tZW50UmVzdWx0EjYKB3N1Y2Nlc3MYASABKAsyIy5hZ2VudC52MS5TZXR1cFZtRW52aXJvbm1lbnRTdWNjZXNzSABCCAoGcmVzdWx0IhsKGVNldHVwVm1FbnZpcm9ubWVudFN1Y2Nlc3MigAEKGlNldHVwVm1FbnZpcm9ubWVudFRvb2xDYWxsEi4KBGFyZ3MYASABKAsyIC5hZ2VudC52MS5TZXR1cFZtRW52aXJvbm1lbnRBcmdzEjIKBnJlc3VsdBgCIAEoCzIiLmFnZW50LnYxLlNldHVwVm1FbnZpcm9ubWVudFJlc3VsdCLAAQoZU2hlbGxDb21tYW5kUGFyc2luZ1Jlc3VsdBIWCg5wYXJzaW5nX2ZhaWxlZBgBIAEoCBJSChNleGVjdXRhYmxlX2NvbW1hbmRzGAIgAygLMjUuYWdlbnQudjEuU2hlbGxDb21tYW5kUGFyc2luZ1Jlc3VsdF9FeGVjdXRhYmxlQ29tbWFuZBIVCg1oYXNfcmVkaXJlY3RzGAMgASgIEiAKGGhhc19jb21tYW5kX3N1YnN0aXR1dGlvbhgEIAEoCCJNCi5TaGVsbENvbW1hbmRQYXJzaW5nUmVzdWx0X0V4ZWN1dGFibGVDb21tYW5kQXJnEgwKBHR5cGUYASABKAkSDQoFdmFsdWUYAiABKAkilgEKK1NoZWxsQ29tbWFuZFBhcnNpbmdSZXN1bHRfRXhlY3V0YWJsZUNvbW1hbmQSDAoEbmFtZRgBIAEoCRJGCgRhcmdzGAIgAygLMjguYWdlbnQudjEuU2hlbGxDb21tYW5kUGFyc2luZ1Jlc3VsdF9FeGVjdXRhYmxlQ29tbWFuZEFyZxIRCglmdWxsX3RleHQYAyABKAkiiAQKCVNoZWxsQXJncxIPCgdjb21tYW5kGAEgASgJEhkKEXdvcmtpbmdfZGlyZWN0b3J5GAIgASgJEg8KB3RpbWVvdXQYAyABKAUSFAoMdG9vbF9jYWxsX2lkGAQgASgJEhcKD3NpbXBsZV9jb21tYW5kcxgFIAMoCRIaChJoYXNfaW5wdXRfcmVkaXJlY3QYBiABKAgSGwoTaGFzX291dHB1dF9yZWRpcmVjdBgHIAEoCBI7Cg5wYXJzaW5nX3Jlc3VsdBgIIAEoCzIjLmFnZW50LnYxLlNoZWxsQ29tbWFuZFBhcnNpbmdSZXN1bHQSPgoYcmVxdWVzdGVkX3NhbmRib3hfcG9saWN5GAkgASgLMhcuYWdlbnQudjEuU2FuZGJveFBvbGljeUgAiAEBEigKG2ZpbGVfb3V0cHV0X3RocmVzaG9sZF9ieXRlcxgKIAEoBEgBiAEBEhUKDWlzX2JhY2tncm91bmQYCyABKAgSFQoNc2tpcF9hcHByb3ZhbBgMIAEoCBIYChB0aW1lb3V0X2JlaGF2aW9yGA0gASgFEhkKDGhhcmRfdGltZW91dBgOIAEoBUgCiAEBQhsKGV9yZXF1ZXN0ZWRfc2FuZGJveF9wb2xpY3lCHgocX2ZpbGVfb3V0cHV0X3RocmVzaG9sZF9ieXRlc0IPCg1faGFyZF90aW1lb3V0IvoDCgtTaGVsbFJlc3VsdBI0Cg5zYW5kYm94X3BvbGljeRhlIAEoCzIXLmFnZW50LnYxLlNhbmRib3hQb2xpY3lIAYgBARIaCg1pc19iYWNrZ3JvdW5kGGYgASgISAKIAQESHQoQdGVybWluYWxzX2ZvbGRlchhnIAEoCUgDiAEBEhAKA3BpZBhoIAEoDUgEiAEBEikKB3N1Y2Nlc3MYASABKAsyFi5hZ2VudC52MS5TaGVsbFN1Y2Nlc3NIABIpCgdmYWlsdXJlGAIgASgLMhYuYWdlbnQudjEuU2hlbGxGYWlsdXJlSAASKQoHdGltZW91dBgDIAEoCzIWLmFnZW50LnYxLlNoZWxsVGltZW91dEgAEisKCHJlamVjdGVkGAQgASgLMhcuYWdlbnQudjEuU2hlbGxSZWplY3RlZEgAEjAKC3NwYXduX2Vycm9yGAUgASgLMhkuYWdlbnQudjEuU2hlbGxTcGF3bkVycm9ySAASPAoRcGVybWlzc2lvbl9kZW5pZWQYByABKAsyHy5hZ2VudC52MS5TaGVsbFBlcm1pc3Npb25EZW5pZWRIAEIICgZyZXN1bHRCEQoPX3NhbmRib3hfcG9saWN5QhAKDl9pc19iYWNrZ3JvdW5kQhMKEV90ZXJtaW5hbHNfZm9sZGVyQgYKBF9waWQiIQoRU2hlbGxTdHJlYW1TdGRvdXQSDAoEZGF0YRgBIAEoCSIhChFTaGVsbFN0cmVhbVN0ZGVychIMCgRkYXRhGAEgASgJIrUBCg9TaGVsbFN0cmVhbUV4aXQSDAoEY29kZRgBIAEoDRILCgNjd2QYAiABKAkSNgoPb3V0cHV0X2xvY2F0aW9uGAMgASgLMhguYWdlbnQudjEuT3V0cHV0TG9jYXRpb25IAIgBARIPCgdhYm9ydGVkGAQgASgIEhkKDGFib3J0X3JlYXNvbhgFIAEoBUgBiAEBQhIKEF9vdXRwdXRfbG9jYXRpb25CDwoNX2Fib3J0X3JlYXNvbiJbChBTaGVsbFN0cmVhbVN0YXJ0EjQKDnNhbmRib3hfcG9saWN5GAEgASgLMhcuYWdlbnQudjEuU2FuZGJveFBvbGljeUgAiAEBQhEKD19zYW5kYm94X3BvbGljeSKZAQoXU2hlbGxTdHJlYW1CYWNrZ3JvdW5kZWQSEAoIc2hlbGxfaWQYASABKA0SDwoHY29tbWFuZBgCIAEoCRIZChF3b3JraW5nX2RpcmVjdG9yeRgDIAEoCRIQCgNwaWQYBCABKA1IAIgBARIXCgptc190b193YWl0GAUgASgFSAGIAQFCBgoEX3BpZEINCgtfbXNfdG9fd2FpdCLyAgoLU2hlbGxTdHJlYW0SLQoGc3Rkb3V0GAEgASgLMhsuYWdlbnQudjEuU2hlbGxTdHJlYW1TdGRvdXRIABItCgZzdGRlcnIYAiABKAsyGy5hZ2VudC52MS5TaGVsbFN0cmVhbVN0ZGVyckgAEikKBGV4aXQYAyABKAsyGS5hZ2VudC52MS5TaGVsbFN0cmVhbUV4aXRIABIrCgVzdGFydBgEIAEoCzIaLmFnZW50LnYxLlNoZWxsU3RyZWFtU3RhcnRIABIrCghyZWplY3RlZBgFIAEoCzIXLmFnZW50LnYxLlNoZWxsUmVqZWN0ZWRIABI8ChFwZXJtaXNzaW9uX2RlbmllZBgGIAEoCzIfLmFnZW50LnYxLlNoZWxsUGVybWlzc2lvbkRlbmllZEgAEjkKDGJhY2tncm91bmRlZBgHIAEoCzIhLmFnZW50LnYxLlNoZWxsU3RyZWFtQmFja2dyb3VuZGVkSABCBwoFZXZlbnQiSwoOT3V0cHV0TG9jYXRpb24SEQoJZmlsZV9wYXRoGAEgASgJEhIKCnNpemVfYnl0ZXMYAiABKAMSEgoKbGluZV9jb3VudBgDIAEoAyL/AgoMU2hlbGxTdWNjZXNzEg8KB2NvbW1hbmQYASABKAkSGQoRd29ya2luZ19kaXJlY3RvcnkYAiABKAkSEQoJZXhpdF9jb2RlGAMgASgFEg4KBnNpZ25hbBgEIAEoCRIOCgZzdGRvdXQYBSABKAkSDgoGc3RkZXJyGAYgASgJEhYKDmV4ZWN1dGlvbl90aW1lGAcgASgFEjYKD291dHB1dF9sb2NhdGlvbhgIIAEoCzIYLmFnZW50LnYxLk91dHB1dExvY2F0aW9uSACIAQESFQoIc2hlbGxfaWQYCSABKA1IAYgBARIfChJpbnRlcmxlYXZlZF9vdXRwdXQYCiABKAlIAogBARIQCgNwaWQYCyABKA1IA4gBARIXCgptc190b193YWl0GAwgASgFSASIAQFCEgoQX291dHB1dF9sb2NhdGlvbkILCglfc2hlbGxfaWRCFQoTX2ludGVybGVhdmVkX291dHB1dEIGCgRfcGlkQg0KC19tc190b193YWl0ItYCCgxTaGVsbEZhaWx1cmUSDwoHY29tbWFuZBgBIAEoCRIZChF3b3JraW5nX2RpcmVjdG9yeRgCIAEoCRIRCglleGl0X2NvZGUYAyABKAUSDgoGc2lnbmFsGAQgASgJEg4KBnN0ZG91dBgFIAEoCRIOCgZzdGRlcnIYBiABKAkSFgoOZXhlY3V0aW9uX3RpbWUYByABKAUSNgoPb3V0cHV0X2xvY2F0aW9uGAggASgLMhguYWdlbnQudjEuT3V0cHV0TG9jYXRpb25IAIgBARIfChJpbnRlcmxlYXZlZF9vdXRwdXQYCSABKAlIAYgBARIZCgxhYm9ydF9yZWFzb24YCiABKAVIAogBARIPCgdhYm9ydGVkGAsgASgIQhIKEF9vdXRwdXRfbG9jYXRpb25CFQoTX2ludGVybGVhdmVkX291dHB1dEIPCg1fYWJvcnRfcmVhc29uIk4KDFNoZWxsVGltZW91dBIPCgdjb21tYW5kGAEgASgJEhkKEXdvcmtpbmdfZGlyZWN0b3J5GAIgASgJEhIKCnRpbWVvdXRfbXMYAyABKAUiYAoNU2hlbGxSZWplY3RlZBIPCgdjb21tYW5kGAEgASgJEhkKEXdvcmtpbmdfZGlyZWN0b3J5GAIgASgJEg4KBnJlYXNvbhgDIAEoCRITCgtpc19yZWFkb25seRgEIAEoCCJnChVTaGVsbFBlcm1pc3Npb25EZW5pZWQSDwoHY29tbWFuZBgBIAEoCRIZChF3b3JraW5nX2RpcmVjdG9yeRgCIAEoCRINCgVlcnJvchgDIAEoCRITCgtpc19yZWFkb25seRgEIAEoCCJMCg9TaGVsbFNwYXduRXJyb3ISDwoHY29tbWFuZBgBIAEoCRIZChF3b3JraW5nX2RpcmVjdG9yeRgCIAEoCRINCgVlcnJvchgDIAEoCSJAChJTaGVsbFBhcnRpYWxSZXN1bHQSFAoMc3Rkb3V0X2RlbHRhGAEgASgJEhQKDHN0ZGVycl9kZWx0YRgCIAEoCSJZCg1TaGVsbFRvb2xDYWxsEiEKBGFyZ3MYASABKAsyEy5hZ2VudC52MS5TaGVsbEFyZ3MSJQoGcmVzdWx0GAIgASgLMhUuYWdlbnQudjEuU2hlbGxSZXN1bHQiKwoYU2hlbGxUb29sQ2FsbFN0ZG91dERlbHRhEg8KB2NvbnRlbnQYASABKAkiKwoYU2hlbGxUb29sQ2FsbFN0ZGVyckRlbHRhEg8KB2NvbnRlbnQYASABKAkiiQEKElNoZWxsVG9vbENhbGxEZWx0YRI0CgZzdGRvdXQYASABKAsyIi5hZ2VudC52MS5TaGVsbFRvb2xDYWxsU3Rkb3V0RGVsdGFIABI0CgZzdGRlcnIYAiABKAsyIi5hZ2VudC52MS5TaGVsbFRvb2xDYWxsU3RkZXJyRGVsdGFIAEIHCgVkZWx0YSLtAQoMU3ViYWdlbnRUeXBlEjgKC3Vuc3BlY2lmaWVkGAEgASgLMiEuYWdlbnQudjEuU3ViYWdlbnRUeXBlVW5zcGVjaWZpZWRIABI5Cgxjb21wdXRlcl91c2UYAiABKAsyIS5hZ2VudC52MS5TdWJhZ2VudFR5cGVDb21wdXRlclVzZUgAEi4KBmN1c3RvbRgDIAEoCzIcLmFnZW50LnYxLlN1YmFnZW50VHlwZUN1c3RvbUgAEjAKB2V4cGxvcmUYBCABKAsyHS5hZ2VudC52MS5TdWJhZ2VudFR5cGVFeHBsb3JlSABCBgoEdHlwZSIZChdTdWJhZ2VudFR5cGVVbnNwZWNpZmllZCIZChdTdWJhZ2VudFR5cGVDb21wdXRlclVzZSIVChNTdWJhZ2VudFR5cGVFeHBsb3JlIiIKElN1YmFnZW50VHlwZUN1c3RvbRIMCgRuYW1lGAEgASgJIo0BCg5DdXN0b21TdWJhZ2VudBIRCglmdWxsX3BhdGgYASABKAkSDAoEbmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRINCgV0b29scxgEIAMoCRINCgVtb2RlbBgFIAEoCRIOCgZwcm9tcHQYBiABKAkSFwoPcGVybWlzc2lvbl9tb2RlGAcgASgFImgKDlN3aXRjaE1vZGVBcmdzEhYKDnRhcmdldF9tb2RlX2lkGAEgASgJEhgKC2V4cGxhbmF0aW9uGAIgASgJSACIAQESFAoMdG9vbF9jYWxsX2lkGAMgASgJQg4KDF9leHBsYW5hdGlvbiKqAQoQU3dpdGNoTW9kZVJlc3VsdBIuCgdzdWNjZXNzGAEgASgLMhsuYWdlbnQudjEuU3dpdGNoTW9kZVN1Y2Nlc3NIABIqCgVlcnJvchgCIAEoCzIZLmFnZW50LnYxLlN3aXRjaE1vZGVFcnJvckgAEjAKCHJlamVjdGVkGAMgASgLMhwuYWdlbnQudjEuU3dpdGNoTW9kZVJlamVjdGVkSABCCAoGcmVzdWx0Ij0KEVN3aXRjaE1vZGVTdWNjZXNzEhQKDGZyb21fbW9kZV9pZBgBIAEoCRISCgp0b19tb2RlX2lkGAIgASgJIiAKD1N3aXRjaE1vZGVFcnJvchINCgVlcnJvchgBIAEoCSIkChJTd2l0Y2hNb2RlUmVqZWN0ZWQSDgoGcmVhc29uGAEgASgJImgKElN3aXRjaE1vZGVUb29sQ2FsbBImCgRhcmdzGAEgASgLMhguYWdlbnQudjEuU3dpdGNoTW9kZUFyZ3MSKgoGcmVzdWx0GAIgASgLMhouYWdlbnQudjEuU3dpdGNoTW9kZVJlc3VsdCJAChZTd2l0Y2hNb2RlUmVxdWVzdFF1ZXJ5EiYKBGFyZ3MYASABKAsyGC5hZ2VudC52MS5Td2l0Y2hNb2RlQXJncyKpAQoZU3dpdGNoTW9kZVJlcXVlc3RSZXNwb25zZRJACghhcHByb3ZlZBgBIAEoCzIsLmFnZW50LnYxLlN3aXRjaE1vZGVSZXF1ZXN0UmVzcG9uc2VfQXBwcm92ZWRIABJACghyZWplY3RlZBgCIAEoCzIsLmFnZW50LnYxLlN3aXRjaE1vZGVSZXF1ZXN0UmVzcG9uc2VfUmVqZWN0ZWRIAEIICgZyZXN1bHQiJAoiU3dpdGNoTW9kZVJlcXVlc3RSZXNwb25zZV9BcHByb3ZlZCI0CiJTd2l0Y2hNb2RlUmVxdWVzdFJlc3BvbnNlX1JlamVjdGVkEg4KBnJlYXNvbhgBIAEoCSJ1CghUb2RvSXRlbRIKCgJpZBgBIAEoCRIPCgdjb250ZW50GAIgASgJEg4KBnN0YXR1cxgDIAEoBRISCgpjcmVhdGVkX2F0GAQgASgDEhIKCnVwZGF0ZWRfYXQYBSABKAMSFAoMZGVwZW5kZW5jaWVzGAYgAygJImsKE1VwZGF0ZVRvZG9zVG9vbENhbGwSJwoEYXJncxgBIAEoCzIZLmFnZW50LnYxLlVwZGF0ZVRvZG9zQXJncxIrCgZyZXN1bHQYAiABKAsyGy5hZ2VudC52MS5VcGRhdGVUb2Rvc1Jlc3VsdCJDCg9VcGRhdGVUb2Rvc0FyZ3MSIQoFdG9kb3MYASADKAsyEi5hZ2VudC52MS5Ub2RvSXRlbRINCgVtZXJnZRgCIAEoCCJ7ChFVcGRhdGVUb2Rvc1Jlc3VsdBIvCgdzdWNjZXNzGAEgASgLMhwuYWdlbnQudjEuVXBkYXRlVG9kb3NTdWNjZXNzSAASKwoFZXJyb3IYAiABKAsyGi5hZ2VudC52MS5VcGRhdGVUb2Rvc0Vycm9ySABCCAoGcmVzdWx0Il8KElVwZGF0ZVRvZG9zU3VjY2VzcxIhCgV0b2RvcxgBIAMoCzISLmFnZW50LnYxLlRvZG9JdGVtEhMKC3RvdGFsX2NvdW50GAIgASgFEhEKCXdhc19tZXJnZRgDIAEoCCIhChBVcGRhdGVUb2Rvc0Vycm9yEg0KBWVycm9yGAEgASgJImUKEVJlYWRUb2Rvc1Rvb2xDYWxsEiUKBGFyZ3MYASABKAsyFy5hZ2VudC52MS5SZWFkVG9kb3NBcmdzEikKBnJlc3VsdBgCIAEoCzIZLmFnZW50LnYxLlJlYWRUb2Rvc1Jlc3VsdCI5Cg1SZWFkVG9kb3NBcmdzEhUKDXN0YXR1c19maWx0ZXIYASADKAUSEQoJaWRfZmlsdGVyGAIgAygJInUKD1JlYWRUb2Rvc1Jlc3VsdBItCgdzdWNjZXNzGAEgASgLMhouYWdlbnQudjEuUmVhZFRvZG9zU3VjY2Vzc0gAEikKBWVycm9yGAIgASgLMhguYWdlbnQudjEuUmVhZFRvZG9zRXJyb3JIAEIICgZyZXN1bHQiSgoQUmVhZFRvZG9zU3VjY2VzcxIhCgV0b2RvcxgBIAMoCzISLmFnZW50LnYxLlRvZG9JdGVtEhMKC3RvdGFsX2NvdW50GAIgASgFIh8KDlJlYWRUb2Rvc0Vycm9yEg0KBWVycm9yGAEgASgJIksKBVJhbmdlEiEKBXN0YXJ0GAEgASgLMhIuYWdlbnQudjEuUG9zaXRpb24SHwoDZW5kGAIgASgLMhIuYWdlbnQudjEuUG9zaXRpb24iKAoIUG9zaXRpb24SDAoEbGluZRgBIAEoDRIOCgZjb2x1bW4YAiABKA0iGAoFRXJyb3ISDwoHbWVzc2FnZRgBIAEoCSI6Cg1XZWJTZWFyY2hBcmdzEhMKC3NlYXJjaF90ZXJtGAEgASgJEhQKDHRvb2xfY2FsbF9pZBgCIAEoCSKmAQoPV2ViU2VhcmNoUmVzdWx0Ei0KB3N1Y2Nlc3MYASABKAsyGi5hZ2VudC52MS5XZWJTZWFyY2hTdWNjZXNzSAASKQoFZXJyb3IYAiABKAsyGC5hZ2VudC52MS5XZWJTZWFyY2hFcnJvckgAEi8KCHJlamVjdGVkGAMgASgLMhsuYWdlbnQudjEuV2ViU2VhcmNoUmVqZWN0ZWRIAEIICgZyZXN1bHQiRAoQV2ViU2VhcmNoU3VjY2VzcxIwCgpyZWZlcmVuY2VzGAEgAygLMhwuYWdlbnQudjEuV2ViU2VhcmNoUmVmZXJlbmNlIh8KDldlYlNlYXJjaEVycm9yEg0KBWVycm9yGAEgASgJIiMKEVdlYlNlYXJjaFJlamVjdGVkEg4KBnJlYXNvbhgBIAEoCSI/ChJXZWJTZWFyY2hSZWZlcmVuY2USDQoFdGl0bGUYASABKAkSCwoDdXJsGAIgASgJEg0KBWNodW5rGAMgASgJImUKEVdlYlNlYXJjaFRvb2xDYWxsEiUKBGFyZ3MYASABKAsyFy5hZ2VudC52MS5XZWJTZWFyY2hBcmdzEikKBnJlc3VsdBgCIAEoCzIZLmFnZW50LnYxLldlYlNlYXJjaFJlc3VsdCI+ChVXZWJTZWFyY2hSZXF1ZXN0UXVlcnkSJQoEYXJncxgBIAEoCzIXLmFnZW50LnYxLldlYlNlYXJjaEFyZ3MipgEKGFdlYlNlYXJjaFJlcXVlc3RSZXNwb25zZRI/CghhcHByb3ZlZBgBIAEoCzIrLmFnZW50LnYxLldlYlNlYXJjaFJlcXVlc3RSZXNwb25zZV9BcHByb3ZlZEgAEj8KCHJlamVjdGVkGAIgASgLMisuYWdlbnQudjEuV2ViU2VhcmNoUmVxdWVzdFJlc3BvbnNlX1JlamVjdGVkSABCCAoGcmVzdWx0IiMKIVdlYlNlYXJjaFJlcXVlc3RSZXNwb25zZV9BcHByb3ZlZCIzCiFXZWJTZWFyY2hSZXF1ZXN0UmVzcG9uc2VfUmVqZWN0ZWQSDgoGcmVhc29uGAEgASgJIn8KCVdyaXRlQXJncxIMCgRwYXRoGAEgASgJEhEKCWZpbGVfdGV4dBgCIAEoCRIUCgx0b29sX2NhbGxfaWQYAyABKAkSJwofcmV0dXJuX2ZpbGVfY29udGVudF9hZnRlcl93cml0ZRgEIAEoCBISCgpmaWxlX2J5dGVzGAUgASgMIoACCgtXcml0ZVJlc3VsdBIpCgdzdWNjZXNzGAEgASgLMhYuYWdlbnQudjEuV3JpdGVTdWNjZXNzSAASPAoRcGVybWlzc2lvbl9kZW5pZWQYAyABKAsyHy5hZ2VudC52MS5Xcml0ZVBlcm1pc3Npb25EZW5pZWRIABIqCghub19zcGFjZRgEIAEoCzIWLmFnZW50LnYxLldyaXRlTm9TcGFjZUgAEiUKBWVycm9yGAUgASgLMhQuYWdlbnQudjEuV3JpdGVFcnJvckgAEisKCHJlamVjdGVkGAYgASgLMhcuYWdlbnQudjEuV3JpdGVSZWplY3RlZEgAQggKBnJlc3VsdCKKAQoMV3JpdGVTdWNjZXNzEgwKBHBhdGgYASABKAkSFQoNbGluZXNfY3JlYXRlZBgCIAEoBRIRCglmaWxlX3NpemUYAyABKAUSJQoYZmlsZV9jb250ZW50X2FmdGVyX3dyaXRlGAQgASgJSACIAQFCGwoZX2ZpbGVfY29udGVudF9hZnRlcl93cml0ZSJvChVXcml0ZVBlcm1pc3Npb25EZW5pZWQSDAoEcGF0aBgBIAEoCRIRCglkaXJlY3RvcnkYAiABKAkSEQoJb3BlcmF0aW9uGAMgASgJEg0KBWVycm9yGAQgASgJEhMKC2lzX3JlYWRvbmx5GAUgASgIIhwKDFdyaXRlTm9TcGFjZRIMCgRwYXRoGAEgASgJIikKCldyaXRlRXJyb3ISDAoEcGF0aBgBIAEoCRINCgVlcnJvchgCIAEoCSItCg1Xcml0ZVJlamVjdGVkEgwKBHBhdGgYASABKAkSDgoGcmVhc29uGAIgASgJIoMBChdCb290c3RyYXBTdGF0c2lnUmVxdWVzdBIeChFpZ25vcmVfZGV2X3N0YXR1cxgBIAEoCEgAiAEBEh0KEG9wZXJhdGluZ19zeXN0ZW0YAiABKAVIAYgBAUIUChJfaWdub3JlX2Rldl9zdGF0dXNCEwoRX29wZXJhdGluZ19zeXN0ZW0iDgoMUGluZ1Jlc3BvbnNlIrcBCgtFeGVjUmVxdWVzdBIPCgdjb21tYW5kGAEgASgJEhAKA2N3ZBgCIAEoCUgAiAEBEgwKBGFyZ3MYAyADKAkSOwoLZW52aXJvbm1lbnQYBCADKAsyJi5hZ2VudC52MS5FeGVjUmVxdWVzdC5FbnZpcm9ubWVudEVudHJ5GjIKEEVudmlyb25tZW50RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIGCgRfY3dkIqABCgxFeGVjUmVzcG9uc2USLQoMc3Rkb3V0X2V2ZW50GAEgASgLMhUuYWdlbnQudjEuU3Rkb3V0RXZlbnRIABItCgxzdGRlcnJfZXZlbnQYAiABKAsyFS5hZ2VudC52MS5TdGRlcnJFdmVudEgAEikKCmV4aXRfZXZlbnQYAyABKAsyEy5hZ2VudC52MS5FeGl0RXZlbnRIAEIHCgVldmVudCIbCgtTdGRvdXRFdmVudBIMCgRkYXRhGAEgASgJIhsKC1N0ZGVyckV2ZW50EgwKBGRhdGEYASABKAkiHgoJRXhpdEV2ZW50EhEKCWV4aXRfY29kZRgBIAEoBSIjChNSZWFkVGV4dEZpbGVSZXF1ZXN0EgwKBHBhdGgYASABKAkiJwoUUmVhZFRleHRGaWxlUmVzcG9uc2USDwoHY29udGVudBgBIAEoCSI1ChRXcml0ZVRleHRGaWxlUmVxdWVzdBIMCgRwYXRoGAEgASgJEg8KB2NvbnRlbnQYAiABKAkiFwoVV3JpdGVUZXh0RmlsZVJlc3BvbnNlIiUKFVJlYWRCaW5hcnlGaWxlUmVxdWVzdBIMCgRwYXRoGAEgASgJIikKFlJlYWRCaW5hcnlGaWxlUmVzcG9uc2USDwoHY29udGVudBgBIAEoDCI3ChZXcml0ZUJpbmFyeUZpbGVSZXF1ZXN0EgwKBHBhdGgYASABKAkSDwoHY29udGVudBgCIAEoDCIZChdXcml0ZUJpbmFyeUZpbGVSZXNwb25zZSJFCh5HZXRXb3Jrc3BhY2VDaGFuZ2VzSGFzaFJlcXVlc3QSEQoJcm9vdF9wYXRoGAEgASgJEhAKCGJhc2VfcmVmGAIgASgJIi8KH0dldFdvcmtzcGFjZUNoYW5nZXNIYXNoUmVzcG9uc2USDAoEaGFzaBgBIAEoCSJQCh9SZWZyZXNoR2l0aHViQWNjZXNzVG9rZW5SZXF1ZXN0EhsKE2dpdGh1Yl9hY2Nlc3NfdG9rZW4YASABKAkSEAoIaG9zdG5hbWUYAiABKAkiIgogUmVmcmVzaEdpdGh1YkFjY2Vzc1Rva2VuUmVzcG9uc2UiVwodV2FybVJlbW90ZUFjY2Vzc1NlcnZlclJlcXVlc3QSDgoGY29tbWl0GAEgASgJEgwKBHBvcnQYAiABKAUSGAoQY29ubmVjdGlvbl90b2tlbhgDIAEoCSIgCh5XYXJtUmVtb3RlQWNjZXNzU2VydmVyUmVzcG9uc2UiFgoUTGlzdEFydGlmYWN0c1JlcXVlc3QiigIKFkFydGlmYWN0VXBsb2FkTWV0YWRhdGESFQoNYWJzb2x1dGVfcGF0aBgBIAEoCRISCgpzaXplX2J5dGVzGAIgASgEEhoKEnVwZGF0ZWRfYXRfdW5peF9tcxgDIAEoAxIOCgZzdGF0dXMYBCABKAUSFgoOYnl0ZXNfdXBsb2FkZWQYBSABKAQSEgoKbGFzdF9lcnJvchgGIAEoCRIXCg91cGxvYWRfYXR0ZW1wdHMYByABKA0SHwoXbGFzdF9zdGFydGVkX2F0X3VuaXhfbXMYCCABKAMSIAoYbGFzdF9maW5pc2hlZF9hdF91bml4X21zGAkgASgDEhEKCXVwbG9hZF9pZBgKIAEoCSJMChVMaXN0QXJ0aWZhY3RzUmVzcG9uc2USMwoJYXJ0aWZhY3RzGAEgAygLMiAuYWdlbnQudjEuQXJ0aWZhY3RVcGxvYWRNZXRhZGF0YSJOChZVcGxvYWRBcnRpZmFjdHNSZXF1ZXN0EjQKB3VwbG9hZHMYASADKAsyIy5hZ2VudC52MS5BcnRpZmFjdFVwbG9hZEluc3RydWN0aW9uItcCChlBcnRpZmFjdFVwbG9hZEluc3RydWN0aW9uEhUKDWFic29sdXRlX3BhdGgYASABKAkSEgoKdXBsb2FkX3VybBgCIAEoCRIOCgZtZXRob2QYAyABKAkSQQoHaGVhZGVycxgEIAMoCzIwLmFnZW50LnYxLkFydGlmYWN0VXBsb2FkSW5zdHJ1Y3Rpb24uSGVhZGVyc0VudHJ5EhkKDGNvbnRlbnRfdHlwZRgFIAEoCUgAiAEBEh0KEHNsYWNrX3VwbG9hZF91cmwYBiABKAlIAYgBARIaCg1zbGFja19maWxlX2lkGAcgASgJSAKIAQEaLgoMSGVhZGVyc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCDwoNX2NvbnRlbnRfdHlwZUITChFfc2xhY2tfdXBsb2FkX3VybEIQCg5fc2xhY2tfZmlsZV9pZCKEAQocQXJ0aWZhY3RVcGxvYWREaXNwYXRjaFJlc3VsdBIVCg1hYnNvbHV0ZV9wYXRoGAEgASgJEg4KBnN0YXR1cxgCIAEoBRIPCgdtZXNzYWdlGAMgASgJEhoKDXNsYWNrX2ZpbGVfaWQYBCABKAlIAIgBAUIQCg5fc2xhY2tfZmlsZV9pZCJSChdVcGxvYWRBcnRpZmFjdHNSZXNwb25zZRI3CgdyZXN1bHRzGAEgAygLMiYuYWdlbnQudjEuQXJ0aWZhY3RVcGxvYWREaXNwYXRjaFJlc3VsdCIcChpHZXRNY3BSZWZyZXNoVG9rZW5zUmVxdWVzdCKlAQobR2V0TWNwUmVmcmVzaFRva2Vuc1Jlc3BvbnNlElAKDnJlZnJlc2hfdG9rZW5zGAEgAygLMjguYWdlbnQudjEuR2V0TWNwUmVmcmVzaFRva2Vuc1Jlc3BvbnNlLlJlZnJlc2hUb2tlbnNFbnRyeRo0ChJSZWZyZXNoVG9rZW5zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASKjAQohVXBkYXRlRW52aXJvbm1lbnRWYXJpYWJsZXNSZXF1ZXN0EkEKA2VudhgBIAMoCzI0LmFnZW50LnYxLlVwZGF0ZUVudmlyb25tZW50VmFyaWFibGVzUmVxdWVzdC5FbnZFbnRyeRIPCgdyZXBsYWNlGAIgASgIGioKCEVudkVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiRgoiVXBkYXRlRW52aXJvbm1lbnRWYXJpYWJsZXNSZXNwb25zZRIPCgdhcHBsaWVkGAEgASgNEg8KB3JlbW92ZWQYAiABKA0igwEKEk1jcE9BdXRoU3RvcmVkRGF0YRIVCg1yZWZyZXNoX3Rva2VuGAEgASgJEhEKCWNsaWVudF9pZBgCIAEoCRIaCg1jbGllbnRfc2VjcmV0GAMgASgJSACIAQESFQoNcmVkaXJlY3RfdXJpcxgEIAMoCUIQCg5fY2xpZW50X3NlY3JldCJOCgVGcmFtZRIKCgJpZBgBIAEoCRIOCgZtZXRob2QYAiABKAkSDAoEZGF0YRgDIAEoDBIMCgRraW5kGAQgASgFEg0KBWVycm9yGAUgASgJIgcKBUVtcHR5IiMKDUJpZGlSZXF1ZXN0SWQSEgoKcmVxdWVzdF9pZBgBIAEoCSqIAQodQXBwbGllZEFnZW50Q2hhbmdlX0NoYW5nZVR5cGUSGwoXQ0hBTkdFX1RZUEVfVU5TUEVDSUZJRUQQABIXChNDSEFOR0VfVFlQRV9DUkVBVEVEEAESGAoUQ0hBTkdFX1RZUEVfTU9ESUZJRUQQAhIXChNDSEFOR0VfVFlQRV9ERUxFVEVEEAMqpAEKC01vdXNlQnV0dG9uEhwKGE1PVVNFX0JVVFRPTl9VTlNQRUNJRklFRBAAEhUKEU1PVVNFX0JVVFRPTl9MRUZUEAESFgoSTU9VU0VfQlVUVE9OX1JJR0hUEAISFwoTTU9VU0VfQlVUVE9OX01JRERMRRADEhUKEU1PVVNFX0JVVFRPTl9CQUNLEAQSGAoUTU9VU0VfQlVUVE9OX0ZPUldBUkQQBSqeAQoPU2Nyb2xsRGlyZWN0aW9uEiAKHFNDUk9MTF9ESVJFQ1RJT05fVU5TUEVDSUZJRUQQABIXChNTQ1JPTExfRElSRUNUSU9OX1VQEAESGQoVU0NST0xMX0RJUkVDVElPTl9ET1dOEAISGQoVU0NST0xMX0RJUkVDVElPTl9MRUZUEAMSGgoWU0NST0xMX0RJUkVDVElPTl9SSUdIVBAEKnAKEEN1cnNvclJ1bGVTb3VyY2USIgoeQ1VSU09SX1JVTEVfU09VUkNFX1VOU1BFQ0lGSUVEEAASGwoXQ1VSU09SX1JVTEVfU09VUkNFX1RFQU0QARIbChdDVVJTT1JfUlVMRV9TT1VSQ0VfVVNFUhACKrwBChJEaWFnbm9zdGljU2V2ZXJpdHkSIwofRElBR05PU1RJQ19TRVZFUklUWV9VTlNQRUNJRklFRBAAEh0KGURJQUdOT1NUSUNfU0VWRVJJVFlfRVJST1IQARIfChtESUFHTk9TVElDX1NFVkVSSVRZX1dBUk5JTkcQAhIjCh9ESUFHTk9TVElDX1NFVkVSSVRZX0lORk9STUFUSU9OEAMSHAoYRElBR05PU1RJQ19TRVZFUklUWV9ISU5UEAQqnAEKDVJlY29yZGluZ01vZGUSHgoaUkVDT1JESU5HX01PREVfVU5TUEVDSUZJRUQQABIiCh5SRUNPUkRJTkdfTU9ERV9TVEFSVF9SRUNPUkRJTkcQARIhCh1SRUNPUkRJTkdfTU9ERV9TQVZFX1JFQ09SRElORxACEiQKIFJFQ09SRElOR19NT0RFX0RJU0NBUkRfUkVDT1JESU5HEAMqkwEKH1JlcXVlc3RlZEZpbGVQYXRoUmVqZWN0ZWRSZWFzb24SMwovUkVRVUVTVEVEX0ZJTEVfUEFUSF9SRUpFQ1RFRF9SRUFTT05fVU5TUEVDSUZJRUQQABI7CjdSRVFVRVNURURfRklMRV9QQVRIX1JFSkVDVEVEX1JFQVNPTl9TTEFTSEVTX05PVF9BTExPV0VEEAEqrQEKC1BhY2thZ2VUeXBlEhwKGFBBQ0tBR0VfVFlQRV9VTlNQRUNJRklFRBAAEh8KG1BBQ0tBR0VfVFlQRV9DVVJTT1JfUFJPSkVDVBABEiAKHFBBQ0tBR0VfVFlQRV9DVVJTT1JfUEVSU09OQUwQAhIdChlQQUNLQUdFX1RZUEVfQ0xBVURFX1NLSUxMEAMSHgoaUEFDS0FHRV9UWVBFX0NMQVVERV9QTFVHSU4QBCp9ChJTYW5kYm94UG9saWN5X1R5cGUSFAoQVFlQRV9VTlNQRUNJRklFRBAAEhYKElRZUEVfSU5TRUNVUkVfTk9ORRABEhwKGFRZUEVfV09SS1NQQUNFX1JFQURXUklURRACEhsKF1RZUEVfV09SS1NQQUNFX1JFQURPTkxZEAMqcQoPVGltZW91dEJlaGF2aW9yEiAKHFRJTUVPVVRfQkVIQVZJT1JfVU5TUEVDSUZJRUQQABIbChdUSU1FT1VUX0JFSEFWSU9SX0NBTkNFTBABEh8KG1RJTUVPVVRfQkVIQVZJT1JfQkFDS0dST1VORBACKnkKEFNoZWxsQWJvcnRSZWFzb24SIgoeU0hFTExfQUJPUlRfUkVBU09OX1VOU1BFQ0lGSUVEEAASIQodU0hFTExfQUJPUlRfUkVBU09OX1VTRVJfQUJPUlQQARIeChpTSEVMTF9BQk9SVF9SRUFTT05fVElNRU9VVBACKqoBChxDdXN0b21TdWJhZ2VudFBlcm1pc3Npb25Nb2RlEi8KK0NVU1RPTV9TVUJBR0VOVF9QRVJNSVNTSU9OX01PREVfVU5TUEVDSUZJRUQQABIrCidDVVNUT01fU1VCQUdFTlRfUEVSTUlTU0lPTl9NT0RFX0RFRkFVTFQQARIsCihDVVNUT01fU1VCQUdFTlRfUEVSTUlTU0lPTl9NT0RFX1JFQURPTkxZEAIqlQEKClRvZG9TdGF0dXMSGwoXVE9ET19TVEFUVVNfVU5TUEVDSUZJRUQQABIXChNUT0RPX1NUQVRVU19QRU5ESU5HEAESGwoXVE9ET19TVEFUVVNfSU5fUFJPR1JFU1MQAhIZChVUT0RPX1NUQVRVU19DT01QTEVURUQQAxIZChVUT0RPX1NUQVRVU19DQU5DRUxMRUQQBCpmCghDbGllbnRPUxIZChVDTElFTlRfT1NfVU5TUEVDSUZJRUQQABIVChFDTElFTlRfT1NfV0lORE9XUxABEhMKD0NMSUVOVF9PU19NQUNPUxACEhMKD0NMSUVOVF9PU19MSU5VWBADKuwBChxBcnRpZmFjdFVwbG9hZERpc3BhdGNoU3RhdHVzEi8KK0FSVElGQUNUX1VQTE9BRF9ESVNQQVRDSF9TVEFUVVNfVU5TUEVDSUZJRUQQABIsCihBUlRJRkFDVF9VUExPQURfRElTUEFUQ0hfU1RBVFVTX0FDQ0VQVEVEEAESLAooQVJUSUZBQ1RfVVBMT0FEX0RJU1BBVENIX1NUQVRVU19SRUpFQ1RFRBACEj8KO0FSVElGQUNUX1VQTE9BRF9ESVNQQVRDSF9TVEFUVVNfU0tJUFBFRF9BTFJFQURZX0lOX1BST0dSRVNTEAMqVwoKRnJhbWVfS2luZBIUChBLSU5EX1VOU1BFQ0lGSUVEEAASEAoMS0lORF9SRVFVRVNUEAESEQoNS0lORF9SRVNQT05TRRACEg4KCktJTkRfRVJST1IQAyqwAgoXQnVnYm90RGVlcGxpbmtFdmVudEtpbmQSKgomQlVHQk9UX0RFRVBMSU5LX0VWRU5UX0tJTkRfVU5TUEVDSUZJRUQQABImCiJCVUdCT1RfREVFUExJTktfRVZFTlRfS0lORF9DTElDS0VEEAESMwovQlVHQk9UX0RFRVBMSU5LX0VWRU5UX0tJTkRfSEFORExFRF9ESUFMT0dfU0hPV04QAhIzCi9CVUdCT1RfREVFUExJTktfRVZFTlRfS0lORF9IQU5ETEVEX0NIQVRfQ1JFQVRFRBADEiQKIEJVR0JPVF9ERUVQTElOS19FVkVOVF9LSU5EX0VSUk9SEAQSMQotQlVHQk9UX0RFRVBMSU5LX0VWRU5UX0tJTkRfSEFORExFRF9GSVhfSU5fV0VCEAUyhwQKDEFnZW50U2VydmljZRJBCgNSdW4SHC5hZ2VudC52MS5BZ2VudENsaWVudE1lc3NhZ2UaHC5hZ2VudC52MS5BZ2VudFNlcnZlck1lc3NhZ2USPwoGUnVuU1NFEhcuYWdlbnQudjEuQmlkaVJlcXVlc3RJZBocLmFnZW50LnYxLkFnZW50U2VydmVyTWVzc2FnZRJECglOYW1lQWdlbnQSGi5hZ2VudC52MS5OYW1lQWdlbnRSZXF1ZXN0GhsuYWdlbnQudjEuTmFtZUFnZW50UmVzcG9uc2USVgoPR2V0VXNhYmxlTW9kZWxzEiAuYWdlbnQudjEuR2V0VXNhYmxlTW9kZWxzUmVxdWVzdBohLmFnZW50LnYxLkdldFVzYWJsZU1vZGVsc1Jlc3BvbnNlEmgKFUdldERlZmF1bHRNb2RlbEZvckNsaRImLmFnZW50LnYxLkdldERlZmF1bHRNb2RlbEZvckNsaVJlcXVlc3QaJy5hZ2VudC52MS5HZXREZWZhdWx0TW9kZWxGb3JDbGlSZXNwb25zZRJrChZHZXRBbGxvd2VkTW9kZWxJbnRlbnRzEicuYWdlbnQudjEuR2V0QWxsb3dlZE1vZGVsSW50ZW50c1JlcXVlc3QaKC5hZ2VudC52MS5HZXRBbGxvd2VkTW9kZWxJbnRlbnRzUmVzcG9uc2UytQgKDkNvbnRyb2xTZXJ2aWNlEk0KDFJlYWRUZXh0RmlsZRIdLmFnZW50LnYxLlJlYWRUZXh0RmlsZVJlcXVlc3QaHi5hZ2VudC52MS5SZWFkVGV4dEZpbGVSZXNwb25zZRJQCg1Xcml0ZVRleHRGaWxlEh4uYWdlbnQudjEuV3JpdGVUZXh0RmlsZVJlcXVlc3QaHy5hZ2VudC52MS5Xcml0ZVRleHRGaWxlUmVzcG9uc2USUwoOUmVhZEJpbmFyeUZpbGUSHy5hZ2VudC52MS5SZWFkQmluYXJ5RmlsZVJlcXVlc3QaIC5hZ2VudC52MS5SZWFkQmluYXJ5RmlsZVJlc3BvbnNlElYKD1dyaXRlQmluYXJ5RmlsZRIgLmFnZW50LnYxLldyaXRlQmluYXJ5RmlsZVJlcXVlc3QaIS5hZ2VudC52MS5Xcml0ZUJpbmFyeUZpbGVSZXNwb25zZRJuChdHZXRXb3Jrc3BhY2VDaGFuZ2VzSGFzaBIoLmFnZW50LnYxLkdldFdvcmtzcGFjZUNoYW5nZXNIYXNoUmVxdWVzdBopLmFnZW50LnYxLkdldFdvcmtzcGFjZUNoYW5nZXNIYXNoUmVzcG9uc2UScQoYUmVmcmVzaEdpdGh1YkFjY2Vzc1Rva2VuEikuYWdlbnQudjEuUmVmcmVzaEdpdGh1YkFjY2Vzc1Rva2VuUmVxdWVzdBoqLmFnZW50LnYxLlJlZnJlc2hHaXRodWJBY2Nlc3NUb2tlblJlc3BvbnNlEmsKFldhcm1SZW1vdGVBY2Nlc3NTZXJ2ZXISJy5hZ2VudC52MS5XYXJtUmVtb3RlQWNjZXNzU2VydmVyUmVxdWVzdBooLmFnZW50LnYxLldhcm1SZW1vdGVBY2Nlc3NTZXJ2ZXJSZXNwb25zZRJQCg1MaXN0QXJ0aWZhY3RzEh4uYWdlbnQudjEuTGlzdEFydGlmYWN0c1JlcXVlc3QaHy5hZ2VudC52MS5MaXN0QXJ0aWZhY3RzUmVzcG9uc2USVgoPVXBsb2FkQXJ0aWZhY3RzEiAuYWdlbnQudjEuVXBsb2FkQXJ0aWZhY3RzUmVxdWVzdBohLmFnZW50LnYxLlVwbG9hZEFydGlmYWN0c1Jlc3BvbnNlEmIKE0dldE1jcFJlZnJlc2hUb2tlbnMSJC5hZ2VudC52MS5HZXRNY3BSZWZyZXNoVG9rZW5zUmVxdWVzdBolLmFnZW50LnYxLkdldE1jcFJlZnJlc2hUb2tlbnNSZXNwb25zZRJ3ChpVcGRhdGVFbnZpcm9ubWVudFZhcmlhYmxlcxIrLmFnZW50LnYxLlVwZGF0ZUVudmlyb25tZW50VmFyaWFibGVzUmVxdWVzdBosLmFnZW50LnYxLlVwZGF0ZUVudmlyb25tZW50VmFyaWFibGVzUmVzcG9uc2UyDQoLRXhlY1NlcnZpY2UyUQoiUHJpdmF0ZVdvcmtlckJyaWRnZUV4dGVybmFsU2VydmljZRIrCgdDb25uZWN0Eg8uYWdlbnQudjEuRnJhbWUaDy5hZ2VudC52MS5GcmFtZTJ4ChBMaWZlY3ljbGVTZXJ2aWNlEjEKDVJlc2V0SW5zdGFuY2USDy5hZ2VudC52MS5FbXB0eRoPLmFnZW50LnYxLkVtcHR5EjEKDVJlbmV3SW5zdGFuY2USDy5hZ2VudC52MS5FbXB0eRoPLmFnZW50LnYxLkVtcHR5YgZwcm90bzM=", ); /** * @generated from message agent.v1.GlobToolResult */ export type GlobToolResult = Message<"agent.v1.GlobToolResult"> & { /** * @generated from oneof agent.v1.GlobToolResult.result */ result: | { /** * @generated from field: agent.v1.GlobToolSuccess success = 1; */ value: GlobToolSuccess; case: "success"; } | { /** * @generated from field: agent.v1.GlobToolError error = 2; */ value: GlobToolError; case: "error"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.GlobToolResult. * Use `create(GlobToolResultSchema)` to create a new message. */ export const GlobToolResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 0); /** * @generated from message agent.v1.GlobToolError */ export type GlobToolError = Message<"agent.v1.GlobToolError"> & { /** * @generated from field: string error = 1; */ error: string; }; /** * Describes the message agent.v1.GlobToolError. * Use `create(GlobToolErrorSchema)` to create a new message. */ export const GlobToolErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 1); /** * Only file results are needed for this tool * * @generated from message agent.v1.GlobToolSuccess */ export type GlobToolSuccess = Message<"agent.v1.GlobToolSuccess"> & { /** * @generated from field: string pattern = 1; */ pattern: string; /** * @generated from field: string path = 2; */ path: string; /** * @generated from field: repeated string files = 3; */ files: string[]; /** * @generated from field: int32 total_files = 4; */ totalFiles: number; /** * @generated from field: bool client_truncated = 5; */ clientTruncated: boolean; /** * @generated from field: bool ripgrep_truncated = 6; */ ripgrepTruncated: boolean; }; /** * Describes the message agent.v1.GlobToolSuccess. * Use `create(GlobToolSuccessSchema)` to create a new message. */ export const GlobToolSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 2); /** * @generated from message agent.v1.GlobToolCall */ export type GlobToolCall = Message<"agent.v1.GlobToolCall"> & { /** * @generated from field: bytes args = 1; */ args: Uint8Array; /** * @generated from field: agent.v1.GlobToolResult result = 2; */ result?: GlobToolResult; }; /** * Describes the message agent.v1.GlobToolCall. * Use `create(GlobToolCallSchema)` to create a new message. */ export const GlobToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 3); /** * @generated from message agent.v1.ReadLintsToolCall */ export type ReadLintsToolCall = Message<"agent.v1.ReadLintsToolCall"> & { /** * @generated from field: agent.v1.ReadLintsToolArgs args = 1; */ args?: ReadLintsToolArgs; /** * @generated from field: agent.v1.ReadLintsToolResult result = 2; */ result?: ReadLintsToolResult; }; /** * Describes the message agent.v1.ReadLintsToolCall. * Use `create(ReadLintsToolCallSchema)` to create a new message. */ export const ReadLintsToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 4); /** * @generated from message agent.v1.ReadLintsToolArgs */ export type ReadLintsToolArgs = Message<"agent.v1.ReadLintsToolArgs"> & { /** * @generated from field: repeated string paths = 1; */ paths: string[]; }; /** * Describes the message agent.v1.ReadLintsToolArgs. * Use `create(ReadLintsToolArgsSchema)` to create a new message. */ export const ReadLintsToolArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 5); /** * @generated from message agent.v1.ReadLintsToolResult */ export type ReadLintsToolResult = Message<"agent.v1.ReadLintsToolResult"> & { /** * @generated from oneof agent.v1.ReadLintsToolResult.result */ result: | { /** * @generated from field: agent.v1.ReadLintsToolSuccess success = 1; */ value: ReadLintsToolSuccess; case: "success"; } | { /** * @generated from field: agent.v1.ReadLintsToolError error = 2; */ value: ReadLintsToolError; case: "error"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ReadLintsToolResult. * Use `create(ReadLintsToolResultSchema)` to create a new message. */ export const ReadLintsToolResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 6); /** * @generated from message agent.v1.ReadLintsToolSuccess */ export type ReadLintsToolSuccess = Message<"agent.v1.ReadLintsToolSuccess"> & { /** * @generated from field: repeated agent.v1.FileDiagnostics file_diagnostics = 1; */ fileDiagnostics: FileDiagnostics[]; /** * @generated from field: int32 total_files = 2; */ totalFiles: number; /** * @generated from field: int32 total_diagnostics = 3; */ totalDiagnostics: number; }; /** * Describes the message agent.v1.ReadLintsToolSuccess. * Use `create(ReadLintsToolSuccessSchema)` to create a new message. */ export const ReadLintsToolSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 7); /** * @generated from message agent.v1.FileDiagnostics */ export type FileDiagnostics = Message<"agent.v1.FileDiagnostics"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: repeated agent.v1.DiagnosticItem diagnostics = 2; */ diagnostics: DiagnosticItem[]; /** * @generated from field: int32 diagnostics_count = 3; */ diagnosticsCount: number; }; /** * Describes the message agent.v1.FileDiagnostics. * Use `create(FileDiagnosticsSchema)` to create a new message. */ export const FileDiagnosticsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 8); /** * @generated from message agent.v1.DiagnosticItem */ export type DiagnosticItem = Message<"agent.v1.DiagnosticItem"> & { /** * @generated from field: agent.v1.DiagnosticSeverity severity = 1; */ severity: DiagnosticSeverity; /** * @generated from field: agent.v1.DiagnosticRange range = 2; */ range?: DiagnosticRange; /** * @generated from field: string message = 3; */ message: string; /** * @generated from field: string source = 4; */ source: string; /** * @generated from field: string code = 5; */ code: string; /** * @generated from field: bool is_stale = 6; */ isStale: boolean; }; /** * Describes the message agent.v1.DiagnosticItem. * Use `create(DiagnosticItemSchema)` to create a new message. */ export const DiagnosticItemSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 9); /** * @generated from message agent.v1.DiagnosticRange */ export type DiagnosticRange = Message<"agent.v1.DiagnosticRange"> & { /** * @generated from field: agent.v1.Position start = 1; */ start?: Position; /** * @generated from field: agent.v1.Position end = 2; */ end?: Position; }; /** * Describes the message agent.v1.DiagnosticRange. * Use `create(DiagnosticRangeSchema)` to create a new message. */ export const DiagnosticRangeSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 10); /** * @generated from message agent.v1.ReadLintsToolError */ export type ReadLintsToolError = Message<"agent.v1.ReadLintsToolError"> & { /** * @generated from field: string error_message = 1; */ errorMessage: string; }; /** * Describes the message agent.v1.ReadLintsToolError. * Use `create(ReadLintsToolErrorSchema)` to create a new message. */ export const ReadLintsToolErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 11); /** * @generated from message agent.v1.McpToolError */ export type McpToolError = Message<"agent.v1.McpToolError"> & { /** * @generated from field: string error = 1; */ error: string; }; /** * Describes the message agent.v1.McpToolError. * Use `create(McpToolErrorSchema)` to create a new message. */ export const McpToolErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 12); /** * Result for MCP tool calls (separate from exec results) * * @generated from message agent.v1.McpToolResult */ export type McpToolResult = Message<"agent.v1.McpToolResult"> & { /** * @generated from oneof agent.v1.McpToolResult.result */ result: | { /** * @generated from field: agent.v1.McpSuccess success = 1; */ value: McpSuccess; case: "success"; } | { /** * @generated from field: agent.v1.McpToolError error = 2; */ value: McpToolError; case: "error"; } | { /** * @generated from field: agent.v1.McpRejected rejected = 3; */ value: McpRejected; case: "rejected"; } | { /** * @generated from field: agent.v1.McpPermissionDenied permission_denied = 4; */ value: McpPermissionDenied; case: "permissionDenied"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.McpToolResult. * Use `create(McpToolResultSchema)` to create a new message. */ export const McpToolResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 13); /** * @generated from message agent.v1.McpToolCall */ export type McpToolCall = Message<"agent.v1.McpToolCall"> & { /** * @generated from field: agent.v1.McpArgs args = 1; */ args?: McpArgs; /** * @generated from field: agent.v1.McpToolResult result = 2; */ result?: McpToolResult; }; /** * Describes the message agent.v1.McpToolCall. * Use `create(McpToolCallSchema)` to create a new message. */ export const McpToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 14); /** * @generated from message agent.v1.SemSearchToolCall */ export type SemSearchToolCall = Message<"agent.v1.SemSearchToolCall"> & { /** * @generated from field: agent.v1.SemSearchToolArgs args = 1; */ args?: SemSearchToolArgs; /** * @generated from field: agent.v1.SemSearchToolResult result = 2; */ result?: SemSearchToolResult; }; /** * Describes the message agent.v1.SemSearchToolCall. * Use `create(SemSearchToolCallSchema)` to create a new message. */ export const SemSearchToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 15); /** * @generated from message agent.v1.SemSearchToolArgs */ export type SemSearchToolArgs = Message<"agent.v1.SemSearchToolArgs"> & { /** * @generated from field: string query = 1; */ query: string; /** * @generated from field: repeated string target_directories = 2; */ targetDirectories: string[]; /** * @generated from field: string explanation = 3; */ explanation: string; }; /** * Describes the message agent.v1.SemSearchToolArgs. * Use `create(SemSearchToolArgsSchema)` to create a new message. */ export const SemSearchToolArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 16); /** * @generated from message agent.v1.SemSearchToolResult */ export type SemSearchToolResult = Message<"agent.v1.SemSearchToolResult"> & { /** * @generated from oneof agent.v1.SemSearchToolResult.result */ result: | { /** * @generated from field: agent.v1.SemSearchToolSuccess success = 1; */ value: SemSearchToolSuccess; case: "success"; } | { /** * @generated from field: agent.v1.SemSearchToolError error = 2; */ value: SemSearchToolError; case: "error"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.SemSearchToolResult. * Use `create(SemSearchToolResultSchema)` to create a new message. */ export const SemSearchToolResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 17); /** * @generated from message agent.v1.SemSearchToolSuccess */ export type SemSearchToolSuccess = Message<"agent.v1.SemSearchToolSuccess"> & { /** * @generated from field: string results = 1; */ results: string; /** * @generated from field: repeated bytes code_results = 2; */ codeResults: Uint8Array[]; }; /** * Describes the message agent.v1.SemSearchToolSuccess. * Use `create(SemSearchToolSuccessSchema)` to create a new message. */ export const SemSearchToolSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 18); /** * @generated from message agent.v1.SemSearchToolError */ export type SemSearchToolError = Message<"agent.v1.SemSearchToolError"> & { /** * @generated from field: string error_message = 1; */ errorMessage: string; }; /** * Describes the message agent.v1.SemSearchToolError. * Use `create(SemSearchToolErrorSchema)` to create a new message. */ export const SemSearchToolErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 19); /** * @generated from message agent.v1.ListMcpResourcesToolCall */ export type ListMcpResourcesToolCall = Message<"agent.v1.ListMcpResourcesToolCall"> & { /** * @generated from field: agent.v1.ListMcpResourcesExecArgs args = 1; */ args?: ListMcpResourcesExecArgs; /** * @generated from field: agent.v1.ListMcpResourcesExecResult result = 2; */ result?: ListMcpResourcesExecResult; }; /** * Describes the message agent.v1.ListMcpResourcesToolCall. * Use `create(ListMcpResourcesToolCallSchema)` to create a new message. */ export const ListMcpResourcesToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 20); /** * @generated from message agent.v1.ReadMcpResourceToolCall */ export type ReadMcpResourceToolCall = Message<"agent.v1.ReadMcpResourceToolCall"> & { /** * @generated from field: agent.v1.ReadMcpResourceExecArgs args = 1; */ args?: ReadMcpResourceExecArgs; /** * @generated from field: agent.v1.ReadMcpResourceExecResult result = 2; */ result?: ReadMcpResourceExecResult; }; /** * Describes the message agent.v1.ReadMcpResourceToolCall. * Use `create(ReadMcpResourceToolCallSchema)` to create a new message. */ export const ReadMcpResourceToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 21); /** * @generated from message agent.v1.FetchToolCall */ export type FetchToolCall = Message<"agent.v1.FetchToolCall"> & { /** * @generated from field: agent.v1.FetchArgs args = 1; */ args?: FetchArgs; /** * @generated from field: agent.v1.FetchResult result = 2; */ result?: FetchResult; }; /** * Describes the message agent.v1.FetchToolCall. * Use `create(FetchToolCallSchema)` to create a new message. */ export const FetchToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 22); /** * @generated from message agent.v1.RecordScreenToolCall */ export type RecordScreenToolCall = Message<"agent.v1.RecordScreenToolCall"> & { /** * @generated from field: agent.v1.RecordScreenArgs args = 1; */ args?: RecordScreenArgs; /** * @generated from field: agent.v1.RecordScreenResult result = 2; */ result?: RecordScreenResult; }; /** * Describes the message agent.v1.RecordScreenToolCall. * Use `create(RecordScreenToolCallSchema)` to create a new message. */ export const RecordScreenToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 23); /** * @generated from message agent.v1.WriteShellStdinToolCall */ export type WriteShellStdinToolCall = Message<"agent.v1.WriteShellStdinToolCall"> & { /** * @generated from field: agent.v1.WriteShellStdinArgs args = 1; */ args?: WriteShellStdinArgs; /** * @generated from field: agent.v1.WriteShellStdinResult result = 2; */ result?: WriteShellStdinResult; }; /** * Describes the message agent.v1.WriteShellStdinToolCall. * Use `create(WriteShellStdinToolCallSchema)` to create a new message. */ export const WriteShellStdinToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 24); /** * @generated from message agent.v1.ReflectArgs */ export type ReflectArgs = Message<"agent.v1.ReflectArgs"> & { /** * @generated from field: string unexpected_action_outcomes = 1; */ unexpectedActionOutcomes: string; /** * @generated from field: string relevant_instructions = 2; */ relevantInstructions: string; /** * @generated from field: string scenario_analysis = 3; */ scenarioAnalysis: string; /** * @generated from field: string critical_synthesis = 4; */ criticalSynthesis: string; /** * @generated from field: string next_steps = 5; */ nextSteps: string; /** * @generated from field: string tool_call_id = 6; */ toolCallId: string; }; /** * Describes the message agent.v1.ReflectArgs. * Use `create(ReflectArgsSchema)` to create a new message. */ export const ReflectArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 25); /** * @generated from message agent.v1.ReflectResult */ export type ReflectResult = Message<"agent.v1.ReflectResult"> & { /** * @generated from oneof agent.v1.ReflectResult.result */ result: | { /** * @generated from field: agent.v1.ReflectSuccess success = 1; */ value: ReflectSuccess; case: "success"; } | { /** * @generated from field: agent.v1.ReflectError error = 2; */ value: ReflectError; case: "error"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ReflectResult. * Use `create(ReflectResultSchema)` to create a new message. */ export const ReflectResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 26); /** * @generated from message agent.v1.ReflectSuccess */ export type ReflectSuccess = Message<"agent.v1.ReflectSuccess"> & {}; /** * Describes the message agent.v1.ReflectSuccess. * Use `create(ReflectSuccessSchema)` to create a new message. */ export const ReflectSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 27); /** * @generated from message agent.v1.ReflectError */ export type ReflectError = Message<"agent.v1.ReflectError"> & { /** * @generated from field: string error = 1; */ error: string; }; /** * Describes the message agent.v1.ReflectError. * Use `create(ReflectErrorSchema)` to create a new message. */ export const ReflectErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 28); /** * @generated from message agent.v1.ReflectToolCall */ export type ReflectToolCall = Message<"agent.v1.ReflectToolCall"> & { /** * @generated from field: agent.v1.ReflectArgs args = 1; */ args?: ReflectArgs; /** * @generated from field: agent.v1.ReflectResult result = 2; */ result?: ReflectResult; }; /** * Describes the message agent.v1.ReflectToolCall. * Use `create(ReflectToolCallSchema)` to create a new message. */ export const ReflectToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 29); /** * @generated from message agent.v1.StartGrindExecutionArgs */ export type StartGrindExecutionArgs = Message<"agent.v1.StartGrindExecutionArgs"> & { /** * Optional explanation for why the agent is requesting to begin executing. * * @generated from field: optional string explanation = 1; */ explanation?: string; /** * @generated from field: string tool_call_id = 2; */ toolCallId: string; }; /** * Describes the message agent.v1.StartGrindExecutionArgs. * Use `create(StartGrindExecutionArgsSchema)` to create a new message. */ export const StartGrindExecutionArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 30); /** * @generated from message agent.v1.StartGrindExecutionResult */ export type StartGrindExecutionResult = Message<"agent.v1.StartGrindExecutionResult"> & { /** * @generated from oneof agent.v1.StartGrindExecutionResult.result */ result: | { /** * @generated from field: agent.v1.StartGrindExecutionSuccess success = 1; */ value: StartGrindExecutionSuccess; case: "success"; } | { /** * @generated from field: agent.v1.StartGrindExecutionError error = 2; */ value: StartGrindExecutionError; case: "error"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.StartGrindExecutionResult. * Use `create(StartGrindExecutionResultSchema)` to create a new message. */ export const StartGrindExecutionResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 31); /** * @generated from message agent.v1.StartGrindExecutionSuccess */ export type StartGrindExecutionSuccess = Message<"agent.v1.StartGrindExecutionSuccess"> & {}; /** * Describes the message agent.v1.StartGrindExecutionSuccess. * Use `create(StartGrindExecutionSuccessSchema)` to create a new message. */ export const StartGrindExecutionSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 32); /** * @generated from message agent.v1.StartGrindExecutionError */ export type StartGrindExecutionError = Message<"agent.v1.StartGrindExecutionError"> & { /** * @generated from field: string error = 1; */ error: string; }; /** * Describes the message agent.v1.StartGrindExecutionError. * Use `create(StartGrindExecutionErrorSchema)` to create a new message. */ export const StartGrindExecutionErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 33); /** * @generated from message agent.v1.StartGrindExecutionToolCall */ export type StartGrindExecutionToolCall = Message<"agent.v1.StartGrindExecutionToolCall"> & { /** * @generated from field: agent.v1.StartGrindExecutionArgs args = 1; */ args?: StartGrindExecutionArgs; /** * @generated from field: agent.v1.StartGrindExecutionResult result = 2; */ result?: StartGrindExecutionResult; }; /** * Describes the message agent.v1.StartGrindExecutionToolCall. * Use `create(StartGrindExecutionToolCallSchema)` to create a new message. */ export const StartGrindExecutionToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 34); /** * @generated from message agent.v1.StartGrindPlanningArgs */ export type StartGrindPlanningArgs = Message<"agent.v1.StartGrindPlanningArgs"> & { /** * Optional explanation for why the agent is requesting to return to planning. * * @generated from field: optional string explanation = 1; */ explanation?: string; /** * @generated from field: string tool_call_id = 2; */ toolCallId: string; }; /** * Describes the message agent.v1.StartGrindPlanningArgs. * Use `create(StartGrindPlanningArgsSchema)` to create a new message. */ export const StartGrindPlanningArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 35); /** * @generated from message agent.v1.StartGrindPlanningResult */ export type StartGrindPlanningResult = Message<"agent.v1.StartGrindPlanningResult"> & { /** * @generated from oneof agent.v1.StartGrindPlanningResult.result */ result: | { /** * @generated from field: agent.v1.StartGrindPlanningSuccess success = 1; */ value: StartGrindPlanningSuccess; case: "success"; } | { /** * @generated from field: agent.v1.StartGrindPlanningError error = 2; */ value: StartGrindPlanningError; case: "error"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.StartGrindPlanningResult. * Use `create(StartGrindPlanningResultSchema)` to create a new message. */ export const StartGrindPlanningResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 36); /** * @generated from message agent.v1.StartGrindPlanningSuccess */ export type StartGrindPlanningSuccess = Message<"agent.v1.StartGrindPlanningSuccess"> & {}; /** * Describes the message agent.v1.StartGrindPlanningSuccess. * Use `create(StartGrindPlanningSuccessSchema)` to create a new message. */ export const StartGrindPlanningSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 37); /** * @generated from message agent.v1.StartGrindPlanningError */ export type StartGrindPlanningError = Message<"agent.v1.StartGrindPlanningError"> & { /** * @generated from field: string error = 1; */ error: string; }; /** * Describes the message agent.v1.StartGrindPlanningError. * Use `create(StartGrindPlanningErrorSchema)` to create a new message. */ export const StartGrindPlanningErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 38); /** * @generated from message agent.v1.StartGrindPlanningToolCall */ export type StartGrindPlanningToolCall = Message<"agent.v1.StartGrindPlanningToolCall"> & { /** * @generated from field: agent.v1.StartGrindPlanningArgs args = 1; */ args?: StartGrindPlanningArgs; /** * @generated from field: agent.v1.StartGrindPlanningResult result = 2; */ result?: StartGrindPlanningResult; }; /** * Describes the message agent.v1.StartGrindPlanningToolCall. * Use `create(StartGrindPlanningToolCallSchema)` to create a new message. */ export const StartGrindPlanningToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 39); /** * var AgentMode; (function (AgentMode) { AgentMode[AgentMode["UNSPECIFIED"] = 0] = "UNSPECIFIED"; AgentMode[AgentMode["AGENT"] = 1] = "AGENT"; AgentMode[AgentMode["ASK"] = 2] = "ASK"; AgentMode[AgentMode["PLAN"] = 3] = "PLAN"; AgentMode[AgentMode["DEBUG"] = 4] = "DEBUG"; AgentMode[AgentMode["TRIAGE"] = 5] = "TRIAGE"; AgentMode[AgentMode["PROJECT"] = 6] = "PROJECT"; })(AgentMode || (AgentMode = {})); // Retrieve enum metadata with: proto3.getEnumType(AgentMode) proto3/* int32 *\/.C.util.setEnumType(AgentMode, "agent.v1.AgentMode", [ { no: 0, name: "AGENT_MODE_UNSPECIFIED" }, { no: 1, name: "AGENT_MODE_AGENT" }, { no: 2, name: "AGENT_MODE_ASK" }, { no: 3, name: "AGENT_MODE_PLAN" }, { no: 4, name: "AGENT_MODE_DEBUG" }, { no: 5, name: "AGENT_MODE_TRIAGE" }, { no: 6, name: "AGENT_MODE_PROJECT" }, ]); * * @generated from message agent.v1.TaskArgs */ export type TaskArgs = Message<"agent.v1.TaskArgs"> & { /** * @generated from field: string description = 1; */ description: string; /** * @generated from field: string prompt = 2; */ prompt: string; /** * @generated from field: agent.v1.SubagentType subagent_type = 3; */ subagentType?: SubagentType; /** * @generated from field: optional string model = 4; */ model?: string; /** * @generated from field: optional string resume = 5; */ resume?: string; }; /** * Describes the message agent.v1.TaskArgs. * Use `create(TaskArgsSchema)` to create a new message. */ export const TaskArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 40); /** * @generated from message agent.v1.TaskSuccess */ export type TaskSuccess = Message<"agent.v1.TaskSuccess"> & { /** * @generated from field: repeated agent.v1.ConversationStep conversation_steps = 1; */ conversationSteps: ConversationStep[]; /** * @generated from field: optional string agent_id = 2; */ agentId?: string; /** * @generated from field: bool is_background = 3; */ isBackground: boolean; /** * @generated from field: optional uint64 duration_ms = 4; */ durationMs?: bigint; }; /** * Describes the message agent.v1.TaskSuccess. * Use `create(TaskSuccessSchema)` to create a new message. */ export const TaskSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 41); /** * @generated from message agent.v1.TaskError */ export type TaskError = Message<"agent.v1.TaskError"> & { /** * @generated from field: string error = 1; */ error: string; }; /** * Describes the message agent.v1.TaskError. * Use `create(TaskErrorSchema)` to create a new message. */ export const TaskErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 42); /** * @generated from message agent.v1.TaskResult */ export type TaskResult = Message<"agent.v1.TaskResult"> & { /** * @generated from oneof agent.v1.TaskResult.result */ result: | { /** * @generated from field: agent.v1.TaskSuccess success = 1; */ value: TaskSuccess; case: "success"; } | { /** * @generated from field: agent.v1.TaskError error = 2; */ value: TaskError; case: "error"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.TaskResult. * Use `create(TaskResultSchema)` to create a new message. */ export const TaskResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 43); /** * @generated from message agent.v1.TaskToolCall */ export type TaskToolCall = Message<"agent.v1.TaskToolCall"> & { /** * @generated from field: agent.v1.TaskArgs args = 1; */ args?: TaskArgs; /** * @generated from field: agent.v1.TaskResult result = 2; */ result?: TaskResult; }; /** * Describes the message agent.v1.TaskToolCall. * Use `create(TaskToolCallSchema)` to create a new message. */ export const TaskToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 44); /** * @generated from message agent.v1.TaskToolCallDelta */ export type TaskToolCallDelta = Message<"agent.v1.TaskToolCallDelta"> & { /** * @generated from field: agent.v1.InteractionUpdate interaction_update = 1; */ interactionUpdate?: InteractionUpdate; }; /** * Describes the message agent.v1.TaskToolCallDelta. * Use `create(TaskToolCallDeltaSchema)` to create a new message. */ export const TaskToolCallDeltaSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 45); /** * Tool messages (from tool.proto) * * @generated from message agent.v1.ToolCall */ export type ToolCall = Message<"agent.v1.ToolCall"> & { /** * @generated from oneof agent.v1.ToolCall.tool */ tool: | { /** * @generated from field: agent.v1.ShellToolCall shell_tool_call = 1; */ value: ShellToolCall; case: "shellToolCall"; } | { /** * @generated from field: agent.v1.DeleteToolCall delete_tool_call = 3; */ value: DeleteToolCall; case: "deleteToolCall"; } | { /** * @generated from field: agent.v1.GlobToolCall glob_tool_call = 4; */ value: GlobToolCall; case: "globToolCall"; } | { /** * @generated from field: agent.v1.GrepToolCall grep_tool_call = 5; */ value: GrepToolCall; case: "grepToolCall"; } | { /** * @generated from field: agent.v1.ReadToolCall read_tool_call = 8; */ value: ReadToolCall; case: "readToolCall"; } | { /** * @generated from field: agent.v1.UpdateTodosToolCall update_todos_tool_call = 9; */ value: UpdateTodosToolCall; case: "updateTodosToolCall"; } | { /** * @generated from field: agent.v1.ReadTodosToolCall read_todos_tool_call = 10; */ value: ReadTodosToolCall; case: "readTodosToolCall"; } | { /** * @generated from field: agent.v1.EditToolCall edit_tool_call = 12; */ value: EditToolCall; case: "editToolCall"; } | { /** * @generated from field: agent.v1.LsToolCall ls_tool_call = 13; */ value: LsToolCall; case: "lsToolCall"; } | { /** * @generated from field: agent.v1.ReadLintsToolCall read_lints_tool_call = 14; */ value: ReadLintsToolCall; case: "readLintsToolCall"; } | { /** * @generated from field: agent.v1.McpToolCall mcp_tool_call = 15; */ value: McpToolCall; case: "mcpToolCall"; } | { /** * @generated from field: agent.v1.SemSearchToolCall sem_search_tool_call = 16; */ value: SemSearchToolCall; case: "semSearchToolCall"; } | { /** * @generated from field: agent.v1.CreatePlanToolCall create_plan_tool_call = 17; */ value: CreatePlanToolCall; case: "createPlanToolCall"; } | { /** * @generated from field: agent.v1.WebSearchToolCall web_search_tool_call = 18; */ value: WebSearchToolCall; case: "webSearchToolCall"; } | { /** * @generated from field: agent.v1.TaskToolCall task_tool_call = 19; */ value: TaskToolCall; case: "taskToolCall"; } | { /** * @generated from field: agent.v1.ListMcpResourcesToolCall list_mcp_resources_tool_call = 20; */ value: ListMcpResourcesToolCall; case: "listMcpResourcesToolCall"; } | { /** * @generated from field: agent.v1.ReadMcpResourceToolCall read_mcp_resource_tool_call = 21; */ value: ReadMcpResourceToolCall; case: "readMcpResourceToolCall"; } | { /** * @generated from field: agent.v1.ApplyAgentDiffToolCall apply_agent_diff_tool_call = 22; */ value: ApplyAgentDiffToolCall; case: "applyAgentDiffToolCall"; } | { /** * @generated from field: agent.v1.AskQuestionToolCall ask_question_tool_call = 23; */ value: AskQuestionToolCall; case: "askQuestionToolCall"; } | { /** * @generated from field: agent.v1.FetchToolCall fetch_tool_call = 24; */ value: FetchToolCall; case: "fetchToolCall"; } | { /** * @generated from field: agent.v1.SwitchModeToolCall switch_mode_tool_call = 25; */ value: SwitchModeToolCall; case: "switchModeToolCall"; } | { /** * @generated from field: agent.v1.ExaSearchToolCall exa_search_tool_call = 26; */ value: ExaSearchToolCall; case: "exaSearchToolCall"; } | { /** * @generated from field: agent.v1.ExaFetchToolCall exa_fetch_tool_call = 27; */ value: ExaFetchToolCall; case: "exaFetchToolCall"; } | { /** * @generated from field: agent.v1.GenerateImageToolCall generate_image_tool_call = 28; */ value: GenerateImageToolCall; case: "generateImageToolCall"; } | { /** * @generated from field: agent.v1.RecordScreenToolCall record_screen_tool_call = 29; */ value: RecordScreenToolCall; case: "recordScreenToolCall"; } | { /** * @generated from field: agent.v1.ComputerUseToolCall computer_use_tool_call = 30; */ value: ComputerUseToolCall; case: "computerUseToolCall"; } | { /** * @generated from field: agent.v1.WriteShellStdinToolCall write_shell_stdin_tool_call = 31; */ value: WriteShellStdinToolCall; case: "writeShellStdinToolCall"; } | { /** * @generated from field: agent.v1.ReflectToolCall reflect_tool_call = 32; */ value: ReflectToolCall; case: "reflectToolCall"; } | { /** * @generated from field: agent.v1.SetupVmEnvironmentToolCall setup_vm_environment_tool_call = 33; */ value: SetupVmEnvironmentToolCall; case: "setupVmEnvironmentToolCall"; } | { /** * @generated from field: agent.v1.TruncatedToolCall truncated_tool_call = 34; */ value: TruncatedToolCall; case: "truncatedToolCall"; } | { /** * @generated from field: agent.v1.StartGrindExecutionToolCall start_grind_execution_tool_call = 35; */ value: StartGrindExecutionToolCall; case: "startGrindExecutionToolCall"; } | { /** * @generated from field: agent.v1.StartGrindPlanningToolCall start_grind_planning_tool_call = 36; */ value: StartGrindPlanningToolCall; case: "startGrindPlanningToolCall"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ToolCall. * Use `create(ToolCallSchema)` to create a new message. */ export const ToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 46); /** * @generated from message agent.v1.TruncatedToolCallArgs */ export type TruncatedToolCallArgs = Message<"agent.v1.TruncatedToolCallArgs"> & {}; /** * Describes the message agent.v1.TruncatedToolCallArgs. * Use `create(TruncatedToolCallArgsSchema)` to create a new message. */ export const TruncatedToolCallArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 47); /** * @generated from message agent.v1.TruncatedToolCallSuccess */ export type TruncatedToolCallSuccess = Message<"agent.v1.TruncatedToolCallSuccess"> & {}; /** * Describes the message agent.v1.TruncatedToolCallSuccess. * Use `create(TruncatedToolCallSuccessSchema)` to create a new message. */ export const TruncatedToolCallSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 48); /** * @generated from message agent.v1.TruncatedToolCallError */ export type TruncatedToolCallError = Message<"agent.v1.TruncatedToolCallError"> & { /** * @generated from field: string error = 1; */ error: string; }; /** * Describes the message agent.v1.TruncatedToolCallError. * Use `create(TruncatedToolCallErrorSchema)` to create a new message. */ export const TruncatedToolCallErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 49); /** * @generated from message agent.v1.TruncatedToolCallResult */ export type TruncatedToolCallResult = Message<"agent.v1.TruncatedToolCallResult"> & { /** * @generated from oneof agent.v1.TruncatedToolCallResult.result */ result: | { /** * @generated from field: agent.v1.TruncatedToolCallSuccess success = 1; */ value: TruncatedToolCallSuccess; case: "success"; } | { /** * @generated from field: agent.v1.TruncatedToolCallError error = 2; */ value: TruncatedToolCallError; case: "error"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.TruncatedToolCallResult. * Use `create(TruncatedToolCallResultSchema)` to create a new message. */ export const TruncatedToolCallResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 50); /** * Placeholder for tool calls that were truncated due to size limits. * * @generated from message agent.v1.TruncatedToolCall */ export type TruncatedToolCall = Message<"agent.v1.TruncatedToolCall"> & { /** * @generated from field: bytes original_step_blob_id = 1; */ originalStepBlobId: Uint8Array; /** * unused, just matches the discriminated union for other tool calls * * @generated from field: agent.v1.TruncatedToolCallArgs args = 2; */ args?: TruncatedToolCallArgs; /** * @generated from field: agent.v1.TruncatedToolCallResult result = 3; */ result?: TruncatedToolCallResult; }; /** * Describes the message agent.v1.TruncatedToolCall. * Use `create(TruncatedToolCallSchema)` to create a new message. */ export const TruncatedToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 51); /** * @generated from message agent.v1.ToolCallDelta */ export type ToolCallDelta = Message<"agent.v1.ToolCallDelta"> & { /** * @generated from oneof agent.v1.ToolCallDelta.delta */ delta: | { /** * @generated from field: agent.v1.ShellToolCallDelta shell_tool_call_delta = 1; */ value: ShellToolCallDelta; case: "shellToolCallDelta"; } | { /** * @generated from field: agent.v1.TaskToolCallDelta task_tool_call_delta = 2; */ value: TaskToolCallDelta; case: "taskToolCallDelta"; } | { /** * @generated from field: agent.v1.EditToolCallDelta edit_tool_call_delta = 3; */ value: EditToolCallDelta; case: "editToolCallDelta"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ToolCallDelta. * Use `create(ToolCallDeltaSchema)` to create a new message. */ export const ToolCallDeltaSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 52); /** * @generated from message agent.v1.ConversationStep */ export type ConversationStep = Message<"agent.v1.ConversationStep"> & { /** * @generated from oneof agent.v1.ConversationStep.message */ message: | { /** * @generated from field: agent.v1.AssistantMessage assistant_message = 1; */ value: AssistantMessage; case: "assistantMessage"; } | { /** * @generated from field: agent.v1.ToolCall tool_call = 2; */ value: ToolCall; case: "toolCall"; } | { /** * @generated from field: agent.v1.ThinkingMessage thinking_message = 3; */ value: ThinkingMessage; case: "thinkingMessage"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ConversationStep. * Use `create(ConversationStepSchema)` to create a new message. */ export const ConversationStepSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 53); /** * @generated from message agent.v1.ConversationAction */ export type ConversationAction = Message<"agent.v1.ConversationAction"> & { /** * @generated from oneof agent.v1.ConversationAction.action */ action: | { /** * @generated from field: agent.v1.UserMessageAction user_message_action = 1; */ value: UserMessageAction; case: "userMessageAction"; } | { /** * @generated from field: agent.v1.ResumeAction resume_action = 2; */ value: ResumeAction; case: "resumeAction"; } | { /** * @generated from field: agent.v1.CancelAction cancel_action = 3; */ value: CancelAction; case: "cancelAction"; } | { /** * @generated from field: agent.v1.SummarizeAction summarize_action = 4; */ value: SummarizeAction; case: "summarizeAction"; } | { /** * @generated from field: agent.v1.ShellCommandAction shell_command_action = 5; */ value: ShellCommandAction; case: "shellCommandAction"; } | { /** * @generated from field: agent.v1.StartPlanAction start_plan_action = 6; */ value: StartPlanAction; case: "startPlanAction"; } | { /** * @generated from field: agent.v1.ExecutePlanAction execute_plan_action = 7; */ value: ExecutePlanAction; case: "executePlanAction"; } | { /** * @generated from field: agent.v1.AsyncAskQuestionCompletionAction async_ask_question_completion_action = 8; */ value: AsyncAskQuestionCompletionAction; case: "asyncAskQuestionCompletionAction"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ConversationAction. * Use `create(ConversationActionSchema)` to create a new message. */ export const ConversationActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 54); /** * @generated from message agent.v1.UserMessageAction */ export type UserMessageAction = Message<"agent.v1.UserMessageAction"> & { /** * @generated from field: agent.v1.UserMessage user_message = 1; */ userMessage?: UserMessage; /** * @generated from field: agent.v1.RequestContext request_context = 2; */ requestContext?: RequestContext; /** * @generated from field: optional bool send_to_interaction_listener = 3; */ sendToInteractionListener?: boolean; }; /** * Describes the message agent.v1.UserMessageAction. * Use `create(UserMessageActionSchema)` to create a new message. */ export const UserMessageActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 55); /** * @generated from message agent.v1.CancelAction */ export type CancelAction = Message<"agent.v1.CancelAction"> & {}; /** * Describes the message agent.v1.CancelAction. * Use `create(CancelActionSchema)` to create a new message. */ export const CancelActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 56); /** * @generated from message agent.v1.ResumeAction */ export type ResumeAction = Message<"agent.v1.ResumeAction"> & { /** * @generated from field: agent.v1.RequestContext request_context = 2; */ requestContext?: RequestContext; }; /** * Describes the message agent.v1.ResumeAction. * Use `create(ResumeActionSchema)` to create a new message. */ export const ResumeActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 57); /** * @generated from message agent.v1.AsyncAskQuestionCompletionAction */ export type AsyncAskQuestionCompletionAction = Message<"agent.v1.AsyncAskQuestionCompletionAction"> & { /** * Contains the original tool call ID and the result from the user * * @generated from field: string original_tool_call_id = 1; */ originalToolCallId: string; /** * @generated from field: agent.v1.AskQuestionArgs original_args = 2; */ originalArgs?: AskQuestionArgs; /** * @generated from field: agent.v1.AskQuestionResult result = 3; */ result?: AskQuestionResult; }; /** * Describes the message agent.v1.AsyncAskQuestionCompletionAction. * Use `create(AsyncAskQuestionCompletionActionSchema)` to create a new message. */ export const AsyncAskQuestionCompletionActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 58); /** * @generated from message agent.v1.SummarizeAction */ export type SummarizeAction = Message<"agent.v1.SummarizeAction"> & {}; /** * Describes the message agent.v1.SummarizeAction. * Use `create(SummarizeActionSchema)` to create a new message. */ export const SummarizeActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 59); /** * @generated from message agent.v1.ShellCommandAction */ export type ShellCommandAction = Message<"agent.v1.ShellCommandAction"> & { /** * @generated from field: agent.v1.ShellCommand shell_command = 1; */ shellCommand?: ShellCommand; /** * unique identifier for preemptive exec attachment * * @generated from field: string exec_id = 2; */ execId: string; }; /** * Describes the message agent.v1.ShellCommandAction. * Use `create(ShellCommandActionSchema)` to create a new message. */ export const ShellCommandActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 60); /** * @generated from message agent.v1.StartPlanAction */ export type StartPlanAction = Message<"agent.v1.StartPlanAction"> & { /** * @generated from field: agent.v1.UserMessage user_message = 1; */ userMessage?: UserMessage; /** * @generated from field: agent.v1.RequestContext request_context = 2; */ requestContext?: RequestContext; /** * @generated from field: bool is_spec = 3; */ isSpec: boolean; }; /** * Describes the message agent.v1.StartPlanAction. * Use `create(StartPlanActionSchema)` to create a new message. */ export const StartPlanActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 61); /** * @generated from message agent.v1.ExecutePlanAction */ export type ExecutePlanAction = Message<"agent.v1.ExecutePlanAction"> & { /** * @generated from field: agent.v1.RequestContext request_context = 1; */ requestContext?: RequestContext; /** * @generated from field: optional agent.v1.ConversationPlan plan = 2; */ plan?: ConversationPlan; /** * e.g., "cursor-plan://composerId/plan.md" * * @generated from field: optional string plan_file_uri = 3; */ planFileUri?: string; /** * The actual plan content from the file * * @generated from field: optional string plan_file_content = 4; */ planFileContent?: string; }; /** * Describes the message agent.v1.ExecutePlanAction. * Use `create(ExecutePlanActionSchema)` to create a new message. */ export const ExecutePlanActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 62); /** * @generated from message agent.v1.UserMessage */ export type UserMessage = Message<"agent.v1.UserMessage"> & { /** * @generated from field: string text = 1; */ text: string; /** * @generated from field: string message_id = 2; */ messageId: string; /** * @generated from field: optional agent.v1.SelectedContext selected_context = 3; */ selectedContext?: SelectedContext; /** * @generated from field: int32 mode = 4; */ mode: number; /** * @generated from field: optional bool is_simulated_msg = 5; */ isSimulatedMsg?: boolean; /** * @generated from field: optional string best_of_n_group_id = 6; */ bestOfNGroupId?: string; /** * @generated from field: optional bool try_use_best_of_n_promotion = 7; */ tryUseBestOfNPromotion?: boolean; /** * @generated from field: optional string rich_text = 8; */ richText?: string; /** * @generated from field: optional bytes selected_context_blob = 10; */ selectedContextBlob?: Uint8Array; /** * @generated from field: optional string correlation_id = 17; */ correlationId?: string; }; /** * Describes the message agent.v1.UserMessage. * Use `create(UserMessageSchema)` to create a new message. */ export const UserMessageSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 63); /** * @generated from message agent.v1.AssistantMessage */ export type AssistantMessage = Message<"agent.v1.AssistantMessage"> & { /** * @generated from field: string text = 1; */ text: string; }; /** * Describes the message agent.v1.AssistantMessage. * Use `create(AssistantMessageSchema)` to create a new message. */ export const AssistantMessageSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 64); /** * @generated from message agent.v1.ThinkingMessage */ export type ThinkingMessage = Message<"agent.v1.ThinkingMessage"> & { /** * @generated from field: string text = 1; */ text: string; /** * @generated from field: uint32 duration_ms = 2; */ durationMs: number; }; /** * Describes the message agent.v1.ThinkingMessage. * Use `create(ThinkingMessageSchema)` to create a new message. */ export const ThinkingMessageSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 65); /** * @generated from message agent.v1.ShellCommand */ export type ShellCommand = Message<"agent.v1.ShellCommand"> & { /** * @generated from field: string command = 1; */ command: string; }; /** * Describes the message agent.v1.ShellCommand. * Use `create(ShellCommandSchema)` to create a new message. */ export const ShellCommandSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 66); /** * @generated from message agent.v1.ShellOutput */ export type ShellOutput = Message<"agent.v1.ShellOutput"> & { /** * @generated from field: string stdout = 1; */ stdout: string; /** * @generated from field: string stderr = 2; */ stderr: string; /** * @generated from field: int32 exit_code = 3; */ exitCode: number; }; /** * Describes the message agent.v1.ShellOutput. * Use `create(ShellOutputSchema)` to create a new message. */ export const ShellOutputSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 67); /** * @generated from message agent.v1.ConversationTurn */ export type ConversationTurn = Message<"agent.v1.ConversationTurn"> & { /** * @generated from oneof agent.v1.ConversationTurn.turn */ turn: | { /** * @generated from field: agent.v1.AgentConversationTurn agent_conversation_turn = 1; */ value: AgentConversationTurn; case: "agentConversationTurn"; } | { /** * @generated from field: agent.v1.ShellConversationTurn shell_conversation_turn = 2; */ value: ShellConversationTurn; case: "shellConversationTurn"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ConversationTurn. * Use `create(ConversationTurnSchema)` to create a new message. */ export const ConversationTurnSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 68); /** * @generated from message agent.v1.ConversationPlan */ export type ConversationPlan = Message<"agent.v1.ConversationPlan"> & { /** * @generated from field: string plan = 1; */ plan: string; }; /** * Describes the message agent.v1.ConversationPlan. * Use `create(ConversationPlanSchema)` to create a new message. */ export const ConversationPlanSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 69); /** * @generated from message agent.v1.ConversationTurnStructure */ export type ConversationTurnStructure = Message<"agent.v1.ConversationTurnStructure"> & { /** * @generated from oneof agent.v1.ConversationTurnStructure.turn */ turn: | { /** * @generated from field: agent.v1.AgentConversationTurnStructure agent_conversation_turn = 1; */ value: AgentConversationTurnStructure; case: "agentConversationTurn"; } | { /** * @generated from field: agent.v1.ShellConversationTurnStructure shell_conversation_turn = 2; */ value: ShellConversationTurnStructure; case: "shellConversationTurn"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ConversationTurnStructure. * Use `create(ConversationTurnStructureSchema)` to create a new message. */ export const ConversationTurnStructureSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 70); /** * @generated from message agent.v1.AgentConversationTurn */ export type AgentConversationTurn = Message<"agent.v1.AgentConversationTurn"> & { /** * @generated from field: agent.v1.UserMessage user_message = 1; */ userMessage?: UserMessage; /** * @generated from field: repeated agent.v1.ConversationStep steps = 2; */ steps: ConversationStep[]; /** * The request ID associated with this turn, used for analytics tracking * * @generated from field: optional string request_id = 3; */ requestId?: string; }; /** * Describes the message agent.v1.AgentConversationTurn. * Use `create(AgentConversationTurnSchema)` to create a new message. */ export const AgentConversationTurnSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 71); /** * @generated from message agent.v1.AgentConversationTurnStructure */ export type AgentConversationTurnStructure = Message<"agent.v1.AgentConversationTurnStructure"> & { /** * @generated from field: bytes user_message = 1; */ userMessage: Uint8Array; /** * @generated from field: repeated bytes steps = 2; */ steps: Uint8Array[]; /** * The request ID associated with this turn, used for analytics tracking * * @generated from field: optional string request_id = 3; */ requestId?: string; }; /** * Describes the message agent.v1.AgentConversationTurnStructure. * Use `create(AgentConversationTurnStructureSchema)` to create a new message. */ export const AgentConversationTurnStructureSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 72); /** * @generated from message agent.v1.ShellConversationTurn */ export type ShellConversationTurn = Message<"agent.v1.ShellConversationTurn"> & { /** * @generated from field: agent.v1.ShellCommand shell_command = 1; */ shellCommand?: ShellCommand; /** * @generated from field: agent.v1.ShellOutput shell_output = 2; */ shellOutput?: ShellOutput; }; /** * Describes the message agent.v1.ShellConversationTurn. * Use `create(ShellConversationTurnSchema)` to create a new message. */ export const ShellConversationTurnSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 73); /** * @generated from message agent.v1.ShellConversationTurnStructure */ export type ShellConversationTurnStructure = Message<"agent.v1.ShellConversationTurnStructure"> & { /** * @generated from field: bytes shell_command = 1; */ shellCommand: Uint8Array; /** * @generated from field: bytes shell_output = 2; */ shellOutput: Uint8Array; }; /** * Describes the message agent.v1.ShellConversationTurnStructure. * Use `create(ShellConversationTurnStructureSchema)` to create a new message. */ export const ShellConversationTurnStructureSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 74); /** * @generated from message agent.v1.ConversationSummary */ export type ConversationSummary = Message<"agent.v1.ConversationSummary"> & { /** * @generated from field: string summary = 1; */ summary: string; }; /** * Describes the message agent.v1.ConversationSummary. * Use `create(ConversationSummarySchema)` to create a new message. */ export const ConversationSummarySchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 75); /** * @generated from message agent.v1.ConversationSummaryArchive */ export type ConversationSummaryArchive = Message<"agent.v1.ConversationSummaryArchive"> & { /** * @generated from field: repeated bytes summarized_messages = 1; */ summarizedMessages: Uint8Array[]; /** * @generated from field: string summary = 2; */ summary: string; /** * @generated from field: uint32 window_tail = 3; */ windowTail: number; /** * @generated from field: bytes summary_message = 4; */ summaryMessage: Uint8Array; }; /** * Describes the message agent.v1.ConversationSummaryArchive. * Use `create(ConversationSummaryArchiveSchema)` to create a new message. */ export const ConversationSummaryArchiveSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 76); /** * @generated from message agent.v1.ConversationTokenDetails */ export type ConversationTokenDetails = Message<"agent.v1.ConversationTokenDetails"> & { /** * @generated from field: uint32 used_tokens = 1; */ usedTokens: number; /** * @generated from field: uint32 max_tokens = 2; */ maxTokens: number; }; /** * Describes the message agent.v1.ConversationTokenDetails. * Use `create(ConversationTokenDetailsSchema)` to create a new message. */ export const ConversationTokenDetailsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 77); /** * @generated from message agent.v1.FileState */ export type FileState = Message<"agent.v1.FileState"> & { /** * Optional content. If not set or undefined, the file is considered deleted. * * @generated from field: optional string content = 1; */ content?: string; /** * Optional initial content captured when the file was first tracked. If not set or undefined, the file did not exist when tracking began. * * @generated from field: optional string initial_content = 2; */ initialContent?: string; }; /** * Describes the message agent.v1.FileState. * Use `create(FileStateSchema)` to create a new message. */ export const FileStateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 78); /** * @generated from message agent.v1.FileStateStructure */ export type FileStateStructure = Message<"agent.v1.FileStateStructure"> & { /** * Optional content. If not set or undefined, the file is considered deleted. * * @generated from field: optional bytes content = 1; */ content?: Uint8Array; /** * Optional initial content captured when the file was first tracked. If not set or undefined, the file did not exist when tracking began. * * @generated from field: optional bytes initial_content = 2; */ initialContent?: Uint8Array; }; /** * Describes the message agent.v1.FileStateStructure. * Use `create(FileStateStructureSchema)` to create a new message. */ export const FileStateStructureSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 79); /** * @generated from message agent.v1.StepTiming */ export type StepTiming = Message<"agent.v1.StepTiming"> & { /** * @generated from field: uint64 duration_ms = 1; */ durationMs: bigint; /** * @generated from field: uint64 timestamp_ms = 2; */ timestampMs: bigint; }; /** * Describes the message agent.v1.StepTiming. * Use `create(StepTimingSchema)` to create a new message. */ export const StepTimingSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 80); /** * @generated from message agent.v1.ConversationState */ export type ConversationState = Message<"agent.v1.ConversationState"> & { /** * @generated from field: repeated string root_prompt_messages_json = 1; */ rootPromptMessagesJson: string[]; /** * @generated from field: repeated agent.v1.ConversationTurn turns = 8; */ turns: ConversationTurn[]; /** * @generated from field: repeated agent.v1.TodoItem todos = 3; */ todos: TodoItem[]; /** * Raw JSON stringified tool-call content parts awaiting execution * * @generated from field: repeated string pending_tool_calls = 4; */ pendingToolCalls: string[]; /** * @generated from field: agent.v1.ConversationTokenDetails token_details = 5; */ tokenDetails?: ConversationTokenDetails; /** * only for when the user explicitly asks for a summary through the summary action * * @generated from field: optional agent.v1.ConversationSummary summary = 6; */ summary?: ConversationSummary; /** * @generated from field: optional agent.v1.ConversationPlan plan = 7; */ plan?: ConversationPlan; /** * @generated from field: optional agent.v1.ConversationSummaryArchive summary_archive = 9; */ summaryArchive?: ConversationSummaryArchive; /** * Deprecated, use summary_archives instead @deprecated summaryArchive; * * @generated from field: map file_states = 10; */ fileStates: { [key: string]: FileState }; /** * @generated from field: repeated agent.v1.ConversationSummaryArchive summary_archives = 11; */ summaryArchives: ConversationSummaryArchive[]; }; /** * Describes the message agent.v1.ConversationState. * Use `create(ConversationStateSchema)` to create a new message. */ export const ConversationStateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 81); /** * @generated from message agent.v1.SubagentPersistedState */ export type SubagentPersistedState = Message<"agent.v1.SubagentPersistedState"> & { /** * The subagent's conversation state structure * * @generated from field: agent.v1.ConversationStateStructure conversation_state = 1; */ conversationState?: ConversationStateStructure; /** * Timestamp when this subagent was first created * * @generated from field: uint64 created_timestamp_ms = 2; */ createdTimestampMs: bigint; /** * Timestamp when this subagent was last used (by task tool call) * * @generated from field: uint64 last_used_timestamp_ms = 3; */ lastUsedTimestampMs: bigint; /** * The subagent type (e.g., computerUse, custom with name) * * @generated from field: agent.v1.SubagentType subagent_type = 4; */ subagentType?: SubagentType; }; /** * Describes the message agent.v1.SubagentPersistedState. * Use `create(SubagentPersistedStateSchema)` to create a new message. */ export const SubagentPersistedStateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 82); /** * @generated from message agent.v1.ConversationStateStructure */ export type ConversationStateStructure = Message<"agent.v1.ConversationStateStructure"> & { /** * @generated from field: repeated bytes turns_old = 2; */ turnsOld: Uint8Array[]; /** * @deprecated turnsOld = []; * * @generated from field: repeated bytes root_prompt_messages_json = 1; */ rootPromptMessagesJson: Uint8Array[]; /** * @generated from field: repeated bytes turns = 8; */ turns: Uint8Array[]; /** * @generated from field: repeated bytes todos = 3; */ todos: Uint8Array[]; /** * Raw JSON stringified tool-call content parts awaiting execution * * @generated from field: repeated string pending_tool_calls = 4; */ pendingToolCalls: string[]; /** * @generated from field: agent.v1.ConversationTokenDetails token_details = 5; */ tokenDetails?: ConversationTokenDetails; /** * only for when the user explicitly asks for a summary through the summary action * * @generated from field: optional bytes summary = 6; */ summary?: Uint8Array; /** * @generated from field: optional bytes plan = 7; */ plan?: Uint8Array; /** * @generated from field: repeated string previous_workspace_uris = 9; */ previousWorkspaceUris: string[]; /** * Current mode of the conversation * * @generated from field: optional int32 mode = 10; */ mode?: number; /** * @generated from field: optional bytes summary_archive = 11; */ summaryArchive?: Uint8Array; /** * @generated from field: map file_states = 12; */ fileStates: { [key: string]: Uint8Array }; /** * Deprecated, use summary_archives instead @deprecated summaryArchive; Map of file paths to their latest content (stored as blob IDs in the KV store) Each blob contains a serialized FileState message @deprecated fileStates = {}; Map of file paths to their latest content (stored as FileStateStructure) * * @generated from field: map file_states_v2 = 15; */ fileStatesV2: { [key: string]: FileStateStructure }; /** * @generated from field: repeated bytes summary_archives = 13; */ summaryArchives: Uint8Array[]; /** * @generated from field: repeated agent.v1.StepTiming turn_timings = 14; */ turnTimings: StepTiming[]; /** * Subagent resume tracking Map of subagent ID to the persisted subagent state (stored inline) * * @generated from field: map subagent_states = 16; */ subagentStates: { [key: string]: SubagentPersistedState }; /** * Count of self-summaries generated for this conversation * * @generated from field: uint32 self_summary_count = 17; */ selfSummaryCount: number; /** * Set of file paths that have been read during this conversation * * @generated from field: repeated string read_paths = 18; */ readPaths: string[]; /** * @generated from field: optional bytes extra_state = 21; */ extraState?: Uint8Array; /** * @generated from field: optional string client_name = 22; */ clientName?: string; }; /** * Describes the message agent.v1.ConversationStateStructure. * Use `create(ConversationStateStructureSchema)` to create a new message. */ export const ConversationStateStructureSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 83); /** * @generated from message agent.v1.ThinkingDetails */ export type ThinkingDetails = Message<"agent.v1.ThinkingDetails"> & {}; /** * Describes the message agent.v1.ThinkingDetails. * Use `create(ThinkingDetailsSchema)` to create a new message. */ export const ThinkingDetailsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 84); /** * @generated from message agent.v1.ApiKeyCredentials */ export type ApiKeyCredentials = Message<"agent.v1.ApiKeyCredentials"> & { /** * @generated from field: string api_key = 1; */ apiKey: string; /** * For OpenAI-compatible endpoints * * @generated from field: optional string base_url = 2; */ baseUrl?: string; }; /** * Describes the message agent.v1.ApiKeyCredentials. * Use `create(ApiKeyCredentialsSchema)` to create a new message. */ export const ApiKeyCredentialsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 85); /** * @generated from message agent.v1.AzureCredentials */ export type AzureCredentials = Message<"agent.v1.AzureCredentials"> & { /** * @generated from field: string api_key = 1; */ apiKey: string; /** * @generated from field: string base_url = 2; */ baseUrl: string; /** * @generated from field: string deployment = 3; */ deployment: string; }; /** * Describes the message agent.v1.AzureCredentials. * Use `create(AzureCredentialsSchema)` to create a new message. */ export const AzureCredentialsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 86); /** * @generated from message agent.v1.BedrockCredentials */ export type BedrockCredentials = Message<"agent.v1.BedrockCredentials"> & { /** * @generated from field: string access_key = 1; */ accessKey: string; /** * @generated from field: string secret_key = 2; */ secretKey: string; /** * @generated from field: string region = 3; */ region: string; /** * @generated from field: optional string session_token = 4; */ sessionToken?: string; }; /** * Describes the message agent.v1.BedrockCredentials. * Use `create(BedrockCredentialsSchema)` to create a new message. */ export const BedrockCredentialsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 87); /** * @generated from message agent.v1.ModelDetails */ export type ModelDetails = Message<"agent.v1.ModelDetails"> & { /** * @generated from field: string model_id = 1; */ modelId: string; /** * @generated from field: string display_model_id = 3; */ displayModelId: string; /** * @generated from field: string display_name = 4; */ displayName: string; /** * @generated from field: string display_name_short = 5; */ displayNameShort: string; /** * @generated from field: repeated string aliases = 6; */ aliases: string[]; /** * @generated from field: optional agent.v1.ThinkingDetails thinking_details = 2; */ thinkingDetails?: ThinkingDetails; /** * @generated from field: optional bool max_mode = 7; */ maxMode?: boolean; /** * @generated from oneof agent.v1.ModelDetails.credentials */ credentials: | { /** * @generated from field: agent.v1.ApiKeyCredentials api_key_credentials = 8; */ value: ApiKeyCredentials; case: "apiKeyCredentials"; } | { /** * @generated from field: agent.v1.AzureCredentials azure_credentials = 9; */ value: AzureCredentials; case: "azureCredentials"; } | { /** * @generated from field: agent.v1.BedrockCredentials bedrock_credentials = 10; */ value: BedrockCredentials; case: "bedrockCredentials"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ModelDetails. * Use `create(ModelDetailsSchema)` to create a new message. */ export const ModelDetailsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 88); /** * @generated from message agent.v1.RequestedModel */ export type RequestedModel = Message<"agent.v1.RequestedModel"> & { /** * @generated from field: string model_id = 1; */ modelId: string; /** * @generated from field: bool max_mode = 2; */ maxMode: boolean; /** * @generated from field: repeated agent.v1.RequestedModel_ModelParameterbytes parameters = 3; */ parameters: RequestedModel_ModelParameterbytes[]; /** * @generated from oneof agent.v1.RequestedModel.credentials */ credentials: | { /** * @generated from field: agent.v1.ApiKeyCredentials api_key_credentials = 4; */ value: ApiKeyCredentials; case: "apiKeyCredentials"; } | { /** * @generated from field: agent.v1.AzureCredentials azure_credentials = 5; */ value: AzureCredentials; case: "azureCredentials"; } | { /** * @generated from field: agent.v1.BedrockCredentials bedrock_credentials = 6; */ value: BedrockCredentials; case: "bedrockCredentials"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.RequestedModel. * Use `create(RequestedModelSchema)` to create a new message. */ export const RequestedModelSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 89); /** * @generated from message agent.v1.RequestedModel_ModelParameterbytes */ export type RequestedModel_ModelParameterbytes = Message<"agent.v1.RequestedModel_ModelParameterbytes"> & { /** * @generated from field: string id = 1; */ id: string; /** * All paramters are encoded as strings. For boolean parameters, the value is either "true" or "false". For enum parameters, the value is one of the values in the enum. * * @generated from field: string value = 2; */ value: string; }; /** * Describes the message agent.v1.RequestedModel_ModelParameterbytes. * Use `create(RequestedModel_ModelParameterbytesSchema)` to create a new message. */ export const RequestedModel_ModelParameterbytesSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 90); /** * @generated from message agent.v1.AgentRunRequest */ export type AgentRunRequest = Message<"agent.v1.AgentRunRequest"> & { /** * @generated from field: agent.v1.ConversationStateStructure conversation_state = 1; */ conversationState?: ConversationStateStructure; /** * @generated from field: agent.v1.ConversationAction action = 2; */ action?: ConversationAction; /** * TODO: Today we use model_details, but we are getting ready to deprecate that and use requested_model instead. * * @generated from field: agent.v1.ModelDetails model_details = 3; */ modelDetails?: ModelDetails; /** * @generated from field: optional agent.v1.RequestedModel requested_model = 9; */ requestedModel?: RequestedModel; /** * @generated from field: agent.v1.McpTools mcp_tools = 4; */ mcpTools?: McpTools; /** * @generated from field: optional string conversation_id = 5; */ conversationId?: string; /** * @generated from field: optional agent.v1.McpFileSystemOptions mcp_file_system_options = 6; */ mcpFileSystemOptions?: McpFileSystemOptions; /** * Deprecated, use the one in RequestContext message in request_context_exec.proto instead * * @generated from field: optional agent.v1.SkillOptions skill_options = 7; */ skillOptions?: SkillOptions; /** * Custom system prompt override. Allowlisted for specific teams only. * * @generated from field: optional string custom_system_prompt = 8; */ customSystemPrompt?: string; }; /** * Describes the message agent.v1.AgentRunRequest. * Use `create(AgentRunRequestSchema)` to create a new message. */ export const AgentRunRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 91); /** * @generated from message agent.v1.TextDeltaUpdate */ export type TextDeltaUpdate = Message<"agent.v1.TextDeltaUpdate"> & { /** * @generated from field: string text = 1; */ text: string; }; /** * Describes the message agent.v1.TextDeltaUpdate. * Use `create(TextDeltaUpdateSchema)` to create a new message. */ export const TextDeltaUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 92); /** * @generated from message agent.v1.ToolCallStartedUpdate */ export type ToolCallStartedUpdate = Message<"agent.v1.ToolCallStartedUpdate"> & { /** * @generated from field: string call_id = 1; */ callId: string; /** * @generated from field: agent.v1.ToolCall tool_call = 2; */ toolCall?: ToolCall; /** * groups tool calls that originate from the same model provider call * * @generated from field: string model_call_id = 3; */ modelCallId: string; }; /** * Describes the message agent.v1.ToolCallStartedUpdate. * Use `create(ToolCallStartedUpdateSchema)` to create a new message. */ export const ToolCallStartedUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 93); /** * @generated from message agent.v1.ToolCallCompletedUpdate */ export type ToolCallCompletedUpdate = Message<"agent.v1.ToolCallCompletedUpdate"> & { /** * @generated from field: string call_id = 1; */ callId: string; /** * @generated from field: agent.v1.ToolCall tool_call = 2; */ toolCall?: ToolCall; /** * groups tool calls that originate from the same model provider call * * @generated from field: string model_call_id = 3; */ modelCallId: string; }; /** * Describes the message agent.v1.ToolCallCompletedUpdate. * Use `create(ToolCallCompletedUpdateSchema)` to create a new message. */ export const ToolCallCompletedUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 94); /** * @generated from message agent.v1.ToolCallDeltaUpdate */ export type ToolCallDeltaUpdate = Message<"agent.v1.ToolCallDeltaUpdate"> & { /** * @generated from field: string call_id = 1; */ callId: string; /** * @generated from field: agent.v1.ToolCallDelta tool_call_delta = 2; */ toolCallDelta?: ToolCallDelta; /** * groups tool calls that originate from the same model provider call * * @generated from field: string model_call_id = 3; */ modelCallId: string; }; /** * Describes the message agent.v1.ToolCallDeltaUpdate. * Use `create(ToolCallDeltaUpdateSchema)` to create a new message. */ export const ToolCallDeltaUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 95); /** * Streaming update for partial tool call arguments * * @generated from message agent.v1.PartialToolCallUpdate */ export type PartialToolCallUpdate = Message<"agent.v1.PartialToolCallUpdate"> & { /** * @generated from field: string call_id = 1; */ callId: string; /** * @generated from field: agent.v1.ToolCall tool_call = 2; */ toolCall?: ToolCall; /** * Aggregated args text so far (as JSON text). May be incomplete until final tool call. * * @generated from field: string args_text_delta = 3; */ argsTextDelta: string; /** * groups tool calls that originate from the same model provider call * * @generated from field: string model_call_id = 4; */ modelCallId: string; }; /** * Describes the message agent.v1.PartialToolCallUpdate. * Use `create(PartialToolCallUpdateSchema)` to create a new message. */ export const PartialToolCallUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 96); /** * @generated from message agent.v1.ThinkingDeltaUpdate */ export type ThinkingDeltaUpdate = Message<"agent.v1.ThinkingDeltaUpdate"> & { /** * @generated from field: string text = 1; */ text: string; }; /** * Describes the message agent.v1.ThinkingDeltaUpdate. * Use `create(ThinkingDeltaUpdateSchema)` to create a new message. */ export const ThinkingDeltaUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 97); /** * @generated from message agent.v1.ThinkingCompletedUpdate */ export type ThinkingCompletedUpdate = Message<"agent.v1.ThinkingCompletedUpdate"> & { /** * @generated from field: int32 thinking_duration_ms = 1; */ thinkingDurationMs: number; }; /** * Describes the message agent.v1.ThinkingCompletedUpdate. * Use `create(ThinkingCompletedUpdateSchema)` to create a new message. */ export const ThinkingCompletedUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 98); /** * @generated from message agent.v1.TokenDeltaUpdate */ export type TokenDeltaUpdate = Message<"agent.v1.TokenDeltaUpdate"> & { /** * @generated from field: int32 tokens = 1; */ tokens: number; }; /** * Describes the message agent.v1.TokenDeltaUpdate. * Use `create(TokenDeltaUpdateSchema)` to create a new message. */ export const TokenDeltaUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 99); /** * @generated from message agent.v1.SummaryUpdate */ export type SummaryUpdate = Message<"agent.v1.SummaryUpdate"> & { /** * @generated from field: string summary = 1; */ summary: string; }; /** * Describes the message agent.v1.SummaryUpdate. * Use `create(SummaryUpdateSchema)` to create a new message. */ export const SummaryUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 100); /** * @generated from message agent.v1.SummaryStartedUpdate */ export type SummaryStartedUpdate = Message<"agent.v1.SummaryStartedUpdate"> & {}; /** * Describes the message agent.v1.SummaryStartedUpdate. * Use `create(SummaryStartedUpdateSchema)` to create a new message. */ export const SummaryStartedUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 101); /** * @generated from message agent.v1.HeartbeatUpdate */ export type HeartbeatUpdate = Message<"agent.v1.HeartbeatUpdate"> & {}; /** * Describes the message agent.v1.HeartbeatUpdate. * Use `create(HeartbeatUpdateSchema)` to create a new message. */ export const HeartbeatUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 102); /** * @generated from message agent.v1.SummaryCompletedUpdate */ export type SummaryCompletedUpdate = Message<"agent.v1.SummaryCompletedUpdate"> & {}; /** * Describes the message agent.v1.SummaryCompletedUpdate. * Use `create(SummaryCompletedUpdateSchema)` to create a new message. */ export const SummaryCompletedUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 103); /** * @generated from message agent.v1.ShellOutputDeltaUpdate */ export type ShellOutputDeltaUpdate = Message<"agent.v1.ShellOutputDeltaUpdate"> & { /** * @generated from oneof agent.v1.ShellOutputDeltaUpdate.event */ event: | { /** * @generated from field: agent.v1.ShellStreamStdout stdout = 1; */ value: ShellStreamStdout; case: "stdout"; } | { /** * @generated from field: agent.v1.ShellStreamStderr stderr = 2; */ value: ShellStreamStderr; case: "stderr"; } | { /** * @generated from field: agent.v1.ShellStreamExit exit = 3; */ value: ShellStreamExit; case: "exit"; } | { /** * @generated from field: agent.v1.ShellStreamStart start = 4; */ value: ShellStreamStart; case: "start"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ShellOutputDeltaUpdate. * Use `create(ShellOutputDeltaUpdateSchema)` to create a new message. */ export const ShellOutputDeltaUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 104); /** * @generated from message agent.v1.TurnEndedUpdate */ export type TurnEndedUpdate = Message<"agent.v1.TurnEndedUpdate"> & {}; /** * Describes the message agent.v1.TurnEndedUpdate. * Use `create(TurnEndedUpdateSchema)` to create a new message. */ export const TurnEndedUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 105); /** * Only: user message appended update * * @generated from message agent.v1.UserMessageAppendedUpdate */ export type UserMessageAppendedUpdate = Message<"agent.v1.UserMessageAppendedUpdate"> & { /** * @generated from field: agent.v1.UserMessage user_message = 1; */ userMessage?: UserMessage; }; /** * Describes the message agent.v1.UserMessageAppendedUpdate. * Use `create(UserMessageAppendedUpdateSchema)` to create a new message. */ export const UserMessageAppendedUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 106); /** * @generated from message agent.v1.StepStartedUpdate */ export type StepStartedUpdate = Message<"agent.v1.StepStartedUpdate"> & { /** * @generated from field: uint64 step_id = 1; */ stepId: bigint; }; /** * Describes the message agent.v1.StepStartedUpdate. * Use `create(StepStartedUpdateSchema)` to create a new message. */ export const StepStartedUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 107); /** * @generated from message agent.v1.StepCompletedUpdate */ export type StepCompletedUpdate = Message<"agent.v1.StepCompletedUpdate"> & { /** * @generated from field: uint64 step_id = 1; */ stepId: bigint; /** * @generated from field: int64 step_duration_ms = 2; */ stepDurationMs: bigint; }; /** * Describes the message agent.v1.StepCompletedUpdate. * Use `create(StepCompletedUpdateSchema)` to create a new message. */ export const StepCompletedUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 108); /** * @generated from message agent.v1.InteractionUpdate */ export type InteractionUpdate = Message<"agent.v1.InteractionUpdate"> & { /** * @generated from oneof agent.v1.InteractionUpdate.message */ message: | { /** * @generated from field: agent.v1.TextDeltaUpdate text_delta = 1; */ value: TextDeltaUpdate; case: "textDelta"; } | { /** * @generated from field: agent.v1.PartialToolCallUpdate partial_tool_call = 7; */ value: PartialToolCallUpdate; case: "partialToolCall"; } | { /** * @generated from field: agent.v1.ToolCallDeltaUpdate tool_call_delta = 15; */ value: ToolCallDeltaUpdate; case: "toolCallDelta"; } | { /** * @generated from field: agent.v1.ToolCallStartedUpdate tool_call_started = 2; */ value: ToolCallStartedUpdate; case: "toolCallStarted"; } | { /** * @generated from field: agent.v1.ToolCallCompletedUpdate tool_call_completed = 3; */ value: ToolCallCompletedUpdate; case: "toolCallCompleted"; } | { /** * @generated from field: agent.v1.ThinkingDeltaUpdate thinking_delta = 4; */ value: ThinkingDeltaUpdate; case: "thinkingDelta"; } | { /** * @generated from field: agent.v1.ThinkingCompletedUpdate thinking_completed = 5; */ value: ThinkingCompletedUpdate; case: "thinkingCompleted"; } | { /** * @generated from field: agent.v1.UserMessageAppendedUpdate user_message_appended = 6; */ value: UserMessageAppendedUpdate; case: "userMessageAppended"; } | { /** * @generated from field: agent.v1.TokenDeltaUpdate token_delta = 8; */ value: TokenDeltaUpdate; case: "tokenDelta"; } | { /** * @generated from field: agent.v1.SummaryUpdate summary = 9; */ value: SummaryUpdate; case: "summary"; } | { /** * @generated from field: agent.v1.SummaryStartedUpdate summary_started = 10; */ value: SummaryStartedUpdate; case: "summaryStarted"; } | { /** * @generated from field: agent.v1.SummaryCompletedUpdate summary_completed = 11; */ value: SummaryCompletedUpdate; case: "summaryCompleted"; } | { /** * @generated from field: agent.v1.ShellOutputDeltaUpdate shell_output_delta = 12; */ value: ShellOutputDeltaUpdate; case: "shellOutputDelta"; } | { /** * @generated from field: agent.v1.HeartbeatUpdate heartbeat = 13; */ value: HeartbeatUpdate; case: "heartbeat"; } | { /** * @generated from field: agent.v1.TurnEndedUpdate turn_ended = 14; */ value: TurnEndedUpdate; case: "turnEnded"; } | { /** * @generated from field: agent.v1.StepStartedUpdate step_started = 16; */ value: StepStartedUpdate; case: "stepStarted"; } | { /** * @generated from field: agent.v1.StepCompletedUpdate step_completed = 17; */ value: StepCompletedUpdate; case: "stepCompleted"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.InteractionUpdate. * Use `create(InteractionUpdateSchema)` to create a new message. */ export const InteractionUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 109); /** * Interaction query messages for bidirectional communication * * @generated from message agent.v1.InteractionQuery */ export type InteractionQuery = Message<"agent.v1.InteractionQuery"> & { /** * @generated from field: uint32 id = 1; */ id: number; /** * @generated from oneof agent.v1.InteractionQuery.query */ query: | { /** * @generated from field: agent.v1.WebSearchRequestQuery web_search_request_query = 2; */ value: WebSearchRequestQuery; case: "webSearchRequestQuery"; } | { /** * @generated from field: agent.v1.AskQuestionInteractionQuery ask_question_interaction_query = 3; */ value: AskQuestionInteractionQuery; case: "askQuestionInteractionQuery"; } | { /** * @generated from field: agent.v1.SwitchModeRequestQuery switch_mode_request_query = 4; */ value: SwitchModeRequestQuery; case: "switchModeRequestQuery"; } | { /** * @generated from field: agent.v1.ExaSearchRequestQuery exa_search_request_query = 5; */ value: ExaSearchRequestQuery; case: "exaSearchRequestQuery"; } | { /** * @generated from field: agent.v1.ExaFetchRequestQuery exa_fetch_request_query = 6; */ value: ExaFetchRequestQuery; case: "exaFetchRequestQuery"; } | { /** * @generated from field: agent.v1.CreatePlanRequestQuery create_plan_request_query = 7; */ value: CreatePlanRequestQuery; case: "createPlanRequestQuery"; } | { /** * @generated from field: agent.v1.SetupVmEnvironmentArgs setup_vm_environment_args = 8; */ value: SetupVmEnvironmentArgs; case: "setupVmEnvironmentArgs"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.InteractionQuery. * Use `create(InteractionQuerySchema)` to create a new message. */ export const InteractionQuerySchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 110); /** * @generated from message agent.v1.InteractionResponse */ export type InteractionResponse = Message<"agent.v1.InteractionResponse"> & { /** * @generated from field: uint32 id = 1; */ id: number; /** * @generated from oneof agent.v1.InteractionResponse.result */ result: | { /** * @generated from field: agent.v1.WebSearchRequestResponse web_search_request_response = 2; */ value: WebSearchRequestResponse; case: "webSearchRequestResponse"; } | { /** * @generated from field: agent.v1.AskQuestionInteractionResponse ask_question_interaction_response = 3; */ value: AskQuestionInteractionResponse; case: "askQuestionInteractionResponse"; } | { /** * @generated from field: agent.v1.SwitchModeRequestResponse switch_mode_request_response = 4; */ value: SwitchModeRequestResponse; case: "switchModeRequestResponse"; } | { /** * @generated from field: agent.v1.ExaSearchRequestResponse exa_search_request_response = 5; */ value: ExaSearchRequestResponse; case: "exaSearchRequestResponse"; } | { /** * @generated from field: agent.v1.ExaFetchRequestResponse exa_fetch_request_response = 6; */ value: ExaFetchRequestResponse; case: "exaFetchRequestResponse"; } | { /** * @generated from field: agent.v1.CreatePlanRequestResponse create_plan_request_response = 7; */ value: CreatePlanRequestResponse; case: "createPlanRequestResponse"; } | { /** * @generated from field: agent.v1.SetupVmEnvironmentResult setup_vm_environment_result = 8; */ value: SetupVmEnvironmentResult; case: "setupVmEnvironmentResult"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.InteractionResponse. * Use `create(InteractionResponseSchema)` to create a new message. */ export const InteractionResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 111); /** * @generated from message agent.v1.AskQuestionInteractionQuery */ export type AskQuestionInteractionQuery = Message<"agent.v1.AskQuestionInteractionQuery"> & { /** * @generated from field: agent.v1.AskQuestionArgs args = 1; */ args?: AskQuestionArgs; /** * @generated from field: string tool_call_id = 2; */ toolCallId: string; }; /** * Describes the message agent.v1.AskQuestionInteractionQuery. * Use `create(AskQuestionInteractionQuerySchema)` to create a new message. */ export const AskQuestionInteractionQuerySchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 112); /** * @generated from message agent.v1.AskQuestionInteractionResponse */ export type AskQuestionInteractionResponse = Message<"agent.v1.AskQuestionInteractionResponse"> & { /** * @generated from field: agent.v1.AskQuestionResult result = 1; */ result?: AskQuestionResult; }; /** * Describes the message agent.v1.AskQuestionInteractionResponse. * Use `create(AskQuestionInteractionResponseSchema)` to create a new message. */ export const AskQuestionInteractionResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 113); /** * @generated from message agent.v1.ClientHeartbeat */ export type ClientHeartbeat = Message<"agent.v1.ClientHeartbeat"> & {}; /** * Describes the message agent.v1.ClientHeartbeat. * Use `create(ClientHeartbeatSchema)` to create a new message. */ export const ClientHeartbeatSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 114); /** * Prewarm request - sent before the actual action to prepare the backend Contains all config needed for auth, model routing, and session building The actual ConversationAction is sent separately after prewarming completes * * @generated from message agent.v1.PrewarmRequest */ export type PrewarmRequest = Message<"agent.v1.PrewarmRequest"> & { /** * @generated from field: agent.v1.ModelDetails model_details = 1; */ modelDetails?: ModelDetails; /** * @generated from field: optional agent.v1.RequestedModel requested_model = 9; */ requestedModel?: RequestedModel; /** * @generated from field: optional string conversation_id = 2; */ conversationId?: string; /** * @generated from field: agent.v1.ConversationStateStructure conversation_state = 3; */ conversationState?: ConversationStateStructure; /** * @generated from field: agent.v1.McpTools mcp_tools = 4; */ mcpTools?: McpTools; /** * @generated from field: optional agent.v1.McpFileSystemOptions mcp_file_system_options = 5; */ mcpFileSystemOptions?: McpFileSystemOptions; /** * Best-of-N context for usage billing (same fields as UserMessage) * * @generated from field: optional string best_of_n_group_id = 6; */ bestOfNGroupId?: string; /** * @generated from field: optional bool try_use_best_of_n_promotion = 7; */ tryUseBestOfNPromotion?: boolean; /** * Custom system prompt override. Allowlisted for specific teams only. * * @generated from field: optional string custom_system_prompt = 8; */ customSystemPrompt?: string; }; /** * Describes the message agent.v1.PrewarmRequest. * Use `create(PrewarmRequestSchema)` to create a new message. */ export const PrewarmRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 115); /** * @generated from message agent.v1.ExecServerAbort */ export type ExecServerAbort = Message<"agent.v1.ExecServerAbort"> & { /** * @generated from field: uint32 id = 1; */ id: number; }; /** * Describes the message agent.v1.ExecServerAbort. * Use `create(ExecServerAbortSchema)` to create a new message. */ export const ExecServerAbortSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 116); /** * @generated from message agent.v1.ExecServerControlMessage */ export type ExecServerControlMessage = Message<"agent.v1.ExecServerControlMessage"> & { /** * @generated from oneof agent.v1.ExecServerControlMessage.message */ message: | { /** * @generated from field: agent.v1.ExecServerAbort abort = 1; */ value: ExecServerAbort; case: "abort"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ExecServerControlMessage. * Use `create(ExecServerControlMessageSchema)` to create a new message. */ export const ExecServerControlMessageSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 117); /** * @generated from message agent.v1.AgentClientMessage */ export type AgentClientMessage = Message<"agent.v1.AgentClientMessage"> & { /** * @generated from oneof agent.v1.AgentClientMessage.message */ message: | { /** * @generated from field: agent.v1.AgentRunRequest run_request = 1; */ value: AgentRunRequest; case: "runRequest"; } | { /** * @generated from field: agent.v1.ExecClientMessage exec_client_message = 2; */ value: ExecClientMessage; case: "execClientMessage"; } | { /** * @generated from field: agent.v1.ExecClientControlMessage exec_client_control_message = 5; */ value: ExecClientControlMessage; case: "execClientControlMessage"; } | { /** * @generated from field: agent.v1.KvClientMessage kv_client_message = 3; */ value: KvClientMessage; case: "kvClientMessage"; } | { /** * @generated from field: agent.v1.ConversationAction conversation_action = 4; */ value: ConversationAction; case: "conversationAction"; } | { /** * @generated from field: agent.v1.InteractionResponse interaction_response = 6; */ value: InteractionResponse; case: "interactionResponse"; } | { /** * @generated from field: agent.v1.ClientHeartbeat client_heartbeat = 7; */ value: ClientHeartbeat; case: "clientHeartbeat"; } | { /** * @generated from field: agent.v1.PrewarmRequest prewarm_request = 8; */ value: PrewarmRequest; case: "prewarmRequest"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.AgentClientMessage. * Use `create(AgentClientMessageSchema)` to create a new message. */ export const AgentClientMessageSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 118); /** * @generated from message agent.v1.AgentServerMessage */ export type AgentServerMessage = Message<"agent.v1.AgentServerMessage"> & { /** * @generated from oneof agent.v1.AgentServerMessage.message */ message: | { /** * @generated from field: agent.v1.InteractionUpdate interaction_update = 1; */ value: InteractionUpdate; case: "interactionUpdate"; } | { /** * @generated from field: agent.v1.ExecServerMessage exec_server_message = 2; */ value: ExecServerMessage; case: "execServerMessage"; } | { /** * @generated from field: agent.v1.ExecServerControlMessage exec_server_control_message = 5; */ value: ExecServerControlMessage; case: "execServerControlMessage"; } | { /** * @generated from field: agent.v1.ConversationStateStructure conversation_checkpoint_update = 3; */ value: ConversationStateStructure; case: "conversationCheckpointUpdate"; } | { /** * @generated from field: agent.v1.KvServerMessage kv_server_message = 4; */ value: KvServerMessage; case: "kvServerMessage"; } | { /** * @generated from field: agent.v1.InteractionQuery interaction_query = 7; */ value: InteractionQuery; case: "interactionQuery"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.AgentServerMessage. * Use `create(AgentServerMessageSchema)` to create a new message. */ export const AgentServerMessageSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 119); /** * New unary API for naming an agent from a user message * * @generated from message agent.v1.NameAgentRequest */ export type NameAgentRequest = Message<"agent.v1.NameAgentRequest"> & { /** * @generated from field: string user_message = 1; */ userMessage: string; }; /** * Describes the message agent.v1.NameAgentRequest. * Use `create(NameAgentRequestSchema)` to create a new message. */ export const NameAgentRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 120); /** * @generated from message agent.v1.NameAgentResponse */ export type NameAgentResponse = Message<"agent.v1.NameAgentResponse"> & { /** * @generated from field: string name = 1; */ name: string; }; /** * Describes the message agent.v1.NameAgentResponse. * Use `create(NameAgentResponseSchema)` to create a new message. */ export const NameAgentResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 121); /** * @generated from message agent.v1.GetUsableModelsRequest */ export type GetUsableModelsRequest = Message<"agent.v1.GetUsableModelsRequest"> & { /** * Not used right now, but can use to populate info about custom models the user passes in that we don't send down by default * * @generated from field: repeated string custom_model_ids = 1; */ customModelIds: string[]; }; /** * Describes the message agent.v1.GetUsableModelsRequest. * Use `create(GetUsableModelsRequestSchema)` to create a new message. */ export const GetUsableModelsRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 122); /** * @generated from message agent.v1.GetUsableModelsResponse */ export type GetUsableModelsResponse = Message<"agent.v1.GetUsableModelsResponse"> & { /** * @generated from field: repeated agent.v1.ModelDetails models = 1; */ models: ModelDetails[]; }; /** * Describes the message agent.v1.GetUsableModelsResponse. * Use `create(GetUsableModelsResponseSchema)` to create a new message. */ export const GetUsableModelsResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 123); /** * @generated from message agent.v1.GetDefaultModelForCliRequest */ export type GetDefaultModelForCliRequest = Message<"agent.v1.GetDefaultModelForCliRequest"> & {}; /** * Describes the message agent.v1.GetDefaultModelForCliRequest. * Use `create(GetDefaultModelForCliRequestSchema)` to create a new message. */ export const GetDefaultModelForCliRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 124); /** * @generated from message agent.v1.GetDefaultModelForCliResponse */ export type GetDefaultModelForCliResponse = Message<"agent.v1.GetDefaultModelForCliResponse"> & { /** * @generated from field: agent.v1.ModelDetails model = 1; */ model?: ModelDetails; }; /** * Describes the message agent.v1.GetDefaultModelForCliResponse. * Use `create(GetDefaultModelForCliResponseSchema)` to create a new message. */ export const GetDefaultModelForCliResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 125); /** * Internal endpoint: returns all allowed model intents for devs * * @generated from message agent.v1.GetAllowedModelIntentsRequest */ export type GetAllowedModelIntentsRequest = Message<"agent.v1.GetAllowedModelIntentsRequest"> & {}; /** * Describes the message agent.v1.GetAllowedModelIntentsRequest. * Use `create(GetAllowedModelIntentsRequestSchema)` to create a new message. */ export const GetAllowedModelIntentsRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 126); /** * @generated from message agent.v1.GetAllowedModelIntentsResponse */ export type GetAllowedModelIntentsResponse = Message<"agent.v1.GetAllowedModelIntentsResponse"> & { /** * @generated from field: repeated string model_intents = 1; */ modelIntents: string[]; }; /** * Describes the message agent.v1.GetAllowedModelIntentsResponse. * Use `create(GetAllowedModelIntentsResponseSchema)` to create a new message. */ export const GetAllowedModelIntentsResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 127); /** * IDE state persistence for clients (CLI / VSCode integration) Mirrors a subset of aiserver.v1.ConversationMessage.IdeEditorsState, but only contains the recently viewed files and avoids any deprecated fields. * * @generated from message agent.v1.IdeEditorsStateFile */ export type IdeEditorsStateFile = Message<"agent.v1.IdeEditorsStateFile"> & { /** * @generated from field: string relative_path = 1; */ relativePath: string; /** * @generated from field: string absolute_path = 2; */ absolutePath: string; /** * @generated from field: optional bool is_currently_focused = 3; */ isCurrentlyFocused?: boolean; /** * @generated from field: optional int32 current_line_number = 4; */ currentLineNumber?: number; /** * @generated from field: optional string current_line_text = 5; */ currentLineText?: string; /** * @generated from field: optional int32 line_count = 6; */ lineCount?: number; }; /** * Describes the message agent.v1.IdeEditorsStateFile. * Use `create(IdeEditorsStateFileSchema)` to create a new message. */ export const IdeEditorsStateFileSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 128); /** * @generated from message agent.v1.IdeEditorsStateLite */ export type IdeEditorsStateLite = Message<"agent.v1.IdeEditorsStateLite"> & { /** * @generated from field: repeated agent.v1.IdeEditorsStateFile recently_viewed_files = 1; */ recentlyViewedFiles: IdeEditorsStateFile[]; }; /** * Describes the message agent.v1.IdeEditorsStateLite. * Use `create(IdeEditorsStateLiteSchema)` to create a new message. */ export const IdeEditorsStateLiteSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 129); /** * @generated from message agent.v1.ApplyAgentDiffToolCall */ export type ApplyAgentDiffToolCall = Message<"agent.v1.ApplyAgentDiffToolCall"> & { /** * @generated from field: agent.v1.ApplyAgentDiffArgs args = 1; */ args?: ApplyAgentDiffArgs; /** * @generated from field: agent.v1.ApplyAgentDiffResult result = 2; */ result?: ApplyAgentDiffResult; }; /** * Describes the message agent.v1.ApplyAgentDiffToolCall. * Use `create(ApplyAgentDiffToolCallSchema)` to create a new message. */ export const ApplyAgentDiffToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 130); /** * @generated from message agent.v1.ApplyAgentDiffArgs */ export type ApplyAgentDiffArgs = Message<"agent.v1.ApplyAgentDiffArgs"> & { /** * @generated from field: string agent_id = 1; */ agentId: string; }; /** * Describes the message agent.v1.ApplyAgentDiffArgs. * Use `create(ApplyAgentDiffArgsSchema)` to create a new message. */ export const ApplyAgentDiffArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 131); /** * @generated from message agent.v1.ApplyAgentDiffResult */ export type ApplyAgentDiffResult = Message<"agent.v1.ApplyAgentDiffResult"> & { /** * @generated from oneof agent.v1.ApplyAgentDiffResult.result */ result: | { /** * @generated from field: agent.v1.ApplyAgentDiffSuccess success = 1; */ value: ApplyAgentDiffSuccess; case: "success"; } | { /** * @generated from field: agent.v1.ApplyAgentDiffError error = 2; */ value: ApplyAgentDiffError; case: "error"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ApplyAgentDiffResult. * Use `create(ApplyAgentDiffResultSchema)` to create a new message. */ export const ApplyAgentDiffResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 132); /** * @generated from message agent.v1.ApplyAgentDiffSuccess */ export type ApplyAgentDiffSuccess = Message<"agent.v1.ApplyAgentDiffSuccess"> & { /** * @generated from field: repeated agent.v1.AppliedAgentChange applied_changes = 1; */ appliedChanges: AppliedAgentChange[]; }; /** * Describes the message agent.v1.ApplyAgentDiffSuccess. * Use `create(ApplyAgentDiffSuccessSchema)` to create a new message. */ export const ApplyAgentDiffSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 133); /** * @generated from message agent.v1.AppliedAgentChange */ export type AppliedAgentChange = Message<"agent.v1.AppliedAgentChange"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: int32 change_type = 2; */ changeType: number; /** * @generated from field: optional string before_content = 3; */ beforeContent?: string; /** * @generated from field: optional string after_content = 4; */ afterContent?: string; /** * @generated from field: optional string error = 5; */ error?: string; /** * Detailed result message from the execution (e.g., "Successfully deleted file: path (123 bytes)") * * @generated from field: optional string message_for_model = 6; */ messageForModel?: string; }; /** * Describes the message agent.v1.AppliedAgentChange. * Use `create(AppliedAgentChangeSchema)` to create a new message. */ export const AppliedAgentChangeSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 134); /** * @generated from message agent.v1.ApplyAgentDiffError */ export type ApplyAgentDiffError = Message<"agent.v1.ApplyAgentDiffError"> & { /** * @generated from field: string error = 1; */ error: string; /** * @generated from field: repeated agent.v1.AppliedAgentChange applied_changes = 2; */ appliedChanges: AppliedAgentChange[]; }; /** * Describes the message agent.v1.ApplyAgentDiffError. * Use `create(ApplyAgentDiffErrorSchema)` to create a new message. */ export const ApplyAgentDiffErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 135); /** * @generated from message agent.v1.AskQuestionToolCall */ export type AskQuestionToolCall = Message<"agent.v1.AskQuestionToolCall"> & { /** * @generated from field: agent.v1.AskQuestionArgs args = 1; */ args?: AskQuestionArgs; /** * @generated from field: agent.v1.AskQuestionResult result = 2; */ result?: AskQuestionResult; }; /** * Describes the message agent.v1.AskQuestionToolCall. * Use `create(AskQuestionToolCallSchema)` to create a new message. */ export const AskQuestionToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 136); /** * @generated from message agent.v1.AskQuestionArgs */ export type AskQuestionArgs = Message<"agent.v1.AskQuestionArgs"> & { /** * optional form title * * @generated from field: string title = 1; */ title: string; /** * 1+ questions * * @generated from field: repeated agent.v1.AskQuestionArgs_Question questions = 2; */ questions: AskQuestionArgs_Question[]; /** * if true, return immediately with async marker instead of blocking * * @generated from field: bool run_async = 5; */ runAsync: boolean; /** * if set, indicates this is a synthetic completion for the original async tool call with this ID * * @generated from field: string async_original_tool_call_id = 6; */ asyncOriginalToolCallId: string; }; /** * Describes the message agent.v1.AskQuestionArgs. * Use `create(AskQuestionArgsSchema)` to create a new message. */ export const AskQuestionArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 137); /** * @generated from message agent.v1.AskQuestionArgs_Question */ export type AskQuestionArgs_Question = Message<"agent.v1.AskQuestionArgs_Question"> & { /** * unique, model-provided * * @generated from field: string id = 1; */ id: string; /** * the question text * * @generated from field: string prompt = 2; */ prompt: string; /** * choices * * @generated from field: repeated agent.v1.AskQuestionArgs_Option options = 3; */ options: AskQuestionArgs_Option[]; /** * multi-select vs single-select * * @generated from field: bool allow_multiple = 4; */ allowMultiple: boolean; }; /** * Describes the message agent.v1.AskQuestionArgs_Question. * Use `create(AskQuestionArgs_QuestionSchema)` to create a new message. */ export const AskQuestionArgs_QuestionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 138); /** * @generated from message agent.v1.AskQuestionArgs_Option */ export type AskQuestionArgs_Option = Message<"agent.v1.AskQuestionArgs_Option"> & { /** * stable option id * * @generated from field: string id = 1; */ id: string; /** * display text * * @generated from field: string label = 2; */ label: string; }; /** * Describes the message agent.v1.AskQuestionArgs_Option. * Use `create(AskQuestionArgs_OptionSchema)` to create a new message. */ export const AskQuestionArgs_OptionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 139); /** * Marker indicating that questions have been sent asynchronously Answers will arrive later as a separate ask_question tool call * * @generated from message agent.v1.AskQuestionAsync */ export type AskQuestionAsync = Message<"agent.v1.AskQuestionAsync"> & {}; /** * Describes the message agent.v1.AskQuestionAsync. * Use `create(AskQuestionAsyncSchema)` to create a new message. */ export const AskQuestionAsyncSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 140); /** * @generated from message agent.v1.AskQuestionResult */ export type AskQuestionResult = Message<"agent.v1.AskQuestionResult"> & { /** * @generated from oneof agent.v1.AskQuestionResult.result */ result: | { /** * @generated from field: agent.v1.AskQuestionSuccess success = 1; */ value: AskQuestionSuccess; case: "success"; } | { /** * @generated from field: agent.v1.AskQuestionError error = 2; */ value: AskQuestionError; case: "error"; } | { /** * @generated from field: agent.v1.AskQuestionRejected rejected = 3; */ value: AskQuestionRejected; case: "rejected"; } | { /** * @generated from field: agent.v1.AskQuestionAsync async = 4; */ value: AskQuestionAsync; case: "async"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.AskQuestionResult. * Use `create(AskQuestionResultSchema)` to create a new message. */ export const AskQuestionResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 141); /** * @generated from message agent.v1.AskQuestionSuccess */ export type AskQuestionSuccess = Message<"agent.v1.AskQuestionSuccess"> & { /** * @generated from field: repeated agent.v1.AskQuestionSuccess_Answer answers = 1; */ answers: AskQuestionSuccess_Answer[]; }; /** * Describes the message agent.v1.AskQuestionSuccess. * Use `create(AskQuestionSuccessSchema)` to create a new message. */ export const AskQuestionSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 142); /** * @generated from message agent.v1.AskQuestionSuccess_Answer */ export type AskQuestionSuccess_Answer = Message<"agent.v1.AskQuestionSuccess_Answer"> & { /** * @generated from field: string question_id = 1; */ questionId: string; /** * empty if unanswered * * @generated from field: repeated string selected_option_ids = 2; */ selectedOptionIds: string[]; }; /** * Describes the message agent.v1.AskQuestionSuccess_Answer. * Use `create(AskQuestionSuccess_AnswerSchema)` to create a new message. */ export const AskQuestionSuccess_AnswerSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 143); /** * @generated from message agent.v1.AskQuestionError */ export type AskQuestionError = Message<"agent.v1.AskQuestionError"> & { /** * @generated from field: string error_message = 1; */ errorMessage: string; }; /** * Describes the message agent.v1.AskQuestionError. * Use `create(AskQuestionErrorSchema)` to create a new message. */ export const AskQuestionErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 144); /** * @generated from message agent.v1.AskQuestionRejected */ export type AskQuestionRejected = Message<"agent.v1.AskQuestionRejected"> & { /** * @generated from field: string reason = 1; */ reason: string; }; /** * Describes the message agent.v1.AskQuestionRejected. * Use `create(AskQuestionRejectedSchema)` to create a new message. */ export const AskQuestionRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 145); /** * @generated from message agent.v1.BackgroundShellSpawnArgs */ export type BackgroundShellSpawnArgs = Message<"agent.v1.BackgroundShellSpawnArgs"> & { /** * @generated from field: string command = 1; */ command: string; /** * @generated from field: string working_directory = 2; */ workingDirectory: string; /** * @generated from field: string tool_call_id = 3; */ toolCallId: string; /** * @generated from field: agent.v1.ShellCommandParsingResult parsing_result = 4; */ parsingResult?: ShellCommandParsingResult; /** * @generated from field: optional agent.v1.SandboxPolicy sandbox_policy = 5; */ sandboxPolicy?: SandboxPolicy; /** * @generated from field: bool enable_write_shell_stdin_tool = 6; */ enableWriteShellStdinTool: boolean; }; /** * Describes the message agent.v1.BackgroundShellSpawnArgs. * Use `create(BackgroundShellSpawnArgsSchema)` to create a new message. */ export const BackgroundShellSpawnArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 146); /** * Result of spawning a background shell * * @generated from message agent.v1.BackgroundShellSpawnResult */ export type BackgroundShellSpawnResult = Message<"agent.v1.BackgroundShellSpawnResult"> & { /** * @generated from oneof agent.v1.BackgroundShellSpawnResult.result */ result: | { /** * @generated from field: agent.v1.BackgroundShellSpawnSuccess success = 1; */ value: BackgroundShellSpawnSuccess; case: "success"; } | { /** * @generated from field: agent.v1.BackgroundShellSpawnError error = 2; */ value: BackgroundShellSpawnError; case: "error"; } | { /** * @generated from field: agent.v1.ShellRejected rejected = 3; */ value: ShellRejected; case: "rejected"; } | { /** * @generated from field: agent.v1.ShellPermissionDenied permission_denied = 4; */ value: ShellPermissionDenied; case: "permissionDenied"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.BackgroundShellSpawnResult. * Use `create(BackgroundShellSpawnResultSchema)` to create a new message. */ export const BackgroundShellSpawnResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 147); /** * @generated from message agent.v1.BackgroundShellSpawnSuccess */ export type BackgroundShellSpawnSuccess = Message<"agent.v1.BackgroundShellSpawnSuccess"> & { /** * @generated from field: uint32 shell_id = 1; */ shellId: number; /** * @generated from field: string command = 2; */ command: string; /** * @generated from field: string working_directory = 3; */ workingDirectory: string; /** * Process ID of the spawned shell * * @generated from field: optional uint32 pid = 4; */ pid?: number; }; /** * Describes the message agent.v1.BackgroundShellSpawnSuccess. * Use `create(BackgroundShellSpawnSuccessSchema)` to create a new message. */ export const BackgroundShellSpawnSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 148); /** * @generated from message agent.v1.BackgroundShellSpawnError */ export type BackgroundShellSpawnError = Message<"agent.v1.BackgroundShellSpawnError"> & { /** * @generated from field: string command = 1; */ command: string; /** * @generated from field: string working_directory = 2; */ workingDirectory: string; /** * @generated from field: string error = 3; */ error: string; }; /** * Describes the message agent.v1.BackgroundShellSpawnError. * Use `create(BackgroundShellSpawnErrorSchema)` to create a new message. */ export const BackgroundShellSpawnErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 149); /** * @generated from message agent.v1.WriteShellStdinArgs */ export type WriteShellStdinArgs = Message<"agent.v1.WriteShellStdinArgs"> & { /** * @generated from field: uint32 shell_id = 1; */ shellId: number; /** * @generated from field: string chars = 2; */ chars: string; }; /** * Describes the message agent.v1.WriteShellStdinArgs. * Use `create(WriteShellStdinArgsSchema)` to create a new message. */ export const WriteShellStdinArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 150); /** * @generated from message agent.v1.WriteShellStdinResult */ export type WriteShellStdinResult = Message<"agent.v1.WriteShellStdinResult"> & { /** * @generated from oneof agent.v1.WriteShellStdinResult.result */ result: | { /** * @generated from field: agent.v1.WriteShellStdinSuccess success = 1; */ value: WriteShellStdinSuccess; case: "success"; } | { /** * @generated from field: agent.v1.WriteShellStdinError error = 2; */ value: WriteShellStdinError; case: "error"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.WriteShellStdinResult. * Use `create(WriteShellStdinResultSchema)` to create a new message. */ export const WriteShellStdinResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 151); /** * @generated from message agent.v1.WriteShellStdinSuccess */ export type WriteShellStdinSuccess = Message<"agent.v1.WriteShellStdinSuccess"> & { /** * @generated from field: uint32 shell_id = 1; */ shellId: number; /** * @generated from field: uint32 terminal_file_length_before_input_written = 2; */ terminalFileLengthBeforeInputWritten: number; }; /** * Describes the message agent.v1.WriteShellStdinSuccess. * Use `create(WriteShellStdinSuccessSchema)` to create a new message. */ export const WriteShellStdinSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 152); /** * @generated from message agent.v1.WriteShellStdinError */ export type WriteShellStdinError = Message<"agent.v1.WriteShellStdinError"> & { /** * @generated from field: string error = 1; */ error: string; }; /** * Describes the message agent.v1.WriteShellStdinError. * Use `create(WriteShellStdinErrorSchema)` to create a new message. */ export const WriteShellStdinErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 153); /** * @generated from message agent.v1.Coordinate */ export type Coordinate = Message<"agent.v1.Coordinate"> & { /** * @generated from field: int32 x = 1; */ x: number; /** * @generated from field: int32 y = 2; */ y: number; }; /** * Describes the message agent.v1.Coordinate. * Use `create(CoordinateSchema)` to create a new message. */ export const CoordinateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 154); /** * Arguments for the computer-use tool * * @generated from message agent.v1.ComputerUseArgs */ export type ComputerUseArgs = Message<"agent.v1.ComputerUseArgs"> & { /** * @generated from field: string tool_call_id = 1; */ toolCallId: string; /** * @generated from field: repeated agent.v1.ComputerUseAction actions = 2; */ actions: ComputerUseAction[]; }; /** * Describes the message agent.v1.ComputerUseArgs. * Use `create(ComputerUseArgsSchema)` to create a new message. */ export const ComputerUseArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 155); /** * A single computer-use action. This is our internal canonical representation. Provider-specific formats are converted to this by adapters. * * @generated from message agent.v1.ComputerUseAction */ export type ComputerUseAction = Message<"agent.v1.ComputerUseAction"> & { /** * @generated from oneof agent.v1.ComputerUseAction.action */ action: | { /** * @generated from field: agent.v1.MouseMoveAction mouse_move = 1; */ value: MouseMoveAction; case: "mouseMove"; } | { /** * @generated from field: agent.v1.ClickAction click = 2; */ value: ClickAction; case: "click"; } | { /** * @generated from field: agent.v1.MouseDownAction mouse_down = 3; */ value: MouseDownAction; case: "mouseDown"; } | { /** * @generated from field: agent.v1.MouseUpAction mouse_up = 4; */ value: MouseUpAction; case: "mouseUp"; } | { /** * @generated from field: agent.v1.DragAction drag = 5; */ value: DragAction; case: "drag"; } | { /** * @generated from field: agent.v1.ScrollAction scroll = 6; */ value: ScrollAction; case: "scroll"; } | { /** * @generated from field: agent.v1.TypeAction type = 7; */ value: TypeAction; case: "type"; } | { /** * @generated from field: agent.v1.KeyAction key = 8; */ value: KeyAction; case: "key"; } | { /** * @generated from field: agent.v1.WaitAction wait = 9; */ value: WaitAction; case: "wait"; } | { /** * @generated from field: agent.v1.ScreenshotAction screenshot = 10; */ value: ScreenshotAction; case: "screenshot"; } | { /** * @generated from field: agent.v1.CursorPositionAction cursor_position = 11; */ value: CursorPositionAction; case: "cursorPosition"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ComputerUseAction. * Use `create(ComputerUseActionSchema)` to create a new message. */ export const ComputerUseActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 156); /** * Move mouse to coordinate (required) * * @generated from message agent.v1.MouseMoveAction */ export type MouseMoveAction = Message<"agent.v1.MouseMoveAction"> & { /** * @generated from field: agent.v1.Coordinate coordinate = 1; */ coordinate?: Coordinate; }; /** * Describes the message agent.v1.MouseMoveAction. * Use `create(MouseMoveActionSchema)` to create a new message. */ export const MouseMoveActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 157); /** * Unified click action - coordinate: optional, clicks at current cursor if omitted - button: which mouse button (default: LEFT) - count: click count (1=single, 2=double, 3=triple, default: 1) - modifier_keys: optional, held during click (e.g., "ctrl", "shift", "ctrl+shift") * * @generated from message agent.v1.ClickAction */ export type ClickAction = Message<"agent.v1.ClickAction"> & { /** * @generated from field: optional agent.v1.Coordinate coordinate = 1; */ coordinate?: Coordinate; /** * @generated from field: int32 button = 2; */ button: number; /** * @generated from field: int32 count = 3; */ count: number; /** * @generated from field: optional string modifier_keys = 4; */ modifierKeys?: string; }; /** * Describes the message agent.v1.ClickAction. * Use `create(ClickActionSchema)` to create a new message. */ export const ClickActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 158); /** * Press mouse button down (for fine-grained drag control) * * @generated from message agent.v1.MouseDownAction */ export type MouseDownAction = Message<"agent.v1.MouseDownAction"> & { /** * @generated from field: int32 button = 1; */ button: number; }; /** * Describes the message agent.v1.MouseDownAction. * Use `create(MouseDownActionSchema)` to create a new message. */ export const MouseDownActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 159); /** * Release mouse button (for fine-grained drag control) * * @generated from message agent.v1.MouseUpAction */ export type MouseUpAction = Message<"agent.v1.MouseUpAction"> & { /** * @generated from field: int32 button = 1; */ button: number; }; /** * Describes the message agent.v1.MouseUpAction. * Use `create(MouseUpActionSchema)` to create a new message. */ export const MouseUpActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 160); /** * Drag action - path of coordinates (at least 2 points: [start, ..., end]) * * @generated from message agent.v1.DragAction */ export type DragAction = Message<"agent.v1.DragAction"> & { /** * @generated from field: repeated agent.v1.Coordinate path = 1; */ path: Coordinate[]; /** * @generated from field: int32 button = 2; */ button: number; }; /** * Describes the message agent.v1.DragAction. * Use `create(DragActionSchema)` to create a new message. */ export const DragActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 161); /** * Scroll action - coordinate: optional, scrolls at current cursor if omitted - direction: scroll direction (required) - amount: number of scroll "clicks" (default: 3) - modifier_keys: optional, held during scroll (e.g., "ctrl" for zoom) * * @generated from message agent.v1.ScrollAction */ export type ScrollAction = Message<"agent.v1.ScrollAction"> & { /** * @generated from field: optional agent.v1.Coordinate coordinate = 1; */ coordinate?: Coordinate; /** * @generated from field: int32 direction = 2; */ direction: number; /** * @generated from field: int32 amount = 3; */ amount: number; /** * @generated from field: optional string modifier_keys = 4; */ modifierKeys?: string; }; /** * Describes the message agent.v1.ScrollAction. * Use `create(ScrollActionSchema)` to create a new message. */ export const ScrollActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 162); /** * Type text * * @generated from message agent.v1.TypeAction */ export type TypeAction = Message<"agent.v1.TypeAction"> & { /** * @generated from field: string text = 1; */ text: string; }; /** * Describes the message agent.v1.TypeAction. * Use `create(TypeActionSchema)` to create a new message. */ export const TypeActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 163); /** * Press key or key combination (xdotool-style: "ctrl+a", "Return", "Alt+Left") If hold_duration_ms is set, holds the key for that duration * * @generated from message agent.v1.KeyAction */ export type KeyAction = Message<"agent.v1.KeyAction"> & { /** * @generated from field: string key = 1; */ key: string; /** * @generated from field: optional int32 hold_duration_ms = 2; */ holdDurationMs?: number; }; /** * Describes the message agent.v1.KeyAction. * Use `create(KeyActionSchema)` to create a new message. */ export const KeyActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 164); /** * Wait for a duration * * @generated from message agent.v1.WaitAction */ export type WaitAction = Message<"agent.v1.WaitAction"> & { /** * @generated from field: int32 duration_ms = 1; */ durationMs: number; }; /** * Describes the message agent.v1.WaitAction. * Use `create(WaitActionSchema)` to create a new message. */ export const WaitActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 165); /** * Take a screenshot * * @generated from message agent.v1.ScreenshotAction */ export type ScreenshotAction = Message<"agent.v1.ScreenshotAction"> & {}; /** * Describes the message agent.v1.ScreenshotAction. * Use `create(ScreenshotActionSchema)` to create a new message. */ export const ScreenshotActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 166); /** * Get current cursor position * * @generated from message agent.v1.CursorPositionAction */ export type CursorPositionAction = Message<"agent.v1.CursorPositionAction"> & {}; /** * Describes the message agent.v1.CursorPositionAction. * Use `create(CursorPositionActionSchema)` to create a new message. */ export const CursorPositionActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 167); /** * Result of computer-use execution * * @generated from message agent.v1.ComputerUseResult */ export type ComputerUseResult = Message<"agent.v1.ComputerUseResult"> & { /** * @generated from oneof agent.v1.ComputerUseResult.result */ result: | { /** * @generated from field: agent.v1.ComputerUseSuccess success = 1; */ value: ComputerUseSuccess; case: "success"; } | { /** * @generated from field: agent.v1.ComputerUseError error = 2; */ value: ComputerUseError; case: "error"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ComputerUseResult. * Use `create(ComputerUseResultSchema)` to create a new message. */ export const ComputerUseResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 168); /** * @generated from message agent.v1.ComputerUseSuccess */ export type ComputerUseSuccess = Message<"agent.v1.ComputerUseSuccess"> & { /** * @generated from field: int32 action_count = 1; */ actionCount: number; /** * @generated from field: int32 duration_ms = 2; */ durationMs: number; /** * Base64 WebP at API resolution * * @generated from field: optional string screenshot = 3; */ screenshot?: string; /** * @generated from field: optional string log = 4; */ log?: string; /** * @generated from field: optional string screenshot_path = 5; */ screenshotPath?: string; /** * In API resolution * * @generated from field: optional agent.v1.Coordinate cursor_position = 6; */ cursorPosition?: Coordinate; }; /** * Describes the message agent.v1.ComputerUseSuccess. * Use `create(ComputerUseSuccessSchema)` to create a new message. */ export const ComputerUseSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 169); /** * @generated from message agent.v1.ComputerUseError */ export type ComputerUseError = Message<"agent.v1.ComputerUseError"> & { /** * @generated from field: string error = 1; */ error: string; /** * @generated from field: int32 action_count = 2; */ actionCount: number; /** * @generated from field: int32 duration_ms = 3; */ durationMs: number; /** * @generated from field: optional string log = 4; */ log?: string; /** * Base64 WebP of screen state at error time * * @generated from field: optional string screenshot = 5; */ screenshot?: string; /** * Path where screenshot was saved * * @generated from field: optional string screenshot_path = 6; */ screenshotPath?: string; }; /** * Describes the message agent.v1.ComputerUseError. * Use `create(ComputerUseErrorSchema)` to create a new message. */ export const ComputerUseErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 170); /** * @generated from message agent.v1.ComputerUseToolCall */ export type ComputerUseToolCall = Message<"agent.v1.ComputerUseToolCall"> & { /** * @generated from field: agent.v1.ComputerUseArgs args = 1; */ args?: ComputerUseArgs; /** * @generated from field: agent.v1.ComputerUseResult result = 2; */ result?: ComputerUseResult; }; /** * Describes the message agent.v1.ComputerUseToolCall. * Use `create(ComputerUseToolCallSchema)` to create a new message. */ export const ComputerUseToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 171); /** * @generated from message agent.v1.CreatePlanToolCall */ export type CreatePlanToolCall = Message<"agent.v1.CreatePlanToolCall"> & { /** * @generated from field: agent.v1.CreatePlanArgs args = 1; */ args?: CreatePlanArgs; /** * @generated from field: agent.v1.CreatePlanResult result = 2; */ result?: CreatePlanResult; }; /** * Describes the message agent.v1.CreatePlanToolCall. * Use `create(CreatePlanToolCallSchema)` to create a new message. */ export const CreatePlanToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 172); /** * A phase groups related todos together for project-mode plans * * @generated from message agent.v1.Phase */ export type Phase = Message<"agent.v1.Phase"> & { /** * @generated from field: string name = 1; */ name: string; /** * @generated from field: repeated agent.v1.TodoItem todos = 2; */ todos: TodoItem[]; }; /** * Describes the message agent.v1.Phase. * Use `create(PhaseSchema)` to create a new message. */ export const PhaseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 173); /** * @generated from message agent.v1.CreatePlanArgs */ export type CreatePlanArgs = Message<"agent.v1.CreatePlanArgs"> & { /** * @generated from field: string plan = 1; */ plan: string; /** * @generated from field: repeated agent.v1.TodoItem todos = 2; */ todos: TodoItem[]; /** * @generated from field: string overview = 3; */ overview: string; /** * @generated from field: string name = 4; */ name: string; /** * When true, uses phases instead of flat todos (mutually exclusive) * * @generated from field: bool is_project = 5; */ isProject: boolean; /** * Implementation phases (only valid when is_project=true) * * @generated from field: repeated agent.v1.Phase phases = 6; */ phases: Phase[]; }; /** * Describes the message agent.v1.CreatePlanArgs. * Use `create(CreatePlanArgsSchema)` to create a new message. */ export const CreatePlanArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 174); /** * @generated from message agent.v1.CreatePlanResult */ export type CreatePlanResult = Message<"agent.v1.CreatePlanResult"> & { /** * URI of the plan file (returned when file_based_plan_edits is enabled) * * @generated from field: string plan_uri = 3; */ planUri: string; /** * @generated from oneof agent.v1.CreatePlanResult.result */ result: | { /** * @generated from field: agent.v1.CreatePlanSuccess success = 1; */ value: CreatePlanSuccess; case: "success"; } | { /** * @generated from field: agent.v1.CreatePlanError error = 2; */ value: CreatePlanError; case: "error"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.CreatePlanResult. * Use `create(CreatePlanResultSchema)` to create a new message. */ export const CreatePlanResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 175); /** * @generated from message agent.v1.CreatePlanSuccess */ export type CreatePlanSuccess = Message<"agent.v1.CreatePlanSuccess"> & {}; /** * Describes the message agent.v1.CreatePlanSuccess. * Use `create(CreatePlanSuccessSchema)` to create a new message. */ export const CreatePlanSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 176); /** * @generated from message agent.v1.CreatePlanError */ export type CreatePlanError = Message<"agent.v1.CreatePlanError"> & { /** * @generated from field: string error = 1; */ error: string; }; /** * Describes the message agent.v1.CreatePlanError. * Use `create(CreatePlanErrorSchema)` to create a new message. */ export const CreatePlanErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 177); /** * Query sent from server to client to create a plan file * * @generated from message agent.v1.CreatePlanRequestQuery */ export type CreatePlanRequestQuery = Message<"agent.v1.CreatePlanRequestQuery"> & { /** * @generated from field: agent.v1.CreatePlanArgs args = 1; */ args?: CreatePlanArgs; /** * @generated from field: string tool_call_id = 2; */ toolCallId: string; }; /** * Describes the message agent.v1.CreatePlanRequestQuery. * Use `create(CreatePlanRequestQuerySchema)` to create a new message. */ export const CreatePlanRequestQuerySchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 178); /** * Response from client with the created plan URI * * @generated from message agent.v1.CreatePlanRequestResponse */ export type CreatePlanRequestResponse = Message<"agent.v1.CreatePlanRequestResponse"> & { /** * @generated from field: agent.v1.CreatePlanResult result = 1; */ result?: CreatePlanResult; }; /** * Describes the message agent.v1.CreatePlanRequestResponse. * Use `create(CreatePlanRequestResponseSchema)` to create a new message. */ export const CreatePlanRequestResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 179); /** * @generated from message agent.v1.CursorRuleTypeGlobal */ export type CursorRuleTypeGlobal = Message<"agent.v1.CursorRuleTypeGlobal"> & {}; /** * Describes the message agent.v1.CursorRuleTypeGlobal. * Use `create(CursorRuleTypeGlobalSchema)` to create a new message. */ export const CursorRuleTypeGlobalSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 180); /** * @generated from message agent.v1.CursorRuleTypeFileGlobs */ export type CursorRuleTypeFileGlobs = Message<"agent.v1.CursorRuleTypeFileGlobs"> & { /** * @generated from field: repeated string globs = 1; */ globs: string[]; }; /** * Describes the message agent.v1.CursorRuleTypeFileGlobs. * Use `create(CursorRuleTypeFileGlobsSchema)` to create a new message. */ export const CursorRuleTypeFileGlobsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 181); /** * @generated from message agent.v1.CursorRuleTypeAgentFetched */ export type CursorRuleTypeAgentFetched = Message<"agent.v1.CursorRuleTypeAgentFetched"> & { /** * @generated from field: string description = 1; */ description: string; }; /** * Describes the message agent.v1.CursorRuleTypeAgentFetched. * Use `create(CursorRuleTypeAgentFetchedSchema)` to create a new message. */ export const CursorRuleTypeAgentFetchedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 182); /** * @generated from message agent.v1.CursorRuleTypeManuallyAttached */ export type CursorRuleTypeManuallyAttached = Message<"agent.v1.CursorRuleTypeManuallyAttached"> & {}; /** * Describes the message agent.v1.CursorRuleTypeManuallyAttached. * Use `create(CursorRuleTypeManuallyAttachedSchema)` to create a new message. */ export const CursorRuleTypeManuallyAttachedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 183); /** * @generated from message agent.v1.CursorRuleType */ export type CursorRuleType = Message<"agent.v1.CursorRuleType"> & { /** * @generated from oneof agent.v1.CursorRuleType.type */ type: | { /** * @generated from field: agent.v1.CursorRuleTypeGlobal global = 1; */ value: CursorRuleTypeGlobal; case: "global"; } | { /** * @generated from field: agent.v1.CursorRuleTypeFileGlobs file_globbed = 2; */ value: CursorRuleTypeFileGlobs; case: "fileGlobbed"; } | { /** * @generated from field: agent.v1.CursorRuleTypeAgentFetched agent_fetched = 3; */ value: CursorRuleTypeAgentFetched; case: "agentFetched"; } | { /** * @generated from field: agent.v1.CursorRuleTypeManuallyAttached manually_attached = 4; */ value: CursorRuleTypeManuallyAttached; case: "manuallyAttached"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.CursorRuleType. * Use `create(CursorRuleTypeSchema)` to create a new message. */ export const CursorRuleTypeSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 184); /** * @generated from message agent.v1.CursorRule */ export type CursorRule = Message<"agent.v1.CursorRule"> & { /** * absolute path to the .mdc file * * @generated from field: string full_path = 1; */ fullPath: string; /** * rule body, trimmed to reasonable size if needed by client * * @generated from field: string content = 2; */ content: string; /** * classification of rule * * @generated from field: agent.v1.CursorRuleType type = 3; */ type?: CursorRuleType; /** * source of the rule * * @generated from field: int32 source = 4; */ source: number; /** * Git remote origin URL for the repository containing this rule, if available. Normalized to host/path format (e.g., "github.com/owner/repo"). * * @generated from field: optional string git_remote_origin = 5; */ gitRemoteOrigin?: string; /** * @generated from field: optional string parse_error = 6; */ parseError?: string; }; /** * Describes the message agent.v1.CursorRule. * Use `create(CursorRuleSchema)` to create a new message. */ export const CursorRuleSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 185); /** * @generated from message agent.v1.DeleteArgs */ export type DeleteArgs = Message<"agent.v1.DeleteArgs"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: string tool_call_id = 2; */ toolCallId: string; }; /** * Describes the message agent.v1.DeleteArgs. * Use `create(DeleteArgsSchema)` to create a new message. */ export const DeleteArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 186); /** * @generated from message agent.v1.DeleteResult */ export type DeleteResult = Message<"agent.v1.DeleteResult"> & { /** * @generated from oneof agent.v1.DeleteResult.result */ result: | { /** * @generated from field: agent.v1.DeleteSuccess success = 1; */ value: DeleteSuccess; case: "success"; } | { /** * @generated from field: agent.v1.DeleteFileNotFound file_not_found = 2; */ value: DeleteFileNotFound; case: "fileNotFound"; } | { /** * @generated from field: agent.v1.DeleteNotFile not_file = 3; */ value: DeleteNotFile; case: "notFile"; } | { /** * @generated from field: agent.v1.DeletePermissionDenied permission_denied = 4; */ value: DeletePermissionDenied; case: "permissionDenied"; } | { /** * @generated from field: agent.v1.DeleteFileBusy file_busy = 5; */ value: DeleteFileBusy; case: "fileBusy"; } | { /** * @generated from field: agent.v1.DeleteRejected rejected = 6; */ value: DeleteRejected; case: "rejected"; } | { /** * @generated from field: agent.v1.DeleteError error = 7; */ value: DeleteError; case: "error"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.DeleteResult. * Use `create(DeleteResultSchema)` to create a new message. */ export const DeleteResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 187); /** * @generated from message agent.v1.DeleteSuccess */ export type DeleteSuccess = Message<"agent.v1.DeleteSuccess"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: string deleted_file = 2; */ deletedFile: string; /** * @generated from field: int64 file_size = 3; */ fileSize: bigint; /** * @generated from field: string prev_content = 4; */ prevContent: string; }; /** * Describes the message agent.v1.DeleteSuccess. * Use `create(DeleteSuccessSchema)` to create a new message. */ export const DeleteSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 188); /** * @generated from message agent.v1.DeleteFileNotFound */ export type DeleteFileNotFound = Message<"agent.v1.DeleteFileNotFound"> & { /** * @generated from field: string path = 1; */ path: string; }; /** * Describes the message agent.v1.DeleteFileNotFound. * Use `create(DeleteFileNotFoundSchema)` to create a new message. */ export const DeleteFileNotFoundSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 189); /** * @generated from message agent.v1.DeleteNotFile */ export type DeleteNotFile = Message<"agent.v1.DeleteNotFile"> & { /** * @generated from field: string path = 1; */ path: string; /** * "directory" or "other" * * @generated from field: string actual_type = 2; */ actualType: string; }; /** * Describes the message agent.v1.DeleteNotFile. * Use `create(DeleteNotFileSchema)` to create a new message. */ export const DeleteNotFileSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 190); /** * @generated from message agent.v1.DeletePermissionDenied */ export type DeletePermissionDenied = Message<"agent.v1.DeletePermissionDenied"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: string client_visible_error = 2; */ clientVisibleError: string; /** * @generated from field: bool is_readonly = 3; */ isReadonly: boolean; }; /** * Describes the message agent.v1.DeletePermissionDenied. * Use `create(DeletePermissionDeniedSchema)` to create a new message. */ export const DeletePermissionDeniedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 191); /** * @generated from message agent.v1.DeleteFileBusy */ export type DeleteFileBusy = Message<"agent.v1.DeleteFileBusy"> & { /** * @generated from field: string path = 1; */ path: string; }; /** * Describes the message agent.v1.DeleteFileBusy. * Use `create(DeleteFileBusySchema)` to create a new message. */ export const DeleteFileBusySchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 192); /** * @generated from message agent.v1.DeleteRejected */ export type DeleteRejected = Message<"agent.v1.DeleteRejected"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: string reason = 2; */ reason: string; }; /** * Describes the message agent.v1.DeleteRejected. * Use `create(DeleteRejectedSchema)` to create a new message. */ export const DeleteRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 193); /** * @generated from message agent.v1.DeleteError */ export type DeleteError = Message<"agent.v1.DeleteError"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: string error = 2; */ error: string; }; /** * Describes the message agent.v1.DeleteError. * Use `create(DeleteErrorSchema)` to create a new message. */ export const DeleteErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 194); /** * @generated from message agent.v1.DeleteToolCall */ export type DeleteToolCall = Message<"agent.v1.DeleteToolCall"> & { /** * @generated from field: agent.v1.DeleteArgs args = 1; */ args?: DeleteArgs; /** * @generated from field: agent.v1.DeleteResult result = 2; */ result?: DeleteResult; }; /** * Describes the message agent.v1.DeleteToolCall. * Use `create(DeleteToolCallSchema)` to create a new message. */ export const DeleteToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 195); /** * @generated from message agent.v1.DiagnosticsArgs */ export type DiagnosticsArgs = Message<"agent.v1.DiagnosticsArgs"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: string tool_call_id = 2; */ toolCallId: string; }; /** * Describes the message agent.v1.DiagnosticsArgs. * Use `create(DiagnosticsArgsSchema)` to create a new message. */ export const DiagnosticsArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 196); /** * @generated from message agent.v1.DiagnosticsResult */ export type DiagnosticsResult = Message<"agent.v1.DiagnosticsResult"> & { /** * @generated from oneof agent.v1.DiagnosticsResult.result */ result: | { /** * @generated from field: agent.v1.DiagnosticsSuccess success = 1; */ value: DiagnosticsSuccess; case: "success"; } | { /** * @generated from field: agent.v1.DiagnosticsError error = 2; */ value: DiagnosticsError; case: "error"; } | { /** * @generated from field: agent.v1.DiagnosticsRejected rejected = 3; */ value: DiagnosticsRejected; case: "rejected"; } | { /** * @generated from field: agent.v1.DiagnosticsFileNotFound file_not_found = 4; */ value: DiagnosticsFileNotFound; case: "fileNotFound"; } | { /** * @generated from field: agent.v1.DiagnosticsPermissionDenied permission_denied = 5; */ value: DiagnosticsPermissionDenied; case: "permissionDenied"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.DiagnosticsResult. * Use `create(DiagnosticsResultSchema)` to create a new message. */ export const DiagnosticsResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 197); /** * @generated from message agent.v1.DiagnosticsSuccess */ export type DiagnosticsSuccess = Message<"agent.v1.DiagnosticsSuccess"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: repeated agent.v1.Diagnostic diagnostics = 2; */ diagnostics: Diagnostic[]; /** * @generated from field: int32 total_diagnostics = 3; */ totalDiagnostics: number; }; /** * Describes the message agent.v1.DiagnosticsSuccess. * Use `create(DiagnosticsSuccessSchema)` to create a new message. */ export const DiagnosticsSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 198); /** * @generated from message agent.v1.Diagnostic */ export type Diagnostic = Message<"agent.v1.Diagnostic"> & { /** * @generated from field: int32 severity = 1; */ severity: number; /** * @generated from field: agent.v1.Range range = 2; */ range?: Range; /** * @generated from field: string message = 3; */ message: string; /** * @generated from field: string source = 4; */ source: string; /** * @generated from field: string code = 5; */ code: string; /** * @generated from field: bool is_stale = 6; */ isStale: boolean; }; /** * Describes the message agent.v1.Diagnostic. * Use `create(DiagnosticSchema)` to create a new message. */ export const DiagnosticSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 199); /** * @generated from message agent.v1.DiagnosticsError */ export type DiagnosticsError = Message<"agent.v1.DiagnosticsError"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: string error = 2; */ error: string; }; /** * Describes the message agent.v1.DiagnosticsError. * Use `create(DiagnosticsErrorSchema)` to create a new message. */ export const DiagnosticsErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 200); /** * @generated from message agent.v1.DiagnosticsRejected */ export type DiagnosticsRejected = Message<"agent.v1.DiagnosticsRejected"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: string reason = 2; */ reason: string; }; /** * Describes the message agent.v1.DiagnosticsRejected. * Use `create(DiagnosticsRejectedSchema)` to create a new message. */ export const DiagnosticsRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 201); /** * @generated from message agent.v1.DiagnosticsFileNotFound */ export type DiagnosticsFileNotFound = Message<"agent.v1.DiagnosticsFileNotFound"> & { /** * @generated from field: string path = 1; */ path: string; }; /** * Describes the message agent.v1.DiagnosticsFileNotFound. * Use `create(DiagnosticsFileNotFoundSchema)` to create a new message. */ export const DiagnosticsFileNotFoundSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 202); /** * @generated from message agent.v1.DiagnosticsPermissionDenied */ export type DiagnosticsPermissionDenied = Message<"agent.v1.DiagnosticsPermissionDenied"> & { /** * @generated from field: string path = 1; */ path: string; }; /** * Describes the message agent.v1.DiagnosticsPermissionDenied. * Use `create(DiagnosticsPermissionDeniedSchema)` to create a new message. */ export const DiagnosticsPermissionDeniedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 203); /** * @generated from message agent.v1.EditArgs */ export type EditArgs = Message<"agent.v1.EditArgs"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: optional string stream_content = 6; */ streamContent?: string; }; /** * Describes the message agent.v1.EditArgs. * Use `create(EditArgsSchema)` to create a new message. */ export const EditArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 204); /** * @generated from message agent.v1.EditResult */ export type EditResult = Message<"agent.v1.EditResult"> & { /** * @generated from oneof agent.v1.EditResult.result */ result: | { /** * @generated from field: agent.v1.EditSuccess success = 1; */ value: EditSuccess; case: "success"; } | { /** * @generated from field: agent.v1.EditFileNotFound file_not_found = 2; */ value: EditFileNotFound; case: "fileNotFound"; } | { /** * @generated from field: agent.v1.EditReadPermissionDenied read_permission_denied = 3; */ value: EditReadPermissionDenied; case: "readPermissionDenied"; } | { /** * @generated from field: agent.v1.EditWritePermissionDenied write_permission_denied = 4; */ value: EditWritePermissionDenied; case: "writePermissionDenied"; } | { /** * @generated from field: agent.v1.EditRejected rejected = 6; */ value: EditRejected; case: "rejected"; } | { /** * @generated from field: agent.v1.EditError error = 7; */ value: EditError; case: "error"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.EditResult. * Use `create(EditResultSchema)` to create a new message. */ export const EditResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 205); /** * @generated from message agent.v1.EditSuccess */ export type EditSuccess = Message<"agent.v1.EditSuccess"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: optional int32 lines_added = 3; */ linesAdded?: number; /** * @generated from field: optional int32 lines_removed = 4; */ linesRemoved?: number; /** * Concatenated chunk diff strings separated by "\n...\n" * * @generated from field: optional string diff_string = 5; */ diffString?: string; /** * undefined if file didn't exist before the edit * * @generated from field: optional string before_full_file_content = 6; */ beforeFullFileContent?: string; /** * @generated from field: string after_full_file_content = 7; */ afterFullFileContent: string; /** * Formatted message for display to model (resultForModel from EditTransformResult) * * @generated from field: optional string message = 8; */ message?: string; }; /** * Describes the message agent.v1.EditSuccess. * Use `create(EditSuccessSchema)` to create a new message. */ export const EditSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 206); /** * @generated from message agent.v1.EditFileNotFound */ export type EditFileNotFound = Message<"agent.v1.EditFileNotFound"> & { /** * @generated from field: string path = 1; */ path: string; }; /** * Describes the message agent.v1.EditFileNotFound. * Use `create(EditFileNotFoundSchema)` to create a new message. */ export const EditFileNotFoundSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 207); /** * @generated from message agent.v1.EditReadPermissionDenied */ export type EditReadPermissionDenied = Message<"agent.v1.EditReadPermissionDenied"> & { /** * @generated from field: string path = 1; */ path: string; }; /** * Describes the message agent.v1.EditReadPermissionDenied. * Use `create(EditReadPermissionDeniedSchema)` to create a new message. */ export const EditReadPermissionDeniedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 208); /** * @generated from message agent.v1.EditWritePermissionDenied */ export type EditWritePermissionDenied = Message<"agent.v1.EditWritePermissionDenied"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: string error = 2; */ error: string; /** * @generated from field: bool is_readonly = 3; */ isReadonly: boolean; }; /** * Describes the message agent.v1.EditWritePermissionDenied. * Use `create(EditWritePermissionDeniedSchema)` to create a new message. */ export const EditWritePermissionDeniedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 209); /** * @generated from message agent.v1.EditRejected */ export type EditRejected = Message<"agent.v1.EditRejected"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: string reason = 2; */ reason: string; }; /** * Describes the message agent.v1.EditRejected. * Use `create(EditRejectedSchema)` to create a new message. */ export const EditRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 210); /** * @generated from message agent.v1.EditError */ export type EditError = Message<"agent.v1.EditError"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: string error = 2; */ error: string; /** * @generated from field: optional string model_visible_error = 5; */ modelVisibleError?: string; }; /** * Describes the message agent.v1.EditError. * Use `create(EditErrorSchema)` to create a new message. */ export const EditErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 211); /** * @generated from message agent.v1.EditToolCall */ export type EditToolCall = Message<"agent.v1.EditToolCall"> & { /** * @generated from field: agent.v1.EditArgs args = 1; */ args?: EditArgs; /** * @generated from field: agent.v1.EditResult result = 2; */ result?: EditResult; }; /** * Describes the message agent.v1.EditToolCall. * Use `create(EditToolCallSchema)` to create a new message. */ export const EditToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 212); /** * @generated from message agent.v1.EditToolCallDelta */ export type EditToolCallDelta = Message<"agent.v1.EditToolCallDelta"> & { /** * @generated from field: string stream_content_delta = 1; */ streamContentDelta: string; }; /** * Describes the message agent.v1.EditToolCallDelta. * Use `create(EditToolCallDeltaSchema)` to create a new message. */ export const EditToolCallDeltaSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 213); /** * @generated from message agent.v1.ExaFetchArgs */ export type ExaFetchArgs = Message<"agent.v1.ExaFetchArgs"> & { /** * @generated from field: repeated string ids = 1; */ ids: string[]; /** * @generated from field: string tool_call_id = 2; */ toolCallId: string; }; /** * Describes the message agent.v1.ExaFetchArgs. * Use `create(ExaFetchArgsSchema)` to create a new message. */ export const ExaFetchArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 214); /** * @generated from message agent.v1.ExaFetchResult */ export type ExaFetchResult = Message<"agent.v1.ExaFetchResult"> & { /** * @generated from oneof agent.v1.ExaFetchResult.result */ result: | { /** * @generated from field: agent.v1.ExaFetchSuccess success = 1; */ value: ExaFetchSuccess; case: "success"; } | { /** * @generated from field: agent.v1.ExaFetchError error = 2; */ value: ExaFetchError; case: "error"; } | { /** * @generated from field: agent.v1.ExaFetchRejected rejected = 3; */ value: ExaFetchRejected; case: "rejected"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ExaFetchResult. * Use `create(ExaFetchResultSchema)` to create a new message. */ export const ExaFetchResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 215); /** * @generated from message agent.v1.ExaFetchSuccess */ export type ExaFetchSuccess = Message<"agent.v1.ExaFetchSuccess"> & { /** * @generated from field: repeated agent.v1.ExaFetchContent contents = 1; */ contents: ExaFetchContent[]; }; /** * Describes the message agent.v1.ExaFetchSuccess. * Use `create(ExaFetchSuccessSchema)` to create a new message. */ export const ExaFetchSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 216); /** * @generated from message agent.v1.ExaFetchError */ export type ExaFetchError = Message<"agent.v1.ExaFetchError"> & { /** * @generated from field: string error = 1; */ error: string; }; /** * Describes the message agent.v1.ExaFetchError. * Use `create(ExaFetchErrorSchema)` to create a new message. */ export const ExaFetchErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 217); /** * @generated from message agent.v1.ExaFetchRejected */ export type ExaFetchRejected = Message<"agent.v1.ExaFetchRejected"> & { /** * @generated from field: string reason = 1; */ reason: string; }; /** * Describes the message agent.v1.ExaFetchRejected. * Use `create(ExaFetchRejectedSchema)` to create a new message. */ export const ExaFetchRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 218); /** * @generated from message agent.v1.ExaFetchContent */ export type ExaFetchContent = Message<"agent.v1.ExaFetchContent"> & { /** * @generated from field: string title = 1; */ title: string; /** * @generated from field: string url = 2; */ url: string; /** * @generated from field: string text = 3; */ text: string; /** * @generated from field: string published_date = 4; */ publishedDate: string; }; /** * Describes the message agent.v1.ExaFetchContent. * Use `create(ExaFetchContentSchema)` to create a new message. */ export const ExaFetchContentSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 219); /** * @generated from message agent.v1.ExaFetchToolCall */ export type ExaFetchToolCall = Message<"agent.v1.ExaFetchToolCall"> & { /** * @generated from field: agent.v1.ExaFetchArgs args = 1; */ args?: ExaFetchArgs; /** * @generated from field: agent.v1.ExaFetchResult result = 2; */ result?: ExaFetchResult; }; /** * Describes the message agent.v1.ExaFetchToolCall. * Use `create(ExaFetchToolCallSchema)` to create a new message. */ export const ExaFetchToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 220); /** * @generated from message agent.v1.ExaFetchRequestQuery */ export type ExaFetchRequestQuery = Message<"agent.v1.ExaFetchRequestQuery"> & { /** * @generated from field: agent.v1.ExaFetchArgs args = 1; */ args?: ExaFetchArgs; }; /** * Describes the message agent.v1.ExaFetchRequestQuery. * Use `create(ExaFetchRequestQuerySchema)` to create a new message. */ export const ExaFetchRequestQuerySchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 221); /** * @generated from message agent.v1.ExaFetchRequestResponse */ export type ExaFetchRequestResponse = Message<"agent.v1.ExaFetchRequestResponse"> & { /** * @generated from oneof agent.v1.ExaFetchRequestResponse.result */ result: | { /** * @generated from field: agent.v1.ExaFetchRequestResponse_Approved approved = 1; */ value: ExaFetchRequestResponse_Approved; case: "approved"; } | { /** * @generated from field: agent.v1.ExaFetchRequestResponse_Rejected rejected = 2; */ value: ExaFetchRequestResponse_Rejected; case: "rejected"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ExaFetchRequestResponse. * Use `create(ExaFetchRequestResponseSchema)` to create a new message. */ export const ExaFetchRequestResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 222); /** * @generated from message agent.v1.ExaFetchRequestResponse_Approved */ export type ExaFetchRequestResponse_Approved = Message<"agent.v1.ExaFetchRequestResponse_Approved"> & {}; /** * Describes the message agent.v1.ExaFetchRequestResponse_Approved. * Use `create(ExaFetchRequestResponse_ApprovedSchema)` to create a new message. */ export const ExaFetchRequestResponse_ApprovedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 223); /** * @generated from message agent.v1.ExaFetchRequestResponse_Rejected */ export type ExaFetchRequestResponse_Rejected = Message<"agent.v1.ExaFetchRequestResponse_Rejected"> & { /** * @generated from field: string reason = 1; */ reason: string; }; /** * Describes the message agent.v1.ExaFetchRequestResponse_Rejected. * Use `create(ExaFetchRequestResponse_RejectedSchema)` to create a new message. */ export const ExaFetchRequestResponse_RejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 224); /** * @generated from message agent.v1.ExaSearchArgs */ export type ExaSearchArgs = Message<"agent.v1.ExaSearchArgs"> & { /** * @generated from field: string query = 1; */ query: string; /** * "auto", "neural", or "keyword" * * @generated from field: string type = 2; */ type: string; /** * @generated from field: int32 num_results = 3; */ numResults: number; /** * @generated from field: string tool_call_id = 4; */ toolCallId: string; }; /** * Describes the message agent.v1.ExaSearchArgs. * Use `create(ExaSearchArgsSchema)` to create a new message. */ export const ExaSearchArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 225); /** * @generated from message agent.v1.ExaSearchResult */ export type ExaSearchResult = Message<"agent.v1.ExaSearchResult"> & { /** * @generated from oneof agent.v1.ExaSearchResult.result */ result: | { /** * @generated from field: agent.v1.ExaSearchSuccess success = 1; */ value: ExaSearchSuccess; case: "success"; } | { /** * @generated from field: agent.v1.ExaSearchError error = 2; */ value: ExaSearchError; case: "error"; } | { /** * @generated from field: agent.v1.ExaSearchRejected rejected = 3; */ value: ExaSearchRejected; case: "rejected"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ExaSearchResult. * Use `create(ExaSearchResultSchema)` to create a new message. */ export const ExaSearchResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 226); /** * @generated from message agent.v1.ExaSearchSuccess */ export type ExaSearchSuccess = Message<"agent.v1.ExaSearchSuccess"> & { /** * @generated from field: repeated agent.v1.ExaSearchReference references = 1; */ references: ExaSearchReference[]; }; /** * Describes the message agent.v1.ExaSearchSuccess. * Use `create(ExaSearchSuccessSchema)` to create a new message. */ export const ExaSearchSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 227); /** * @generated from message agent.v1.ExaSearchError */ export type ExaSearchError = Message<"agent.v1.ExaSearchError"> & { /** * @generated from field: string error = 1; */ error: string; }; /** * Describes the message agent.v1.ExaSearchError. * Use `create(ExaSearchErrorSchema)` to create a new message. */ export const ExaSearchErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 228); /** * @generated from message agent.v1.ExaSearchRejected */ export type ExaSearchRejected = Message<"agent.v1.ExaSearchRejected"> & { /** * @generated from field: string reason = 1; */ reason: string; }; /** * Describes the message agent.v1.ExaSearchRejected. * Use `create(ExaSearchRejectedSchema)` to create a new message. */ export const ExaSearchRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 229); /** * @generated from message agent.v1.ExaSearchReference */ export type ExaSearchReference = Message<"agent.v1.ExaSearchReference"> & { /** * @generated from field: string title = 1; */ title: string; /** * @generated from field: string url = 2; */ url: string; /** * @generated from field: string text = 3; */ text: string; /** * @generated from field: string published_date = 4; */ publishedDate: string; }; /** * Describes the message agent.v1.ExaSearchReference. * Use `create(ExaSearchReferenceSchema)` to create a new message. */ export const ExaSearchReferenceSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 230); /** * @generated from message agent.v1.ExaSearchToolCall */ export type ExaSearchToolCall = Message<"agent.v1.ExaSearchToolCall"> & { /** * @generated from field: agent.v1.ExaSearchArgs args = 1; */ args?: ExaSearchArgs; /** * @generated from field: agent.v1.ExaSearchResult result = 2; */ result?: ExaSearchResult; }; /** * Describes the message agent.v1.ExaSearchToolCall. * Use `create(ExaSearchToolCallSchema)` to create a new message. */ export const ExaSearchToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 231); /** * @generated from message agent.v1.ExaSearchRequestQuery */ export type ExaSearchRequestQuery = Message<"agent.v1.ExaSearchRequestQuery"> & { /** * @generated from field: agent.v1.ExaSearchArgs args = 1; */ args?: ExaSearchArgs; }; /** * Describes the message agent.v1.ExaSearchRequestQuery. * Use `create(ExaSearchRequestQuerySchema)` to create a new message. */ export const ExaSearchRequestQuerySchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 232); /** * @generated from message agent.v1.ExaSearchRequestResponse */ export type ExaSearchRequestResponse = Message<"agent.v1.ExaSearchRequestResponse"> & { /** * @generated from oneof agent.v1.ExaSearchRequestResponse.result */ result: | { /** * @generated from field: agent.v1.ExaSearchRequestResponse_Approved approved = 1; */ value: ExaSearchRequestResponse_Approved; case: "approved"; } | { /** * @generated from field: agent.v1.ExaSearchRequestResponse_Rejected rejected = 2; */ value: ExaSearchRequestResponse_Rejected; case: "rejected"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ExaSearchRequestResponse. * Use `create(ExaSearchRequestResponseSchema)` to create a new message. */ export const ExaSearchRequestResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 233); /** * @generated from message agent.v1.ExaSearchRequestResponse_Approved */ export type ExaSearchRequestResponse_Approved = Message<"agent.v1.ExaSearchRequestResponse_Approved"> & {}; /** * Describes the message agent.v1.ExaSearchRequestResponse_Approved. * Use `create(ExaSearchRequestResponse_ApprovedSchema)` to create a new message. */ export const ExaSearchRequestResponse_ApprovedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 234); /** * @generated from message agent.v1.ExaSearchRequestResponse_Rejected */ export type ExaSearchRequestResponse_Rejected = Message<"agent.v1.ExaSearchRequestResponse_Rejected"> & { /** * @generated from field: string reason = 1; */ reason: string; }; /** * Describes the message agent.v1.ExaSearchRequestResponse_Rejected. * Use `create(ExaSearchRequestResponse_RejectedSchema)` to create a new message. */ export const ExaSearchRequestResponse_RejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 235); /** * @generated from message agent.v1.ExecClientStreamClose */ export type ExecClientStreamClose = Message<"agent.v1.ExecClientStreamClose"> & { /** * @generated from field: uint32 id = 1; */ id: number; }; /** * Describes the message agent.v1.ExecClientStreamClose. * Use `create(ExecClientStreamCloseSchema)` to create a new message. */ export const ExecClientStreamCloseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 236); /** * @generated from message agent.v1.ExecClientThrow */ export type ExecClientThrow = Message<"agent.v1.ExecClientThrow"> & { /** * @generated from field: uint32 id = 1; */ id: number; /** * @generated from field: string error = 2; */ error: string; /** * @generated from field: optional string stack_trace = 3; */ stackTrace?: string; }; /** * Describes the message agent.v1.ExecClientThrow. * Use `create(ExecClientThrowSchema)` to create a new message. */ export const ExecClientThrowSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 237); /** * @generated from message agent.v1.ExecClientHeartbeat */ export type ExecClientHeartbeat = Message<"agent.v1.ExecClientHeartbeat"> & { /** * @generated from field: uint32 id = 1; */ id: number; }; /** * Describes the message agent.v1.ExecClientHeartbeat. * Use `create(ExecClientHeartbeatSchema)` to create a new message. */ export const ExecClientHeartbeatSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 238); /** * @generated from message agent.v1.ExecClientControlMessage */ export type ExecClientControlMessage = Message<"agent.v1.ExecClientControlMessage"> & { /** * @generated from oneof agent.v1.ExecClientControlMessage.message */ message: | { /** * @generated from field: agent.v1.ExecClientStreamClose stream_close = 1; */ value: ExecClientStreamClose; case: "streamClose"; } | { /** * @generated from field: agent.v1.ExecClientThrow throw = 2; */ value: ExecClientThrow; case: "throw"; } | { /** * @generated from field: agent.v1.ExecClientHeartbeat heartbeat = 3; */ value: ExecClientHeartbeat; case: "heartbeat"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ExecClientControlMessage. * Use `create(ExecClientControlMessageSchema)` to create a new message. */ export const ExecClientControlMessageSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 239); /** * Simplified span context for tracing exec calls * * @generated from message agent.v1.SpanContext */ export type SpanContext = Message<"agent.v1.SpanContext"> & { /** * Trace identifier (128-bit as hex string, same for all spans in a trace) * * @generated from field: string trace_id = 1; */ traceId: string; /** * Unique span identifier (64-bit as hex string) * * @generated from field: string span_id = 2; */ spanId: string; /** * Trace flags bit field following OTEL SPAN_FLAGS_* semantics * * @generated from field: optional uint32 trace_flags = 3; */ traceFlags?: number; /** * W3C trace-state header string (optional) * * @generated from field: optional string trace_state = 4; */ traceState?: string; }; /** * Describes the message agent.v1.SpanContext. * Use `create(SpanContextSchema)` to create a new message. */ export const SpanContextSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 240); /** * Empty abort message for aborting running execs * * @generated from message agent.v1.AbortArgs */ export type AbortArgs = Message<"agent.v1.AbortArgs"> & {}; /** * Describes the message agent.v1.AbortArgs. * Use `create(AbortArgsSchema)` to create a new message. */ export const AbortArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 241); /** * @generated from message agent.v1.AbortResult */ export type AbortResult = Message<"agent.v1.AbortResult"> & {}; /** * Describes the message agent.v1.AbortResult. * Use `create(AbortResultSchema)` to create a new message. */ export const AbortResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 242); /** * @generated from message agent.v1.ExecServerMessage */ export type ExecServerMessage = Message<"agent.v1.ExecServerMessage"> & { /** * @generated from field: uint32 id = 1; */ id: number; /** * Optional exec ID for attachable executions * * @generated from field: string exec_id = 15; */ execId: string; /** * Optional parent span context for tracing * * @generated from field: optional agent.v1.SpanContext span_context = 19; */ spanContext?: SpanContext; /** * @generated from oneof agent.v1.ExecServerMessage.message */ message: | { /** * @generated from field: agent.v1.ShellArgs shell_args = 2; */ value: ShellArgs; case: "shellArgs"; } | { /** * @generated from field: agent.v1.WriteArgs write_args = 3; */ value: WriteArgs; case: "writeArgs"; } | { /** * @generated from field: agent.v1.DeleteArgs delete_args = 4; */ value: DeleteArgs; case: "deleteArgs"; } | { /** * @generated from field: agent.v1.GrepArgs grep_args = 5; */ value: GrepArgs; case: "grepArgs"; } | { /** * @generated from field: agent.v1.ReadArgs read_args = 7; */ value: ReadArgs; case: "readArgs"; } | { /** * @generated from field: agent.v1.LsArgs ls_args = 8; */ value: LsArgs; case: "lsArgs"; } | { /** * @generated from field: agent.v1.DiagnosticsArgs diagnostics_args = 9; */ value: DiagnosticsArgs; case: "diagnosticsArgs"; } | { /** * @generated from field: agent.v1.RequestContextArgs request_context_args = 10; */ value: RequestContextArgs; case: "requestContextArgs"; } | { /** * @generated from field: agent.v1.McpArgs mcp_args = 11; */ value: McpArgs; case: "mcpArgs"; } | { /** * @generated from field: agent.v1.ShellArgs shell_stream_args = 14; */ value: ShellArgs; case: "shellStreamArgs"; } | { /** * @generated from field: agent.v1.BackgroundShellSpawnArgs background_shell_spawn_args = 16; */ value: BackgroundShellSpawnArgs; case: "backgroundShellSpawnArgs"; } | { /** * @generated from field: agent.v1.ListMcpResourcesExecArgs list_mcp_resources_exec_args = 17; */ value: ListMcpResourcesExecArgs; case: "listMcpResourcesExecArgs"; } | { /** * @generated from field: agent.v1.ReadMcpResourceExecArgs read_mcp_resource_exec_args = 18; */ value: ReadMcpResourceExecArgs; case: "readMcpResourceExecArgs"; } | { /** * @generated from field: agent.v1.FetchArgs fetch_args = 20; */ value: FetchArgs; case: "fetchArgs"; } | { /** * @generated from field: agent.v1.RecordScreenArgs record_screen_args = 21; */ value: RecordScreenArgs; case: "recordScreenArgs"; } | { /** * @generated from field: agent.v1.ComputerUseArgs computer_use_args = 22; */ value: ComputerUseArgs; case: "computerUseArgs"; } | { /** * @generated from field: agent.v1.WriteShellStdinArgs write_shell_stdin_args = 23; */ value: WriteShellStdinArgs; case: "writeShellStdinArgs"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ExecServerMessage. * Use `create(ExecServerMessageSchema)` to create a new message. */ export const ExecServerMessageSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 243); /** * @generated from message agent.v1.ExecClientMessage */ export type ExecClientMessage = Message<"agent.v1.ExecClientMessage"> & { /** * @generated from field: uint32 id = 1; */ id: number; /** * Optional exec ID for attachable executions * * @generated from field: string exec_id = 15; */ execId: string; /** * @generated from oneof agent.v1.ExecClientMessage.message */ message: | { /** * @generated from field: agent.v1.ShellResult shell_result = 2; */ value: ShellResult; case: "shellResult"; } | { /** * @generated from field: agent.v1.WriteResult write_result = 3; */ value: WriteResult; case: "writeResult"; } | { /** * @generated from field: agent.v1.DeleteResult delete_result = 4; */ value: DeleteResult; case: "deleteResult"; } | { /** * @generated from field: agent.v1.GrepResult grep_result = 5; */ value: GrepResult; case: "grepResult"; } | { /** * @generated from field: agent.v1.ReadResult read_result = 7; */ value: ReadResult; case: "readResult"; } | { /** * @generated from field: agent.v1.LsResult ls_result = 8; */ value: LsResult; case: "lsResult"; } | { /** * @generated from field: agent.v1.DiagnosticsResult diagnostics_result = 9; */ value: DiagnosticsResult; case: "diagnosticsResult"; } | { /** * @generated from field: agent.v1.RequestContextResult request_context_result = 10; */ value: RequestContextResult; case: "requestContextResult"; } | { /** * @generated from field: agent.v1.McpResult mcp_result = 11; */ value: McpResult; case: "mcpResult"; } | { /** * @generated from field: agent.v1.ShellStream shell_stream = 14; */ value: ShellStream; case: "shellStream"; } | { /** * @generated from field: agent.v1.BackgroundShellSpawnResult background_shell_spawn_result = 16; */ value: BackgroundShellSpawnResult; case: "backgroundShellSpawnResult"; } | { /** * @generated from field: agent.v1.ListMcpResourcesExecResult list_mcp_resources_exec_result = 17; */ value: ListMcpResourcesExecResult; case: "listMcpResourcesExecResult"; } | { /** * @generated from field: agent.v1.ReadMcpResourceExecResult read_mcp_resource_exec_result = 18; */ value: ReadMcpResourceExecResult; case: "readMcpResourceExecResult"; } | { /** * @generated from field: agent.v1.FetchResult fetch_result = 20; */ value: FetchResult; case: "fetchResult"; } | { /** * @generated from field: agent.v1.RecordScreenResult record_screen_result = 21; */ value: RecordScreenResult; case: "recordScreenResult"; } | { /** * @generated from field: agent.v1.ComputerUseResult computer_use_result = 22; */ value: ComputerUseResult; case: "computerUseResult"; } | { /** * @generated from field: agent.v1.WriteShellStdinResult write_shell_stdin_result = 23; */ value: WriteShellStdinResult; case: "writeShellStdinResult"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ExecClientMessage. * Use `create(ExecClientMessageSchema)` to create a new message. */ export const ExecClientMessageSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 244); /** * @generated from message agent.v1.FetchArgs */ export type FetchArgs = Message<"agent.v1.FetchArgs"> & { /** * @generated from field: string url = 1; */ url: string; /** * @generated from field: string tool_call_id = 2; */ toolCallId: string; }; /** * Describes the message agent.v1.FetchArgs. * Use `create(FetchArgsSchema)` to create a new message. */ export const FetchArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 245); /** * @generated from message agent.v1.FetchResult */ export type FetchResult = Message<"agent.v1.FetchResult"> & { /** * @generated from oneof agent.v1.FetchResult.result */ result: | { /** * @generated from field: agent.v1.FetchSuccess success = 1; */ value: FetchSuccess; case: "success"; } | { /** * @generated from field: agent.v1.FetchError error = 2; */ value: FetchError; case: "error"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.FetchResult. * Use `create(FetchResultSchema)` to create a new message. */ export const FetchResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 246); /** * @generated from message agent.v1.FetchSuccess */ export type FetchSuccess = Message<"agent.v1.FetchSuccess"> & { /** * @generated from field: string url = 1; */ url: string; /** * @generated from field: string content = 2; */ content: string; /** * @generated from field: int32 status_code = 3; */ statusCode: number; /** * @generated from field: string content_type = 4; */ contentType: string; }; /** * Describes the message agent.v1.FetchSuccess. * Use `create(FetchSuccessSchema)` to create a new message. */ export const FetchSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 247); /** * @generated from message agent.v1.FetchError */ export type FetchError = Message<"agent.v1.FetchError"> & { /** * @generated from field: string url = 1; */ url: string; /** * @generated from field: string error = 2; */ error: string; }; /** * Describes the message agent.v1.FetchError. * Use `create(FetchErrorSchema)` to create a new message. */ export const FetchErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 248); /** * @generated from message agent.v1.GenerateImageArgs */ export type GenerateImageArgs = Message<"agent.v1.GenerateImageArgs"> & { /** * @generated from field: string description = 1; */ description: string; /** * @generated from field: optional string file_path = 2; */ filePath?: string; /** * Optional paths to reference images to use as input for image-to-image generation * * @generated from field: repeated string reference_image_paths = 5; */ referenceImagePaths: string[]; }; /** * Describes the message agent.v1.GenerateImageArgs. * Use `create(GenerateImageArgsSchema)` to create a new message. */ export const GenerateImageArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 249); /** * @generated from message agent.v1.GenerateImageResult */ export type GenerateImageResult = Message<"agent.v1.GenerateImageResult"> & { /** * @generated from oneof agent.v1.GenerateImageResult.result */ result: | { /** * @generated from field: agent.v1.GenerateImageSuccess success = 1; */ value: GenerateImageSuccess; case: "success"; } | { /** * @generated from field: agent.v1.GenerateImageError error = 2; */ value: GenerateImageError; case: "error"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.GenerateImageResult. * Use `create(GenerateImageResultSchema)` to create a new message. */ export const GenerateImageResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 250); /** * @generated from message agent.v1.GenerateImageSuccess */ export type GenerateImageSuccess = Message<"agent.v1.GenerateImageSuccess"> & { /** * Actual file path where the image was saved (e.g., /path/to/project/assets/image.png) * * @generated from field: string file_path = 1; */ filePath: string; /** * Base64-encoded image data * * @generated from field: string image_data = 2; */ imageData: string; }; /** * Describes the message agent.v1.GenerateImageSuccess. * Use `create(GenerateImageSuccessSchema)` to create a new message. */ export const GenerateImageSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 251); /** * @generated from message agent.v1.GenerateImageError */ export type GenerateImageError = Message<"agent.v1.GenerateImageError"> & { /** * @generated from field: string error = 1; */ error: string; }; /** * Describes the message agent.v1.GenerateImageError. * Use `create(GenerateImageErrorSchema)` to create a new message. */ export const GenerateImageErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 252); /** * @generated from message agent.v1.GenerateImageToolCall */ export type GenerateImageToolCall = Message<"agent.v1.GenerateImageToolCall"> & { /** * @generated from field: agent.v1.GenerateImageArgs args = 1; */ args?: GenerateImageArgs; /** * @generated from field: agent.v1.GenerateImageResult result = 2; */ result?: GenerateImageResult; }; /** * Describes the message agent.v1.GenerateImageToolCall. * Use `create(GenerateImageToolCallSchema)` to create a new message. */ export const GenerateImageToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 253); /** * @generated from message agent.v1.GrepArgs */ export type GrepArgs = Message<"agent.v1.GrepArgs"> & { /** * @generated from field: string pattern = 1; */ pattern: string; /** * @generated from field: optional string path = 2; */ path?: string; /** * @generated from field: optional string glob = 3; */ glob?: string; /** * "content", "files_with_matches", "count" * * @generated from field: optional string output_mode = 4; */ outputMode?: string; /** * @generated from field: optional int32 context_before = 5; */ contextBefore?: number; /** * @generated from field: optional int32 context_after = 6; */ contextAfter?: number; /** * @generated from field: optional int32 context = 7; */ context?: number; /** * @generated from field: optional bool case_insensitive = 8; */ caseInsensitive?: boolean; /** * --type * * @generated from field: optional string type = 9; */ type?: string; /** * | head -N * * @generated from field: optional int32 head_limit = 10; */ headLimit?: number; /** * -U --multiline-dotall * * @generated from field: optional bool multiline = 11; */ multiline?: boolean; /** * --sort: "none", "path", "modified", "accessed", "created" * * @generated from field: optional string sort = 12; */ sort?: string; /** * if false, use --sortr for reverse sort * * @generated from field: optional bool sort_ascending = 13; */ sortAscending?: boolean; /** * @generated from field: string tool_call_id = 14; */ toolCallId: string; /** * @generated from field: optional agent.v1.SandboxPolicy sandbox_policy = 15; */ sandboxPolicy?: SandboxPolicy; }; /** * Describes the message agent.v1.GrepArgs. * Use `create(GrepArgsSchema)` to create a new message. */ export const GrepArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 254); /** * @generated from message agent.v1.GrepResult */ export type GrepResult = Message<"agent.v1.GrepResult"> & { /** * @generated from oneof agent.v1.GrepResult.result */ result: | { /** * @generated from field: agent.v1.GrepSuccess success = 1; */ value: GrepSuccess; case: "success"; } | { /** * @generated from field: agent.v1.GrepError error = 2; */ value: GrepError; case: "error"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.GrepResult. * Use `create(GrepResultSchema)` to create a new message. */ export const GrepResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 255); /** * @generated from message agent.v1.GrepError */ export type GrepError = Message<"agent.v1.GrepError"> & { /** * @generated from field: string error = 1; */ error: string; }; /** * Describes the message agent.v1.GrepError. * Use `create(GrepErrorSchema)` to create a new message. */ export const GrepErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 256); /** * @generated from message agent.v1.GrepSuccess */ export type GrepSuccess = Message<"agent.v1.GrepSuccess"> & { /** * @generated from field: string pattern = 1; */ pattern: string; /** * @generated from field: string path = 2; */ path: string; /** * "content", "files_with_matches", or "count" * * @generated from field: string output_mode = 3; */ outputMode: string; /** * @generated from field: map workspace_results = 4; */ workspaceResults: { [key: string]: GrepUnionResult }; /** * @generated from field: optional agent.v1.GrepUnionResult active_editor_result = 5; */ activeEditorResult?: GrepUnionResult; }; /** * Describes the message agent.v1.GrepSuccess. * Use `create(GrepSuccessSchema)` to create a new message. */ export const GrepSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 257); /** * @generated from message agent.v1.GrepUnionResult */ export type GrepUnionResult = Message<"agent.v1.GrepUnionResult"> & { /** * @generated from oneof agent.v1.GrepUnionResult.result */ result: | { /** * @generated from field: agent.v1.GrepCountResult count = 1; */ value: GrepCountResult; case: "count"; } | { /** * @generated from field: agent.v1.GrepFilesResult files = 2; */ value: GrepFilesResult; case: "files"; } | { /** * @generated from field: agent.v1.GrepContentResult content = 3; */ value: GrepContentResult; case: "content"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.GrepUnionResult. * Use `create(GrepUnionResultSchema)` to create a new message. */ export const GrepUnionResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 258); /** * @generated from message agent.v1.GrepCountResult */ export type GrepCountResult = Message<"agent.v1.GrepCountResult"> & { /** * ordered by relevance * * @generated from field: repeated agent.v1.GrepFileCount counts = 1; */ counts: GrepFileCount[]; /** * The total count of files that the client found from the ripgrep call This is a lower bound if we truncated the output from the ripgrep call itself, but is accurate if client_truncated is true (but may be more than the number of files returned to the server) * * @generated from field: int32 total_files = 2; */ totalFiles: number; /** * The total count of matches that the client found from the ripgrep call This is a lower bound if we truncated the output from the ripgrep call itself, but is accurate if client_truncated is true (but may be more than the number of matches returned to the server) * * @generated from field: int32 total_matches = 3; */ totalMatches: number; /** * true if the client truncated the output sent to the server * * @generated from field: bool client_truncated = 4; */ clientTruncated: boolean; /** * true if we truncated the output from the ripgrep call itself * * @generated from field: bool ripgrep_truncated = 5; */ ripgrepTruncated: boolean; }; /** * Describes the message agent.v1.GrepCountResult. * Use `create(GrepCountResultSchema)` to create a new message. */ export const GrepCountResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 259); /** * @generated from message agent.v1.GrepFileCount */ export type GrepFileCount = Message<"agent.v1.GrepFileCount"> & { /** * @generated from field: string file = 1; */ file: string; /** * @generated from field: int32 count = 2; */ count: number; }; /** * Describes the message agent.v1.GrepFileCount. * Use `create(GrepFileCountSchema)` to create a new message. */ export const GrepFileCountSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 260); /** * @generated from message agent.v1.GrepFilesResult */ export type GrepFilesResult = Message<"agent.v1.GrepFilesResult"> & { /** * ordered by relevance * * @generated from field: repeated string files = 1; */ files: string[]; /** * The total count of files that the client found from the ripgrep call This is a lower bound if we truncated the output from the ripgrep call itself, but is accurate if client_truncated is true (but may be more than the number of files returned to the server) * * @generated from field: int32 total_files = 2; */ totalFiles: number; /** * true if the client truncated the output sent to the server * * @generated from field: bool client_truncated = 3; */ clientTruncated: boolean; /** * true if we truncated the output from the ripgrep call itself * * @generated from field: bool ripgrep_truncated = 4; */ ripgrepTruncated: boolean; }; /** * Describes the message agent.v1.GrepFilesResult. * Use `create(GrepFilesResultSchema)` to create a new message. */ export const GrepFilesResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 261); /** * @generated from message agent.v1.GrepContentResult */ export type GrepContentResult = Message<"agent.v1.GrepContentResult"> & { /** * ordered by relevance * * @generated from field: repeated agent.v1.GrepFileMatch matches = 1; */ matches: GrepFileMatch[]; /** * The total count of lines that the client found from the ripgrep call This is a lower bound if we truncated the output from the ripgrep call itself, but is accurate if client_truncated is true (but may be more than the number of lines returned to the server) * * @generated from field: int32 total_lines = 2; */ totalLines: number; /** * The total count of matches that the client found from the ripgrep call This is a lower bound if we truncated the output from the ripgrep call itself, but is accurate if client_truncated is true (but may be more than the number of matches returned to the server) * * @generated from field: int32 total_matched_lines = 3; */ totalMatchedLines: number; /** * true if the client truncated the output sent to the server * * @generated from field: bool client_truncated = 4; */ clientTruncated: boolean; /** * true if we truncated the output from the ripgrep call itself * * @generated from field: bool ripgrep_truncated = 5; */ ripgrepTruncated: boolean; }; /** * Describes the message agent.v1.GrepContentResult. * Use `create(GrepContentResultSchema)` to create a new message. */ export const GrepContentResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 262); /** * @generated from message agent.v1.GrepFileMatch */ export type GrepFileMatch = Message<"agent.v1.GrepFileMatch"> & { /** * @generated from field: string file = 1; */ file: string; /** * @generated from field: repeated agent.v1.GrepContentMatch matches = 2; */ matches: GrepContentMatch[]; }; /** * Describes the message agent.v1.GrepFileMatch. * Use `create(GrepFileMatchSchema)` to create a new message. */ export const GrepFileMatchSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 263); /** * @generated from message agent.v1.GrepContentMatch */ export type GrepContentMatch = Message<"agent.v1.GrepContentMatch"> & { /** * @generated from field: int32 line_number = 1; */ lineNumber: number; /** * @generated from field: string content = 2; */ content: string; /** * @generated from field: bool content_truncated = 3; */ contentTruncated: boolean; /** * true for context lines (-A/B/C) * * @generated from field: bool is_context_line = 4; */ isContextLine: boolean; }; /** * Describes the message agent.v1.GrepContentMatch. * Use `create(GrepContentMatchSchema)` to create a new message. */ export const GrepContentMatchSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 264); /** * @generated from message agent.v1.GrepStream */ export type GrepStream = Message<"agent.v1.GrepStream"> & { /** * @generated from field: string pattern = 1; */ pattern: string; }; /** * Describes the message agent.v1.GrepStream. * Use `create(GrepStreamSchema)` to create a new message. */ export const GrepStreamSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 265); /** * @generated from message agent.v1.GrepToolCall */ export type GrepToolCall = Message<"agent.v1.GrepToolCall"> & { /** * @generated from field: agent.v1.GrepArgs args = 1; */ args?: GrepArgs; /** * @generated from field: agent.v1.GrepResult result = 2; */ result?: GrepResult; }; /** * Describes the message agent.v1.GrepToolCall. * Use `create(GrepToolCallSchema)` to create a new message. */ export const GrepToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 266); /** * @generated from message agent.v1.GetBlobArgs */ export type GetBlobArgs = Message<"agent.v1.GetBlobArgs"> & { /** * @generated from field: bytes blob_id = 1; */ blobId: Uint8Array; }; /** * Describes the message agent.v1.GetBlobArgs. * Use `create(GetBlobArgsSchema)` to create a new message. */ export const GetBlobArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 267); /** * @generated from message agent.v1.GetBlobResult */ export type GetBlobResult = Message<"agent.v1.GetBlobResult"> & { /** * @generated from field: optional bytes blob_data = 1; */ blobData?: Uint8Array; }; /** * Describes the message agent.v1.GetBlobResult. * Use `create(GetBlobResultSchema)` to create a new message. */ export const GetBlobResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 268); /** * @generated from message agent.v1.SetBlobArgs */ export type SetBlobArgs = Message<"agent.v1.SetBlobArgs"> & { /** * @generated from field: bytes blob_id = 1; */ blobId: Uint8Array; /** * @generated from field: bytes blob_data = 2; */ blobData: Uint8Array; }; /** * Describes the message agent.v1.SetBlobArgs. * Use `create(SetBlobArgsSchema)` to create a new message. */ export const SetBlobArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 269); /** * @generated from message agent.v1.SetBlobResult */ export type SetBlobResult = Message<"agent.v1.SetBlobResult"> & { /** * @generated from field: optional agent.v1.Error error = 1; */ error?: Error; }; /** * Describes the message agent.v1.SetBlobResult. * Use `create(SetBlobResultSchema)` to create a new message. */ export const SetBlobResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 270); /** * @generated from message agent.v1.KvServerMessage */ export type KvServerMessage = Message<"agent.v1.KvServerMessage"> & { /** * @generated from field: uint32 id = 1; */ id: number; /** * Span context for distributed tracing * * @generated from field: optional agent.v1.SpanContext span_context = 4; */ spanContext?: SpanContext; /** * @generated from oneof agent.v1.KvServerMessage.message */ message: | { /** * @generated from field: agent.v1.GetBlobArgs get_blob_args = 2; */ value: GetBlobArgs; case: "getBlobArgs"; } | { /** * @generated from field: agent.v1.SetBlobArgs set_blob_args = 3; */ value: SetBlobArgs; case: "setBlobArgs"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.KvServerMessage. * Use `create(KvServerMessageSchema)` to create a new message. */ export const KvServerMessageSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 271); /** * @generated from message agent.v1.KvClientMessage */ export type KvClientMessage = Message<"agent.v1.KvClientMessage"> & { /** * @generated from field: uint32 id = 1; */ id: number; /** * @generated from oneof agent.v1.KvClientMessage.message */ message: | { /** * @generated from field: agent.v1.GetBlobResult get_blob_result = 2; */ value: GetBlobResult; case: "getBlobResult"; } | { /** * @generated from field: agent.v1.SetBlobResult set_blob_result = 3; */ value: SetBlobResult; case: "setBlobResult"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.KvClientMessage. * Use `create(KvClientMessageSchema)` to create a new message. */ export const KvClientMessageSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 272); /** * @generated from message agent.v1.LsArgs */ export type LsArgs = Message<"agent.v1.LsArgs"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: repeated string ignore = 2; */ ignore: string[]; /** * @generated from field: string tool_call_id = 3; */ toolCallId: string; /** * @generated from field: optional agent.v1.SandboxPolicy sandbox_policy = 4; */ sandboxPolicy?: SandboxPolicy; /** * defaults to 5000ms * * @generated from field: optional uint32 timeout_ms = 5; */ timeoutMs?: number; }; /** * Describes the message agent.v1.LsArgs. * Use `create(LsArgsSchema)` to create a new message. */ export const LsArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 273); /** * @generated from message agent.v1.LsResult */ export type LsResult = Message<"agent.v1.LsResult"> & { /** * @generated from oneof agent.v1.LsResult.result */ result: | { /** * @generated from field: agent.v1.LsSuccess success = 1; */ value: LsSuccess; case: "success"; } | { /** * @generated from field: agent.v1.LsError error = 2; */ value: LsError; case: "error"; } | { /** * @generated from field: agent.v1.LsRejected rejected = 3; */ value: LsRejected; case: "rejected"; } | { /** * @generated from field: agent.v1.LsTimeout timeout = 4; */ value: LsTimeout; case: "timeout"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.LsResult. * Use `create(LsResultSchema)` to create a new message. */ export const LsResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 274); /** * @generated from message agent.v1.LsSuccess */ export type LsSuccess = Message<"agent.v1.LsSuccess"> & { /** * @generated from field: agent.v1.LsDirectoryTreeNode directory_tree_root = 1; */ directoryTreeRoot?: LsDirectoryTreeNode; }; /** * Describes the message agent.v1.LsSuccess. * Use `create(LsSuccessSchema)` to create a new message. */ export const LsSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 275); /** * @generated from message agent.v1.LsDirectoryTreeNode */ export type LsDirectoryTreeNode = Message<"agent.v1.LsDirectoryTreeNode"> & { /** * @generated from field: string abs_path = 1; */ absPath: string; /** * @generated from field: repeated agent.v1.LsDirectoryTreeNode children_dirs = 2; */ childrenDirs: LsDirectoryTreeNode[]; /** * @generated from field: repeated agent.v1.LsDirectoryTreeNode_File children_files = 3; */ childrenFiles: LsDirectoryTreeNode_File[]; /** * Proto doesn't allow repeated fields to be optional, so in case of empty children arrays, this fields indicates if it happens: `true` - because directory really doesn't have any children `false` - because we stopped traversal before getting to its children * * @generated from field: bool children_were_processed = 4; */ childrenWereProcessed: boolean; /** * Count of extensions in the full sub-tree * * @generated from field: map full_subtree_extension_counts = 5; */ fullSubtreeExtensionCounts: { [key: string]: number }; /** * @generated from field: int32 num_files = 6; */ numFiles: number; }; /** * Describes the message agent.v1.LsDirectoryTreeNode. * Use `create(LsDirectoryTreeNodeSchema)` to create a new message. */ export const LsDirectoryTreeNodeSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 276); /** * @generated from message agent.v1.LsDirectoryTreeNode_File */ export type LsDirectoryTreeNode_File = Message<"agent.v1.LsDirectoryTreeNode_File"> & { /** * @generated from field: string name = 1; */ name: string; /** * @generated from field: optional agent.v1.TerminalMetadata terminal_metadata = 2; */ terminalMetadata?: TerminalMetadata; }; /** * Describes the message agent.v1.LsDirectoryTreeNode_File. * Use `create(LsDirectoryTreeNode_FileSchema)` to create a new message. */ export const LsDirectoryTreeNode_FileSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 277); /** * @generated from message agent.v1.LsError */ export type LsError = Message<"agent.v1.LsError"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: string error = 2; */ error: string; }; /** * Describes the message agent.v1.LsError. * Use `create(LsErrorSchema)` to create a new message. */ export const LsErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 278); /** * @generated from message agent.v1.LsRejected */ export type LsRejected = Message<"agent.v1.LsRejected"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: string reason = 2; */ reason: string; }; /** * Describes the message agent.v1.LsRejected. * Use `create(LsRejectedSchema)` to create a new message. */ export const LsRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 279); /** * Returned when ls operation timed out. Contains partial results gathered before timeout. * * @generated from message agent.v1.LsTimeout */ export type LsTimeout = Message<"agent.v1.LsTimeout"> & { /** * @generated from field: agent.v1.LsDirectoryTreeNode directory_tree_root = 1; */ directoryTreeRoot?: LsDirectoryTreeNode; }; /** * Describes the message agent.v1.LsTimeout. * Use `create(LsTimeoutSchema)` to create a new message. */ export const LsTimeoutSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 280); /** * @generated from message agent.v1.TerminalMetadata */ export type TerminalMetadata = Message<"agent.v1.TerminalMetadata"> & { /** * @generated from field: optional string cwd = 1; */ cwd?: string; /** * @generated from field: repeated agent.v1.TerminalMetadata_Command last_commands = 2; */ lastCommands: TerminalMetadata_Command[]; /** * @generated from field: optional int64 last_modified_ms = 3; */ lastModifiedMs?: bigint; /** * @generated from field: optional agent.v1.TerminalMetadata_Command current_command = 4; */ currentCommand?: TerminalMetadata_Command; }; /** * Describes the message agent.v1.TerminalMetadata. * Use `create(TerminalMetadataSchema)` to create a new message. */ export const TerminalMetadataSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 281); /** * @generated from message agent.v1.TerminalMetadata_Command */ export type TerminalMetadata_Command = Message<"agent.v1.TerminalMetadata_Command"> & { /** * @generated from field: string command = 1; */ command: string; /** * @generated from field: optional int32 exit_code = 2; */ exitCode?: number; /** * @generated from field: optional int64 timestamp_ms = 3; */ timestampMs?: bigint; /** * @generated from field: optional int64 duration_ms = 4; */ durationMs?: bigint; }; /** * Describes the message agent.v1.TerminalMetadata_Command. * Use `create(TerminalMetadata_CommandSchema)` to create a new message. */ export const TerminalMetadata_CommandSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 282); /** * @generated from message agent.v1.LsToolCall */ export type LsToolCall = Message<"agent.v1.LsToolCall"> & { /** * @generated from field: agent.v1.LsArgs args = 1; */ args?: LsArgs; /** * @generated from field: agent.v1.LsResult result = 2; */ result?: LsResult; }; /** * Describes the message agent.v1.LsToolCall. * Use `create(LsToolCallSchema)` to create a new message. */ export const LsToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 283); /** * @generated from message agent.v1.McpArgs */ export type McpArgs = Message<"agent.v1.McpArgs"> & { /** * @generated from field: string name = 1; */ name: string; /** * @generated from field: map args = 2; */ args: { [key: string]: Uint8Array }; /** * @generated from field: string tool_call_id = 3; */ toolCallId: string; /** * @generated from field: string provider_identifier = 4; */ providerIdentifier: string; /** * @generated from field: string tool_name = 5; */ toolName: string; }; /** * Describes the message agent.v1.McpArgs. * Use `create(McpArgsSchema)` to create a new message. */ export const McpArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 284); /** * @generated from message agent.v1.McpResult */ export type McpResult = Message<"agent.v1.McpResult"> & { /** * @generated from oneof agent.v1.McpResult.result */ result: | { /** * @generated from field: agent.v1.McpSuccess success = 1; */ value: McpSuccess; case: "success"; } | { /** * @generated from field: agent.v1.McpError error = 2; */ value: McpError; case: "error"; } | { /** * @generated from field: agent.v1.McpRejected rejected = 3; */ value: McpRejected; case: "rejected"; } | { /** * @generated from field: agent.v1.McpPermissionDenied permission_denied = 4; */ value: McpPermissionDenied; case: "permissionDenied"; } | { /** * @generated from field: agent.v1.McpToolNotFound tool_not_found = 5; */ value: McpToolNotFound; case: "toolNotFound"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.McpResult. * Use `create(McpResultSchema)` to create a new message. */ export const McpResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 285); /** * @generated from message agent.v1.McpToolNotFound */ export type McpToolNotFound = Message<"agent.v1.McpToolNotFound"> & { /** * @generated from field: string name = 1; */ name: string; /** * @generated from field: repeated string available_tools = 2; */ availableTools: string[]; }; /** * Describes the message agent.v1.McpToolNotFound. * Use `create(McpToolNotFoundSchema)` to create a new message. */ export const McpToolNotFoundSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 286); /** * Text content item * * @generated from message agent.v1.McpTextContent */ export type McpTextContent = Message<"agent.v1.McpTextContent"> & { /** * @generated from field: string text = 1; */ text: string; /** * Optional file location for large outputs * * @generated from field: optional agent.v1.OutputLocation output_location = 2; */ outputLocation?: OutputLocation; }; /** * Describes the message agent.v1.McpTextContent. * Use `create(McpTextContentSchema)` to create a new message. */ export const McpTextContentSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 287); /** * Image content item * * @generated from message agent.v1.McpImageContent */ export type McpImageContent = Message<"agent.v1.McpImageContent"> & { /** * Raw bytes of the image. In JSON, this will be base64-encoded. * * @generated from field: bytes data = 1; */ data: Uint8Array; /** * Optional MIME type, e.g. "image/png" * * @generated from field: string mime_type = 2; */ mimeType: string; }; /** * Describes the message agent.v1.McpImageContent. * Use `create(McpImageContentSchema)` to create a new message. */ export const McpImageContentSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 288); /** * A single tool result content item: either text or image * * @generated from message agent.v1.McpToolResultContentItem */ export type McpToolResultContentItem = Message<"agent.v1.McpToolResultContentItem"> & { /** * @generated from oneof agent.v1.McpToolResultContentItem.content */ content: | { /** * @generated from field: agent.v1.McpTextContent text = 1; */ value: McpTextContent; case: "text"; } | { /** * @generated from field: agent.v1.McpImageContent image = 2; */ value: McpImageContent; case: "image"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.McpToolResultContentItem. * Use `create(McpToolResultContentItemSchema)` to create a new message. */ export const McpToolResultContentItemSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 289); /** * Equivalent to the requested McpToolResult TypeScript type * * @generated from message agent.v1.McpSuccess */ export type McpSuccess = Message<"agent.v1.McpSuccess"> & { /** * @generated from field: repeated agent.v1.McpToolResultContentItem content = 1; */ content: McpToolResultContentItem[]; /** * @generated from field: bool is_error = 2; */ isError: boolean; }; /** * Describes the message agent.v1.McpSuccess. * Use `create(McpSuccessSchema)` to create a new message. */ export const McpSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 290); /** * @generated from message agent.v1.McpError */ export type McpError = Message<"agent.v1.McpError"> & { /** * @generated from field: string error = 1; */ error: string; }; /** * Describes the message agent.v1.McpError. * Use `create(McpErrorSchema)` to create a new message. */ export const McpErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 291); /** * @generated from message agent.v1.McpRejected */ export type McpRejected = Message<"agent.v1.McpRejected"> & { /** * @generated from field: string reason = 1; */ reason: string; /** * @generated from field: bool is_readonly = 2; */ isReadonly: boolean; }; /** * Describes the message agent.v1.McpRejected. * Use `create(McpRejectedSchema)` to create a new message. */ export const McpRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 292); /** * @generated from message agent.v1.McpPermissionDenied */ export type McpPermissionDenied = Message<"agent.v1.McpPermissionDenied"> & { /** * @generated from field: string error = 1; */ error: string; /** * @generated from field: bool is_readonly = 2; */ isReadonly: boolean; }; /** * Describes the message agent.v1.McpPermissionDenied. * Use `create(McpPermissionDeniedSchema)` to create a new message. */ export const McpPermissionDeniedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 293); /** * List MCP resources exec args * * @generated from message agent.v1.ListMcpResourcesExecArgs */ export type ListMcpResourcesExecArgs = Message<"agent.v1.ListMcpResourcesExecArgs"> & { /** * Optional server name to filter resources by * * @generated from field: optional string server = 1; */ server?: string; }; /** * Describes the message agent.v1.ListMcpResourcesExecArgs. * Use `create(ListMcpResourcesExecArgsSchema)` to create a new message. */ export const ListMcpResourcesExecArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 294); /** * List MCP resources exec result * * @generated from message agent.v1.ListMcpResourcesExecResult */ export type ListMcpResourcesExecResult = Message<"agent.v1.ListMcpResourcesExecResult"> & { /** * @generated from oneof agent.v1.ListMcpResourcesExecResult.result */ result: | { /** * @generated from field: agent.v1.ListMcpResourcesSuccess success = 1; */ value: ListMcpResourcesSuccess; case: "success"; } | { /** * @generated from field: agent.v1.ListMcpResourcesError error = 2; */ value: ListMcpResourcesError; case: "error"; } | { /** * @generated from field: agent.v1.ListMcpResourcesRejected rejected = 3; */ value: ListMcpResourcesRejected; case: "rejected"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ListMcpResourcesExecResult. * Use `create(ListMcpResourcesExecResultSchema)` to create a new message. */ export const ListMcpResourcesExecResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 295); /** * @generated from message agent.v1.ListMcpResourcesExecResult_McpResource */ export type ListMcpResourcesExecResult_McpResource = Message<"agent.v1.ListMcpResourcesExecResult_McpResource"> & { /** * @generated from field: string uri = 1; */ uri: string; /** * @generated from field: optional string name = 2; */ name?: string; /** * @generated from field: optional string description = 3; */ description?: string; /** * @generated from field: optional string mime_type = 4; */ mimeType?: string; /** * Server name that provides this resource * * @generated from field: string server = 5; */ server: string; /** * Additional metadata * * @generated from field: map annotations = 6; */ annotations: { [key: string]: string }; }; /** * Describes the message agent.v1.ListMcpResourcesExecResult_McpResource. * Use `create(ListMcpResourcesExecResult_McpResourceSchema)` to create a new message. */ export const ListMcpResourcesExecResult_McpResourceSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 296); /** * @generated from message agent.v1.ListMcpResourcesSuccess */ export type ListMcpResourcesSuccess = Message<"agent.v1.ListMcpResourcesSuccess"> & { /** * @generated from field: repeated agent.v1.ListMcpResourcesExecResult_McpResource resources = 1; */ resources: ListMcpResourcesExecResult_McpResource[]; }; /** * Describes the message agent.v1.ListMcpResourcesSuccess. * Use `create(ListMcpResourcesSuccessSchema)` to create a new message. */ export const ListMcpResourcesSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 297); /** * @generated from message agent.v1.ListMcpResourcesError */ export type ListMcpResourcesError = Message<"agent.v1.ListMcpResourcesError"> & { /** * @generated from field: string error = 1; */ error: string; }; /** * Describes the message agent.v1.ListMcpResourcesError. * Use `create(ListMcpResourcesErrorSchema)` to create a new message. */ export const ListMcpResourcesErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 298); /** * @generated from message agent.v1.ListMcpResourcesRejected */ export type ListMcpResourcesRejected = Message<"agent.v1.ListMcpResourcesRejected"> & { /** * @generated from field: string reason = 1; */ reason: string; }; /** * Describes the message agent.v1.ListMcpResourcesRejected. * Use `create(ListMcpResourcesRejectedSchema)` to create a new message. */ export const ListMcpResourcesRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 299); /** * Read MCP resource exec args * * @generated from message agent.v1.ReadMcpResourceExecArgs */ export type ReadMcpResourceExecArgs = Message<"agent.v1.ReadMcpResourceExecArgs"> & { /** * Required server name * * @generated from field: string server = 1; */ server: string; /** * Required resource URI * * @generated from field: string uri = 2; */ uri: string; /** * Optional: when set, the resource will be downloaded to this path relative to the workspace, and the content will not be returned to the model. * * @generated from field: optional string download_path = 3; */ downloadPath?: string; }; /** * Describes the message agent.v1.ReadMcpResourceExecArgs. * Use `create(ReadMcpResourceExecArgsSchema)` to create a new message. */ export const ReadMcpResourceExecArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 300); /** * Read MCP resource exec result * * @generated from message agent.v1.ReadMcpResourceExecResult */ export type ReadMcpResourceExecResult = Message<"agent.v1.ReadMcpResourceExecResult"> & { /** * @generated from oneof agent.v1.ReadMcpResourceExecResult.result */ result: | { /** * @generated from field: agent.v1.ReadMcpResourceSuccess success = 1; */ value: ReadMcpResourceSuccess; case: "success"; } | { /** * @generated from field: agent.v1.ReadMcpResourceError error = 2; */ value: ReadMcpResourceError; case: "error"; } | { /** * @generated from field: agent.v1.ReadMcpResourceRejected rejected = 3; */ value: ReadMcpResourceRejected; case: "rejected"; } | { /** * @generated from field: agent.v1.ReadMcpResourceNotFound not_found = 4; */ value: ReadMcpResourceNotFound; case: "notFound"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ReadMcpResourceExecResult. * Use `create(ReadMcpResourceExecResultSchema)` to create a new message. */ export const ReadMcpResourceExecResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 301); /** * @generated from message agent.v1.ReadMcpResourceSuccess */ export type ReadMcpResourceSuccess = Message<"agent.v1.ReadMcpResourceSuccess"> & { /** * @generated from field: string uri = 1; */ uri: string; /** * @generated from field: optional string name = 2; */ name?: string; /** * @generated from field: optional string description = 3; */ description?: string; /** * @generated from field: optional string mime_type = 4; */ mimeType?: string; /** * Additional metadata * * @generated from field: map annotations = 7; */ annotations: { [key: string]: string }; /** * If set, resource was downloaded to this path * * @generated from field: optional string download_path = 8; */ downloadPath?: string; /** * @generated from oneof agent.v1.ReadMcpResourceSuccess.content */ content: | { /** * @generated from field: string text = 5; */ value: string; case: "text"; } | { /** * @generated from field: bytes blob = 6; */ value: Uint8Array; case: "blob"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ReadMcpResourceSuccess. * Use `create(ReadMcpResourceSuccessSchema)` to create a new message. */ export const ReadMcpResourceSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 302); /** * @generated from message agent.v1.ReadMcpResourceError */ export type ReadMcpResourceError = Message<"agent.v1.ReadMcpResourceError"> & { /** * @generated from field: string uri = 1; */ uri: string; /** * @generated from field: string error = 2; */ error: string; }; /** * Describes the message agent.v1.ReadMcpResourceError. * Use `create(ReadMcpResourceErrorSchema)` to create a new message. */ export const ReadMcpResourceErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 303); /** * @generated from message agent.v1.ReadMcpResourceRejected */ export type ReadMcpResourceRejected = Message<"agent.v1.ReadMcpResourceRejected"> & { /** * @generated from field: string uri = 1; */ uri: string; /** * @generated from field: string reason = 2; */ reason: string; }; /** * Describes the message agent.v1.ReadMcpResourceRejected. * Use `create(ReadMcpResourceRejectedSchema)` to create a new message. */ export const ReadMcpResourceRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 304); /** * @generated from message agent.v1.ReadMcpResourceNotFound */ export type ReadMcpResourceNotFound = Message<"agent.v1.ReadMcpResourceNotFound"> & { /** * @generated from field: string uri = 1; */ uri: string; }; /** * Describes the message agent.v1.ReadMcpResourceNotFound. * Use `create(ReadMcpResourceNotFoundSchema)` to create a new message. */ export const ReadMcpResourceNotFoundSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 305); /** * @generated from message agent.v1.McpToolDefinition */ export type McpToolDefinition = Message<"agent.v1.McpToolDefinition"> & { /** * @generated from field: string name = 1; */ name: string; /** * @generated from field: string provider_identifier = 4; */ providerIdentifier: string; /** * @generated from field: string tool_name = 5; */ toolName: string; /** * @generated from field: string description = 2; */ description: string; /** * @generated from field: bytes input_schema = 3; */ inputSchema: Uint8Array; }; /** * Describes the message agent.v1.McpToolDefinition. * Use `create(McpToolDefinitionSchema)` to create a new message. */ export const McpToolDefinitionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 306); /** * @generated from message agent.v1.McpTools */ export type McpTools = Message<"agent.v1.McpTools"> & { /** * @generated from field: repeated agent.v1.McpToolDefinition mcp_tools = 1; */ mcpTools: McpToolDefinition[]; }; /** * Describes the message agent.v1.McpTools. * Use `create(McpToolsSchema)` to create a new message. */ export const McpToolsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 307); /** * Represents MCP-provided instructions from a specific server * * @generated from message agent.v1.McpInstructions */ export type McpInstructions = Message<"agent.v1.McpInstructions"> & { /** * @generated from field: string server_name = 1; */ serverName: string; /** * @generated from field: string instructions = 2; */ instructions: string; }; /** * Describes the message agent.v1.McpInstructions. * Use `create(McpInstructionsSchema)` to create a new message. */ export const McpInstructionsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 308); /** * @generated from message agent.v1.McpDescriptor */ export type McpDescriptor = Message<"agent.v1.McpDescriptor"> & { /** * Display name of the MCP server associated with this folder. * * @generated from field: string server_name = 1; */ serverName: string; /** * @generated from field: string server_identifier = 2; */ serverIdentifier: string; /** * Absolute folder path where MCP tool descriptor JSON files are stored. * * @generated from field: optional string folder_path = 3; */ folderPath?: string; /** * @generated from field: optional string server_use_instructions = 4; */ serverUseInstructions?: string; /** * @generated from field: repeated agent.v1.McpToolDescriptor tools = 5; */ tools: McpToolDescriptor[]; }; /** * Describes the message agent.v1.McpDescriptor. * Use `create(McpDescriptorSchema)` to create a new message. */ export const McpDescriptorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 309); /** * @generated from message agent.v1.McpToolDescriptor */ export type McpToolDescriptor = Message<"agent.v1.McpToolDescriptor"> & { /** * @generated from field: string tool_name = 1; */ toolName: string; /** * @generated from field: optional string definition_path = 2; */ definitionPath?: string; }; /** * Describes the message agent.v1.McpToolDescriptor. * Use `create(McpToolDescriptorSchema)` to create a new message. */ export const McpToolDescriptorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 310); /** * @generated from message agent.v1.McpFileSystemOptions */ export type McpFileSystemOptions = Message<"agent.v1.McpFileSystemOptions"> & { /** * @generated from field: bool enabled = 1; */ enabled: boolean; /** * @generated from field: string workspace_project_dir = 2; */ workspaceProjectDir: string; /** * @generated from field: repeated agent.v1.McpDescriptor mcp_descriptors = 3; */ mcpDescriptors: McpDescriptor[]; }; /** * Describes the message agent.v1.McpFileSystemOptions. * Use `create(McpFileSystemOptionsSchema)` to create a new message. */ export const McpFileSystemOptionsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 311); /** * @generated from message agent.v1.ReadArgs */ export type ReadArgs = Message<"agent.v1.ReadArgs"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: string tool_call_id = 2; */ toolCallId: string; }; /** * Describes the message agent.v1.ReadArgs. * Use `create(ReadArgsSchema)` to create a new message. */ export const ReadArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 312); /** * @generated from message agent.v1.ReadResult */ export type ReadResult = Message<"agent.v1.ReadResult"> & { /** * @generated from oneof agent.v1.ReadResult.result */ result: | { /** * @generated from field: agent.v1.ReadSuccess success = 1; */ value: ReadSuccess; case: "success"; } | { /** * @generated from field: agent.v1.ReadError error = 2; */ value: ReadError; case: "error"; } | { /** * @generated from field: agent.v1.ReadRejected rejected = 3; */ value: ReadRejected; case: "rejected"; } | { /** * @generated from field: agent.v1.ReadFileNotFound file_not_found = 4; */ value: ReadFileNotFound; case: "fileNotFound"; } | { /** * @generated from field: agent.v1.ReadPermissionDenied permission_denied = 5; */ value: ReadPermissionDenied; case: "permissionDenied"; } | { /** * @generated from field: agent.v1.ReadInvalidFile invalid_file = 6; */ value: ReadInvalidFile; case: "invalidFile"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ReadResult. * Use `create(ReadResultSchema)` to create a new message. */ export const ReadResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 313); /** * @generated from message agent.v1.ReadSuccess */ export type ReadSuccess = Message<"agent.v1.ReadSuccess"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: int32 total_lines = 3; */ totalLines: number; /** * @generated from field: int64 file_size = 4; */ fileSize: bigint; /** * true if the content was truncated due to size limits * * @generated from field: bool truncated = 6; */ truncated: boolean; /** * Returns blob ID if the output was stored in the blob store. If provided, the output is stored separately from the rest of the tool result, and since it's already in the blob store, it need not be sent back to the client -- reducing bandwidth. * * @generated from field: optional bytes output_blob_id = 7; */ outputBlobId?: Uint8Array; /** * @generated from oneof agent.v1.ReadSuccess.output */ output: | { /** * @generated from field: string content = 2; */ value: string; case: "content"; } | { /** * @generated from field: bytes data = 5; */ value: Uint8Array; case: "data"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ReadSuccess. * Use `create(ReadSuccessSchema)` to create a new message. */ export const ReadSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 314); /** * @generated from message agent.v1.ReadError */ export type ReadError = Message<"agent.v1.ReadError"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: string error = 2; */ error: string; }; /** * Describes the message agent.v1.ReadError. * Use `create(ReadErrorSchema)` to create a new message. */ export const ReadErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 315); /** * @generated from message agent.v1.ReadRejected */ export type ReadRejected = Message<"agent.v1.ReadRejected"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: string reason = 2; */ reason: string; }; /** * Describes the message agent.v1.ReadRejected. * Use `create(ReadRejectedSchema)` to create a new message. */ export const ReadRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 316); /** * @generated from message agent.v1.ReadFileNotFound */ export type ReadFileNotFound = Message<"agent.v1.ReadFileNotFound"> & { /** * @generated from field: string path = 1; */ path: string; }; /** * Describes the message agent.v1.ReadFileNotFound. * Use `create(ReadFileNotFoundSchema)` to create a new message. */ export const ReadFileNotFoundSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 317); /** * @generated from message agent.v1.ReadPermissionDenied */ export type ReadPermissionDenied = Message<"agent.v1.ReadPermissionDenied"> & { /** * @generated from field: string path = 1; */ path: string; }; /** * Describes the message agent.v1.ReadPermissionDenied. * Use `create(ReadPermissionDeniedSchema)` to create a new message. */ export const ReadPermissionDeniedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 318); /** * @generated from message agent.v1.ReadInvalidFile */ export type ReadInvalidFile = Message<"agent.v1.ReadInvalidFile"> & { /** * @generated from field: string path = 1; */ path: string; /** * e.g., "Path is a directory, not a file" * * @generated from field: string reason = 2; */ reason: string; }; /** * Describes the message agent.v1.ReadInvalidFile. * Use `create(ReadInvalidFileSchema)` to create a new message. */ export const ReadInvalidFileSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 319); /** * @generated from message agent.v1.ReadToolCall */ export type ReadToolCall = Message<"agent.v1.ReadToolCall"> & { /** * @generated from field: agent.v1.ReadToolArgs args = 1; */ args?: ReadToolArgs; /** * @generated from field: agent.v1.ReadToolResult result = 2; */ result?: ReadToolResult; }; /** * Describes the message agent.v1.ReadToolCall. * Use `create(ReadToolCallSchema)` to create a new message. */ export const ReadToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 320); /** * @generated from message agent.v1.ReadToolArgs */ export type ReadToolArgs = Message<"agent.v1.ReadToolArgs"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: optional int32 offset = 2; */ offset?: number; /** * @generated from field: optional int32 limit = 3; */ limit?: number; }; /** * Describes the message agent.v1.ReadToolArgs. * Use `create(ReadToolArgsSchema)` to create a new message. */ export const ReadToolArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 321); /** * @generated from message agent.v1.ReadToolResult */ export type ReadToolResult = Message<"agent.v1.ReadToolResult"> & { /** * @generated from oneof agent.v1.ReadToolResult.result */ result: | { /** * @generated from field: agent.v1.ReadToolSuccess success = 1; */ value: ReadToolSuccess; case: "success"; } | { /** * @generated from field: agent.v1.ReadToolError error = 2; */ value: ReadToolError; case: "error"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ReadToolResult. * Use `create(ReadToolResultSchema)` to create a new message. */ export const ReadToolResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 322); /** * @generated from message agent.v1.ReadRange */ export type ReadRange = Message<"agent.v1.ReadRange"> & { /** * @generated from field: uint32 start_line = 1; */ startLine: number; /** * @generated from field: uint32 end_line = 2; */ endLine: number; }; /** * Describes the message agent.v1.ReadRange. * Use `create(ReadRangeSchema)` to create a new message. */ export const ReadRangeSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 323); /** * @generated from message agent.v1.ReadToolSuccess */ export type ReadToolSuccess = Message<"agent.v1.ReadToolSuccess"> & { /** * @generated from field: bool is_empty = 2; */ isEmpty: boolean; /** * @generated from field: bool exceeded_limit = 3; */ exceededLimit: boolean; /** * @generated from field: uint32 total_lines = 4; */ totalLines: number; /** * @generated from field: uint32 file_size = 5; */ fileSize: number; /** * @generated from field: string path = 7; */ path: string; /** * @generated from field: optional agent.v1.ReadRange read_range = 8; */ readRange?: ReadRange; /** * @generated from oneof agent.v1.ReadToolSuccess.output */ output: | { /** * @generated from field: string content = 1; */ value: string; case: "content"; } | { /** * @generated from field: bytes data = 6; */ value: Uint8Array; case: "data"; } | { /** * @generated from field: bytes data_blob_id = 9; */ value: Uint8Array; case: "dataBlobId"; } | { /** * @generated from field: bytes content_blob_id = 10; */ value: Uint8Array; case: "contentBlobId"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ReadToolSuccess. * Use `create(ReadToolSuccessSchema)` to create a new message. */ export const ReadToolSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 324); /** * @generated from message agent.v1.ReadToolError */ export type ReadToolError = Message<"agent.v1.ReadToolError"> & { /** * @generated from field: string error_message = 1; */ errorMessage: string; }; /** * Describes the message agent.v1.ReadToolError. * Use `create(ReadToolErrorSchema)` to create a new message. */ export const ReadToolErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 325); /** * @generated from message agent.v1.RecordScreenArgs */ export type RecordScreenArgs = Message<"agent.v1.RecordScreenArgs"> & { /** * @generated from field: int32 mode = 1; */ mode: number; /** * @generated from field: string tool_call_id = 2; */ toolCallId: string; /** * Custom filename for SAVE_RECORDING mode * * @generated from field: optional string save_as_filename = 3; */ saveAsFilename?: string; }; /** * Describes the message agent.v1.RecordScreenArgs. * Use `create(RecordScreenArgsSchema)` to create a new message. */ export const RecordScreenArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 326); /** * @generated from message agent.v1.RecordScreenResult */ export type RecordScreenResult = Message<"agent.v1.RecordScreenResult"> & { /** * @generated from oneof agent.v1.RecordScreenResult.result */ result: | { /** * @generated from field: agent.v1.RecordScreenStartSuccess start_success = 1; */ value: RecordScreenStartSuccess; case: "startSuccess"; } | { /** * @generated from field: agent.v1.RecordScreenSaveSuccess save_success = 2; */ value: RecordScreenSaveSuccess; case: "saveSuccess"; } | { /** * @generated from field: agent.v1.RecordScreenDiscardSuccess discard_success = 3; */ value: RecordScreenDiscardSuccess; case: "discardSuccess"; } | { /** * @generated from field: agent.v1.RecordScreenFailure failure = 4; */ value: RecordScreenFailure; case: "failure"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.RecordScreenResult. * Use `create(RecordScreenResultSchema)` to create a new message. */ export const RecordScreenResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 327); /** * @generated from message agent.v1.RecordScreenStartSuccess */ export type RecordScreenStartSuccess = Message<"agent.v1.RecordScreenStartSuccess"> & { /** * True if a prior recording was cancelled, false otherwise * * @generated from field: bool was_prior_recording_cancelled = 1; */ wasPriorRecordingCancelled: boolean; /** * True if save_as_filename arg was passed to start tool and ignored * * @generated from field: bool was_save_as_filename_ignored = 2; */ wasSaveAsFilenameIgnored: boolean; }; /** * Describes the message agent.v1.RecordScreenStartSuccess. * Use `create(RecordScreenStartSuccessSchema)` to create a new message. */ export const RecordScreenStartSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 328); /** * @generated from message agent.v1.RecordScreenSaveSuccess */ export type RecordScreenSaveSuccess = Message<"agent.v1.RecordScreenSaveSuccess"> & { /** * Path to the saved recording file * * @generated from field: string path = 1; */ path: string; /** * Duration of the recording in milliseconds * * @generated from field: int64 recording_duration_ms = 2; */ recordingDurationMs: bigint; /** * Set if save_as_filename was invalid and default path was used instead * * @generated from field: optional int32 requested_file_path_rejected_reason = 3; */ requestedFilePathRejectedReason?: number; }; /** * Describes the message agent.v1.RecordScreenSaveSuccess. * Use `create(RecordScreenSaveSuccessSchema)` to create a new message. */ export const RecordScreenSaveSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 329); /** * Empty message - recording discarded successfully * * @generated from message agent.v1.RecordScreenDiscardSuccess */ export type RecordScreenDiscardSuccess = Message<"agent.v1.RecordScreenDiscardSuccess"> & {}; /** * Describes the message agent.v1.RecordScreenDiscardSuccess. * Use `create(RecordScreenDiscardSuccessSchema)` to create a new message. */ export const RecordScreenDiscardSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 330); /** * @generated from message agent.v1.RecordScreenFailure */ export type RecordScreenFailure = Message<"agent.v1.RecordScreenFailure"> & { /** * Error message * * @generated from field: string error = 1; */ error: string; }; /** * Describes the message agent.v1.RecordScreenFailure. * Use `create(RecordScreenFailureSchema)` to create a new message. */ export const RecordScreenFailureSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 331); /** * @generated from message agent.v1.CursorPackagePrompt */ export type CursorPackagePrompt = Message<"agent.v1.CursorPackagePrompt"> & { /** * @generated from field: string name = 1; */ name: string; /** * @generated from field: string file_path = 2; */ filePath: string; }; /** * Describes the message agent.v1.CursorPackagePrompt. * Use `create(CursorPackagePromptSchema)` to create a new message. */ export const CursorPackagePromptSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 332); /** * @generated from message agent.v1.CursorPackage */ export type CursorPackage = Message<"agent.v1.CursorPackage"> & { /** * @generated from field: string name = 1; */ name: string; /** * @generated from field: string description = 2; */ description: string; /** * @generated from field: string folder_path = 3; */ folderPath: string; /** * @generated from field: bool enabled = 4; */ enabled: boolean; /** * @generated from field: optional string parse_error = 5; */ parseError?: string; /** * @generated from field: repeated agent.v1.CursorPackagePrompt prompts = 6; */ prompts: CursorPackagePrompt[]; /** * @generated from field: string readme_file_path = 7; */ readmeFilePath: string; /** * @generated from field: int32 package_type = 8; */ packageType: number; }; /** * Describes the message agent.v1.CursorPackage. * Use `create(CursorPackageSchema)` to create a new message. */ export const CursorPackageSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 333); /** * TODO: you should be able to override / configure this list in your .vscode settings not exactly sure what that should look like... but i guess you should be able to specify an override URL because we use URLs for identifying repos and maybe you should be able to specify additional buckets too... like in the jane street case: i guess jane street should have some default buckets * * @generated from message agent.v1.RepositoryIndexingInfo */ export type RepositoryIndexingInfo = Message<"agent.v1.RepositoryIndexingInfo"> & { /** * the relative path in the current workspace this is useful for locating the repo and identifying what repo a given file is in this should be unique for different repositories (I think) * * @generated from field: string relative_workspace_path = 1; */ relativeWorkspacePath: string; /** * a git repo may have multiple remotes at the server we choose the remote (either origin, or the one we have embedded, or something else) invariant: len(remote_urls) == len(remote_names) * * @generated from field: repeated string remote_urls = 2; */ remoteUrls: string[]; /** * @generated from field: repeated string remote_names = 3; */ remoteNames: string[]; /** * @generated from field: string repo_name = 4; */ repoName: string; /** * @generated from field: string repo_owner = 5; */ repoOwner: string; /** * @generated from field: bool is_tracked = 6; */ isTracked: boolean; /** * If this is local * * @generated from field: bool is_local = 7; */ isLocal: boolean; /** * the orthogonal transform seed if sent from the client! if the client sends up the transform seed then we use that for the orthogonal transform instead of the value stored in the database * * @generated from field: optional double orthogonal_transform_seed = 8; */ orthogonalTransformSeed?: number; /** * The encrypted workspace uri for the repository. * * @generated from field: string workspace_uri = 9; */ workspaceUri: string; /** * The encryption key for partial paths * * @generated from field: string path_encryption_key = 10; */ pathEncryptionKey: string; }; /** * Describes the message agent.v1.RepositoryIndexingInfo. * Use `create(RepositoryIndexingInfoSchema)` to create a new message. */ export const RepositoryIndexingInfoSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 334); /** * @generated from message agent.v1.RequestContextArgs */ export type RequestContextArgs = Message<"agent.v1.RequestContextArgs"> & { /** * @generated from field: optional string notes_session_id = 2; */ notesSessionId?: string; /** * @generated from field: optional string workspace_id = 3; */ workspaceId?: string; }; /** * Describes the message agent.v1.RequestContextArgs. * Use `create(RequestContextArgsSchema)` to create a new message. */ export const RequestContextArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 335); /** * @generated from message agent.v1.RequestContextResult */ export type RequestContextResult = Message<"agent.v1.RequestContextResult"> & { /** * @generated from oneof agent.v1.RequestContextResult.result */ result: | { /** * @generated from field: agent.v1.RequestContextSuccess success = 1; */ value: RequestContextSuccess; case: "success"; } | { /** * @generated from field: agent.v1.RequestContextError error = 2; */ value: RequestContextError; case: "error"; } | { /** * @generated from field: agent.v1.RequestContextRejected rejected = 3; */ value: RequestContextRejected; case: "rejected"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.RequestContextResult. * Use `create(RequestContextResultSchema)` to create a new message. */ export const RequestContextResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 336); /** * @generated from message agent.v1.RequestContextSuccess */ export type RequestContextSuccess = Message<"agent.v1.RequestContextSuccess"> & { /** * @generated from field: agent.v1.RequestContext request_context = 1; */ requestContext?: RequestContext; }; /** * Describes the message agent.v1.RequestContextSuccess. * Use `create(RequestContextSuccessSchema)` to create a new message. */ export const RequestContextSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 337); /** * @generated from message agent.v1.RequestContextError */ export type RequestContextError = Message<"agent.v1.RequestContextError"> & { /** * @generated from field: string error = 1; */ error: string; }; /** * Describes the message agent.v1.RequestContextError. * Use `create(RequestContextErrorSchema)` to create a new message. */ export const RequestContextErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 338); /** * @generated from message agent.v1.RequestContextRejected */ export type RequestContextRejected = Message<"agent.v1.RequestContextRejected"> & { /** * @generated from field: string reason = 1; */ reason: string; }; /** * Describes the message agent.v1.RequestContextRejected. * Use `create(RequestContextRejectedSchema)` to create a new message. */ export const RequestContextRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 339); /** * same as SelectedImage, but with the data field is the full image data * * @generated from message agent.v1.ImageProto */ export type ImageProto = Message<"agent.v1.ImageProto"> & { /** * @generated from field: bytes data = 1; */ data: Uint8Array; /** * @generated from field: string uuid = 2; */ uuid: string; /** * @generated from field: string path = 3; */ path: string; /** * @generated from field: agent.v1.ImageProto_Dimension dimension = 4; */ dimension?: ImageProto_Dimension; /** * @generated from field: optional string task_specific_description = 6; */ taskSpecificDescription?: string; /** * @generated from field: string mime_type = 7; */ mimeType: string; }; /** * Describes the message agent.v1.ImageProto. * Use `create(ImageProtoSchema)` to create a new message. */ export const ImageProtoSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 340); /** * @generated from message agent.v1.ImageProto_Dimension */ export type ImageProto_Dimension = Message<"agent.v1.ImageProto_Dimension"> & { /** * @generated from field: int32 width = 1; */ width: number; /** * @generated from field: int32 height = 2; */ height: number; }; /** * Describes the message agent.v1.ImageProto_Dimension. * Use `create(ImageProto_DimensionSchema)` to create a new message. */ export const ImageProto_DimensionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 341); /** * Git repository information for a workspace * * @generated from message agent.v1.GitRepoInfo */ export type GitRepoInfo = Message<"agent.v1.GitRepoInfo"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: string status = 2; */ status: string; /** * @generated from field: string branch_name = 3; */ branchName: string; /** * @generated from field: optional string remote_url = 4; */ remoteUrl?: string; }; /** * Describes the message agent.v1.GitRepoInfo. * Use `create(GitRepoInfoSchema)` to create a new message. */ export const GitRepoInfoSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 342); /** * Environment details for system prompt/context * * @generated from message agent.v1.RequestContextEnv */ export type RequestContextEnv = Message<"agent.v1.RequestContextEnv"> & { /** * @generated from field: string os_version = 1; */ osVersion: string; /** * @generated from field: repeated string workspace_paths = 2; */ workspacePaths: string[]; /** * @generated from field: string shell = 3; */ shell: string; /** * @generated from field: bool sandbox_enabled = 5; */ sandboxEnabled: boolean; /** * @generated from field: string terminals_folder = 7; */ terminalsFolder: string; /** * @generated from field: string agent_shared_notes_folder = 8; */ agentSharedNotesFolder: string; /** * @generated from field: string agent_conversation_notes_folder = 9; */ agentConversationNotesFolder: string; /** * @generated from field: string time_zone = 10; */ timeZone: string; /** * Project-specific folder for storing artifacts, computed client-side as ~/.cursor/projects/{slug}/ * * @generated from field: string project_folder = 11; */ projectFolder: string; /** * Folder where agent conversation transcripts are stored * * @generated from field: string agent_transcripts_folder = 12; */ agentTranscriptsFolder: string; }; /** * Describes the message agent.v1.RequestContextEnv. * Use `create(RequestContextEnvSchema)` to create a new message. */ export const RequestContextEnvSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 343); /** * @generated from message agent.v1.DebugModeConfig */ export type DebugModeConfig = Message<"agent.v1.DebugModeConfig"> & { /** * @generated from field: string log_path = 1; */ logPath: string; /** * @generated from field: string server_endpoint = 2; */ serverEndpoint: string; }; /** * Describes the message agent.v1.DebugModeConfig. * Use `create(DebugModeConfigSchema)` to create a new message. */ export const DebugModeConfigSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 344); /** * @generated from message agent.v1.SkillDescriptor */ export type SkillDescriptor = Message<"agent.v1.SkillDescriptor"> & { /** * @generated from field: string name = 1; */ name: string; /** * @generated from field: string description = 2; */ description: string; /** * @generated from field: string folder_path = 3; */ folderPath: string; /** * @generated from field: bool enabled = 4; */ enabled: boolean; /** * @generated from field: optional string parse_error = 5; */ parseError?: string; /** * @generated from field: string readme_file_path = 6; */ readmeFilePath: string; /** * @generated from field: int32 package_type = 7; */ packageType: number; }; /** * Describes the message agent.v1.SkillDescriptor. * Use `create(SkillDescriptorSchema)` to create a new message. */ export const SkillDescriptorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 345); /** * @generated from message agent.v1.SkillOptions */ export type SkillOptions = Message<"agent.v1.SkillOptions"> & { /** * @generated from field: repeated agent.v1.SkillDescriptor skill_descriptors = 1; */ skillDescriptors: SkillDescriptor[]; }; /** * Describes the message agent.v1.SkillOptions. * Use `create(SkillOptionsSchema)` to create a new message. */ export const SkillOptionsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 346); /** * @generated from message agent.v1.RequestContext */ export type RequestContext = Message<"agent.v1.RequestContext"> & { /** * All rules, categorized by the embedded type * * @generated from field: repeated agent.v1.CursorRule rules = 2; */ rules: CursorRule[]; /** * @generated from field: agent.v1.RequestContextEnv env = 4; */ env?: RequestContextEnv; /** * @generated from field: repeated agent.v1.RepositoryIndexingInfo repository_info = 6; */ repositoryInfo: RepositoryIndexingInfo[]; /** * @generated from field: repeated agent.v1.McpToolDefinition tools = 7; */ tools: McpToolDefinition[]; /** * @generated from field: optional string conversation_notes_listing = 8; */ conversationNotesListing?: string; /** * @generated from field: optional string shared_notes_listing = 9; */ sharedNotesListing?: string; /** * @generated from field: repeated agent.v1.GitRepoInfo git_repos = 11; */ gitRepos: GitRepoInfo[]; /** * @generated from field: repeated agent.v1.LsDirectoryTreeNode project_layouts = 13; */ projectLayouts: LsDirectoryTreeNode[]; /** * @generated from field: repeated agent.v1.McpInstructions mcp_instructions = 14; */ mcpInstructions: McpInstructions[]; /** * @generated from field: optional agent.v1.DebugModeConfig debug_mode_config = 15; */ debugModeConfig?: DebugModeConfig; /** * @generated from field: optional string cloud_rule = 16; */ cloudRule?: string; /** * @generated from field: optional bool web_search_enabled = 17; */ webSearchEnabled?: boolean; /** * @generated from field: optional agent.v1.SkillOptions skill_options = 18; */ skillOptions?: SkillOptions; /** * @generated from field: optional bool repository_info_should_query_prod = 19; */ repositoryInfoShouldQueryProd?: boolean; /** * @generated from field: map file_contents = 20; */ fileContents: { [key: string]: string }; /** * Content of the user-intent/index.md file summarizing past conversations * * @generated from field: optional string user_intent_summary = 21; */ userIntentSummary?: string; /** * Local custom subagent definitions loaded from workspace configuration * * @generated from field: repeated agent.v1.CustomSubagent custom_subagents = 22; */ customSubagents: CustomSubagent[]; /** * MCP file system options for agent MCP tool descriptor access * * @generated from field: optional agent.v1.McpFileSystemOptions mcp_file_system_options = 23; */ mcpFileSystemOptions?: McpFileSystemOptions; }; /** * Describes the message agent.v1.RequestContext. * Use `create(RequestContextSchema)` to create a new message. */ export const RequestContextSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 347); /** * @generated from message agent.v1.SandboxPolicy */ export type SandboxPolicy = Message<"agent.v1.SandboxPolicy"> & { /** * @generated from field: int32 type = 1; */ type: number; /** * @generated from field: optional bool network_access = 2; */ networkAccess?: boolean; /** * @generated from field: repeated string additional_readwrite_paths = 3; */ additionalReadwritePaths: string[]; /** * @generated from field: repeated string additional_readonly_paths = 4; */ additionalReadonlyPaths: string[]; /** * @generated from field: optional string debug_output_dir = 5; */ debugOutputDir?: string; /** * @generated from field: optional bool block_git_writes = 6; */ blockGitWrites?: boolean; /** * If true, excludes default tmp paths (/tmp/, /private/tmp/, /var/folders/) from the sandbox writable paths. Useful for testing readonly behavior. * * @generated from field: optional bool disable_tmp_write = 7; */ disableTmpWrite?: boolean; }; /** * Describes the message agent.v1.SandboxPolicy. * Use `create(SandboxPolicySchema)` to create a new message. */ export const SandboxPolicySchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 348); /** * @generated from message agent.v1.SelectedImage */ export type SelectedImage = Message<"agent.v1.SelectedImage"> & { /** * @generated from field: string uuid = 2; */ uuid: string; /** * @generated from field: string path = 3; */ path: string; /** * @generated from field: agent.v1.SelectedImage_Dimension dimension = 4; */ dimension?: SelectedImage_Dimension; /** * @generated from field: string mime_type = 7; */ mimeType: string; /** * @generated from oneof agent.v1.SelectedImage.data_or_blob_id */ dataOrBlobId: | { /** * @generated from field: bytes blob_id = 1; */ value: Uint8Array; case: "blobId"; } | { /** * @generated from field: bytes data = 8; */ value: Uint8Array; case: "data"; } | { /** * @generated from field: agent.v1.SelectedImage_BlobIdWithData blob_id_with_data = 9; */ value: SelectedImage_BlobIdWithData; case: "blobIdWithData"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.SelectedImage. * Use `create(SelectedImageSchema)` to create a new message. */ export const SelectedImageSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 349); /** * Contains both blob_id and data together, for when the client has both and wants to populate the server-side cache without re-uploading * * @generated from message agent.v1.SelectedImage_BlobIdWithData */ export type SelectedImage_BlobIdWithData = Message<"agent.v1.SelectedImage_BlobIdWithData"> & { /** * @generated from field: bytes blob_id = 1; */ blobId: Uint8Array; /** * @generated from field: bytes data = 2; */ data: Uint8Array; }; /** * Describes the message agent.v1.SelectedImage_BlobIdWithData. * Use `create(SelectedImage_BlobIdWithDataSchema)` to create a new message. */ export const SelectedImage_BlobIdWithDataSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 350); /** * @generated from message agent.v1.SelectedImage_Dimension */ export type SelectedImage_Dimension = Message<"agent.v1.SelectedImage_Dimension"> & { /** * @generated from field: int32 width = 1; */ width: number; /** * @generated from field: int32 height = 2; */ height: number; }; /** * Describes the message agent.v1.SelectedImage_Dimension. * Use `create(SelectedImage_DimensionSchema)` to create a new message. */ export const SelectedImage_DimensionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 351); /** * Extra context entry that can be stored inline or as a blob reference * * @generated from message agent.v1.ExtraContextEntry */ export type ExtraContextEntry = Message<"agent.v1.ExtraContextEntry"> & { /** * @generated from oneof agent.v1.ExtraContextEntry.data_or_blob_id */ dataOrBlobId: | { /** * @generated from field: string data = 1; */ value: string; case: "data"; } | { /** * @generated from field: bytes blob_id = 2; */ value: Uint8Array; case: "blobId"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ExtraContextEntry. * Use `create(ExtraContextEntrySchema)` to create a new message. */ export const ExtraContextEntrySchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 352); /** * A selected file from the UI * * @generated from message agent.v1.SelectedFile */ export type SelectedFile = Message<"agent.v1.SelectedFile"> & { /** * @generated from field: string content = 1; */ content: string; /** * This is the full path * * @generated from field: string path = 2; */ path: string; /** * @generated from field: optional string relative_path = 3; */ relativePath?: string; }; /** * Describes the message agent.v1.SelectedFile. * Use `create(SelectedFileSchema)` to create a new message. */ export const SelectedFileSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 353); /** * A selected code selection from the UI * * @generated from message agent.v1.SelectedCodeSelection */ export type SelectedCodeSelection = Message<"agent.v1.SelectedCodeSelection"> & { /** * @generated from field: string content = 1; */ content: string; /** * This is the full path * * @generated from field: string path = 2; */ path: string; /** * @generated from field: optional string relative_path = 3; */ relativePath?: string; /** * @generated from field: agent.v1.Range range = 4; */ range?: Range; }; /** * Describes the message agent.v1.SelectedCodeSelection. * Use `create(SelectedCodeSelectionSchema)` to create a new message. */ export const SelectedCodeSelectionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 354); /** * A selected terminal from the UI * * @generated from message agent.v1.SelectedTerminal */ export type SelectedTerminal = Message<"agent.v1.SelectedTerminal"> & { /** * @generated from field: string content = 1; */ content: string; /** * @generated from field: optional string title = 2; */ title?: string; /** * @generated from field: optional string path = 3; */ path?: string; }; /** * Describes the message agent.v1.SelectedTerminal. * Use `create(SelectedTerminalSchema)` to create a new message. */ export const SelectedTerminalSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 355); /** * A selected terminal selection from the UI * * @generated from message agent.v1.SelectedTerminalSelection */ export type SelectedTerminalSelection = Message<"agent.v1.SelectedTerminalSelection"> & { /** * @generated from field: string content = 1; */ content: string; /** * @generated from field: optional string title = 2; */ title?: string; /** * @generated from field: optional string path = 3; */ path?: string; /** * @generated from field: agent.v1.Range range = 4; */ range?: Range; }; /** * Describes the message agent.v1.SelectedTerminalSelection. * Use `create(SelectedTerminalSelectionSchema)` to create a new message. */ export const SelectedTerminalSelectionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 356); /** * A selected folder from the UI * * @generated from message agent.v1.SelectedFolder */ export type SelectedFolder = Message<"agent.v1.SelectedFolder"> & { /** * This is the full path * * @generated from field: string path = 1; */ path: string; /** * @generated from field: optional string relative_path = 2; */ relativePath?: string; /** * @generated from field: agent.v1.LsDirectoryTreeNode directory_tree = 3; */ directoryTree?: LsDirectoryTreeNode; }; /** * Describes the message agent.v1.SelectedFolder. * Use `create(SelectedFolderSchema)` to create a new message. */ export const SelectedFolderSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 357); /** * An external link manually attached by the user * * @generated from message agent.v1.SelectedExternalLink */ export type SelectedExternalLink = Message<"agent.v1.SelectedExternalLink"> & { /** * @generated from field: string url = 1; */ url: string; /** * @generated from field: string uuid = 2; */ uuid: string; /** * For local PDF files Base64-encoded PDF content * * @generated from field: optional string pdf_content = 3; */ pdfContent?: string; /** * @generated from field: optional bool is_pdf = 4; */ isPdf?: boolean; /** * @generated from field: optional string filename = 5; */ filename?: string; }; /** * Describes the message agent.v1.SelectedExternalLink. * Use `create(SelectedExternalLinkSchema)` to create a new message. */ export const SelectedExternalLinkSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 358); /** * A cursor rule manually attached by the user * * @generated from message agent.v1.SelectedCursorRule */ export type SelectedCursorRule = Message<"agent.v1.SelectedCursorRule"> & { /** * @generated from field: agent.v1.CursorRule rule = 1; */ rule?: CursorRule; }; /** * Describes the message agent.v1.SelectedCursorRule. * Use `create(SelectedCursorRuleSchema)` to create a new message. */ export const SelectedCursorRuleSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 359); /** * Git diff (uncommitted changes in working tree) * * @generated from message agent.v1.SelectedGitDiff */ export type SelectedGitDiff = Message<"agent.v1.SelectedGitDiff"> & { /** * Raw git diff output * * @generated from field: string content = 1; */ content: string; }; /** * Describes the message agent.v1.SelectedGitDiff. * Use `create(SelectedGitDiffSchema)` to create a new message. */ export const SelectedGitDiffSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 360); /** * Git diff from branch to main * * @generated from message agent.v1.SelectedGitDiffFromBranchToMain */ export type SelectedGitDiffFromBranchToMain = Message<"agent.v1.SelectedGitDiffFromBranchToMain"> & { /** * Raw git diff output * * @generated from field: string content = 1; */ content: string; }; /** * Describes the message agent.v1.SelectedGitDiffFromBranchToMain. * Use `create(SelectedGitDiffFromBranchToMainSchema)` to create a new message. */ export const SelectedGitDiffFromBranchToMainSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 361); /** * A git commit manually attached by the user * * @generated from message agent.v1.SelectedGitCommit */ export type SelectedGitCommit = Message<"agent.v1.SelectedGitCommit"> & { /** * @generated from field: string sha = 1; */ sha: string; /** * @generated from field: string message = 2; */ message: string; /** * @generated from field: optional string description = 3; */ description?: string; /** * Raw git diff output for this commit * * @generated from field: string diff = 4; */ diff: string; }; /** * Describes the message agent.v1.SelectedGitCommit. * Use `create(SelectedGitCommitSchema)` to create a new message. */ export const SelectedGitCommitSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 362); /** * A pull request manually attached by the user via @mention Uses the same folder structure as ViewedPullRequest for consistency * * @generated from message agent.v1.SelectedPullRequest */ export type SelectedPullRequest = Message<"agent.v1.SelectedPullRequest"> & { /** * @generated from field: int32 number = 1; */ number: number; /** * @generated from field: string url = 2; */ url: string; /** * @generated from field: optional string title = 3; */ title?: string; /** * Path to the folder containing PR details (diffs, metadata, etc.) * * @generated from field: string folder_path = 4; */ folderPath: string; /** * Summary JSON containing file list and diff sizes (contents of summary.json) * * @generated from field: optional string summary_json = 5; */ summaryJson?: string; /** * PR description/body * * @generated from field: optional string description = 6; */ description?: string; /** * If set, other fields are empty and data should be fetched from the blob * * @generated from field: optional bytes blob_id = 7; */ blobId?: Uint8Array; }; /** * Describes the message agent.v1.SelectedPullRequest. * Use `create(SelectedPullRequestSchema)` to create a new message. */ export const SelectedPullRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 363); /** * A selection from a pull request diff (for files that may not exist on disk) * * @generated from message agent.v1.SelectedGitPRDiffSelection */ export type SelectedGitPRDiffSelection = Message<"agent.v1.SelectedGitPRDiffSelection"> & { /** * Full URL to the pull request * * @generated from field: string pr_url = 1; */ prUrl: string; /** * Path to the file within the PR * * @generated from field: string file_path = 2; */ filePath: string; /** * Start line in the diff * * @generated from field: int32 start_line = 3; */ startLine: number; /** * End line in the diff * * @generated from field: int32 end_line = 4; */ endLine: number; /** * The diff content for this file (or selection) * * @generated from field: optional string diff_content = 5; */ diffContent?: string; /** * If set, other fields are empty and data should be fetched from the blob * * @generated from field: optional bytes blob_id = 6; */ blobId?: Uint8Array; }; /** * Describes the message agent.v1.SelectedGitPRDiffSelection. * Use `create(SelectedGitPRDiffSelectionSchema)` to create a new message. */ export const SelectedGitPRDiffSelectionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 364); /** * A cursor command manually attached by the user * * @generated from message agent.v1.SelectedCursorCommand */ export type SelectedCursorCommand = Message<"agent.v1.SelectedCursorCommand"> & { /** * @generated from field: string name = 1; */ name: string; /** * @generated from field: string content = 2; */ content: string; }; /** * Describes the message agent.v1.SelectedCursorCommand. * Use `create(SelectedCursorCommandSchema)` to create a new message. */ export const SelectedCursorCommandSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 365); /** * A documentation manually attached by the user * * @generated from message agent.v1.SelectedDocumentation */ export type SelectedDocumentation = Message<"agent.v1.SelectedDocumentation"> & { /** * @generated from field: string doc_id = 1; */ docId: string; /** * @generated from field: string name = 2; */ name: string; }; /** * Describes the message agent.v1.SelectedDocumentation. * Use `create(SelectedDocumentationSchema)` to create a new message. */ export const SelectedDocumentationSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 366); /** * A past chat manually attached by the user (transcript file) * * @generated from message agent.v1.SelectedPastChat */ export type SelectedPastChat = Message<"agent.v1.SelectedPastChat"> & { /** * @generated from field: string agent_id = 1; */ agentId: string; /** * @generated from field: string name = 2; */ name: string; }; /** * Describes the message agent.v1.SelectedPastChat. * Use `create(SelectedPastChatSchema)` to create a new message. */ export const SelectedPastChatSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 367); /** * A call frame from a stack trace * * @generated from message agent.v1.CallFrame */ export type CallFrame = Message<"agent.v1.CallFrame"> & { /** * @generated from field: optional string function_name = 1; */ functionName?: string; /** * @generated from field: optional string url = 2; */ url?: string; /** * @generated from field: optional int32 line_number = 3; */ lineNumber?: number; /** * @generated from field: optional int32 column_number = 4; */ columnNumber?: number; }; /** * Describes the message agent.v1.CallFrame. * Use `create(CallFrameSchema)` to create a new message. */ export const CallFrameSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 368); /** * A stack trace * * @generated from message agent.v1.StackTrace */ export type StackTrace = Message<"agent.v1.StackTrace"> & { /** * @generated from field: repeated agent.v1.CallFrame call_frames = 1; */ callFrames: CallFrame[]; /** * @generated from field: optional string raw_stack_trace = 2; */ rawStackTrace?: string; }; /** * Describes the message agent.v1.StackTrace. * Use `create(StackTraceSchema)` to create a new message. */ export const StackTraceSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 369); /** * A console log entry from the runtime * * @generated from message agent.v1.SelectedConsoleLog */ export type SelectedConsoleLog = Message<"agent.v1.SelectedConsoleLog"> & { /** * @generated from field: string message = 1; */ message: string; /** * * Unix timestamp in milliseconds when this log entry was created * * @generated from field: double timestamp = 2; */ timestamp: number; /** * @generated from field: string level = 3; */ level: string; /** * @generated from field: string client_name = 4; */ clientName: string; /** * @generated from field: string session_id = 5; */ sessionId: string; /** * @generated from field: optional agent.v1.StackTrace stack_trace = 6; */ stackTrace?: StackTrace; /** * @generated from field: optional string object_data_json = 7; */ objectDataJson?: string; }; /** * Describes the message agent.v1.SelectedConsoleLog. * Use `create(SelectedConsoleLogSchema)` to create a new message. */ export const SelectedConsoleLogSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 370); /** * A UI element picked by the user from the runtime * * @generated from message agent.v1.SelectedUIElement */ export type SelectedUIElement = Message<"agent.v1.SelectedUIElement"> & { /** * @generated from field: string element = 1; */ element: string; /** * @generated from field: string xpath = 2; */ xpath: string; /** * @generated from field: string text_content = 3; */ textContent: string; /** * @generated from field: string extra = 4; */ extra: string; /** * @generated from field: optional string component = 5; */ component?: string; /** * @generated from field: optional string component_props_json = 6; */ componentPropsJson?: string; }; /** * Describes the message agent.v1.SelectedUIElement. * Use `create(SelectedUIElementSchema)` to create a new message. */ export const SelectedUIElementSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 371); /** * A subagent selected by the user from the slash menu * * @generated from message agent.v1.SelectedSubagent */ export type SelectedSubagent = Message<"agent.v1.SelectedSubagent"> & { /** * @generated from field: string name = 1; */ name: string; }; /** * Describes the message agent.v1.SelectedSubagent. * Use `create(SelectedSubagentSchema)` to create a new message. */ export const SelectedSubagentSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 372); /** * Container for selected context from the UI * * @generated from message agent.v1.SelectedContext */ export type SelectedContext = Message<"agent.v1.SelectedContext"> & { /** * @generated from field: repeated agent.v1.SelectedImage selected_images = 1; */ selectedImages: SelectedImage[]; /** * @generated from field: optional agent.v1.InvocationContext invocation_context = 2; */ invocationContext?: InvocationContext; /** * Temporary hack for IDE-based context (@filename, @Diff, etc.) in background agents only. TODO: remove once proper IDE context format is implemented. * * @generated from field: repeated string extra_context = 3; */ extraContext: string[]; /** * @generated from field: repeated agent.v1.ExtraContextEntry extra_context_entries = 16; */ extraContextEntries: ExtraContextEntry[]; /** * New context types * * @generated from field: repeated agent.v1.SelectedFile files = 4; */ files: SelectedFile[]; /** * @generated from field: repeated agent.v1.SelectedCodeSelection code_selections = 5; */ codeSelections: SelectedCodeSelection[]; /** * @generated from field: repeated agent.v1.SelectedTerminal terminals = 6; */ terminals: SelectedTerminal[]; /** * @generated from field: repeated agent.v1.SelectedTerminalSelection terminal_selections = 7; */ terminalSelections: SelectedTerminalSelection[]; /** * @generated from field: repeated agent.v1.SelectedFolder folders = 8; */ folders: SelectedFolder[]; /** * @generated from field: repeated agent.v1.SelectedExternalLink external_links = 9; */ externalLinks: SelectedExternalLink[]; /** * @generated from field: repeated agent.v1.SelectedCursorRule cursor_rules = 10; */ cursorRules: SelectedCursorRule[]; /** * @generated from field: optional agent.v1.SelectedGitDiff git_diff = 18; */ gitDiff?: SelectedGitDiff; /** * @generated from field: optional agent.v1.SelectedGitDiffFromBranchToMain git_diff_from_branch_to_main = 11; */ gitDiffFromBranchToMain?: SelectedGitDiffFromBranchToMain; /** * @generated from field: repeated agent.v1.SelectedCursorCommand cursor_commands = 12; */ cursorCommands: SelectedCursorCommand[]; /** * @generated from field: repeated agent.v1.SelectedDocumentation documentations = 13; */ documentations: SelectedDocumentation[]; /** * @generated from field: repeated agent.v1.SelectedUIElement ui_elements = 14; */ uiElements: SelectedUIElement[]; /** * @generated from field: repeated agent.v1.SelectedConsoleLog console_logs = 15; */ consoleLogs: SelectedConsoleLog[]; /** * @generated from field: repeated agent.v1.SelectedGitCommit git_commits = 17; */ gitCommits: SelectedGitCommit[]; /** * @generated from field: repeated agent.v1.SelectedPastChat past_chats = 19; */ pastChats: SelectedPastChat[]; /** * @generated from field: repeated agent.v1.SelectedGitPRDiffSelection git_pr_diff_selections = 20; */ gitPrDiffSelections: SelectedGitPRDiffSelection[]; /** * @generated from field: repeated agent.v1.SelectedPullRequest selected_pull_requests = 21; */ selectedPullRequests: SelectedPullRequest[]; /** * @generated from field: repeated agent.v1.SelectedSubagent selected_subagents = 22; */ selectedSubagents: SelectedSubagent[]; }; /** * Describes the message agent.v1.SelectedContext. * Use `create(SelectedContextSchema)` to create a new message. */ export const SelectedContextSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 373); /** * InvocationContext represents the context from the external app/integration that triggered this agent request. * * @generated from message agent.v1.InvocationContext */ export type InvocationContext = Message<"agent.v1.InvocationContext"> & { /** * @generated from oneof agent.v1.InvocationContext.data */ data: | { /** * @generated from field: agent.v1.InvocationContext_SlackThread slack_thread = 1; */ value: InvocationContext_SlackThread; case: "slackThread"; } | { /** * @generated from field: agent.v1.InvocationContext_GithubPR github_pr = 2; */ value: InvocationContext_GithubPR; case: "githubPr"; } | { /** * @generated from field: agent.v1.InvocationContext_IdeState ide_state = 3; */ value: InvocationContext_IdeState; case: "ideState"; } | { /** * @generated from field: bytes blob_id = 10; */ value: Uint8Array; case: "blobId"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.InvocationContext. * Use `create(InvocationContextSchema)` to create a new message. */ export const InvocationContextSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 374); /** * @generated from message agent.v1.InvocationContext_SlackThread */ export type InvocationContext_SlackThread = Message<"agent.v1.InvocationContext_SlackThread"> & { /** * @generated from field: string thread = 1; */ thread: string; /** * @generated from field: optional string channel_name = 2; */ channelName?: string; /** * @generated from field: optional string channel_purpose = 3; */ channelPurpose?: string; /** * @generated from field: optional string channel_topic = 4; */ channelTopic?: string; }; /** * Describes the message agent.v1.InvocationContext_SlackThread. * Use `create(InvocationContext_SlackThreadSchema)` to create a new message. */ export const InvocationContext_SlackThreadSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 375); /** * @generated from message agent.v1.InvocationContext_GithubPR */ export type InvocationContext_GithubPR = Message<"agent.v1.InvocationContext_GithubPR"> & { /** * @generated from field: string title = 1; */ title: string; /** * @generated from field: string description = 2; */ description: string; /** * @generated from field: string comments = 3; */ comments: string; /** * @generated from field: optional string ci_failures = 4; */ ciFailures?: string; }; /** * Describes the message agent.v1.InvocationContext_GithubPR. * Use `create(InvocationContext_GithubPRSchema)` to create a new message. */ export const InvocationContext_GithubPRSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 376); /** * @generated from message agent.v1.InvocationContext_IdeState */ export type InvocationContext_IdeState = Message<"agent.v1.InvocationContext_IdeState"> & { /** * @generated from field: repeated agent.v1.InvocationContext_IdeState_File visible_files = 1; */ visibleFiles: InvocationContext_IdeState_File[]; /** * @generated from field: repeated agent.v1.InvocationContext_IdeState_File recently_viewed_files = 2; */ recentlyViewedFiles: InvocationContext_IdeState_File[]; /** * PRs currently being viewed in the review editor (if any) * * @generated from field: repeated agent.v1.InvocationContext_IdeState_ViewedPullRequest currently_viewed_prs = 3; */ currentlyViewedPrs: InvocationContext_IdeState_ViewedPullRequest[]; }; /** * Describes the message agent.v1.InvocationContext_IdeState. * Use `create(InvocationContext_IdeStateSchema)` to create a new message. */ export const InvocationContext_IdeStateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 377); /** * @generated from message agent.v1.InvocationContext_IdeState_File */ export type InvocationContext_IdeState_File = Message<"agent.v1.InvocationContext_IdeState_File"> & { /** * This is the full path * * @generated from field: string path = 1; */ path: string; /** * @generated from field: optional string relative_path = 2; */ relativePath?: string; /** * Present if file is currently focused * * @generated from field: optional agent.v1.InvocationContext_IdeState_File_CursorPosition cursor_position = 3; */ cursorPosition?: InvocationContext_IdeState_File_CursorPosition; /** * @generated from field: int32 total_lines = 4; */ totalLines: number; /** * Present for terminal files * * @generated from field: optional string active_command = 5; */ activeCommand?: string; }; /** * Describes the message agent.v1.InvocationContext_IdeState_File. * Use `create(InvocationContext_IdeState_FileSchema)` to create a new message. */ export const InvocationContext_IdeState_FileSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 378); /** * @generated from message agent.v1.InvocationContext_IdeState_File_CursorPosition */ export type InvocationContext_IdeState_File_CursorPosition = Message<"agent.v1.InvocationContext_IdeState_File_CursorPosition"> & { /** * @generated from field: int32 line = 1; */ line: number; /** * @generated from field: string text = 2; */ text: string; }; /** * Describes the message agent.v1.InvocationContext_IdeState_File_CursorPosition. * Use `create(InvocationContext_IdeState_File_CursorPositionSchema)` to create a new message. */ export const InvocationContext_IdeState_File_CursorPositionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 379); /** * Information about a PR currently being viewed in a review editor * * @generated from message agent.v1.InvocationContext_IdeState_ViewedPullRequest */ export type InvocationContext_IdeState_ViewedPullRequest = Message<"agent.v1.InvocationContext_IdeState_ViewedPullRequest"> & { /** * @generated from field: int32 number = 1; */ number: number; /** * @generated from field: string url = 2; */ url: string; /** * @generated from field: optional string title = 3; */ title?: string; /** * Path to the folder containing PR details (diffs, metadata, etc.) * * @generated from field: optional string folder_path = 4; */ folderPath?: string; /** * Summary JSON containing file list and diff sizes (contents of summary.json) * * @generated from field: optional string summary_json = 5; */ summaryJson?: string; /** * PR description/body * * @generated from field: optional string description = 6; */ description?: string; }; /** * Describes the message agent.v1.InvocationContext_IdeState_ViewedPullRequest. * Use `create(InvocationContext_IdeState_ViewedPullRequestSchema)` to create a new message. */ export const InvocationContext_IdeState_ViewedPullRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 380); /** * @generated from message agent.v1.SetupVmEnvironmentArgs */ export type SetupVmEnvironmentArgs = Message<"agent.v1.SetupVmEnvironmentArgs"> & { /** * Command to install runtime dependencies (e.g., "npm install") * * @generated from field: string install_command = 2; */ installCommand: string; /** * @generated from field: string start_command = 3; */ startCommand: string; }; /** * Describes the message agent.v1.SetupVmEnvironmentArgs. * Use `create(SetupVmEnvironmentArgsSchema)` to create a new message. */ export const SetupVmEnvironmentArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 381); /** * Result of VM environment setup operations * * @generated from message agent.v1.SetupVmEnvironmentResult */ export type SetupVmEnvironmentResult = Message<"agent.v1.SetupVmEnvironmentResult"> & { /** * @generated from oneof agent.v1.SetupVmEnvironmentResult.result */ result: | { /** * @generated from field: agent.v1.SetupVmEnvironmentSuccess success = 1; */ value: SetupVmEnvironmentSuccess; case: "success"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.SetupVmEnvironmentResult. * Use `create(SetupVmEnvironmentResultSchema)` to create a new message. */ export const SetupVmEnvironmentResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 382); /** * Successful VM environment setup result * * @generated from message agent.v1.SetupVmEnvironmentSuccess */ export type SetupVmEnvironmentSuccess = Message<"agent.v1.SetupVmEnvironmentSuccess"> & {}; /** * Describes the message agent.v1.SetupVmEnvironmentSuccess. * Use `create(SetupVmEnvironmentSuccessSchema)` to create a new message. */ export const SetupVmEnvironmentSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 383); /** * Tool call structure for SetupVmEnvironment * * @generated from message agent.v1.SetupVmEnvironmentToolCall */ export type SetupVmEnvironmentToolCall = Message<"agent.v1.SetupVmEnvironmentToolCall"> & { /** * Arguments for the tool call * * @generated from field: agent.v1.SetupVmEnvironmentArgs args = 1; */ args?: SetupVmEnvironmentArgs; /** * Result of the tool call (populated after execution) * * @generated from field: agent.v1.SetupVmEnvironmentResult result = 2; */ result?: SetupVmEnvironmentResult; }; /** * Describes the message agent.v1.SetupVmEnvironmentToolCall. * Use `create(SetupVmEnvironmentToolCallSchema)` to create a new message. */ export const SetupVmEnvironmentToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 384); /** * @generated from message agent.v1.ShellCommandParsingResult */ export type ShellCommandParsingResult = Message<"agent.v1.ShellCommandParsingResult"> & { /** * @generated from field: bool parsing_failed = 1; */ parsingFailed: boolean; /** * @generated from field: repeated agent.v1.ShellCommandParsingResult_ExecutableCommand executable_commands = 2; */ executableCommands: ShellCommandParsingResult_ExecutableCommand[]; /** * @generated from field: bool has_redirects = 3; */ hasRedirects: boolean; /** * @generated from field: bool has_command_substitution = 4; */ hasCommandSubstitution: boolean; }; /** * Describes the message agent.v1.ShellCommandParsingResult. * Use `create(ShellCommandParsingResultSchema)` to create a new message. */ export const ShellCommandParsingResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 385); /** * @generated from message agent.v1.ShellCommandParsingResult_ExecutableCommandArg */ export type ShellCommandParsingResult_ExecutableCommandArg = Message<"agent.v1.ShellCommandParsingResult_ExecutableCommandArg"> & { /** * @generated from field: string type = 1; */ type: string; /** * @generated from field: string value = 2; */ value: string; }; /** * Describes the message agent.v1.ShellCommandParsingResult_ExecutableCommandArg. * Use `create(ShellCommandParsingResult_ExecutableCommandArgSchema)` to create a new message. */ export const ShellCommandParsingResult_ExecutableCommandArgSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 386); /** * @generated from message agent.v1.ShellCommandParsingResult_ExecutableCommand */ export type ShellCommandParsingResult_ExecutableCommand = Message<"agent.v1.ShellCommandParsingResult_ExecutableCommand"> & { /** * @generated from field: string name = 1; */ name: string; /** * @generated from field: repeated agent.v1.ShellCommandParsingResult_ExecutableCommandArg args = 2; */ args: ShellCommandParsingResult_ExecutableCommandArg[]; /** * @generated from field: string full_text = 3; */ fullText: string; }; /** * Describes the message agent.v1.ShellCommandParsingResult_ExecutableCommand. * Use `create(ShellCommandParsingResult_ExecutableCommandSchema)` to create a new message. */ export const ShellCommandParsingResult_ExecutableCommandSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 387); /** * @generated from message agent.v1.ShellArgs */ export type ShellArgs = Message<"agent.v1.ShellArgs"> & { /** * @generated from field: string command = 1; */ command: string; /** * @generated from field: string working_directory = 2; */ workingDirectory: string; /** * @generated from field: int32 timeout = 3; */ timeout: number; /** * @generated from field: string tool_call_id = 4; */ toolCallId: string; /** * @generated from field: repeated string simple_commands = 5; */ simpleCommands: string[]; /** * @generated from field: bool has_input_redirect = 6; */ hasInputRedirect: boolean; /** * @generated from field: bool has_output_redirect = 7; */ hasOutputRedirect: boolean; /** * Deprecated: use parsing_result instead @deprecated simpleCommands = []; Deprecated: use parsing_result instead @deprecated hasInputRedirect = false; Deprecated: use parsing_result instead @deprecated hasOutputRedirect = false; * * @generated from field: agent.v1.ShellCommandParsingResult parsing_result = 8; */ parsingResult?: ShellCommandParsingResult; /** * @generated from field: optional agent.v1.SandboxPolicy requested_sandbox_policy = 9; */ requestedSandboxPolicy?: SandboxPolicy; /** * If output size exceeds this threshold (in bytes), write to file instead of inline. If unset or 0, always use inline output. * * @generated from field: optional uint64 file_output_threshold_bytes = 10; */ fileOutputThresholdBytes?: bigint; /** * @generated from field: bool is_background = 11; */ isBackground: boolean; /** * @generated from field: bool skip_approval = 12; */ skipApproval: boolean; /** * @generated from field: int32 timeout_behavior = 13; */ timeoutBehavior: number; /** * Hard timeout: kill the command after this many ms, even if running in background * * @generated from field: optional int32 hard_timeout = 14; */ hardTimeout?: number; }; /** * Describes the message agent.v1.ShellArgs. * Use `create(ShellArgsSchema)` to create a new message. */ export const ShellArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 388); /** * @generated from message agent.v1.ShellResult */ export type ShellResult = Message<"agent.v1.ShellResult"> & { /** * @generated from field: optional agent.v1.SandboxPolicy sandbox_policy = 101; */ sandboxPolicy?: SandboxPolicy; /** * Rendering is affected by this flag, pass forward from args. * * @generated from field: optional bool is_background = 102; */ isBackground?: boolean; /** * Rendering is affected by this flag, pass forward from args. * * @generated from field: optional string terminals_folder = 103; */ terminalsFolder?: string; /** * Process ID, used for backgrounded shells. * * @generated from field: optional uint32 pid = 104; */ pid?: number; /** * @generated from oneof agent.v1.ShellResult.result */ result: | { /** * @generated from field: agent.v1.ShellSuccess success = 1; */ value: ShellSuccess; case: "success"; } | { /** * @generated from field: agent.v1.ShellFailure failure = 2; */ value: ShellFailure; case: "failure"; } | { /** * @generated from field: agent.v1.ShellTimeout timeout = 3; */ value: ShellTimeout; case: "timeout"; } | { /** * @generated from field: agent.v1.ShellRejected rejected = 4; */ value: ShellRejected; case: "rejected"; } | { /** * @generated from field: agent.v1.ShellSpawnError spawn_error = 5; */ value: ShellSpawnError; case: "spawnError"; } | { /** * @generated from field: agent.v1.ShellPermissionDenied permission_denied = 7; */ value: ShellPermissionDenied; case: "permissionDenied"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ShellResult. * Use `create(ShellResultSchema)` to create a new message. */ export const ShellResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 389); /** * @generated from message agent.v1.ShellStreamStdout */ export type ShellStreamStdout = Message<"agent.v1.ShellStreamStdout"> & { /** * @generated from field: string data = 1; */ data: string; }; /** * Describes the message agent.v1.ShellStreamStdout. * Use `create(ShellStreamStdoutSchema)` to create a new message. */ export const ShellStreamStdoutSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 390); /** * @generated from message agent.v1.ShellStreamStderr */ export type ShellStreamStderr = Message<"agent.v1.ShellStreamStderr"> & { /** * @generated from field: string data = 1; */ data: string; }; /** * Describes the message agent.v1.ShellStreamStderr. * Use `create(ShellStreamStderrSchema)` to create a new message. */ export const ShellStreamStderrSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 391); /** * @generated from message agent.v1.ShellStreamExit */ export type ShellStreamExit = Message<"agent.v1.ShellStreamExit"> & { /** * @generated from field: uint32 code = 1; */ code: number; /** * @generated from field: string cwd = 2; */ cwd: string; /** * @generated from field: optional agent.v1.OutputLocation output_location = 3; */ outputLocation?: OutputLocation; /** * @generated from field: bool aborted = 4; */ aborted: boolean; /** * If aborted is true, this field indicates the reason for the abort * * @generated from field: optional int32 abort_reason = 5; */ abortReason?: number; }; /** * Describes the message agent.v1.ShellStreamExit. * Use `create(ShellStreamExitSchema)` to create a new message. */ export const ShellStreamExitSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 392); /** * @generated from message agent.v1.ShellStreamStart */ export type ShellStreamStart = Message<"agent.v1.ShellStreamStart"> & { /** * @generated from field: optional agent.v1.SandboxPolicy sandbox_policy = 1; */ sandboxPolicy?: SandboxPolicy; }; /** * Describes the message agent.v1.ShellStreamStart. * Use `create(ShellStreamStartSchema)` to create a new message. */ export const ShellStreamStartSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 393); /** * @generated from message agent.v1.ShellStreamBackgrounded */ export type ShellStreamBackgrounded = Message<"agent.v1.ShellStreamBackgrounded"> & { /** * @generated from field: uint32 shell_id = 1; */ shellId: number; /** * @generated from field: string command = 2; */ command: string; /** * @generated from field: string working_directory = 3; */ workingDirectory: string; /** * @generated from field: optional uint32 pid = 4; */ pid?: number; /** * The ms_to_wait value that was used for backgrounding, for display purposes * * @generated from field: optional int32 ms_to_wait = 5; */ msToWait?: number; }; /** * Describes the message agent.v1.ShellStreamBackgrounded. * Use `create(ShellStreamBackgroundedSchema)` to create a new message. */ export const ShellStreamBackgroundedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 394); /** * @generated from message agent.v1.ShellStream */ export type ShellStream = Message<"agent.v1.ShellStream"> & { /** * @generated from oneof agent.v1.ShellStream.event */ event: | { /** * @generated from field: agent.v1.ShellStreamStdout stdout = 1; */ value: ShellStreamStdout; case: "stdout"; } | { /** * @generated from field: agent.v1.ShellStreamStderr stderr = 2; */ value: ShellStreamStderr; case: "stderr"; } | { /** * @generated from field: agent.v1.ShellStreamExit exit = 3; */ value: ShellStreamExit; case: "exit"; } | { /** * @generated from field: agent.v1.ShellStreamStart start = 4; */ value: ShellStreamStart; case: "start"; } | { /** * @generated from field: agent.v1.ShellRejected rejected = 5; */ value: ShellRejected; case: "rejected"; } | { /** * @generated from field: agent.v1.ShellPermissionDenied permission_denied = 6; */ value: ShellPermissionDenied; case: "permissionDenied"; } | { /** * @generated from field: agent.v1.ShellStreamBackgrounded backgrounded = 7; */ value: ShellStreamBackgrounded; case: "backgrounded"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ShellStream. * Use `create(ShellStreamSchema)` to create a new message. */ export const ShellStreamSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 395); /** * @generated from message agent.v1.OutputLocation */ export type OutputLocation = Message<"agent.v1.OutputLocation"> & { /** * Absolute path to the output file * * @generated from field: string file_path = 1; */ filePath: string; /** * Size of the output in bytes * * @generated from field: int64 size_bytes = 2; */ sizeBytes: bigint; /** * Number of lines in the output * * @generated from field: int64 line_count = 3; */ lineCount: bigint; }; /** * Describes the message agent.v1.OutputLocation. * Use `create(OutputLocationSchema)` to create a new message. */ export const OutputLocationSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 396); /** * @generated from message agent.v1.ShellSuccess */ export type ShellSuccess = Message<"agent.v1.ShellSuccess"> & { /** * @generated from field: string command = 1; */ command: string; /** * @generated from field: string working_directory = 2; */ workingDirectory: string; /** * @generated from field: int32 exit_code = 3; */ exitCode: number; /** * @generated from field: string signal = 4; */ signal: string; /** * Inline stdout - populated when write_output_to_file is false, empty when true * * @generated from field: string stdout = 5; */ stdout: string; /** * Inline stderr - populated when write_output_to_file is false, empty when true * * @generated from field: string stderr = 6; */ stderr: string; /** * @generated from field: int32 execution_time = 7; */ executionTime: number; /** * File-based output - populated when write_output_to_file is true (chronologically merged stdout+stderr) * * @generated from field: optional agent.v1.OutputLocation output_location = 8; */ outputLocation?: OutputLocation; /** * Used by background shell executor * * @generated from field: optional uint32 shell_id = 9; */ shellId?: number; /** * @generated from field: optional string interleaved_output = 10; */ interleavedOutput?: string; /** * Process ID, used for backgrounded shells * * @generated from field: optional uint32 pid = 11; */ pid?: number; /** * The ms_to_wait value used for backgrounding (for display in result) * * @generated from field: optional int32 ms_to_wait = 12; */ msToWait?: number; }; /** * Describes the message agent.v1.ShellSuccess. * Use `create(ShellSuccessSchema)` to create a new message. */ export const ShellSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 397); /** * @generated from message agent.v1.ShellFailure */ export type ShellFailure = Message<"agent.v1.ShellFailure"> & { /** * @generated from field: string command = 1; */ command: string; /** * @generated from field: string working_directory = 2; */ workingDirectory: string; /** * @generated from field: int32 exit_code = 3; */ exitCode: number; /** * @generated from field: string signal = 4; */ signal: string; /** * Inline stdout - populated when write_output_to_file is false, empty when true * * @generated from field: string stdout = 5; */ stdout: string; /** * Inline stderr - populated when write_output_to_file is false, empty when true * * @generated from field: string stderr = 6; */ stderr: string; /** * @generated from field: int32 execution_time = 7; */ executionTime: number; /** * File-based output - populated when write_output_to_file is true (chronologically merged stdout+stderr) * * @generated from field: optional agent.v1.OutputLocation output_location = 8; */ outputLocation?: OutputLocation; /** * @generated from field: optional string interleaved_output = 9; */ interleavedOutput?: string; /** * If the command was aborted, this indicates the reason * * @generated from field: optional int32 abort_reason = 10; */ abortReason?: number; /** * Whether the command was aborted (by user or timeout) * * @generated from field: bool aborted = 11; */ aborted: boolean; }; /** * Describes the message agent.v1.ShellFailure. * Use `create(ShellFailureSchema)` to create a new message. */ export const ShellFailureSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 398); /** * @generated from message agent.v1.ShellTimeout */ export type ShellTimeout = Message<"agent.v1.ShellTimeout"> & { /** * @generated from field: string command = 1; */ command: string; /** * @generated from field: string working_directory = 2; */ workingDirectory: string; /** * @generated from field: int32 timeout_ms = 3; */ timeoutMs: number; }; /** * Describes the message agent.v1.ShellTimeout. * Use `create(ShellTimeoutSchema)` to create a new message. */ export const ShellTimeoutSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 399); /** * @generated from message agent.v1.ShellRejected */ export type ShellRejected = Message<"agent.v1.ShellRejected"> & { /** * @generated from field: string command = 1; */ command: string; /** * @generated from field: string working_directory = 2; */ workingDirectory: string; /** * @generated from field: string reason = 3; */ reason: string; /** * @generated from field: bool is_readonly = 4; */ isReadonly: boolean; }; /** * Describes the message agent.v1.ShellRejected. * Use `create(ShellRejectedSchema)` to create a new message. */ export const ShellRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 400); /** * @generated from message agent.v1.ShellPermissionDenied */ export type ShellPermissionDenied = Message<"agent.v1.ShellPermissionDenied"> & { /** * @generated from field: string command = 1; */ command: string; /** * @generated from field: string working_directory = 2; */ workingDirectory: string; /** * @generated from field: string error = 3; */ error: string; /** * @generated from field: bool is_readonly = 4; */ isReadonly: boolean; }; /** * Describes the message agent.v1.ShellPermissionDenied. * Use `create(ShellPermissionDeniedSchema)` to create a new message. */ export const ShellPermissionDeniedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 401); /** * @generated from message agent.v1.ShellSpawnError */ export type ShellSpawnError = Message<"agent.v1.ShellSpawnError"> & { /** * @generated from field: string command = 1; */ command: string; /** * @generated from field: string working_directory = 2; */ workingDirectory: string; /** * @generated from field: string error = 3; */ error: string; }; /** * Describes the message agent.v1.ShellSpawnError. * Use `create(ShellSpawnErrorSchema)` to create a new message. */ export const ShellSpawnErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 402); /** * @generated from message agent.v1.ShellPartialResult */ export type ShellPartialResult = Message<"agent.v1.ShellPartialResult"> & { /** * @generated from field: string stdout_delta = 1; */ stdoutDelta: string; /** * @generated from field: string stderr_delta = 2; */ stderrDelta: string; }; /** * Describes the message agent.v1.ShellPartialResult. * Use `create(ShellPartialResultSchema)` to create a new message. */ export const ShellPartialResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 403); /** * @generated from message agent.v1.ShellToolCall */ export type ShellToolCall = Message<"agent.v1.ShellToolCall"> & { /** * @generated from field: agent.v1.ShellArgs args = 1; */ args?: ShellArgs; /** * @generated from field: agent.v1.ShellResult result = 2; */ result?: ShellResult; }; /** * Describes the message agent.v1.ShellToolCall. * Use `create(ShellToolCallSchema)` to create a new message. */ export const ShellToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 404); /** * @generated from message agent.v1.ShellToolCallStdoutDelta */ export type ShellToolCallStdoutDelta = Message<"agent.v1.ShellToolCallStdoutDelta"> & { /** * @generated from field: string content = 1; */ content: string; }; /** * Describes the message agent.v1.ShellToolCallStdoutDelta. * Use `create(ShellToolCallStdoutDeltaSchema)` to create a new message. */ export const ShellToolCallStdoutDeltaSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 405); /** * @generated from message agent.v1.ShellToolCallStderrDelta */ export type ShellToolCallStderrDelta = Message<"agent.v1.ShellToolCallStderrDelta"> & { /** * @generated from field: string content = 1; */ content: string; }; /** * Describes the message agent.v1.ShellToolCallStderrDelta. * Use `create(ShellToolCallStderrDeltaSchema)` to create a new message. */ export const ShellToolCallStderrDeltaSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 406); /** * @generated from message agent.v1.ShellToolCallDelta */ export type ShellToolCallDelta = Message<"agent.v1.ShellToolCallDelta"> & { /** * @generated from oneof agent.v1.ShellToolCallDelta.delta */ delta: | { /** * @generated from field: agent.v1.ShellToolCallStdoutDelta stdout = 1; */ value: ShellToolCallStdoutDelta; case: "stdout"; } | { /** * @generated from field: agent.v1.ShellToolCallStderrDelta stderr = 2; */ value: ShellToolCallStderrDelta; case: "stderr"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ShellToolCallDelta. * Use `create(ShellToolCallDeltaSchema)` to create a new message. */ export const ShellToolCallDeltaSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 407); /** * @generated from message agent.v1.SubagentType */ export type SubagentType = Message<"agent.v1.SubagentType"> & { /** * @generated from oneof agent.v1.SubagentType.type */ type: | { /** * @generated from field: agent.v1.SubagentTypeUnspecified unspecified = 1; */ value: SubagentTypeUnspecified; case: "unspecified"; } | { /** * @generated from field: agent.v1.SubagentTypeComputerUse computer_use = 2; */ value: SubagentTypeComputerUse; case: "computerUse"; } | { /** * @generated from field: agent.v1.SubagentTypeCustom custom = 3; */ value: SubagentTypeCustom; case: "custom"; } | { /** * @generated from field: agent.v1.SubagentTypeExplore explore = 4; */ value: SubagentTypeExplore; case: "explore"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.SubagentType. * Use `create(SubagentTypeSchema)` to create a new message. */ export const SubagentTypeSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 408); /** * Empty message for unspecified subagent type * * @generated from message agent.v1.SubagentTypeUnspecified */ export type SubagentTypeUnspecified = Message<"agent.v1.SubagentTypeUnspecified"> & {}; /** * Describes the message agent.v1.SubagentTypeUnspecified. * Use `create(SubagentTypeUnspecifiedSchema)` to create a new message. */ export const SubagentTypeUnspecifiedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 409); /** * Empty message for computer use subagent type * * @generated from message agent.v1.SubagentTypeComputerUse */ export type SubagentTypeComputerUse = Message<"agent.v1.SubagentTypeComputerUse"> & {}; /** * Describes the message agent.v1.SubagentTypeComputerUse. * Use `create(SubagentTypeComputerUseSchema)` to create a new message. */ export const SubagentTypeComputerUseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 410); /** * Empty message for explore subagent type (read-only codebase exploration) * * @generated from message agent.v1.SubagentTypeExplore */ export type SubagentTypeExplore = Message<"agent.v1.SubagentTypeExplore"> & {}; /** * Describes the message agent.v1.SubagentTypeExplore. * Use `create(SubagentTypeExploreSchema)` to create a new message. */ export const SubagentTypeExploreSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 411); /** * Custom subagent type with a name field * * @generated from message agent.v1.SubagentTypeCustom */ export type SubagentTypeCustom = Message<"agent.v1.SubagentTypeCustom"> & { /** * unique identifier of the custom subagent * * @generated from field: string name = 1; */ name: string; }; /** * Describes the message agent.v1.SubagentTypeCustom. * Use `create(SubagentTypeCustomSchema)` to create a new message. */ export const SubagentTypeCustomSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 412); /** * Custom subagent definition loaded from local workspace configuration. * * @generated from message agent.v1.CustomSubagent */ export type CustomSubagent = Message<"agent.v1.CustomSubagent"> & { /** * absolute path to the markdown definition file * * @generated from field: string full_path = 1; */ fullPath: string; /** * unique identifier of the subagent * * @generated from field: string name = 2; */ name: string; /** * short summary of the agent's specialization * * @generated from field: string description = 3; */ description: string; /** * list of tool names the subagent can access * * @generated from field: repeated string tools = 4; */ tools: string[]; /** * preferred model (or "inherit" to use parent's model) * * @generated from field: string model = 5; */ model: string; /** * full prompt contents from the markdown file * * @generated from field: string prompt = 6; */ prompt: string; /** * default permission mode for subagent execution * * @generated from field: int32 permission_mode = 7; */ permissionMode: number; }; /** * Describes the message agent.v1.CustomSubagent. * Use `create(CustomSubagentSchema)` to create a new message. */ export const CustomSubagentSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 413); /** * @generated from message agent.v1.SwitchModeArgs */ export type SwitchModeArgs = Message<"agent.v1.SwitchModeArgs"> & { /** * The unified mode id to switch to (agent/chat/plan/spec/debug/triage) * * @generated from field: string target_mode_id = 1; */ targetModeId: string; /** * Optional explanation for why the mode switch is requested * * @generated from field: optional string explanation = 2; */ explanation?: string; /** * @generated from field: string tool_call_id = 3; */ toolCallId: string; }; /** * Describes the message agent.v1.SwitchModeArgs. * Use `create(SwitchModeArgsSchema)` to create a new message. */ export const SwitchModeArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 414); /** * @generated from message agent.v1.SwitchModeResult */ export type SwitchModeResult = Message<"agent.v1.SwitchModeResult"> & { /** * @generated from oneof agent.v1.SwitchModeResult.result */ result: | { /** * @generated from field: agent.v1.SwitchModeSuccess success = 1; */ value: SwitchModeSuccess; case: "success"; } | { /** * @generated from field: agent.v1.SwitchModeError error = 2; */ value: SwitchModeError; case: "error"; } | { /** * @generated from field: agent.v1.SwitchModeRejected rejected = 3; */ value: SwitchModeRejected; case: "rejected"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.SwitchModeResult. * Use `create(SwitchModeResultSchema)` to create a new message. */ export const SwitchModeResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 415); /** * @generated from message agent.v1.SwitchModeSuccess */ export type SwitchModeSuccess = Message<"agent.v1.SwitchModeSuccess"> & { /** * The mode we switched from * * @generated from field: string from_mode_id = 1; */ fromModeId: string; /** * The mode we switched to * * @generated from field: string to_mode_id = 2; */ toModeId: string; }; /** * Describes the message agent.v1.SwitchModeSuccess. * Use `create(SwitchModeSuccessSchema)` to create a new message. */ export const SwitchModeSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 416); /** * @generated from message agent.v1.SwitchModeError */ export type SwitchModeError = Message<"agent.v1.SwitchModeError"> & { /** * @generated from field: string error = 1; */ error: string; }; /** * Describes the message agent.v1.SwitchModeError. * Use `create(SwitchModeErrorSchema)` to create a new message. */ export const SwitchModeErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 417); /** * @generated from message agent.v1.SwitchModeRejected */ export type SwitchModeRejected = Message<"agent.v1.SwitchModeRejected"> & { /** * @generated from field: string reason = 1; */ reason: string; }; /** * Describes the message agent.v1.SwitchModeRejected. * Use `create(SwitchModeRejectedSchema)` to create a new message. */ export const SwitchModeRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 418); /** * @generated from message agent.v1.SwitchModeToolCall */ export type SwitchModeToolCall = Message<"agent.v1.SwitchModeToolCall"> & { /** * @generated from field: agent.v1.SwitchModeArgs args = 1; */ args?: SwitchModeArgs; /** * @generated from field: agent.v1.SwitchModeResult result = 2; */ result?: SwitchModeResult; }; /** * Describes the message agent.v1.SwitchModeToolCall. * Use `create(SwitchModeToolCallSchema)` to create a new message. */ export const SwitchModeToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 419); /** * @generated from message agent.v1.SwitchModeRequestQuery */ export type SwitchModeRequestQuery = Message<"agent.v1.SwitchModeRequestQuery"> & { /** * @generated from field: agent.v1.SwitchModeArgs args = 1; */ args?: SwitchModeArgs; }; /** * Describes the message agent.v1.SwitchModeRequestQuery. * Use `create(SwitchModeRequestQuerySchema)` to create a new message. */ export const SwitchModeRequestQuerySchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 420); /** * @generated from message agent.v1.SwitchModeRequestResponse */ export type SwitchModeRequestResponse = Message<"agent.v1.SwitchModeRequestResponse"> & { /** * @generated from oneof agent.v1.SwitchModeRequestResponse.result */ result: | { /** * @generated from field: agent.v1.SwitchModeRequestResponse_Approved approved = 1; */ value: SwitchModeRequestResponse_Approved; case: "approved"; } | { /** * @generated from field: agent.v1.SwitchModeRequestResponse_Rejected rejected = 2; */ value: SwitchModeRequestResponse_Rejected; case: "rejected"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.SwitchModeRequestResponse. * Use `create(SwitchModeRequestResponseSchema)` to create a new message. */ export const SwitchModeRequestResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 421); /** * @generated from message agent.v1.SwitchModeRequestResponse_Approved */ export type SwitchModeRequestResponse_Approved = Message<"agent.v1.SwitchModeRequestResponse_Approved"> & {}; /** * Describes the message agent.v1.SwitchModeRequestResponse_Approved. * Use `create(SwitchModeRequestResponse_ApprovedSchema)` to create a new message. */ export const SwitchModeRequestResponse_ApprovedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 422); /** * @generated from message agent.v1.SwitchModeRequestResponse_Rejected */ export type SwitchModeRequestResponse_Rejected = Message<"agent.v1.SwitchModeRequestResponse_Rejected"> & { /** * @generated from field: string reason = 1; */ reason: string; }; /** * Describes the message agent.v1.SwitchModeRequestResponse_Rejected. * Use `create(SwitchModeRequestResponse_RejectedSchema)` to create a new message. */ export const SwitchModeRequestResponse_RejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 423); /** * @generated from message agent.v1.TodoItem */ export type TodoItem = Message<"agent.v1.TodoItem"> & { /** * @generated from field: string id = 1; */ id: string; /** * @generated from field: string content = 2; */ content: string; /** * @generated from field: int32 status = 3; */ status: number; /** * @generated from field: int64 created_at = 4; */ createdAt: bigint; /** * @generated from field: int64 updated_at = 5; */ updatedAt: bigint; /** * IDs of other TODOs this depends on * * @generated from field: repeated string dependencies = 6; */ dependencies: string[]; }; /** * Describes the message agent.v1.TodoItem. * Use `create(TodoItemSchema)` to create a new message. */ export const TodoItemSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 424); /** * UpdateTodos tool call * * @generated from message agent.v1.UpdateTodosToolCall */ export type UpdateTodosToolCall = Message<"agent.v1.UpdateTodosToolCall"> & { /** * @generated from field: agent.v1.UpdateTodosArgs args = 1; */ args?: UpdateTodosArgs; /** * @generated from field: agent.v1.UpdateTodosResult result = 2; */ result?: UpdateTodosResult; }; /** * Describes the message agent.v1.UpdateTodosToolCall. * Use `create(UpdateTodosToolCallSchema)` to create a new message. */ export const UpdateTodosToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 425); /** * @generated from message agent.v1.UpdateTodosArgs */ export type UpdateTodosArgs = Message<"agent.v1.UpdateTodosArgs"> & { /** * @generated from field: repeated agent.v1.TodoItem todos = 1; */ todos: TodoItem[]; /** * @generated from field: bool merge = 2; */ merge: boolean; }; /** * Describes the message agent.v1.UpdateTodosArgs. * Use `create(UpdateTodosArgsSchema)` to create a new message. */ export const UpdateTodosArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 426); /** * @generated from message agent.v1.UpdateTodosResult */ export type UpdateTodosResult = Message<"agent.v1.UpdateTodosResult"> & { /** * @generated from oneof agent.v1.UpdateTodosResult.result */ result: | { /** * @generated from field: agent.v1.UpdateTodosSuccess success = 1; */ value: UpdateTodosSuccess; case: "success"; } | { /** * @generated from field: agent.v1.UpdateTodosError error = 2; */ value: UpdateTodosError; case: "error"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.UpdateTodosResult. * Use `create(UpdateTodosResultSchema)` to create a new message. */ export const UpdateTodosResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 427); /** * @generated from message agent.v1.UpdateTodosSuccess */ export type UpdateTodosSuccess = Message<"agent.v1.UpdateTodosSuccess"> & { /** * @generated from field: repeated agent.v1.TodoItem todos = 1; */ todos: TodoItem[]; /** * @generated from field: int32 total_count = 2; */ totalCount: number; /** * Whether this was a merge operation (needed for conditional rendering) * * @generated from field: bool was_merge = 3; */ wasMerge: boolean; }; /** * Describes the message agent.v1.UpdateTodosSuccess. * Use `create(UpdateTodosSuccessSchema)` to create a new message. */ export const UpdateTodosSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 428); /** * @generated from message agent.v1.UpdateTodosError */ export type UpdateTodosError = Message<"agent.v1.UpdateTodosError"> & { /** * @generated from field: string error = 1; */ error: string; }; /** * Describes the message agent.v1.UpdateTodosError. * Use `create(UpdateTodosErrorSchema)` to create a new message. */ export const UpdateTodosErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 429); /** * ReadTodos tool call * * @generated from message agent.v1.ReadTodosToolCall */ export type ReadTodosToolCall = Message<"agent.v1.ReadTodosToolCall"> & { /** * @generated from field: agent.v1.ReadTodosArgs args = 1; */ args?: ReadTodosArgs; /** * @generated from field: agent.v1.ReadTodosResult result = 2; */ result?: ReadTodosResult; }; /** * Describes the message agent.v1.ReadTodosToolCall. * Use `create(ReadTodosToolCallSchema)` to create a new message. */ export const ReadTodosToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 430); /** * @generated from message agent.v1.ReadTodosArgs */ export type ReadTodosArgs = Message<"agent.v1.ReadTodosArgs"> & { /** * Optional: filter by status * * @generated from field: repeated int32 status_filter = 1; */ statusFilter: number[]; /** * Optional: filter by IDs * * @generated from field: repeated string id_filter = 2; */ idFilter: string[]; }; /** * Describes the message agent.v1.ReadTodosArgs. * Use `create(ReadTodosArgsSchema)` to create a new message. */ export const ReadTodosArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 431); /** * @generated from message agent.v1.ReadTodosResult */ export type ReadTodosResult = Message<"agent.v1.ReadTodosResult"> & { /** * @generated from oneof agent.v1.ReadTodosResult.result */ result: | { /** * @generated from field: agent.v1.ReadTodosSuccess success = 1; */ value: ReadTodosSuccess; case: "success"; } | { /** * @generated from field: agent.v1.ReadTodosError error = 2; */ value: ReadTodosError; case: "error"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ReadTodosResult. * Use `create(ReadTodosResultSchema)` to create a new message. */ export const ReadTodosResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 432); /** * @generated from message agent.v1.ReadTodosSuccess */ export type ReadTodosSuccess = Message<"agent.v1.ReadTodosSuccess"> & { /** * @generated from field: repeated agent.v1.TodoItem todos = 1; */ todos: TodoItem[]; /** * @generated from field: int32 total_count = 2; */ totalCount: number; }; /** * Describes the message agent.v1.ReadTodosSuccess. * Use `create(ReadTodosSuccessSchema)` to create a new message. */ export const ReadTodosSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 433); /** * @generated from message agent.v1.ReadTodosError */ export type ReadTodosError = Message<"agent.v1.ReadTodosError"> & { /** * @generated from field: string error = 1; */ error: string; }; /** * Describes the message agent.v1.ReadTodosError. * Use `create(ReadTodosErrorSchema)` to create a new message. */ export const ReadTodosErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 434); /** * @generated from message agent.v1.Range */ export type Range = Message<"agent.v1.Range"> & { /** * @generated from field: agent.v1.Position start = 1; */ start?: Position; /** * @generated from field: agent.v1.Position end = 2; */ end?: Position; }; /** * Describes the message agent.v1.Range. * Use `create(RangeSchema)` to create a new message. */ export const RangeSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 435); /** * @generated from message agent.v1.Position */ export type Position = Message<"agent.v1.Position"> & { /** * @generated from field: uint32 line = 1; */ line: number; /** * @generated from field: uint32 column = 2; */ column: number; }; /** * Describes the message agent.v1.Position. * Use `create(PositionSchema)` to create a new message. */ export const PositionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 436); /** * @generated from message agent.v1.Error */ export type Error = Message<"agent.v1.Error"> & { /** * @generated from field: string message = 1; */ message: string; }; /** * Describes the message agent.v1.Error. * Use `create(ErrorSchema)` to create a new message. */ export const ErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 437); /** * @generated from message agent.v1.WebSearchArgs */ export type WebSearchArgs = Message<"agent.v1.WebSearchArgs"> & { /** * @generated from field: string search_term = 1; */ searchTerm: string; /** * @generated from field: string tool_call_id = 2; */ toolCallId: string; }; /** * Describes the message agent.v1.WebSearchArgs. * Use `create(WebSearchArgsSchema)` to create a new message. */ export const WebSearchArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 438); /** * @generated from message agent.v1.WebSearchResult */ export type WebSearchResult = Message<"agent.v1.WebSearchResult"> & { /** * @generated from oneof agent.v1.WebSearchResult.result */ result: | { /** * @generated from field: agent.v1.WebSearchSuccess success = 1; */ value: WebSearchSuccess; case: "success"; } | { /** * @generated from field: agent.v1.WebSearchError error = 2; */ value: WebSearchError; case: "error"; } | { /** * @generated from field: agent.v1.WebSearchRejected rejected = 3; */ value: WebSearchRejected; case: "rejected"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.WebSearchResult. * Use `create(WebSearchResultSchema)` to create a new message. */ export const WebSearchResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 439); /** * @generated from message agent.v1.WebSearchSuccess */ export type WebSearchSuccess = Message<"agent.v1.WebSearchSuccess"> & { /** * @generated from field: repeated agent.v1.WebSearchReference references = 1; */ references: WebSearchReference[]; }; /** * Describes the message agent.v1.WebSearchSuccess. * Use `create(WebSearchSuccessSchema)` to create a new message. */ export const WebSearchSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 440); /** * @generated from message agent.v1.WebSearchError */ export type WebSearchError = Message<"agent.v1.WebSearchError"> & { /** * @generated from field: string error = 1; */ error: string; }; /** * Describes the message agent.v1.WebSearchError. * Use `create(WebSearchErrorSchema)` to create a new message. */ export const WebSearchErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 441); /** * @generated from message agent.v1.WebSearchRejected */ export type WebSearchRejected = Message<"agent.v1.WebSearchRejected"> & { /** * @generated from field: string reason = 1; */ reason: string; }; /** * Describes the message agent.v1.WebSearchRejected. * Use `create(WebSearchRejectedSchema)` to create a new message. */ export const WebSearchRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 442); /** * @generated from message agent.v1.WebSearchReference */ export type WebSearchReference = Message<"agent.v1.WebSearchReference"> & { /** * @generated from field: string title = 1; */ title: string; /** * @generated from field: string url = 2; */ url: string; /** * @generated from field: string chunk = 3; */ chunk: string; }; /** * Describes the message agent.v1.WebSearchReference. * Use `create(WebSearchReferenceSchema)` to create a new message. */ export const WebSearchReferenceSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 443); /** * @generated from message agent.v1.WebSearchToolCall */ export type WebSearchToolCall = Message<"agent.v1.WebSearchToolCall"> & { /** * @generated from field: agent.v1.WebSearchArgs args = 1; */ args?: WebSearchArgs; /** * @generated from field: agent.v1.WebSearchResult result = 2; */ result?: WebSearchResult; }; /** * Describes the message agent.v1.WebSearchToolCall. * Use `create(WebSearchToolCallSchema)` to create a new message. */ export const WebSearchToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 444); /** * @generated from message agent.v1.WebSearchRequestQuery */ export type WebSearchRequestQuery = Message<"agent.v1.WebSearchRequestQuery"> & { /** * @generated from field: agent.v1.WebSearchArgs args = 1; */ args?: WebSearchArgs; }; /** * Describes the message agent.v1.WebSearchRequestQuery. * Use `create(WebSearchRequestQuerySchema)` to create a new message. */ export const WebSearchRequestQuerySchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 445); /** * @generated from message agent.v1.WebSearchRequestResponse */ export type WebSearchRequestResponse = Message<"agent.v1.WebSearchRequestResponse"> & { /** * @generated from oneof agent.v1.WebSearchRequestResponse.result */ result: | { /** * @generated from field: agent.v1.WebSearchRequestResponse_Approved approved = 1; */ value: WebSearchRequestResponse_Approved; case: "approved"; } | { /** * @generated from field: agent.v1.WebSearchRequestResponse_Rejected rejected = 2; */ value: WebSearchRequestResponse_Rejected; case: "rejected"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.WebSearchRequestResponse. * Use `create(WebSearchRequestResponseSchema)` to create a new message. */ export const WebSearchRequestResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 446); /** * @generated from message agent.v1.WebSearchRequestResponse_Approved */ export type WebSearchRequestResponse_Approved = Message<"agent.v1.WebSearchRequestResponse_Approved"> & {}; /** * Describes the message agent.v1.WebSearchRequestResponse_Approved. * Use `create(WebSearchRequestResponse_ApprovedSchema)` to create a new message. */ export const WebSearchRequestResponse_ApprovedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 447); /** * @generated from message agent.v1.WebSearchRequestResponse_Rejected */ export type WebSearchRequestResponse_Rejected = Message<"agent.v1.WebSearchRequestResponse_Rejected"> & { /** * @generated from field: string reason = 1; */ reason: string; }; /** * Describes the message agent.v1.WebSearchRequestResponse_Rejected. * Use `create(WebSearchRequestResponse_RejectedSchema)` to create a new message. */ export const WebSearchRequestResponse_RejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 448); /** * @generated from message agent.v1.WriteArgs */ export type WriteArgs = Message<"agent.v1.WriteArgs"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: string file_text = 2; */ fileText: string; /** * @generated from field: string tool_call_id = 3; */ toolCallId: string; /** * @generated from field: bool return_file_content_after_write = 4; */ returnFileContentAfterWrite: boolean; /** * Raw binary data to write. When set, file_text is ignored and the bytes are written directly without any text processing (e.g., line ending normalization). * * @generated from field: bytes file_bytes = 5; */ fileBytes: Uint8Array; }; /** * Describes the message agent.v1.WriteArgs. * Use `create(WriteArgsSchema)` to create a new message. */ export const WriteArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 449); /** * @generated from message agent.v1.WriteResult */ export type WriteResult = Message<"agent.v1.WriteResult"> & { /** * @generated from oneof agent.v1.WriteResult.result */ result: | { /** * @generated from field: agent.v1.WriteSuccess success = 1; */ value: WriteSuccess; case: "success"; } | { /** * @generated from field: agent.v1.WritePermissionDenied permission_denied = 3; */ value: WritePermissionDenied; case: "permissionDenied"; } | { /** * @generated from field: agent.v1.WriteNoSpace no_space = 4; */ value: WriteNoSpace; case: "noSpace"; } | { /** * @generated from field: agent.v1.WriteError error = 5; */ value: WriteError; case: "error"; } | { /** * @generated from field: agent.v1.WriteRejected rejected = 6; */ value: WriteRejected; case: "rejected"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.WriteResult. * Use `create(WriteResultSchema)` to create a new message. */ export const WriteResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 450); /** * @generated from message agent.v1.WriteSuccess */ export type WriteSuccess = Message<"agent.v1.WriteSuccess"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: int32 lines_created = 2; */ linesCreated: number; /** * @generated from field: int32 file_size = 3; */ fileSize: number; /** * @generated from field: optional string file_content_after_write = 4; */ fileContentAfterWrite?: string; }; /** * Describes the message agent.v1.WriteSuccess. * Use `create(WriteSuccessSchema)` to create a new message. */ export const WriteSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 451); /** * @generated from message agent.v1.WritePermissionDenied */ export type WritePermissionDenied = Message<"agent.v1.WritePermissionDenied"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: string directory = 2; */ directory: string; /** * "create_directory" or "create_file" * * @generated from field: string operation = 3; */ operation: string; /** * @generated from field: string error = 4; */ error: string; /** * @generated from field: bool is_readonly = 5; */ isReadonly: boolean; }; /** * Describes the message agent.v1.WritePermissionDenied. * Use `create(WritePermissionDeniedSchema)` to create a new message. */ export const WritePermissionDeniedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 452); /** * @generated from message agent.v1.WriteNoSpace */ export type WriteNoSpace = Message<"agent.v1.WriteNoSpace"> & { /** * @generated from field: string path = 1; */ path: string; }; /** * Describes the message agent.v1.WriteNoSpace. * Use `create(WriteNoSpaceSchema)` to create a new message. */ export const WriteNoSpaceSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 453); /** * @generated from message agent.v1.WriteError */ export type WriteError = Message<"agent.v1.WriteError"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: string error = 2; */ error: string; }; /** * Describes the message agent.v1.WriteError. * Use `create(WriteErrorSchema)` to create a new message. */ export const WriteErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 454); /** * @generated from message agent.v1.WriteRejected */ export type WriteRejected = Message<"agent.v1.WriteRejected"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: string reason = 2; */ reason: string; }; /** * Describes the message agent.v1.WriteRejected. * Use `create(WriteRejectedSchema)` to create a new message. */ export const WriteRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 455); /** * @generated from message agent.v1.BootstrapStatsigRequest */ export type BootstrapStatsigRequest = Message<"agent.v1.BootstrapStatsigRequest"> & { /** * When true, the server should evaluate gates as if dev/internal status is ignored. This is used by clients to simulate a prod user experience. * * @generated from field: optional bool ignore_dev_status = 1; */ ignoreDevStatus?: boolean; /** * @generated from field: optional int32 operating_system = 2; */ operatingSystem?: number; }; /** * Describes the message agent.v1.BootstrapStatsigRequest. * Use `create(BootstrapStatsigRequestSchema)` to create a new message. */ export const BootstrapStatsigRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 456); /** * @generated from message agent.v1.PingResponse */ export type PingResponse = Message<"agent.v1.PingResponse"> & {}; /** * Describes the message agent.v1.PingResponse. * Use `create(PingResponseSchema)` to create a new message. */ export const PingResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 457); /** * @generated from message agent.v1.ExecRequest */ export type ExecRequest = Message<"agent.v1.ExecRequest"> & { /** * @generated from field: string command = 1; */ command: string; /** * @generated from field: optional string cwd = 2; */ cwd?: string; /** * @generated from field: repeated string args = 3; */ args: string[]; /** * @generated from field: map environment = 4; */ environment: { [key: string]: string }; }; /** * Describes the message agent.v1.ExecRequest. * Use `create(ExecRequestSchema)` to create a new message. */ export const ExecRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 458); /** * @generated from message agent.v1.ExecResponse */ export type ExecResponse = Message<"agent.v1.ExecResponse"> & { /** * @generated from oneof agent.v1.ExecResponse.event */ event: | { /** * @generated from field: agent.v1.StdoutEvent stdout_event = 1; */ value: StdoutEvent; case: "stdoutEvent"; } | { /** * @generated from field: agent.v1.StderrEvent stderr_event = 2; */ value: StderrEvent; case: "stderrEvent"; } | { /** * @generated from field: agent.v1.ExitEvent exit_event = 3; */ value: ExitEvent; case: "exitEvent"; } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ExecResponse. * Use `create(ExecResponseSchema)` to create a new message. */ export const ExecResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 459); /** * @generated from message agent.v1.StdoutEvent */ export type StdoutEvent = Message<"agent.v1.StdoutEvent"> & { /** * @generated from field: string data = 1; */ data: string; }; /** * Describes the message agent.v1.StdoutEvent. * Use `create(StdoutEventSchema)` to create a new message. */ export const StdoutEventSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 460); /** * @generated from message agent.v1.StderrEvent */ export type StderrEvent = Message<"agent.v1.StderrEvent"> & { /** * @generated from field: string data = 1; */ data: string; }; /** * Describes the message agent.v1.StderrEvent. * Use `create(StderrEventSchema)` to create a new message. */ export const StderrEventSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 461); /** * @generated from message agent.v1.ExitEvent */ export type ExitEvent = Message<"agent.v1.ExitEvent"> & { /** * @generated from field: int32 exit_code = 1; */ exitCode: number; }; /** * Describes the message agent.v1.ExitEvent. * Use `create(ExitEventSchema)` to create a new message. */ export const ExitEventSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 462); /** * @generated from message agent.v1.ReadTextFileRequest */ export type ReadTextFileRequest = Message<"agent.v1.ReadTextFileRequest"> & { /** * @generated from field: string path = 1; */ path: string; }; /** * Describes the message agent.v1.ReadTextFileRequest. * Use `create(ReadTextFileRequestSchema)` to create a new message. */ export const ReadTextFileRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 463); /** * @generated from message agent.v1.ReadTextFileResponse */ export type ReadTextFileResponse = Message<"agent.v1.ReadTextFileResponse"> & { /** * @generated from field: string content = 1; */ content: string; }; /** * Describes the message agent.v1.ReadTextFileResponse. * Use `create(ReadTextFileResponseSchema)` to create a new message. */ export const ReadTextFileResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 464); /** * @generated from message agent.v1.WriteTextFileRequest */ export type WriteTextFileRequest = Message<"agent.v1.WriteTextFileRequest"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: string content = 2; */ content: string; }; /** * Describes the message agent.v1.WriteTextFileRequest. * Use `create(WriteTextFileRequestSchema)` to create a new message. */ export const WriteTextFileRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 465); /** * Empty response - success is implied by RPC completion * * @generated from message agent.v1.WriteTextFileResponse */ export type WriteTextFileResponse = Message<"agent.v1.WriteTextFileResponse"> & {}; /** * Describes the message agent.v1.WriteTextFileResponse. * Use `create(WriteTextFileResponseSchema)` to create a new message. */ export const WriteTextFileResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 466); /** * @generated from message agent.v1.ReadBinaryFileRequest */ export type ReadBinaryFileRequest = Message<"agent.v1.ReadBinaryFileRequest"> & { /** * @generated from field: string path = 1; */ path: string; }; /** * Describes the message agent.v1.ReadBinaryFileRequest. * Use `create(ReadBinaryFileRequestSchema)` to create a new message. */ export const ReadBinaryFileRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 467); /** * @generated from message agent.v1.ReadBinaryFileResponse */ export type ReadBinaryFileResponse = Message<"agent.v1.ReadBinaryFileResponse"> & { /** * @generated from field: bytes content = 1; */ content: Uint8Array; }; /** * Describes the message agent.v1.ReadBinaryFileResponse. * Use `create(ReadBinaryFileResponseSchema)` to create a new message. */ export const ReadBinaryFileResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 468); /** * @generated from message agent.v1.WriteBinaryFileRequest */ export type WriteBinaryFileRequest = Message<"agent.v1.WriteBinaryFileRequest"> & { /** * @generated from field: string path = 1; */ path: string; /** * @generated from field: bytes content = 2; */ content: Uint8Array; }; /** * Describes the message agent.v1.WriteBinaryFileRequest. * Use `create(WriteBinaryFileRequestSchema)` to create a new message. */ export const WriteBinaryFileRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 469); /** * Empty response - success is implied by RPC completion * * @generated from message agent.v1.WriteBinaryFileResponse */ export type WriteBinaryFileResponse = Message<"agent.v1.WriteBinaryFileResponse"> & {}; /** * Describes the message agent.v1.WriteBinaryFileResponse. * Use `create(WriteBinaryFileResponseSchema)` to create a new message. */ export const WriteBinaryFileResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 470); /** * @generated from message agent.v1.GetWorkspaceChangesHashRequest */ export type GetWorkspaceChangesHashRequest = Message<"agent.v1.GetWorkspaceChangesHashRequest"> & { /** * @generated from field: string root_path = 1; */ rootPath: string; /** * @generated from field: string base_ref = 2; */ baseRef: string; }; /** * Describes the message agent.v1.GetWorkspaceChangesHashRequest. * Use `create(GetWorkspaceChangesHashRequestSchema)` to create a new message. */ export const GetWorkspaceChangesHashRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 471); /** * @generated from message agent.v1.GetWorkspaceChangesHashResponse */ export type GetWorkspaceChangesHashResponse = Message<"agent.v1.GetWorkspaceChangesHashResponse"> & { /** * @generated from field: string hash = 1; */ hash: string; }; /** * Describes the message agent.v1.GetWorkspaceChangesHashResponse. * Use `create(GetWorkspaceChangesHashResponseSchema)` to create a new message. */ export const GetWorkspaceChangesHashResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 472); /** * @generated from message agent.v1.RefreshGithubAccessTokenRequest */ export type RefreshGithubAccessTokenRequest = Message<"agent.v1.RefreshGithubAccessTokenRequest"> & { /** * @generated from field: string github_access_token = 1; */ githubAccessToken: string; /** * e.g., "github.com", "gitlab.com", "gitlab.example.com" * * @generated from field: string hostname = 2; */ hostname: string; }; /** * Describes the message agent.v1.RefreshGithubAccessTokenRequest. * Use `create(RefreshGithubAccessTokenRequestSchema)` to create a new message. */ export const RefreshGithubAccessTokenRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 473); /** * Empty response - success is implied by RPC completion * * @generated from message agent.v1.RefreshGithubAccessTokenResponse */ export type RefreshGithubAccessTokenResponse = Message<"agent.v1.RefreshGithubAccessTokenResponse"> & {}; /** * Describes the message agent.v1.RefreshGithubAccessTokenResponse. * Use `create(RefreshGithubAccessTokenResponseSchema)` to create a new message. */ export const RefreshGithubAccessTokenResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 474); /** * @generated from message agent.v1.WarmRemoteAccessServerRequest */ export type WarmRemoteAccessServerRequest = Message<"agent.v1.WarmRemoteAccessServerRequest"> & { /** * @generated from field: string commit = 1; */ commit: string; /** * @generated from field: int32 port = 2; */ port: number; /** * @generated from field: string connection_token = 3; */ connectionToken: string; }; /** * Describes the message agent.v1.WarmRemoteAccessServerRequest. * Use `create(WarmRemoteAccessServerRequestSchema)` to create a new message. */ export const WarmRemoteAccessServerRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 475); /** * Empty response - success is implied by RPC completion * * @generated from message agent.v1.WarmRemoteAccessServerResponse */ export type WarmRemoteAccessServerResponse = Message<"agent.v1.WarmRemoteAccessServerResponse"> & {}; /** * Describes the message agent.v1.WarmRemoteAccessServerResponse. * Use `create(WarmRemoteAccessServerResponseSchema)` to create a new message. */ export const WarmRemoteAccessServerResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 476); /** * @generated from message agent.v1.ListArtifactsRequest */ export type ListArtifactsRequest = Message<"agent.v1.ListArtifactsRequest"> & {}; /** * Describes the message agent.v1.ListArtifactsRequest. * Use `create(ListArtifactsRequestSchema)` to create a new message. */ export const ListArtifactsRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 477); /** * @generated from message agent.v1.ArtifactUploadMetadata */ export type ArtifactUploadMetadata = Message<"agent.v1.ArtifactUploadMetadata"> & { /** * @generated from field: string absolute_path = 1; */ absolutePath: string; /** * @generated from field: uint64 size_bytes = 2; */ sizeBytes: bigint; /** * @generated from field: int64 updated_at_unix_ms = 3; */ updatedAtUnixMs: bigint; /** * @generated from field: int32 status = 4; */ status: number; /** * @generated from field: uint64 bytes_uploaded = 5; */ bytesUploaded: bigint; /** * @generated from field: string last_error = 6; */ lastError: string; /** * @generated from field: uint32 upload_attempts = 7; */ uploadAttempts: number; /** * @generated from field: int64 last_started_at_unix_ms = 8; */ lastStartedAtUnixMs: bigint; /** * @generated from field: int64 last_finished_at_unix_ms = 9; */ lastFinishedAtUnixMs: bigint; /** * @generated from field: string upload_id = 10; */ uploadId: string; }; /** * Describes the message agent.v1.ArtifactUploadMetadata. * Use `create(ArtifactUploadMetadataSchema)` to create a new message. */ export const ArtifactUploadMetadataSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 478); /** * @generated from message agent.v1.ListArtifactsResponse */ export type ListArtifactsResponse = Message<"agent.v1.ListArtifactsResponse"> & { /** * @generated from field: repeated agent.v1.ArtifactUploadMetadata artifacts = 1; */ artifacts: ArtifactUploadMetadata[]; }; /** * Describes the message agent.v1.ListArtifactsResponse. * Use `create(ListArtifactsResponseSchema)` to create a new message. */ export const ListArtifactsResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 479); /** * @generated from message agent.v1.UploadArtifactsRequest */ export type UploadArtifactsRequest = Message<"agent.v1.UploadArtifactsRequest"> & { /** * @generated from field: repeated agent.v1.ArtifactUploadInstruction uploads = 1; */ uploads: ArtifactUploadInstruction[]; }; /** * Describes the message agent.v1.UploadArtifactsRequest. * Use `create(UploadArtifactsRequestSchema)` to create a new message. */ export const UploadArtifactsRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 480); /** * @generated from message agent.v1.ArtifactUploadInstruction */ export type ArtifactUploadInstruction = Message<"agent.v1.ArtifactUploadInstruction"> & { /** * @generated from field: string absolute_path = 1; */ absolutePath: string; /** * @generated from field: string upload_url = 2; */ uploadUrl: string; /** * @generated from field: string method = 3; */ method: string; /** * @generated from field: map headers = 4; */ headers: { [key: string]: string }; /** * @generated from field: optional string content_type = 5; */ contentType?: string; /** * @generated from field: optional string slack_upload_url = 6; */ slackUploadUrl?: string; /** * @generated from field: optional string slack_file_id = 7; */ slackFileId?: string; }; /** * Describes the message agent.v1.ArtifactUploadInstruction. * Use `create(ArtifactUploadInstructionSchema)` to create a new message. */ export const ArtifactUploadInstructionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 481); /** * @generated from message agent.v1.ArtifactUploadDispatchResult */ export type ArtifactUploadDispatchResult = Message<"agent.v1.ArtifactUploadDispatchResult"> & { /** * @generated from field: string absolute_path = 1; */ absolutePath: string; /** * @generated from field: int32 status = 2; */ status: number; /** * @generated from field: string message = 3; */ message: string; /** * @generated from field: optional string slack_file_id = 4; */ slackFileId?: string; }; /** * Describes the message agent.v1.ArtifactUploadDispatchResult. * Use `create(ArtifactUploadDispatchResultSchema)` to create a new message. */ export const ArtifactUploadDispatchResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 482); /** * @generated from message agent.v1.UploadArtifactsResponse */ export type UploadArtifactsResponse = Message<"agent.v1.UploadArtifactsResponse"> & { /** * @generated from field: repeated agent.v1.ArtifactUploadDispatchResult results = 1; */ results: ArtifactUploadDispatchResult[]; }; /** * Describes the message agent.v1.UploadArtifactsResponse. * Use `create(UploadArtifactsResponseSchema)` to create a new message. */ export const UploadArtifactsResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 483); /** * @generated from message agent.v1.GetMcpRefreshTokensRequest */ export type GetMcpRefreshTokensRequest = Message<"agent.v1.GetMcpRefreshTokensRequest"> & {}; /** * Describes the message agent.v1.GetMcpRefreshTokensRequest. * Use `create(GetMcpRefreshTokensRequestSchema)` to create a new message. */ export const GetMcpRefreshTokensRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 484); /** * @generated from message agent.v1.GetMcpRefreshTokensResponse */ export type GetMcpRefreshTokensResponse = Message<"agent.v1.GetMcpRefreshTokensResponse"> & { /** * Map from server URL to refresh token * * @generated from field: map refresh_tokens = 1; */ refreshTokens: { [key: string]: string }; }; /** * Describes the message agent.v1.GetMcpRefreshTokensResponse. * Use `create(GetMcpRefreshTokensResponseSchema)` to create a new message. */ export const GetMcpRefreshTokensResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 485); /** * @generated from message agent.v1.UpdateEnvironmentVariablesRequest */ export type UpdateEnvironmentVariablesRequest = Message<"agent.v1.UpdateEnvironmentVariablesRequest"> & { /** * Environment variables to manage (plaintext values). * * @generated from field: map env = 1; */ env: { [key: string]: string }; /** * If true, unset previously-managed keys that are not present in `env`. * * @generated from field: bool replace = 2; */ replace: boolean; }; /** * Describes the message agent.v1.UpdateEnvironmentVariablesRequest. * Use `create(UpdateEnvironmentVariablesRequestSchema)` to create a new message. */ export const UpdateEnvironmentVariablesRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 486); /** * @generated from message agent.v1.UpdateEnvironmentVariablesResponse */ export type UpdateEnvironmentVariablesResponse = Message<"agent.v1.UpdateEnvironmentVariablesResponse"> & { /** * @generated from field: uint32 applied = 1; */ applied: number; /** * @generated from field: uint32 removed = 2; */ removed: number; }; /** * Describes the message agent.v1.UpdateEnvironmentVariablesResponse. * Use `create(UpdateEnvironmentVariablesResponseSchema)` to create a new message. */ export const UpdateEnvironmentVariablesResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 487); /** * Check if an error is caused by the client disconnecting (e.g., due to timeout or abort). This includes errors like ERR_STREAM_DESTROYED which occur when the HTTP response stream is closed by the client while the server is still writing to it. function isClientDisconnectError(error) { if (!(error instanceof Error)) { return false; const code = error.code; return (code === "ERR_STREAM_DESTROYED" || code === "ERR_STREAM_PREMATURE_CLOSE" || code === "ECONNRESET" || code === "EPIPE"); ;// ../proto/dist/generated/aiserver/v1/mcp_pb.js // @ts-nocheck * * @generated from message agent.v1.McpOAuthStoredData */ export type McpOAuthStoredData = Message<"agent.v1.McpOAuthStoredData"> & { /** * @generated from field: string refresh_token = 1; */ refreshToken: string; /** * @generated from field: string client_id = 2; */ clientId: string; /** * @generated from field: optional string client_secret = 3; */ clientSecret?: string; /** * @generated from field: repeated string redirect_uris = 4; */ redirectUris: string[]; }; /** * Describes the message agent.v1.McpOAuthStoredData. * Use `create(McpOAuthStoredDataSchema)` to create a new message. */ export const McpOAuthStoredDataSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 488); /** * @generated from message agent.v1.Frame */ export type Frame = Message<"agent.v1.Frame"> & { /** * Correlation ID * * @generated from field: string id = 1; */ id: string; /** * RPC method (e.g., "/agent.v1.ControlService/Ping") * * @generated from field: string method = 2; */ method: string; /** * Serialized payload * * @generated from field: bytes data = 3; */ data: Uint8Array; /** * @generated from field: int32 kind = 4; */ kind: number; /** * Error message (kind == ERROR) * * @generated from field: string error = 5; */ error: string; }; /** * Describes the message agent.v1.Frame. * Use `create(FrameSchema)` to create a new message. */ export const FrameSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 489); /** * var Frame_Kind; (function (Frame_Kind) { Frame_Kind[Frame_Kind["UNSPECIFIED"] = 0] = "UNSPECIFIED"; Frame_Kind[Frame_Kind["REQUEST"] = 1] = "REQUEST"; Frame_Kind[Frame_Kind["RESPONSE"] = 2] = "RESPONSE"; Frame_Kind[Frame_Kind["ERROR"] = 3] = "ERROR"; })(Frame_Kind || (Frame_Kind = {})); // Retrieve enum metadata with: proto3.getEnumType(Frame_Kind) proto3/* int32 *\/.C.util.setEnumType(Frame_Kind, "agent.v1.Frame.Kind", [ { no: 0, name: "KIND_UNSPECIFIED" }, { no: 1, name: "KIND_REQUEST" }, { no: 2, name: "KIND_RESPONSE" }, { no: 3, name: "KIND_ERROR" }, ]); * * @generated from message agent.v1.Empty */ export type Empty = Message<"agent.v1.Empty"> & {}; /** * Describes the message agent.v1.Empty. * Use `create(EmptySchema)` to create a new message. */ export const EmptySchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 490); /** * @generated from message agent.v1.BidiRequestId */ export type BidiRequestId = Message<"agent.v1.BidiRequestId"> & { /** * @generated from field: string request_id = 1; */ requestId: string; }; /** * Describes the message agent.v1.BidiRequestId. * Use `create(BidiRequestIdSchema)` to create a new message. */ export const BidiRequestIdSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 491); /** * @generated from enum agent.v1.AppliedAgentChange_ChangeType */ export enum AppliedAgentChange_ChangeType { /** * @generated from enum value: CHANGE_TYPE_UNSPECIFIED = 0; */ CHANGE_TYPE_UNSPECIFIED = 0, /** * @generated from enum value: CHANGE_TYPE_CREATED = 1; */ CHANGE_TYPE_CREATED = 1, /** * @generated from enum value: CHANGE_TYPE_MODIFIED = 2; */ CHANGE_TYPE_MODIFIED = 2, /** * @generated from enum value: CHANGE_TYPE_DELETED = 3; */ CHANGE_TYPE_DELETED = 3, } /** * Describes the enum agent.v1.AppliedAgentChange_ChangeType. */ export const AppliedAgentChange_ChangeTypeSchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 0); /** * @generated from enum agent.v1.MouseButton */ export enum MouseButton { /** * @generated from enum value: MOUSE_BUTTON_UNSPECIFIED = 0; */ UNSPECIFIED = 0, /** * @generated from enum value: MOUSE_BUTTON_LEFT = 1; */ LEFT = 1, /** * @generated from enum value: MOUSE_BUTTON_RIGHT = 2; */ RIGHT = 2, /** * @generated from enum value: MOUSE_BUTTON_MIDDLE = 3; */ MIDDLE = 3, /** * @generated from enum value: MOUSE_BUTTON_BACK = 4; */ BACK = 4, /** * @generated from enum value: MOUSE_BUTTON_FORWARD = 5; */ FORWARD = 5, } /** * Describes the enum agent.v1.MouseButton. */ export const MouseButtonSchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 1); /** * @generated from enum agent.v1.ScrollDirection */ export enum ScrollDirection { /** * @generated from enum value: SCROLL_DIRECTION_UNSPECIFIED = 0; */ UNSPECIFIED = 0, /** * @generated from enum value: SCROLL_DIRECTION_UP = 1; */ UP = 1, /** * @generated from enum value: SCROLL_DIRECTION_DOWN = 2; */ DOWN = 2, /** * @generated from enum value: SCROLL_DIRECTION_LEFT = 3; */ LEFT = 3, /** * @generated from enum value: SCROLL_DIRECTION_RIGHT = 4; */ RIGHT = 4, } /** * Describes the enum agent.v1.ScrollDirection. */ export const ScrollDirectionSchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 2); /** * @generated from enum agent.v1.CursorRuleSource */ export enum CursorRuleSource { /** * @generated from enum value: CURSOR_RULE_SOURCE_UNSPECIFIED = 0; */ UNSPECIFIED = 0, /** * @generated from enum value: CURSOR_RULE_SOURCE_TEAM = 1; */ TEAM = 1, /** * @generated from enum value: CURSOR_RULE_SOURCE_USER = 2; */ USER = 2, } /** * Describes the enum agent.v1.CursorRuleSource. */ export const CursorRuleSourceSchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 3); /** * @generated from enum agent.v1.DiagnosticSeverity */ export enum DiagnosticSeverity { /** * @generated from enum value: DIAGNOSTIC_SEVERITY_UNSPECIFIED = 0; */ UNSPECIFIED = 0, /** * @generated from enum value: DIAGNOSTIC_SEVERITY_ERROR = 1; */ ERROR = 1, /** * @generated from enum value: DIAGNOSTIC_SEVERITY_WARNING = 2; */ WARNING = 2, /** * @generated from enum value: DIAGNOSTIC_SEVERITY_INFORMATION = 3; */ INFORMATION = 3, /** * @generated from enum value: DIAGNOSTIC_SEVERITY_HINT = 4; */ HINT = 4, } /** * Describes the enum agent.v1.DiagnosticSeverity. */ export const DiagnosticSeveritySchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 4); /** * @generated from enum agent.v1.RecordingMode */ export enum RecordingMode { /** * @generated from enum value: RECORDING_MODE_UNSPECIFIED = 0; */ UNSPECIFIED = 0, /** * @generated from enum value: RECORDING_MODE_START_RECORDING = 1; */ START_RECORDING = 1, /** * @generated from enum value: RECORDING_MODE_SAVE_RECORDING = 2; */ SAVE_RECORDING = 2, /** * @generated from enum value: RECORDING_MODE_DISCARD_RECORDING = 3; */ DISCARD_RECORDING = 3, } /** * Describes the enum agent.v1.RecordingMode. */ export const RecordingModeSchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 5); /** * @generated from enum agent.v1.RequestedFilePathRejectedReason */ export enum RequestedFilePathRejectedReason { /** * @generated from enum value: REQUESTED_FILE_PATH_REJECTED_REASON_UNSPECIFIED = 0; */ UNSPECIFIED = 0, /** * @generated from enum value: REQUESTED_FILE_PATH_REJECTED_REASON_SLASHES_NOT_ALLOWED = 1; */ SLASHES_NOT_ALLOWED = 1, } /** * Describes the enum agent.v1.RequestedFilePathRejectedReason. */ export const RequestedFilePathRejectedReasonSchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 6); /** * @generated from enum agent.v1.PackageType */ export enum PackageType { /** * @generated from enum value: PACKAGE_TYPE_UNSPECIFIED = 0; */ UNSPECIFIED = 0, /** * @generated from enum value: PACKAGE_TYPE_CURSOR_PROJECT = 1; */ CURSOR_PROJECT = 1, /** * @generated from enum value: PACKAGE_TYPE_CURSOR_PERSONAL = 2; */ CURSOR_PERSONAL = 2, /** * @generated from enum value: PACKAGE_TYPE_CLAUDE_SKILL = 3; */ CLAUDE_SKILL = 3, /** * @generated from enum value: PACKAGE_TYPE_CLAUDE_PLUGIN = 4; */ CLAUDE_PLUGIN = 4, } /** * Describes the enum agent.v1.PackageType. */ export const PackageTypeSchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 7); /** * @generated from enum agent.v1.SandboxPolicy_Type */ export enum SandboxPolicy_Type { /** * @generated from enum value: TYPE_UNSPECIFIED = 0; */ TYPE_UNSPECIFIED = 0, /** * @generated from enum value: TYPE_INSECURE_NONE = 1; */ TYPE_INSECURE_NONE = 1, /** * @generated from enum value: TYPE_WORKSPACE_READWRITE = 2; */ TYPE_WORKSPACE_READWRITE = 2, /** * @generated from enum value: TYPE_WORKSPACE_READONLY = 3; */ TYPE_WORKSPACE_READONLY = 3, } /** * Describes the enum agent.v1.SandboxPolicy_Type. */ export const SandboxPolicy_TypeSchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 8); /** * @generated from enum agent.v1.TimeoutBehavior */ export enum TimeoutBehavior { /** * @generated from enum value: TIMEOUT_BEHAVIOR_UNSPECIFIED = 0; */ UNSPECIFIED = 0, /** * @generated from enum value: TIMEOUT_BEHAVIOR_CANCEL = 1; */ CANCEL = 1, /** * @generated from enum value: TIMEOUT_BEHAVIOR_BACKGROUND = 2; */ BACKGROUND = 2, } /** * Describes the enum agent.v1.TimeoutBehavior. */ export const TimeoutBehaviorSchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 9); /** * @generated from enum agent.v1.ShellAbortReason */ export enum ShellAbortReason { /** * @generated from enum value: SHELL_ABORT_REASON_UNSPECIFIED = 0; */ UNSPECIFIED = 0, /** * @generated from enum value: SHELL_ABORT_REASON_USER_ABORT = 1; */ USER_ABORT = 1, /** * @generated from enum value: SHELL_ABORT_REASON_TIMEOUT = 2; */ TIMEOUT = 2, } /** * Describes the enum agent.v1.ShellAbortReason. */ export const ShellAbortReasonSchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 10); /** * @generated from enum agent.v1.CustomSubagentPermissionMode */ export enum CustomSubagentPermissionMode { /** * @generated from enum value: CUSTOM_SUBAGENT_PERMISSION_MODE_UNSPECIFIED = 0; */ UNSPECIFIED = 0, /** * @generated from enum value: CUSTOM_SUBAGENT_PERMISSION_MODE_DEFAULT = 1; */ DEFAULT = 1, /** * @generated from enum value: CUSTOM_SUBAGENT_PERMISSION_MODE_READONLY = 2; */ READONLY = 2, } /** * Describes the enum agent.v1.CustomSubagentPermissionMode. */ export const CustomSubagentPermissionModeSchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 11); /** * @generated from enum agent.v1.TodoStatus */ export enum TodoStatus { /** * @generated from enum value: TODO_STATUS_UNSPECIFIED = 0; */ UNSPECIFIED = 0, /** * @generated from enum value: TODO_STATUS_PENDING = 1; */ PENDING = 1, /** * @generated from enum value: TODO_STATUS_IN_PROGRESS = 2; */ IN_PROGRESS = 2, /** * @generated from enum value: TODO_STATUS_COMPLETED = 3; */ COMPLETED = 3, /** * @generated from enum value: TODO_STATUS_CANCELLED = 4; */ CANCELLED = 4, } /** * Describes the enum agent.v1.TodoStatus. */ export const TodoStatusSchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 12); /** * @generated from enum agent.v1.ClientOS */ export enum ClientOS { /** * @generated from enum value: CLIENT_OS_UNSPECIFIED = 0; */ CLIENT_OS_UNSPECIFIED = 0, /** * @generated from enum value: CLIENT_OS_WINDOWS = 1; */ CLIENT_OS_WINDOWS = 1, /** * @generated from enum value: CLIENT_OS_MACOS = 2; */ CLIENT_OS_MACOS = 2, /** * @generated from enum value: CLIENT_OS_LINUX = 3; */ CLIENT_OS_LINUX = 3, } /** * Describes the enum agent.v1.ClientOS. */ export const ClientOSSchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 13); /** * @generated from enum agent.v1.ArtifactUploadDispatchStatus */ export enum ArtifactUploadDispatchStatus { /** * @generated from enum value: ARTIFACT_UPLOAD_DISPATCH_STATUS_UNSPECIFIED = 0; */ UNSPECIFIED = 0, /** * @generated from enum value: ARTIFACT_UPLOAD_DISPATCH_STATUS_ACCEPTED = 1; */ ACCEPTED = 1, /** * @generated from enum value: ARTIFACT_UPLOAD_DISPATCH_STATUS_REJECTED = 2; */ REJECTED = 2, /** * @generated from enum value: ARTIFACT_UPLOAD_DISPATCH_STATUS_SKIPPED_ALREADY_IN_PROGRESS = 3; */ SKIPPED_ALREADY_IN_PROGRESS = 3, } /** * Describes the enum agent.v1.ArtifactUploadDispatchStatus. */ export const ArtifactUploadDispatchStatusSchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 14); /** * @generated from enum agent.v1.Frame_Kind */ export enum Frame_Kind { /** * @generated from enum value: KIND_UNSPECIFIED = 0; */ KIND_UNSPECIFIED = 0, /** * @generated from enum value: KIND_REQUEST = 1; */ KIND_REQUEST = 1, /** * @generated from enum value: KIND_RESPONSE = 2; */ KIND_RESPONSE = 2, /** * @generated from enum value: KIND_ERROR = 3; */ KIND_ERROR = 3, } /** * Describes the enum agent.v1.Frame_Kind. */ export const Frame_KindSchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 15); /** * @generated from enum agent.v1.BugbotDeeplinkEventKind */ export enum BugbotDeeplinkEventKind { /** * @generated from enum value: BUGBOT_DEEPLINK_EVENT_KIND_UNSPECIFIED = 0; */ UNSPECIFIED = 0, /** * @generated from enum value: BUGBOT_DEEPLINK_EVENT_KIND_CLICKED = 1; */ CLICKED = 1, /** * @generated from enum value: BUGBOT_DEEPLINK_EVENT_KIND_HANDLED_DIALOG_SHOWN = 2; */ HANDLED_DIALOG_SHOWN = 2, /** * @generated from enum value: BUGBOT_DEEPLINK_EVENT_KIND_HANDLED_CHAT_CREATED = 3; */ HANDLED_CHAT_CREATED = 3, /** * @generated from enum value: BUGBOT_DEEPLINK_EVENT_KIND_ERROR = 4; */ ERROR = 4, /** * @generated from enum value: BUGBOT_DEEPLINK_EVENT_KIND_HANDLED_FIX_IN_WEB = 5; */ HANDLED_FIX_IN_WEB = 5, } /** * Describes the enum agent.v1.BugbotDeeplinkEventKind. */ export const BugbotDeeplinkEventKindSchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 16); /** * Agent Service with bidirectional streaming * * @generated from service agent.v1.AgentService */ export const AgentService: GenService<{ /** * @generated from rpc agent.v1.AgentService.Run */ run: { methodKind: "unary"; input: typeof AgentClientMessageSchema; output: typeof AgentServerMessageSchema; }; /** * @generated from rpc agent.v1.AgentService.RunSSE */ runSSE: { methodKind: "unary"; input: typeof BidiRequestIdSchema; output: typeof AgentServerMessageSchema; }; /** * Generate a very short, succinct agent name from the provided user message. * * @generated from rpc agent.v1.AgentService.NameAgent */ nameAgent: { methodKind: "unary"; input: typeof NameAgentRequestSchema; output: typeof NameAgentResponseSchema; }; /** * @generated from rpc agent.v1.AgentService.GetUsableModels */ getUsableModels: { methodKind: "unary"; input: typeof GetUsableModelsRequestSchema; output: typeof GetUsableModelsResponseSchema; }; /** * @generated from rpc agent.v1.AgentService.GetDefaultModelForCli */ getDefaultModelForCli: { methodKind: "unary"; input: typeof GetDefaultModelForCliRequestSchema; output: typeof GetDefaultModelForCliResponseSchema; }; /** * Internal endpoint: returns all allowed model intents for devs * * @generated from rpc agent.v1.AgentService.GetAllowedModelIntents */ getAllowedModelIntents: { methodKind: "unary"; input: typeof GetAllowedModelIntentsRequestSchema; output: typeof GetAllowedModelIntentsResponseSchema; }; }> = /*@__PURE__*/ serviceDesc(file_agent, 0); /** * @generated from service agent.v1.ControlService */ export const ControlService: GenService<{ /** * Spawn * File read / write * * @generated from rpc agent.v1.ControlService.ReadTextFile */ readTextFile: { methodKind: "unary"; input: typeof ReadTextFileRequestSchema; output: typeof ReadTextFileResponseSchema; }; /** * @generated from rpc agent.v1.ControlService.WriteTextFile */ writeTextFile: { methodKind: "unary"; input: typeof WriteTextFileRequestSchema; output: typeof WriteTextFileResponseSchema; }; /** * Binary file read / write * * @generated from rpc agent.v1.ControlService.ReadBinaryFile */ readBinaryFile: { methodKind: "unary"; input: typeof ReadBinaryFileRequestSchema; output: typeof ReadBinaryFileResponseSchema; }; /** * @generated from rpc agent.v1.ControlService.WriteBinaryFile */ writeBinaryFile: { methodKind: "unary"; input: typeof WriteBinaryFileRequestSchema; output: typeof WriteBinaryFileResponseSchema; }; /** * Git * * @generated from rpc agent.v1.ControlService.GetWorkspaceChangesHash */ getWorkspaceChangesHash: { methodKind: "unary"; input: typeof GetWorkspaceChangesHashRequestSchema; output: typeof GetWorkspaceChangesHashResponseSchema; }; /** * @generated from rpc agent.v1.ControlService.RefreshGithubAccessToken */ refreshGithubAccessToken: { methodKind: "unary"; input: typeof RefreshGithubAccessTokenRequestSchema; output: typeof RefreshGithubAccessTokenResponseSchema; }; /** * Remote access * * @generated from rpc agent.v1.ControlService.WarmRemoteAccessServer */ warmRemoteAccessServer: { methodKind: "unary"; input: typeof WarmRemoteAccessServerRequestSchema; output: typeof WarmRemoteAccessServerResponseSchema; }; /** * Artifact uploads * * @generated from rpc agent.v1.ControlService.ListArtifacts */ listArtifacts: { methodKind: "unary"; input: typeof ListArtifactsRequestSchema; output: typeof ListArtifactsResponseSchema; }; /** * @generated from rpc agent.v1.ControlService.UploadArtifacts */ uploadArtifacts: { methodKind: "unary"; input: typeof UploadArtifactsRequestSchema; output: typeof UploadArtifactsResponseSchema; }; /** * @generated from rpc agent.v1.ControlService.GetMcpRefreshTokens */ getMcpRefreshTokens: { methodKind: "unary"; input: typeof GetMcpRefreshTokensRequestSchema; output: typeof GetMcpRefreshTokensResponseSchema; }; /** * Update the exec-daemon's environment variables for subsequent process spawns. This does NOT affect already-running processes. * * @generated from rpc agent.v1.ControlService.UpdateEnvironmentVariables */ updateEnvironmentVariables: { methodKind: "unary"; input: typeof UpdateEnvironmentVariablesRequestSchema; output: typeof UpdateEnvironmentVariablesResponseSchema; }; }> = /*@__PURE__*/ serviceDesc(file_agent, 1); /** * Agent Service with unary RPC * * @generated from service agent.v1.ExecService */ export const ExecService: GenService<{}> = /*@__PURE__*/ serviceDesc(file_agent, 2); /** * @generated from service agent.v1.PrivateWorkerBridgeExternalService */ export const PrivateWorkerBridgeExternalService: GenService<{ /** * @generated from rpc agent.v1.PrivateWorkerBridgeExternalService.Connect */ connect: { methodKind: "unary"; input: typeof FrameSchema; output: typeof FrameSchema; }; }> = /*@__PURE__*/ serviceDesc(file_agent, 3); /** * LifecycleService is exposed by the bridge *client*, in addition to ExecService (tool calls) and ControlService (control operations "within the daemon"). It operates at a similar abstraction level as AnyrunService: it represents operations similar to creating a VM, checking out a repository, etc. * * @generated from service agent.v1.LifecycleService */ export const LifecycleService: GenService<{ /** * Resets a long-lived worker * * @generated from rpc agent.v1.LifecycleService.ResetInstance */ resetInstance: { methodKind: "unary"; input: typeof EmptySchema; output: typeof EmptySchema; }; /** * Asks worker to exit(0) so that a new worker can take his place * * @generated from rpc agent.v1.LifecycleService.RenewInstance */ renewInstance: { methodKind: "unary"; input: typeof EmptySchema; output: typeof EmptySchema; }; }> = /*@__PURE__*/ serviceDesc(file_agent, 4);