diff options
Diffstat (limited to 'pirc.js')
| -rw-r--r-- | pirc.js | 104 |
1 files changed, 93 insertions, 11 deletions
@@ -1,4 +1,4 @@ -// PiRC extension 0.1.9-dev+af2a8deec30f. Third-party code in this file: @bufbuild/protobuf@2.16.0, ws@8.22.0; see NOTICE. +// PiRC extension 0.1.9-dev+2bb14bde6bbd. Third-party code in this file: @bufbuild/protobuf@2.16.0, ws@8.22.0; see NOTICE. import { createRequire as __pircCreateRequire } from "node:module"; const require = __pircCreateRequire(import.meta.url); var __create = Object.create; @@ -7140,17 +7140,17 @@ var file_pirc_v1alpha1_relay = /* @__PURE__ */ fileDesc("ChlwaXJjL3YxYWxwaGExL3J var FrameSchema = /* @__PURE__ */ messageDesc(file_pirc_v1alpha1_relay, 0); // protocol/gen/pirc/v1alpha1/session_pb.ts -var file_pirc_v1alpha1_session = /* @__PURE__ */ fileDesc("ChtwaXJjL3YxYWxwaGExL3Nlc3Npb24ucHJvdG8SDXBpcmMudjFhbHBoYTEipwMKE1Nlc3Npb25Bbm5vdW5jZW1lbnQSDAoEbmFtZRgBIAEoCRILCgNjd2QYAiABKAkSEAoIaG9zdG5hbWUYAyABKAkSIwoFbW9kZWwYBCABKAsyFC5waXJjLnYxYWxwaGExLk1vZGVsEjQKDnRoaW5raW5nX2xldmVsGAUgASgOMhwucGlyYy52MWFscGhhMS5UaGlua2luZ0xldmVsEg8KB3dvcmtpbmcYBiABKAgSLgoKc3RhcnRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGwoTcmVwbGFjZXNfc2Vzc2lvbl9pZBgIIAEoCRIsCgZvcmlnaW4YCSABKA4yHC5waXJjLnYxYWxwaGExLlNlc3Npb25PcmlnaW4SEgoKcGlfdmVyc2lvbhgKIAEoCRIZChFleHRlbnNpb25fdmVyc2lvbhgLIAEoCRISCgpjb21wYWN0aW5nGAwgASgIEiMKBXBsYWNlGA0gASgLMhQucGlyYy52MWFscGhhMS5QbGFjZRIUCgxmaXJzdF9wcm9tcHQYDiABKAkirQEKBVBsYWNlEgwKBGtpbmQYASABKAkSDQoFZ3JvdXAYAiABKAkSGQoMZ3JvdXBfbnVtYmVyGAMgASgNSACIAQESDgoGd2luZG93GAQgASgJEhoKDXdpbmRvd19udW1iZXIYBSABKA1IAYgBARIMCgRwYW5lGAYgASgJEg8KB2Rpc3BsYXkYByABKAlCDwoNX2dyb3VwX251bWJlckIQCg5fd2luZG93X251bWJlciIzCgVNb2RlbBIQCghwcm92aWRlchgBIAEoCRIKCgJpZBgCIAEoCRIMCgRuYW1lGAMgASgJIqkHCg5TZXNzaW9uTWVzc2FnZRInCgZwcm9tcHQYASABKAsyFS5waXJjLnYxYWxwaGExLlByb21wdEgAEiUKBWFib3J0GAIgASgLMhQucGlyYy52MWFscGhhMS5BYm9ydEgAEjgKD2hpc3RvcnlfcmVxdWVzdBgDIAEoCzIdLnBpcmMudjFhbHBoYTEuSGlzdG9yeVJlcXVlc3RIABIwCgtsaXN0X21vZGVscxgEIAEoCzIZLnBpcmMudjFhbHBoYTEuTGlzdE1vZGVsc0gAEiwKCXNldF9tb2RlbBgFIAEoCzIXLnBpcmMudjFhbHBoYTEuU2V0TW9kZWxIABI9ChJzZXRfdGhpbmtpbmdfbGV2ZWwYBiABKAsyHy5waXJjLnYxYWxwaGExLlNldFRoaW5raW5nTGV2ZWxIABIpCgdjb21wYWN0GAcgASgLMhYucGlyYy52MWFscGhhMS5Db21wYWN0SAASMAoLbmV3X3Nlc3Npb24YCCABKAsyGS5waXJjLnYxYWxwaGExLk5ld1Nlc3Npb25IABInCgZyZW5hbWUYCSABKAsyFS5waXJjLnYxYWxwaGExLlJlbmFtZUgAEjQKDXN0YXRzX3JlcXVlc3QYESABKAsyGy5waXJjLnYxYWxwaGExLlN0YXRzUmVxdWVzdEgAEjQKDWxpc3RfY29tbWFuZHMYEiABKAsyGy5waXJjLnYxYWxwaGExLkxpc3RDb21tYW5kc0gAEiMKBGZvcmsYEyABKAsyEy5waXJjLnYxYWxwaGExLkZvcmtIABIlCgVjbG9uZRgUIAEoCzIULnBpcmMudjFhbHBoYTEuQ2xvbmVIABIsCgVldmVudBgKIAEoCzIbLnBpcmMudjFhbHBoYTEuU2Vzc2lvbkV2ZW50SAASKQoHaGlzdG9yeRgLIAEoCzIWLnBpcmMudjFhbHBoYTEuSGlzdG9yeUgAEisKCGFjY2VwdGVkGAwgASgLMhcucGlyYy52MWFscGhhMS5BY2NlcHRlZEgAEiUKBWVycm9yGA0gASgLMhQucGlyYy52MWFscGhhMS5FcnJvckgAEicKBm1vZGVscxgOIAEoCzIVLnBpcmMudjFhbHBoYTEuTW9kZWxzSAASJQoFc3RhdHMYDyABKAsyFC5waXJjLnYxYWxwaGExLlN0YXRzSAASKwoIY29tbWFuZHMYECABKAsyFy5waXJjLnYxYWxwaGExLkNvbW1hbmRzSABCBgoEYm9keSIgCgpMaXN0TW9kZWxzEhIKCnJlcXVlc3RfaWQYASABKAkicQoGTW9kZWxzEhIKCnJlcXVlc3RfaWQYASABKAkSKAoGbW9kZWxzGAIgAygLMhgucGlyYy52MWFscGhhMS5Nb2RlbEluZm8SKQoHY3VycmVudBgDIAEoCzIYLnBpcmMudjFhbHBoYTEuTW9kZWxJbmZvImsKCU1vZGVsSW5mbxIjCgVtb2RlbBgBIAEoCzIULnBpcmMudjFhbHBoYTEuTW9kZWwSEQoJcmVhc29uaW5nGAIgASgIEhYKDmNvbnRleHRfd2luZG93GAMgASgEEg4KBmltYWdlcxgEIAEoCCJDCghTZXRNb2RlbBISCgpyZXF1ZXN0X2lkGAEgASgJEiMKBW1vZGVsGAIgASgLMhQucGlyYy52MWFscGhhMS5Nb2RlbCJTChBTZXRUaGlua2luZ0xldmVsEhIKCnJlcXVlc3RfaWQYASABKAkSKwoFbGV2ZWwYAiABKA4yHC5waXJjLnYxYWxwaGExLlRoaW5raW5nTGV2ZWwiMwoHQ29tcGFjdBISCgpyZXF1ZXN0X2lkGAEgASgJEhQKDGluc3RydWN0aW9ucxgCIAEoCSIgCgpOZXdTZXNzaW9uEhIKCnJlcXVlc3RfaWQYASABKAkiLAoERm9yaxISCgpyZXF1ZXN0X2lkGAEgASgJEhAKCGVudHJ5X2lkGAIgASgJIhsKBUNsb25lEhIKCnJlcXVlc3RfaWQYASABKAkiKgoGUmVuYW1lEhIKCnJlcXVlc3RfaWQYASABKAkSDAoEbmFtZRgCIAEoCSIiCgxTdGF0c1JlcXVlc3QSEgoKcmVxdWVzdF9pZBgBIAEoCSKIAQoFU3RhdHMSEgoKcmVxdWVzdF9pZBgBIAEoCRIjCgV0b3RhbBgCIAEoCzIULnBpcmMudjFhbHBoYTEuVXNhZ2USGwoOY29udGV4dF90b2tlbnMYAyABKARIAIgBARIWCg5jb250ZXh0X3dpbmRvdxgEIAEoBEIRCg9fY29udGV4dF90b2tlbnMiIgoMTGlzdENvbW1hbmRzEhIKCnJlcXVlc3RfaWQYASABKAkiTAoIQ29tbWFuZHMSEgoKcmVxdWVzdF9pZBgBIAEoCRIsCghjb21tYW5kcxgCIAMoCzIaLnBpcmMudjFhbHBoYTEuQ29tbWFuZEluZm8iXgoLQ29tbWFuZEluZm8SDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRIsCgZzb3VyY2UYAyABKA4yHC5waXJjLnYxYWxwaGExLkNvbW1hbmRTb3VyY2UiewoGUHJvbXB0EhIKCnJlcXVlc3RfaWQYASABKAkSDAoEdGV4dBgCIAEoCRIkCgZpbWFnZXMYAyADKAsyFC5waXJjLnYxYWxwaGExLkltYWdlEikKCGRlbGl2ZXJ5GAQgASgOMhcucGlyYy52MWFscGhhMS5EZWxpdmVyeSIoCgVJbWFnZRIRCgltaW1lX3R5cGUYASABKAkSDAoEZGF0YRgCIAEoDCIbCgVBYm9ydBISCgpyZXF1ZXN0X2lkGAEgASgJIjMKDkhpc3RvcnlSZXF1ZXN0EhIKCnJlcXVlc3RfaWQYASABKAkSDQoFbGltaXQYAiABKA0ibQoHSGlzdG9yeRISCgpyZXF1ZXN0X2lkGAEgASgJEi4KBWl0ZW1zGAIgAygLMh8ucGlyYy52MWFscGhhMS5Db252ZXJzYXRpb25JdGVtEgsKA3NlcRgDIAEoBBIRCgl0cnVuY2F0ZWQYBCABKAgiHgoIQWNjZXB0ZWQSEgoKcmVxdWVzdF9pZBgBIAEoCSLiAgoMU2Vzc2lvbkV2ZW50EgsKA3NlcRgBIAEoBBImCgJhdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoEaXRlbRgDIAEoCzIfLnBpcmMudjFhbHBoYTEuQ29udmVyc2F0aW9uSXRlbUgAEjgKD2Fzc2lzdGFudF9kZWx0YRgEIAEoCzIdLnBpcmMudjFhbHBoYTEuQXNzaXN0YW50RGVsdGFIABI0Cg10b29sX3Byb2dyZXNzGAUgASgLMhsucGlyYy52MWFscGhhMS5Ub29sUHJvZ3Jlc3NIABI4Cg93b3JraW5nX2NoYW5nZWQYBiABKAsyHS5waXJjLnYxYWxwaGExLldvcmtpbmdDaGFuZ2VkSAASOgoMYW5ub3VuY2VtZW50GAcgASgLMiIucGlyYy52MWFscGhhMS5TZXNzaW9uQW5ub3VuY2VtZW50SABCBgoEYm9keSLoAgoQQ29udmVyc2F0aW9uSXRlbRIQCghlbnRyeV9pZBgBIAEoCRIPCgd0dXJuX2lkGAIgASgJEiYKAmF0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIyCgx1c2VyX21lc3NhZ2UYBCABKAsyGi5waXJjLnYxYWxwaGExLlVzZXJNZXNzYWdlSAASPAoRYXNzaXN0YW50X21lc3NhZ2UYBSABKAsyHy5waXJjLnYxYWxwaGExLkFzc2lzdGFudE1lc3NhZ2VIABIsCgl0b29sX2NhbGwYBiABKAsyFy5waXJjLnYxYWxwaGExLlRvb2xDYWxsSAASMAoLdG9vbF9yZXN1bHQYByABKAsyGS5waXJjLnYxYWxwaGExLlRvb2xSZXN1bHRIABIvCgpjb21wYWN0aW9uGAggASgLMhkucGlyYy52MWFscGhhMS5Db21wYWN0aW9uSABCBgoEYm9keSJVCgtVc2VyTWVzc2FnZRIMCgR0ZXh0GAEgASgJEiQKBmltYWdlcxgCIAMoCzIULnBpcmMudjFhbHBoYTEuSW1hZ2USEgoKcmVxdWVzdF9pZBgDIAEoCSLlAQoQQXNzaXN0YW50TWVzc2FnZRISCgptZXNzYWdlX2lkGAEgASgJEiwKB2NvbnRlbnQYAiADKAsyGy5waXJjLnYxYWxwaGExLkNvbnRlbnRCbG9jaxIjCgV1c2FnZRgDIAEoCzIULnBpcmMudjFhbHBoYTEuVXNhZ2USLgoLc3RvcF9yZWFzb24YBCABKA4yGS5waXJjLnYxYWxwaGExLlN0b3BSZWFzb24SIwoFbW9kZWwYBSABKAsyFC5waXJjLnYxYWxwaGExLk1vZGVsEhUKDWVycm9yX21lc3NhZ2UYBiABKAkiOgoMQ29udGVudEJsb2NrEg4KBHRleHQYASABKAlIABISCgh0aGlua2luZxgCIAEoCUgAQgYKBGJvZHkieQoFVXNhZ2USFAoMaW5wdXRfdG9rZW5zGAEgASgEEhUKDW91dHB1dF90b2tlbnMYAiABKAQSGQoRY2FjaGVfcmVhZF90b2tlbnMYAyABKAQSGgoSY2FjaGVfd3JpdGVfdG9rZW5zGAQgASgEEgwKBGNvc3QYBSABKAEidgoOQXNzaXN0YW50RGVsdGESEgoKbWVzc2FnZV9pZBgBIAEoCRIPCgd0dXJuX2lkGAIgASgJEhMKC2Jsb2NrX2luZGV4GAMgASgNEg4KBHRleHQYBCABKAlIABISCgh0aGlua2luZxgFIAEoCUgAQgYKBGJvZHkiSwoIVG9vbENhbGwSFAoMdG9vbF9jYWxsX2lkGAEgASgJEhEKCXRvb2xfbmFtZRgCIAEoCRIWCg5hcmd1bWVudHNfanNvbhgDIAEoCSJCCgpUb29sUmVzdWx0EhQKDHRvb2xfY2FsbF9pZBgBIAEoCRIQCghpc19lcnJvchgCIAEoCBIMCgR0ZXh0GAMgASgJIkMKDFRvb2xQcm9ncmVzcxIUCgx0b29sX2NhbGxfaWQYASABKAkSDwoHdHVybl9pZBgCIAEoCRIMCgR0ZXh0GAMgASgJIiEKDldvcmtpbmdDaGFuZ2VkEg8KB3dvcmtpbmcYASABKAgiNAoKQ29tcGFjdGlvbhIPCgdzdW1tYXJ5GAEgASgJEhUKDXRva2Vuc19iZWZvcmUYAiABKAQqsgEKDVNlc3Npb25PcmlnaW4SHgoaU0VTU0lPTl9PUklHSU5fVU5TUEVDSUZJRUQQABIaChZTRVNTSU9OX09SSUdJTl9TVEFSVFVQEAESFgoSU0VTU0lPTl9PUklHSU5fTkVXEAISGQoVU0VTU0lPTl9PUklHSU5fUkVTVU1FEAMSFwoTU0VTU0lPTl9PUklHSU5fRk9SSxAEEhkKFVNFU1NJT05fT1JJR0lOX1JFTE9BRBAFKuEBCg1UaGlua2luZ0xldmVsEh4KGlRISU5LSU5HX0xFVkVMX1VOU1BFQ0lGSUVEEAASFgoSVEhJTktJTkdfTEVWRUxfT0ZGEAESGgoWVEhJTktJTkdfTEVWRUxfTUlOSU1BTBACEhYKElRISU5LSU5HX0xFVkVMX0xPVxADEhkKFVRISU5LSU5HX0xFVkVMX01FRElVTRAEEhcKE1RISU5LSU5HX0xFVkVMX0hJR0gQBRIYChRUSElOS0lOR19MRVZFTF9YSElHSBAGEhYKElRISU5LSU5HX0xFVkVMX01BWBAHKoIBCg1Db21tYW5kU291cmNlEh4KGkNPTU1BTkRfU09VUkNFX1VOU1BFQ0lGSUVEEAASHAoYQ09NTUFORF9TT1VSQ0VfRVhURU5TSU9OEAESGQoVQ09NTUFORF9TT1VSQ0VfUFJPTVBUEAISGAoUQ09NTUFORF9TT1VSQ0VfU0tJTEwQAypQCghEZWxpdmVyeRIYChRERUxJVkVSWV9VTlNQRUNJRklFRBAAEhIKDkRFTElWRVJZX1NURUVSEAESFgoSREVMSVZFUllfRk9MTE9XX1VQEAIquwEKClN0b3BSZWFzb24SGwoXU1RPUF9SRUFTT05fVU5TUEVDSUZJRUQQABIUChBTVE9QX1JFQVNPTl9TVE9QEAESFgoSU1RPUF9SRUFTT05fTEVOR1RIEAISGAoUU1RPUF9SRUFTT05fVE9PTF9VU0UQAxIXChNTVE9QX1JFQVNPTl9BQk9SVEVEEAQSFQoRU1RPUF9SRUFTT05fRVJST1IQBRIYChRTVE9QX1JFQVNPTl9ERUZFUlJFRBAGQq0BChFjb20ucGlyYy52MWFscGhhMUIMU2Vzc2lvblByb3RvUAFaNXBpcmMuZGV2L3JlbGF5L2ludGVybmFsL3BiL3BpcmMvdjFhbHBoYTE7cGlyY3YxYWxwaGExogIDUFhYqgINUGlyYy5WMWFscGhhMcoCDVBpcmNcVjFhbHBoYTHiAhlQaXJjXFYxYWxwaGExXEdQQk1ldGFkYXRh6gIOUGlyYzo6VjFhbHBoYTFiBnByb3RvMw", [file_google_protobuf_timestamp, file_pirc_v1alpha1_common]); +var file_pirc_v1alpha1_session = /* @__PURE__ */ fileDesc("ChtwaXJjL3YxYWxwaGExL3Nlc3Npb24ucHJvdG8SDXBpcmMudjFhbHBoYTEipwMKE1Nlc3Npb25Bbm5vdW5jZW1lbnQSDAoEbmFtZRgBIAEoCRILCgNjd2QYAiABKAkSEAoIaG9zdG5hbWUYAyABKAkSIwoFbW9kZWwYBCABKAsyFC5waXJjLnYxYWxwaGExLk1vZGVsEjQKDnRoaW5raW5nX2xldmVsGAUgASgOMhwucGlyYy52MWFscGhhMS5UaGlua2luZ0xldmVsEg8KB3dvcmtpbmcYBiABKAgSLgoKc3RhcnRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGwoTcmVwbGFjZXNfc2Vzc2lvbl9pZBgIIAEoCRIsCgZvcmlnaW4YCSABKA4yHC5waXJjLnYxYWxwaGExLlNlc3Npb25PcmlnaW4SEgoKcGlfdmVyc2lvbhgKIAEoCRIZChFleHRlbnNpb25fdmVyc2lvbhgLIAEoCRISCgpjb21wYWN0aW5nGAwgASgIEiMKBXBsYWNlGA0gASgLMhQucGlyYy52MWFscGhhMS5QbGFjZRIUCgxmaXJzdF9wcm9tcHQYDiABKAkirQEKBVBsYWNlEgwKBGtpbmQYASABKAkSDQoFZ3JvdXAYAiABKAkSGQoMZ3JvdXBfbnVtYmVyGAMgASgNSACIAQESDgoGd2luZG93GAQgASgJEhoKDXdpbmRvd19udW1iZXIYBSABKA1IAYgBARIMCgRwYW5lGAYgASgJEg8KB2Rpc3BsYXkYByABKAlCDwoNX2dyb3VwX251bWJlckIQCg5fd2luZG93X251bWJlciIzCgVNb2RlbBIQCghwcm92aWRlchgBIAEoCRIKCgJpZBgCIAEoCRIMCgRuYW1lGAMgASgJIscICg5TZXNzaW9uTWVzc2FnZRInCgZwcm9tcHQYASABKAsyFS5waXJjLnYxYWxwaGExLlByb21wdEgAEiUKBWFib3J0GAIgASgLMhQucGlyYy52MWFscGhhMS5BYm9ydEgAEjgKD2hpc3RvcnlfcmVxdWVzdBgDIAEoCzIdLnBpcmMudjFhbHBoYTEuSGlzdG9yeVJlcXVlc3RIABIwCgtsaXN0X21vZGVscxgEIAEoCzIZLnBpcmMudjFhbHBoYTEuTGlzdE1vZGVsc0gAEiwKCXNldF9tb2RlbBgFIAEoCzIXLnBpcmMudjFhbHBoYTEuU2V0TW9kZWxIABI9ChJzZXRfdGhpbmtpbmdfbGV2ZWwYBiABKAsyHy5waXJjLnYxYWxwaGExLlNldFRoaW5raW5nTGV2ZWxIABIpCgdjb21wYWN0GAcgASgLMhYucGlyYy52MWFscGhhMS5Db21wYWN0SAASMAoLbmV3X3Nlc3Npb24YCCABKAsyGS5waXJjLnYxYWxwaGExLk5ld1Nlc3Npb25IABInCgZyZW5hbWUYCSABKAsyFS5waXJjLnYxYWxwaGExLlJlbmFtZUgAEjQKDXN0YXRzX3JlcXVlc3QYESABKAsyGy5waXJjLnYxYWxwaGExLlN0YXRzUmVxdWVzdEgAEjQKDWxpc3RfY29tbWFuZHMYEiABKAsyGy5waXJjLnYxYWxwaGExLkxpc3RDb21tYW5kc0gAEiMKBGZvcmsYEyABKAsyEy5waXJjLnYxYWxwaGExLkZvcmtIABIlCgVjbG9uZRgUIAEoCzIULnBpcmMudjFhbHBoYTEuQ2xvbmVIABI9ChJsaXN0X3Bhc3Rfc2Vzc2lvbnMYFSABKAsyHy5waXJjLnYxYWxwaGExLkxpc3RQYXN0U2Vzc2lvbnNIABInCgZyZXN1bWUYFiABKAsyFS5waXJjLnYxYWxwaGExLlJlc3VtZUgAEiwKBWV2ZW50GAogASgLMhsucGlyYy52MWFscGhhMS5TZXNzaW9uRXZlbnRIABIpCgdoaXN0b3J5GAsgASgLMhYucGlyYy52MWFscGhhMS5IaXN0b3J5SAASKwoIYWNjZXB0ZWQYDCABKAsyFy5waXJjLnYxYWxwaGExLkFjY2VwdGVkSAASJQoFZXJyb3IYDSABKAsyFC5waXJjLnYxYWxwaGExLkVycm9ySAASJwoGbW9kZWxzGA4gASgLMhUucGlyYy52MWFscGhhMS5Nb2RlbHNIABIlCgVzdGF0cxgPIAEoCzIULnBpcmMudjFhbHBoYTEuU3RhdHNIABIrCghjb21tYW5kcxgQIAEoCzIXLnBpcmMudjFhbHBoYTEuQ29tbWFuZHNIABI0Cg1wYXN0X3Nlc3Npb25zGBcgASgLMhsucGlyYy52MWFscGhhMS5QYXN0U2Vzc2lvbnNIAEIGCgRib2R5IiAKCkxpc3RNb2RlbHMSEgoKcmVxdWVzdF9pZBgBIAEoCSJxCgZNb2RlbHMSEgoKcmVxdWVzdF9pZBgBIAEoCRIoCgZtb2RlbHMYAiADKAsyGC5waXJjLnYxYWxwaGExLk1vZGVsSW5mbxIpCgdjdXJyZW50GAMgASgLMhgucGlyYy52MWFscGhhMS5Nb2RlbEluZm8iawoJTW9kZWxJbmZvEiMKBW1vZGVsGAEgASgLMhQucGlyYy52MWFscGhhMS5Nb2RlbBIRCglyZWFzb25pbmcYAiABKAgSFgoOY29udGV4dF93aW5kb3cYAyABKAQSDgoGaW1hZ2VzGAQgASgIIkMKCFNldE1vZGVsEhIKCnJlcXVlc3RfaWQYASABKAkSIwoFbW9kZWwYAiABKAsyFC5waXJjLnYxYWxwaGExLk1vZGVsIlMKEFNldFRoaW5raW5nTGV2ZWwSEgoKcmVxdWVzdF9pZBgBIAEoCRIrCgVsZXZlbBgCIAEoDjIcLnBpcmMudjFhbHBoYTEuVGhpbmtpbmdMZXZlbCIzCgdDb21wYWN0EhIKCnJlcXVlc3RfaWQYASABKAkSFAoMaW5zdHJ1Y3Rpb25zGAIgASgJIiAKCk5ld1Nlc3Npb24SEgoKcmVxdWVzdF9pZBgBIAEoCSIsCgRGb3JrEhIKCnJlcXVlc3RfaWQYASABKAkSEAoIZW50cnlfaWQYAiABKAkiGwoFQ2xvbmUSEgoKcmVxdWVzdF9pZBgBIAEoCSI7ChBMaXN0UGFzdFNlc3Npb25zEhIKCnJlcXVlc3RfaWQYASABKAkSEwoLYWxsX2ZvbGRlcnMYAiABKAgiYwoMUGFzdFNlc3Npb25zEhIKCnJlcXVlc3RfaWQYASABKAkSLAoIc2Vzc2lvbnMYAiADKAsyGi5waXJjLnYxYWxwaGExLlBhc3RTZXNzaW9uEhEKCXRydW5jYXRlZBgDIAEoCCLYAQoLUGFzdFNlc3Npb24SDAoEcGF0aBgBIAEoCRISCgpzZXNzaW9uX2lkGAIgASgJEgsKA2N3ZBgDIAEoCRIMCgRuYW1lGAQgASgJEhQKDGZpcnN0X3Byb21wdBgFIAEoCRIuCgpjcmVhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgttb2RpZmllZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFQoNbWVzc2FnZV9jb3VudBgIIAEoDSIqCgZSZXN1bWUSEgoKcmVxdWVzdF9pZBgBIAEoCRIMCgRwYXRoGAIgASgJIioKBlJlbmFtZRISCgpyZXF1ZXN0X2lkGAEgASgJEgwKBG5hbWUYAiABKAkiIgoMU3RhdHNSZXF1ZXN0EhIKCnJlcXVlc3RfaWQYASABKAkiiAEKBVN0YXRzEhIKCnJlcXVlc3RfaWQYASABKAkSIwoFdG90YWwYAiABKAsyFC5waXJjLnYxYWxwaGExLlVzYWdlEhsKDmNvbnRleHRfdG9rZW5zGAMgASgESACIAQESFgoOY29udGV4dF93aW5kb3cYBCABKARCEQoPX2NvbnRleHRfdG9rZW5zIiIKDExpc3RDb21tYW5kcxISCgpyZXF1ZXN0X2lkGAEgASgJIkwKCENvbW1hbmRzEhIKCnJlcXVlc3RfaWQYASABKAkSLAoIY29tbWFuZHMYAiADKAsyGi5waXJjLnYxYWxwaGExLkNvbW1hbmRJbmZvIl4KC0NvbW1hbmRJbmZvEgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSLAoGc291cmNlGAMgASgOMhwucGlyYy52MWFscGhhMS5Db21tYW5kU291cmNlInsKBlByb21wdBISCgpyZXF1ZXN0X2lkGAEgASgJEgwKBHRleHQYAiABKAkSJAoGaW1hZ2VzGAMgAygLMhQucGlyYy52MWFscGhhMS5JbWFnZRIpCghkZWxpdmVyeRgEIAEoDjIXLnBpcmMudjFhbHBoYTEuRGVsaXZlcnkiKAoFSW1hZ2USEQoJbWltZV90eXBlGAEgASgJEgwKBGRhdGEYAiABKAwiGwoFQWJvcnQSEgoKcmVxdWVzdF9pZBgBIAEoCSIzCg5IaXN0b3J5UmVxdWVzdBISCgpyZXF1ZXN0X2lkGAEgASgJEg0KBWxpbWl0GAIgASgNIm0KB0hpc3RvcnkSEgoKcmVxdWVzdF9pZBgBIAEoCRIuCgVpdGVtcxgCIAMoCzIfLnBpcmMudjFhbHBoYTEuQ29udmVyc2F0aW9uSXRlbRILCgNzZXEYAyABKAQSEQoJdHJ1bmNhdGVkGAQgASgIIh4KCEFjY2VwdGVkEhIKCnJlcXVlc3RfaWQYASABKAki4gIKDFNlc3Npb25FdmVudBILCgNzZXEYASABKAQSJgoCYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KBGl0ZW0YAyABKAsyHy5waXJjLnYxYWxwaGExLkNvbnZlcnNhdGlvbkl0ZW1IABI4Cg9hc3Npc3RhbnRfZGVsdGEYBCABKAsyHS5waXJjLnYxYWxwaGExLkFzc2lzdGFudERlbHRhSAASNAoNdG9vbF9wcm9ncmVzcxgFIAEoCzIbLnBpcmMudjFhbHBoYTEuVG9vbFByb2dyZXNzSAASOAoPd29ya2luZ19jaGFuZ2VkGAYgASgLMh0ucGlyYy52MWFscGhhMS5Xb3JraW5nQ2hhbmdlZEgAEjoKDGFubm91bmNlbWVudBgHIAEoCzIiLnBpcmMudjFhbHBoYTEuU2Vzc2lvbkFubm91bmNlbWVudEgAQgYKBGJvZHki6AIKEENvbnZlcnNhdGlvbkl0ZW0SEAoIZW50cnlfaWQYASABKAkSDwoHdHVybl9pZBgCIAEoCRImCgJhdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMgoMdXNlcl9tZXNzYWdlGAQgASgLMhoucGlyYy52MWFscGhhMS5Vc2VyTWVzc2FnZUgAEjwKEWFzc2lzdGFudF9tZXNzYWdlGAUgASgLMh8ucGlyYy52MWFscGhhMS5Bc3Npc3RhbnRNZXNzYWdlSAASLAoJdG9vbF9jYWxsGAYgASgLMhcucGlyYy52MWFscGhhMS5Ub29sQ2FsbEgAEjAKC3Rvb2xfcmVzdWx0GAcgASgLMhkucGlyYy52MWFscGhhMS5Ub29sUmVzdWx0SAASLwoKY29tcGFjdGlvbhgIIAEoCzIZLnBpcmMudjFhbHBoYTEuQ29tcGFjdGlvbkgAQgYKBGJvZHkiVQoLVXNlck1lc3NhZ2USDAoEdGV4dBgBIAEoCRIkCgZpbWFnZXMYAiADKAsyFC5waXJjLnYxYWxwaGExLkltYWdlEhIKCnJlcXVlc3RfaWQYAyABKAki5QEKEEFzc2lzdGFudE1lc3NhZ2USEgoKbWVzc2FnZV9pZBgBIAEoCRIsCgdjb250ZW50GAIgAygLMhsucGlyYy52MWFscGhhMS5Db250ZW50QmxvY2sSIwoFdXNhZ2UYAyABKAsyFC5waXJjLnYxYWxwaGExLlVzYWdlEi4KC3N0b3BfcmVhc29uGAQgASgOMhkucGlyYy52MWFscGhhMS5TdG9wUmVhc29uEiMKBW1vZGVsGAUgASgLMhQucGlyYy52MWFscGhhMS5Nb2RlbBIVCg1lcnJvcl9tZXNzYWdlGAYgASgJIjoKDENvbnRlbnRCbG9jaxIOCgR0ZXh0GAEgASgJSAASEgoIdGhpbmtpbmcYAiABKAlIAEIGCgRib2R5InkKBVVzYWdlEhQKDGlucHV0X3Rva2VucxgBIAEoBBIVCg1vdXRwdXRfdG9rZW5zGAIgASgEEhkKEWNhY2hlX3JlYWRfdG9rZW5zGAMgASgEEhoKEmNhY2hlX3dyaXRlX3Rva2VucxgEIAEoBBIMCgRjb3N0GAUgASgBInYKDkFzc2lzdGFudERlbHRhEhIKCm1lc3NhZ2VfaWQYASABKAkSDwoHdHVybl9pZBgCIAEoCRITCgtibG9ja19pbmRleBgDIAEoDRIOCgR0ZXh0GAQgASgJSAASEgoIdGhpbmtpbmcYBSABKAlIAEIGCgRib2R5IksKCFRvb2xDYWxsEhQKDHRvb2xfY2FsbF9pZBgBIAEoCRIRCgl0b29sX25hbWUYAiABKAkSFgoOYXJndW1lbnRzX2pzb24YAyABKAkiQgoKVG9vbFJlc3VsdBIUCgx0b29sX2NhbGxfaWQYASABKAkSEAoIaXNfZXJyb3IYAiABKAgSDAoEdGV4dBgDIAEoCSJDCgxUb29sUHJvZ3Jlc3MSFAoMdG9vbF9jYWxsX2lkGAEgASgJEg8KB3R1cm5faWQYAiABKAkSDAoEdGV4dBgDIAEoCSIhCg5Xb3JraW5nQ2hhbmdlZBIPCgd3b3JraW5nGAEgASgIIjQKCkNvbXBhY3Rpb24SDwoHc3VtbWFyeRgBIAEoCRIVCg10b2tlbnNfYmVmb3JlGAIgASgEKrIBCg1TZXNzaW9uT3JpZ2luEh4KGlNFU1NJT05fT1JJR0lOX1VOU1BFQ0lGSUVEEAASGgoWU0VTU0lPTl9PUklHSU5fU1RBUlRVUBABEhYKElNFU1NJT05fT1JJR0lOX05FVxACEhkKFVNFU1NJT05fT1JJR0lOX1JFU1VNRRADEhcKE1NFU1NJT05fT1JJR0lOX0ZPUksQBBIZChVTRVNTSU9OX09SSUdJTl9SRUxPQUQQBSrhAQoNVGhpbmtpbmdMZXZlbBIeChpUSElOS0lOR19MRVZFTF9VTlNQRUNJRklFRBAAEhYKElRISU5LSU5HX0xFVkVMX09GRhABEhoKFlRISU5LSU5HX0xFVkVMX01JTklNQUwQAhIWChJUSElOS0lOR19MRVZFTF9MT1cQAxIZChVUSElOS0lOR19MRVZFTF9NRURJVU0QBBIXChNUSElOS0lOR19MRVZFTF9ISUdIEAUSGAoUVEhJTktJTkdfTEVWRUxfWEhJR0gQBhIWChJUSElOS0lOR19MRVZFTF9NQVgQByqCAQoNQ29tbWFuZFNvdXJjZRIeChpDT01NQU5EX1NPVVJDRV9VTlNQRUNJRklFRBAAEhwKGENPTU1BTkRfU09VUkNFX0VYVEVOU0lPThABEhkKFUNPTU1BTkRfU09VUkNFX1BST01QVBACEhgKFENPTU1BTkRfU09VUkNFX1NLSUxMEAMqUAoIRGVsaXZlcnkSGAoUREVMSVZFUllfVU5TUEVDSUZJRUQQABISCg5ERUxJVkVSWV9TVEVFUhABEhYKEkRFTElWRVJZX0ZPTExPV19VUBACKrsBCgpTdG9wUmVhc29uEhsKF1NUT1BfUkVBU09OX1VOU1BFQ0lGSUVEEAASFAoQU1RPUF9SRUFTT05fU1RPUBABEhYKElNUT1BfUkVBU09OX0xFTkdUSBACEhgKFFNUT1BfUkVBU09OX1RPT0xfVVNFEAMSFwoTU1RPUF9SRUFTT05fQUJPUlRFRBAEEhUKEVNUT1BfUkVBU09OX0VSUk9SEAUSGAoUU1RPUF9SRUFTT05fREVGRVJSRUQQBkKtAQoRY29tLnBpcmMudjFhbHBoYTFCDFNlc3Npb25Qcm90b1ABWjVwaXJjLmRldi9yZWxheS9pbnRlcm5hbC9wYi9waXJjL3YxYWxwaGExO3BpcmN2MWFscGhhMaICA1BYWKoCDVBpcmMuVjFhbHBoYTHKAg1QaXJjXFYxYWxwaGEx4gIZUGlyY1xWMWFscGhhMVxHUEJNZXRhZGF0YeoCDlBpcmM6OlYxYWxwaGExYgZwcm90bzM", [file_google_protobuf_timestamp, file_pirc_v1alpha1_common]); var SessionAnnouncementSchema = /* @__PURE__ */ messageDesc(file_pirc_v1alpha1_session, 0); var PlaceSchema = /* @__PURE__ */ messageDesc(file_pirc_v1alpha1_session, 1); var ModelSchema = /* @__PURE__ */ messageDesc(file_pirc_v1alpha1_session, 2); var SessionMessageSchema = /* @__PURE__ */ messageDesc(file_pirc_v1alpha1_session, 3); var ModelInfoSchema = /* @__PURE__ */ messageDesc(file_pirc_v1alpha1_session, 6); -var ImageSchema = /* @__PURE__ */ messageDesc(file_pirc_v1alpha1_session, 20); -var HistorySchema = /* @__PURE__ */ messageDesc(file_pirc_v1alpha1_session, 23); -var ConversationItemSchema = /* @__PURE__ */ messageDesc(file_pirc_v1alpha1_session, 26); -var ContentBlockSchema = /* @__PURE__ */ messageDesc(file_pirc_v1alpha1_session, 29); -var UsageSchema = /* @__PURE__ */ messageDesc(file_pirc_v1alpha1_session, 30); +var ImageSchema = /* @__PURE__ */ messageDesc(file_pirc_v1alpha1_session, 24); +var HistorySchema = /* @__PURE__ */ messageDesc(file_pirc_v1alpha1_session, 27); +var ConversationItemSchema = /* @__PURE__ */ messageDesc(file_pirc_v1alpha1_session, 30); +var ContentBlockSchema = /* @__PURE__ */ messageDesc(file_pirc_v1alpha1_session, 33); +var UsageSchema = /* @__PURE__ */ messageDesc(file_pirc_v1alpha1_session, 34); // relay-client/keys.ts import { createPrivateKey, createPublicKey, generateKeyPairSync, randomBytes, sign } from "node:crypto"; @@ -7684,6 +7684,7 @@ var SHOWN = /* @__PURE__ */ new Set(["user", "assistant", "toolResult"]); var NEW_SESSION_COMMAND = "pirc:new"; var FORK_COMMAND = "pirc:fork"; var CLONE_COMMAND = "pirc:clone"; +var RESUME_COMMAND = "pirc:resume"; function forkProblem(ctx, id, position) { const sm = ctx.sessionManager; const e = id ? sm.getEntry(id) : void 0; @@ -7694,6 +7695,23 @@ function forkProblem(ctx, id, position) { if (target && file && !existsSync(file)) return "pi has not saved this session yet: it has no reply to keep"; return void 0; } +async function pastSessions(ctx, allFolders) { + const sm = ctx.sessionManager; + const pi = sm.constructor; + if (typeof pi.list !== "function" || typeof pi.listAll !== "function") throw new Error("this pi gives no way to list its sessions"); + const dir = sm.getSessionDir(); + if (!allFolders) return pi.list(sm.getCwd(), dir); + return sm.usesDefaultSessionDir?.() === false ? pi.listAll(dir) : pi.listAll(); +} +async function resumeProblem(ctx, path) { + if (!path) return "no session given"; + if (path === ctx.sessionManager.getSessionFile()) return "pi has this session open already"; + const find = async (all) => (await pastSessions(ctx, all)).find((s) => s.path === path); + const info = await find(false) ?? await find(true); + if (!info) return "pi has no such saved session"; + if (info.cwd && !existsSync(info.cwd)) return `its folder no longer exists: ${info.cwd}`; + return void 0; +} var BUILTIN_COMMANDS = /* @__PURE__ */ new Set([ "settings", "model", @@ -7727,6 +7745,7 @@ var ACTION_FOR = { new: "new session", fork: "fork", clone: "clone", + resume: "resume", compact: "compact", session: "stats" }; @@ -7847,7 +7866,7 @@ var Live = class { clearTimeout(r.timer); r.respond(accepted("")); } - // The /pirc:new, :fork or :clone handler found the switch cancelled, or + // The /pirc:new, :fork, :clone or :resume handler found the switch cancelled, or // failed. onReplaceFailed(why) { const r = this.replacement; @@ -8212,6 +8231,31 @@ var Live = class { if (problem) return respond(errorReply(requestId, 4 /* INVALID */, problem)); return this.replace(requestId, "fork", `/${CLONE_COMMAND}`, "pi did not clone the session", respond); } + case "listPastSessions": { + const { requestId, allFolders } = body.value; + pastSessions(this.ctx, allFolders).then( + (all) => { + if (this.disposed) return respond(errorReply(requestId, 7 /* SESSION_GONE */, "the session ended")); + this.guard("past sessions", () => respond(this.pastSessions(requestId, all)))(); + }, + (e) => respond(errorReply(requestId, 13 /* PI_FAILED */, e?.message ?? String(e))) + ); + return; + } + case "resume": { + const { requestId, path } = body.value; + const why = this.busy(); + if (why) return respond(errorReply(requestId, 8 /* BUSY */, why)); + resumeProblem(this.ctx, path).then( + (problem) => { + if (this.disposed) return respond(errorReply(requestId, 7 /* SESSION_GONE */, "the session ended")); + if (problem) return respond(errorReply(requestId, 4 /* INVALID */, problem)); + this.guard("resume", () => this.replace(requestId, "resume", `/${RESUME_COMMAND} ${path}`, "pi did not resume the session", respond))(); + }, + (e) => respond(errorReply(requestId, 13 /* PI_FAILED */, e?.message ?? String(e))) + ); + return; + } case "statsRequest": { const usage = this.ctx.getContextUsage(); return respond(create(SessionMessageSchema, { @@ -8240,6 +8284,31 @@ var Live = class { return respond(errorReply("", 4 /* INVALID */, `not a request: ${body.case ?? "empty"}`)); } } + // The saved sessions but this one, newest first, within one frame. + pastSessions(requestId, all) { + const budget = this.sink.maxPayloadBytes() - 1024; + const current = this.ctx.sessionManager.getSessionFile(); + const shown = all.filter((s) => s.path !== current).map((s) => ({ + path: s.path, + sessionId: s.id, + cwd: s.cwd, + name: s.name ?? "", + firstPrompt: firstLine(promptText(s.firstMessage)), + createdAt: timestampFromDate(s.created), + modifiedAt: timestampFromDate(s.modified), + messageCount: s.messageCount + })); + let sessions = shown; + const reply = () => create(SessionMessageSchema, { + body: { case: "pastSessions", value: { requestId, sessions, truncated: sessions.length < shown.length } } + }); + let m = reply(); + while (sessions.length > 0 && toBinary(SessionMessageSchema, m).length > budget) { + sessions = sessions.slice(0, sessions.length - Math.max(1, Math.floor(sessions.length / 8))); + m = reply(); + } + return m; + } // The conversation on the current branch, newest last, within one frame. history(requestId, limit) { this.flushDelta(); @@ -8448,7 +8517,7 @@ function key(p) { } // extension/src/host.ts -var CHANGES = /* @__PURE__ */ new Set(["prompt", "abort", "setModel", "setThinkingLevel", "compact", "newSession", "rename"]); +var CHANGES = /* @__PURE__ */ new Set(["prompt", "abort", "setModel", "setThinkingLevel", "compact", "newSession", "fork", "clone", "resume", "rename"]); var IDEMPOTENCY_ENTRIES = 1e3; var RETRYABLE = /* @__PURE__ */ new Set([8 /* BUSY */, 9 /* TIMEOUT */, 13 /* PI_FAILED */, 4 /* INVALID */, 7 /* SESSION_GONE */]); function hex(b) { @@ -8776,7 +8845,7 @@ function requestIdOf(m) { } // extension/src/index.ts -var EXTENSION_VERSION = true ? "0.1.9-dev+af2a8deec30f" : "dev"; +var EXTENSION_VERSION = true ? "0.1.9-dev+2bb14bde6bbd" : "dev"; function piVersion() { try { let dir = dirname3(realpathSync(process.argv[1])); @@ -8791,7 +8860,7 @@ function piVersion() { } return "unknown"; } -var LOAD = true ? "0.1.9-dev+af2a8deec30f" : `dev ${randomBytes3(4).toString("hex")}`; +var LOAD = true ? "0.1.9-dev+2bb14bde6bbd" : `dev ${randomBytes3(4).toString("hex")}`; var KEY = /* @__PURE__ */ Symbol.for("pirc.extension"); var proc = globalThis[KEY] ??= {}; if (!proc.host || proc.load !== LOAD) { @@ -8892,6 +8961,19 @@ function index_default(pi) { } } }); + pi.registerCommand(RESUME_COMMAND, { + description: "PiRC: resume a saved session (used by PiRC's clients)", + handler: async (args, ctx) => { + const path = args.trim(); + try { + const problem = await resumeProblem(ctx, path); + if (problem) return failed(problem); + if ((await ctx.switchSession(path)).cancelled) failed("another extension cancelled the resume"); + } catch (err) { + failed(err?.message ?? String(err)); + } + } + }); pi.registerCommand("pirc", { description: "PiRC: status, enrol <relay-url> [token], reconnect", handler: async (args, ctx) => { |
