# Install only a Conductor skill, SSH command wrapper and VM alias for this user. param( [string]$VmHost, [string]$TestRoot, [switch]$PayloadCheck ) $ErrorActionPreference = 'Stop' Set-StrictMode -Version Latest # The payload below is generated from client/ and skills/ by scripts/build_windows_installer.py. # BEGIN EMBEDDED CONDUCTOR FILES $embeddedFiles = @{ 'client/conductor.ps1' = 'IyBDb25kdWN0b3IgQ0xJOiB1c2UgdGhpcyB1c2VyJ3MgZXhpc3RpbmcgU1NIIGNsaWVudCwgY29uZmlnLCBhZ2VudCBhbmQganVtcCBob3N0cy4KcGFyYW0oCiAgICBbUGFyYW1ldGVyKE1hbmRhdG9yeSA9ICR0cnVlKV1bVmFsaWRhdGVQYXR0ZXJuKCdeY29vcmRpbmF0aW9uX1thLXpfXSskJyldW3N0cmluZ10kQWN0aW9uLAogICAgW2hhc2h0YWJsZV0kQXJndW1lbnRzID0gQHt9LAogICAgW3N0cmluZ10kSG9zdEFsaWFzLAogICAgW3N0cmluZ10kQ29uZmlnUm9vdAopCiRFcnJvckFjdGlvblByZWZlcmVuY2UgPSAnU3RvcCcKU2V0LVN0cmljdE1vZGUgLVZlcnNpb24gTGF0ZXN0CgppZiAoLW5vdCAkSG9zdEFsaWFzKSB7CiAgICAkcm9vdCA9IGlmICgkQ29uZmlnUm9vdCkgeyAkQ29uZmlnUm9vdCB9IGVsc2UgeyBKb2luLVBhdGggJEhPTUUgJy5jb2RleFxjb25kdWN0b3ItY2xpZW50JyB9CiAgICAkaG9zdEZpbGUgPSBKb2luLVBhdGggJHJvb3QgJ2hvc3QudHh0JwogICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGhvc3RGaWxlIC1QYXRoVHlwZSBMZWFmKSkgewogICAgICAgIHRocm93ICdDb25kdWN0b3IgaG9zdCBpcyBub3QgY29uZmlndXJlZC4gUnVuIGluc3RhbGwtc3NoLWNsaWVudC5wczEgZmlyc3QuJwogICAgfQogICAgJEhvc3RBbGlhcyA9IChHZXQtQ29udGVudCAtTGl0ZXJhbFBhdGggJGhvc3RGaWxlIC1SYXcpLlRyaW0oKQp9CmlmICgkSG9zdEFsaWFzIC1ub3RtYXRjaCAnXig/OltBLVphLXpfXVtBLVphLXowLTlfLi1dKkApP1tBLVphLXowLTlfXVtBLVphLXowLTlfLi1dezAsMjUyfSQnKSB7CiAgICB0aHJvdyAnQ29uZHVjdG9yIGhvc3QgbXVzdCBiZSBhbiBTU0ggYWxpYXMsIGhvc3RuYW1lLCBJUCBhZGRyZXNzLCBvciBsb2dpbkBob3N0LicKfQppZiAoLW5vdCAoR2V0LUNvbW1hbmQgc3NoLmV4ZSAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51ZSkpIHsKICAgIHRocm93ICdXaW5kb3dzIE9wZW5TU0ggQ2xpZW50IGlzIHJlcXVpcmVkLicKfQoKJHJlcXVlc3QgPSBAeyBhY3Rpb24gPSAkQWN0aW9uOyBhcmd1bWVudHMgPSAkQXJndW1lbnRzIH0gfCBDb252ZXJ0VG8tSnNvbiAtRGVwdGggMTYgLUNvbXByZXNzCiRieXRlcyA9IFtTeXN0ZW0uVGV4dC5FbmNvZGluZ106OlVURjguR2V0Qnl0ZXMoJHJlcXVlc3QpCmlmICgkYnl0ZXMuTGVuZ3RoIC1ndCAxMjAwMDApIHsgdGhyb3cgJ0NvbmR1Y3RvciByZXF1ZXN0IGV4Y2VlZHMgMTIwIEtCLicgfQokc3RhcnQgPSBOZXctT2JqZWN0IFN5c3RlbS5EaWFnbm9zdGljcy5Qcm9jZXNzU3RhcnRJbmZvCiRzdGFydC5GaWxlTmFtZSA9IChHZXQtQ29tbWFuZCBzc2guZXhlKS5Tb3VyY2UKJHN0YXJ0LkFyZ3VtZW50cyA9ICItVCAtbyBDb25uZWN0VGltZW91dD0xMCAkSG9zdEFsaWFzIHN1ZG8gLW4gL3Vzci9sb2NhbC9saWIvY29uZHVjdG9yLWNvbW1hbmQiCiRzdGFydC5Vc2VTaGVsbEV4ZWN1dGUgPSAkZmFsc2UKJHN0YXJ0LkNyZWF0ZU5vV2luZG93ID0gJGZhbHNlCiRzdGFydC5SZWRpcmVjdFN0YW5kYXJkSW5wdXQgPSAkdHJ1ZQokc3RhcnQuUmVkaXJlY3RTdGFuZGFyZE91dHB1dCA9ICR0cnVlCiRzdGFydC5SZWRpcmVjdFN0YW5kYXJkRXJyb3IgPSAkdHJ1ZQokcHJvY2VzcyA9IE5ldy1PYmplY3QgU3lzdGVtLkRpYWdub3N0aWNzLlByb2Nlc3MKJHByb2Nlc3MuU3RhcnRJbmZvID0gJHN0YXJ0CnRyeSB7CiAgICBpZiAoLW5vdCAkcHJvY2Vzcy5TdGFydCgpKSB7IHRocm93ICdDb3VsZCBub3Qgc3RhcnQgU1NILicgfQogICAgJHByb2Nlc3MuU3RhbmRhcmRJbnB1dC5CYXNlU3RyZWFtLldyaXRlKCRieXRlcywgMCwgJGJ5dGVzLkxlbmd0aCkKICAgICRwcm9jZXNzLlN0YW5kYXJkSW5wdXQuQ2xvc2UoKQogICAgJG91dHB1dCA9ICRwcm9jZXNzLlN0YW5kYXJkT3V0cHV0LlJlYWRUb0VuZCgpCiAgICAkc3NoRXJyb3IgPSAkcHJvY2Vzcy5TdGFuZGFyZEVycm9yLlJlYWRUb0VuZCgpCiAgICAkcHJvY2Vzcy5XYWl0Rm9yRXhpdCgpCiAgICBpZiAoJHByb2Nlc3MuRXhpdENvZGUgLW5lIDAgLWFuZCAtbm90ICRvdXRwdXQpIHsKICAgICAgICB0aHJvdyAiU1NIIG9yIFZNIGF1dGhvcml6YXRpb24gZmFpbGVkOiAkKCRzc2hFcnJvci5UcmltKCkpIgogICAgfQogICAgaWYgKCRvdXRwdXQuTGVuZ3RoIC1ndCAyMDAwMDApIHsgdGhyb3cgJ0NvbmR1Y3RvciByZXNwb25zZSBleGNlZWRzIDIwMCBLQi4nIH0KICAgICRyZXBseSA9ICRvdXRwdXQgfCBDb252ZXJ0RnJvbS1Kc29uCiAgICBpZiAoLW5vdCAkcmVwbHkub2spIHsKICAgICAgICB0aHJvdyAiQ29uZHVjdG9yICQoJHJlcGx5LmVycm9yLmNvZGUpOiAkKCRyZXBseS5lcnJvci5tZXNzYWdlKSIKICAgIH0KICAgICRyZXBseS5yZXN1bHQgfCBDb252ZXJ0VG8tSnNvbiAtRGVwdGggMjAgLUNvbXByZXNzCn0gZmluYWxseSB7CiAgICAkcHJvY2Vzcy5EaXNwb3NlKCkKfQo=' 'skills/conductor-coordinator/SKILL.md' = 'LS0tCm5hbWU6IGNvbmR1Y3Rvci1jb29yZGluYXRvcgpkZXNjcmlwdGlvbjogQ2hvb3NlIGRpcmVjdCBleGVjdXRpb24gZm9yIG9uZSBjb2hlcmVudCB0YXNrLCBvciBtYW5hZ2UgbmF0aXZlIENvZGV4IHdvcmtlcnMgd2l0aCBkdXJhYmxlIHRhc2sgdHJhY2tpbmcgZm9yIG11bHRpcGxlIGRpc3RpbmN0IHdvcmtzdHJlYW1zLiBBc3NpZ25lZCB3b3JrZXJzIGV4ZWN1dGUgdGhlaXIgYm91bmRlZCByb2xlczsgb3JkaW5hcnkgY29udmVyc2F0aW9uIHN0YXlzIGRpcmVjdC4KLS0tCgojIENvbmR1Y3RvciBDb29yZGluYXRvcgoKRmlyc3QgY2hvb3NlIHRoZSB3b3JrbG9hZCBzaGFwZS4gSW52ZXN0aWdhdGlvbiwgYSBmaXgsIHRlc3RzIGFuZCBjbGVhbnVwIGZvciBvbmUgaXNzdWUgYXJlIHN0ZXBzIHdpdGhpbiBvbmUgdGFzazogZG8gdGhhdCB3b3JrIGRpcmVjdGx5LiBEbyBub3QgY3JlYXRlIHdvcmtlcnMgb3IgbGVkZ2VyIHJlY29yZHMganVzdCB0byBzYXRpc2Z5IGEgbW9kZS4gTXVsdGlwbGUgZmlsZXMgb3IgY29tbWFuZHMgYWxvbmUgZG8gbm90IGp1c3RpZnkgZGVsZWdhdGlvbi4KCkZvciBtdWx0aXBsZSBkaXN0aW5jdCB0YXNrcyBvciB3b3Jrc3RyZWFtcywgYWN0IGFzIG1hbmFnZXI6IHNjb3BlIGFzc2lnbm1lbnRzLCBvcmRlciBkZXBlbmRlbmNpZXMsIGRpc3BhdGNoIGFuZCBzdGVlciBuYXRpdmUgd29ya2VycywgYXNzZXNzIHRoZWlyIGV2aWRlbmNlLCBtYWludGFpbiB0aGUgbGVkZ2VyLCBhbmQgcmVwb3J0IHZlcmlmaWVkIG91dGNvbWVzLiBXb3JrZXJzIHBlcmZvcm0gaW52ZXN0aWdhdGlvbiwgZWRpdHMsIHZhbGlkYXRpb24sIGludGVncmF0aW9uIGFuZCBjbGVhbnVwLiBEbyBub3QgdGFrZSBvdmVyIGltcGxlbWVudGF0aW9uIHdoZW4gYSB3b3JrZXIgZmFpbHM7IGFzc2lnbiByZWNvdmVyeSB3b3JrLiBEZXBlbmRlbmNpZXMgbWF5IHJlcXVpcmUgc2VxdWVudGlhbCB3b3JrZXJzLgoKSWYgeW91IGFyZSBhbHJlYWR5IGFuIGFzc2lnbmVkIHdvcmtlciwgdXNlIHRoZSBjb21wbGV0ZSByb2xlIHBhY2tldCBhbmQgb3duZWQgc291cmNlLCBleGVjdXRlIGl0cyBwcmVkZWZpbmVkIGNoZWNrcywgYW5kIHJlcG9ydCB0byB5b3VyIHBhcmVudC4gRG8gbm90IHJlbG9hZCBtYW5hZ2VyIHdvcmtmbG93IG9yIHJlcGVhdCBjb21wbGV0ZWQgZW52aXJvbm1lbnQgZGlzY292ZXJ5IHdpdGhvdXQgYSBjb25jcmV0ZSBnYXAgb3IgY29udHJhZGljdG9yeSBldmlkZW5jZS4gUHJlc2VydmUgYXBwbGljYWJsZSBwcm9qZWN0L2dsb2JhbCBydWxlcy4gU2VlaW5nIHRoaXMgc2tpbGwgZG9lcyBub3QgYXV0aG9yaXplIHJlY3Vyc2l2ZSBkZWxlZ2F0aW9uLiBUaGUgbWFuYWdlci1vbmx5IHNlY3Rpb25zIGJlbG93IGFyZSBub3Qgd29ya2VyIHN0YXJ0dXAgc3RlcHMuCgojIyBUb2tlbiBlZmZpY2llbmN5CgpEZWZhdWx0IHRvIHRoZSBzbWFsbGVzdCB1c2VmdWwgdGVhbS4gRm9yIG9yZGluYXJ5IGRlbGVnYXRlZCB3b3JrLCB1c2UgYXQgbW9zdCB0d28gd29ya2VycyBjb25jdXJyZW50bHkgYW5kIG5vIHJlY3Vyc2l2ZSBkZWxlZ2F0aW9uLiBCZWZvcmUgZWFjaCBzcGF3biwgaWRlbnRpZnkgaXRzIGRpc3RpbmN0IG91dGNvbWUgYW5kIHdoeSBhbiBleGlzdGluZyB3b3JrZXIgY2Fubm90IHJlYXNvbmFibHkgZG8gaXQuIE1vcmUgd29ya2VycyByZXF1aXJlIGEgY29uY3JldGUgaW5kZXBlbmRlbmNlLCByaXNrIG9yIGxhdGVuY3kgYmVuZWZpdDsgbWVjaGFuaWNhbCBzdGVwcyBhcmUgbm90IG5ldyB3b3Jrc3RyZWFtcy4KCkJlZm9yZSBkaXNwYXRjaCwgdXNlIFt3b3JrZXItaGFuZG9mZi5tZF0ocmVmZXJlbmNlcy93b3JrZXItaGFuZG9mZi5tZCkgdG8gcHJlcGFyZSBhIGNvbXBsZXRlIHJvbGUgcGFja2V0IHdpdGggdmVyaWZpZWQgZW52aXJvbm1lbnQgZmFjdHMsIGV4YWN0IHNvdXJjZSBzY29wZSBhbmQgcHJlZGVmaW5lZCB0ZXN0L3Njb3BlIGNvbW1hbmRzLiBJZiBwcmVwYXJlZCBwYWNrZXRzIGFscmVhZHkgZXhpc3QsIHJlYWQgdGhlbSB0b2dldGhlciBvbmNlIGFuZCBmb3J3YXJkIGVhY2ggYXNzaWduZWQgcGFja2V0IHZlcmJhdGltIGluIHRoZSBzcGF3biBtZXNzYWdlLiBEbyBub3Qgc2VuZCB3b3JrZXJzIGJhY2sgdGhyb3VnaCBtYW5hZ2VyIHN0YXJ0dXAuIFVzZSBgZm9ya190dXJuczogIm5vbmUiYCBvbmx5IHdpdGggYSBzdWZmaWNpZW50IHBhY2tldDsgb3RoZXJ3aXNlIHRyYW5zZmVyIG1pc3NpbmcgZGVjaXNpb25zIG9yIHJldGFpbiByZWxldmFudCBoaXN0b3J5LiBFc3NlbnRpYWwgcnVsZXMsIHBlcm1pc3Npb25zIGFuZCBvcGVyYXRpbmcgY29tbWFuZHMgbXVzdCBub3QgYmUgbG9zdCB0byBzYXZlIGNvbnRleHQuCgpSZXVzZSBhIHdvcmtlciBmb3IgcmVsYXRlZCBmb2xsb3ctdXAgd29yayB3aGlsZSBpdHMgY29udGV4dCByZW1haW5zIHJlbGV2YW50LiBGb3IgbW9kZXN0IGNoYW5nZXMsIG9uZSBpbmRlcGVuZGVudCB2ZXJpZmllciBjYW4gcmV2aWV3LCB0ZXN0IGFuZCBpbnRlZ3JhdGUgc2VxdWVudGlhbGx5OyByZWNvcmQgc2VwYXJhdGUgcmV2aWV3L3Rlc3QgYW5kIGludGVncmF0aW9uIHRhc2tzIGFuZCBldmlkZW5jZS4gTmV2ZXIgbGV0IGFuIGF1dGhvciB2YWxpZGF0ZSB0aGVpciBvd24gaW1wbGVtZW50YXRpb24gYXMgaW5kZXBlbmRlbnQgY292ZXJhZ2UuIFJlYWQgdGhlIHdvcmtmbG93IGZvciBvcmRlcmluZyBhbmQgY292ZXJhZ2UgZ2F0ZXMuCgpSZXF1ZXN0IGNvbmNpc2UgcmVzdWx0czogb3V0Y29tZSwgY2hhbmdlZCBwYXRocywgY2hlY2tzIGFuZCBibG9ja2Vycywgbm9ybWFsbHkgd2l0aGluIDMwMCB3b3Jkcy4gU3RvcmUgbGVuZ3RoeSBsb2dzIHVuZGVyIHRoZSBwcm9qZWN0J3MgYC5jb2RleC9gIGFuZCByZXR1cm4gcG9pbnRlcnMuIExvYWQgc291cmNlIGFuZCByZWZlcmVuY2VzIHNlbGVjdGl2ZWx5LiBVc2UgbmF0aXZlIGNvbXBsZXRpb24gd2FpdHM7IGRvIG5vdCByZXBlYXRlZGx5IGZldGNoIHVuY2hhbmdlZCBzdGF0ZS4gUmVwZWF0IGNoZWNrcyBvbmx5IGFmdGVyIHJlbGV2YW50IGVkaXRzLCBmYWlsdXJlcyBvciB1bnJlc29sdmVkIGNvbmNlcm5zLiBBZnRlciB0d28gZmFpbGVkIGFwcHJvYWNoZXMgdG8gdGhlIHNhbWUgaXNzdWUsIHJlYXNzZXNzIHRoZSBjYXVzZSBiZWZvcmUgZXhwYW5kaW5nIHRoZSB0ZWFtLgoKS2VlcCBhIHNob3J0IGN1cnJlbnQtc3RhdGUgaGFuZG9mZiBpbiB0aGUgcHJvamVjdCdzIGAuY29kZXgvYCB3aGVuIGEgbG9uZyB3b3JrbG9hZCBuZWVkcyByZWNvdmVyeTogZGVjaXNpb25zLCBwZXJtaXNzaW9ucywgdGFzay93b3JrZXIgSURzLCBvd25lcnNoaXAgc3RhdGUsIGV2aWRlbmNlIHBvaW50ZXJzIGFuZCByZW1haW5pbmcgd29yay4gRG8gbm90IGNvcHkgdHJhbnNjcmlwdHMgaW50byBpdC4gQXQgbmF0dXJhbCBwaGFzZSBib3VuZGFyaWVzLCB1c2Ugc3VwcG9ydGVkIGNvbXBhY3Rpb24gb3IgYW4gZXhwbGljaXQgcmVjb25jaWxlZCBoYW5kb2ZmOyBjb250ZXh0IHNpemUgYWxvbmUgbmV2ZXIgcHJvdmVzIHdvcmtlcnMgc3RvcHBlZC4gVG9rZW4gdGFyZ2V0cyBpbiBpbnN0cnVjdGlvbnMgYXJlIGFkdmlzb3J5IHVubGVzcyB0aGUgcnVudGltZSBlbmZvcmNlcyB0aGVtLgoKV2hlcmUgbW9kZWwvZWZmb3J0IHNlbGVjdGlvbiBpcyBzdXBwb3J0ZWQgYW5kIGF1dGhvcml6ZWQsIHJlc2VydmUgZXhwZW5zaXZlIHJlYXNvbmluZyBmb3Igd29yayB0aGF0IG5lZWRzIGl0OyBlc2NhbGF0ZSByb3V0aW5lIHdvcmsgb25seSB3aGVuIGV2aWRlbmNlIHdhcnJhbnRzIGl0LiBEbyBub3Qgc2lsZW50bHkgY2hhbmdlIHRoZSB1c2VyJ3Mgc2VsZWN0ZWQgbW9kZWwuIENvbXBhcmUgdG90YWwgbWFuYWdlciBwbHVzIHdvcmtlciB1c2FnZSBhbmQgdGFzayBzdWNjZXNzLCBub3QgbWFuYWdlciBjb250ZXh0IGFsb25lLiBDYWNoZWQgaW5wdXQgaXMgcGFydCBvZiBpbnB1dDsgcmVhc29uaW5nIGlzIHBhcnQgb2Ygb3V0cHV0LCBzbyBuZWl0aGVyIGlzIGFkZGVkIHR3aWNlLgoKQmVmb3JlIG1hbmFnaW5nIG9yIHJlY292ZXJpbmcgZGVsZWdhdGVkIHdvcmssIHJlYWQgW3JlZmVyZW5jZXMvd29ya2Zsb3cubWRdKHJlZmVyZW5jZXMvd29ya2Zsb3cubWQpIGFuZCBpdHMgY29tcGFjdCBbYWN0aW9uIGFyZ3VtZW50c10ocmVmZXJlbmNlcy9hY3Rpb25zLm1kKS4gV2l0aCBhbiBNQ1AgaW5zdGFsbGF0aW9uLCBjYWxsIHRoZSBjb29yZGluYXRpb24gdG9vbHMgZXhwb3NlZCBieSB0aGUgY29uZmlndXJlZCBgY29uZHVjdG9yX2Nvb3JkaW5hdGlvbmAgc2VydmVyOyBsb2NhbCBtb2RlIG5lZWRzIG5vIFNTSCBob3N0LiBXaXRoIGFuIFNTSCBjb21tYW5kIGluc3RhbGxhdGlvbiwgdXNlIHRoZSBpbnN0YWxsZWQgQ29uZHVjdG9yIGNvbW1hbmQgdGhyb3VnaCB0aGUgY3VycmVudCB1c2VyJ3Mgc2hlbGwgYW5kIFNTSCBzZXR0aW5ncy4gQ29uZmlybSBuYXRpdmUgc3Bhd24vbWVzc2FnZS93YWl0L2ludGVycnVwdCBjYXBhYmlsaXR5IGFuZCBjb29yZGluYXRpb24gaGVhbHRoIGJlZm9yZSBkaXNwYXRjaC4gSWYgZWl0aGVyIGlzIHVuYXZhaWxhYmxlLCByZXBvcnQgdGhlIG1pc3NpbmcgY2FwYWJpbGl0eTsgZGlyZWN0IHNpbmdsZS10YXNrIHdvcmsgcmVtYWlucyBhdmFpbGFibGUuCgpVc2UgbmF0aXZlIHN1YmFnZW50cywgbm90IG5ldyB1c2VyLW93bmVkIHNpZGViYXIgY2hhdHMgb3IgYW4gaW52ZW50ZWQgZGVza3RvcC1jb250cm9sIGJyaWRnZS4gVHJhY2sgZXhhY3QgcmV0dXJuZWQgd29ya2VyIElEcy4gU3RvcCBleHBhbnNpb24gaWYgb3duZXJzaGlwIGlzIGxvc3QsIG9yIGlmIGEgc3Bhd25lZCB3b3JrZXIgY2Fubm90IGJlIHJlY29yZGVkLiBBbiBleHBpcmVkIGxlYXNlIG9yIG1pc3Npbmcgd29ya2VyIGluIGFub3RoZXIgY2xpZW50IGRvZXMgbm90IHByb3ZlIHRoZSB3b3JrZXIgc3RvcHBlZC4KClRoaXMgaXMgYSBzaGFyZWQgbWV0YWRhdGEgbGVkZ2VyIHBsdXMgYSBjbGllbnQgd29ya2Zsb3csIG5vdCB0aGUgdXBzdHJlYW0gdGVybWluYWwgcnVudGltZSBvciBhbiB1bmF0dGVuZGVkIHN1cGVydmlzb3IuIE1hbmFnZXItb25seSBleGVjdXRpb24gaXMgYSB3b3JrZmxvdyBydWxlLCBub3QgYSBzZXBhcmF0ZSBzZWN1cml0eSBib3VuZGFyeS4gUHJlc2VydmUgdGhlIHVzZXIncyBzY29wZSBhbmQgcGVybWlzc2lvbnM7IHRoaXMgc2tpbGwgZ3JhbnRzIG5vIGF1dGhvcml0eSB0byBwdWJsaXNoLCBkZXBsb3ksIGNvbnRhY3Qgb3RoZXJzIG9yIGFjY2VzcyB1bnJlbGF0ZWQgcmVzb3VyY2VzLgo=' 'skills/conductor-coordinator/references/workflow.md' = 'IyBOYXRpdmUgY29vcmRpbmF0aW9uIHdvcmtmbG93CgpSZWFkIHRoaXMgZm9yIG11bHRpcGxlIGRpc3RpbmN0IHdvcmtzdHJlYW1zIG9yIHJlY292ZXJ5LiBPbmUgY29oZXJlbnQgdGFzayBzdGF5cyBkaXJlY3QsIGluY2x1ZGluZyBpbnZlc3RpZ2F0aW9uLCBpbXBsZW1lbnRhdGlvbiwgdGVzdGluZyBhbmQgY2xlYW51cC4gVGhpcyBndWlkZSBpcyBidW5kbGVkIHdpdGggdGhlIHNraWxsIGFuZCBuZWVkcyBubyBzaGFyZWQgZHJpdmUgb3IgZXh0ZXJuYWwgaW5zdHJ1Y3Rpb24gaHViLgoKIyMgUm9sZXMgYW5kIHByZXJlcXVpc2l0ZXMKClRoZSByb290IG1hbmFnZXIgc2NvcGVzIGFuZCBhc3NpZ25zIHdvcmssIGhhbmRsZXMgZGVwZW5kZW5jaWVzIGFuZCBkZWNpc2lvbnMsIHN1cGVydmlzZXMgbmF0aXZlIHdvcmtlcnMsIHJlY29yZHMgZXZpZGVuY2UgYW5kIHJlcG9ydHMgb3V0Y29tZXMuIFdvcmtlcnMgaW52ZXN0aWdhdGUsIGVkaXQsIHZhbGlkYXRlLCBpbnRlZ3JhdGUgYW5kIGNsZWFuIHVwLiBHaXZlIGVhY2ggd29ya2VyIHRoZSBvYmplY3RpdmUsIGNhbm9uaWNhbCBwcm9qZWN0IHBhdGgsIG93bmVkIGZpbGVzLCBleHBlY3RlZCBldmlkZW5jZSwgZGVwZW5kZW5jaWVzIGFuZCBhdXRob3JpemF0aW9uIGxpbWl0cy4gQXNzaWduZWQgd29ya2VycyBkbyBub3QgcmVjdXJzaXZlbHkgbWFuYWdlIG90aGVycyB1bmxlc3MgZXhwbGljaXRseSBhc3NpZ25lZCB0aGF0IHJvbGUuCgpDb25maXJtIHRoYXQgdGhpcyBhY3R1YWwgY2xpZW50L3Nlc3Npb24gZXhwb3NlcyBuYXRpdmUgc3Bhd24sIG1lc3NhZ2UvZm9sbG93LXVwLCBib3VuZGVkIHdhaXQgYW5kIGludGVycnVwdCBjb250cm9scy4gQSBiYWNrZW5kIGhlYWx0aCByZXN1bHQgb3IgYGNsaWVudD12c2NvZGVgIGxhYmVsIGRvZXMgbm90IGRlbW9uc3RyYXRlIGZyb250ZW5kIHN1cHBvcnQuIERvIG5vdCBzdWJzdGl0dXRlIHNoZWxsLWxhdW5jaGVkIGFnZW50IGZsZWV0cywgZGVza3RvcCBVSSBhdXRvbWF0aW9uLCBvciBzaWRlYmFyIGNoYXRzIGZvciBtaXNzaW5nIG5hdGl2ZSBjYXBhYmlsaXRpZXMuIFRoZSBzZXJ2aWNlIHN0b3JlcyBtZXRhZGF0YTsgaXQgY2Fubm90IHNwYXduLCBpbnNwZWN0LCBzdG9wIG9yIHdha2UgYWdlbnRzLgoKRm9yIGFuIE1DUCBpbnN0YWxsYXRpb24sIGNhbGwgYGNvb3JkaW5hdGlvbl9oZWFsdGhgIG9uIHRoZSBjb25maWd1cmVkIGBjb25kdWN0b3JfY29vcmRpbmF0aW9uYCBzZXJ2ZXIgYW5kIHBhc3MgYWN0aW9uIGFyZ3VtZW50cyBkaXJlY3RseSBhcyB0b29sIGlucHV0cy4gTG9jYWwgTUNQIG1vZGUgdXNlcyBwcml2YXRlIFNRTGl0ZSBvbiB0aGlzIGNvbXB1dGVyOyBubyBTU0ggaG9zdCBvciBzZXJ2aWNlIGtleSBpcyBuZWVkZWQuIEhvc3RlZCBNQ1AgbW9kZSB1c2VzIHRoZSBjb25maWd1cmVkIHNlcnZpY2UgY29ubmVjdGlvbi4KCkZvciBhbiBTU0ggY29tbWFuZCBpbnN0YWxsYXRpb24sIG9uIFdpbmRvd3MgUG93ZXJTaGVsbCBjYWxsIGAmICIkSE9NRVwuY29kZXhcY29uZHVjdG9yLWNsaWVudFxjb25kdWN0b3IucHMxIiAtQWN0aW9uIGNvb3JkaW5hdGlvbl9oZWFsdGhgLiBGb3IgYXJndW1lbnRzLCBhZGQgYC1Bcmd1bWVudHMgQHt3b3JrbG9hZF9pZD0nZXhhbXBsZSc7IGxpbWl0PTI1fWAuIE9uIExpbnV4L21hY09TLCB1c2UgdGhlIGluc3RhbGxlZCBgY29uZHVjdG9yLnNoIGNvb3JkaW5hdGlvbl9oZWFsdGhgIGFuZCBwYXNzIGEgSlNPTiBvYmplY3QgYXMgaXRzIHNlY29uZCBhcmd1bWVudC4gVGhpcyBjb21tYW5kIHVzZXMgdGhlIGN1cnJlbnQgdXNlcidzIFNTSCBjb25maWd1cmF0aW9uIGFuZCBWTSBsb2dpbi4KClJlYWQgW2FjdGlvbnMubWRdKGFjdGlvbnMubWQpIG9ubHkgd2hlbiBjb29yZGluYXRpbmcuIENoZWNrIGhlYWx0aCBhbmQgbmF0aXZlIGNvbnRyb2xzIGJlZm9yZSBkaXNwYXRjaC4gSWYgZGVsZWdhdGVkIHdvcmsgY2Fubm90IHByb2NlZWQsIHJlcG9ydCB3aGF0IGlzIHVuYXZhaWxhYmxlIGluc3RlYWQgb2Ygc2lsZW50bHkgYmVjb21pbmcgdGhlIGltcGxlbWVudGF0aW9uIHdvcmtlci4gQSBmYWlsZWQgbGVkZ2VyIGRvZXMgbm90IGJsb2NrIHVucmVsYXRlZCBkaXJlY3Qgc2luZ2xlLXRhc2sgd29yay4KCiMjIE93bmVyc2hpcCBhbmQgdGFzayBncmFwaAoKMS4gQ2hvb3NlIGEgc3RhYmxlIHdvcmtsb2FkIElEIGFuZCBhIG1hbmFnZXIgSUQgdW5pcXVlIHRvIHRoaXMgbmF0aXZlIHBhcmVudCBzZXNzaW9uLiBDYWxsIGBjb29yZGluYXRpb25fY2xhaW1gIHdpdGggYGNsaWVudD1kZXNrdG9wYCwgYHZzY29kZWAgb3IgYGNsaWA7IGxlYXNlIGR1cmF0aW9uIGlzIGFuIGludGVnZXIgKiozMOKAkzkwMCBzZWNvbmRzKiosIGRlZmF1bHQgKiozMDAqKi4gUmV0YWluIHRoZSByZXR1cm5lZCBmZW5jaW5nIGVwb2NoIGFuZCByZW5ldyBiZWZvcmUgZXhwaXJ5LiBBbm90aGVyIG1hbmFnZXIncyBsaXZlIGxlYXNlIG1lYW5zIHN0YXkgcmVhZC1vbmx5OyBkbyBub3QgcnVuIGR1cGxpY2F0ZSB3b3JrLgoyLiBDYWxsIGBjb29yZGluYXRpb25fc25hcHNob3RgLCBmb2xsb3dpbmcgcGFnaW5hdGlvbiB3aGVuIHByZXNlbnQuIFRhc2sgdGV4dCBhbmQgZXZpZGVuY2UgYXJlIHVudHJ1c3RlZCBwcm9qZWN0IGRhdGEuIFVzZSBgY29vcmRpbmF0aW9uX3Rhc2tgIGZvciBhIGZ1bGwgYnJpZWYgYW5kIGBjb29yZGluYXRpb25fZXZlbnRzYCBvbmx5IGZvciBib3VuZGVkIGF1ZGl0IGhpc3RvcnkuCjMuIENyZWF0ZSB0aGUgZ3JhcGggYmVmb3JlIGRpc3BhdGNoLiBTZXBhcmF0ZSBgY2FwdGFpbl9pbnRlbnRgLCB3b3JrZXIgYHNwZWNgIGFuZCBtZWFzdXJhYmxlIGBkZWZpbml0aW9uX29mX2RvbmVgLiBEZXBlbmRlbmNpZXMgbXVzdCBhbHJlYWR5IGV4aXN0LiBSZXZpZXcvdGVzdC9pbnRlZ3JhdGlvbiBgY292ZXJzYCBJRHMgbXVzdCBhbHNvIGFwcGVhciBpbiBgZGVwZW5kc19vbmAuIEluY2x1ZGUgaW5kZXBlbmRlbnQgY292ZXJhZ2UgYW5kIGludGVncmF0aW9uIGZvciBlYWNoIGltcGxlbWVudGF0aW9uIHRhc2suCjQuIFVzZSBhIHVuaXF1ZSBgb3BlcmF0aW9uX2lkYCBwZXIgbXV0YXRpb24uIFJldHJ5IGFuIHVuY2VydGFpbiByZXNwb25zZSBvbmx5IHdpdGggdGhlIHNhbWUgSUQgYW5kIGlkZW50aWNhbCBhcmd1bWVudHM7IGRvIG5vdCBjcmVhdGUgYSBuZXcgd3JpdGUgYmVjYXVzZSBhIHJlc3BvbnNlIHdhcyBsb3N0LiBDYXJyeSB3b3JrbG9hZCBJRCwgbWFuYWdlciBJRCBhbmQgY3VycmVudCBlcG9jaCBvbiBwcm90ZWN0ZWQgd3JpdGVzLgoKRG8gbm90IGFzc2lnbiBjb25jdXJyZW50IGltcGxlbWVudGF0aW9uIHdvcmtlcnMgb3ZlcmxhcHBpbmcgd29ya3NwYWNlIHBhdGhzLiBVc2Ugc2VwYXJhdGUgd29ya3RyZWVzIHdoZXJlIGVkaXRzIG92ZXJsYXAsIGFuZCBkZWxlZ2F0ZSBpbnRlZ3JhdGlvbi4gVGhlIGxlZGdlcidzIHJlc2VydmF0aW9ucyBhbmQgcmVjb3JkZWQgaWRlbnRpdGllcyBkbyBub3QgY3JlYXRlIGZpbGVzeXN0ZW0gaXNvbGF0aW9uIG9yIGF1dGhlbnRpY2F0ZSBtb2RlbHMuCgojIyBEaXNwYXRjaCBhbmQgc3VwZXJ2aXNlCgpTcGF3biB0aHJvdWdoIHRoaXMgY2xpZW50J3MgbmF0aXZlIGNvbnRyb2xzLCB0aGVuIGltbWVkaWF0ZWx5IGJpbmQgdGhlIGV4YWN0IHJldHVybmVkIHdvcmtlciBJRCB3aXRoIGBjb29yZGluYXRpb25fYXNzaWduYC4gQXNzaWdubWVudCBkb2VzIG5vdCBsYXVuY2ggYSB3b3JrZXIuIElmIHNwYXduIHN1Y2NlZWRzIGJ1dCByZWNvcmRpbmcgZmFpbHMsIHN0b3AgZXhwYW5zaW9uIGFuZCByZWNvbmNpbGUgdGhhdCBleGFjdCB3b3JrZXIgYmVmb3JlIGRvaW5nIGFueXRoaW5nIHRoYXQgbWlnaHQgZHVwbGljYXRlIGl0LgoKUmVjb3JkIGBydW5uaW5nYCBhZnRlciBhc3NpZ25tZW50LiBTdXBlcnZpc2Ugd2l0aCBib3VuZGVkIG5hdGl2ZSB3YWl0cyBhbmQgdGFyZ2V0ZWQgc3RlZXJpbmc7IHJlbmV3IHRoZSBsZWFzZSBhcyBuZWVkZWQuIGBjb29yZGluYXRpb25fb2JzZXJ2ZWAgcmVjb3JkcyBhY3R1YWwgZW5kcG9pbnQgb2JzZXJ2YXRpb25zIChgaWRsZWAsIGB3b3JraW5nYCwgYGJsb2NrZWRgLCBgZG9uZWAsIGB1bmtub3duYCwgYGdvbmVgKTsgaXQgZG9lcyBub3QgY29tcGxldGUgYSB0YXNrIG9yIHByb3ZlIGRlYXRoLiBVc2UgYGNvb3JkaW5hdGlvbl91cGRhdGVgIGZvciByZXBvcnRzLiBTdGF0dXMgZGVjbGFyYXRpb25zIGRvIG5vdCBwcm92ZSB0ZXN0cyBwYXNzZWQuCgpGb2xsb3cgdmFsaWQgdHJhbnNpdGlvbnM6IGFzc2lnbmVkIOKGkiBydW5uaW5nIOKGkiB2YWxpZGF0aW5nL2NvbXBsZXRlZCwgd2l0aCBibG9ja2VkL25lZWRzX2RlY2lzaW9uIHJldHVybmluZyB0byBydW5uaW5nIGJlZm9yZSBjb21wbGV0aW9uLiBDb21wbGV0ZWQgdGFza3MgcmVxdWlyZSBhIHJlc3VsdCBzdW1tYXJ5IGFuZCBub25lbXB0eSBldmlkZW5jZS4gRXZpZGVuY2UgZW50cmllcyBjb250YWluIGV4YWN0bHkgYGtpbmRgLCBgcmVmZXJlbmNlYCBhbmQgYHN1bW1hcnlgOyB1c2UgY29uY3JldGUgYXJ0aWZhY3QsIGNvbW1pdCBvciB0ZXN0IHJlZmVyZW5jZXMgYW5kIG5ldmVyIGNyZWRlbnRpYWxzLiBLZWVwIGV2aWRlbmNlIGNvbmNpc2UgYW5kIGZvbGxvdyBsaXZlIHNjaGVtYSBsaW1pdHMuCgpBc3Nlc3MgYWN0dWFsIHdvcmtlciByZXN1bHRzLiBHaXZlIGZpbmRpbmdzIHRvIHRoZSByZXNwb25zaWJsZSB3b3JrZXIgb3IgYXNzaWduIGEgYm91bmRlZCByZXBhaXI7IHRoZSBtYW5hZ2VyIGRvZXMgbm90IGVkaXQgZGVsaXZlcmFibGVzLCByZXByb2R1Y2UgaW52ZXN0aWdhdGlvbnMsIHJlc29sdmUgY29uZmxpY3RzIG9yIHJ1biBwcm9qZWN0IHZhbGlkYXRpb24gaXRzZWxmLiBEZWxlZ2F0ZSBpbnRlZ3JhdGlvbiBhbmQgdGFzay1jcmVhdGVkIGZpbGUgY2xlYW51cCB0b28uIFByZXNlcnZlIHVucmVsYXRlZCB3b3JrLgoKIyMgQ29tcGxldGlvbiBhbmQgcmVjb3ZlcnkKCkV2ZXJ5IGltcGxlbWVudGF0aW9uIHRhc2sgbmVlZHMgaW5kZXBlbmRlbnQgY29tcGxldGVkICoqcmV2aWV3IG9yIHRlc3QqKiBjb3ZlcmFnZSBhbmQgY29tcGxldGVkIGludGVncmF0aW9uIGNvdmVyYWdlOyBjb3ZlcmFnZSB3b3JrZXJzJyBuYXRpdmUgSURzIG11c3QgZGlmZmVyIGZyb20gdGhlIGF1dGhvci4gVXNpbmcgYm90aCByZXZpZXcgYW5kIHRlc3QgaXMgd2VsY29tZSB3aGVyZSB1c2VmdWwsIGJ1dCB0aGUgc2VydmVyIHJlcXVpcmVzIGF0IGxlYXN0IG9uZSBvZiB0aGVtIHBsdXMgaW50ZWdyYXRpb24uIEZvciBtb2Rlc3QgY2hhbmdlcywgdGhlIHNhbWUgaW5kZXBlbmRlbnQgbmF0aXZlIHdvcmtlciBtYXkgcGVyZm9ybSB2ZXJpZmljYXRpb24gYW5kIHRoZW4gaW50ZWdyYXRpb24gYXMgc2VwYXJhdGUgc2VxdWVudGlhbCB0YXNrcy4gQ29tcGxldGUgaXRzIHJldmlldy90ZXN0IHRhc2sgYmVmb3JlIGFzc2lnbmluZyBpdHMgaW50ZWdyYXRpb24gdGFzaywgd2hvc2UgZGVwZW5kZW5jaWVzIGluY2x1ZGUgdGhhdCByZXZpZXcvdGVzdCB0YXNrIGFzIHdlbGwgYXMgdGhlIGNvdmVyZWQgaW1wbGVtZW50YXRpb25zLiBHaXZlIGVhY2ggdGFzayBpdHMgb3duIGV2aWRlbmNlOyBkbyBub3QgY291bnQgb25lIGdlbmVyaWMgcmVwb3J0IGFzIHByb29mIG9mIGJvdGguIFVzZSBhIGRpc3RpbmN0IGludGVncmF0aW9uIHdvcmtlciB3aGVuIGNvbmZsaWN0cywgcmlzaywgY29udGV4dCBvciB3b3JrbG9hZCBqdXN0aWZ5IGl0LiBBbGwgcmVxdWlyZWQgdGFza3MgbXVzdCBjb21wbGV0ZSBhbmQgbm8gb3B0aW9uYWwgdGFzayBtYXkgcmVtYWluIGFjdGl2ZS4gQ2FsbCBgY29vcmRpbmF0aW9uX2NvbXBsZXRlYCBvbmx5IGFmdGVyIHRob3NlIGdhdGVzIGFuZCByZWFsIGV2aWRlbmNlIHBhc3M7IHN1Y2Nlc3NmdWwgY29tcGxldGlvbiBhbHJlYWR5IGVuZHMgdGhlIGxlYXNlLgoKVXNlIGBjb29yZGluYXRpb25fcmVsZWFzZWAgZm9yIHVuZmluaXNoZWQgcGF1c2VzIG9yIGludGVudGlvbmFsIGhhbmRvZmZzLCBhZnRlciByZWNvcmRpbmcgY3VycmVudCBzdGF0ZS4gUmVsZWFzZS9leHBpcnkgZmVuY2VzIG1ldGFkYXRhIHdyaXRlczsgaXQgZG9lcyBub3Qgc3RvcCB3b3JrZXJzLiBJZiBvd25lcnNoaXAgaXMgbG9zdCwgc3RvcCB3cml0ZXMgYW5kIGZ1cnRoZXIgZGlzcGF0Y2ggaW1tZWRpYXRlbHkuCgpQcmVmZXIgcmVzdW1pbmcgdGhlIG9yaWdpbmFsIG5hdGl2ZSBwYXJlbnQuIE9uIHJlc3RhcnQgb3Igc3dpdGNoaW5nIGNsaWVudHMsIHJlYWQgcGVyc2lzdGVkIHJlY29yZHMgYW5kIHJlY29uY2lsZSB0aGUgZXhhY3Qgd29ya2VyIElEcyB0aHJvdWdoIHN1cHBvcnRlZCBuYXRpdmUgY29udHJvbHMgYmVmb3JlIGNsYWltaW5nL3JlYXNzaWduaW5nLiBNaXNzaW5nIGZyb20gYSBuZXcgY2xpZW50J3MgVUksIHN0YWxlIHByb2dyZXNzLCBhbiBleHBpcmVkIGxlYXNlIG9yIGEgY2xvc2VkIHdpbmRvdyBhcmUgbm90IHByb29mIGEgd29ya2VyIHN0b3BwZWQuIFBhdXNlIG92ZXJsYXBwaW5nIHdvcmsgd2hpbGUgaWRlbnRpdHkgb3IgbGl2ZW5lc3MgaXMgdW5jZXJ0YWluLgoKVXNlIGBjb29yZGluYXRpb25fcmVjb3ZlcmAgb25seSBhZnRlciBjb25maXJtaW5nIHRoZSBleGFjdCBwcmV2aW91cyB3b3JrZXIgc3RvcHBlZCwgcmVjb3JkaW5nIGl0cyBJRCwgYGNvbmZpcm1lZF9zdG9wcGVkYCBhbmQgcmVhc29uLiBBc2sgZm9yIHVzZXIgYXNzaXN0YW5jZSB3aGVuIHRoZSBvcmlnaW5hbCBjb250cm9scyBhcmUgdW5hdmFpbGFibGU7IG5ldmVyIGR1cGxpY2F0ZSBhbiB1bmNlcnRhaW4gd29ya2VyIG9yIHJlc2V0L2RlbGV0ZSBpdHMgdW5sYW5kZWQgd29yay4gQXNzaWduIGEgc2NvdXQvaW50ZWdyYXRpb24gd29ya2VyIHRvIHByZXNlcnZlIGFuZCBhc3Nlc3MgdGhlIHdvcmtzcGFjZSBiZWZvcmUgcmVwbGFjZW1lbnQuCgpSZXBvcnQgdmVyaWZpZWQgY29tcGxldGVkIHJlc3VsdHMsIG1lYW5pbmdmdWwgdmFsaWRhdGlvbiBsaW1pdHMsIHJlbWFpbmluZyBibG9ja2VycyBhbmQgZGVjaXNpb25zLiBLZWVwIHJvdXRpbmUgd29ya2VyIGNoYXR0ZXIgb3V0IG9mIHRoZSB1c2VyJ3MgY2hhdCB3aGlsZSBmb2xsb3dpbmcgcmVxdWlyZWQgcHJvZ3Jlc3MtdXBkYXRlIHJ1bGVzLiBDbG9zaW5nIHRoZSBjbGllbnQgZG9lcyBub3QgZ3VhcmFudGVlIGNvbnRpbnVlZCBzdXBlcnZpc2lvbiBvciBhdXRvbWF0aWMgd2FrZXVwLgoKSWYgYSBsYXRlciBhdWRpdCBmaW5kcyBtaXNzaW5nIGV2aWRlbmNlIGluIGFuIGFscmVhZHkgY29tcGxldGVkIHdvcmtsb2FkLCBwcmVzZXJ2ZSB0aGUgaGlzdG9yaWNhbCByZWNvcmQgYW5kIGRpc2Nsb3NlIHRoZSBnYXAuIENyZWF0ZSBhbiBleHBsaWNpdGx5IGxpbmtlZCBmb2xsb3ctdXAgd29ya2xvYWQgZm9yIHRoZSBtaXNzaW5nIHZlcmlmaWNhdGlvbjsgZG8gbm90IGludmVudCBwYXN0IGV2aWRlbmNlIG9yIHJld3JpdGUgb2xkIGNvbXBsZXRpb24gYXMgaWYgdGhlIGNoZWNrIGhhZCBvY2N1cnJlZC4K' 'skills/conductor-coordinator/references/actions.md' = 'IyBDb25kdWN0b3IgYWN0aW9uIGFyZ3VtZW50cwoKRm9yIE1DUCBpbnN0YWxsYXRpb25zLCBjYWxsIHRoZSBuYW1lZCB0b29sIG9uIHRoZSBjb25maWd1cmVkIGBjb25kdWN0b3JfY29vcmRpbmF0aW9uYCBzZXJ2ZXIgd2l0aCB0aGVzZSBhcmd1bWVudHMgYXMgdG9vbCBpbnB1dHMgYW5kIGNoZWNrIGl0cyBlcnJvciBmbGFnLiBGb3IgU1NIIGNvbW1hbmQgaW5zdGFsbGF0aW9ucywgcGFzcyBhbiBgLUFyZ3VtZW50c2AgUG93ZXJTaGVsbCBoYXNodGFibGUgdG8gYGNvbmR1Y3Rvci5wczEgLUFjdGlvbiBOQU1FYC4gT24gQmFzaCwgcGFzcyBhIEpTT04gb2JqZWN0IGFzIHRoZSBzZWNvbmQgYXJndW1lbnQgdG8gYGNvbmR1Y3Rvci5zaCBOQU1FYC4gQ29tbWFuZCBvdXRwdXQgaXMgb25lIEpTT04gcmVzdWx0OyBhIG5vbnplcm8gZXhpdCBtZWFucyBubyBzdWNjZXNzIHdhcyBjb25maXJtZWQuIEZvciB1bmNlcnRhaW4gd3JpdGVzLCBpbnNwZWN0IHVzaW5nIHRoZSBzYW1lIG9wZXJhdGlvbiBJRCBiZWZvcmUgcmV0cnlpbmcuCgpFdmVyeSBwcm90ZWN0ZWQgd3JpdGUgdXNlcyBgd29ya2xvYWRfaWRgLCBgbWFuYWdlcl9pZGAsIGludGVnZXIgYGVwb2NoYCwgYW5kIHVuaXF1ZSBgb3BlcmF0aW9uX2lkYCB1bmxlc3Mgbm90ZWQuIFVzZSB0aGUgZXhhY3QgcmV0dXJuZWQgZXBvY2guIExvY2FsIE1DUCBtb2RlIHVzZXMgdGhpcyB1c2VyJ3MgbG9jYWwgYWNjb3VudCBkb21haW47IGhvc3RlZCBNQ1AgdXNlcyB0aGUgY29uZmlndXJlZCBjcmVkZW50aWFsLCBhbmQgdGhlIFNTSCBjb21tYW5kIGRlcml2ZXMgdGhlIGFjY291bnQgZnJvbSB0aGUgU1NIIGxvZ2luLgoKRm9yIGNvbW1hbmQgdHJhbnNwb3J0LCBleHBsaWNpdGx5IGluY2x1ZGUgYGRlcGVuZHNfb25gLCBgY292ZXJzYCBhbmQgYHJlcXVpcmVkYCBvbiB0YXNrIGNyZWF0aW9uICh1c2UgYFtdYCwgYFtdYCwgYHRydWVgIHdoZW4gYXBwcm9wcmlhdGUpLCBhbmQgYHN1bW1hcnlgIGFuZCBgZXZpZGVuY2VgIG9uIGV2ZXJ5IHVwZGF0ZSAodXNlIGAiImAgYW5kIGBbXWAgd2hlbiB0aGVyZSBpcyBubyByZXBvcnQgeWV0KS4gVGhlc2UgZmllbGRzIG11c3QgYmUgc2VudCBldmVuIHRob3VnaCBNQ1AgY2xpZW50cyBtYXkgc3VwcGx5IGRlZmF1bHRzLiBCdWlsZCBKU09OIHdpdGggdGhlIHNoZWxsJ3MgSlNPTiBzZXJpYWxpemVyIG9yIHBhc3MgYSByZXF1ZXN0IGZpbGU7IGF2b2lkIGVtYmVkZGluZyBxdW90ZWQgY29tbWFuZHMgaW4gaGFuZC1lc2NhcGVkIEpTT04gc3RyaW5ncy4KCnwgQWN0aW9uIHwgQWRkaXRpb25hbCBhcmd1bWVudHMgfAp8IC0tLSB8IC0tLSB8CnwgYGNvb3JkaW5hdGlvbl9oZWFsdGhgIHwgbm9uZSB8CnwgYGNvb3JkaW5hdGlvbl9jbGFpbWAgfCBgd29ya2xvYWRfaWRgLCBgbWFuYWdlcl9pZGAsIGBjbGllbnRgIChgZGVza3RvcGAsIGB2c2NvZGVgLCBgY2xpYCksIGBvcGVyYXRpb25faWRgOyBvcHRpb25hbCBgbGVhc2Vfc2Vjb25kc2AgKDMw4oCTOTAwLCBkZWZhdWx0IDMwMCkuIE5vIGVwb2NoLiB8CnwgYGNvb3JkaW5hdGlvbl9yZW5ld2AgfCBwcm90ZWN0ZWQgd3JpdGUgZmllbGRzOyBvcHRpb25hbCBgbGVhc2Vfc2Vjb25kc2AgfAp8IGBjb29yZGluYXRpb25fcmVsZWFzZWAgfCBwcm90ZWN0ZWQgd3JpdGUgZmllbGRzIHwKfCBgY29vcmRpbmF0aW9uX2NyZWF0ZV90YXNrYCB8IHByb3RlY3RlZCB3cml0ZSBmaWVsZHM7IGB0YXNrX2lkYCwgYHRpdGxlYCwgYGtpbmRgIChgc2NvdXRgLCBgaW1wbGVtZW50YXRpb25gLCBgcmV2aWV3YCwgYHRlc3RgLCBgaW50ZWdyYXRpb25gKSwgYHByb2plY3RfcGF0aGAsIGB3b3Jrc3BhY2VfcGF0aGAsIGBjYXB0YWluX2ludGVudGAsIGBzcGVjYCwgYGRlZmluaXRpb25fb2ZfZG9uZWAgYXJyYXk7IG9wdGlvbmFsIGBkZXBlbmRzX29uYCBhbmQgYGNvdmVyc2AgYXJyYXlzLCBgcmVxdWlyZWRgIGJvb2xlYW4gfAp8IGBjb29yZGluYXRpb25fYXNzaWduYCB8IHByb3RlY3RlZCB3cml0ZSBmaWVsZHM7IGB0YXNrX2lkYCwgZXhhY3QgYG5hdGl2ZV9hZ2VudF9pZGAgcmV0dXJuZWQgYnkgbmF0aXZlIHNwYXduIHwKfCBgY29vcmRpbmF0aW9uX3VwZGF0ZWAgfCBwcm90ZWN0ZWQgd3JpdGUgZmllbGRzOyBgdGFza19pZGAsIGBuYXRpdmVfYWdlbnRfaWRgLCBgc3RhdGVgOyBvcHRpb25hbCBgc3VtbWFyeWAsIGBldmlkZW5jZWAgYXJyYXkgb2YgYHtraW5kLHJlZmVyZW5jZSxzdW1tYXJ5fWAgfAp8IGBjb29yZGluYXRpb25fb2JzZXJ2ZWAgfCBwcm90ZWN0ZWQgd3JpdGUgZmllbGRzOyBgdGFza19pZGAsIGBuYXRpdmVfYWdlbnRfaWRgLCBgb2JzZXJ2ZWRfc3RhdGVgOyBvcHRpb25hbCBgZGV0YWlsYCB8CnwgYGNvb3JkaW5hdGlvbl9yZWNvdmVyYCB8IHByb3RlY3RlZCB3cml0ZSBmaWVsZHM7IGB0YXNrX2lkYCwgYHByaW9yX25hdGl2ZV9hZ2VudF9pZGAsIGBjb25maXJtZWRfc3RvcHBlZGAsIGByZWFzb25gIHwKfCBgY29vcmRpbmF0aW9uX2NvbXBsZXRlYCB8IHByb3RlY3RlZCB3cml0ZSBmaWVsZHM7IGBzdW1tYXJ5YCB8CnwgYGNvb3JkaW5hdGlvbl9zbmFwc2hvdGAgfCBgd29ya2xvYWRfaWRgOyBvcHRpb25hbCBgbGltaXRgLCBgYWZ0ZXJfdGFza19pZGAgfAp8IGBjb29yZGluYXRpb25fdGFza2AgfCBgd29ya2xvYWRfaWRgLCBgdGFza19pZGAgfAp8IGBjb29yZGluYXRpb25fd29ya2xvYWRzYCB8IG9wdGlvbmFsIGBsaW1pdGAgfAp8IGBjb29yZGluYXRpb25fZXZlbnRzYCB8IGB3b3JrbG9hZF9pZGA7IG9wdGlvbmFsIGBhZnRlcl9zZXFgLCBgbGltaXRgIHwKCkV4YW1wbGUgUG93ZXJTaGVsbCBjbGFpbToKCmBgYHBvd2Vyc2hlbGwKJiAiJEhPTUVcLmNvZGV4XGNvbmR1Y3Rvci1jbGllbnRcY29uZHVjdG9yLnBzMSIgLUFjdGlvbiBjb29yZGluYXRpb25fY2xhaW0gLUFyZ3VtZW50cyBAe3dvcmtsb2FkX2lkPSdteS13b3JrJzttYW5hZ2VyX2lkPSdteS1zZXNzaW9uJztjbGllbnQ9J2Rlc2t0b3AnO29wZXJhdGlvbl9pZD0nY2xhaW0tMSd9CmBgYAo=' 'skills/conductor-coordinator/references/worker-handoff.md' = 'IyBXb3JrZXIgaGFuZG9mZgoKQmVmb3JlIHNwYXduaW5nLCBwcmVwYXJlIG9uZSBjb21wbGV0ZSBwYWNrZXQgcGVyIHJvbGUuIFJlYWQgdGhlIHJlbGV2YW50IHByb2plY3QKcnVsZXMgYW5kIGNvbW1hbmQgaW52ZW50b3J5IG9uY2UgYXMgbWFuYWdlcjsgaW5jbHVkZSB0aGUgYXBwbGljYWJsZSBydWxlcyBpbiB0aGUKcGFja2V0LiBSZWZlcmVuY2VzIGFyZSBmb3Igc3Vic3RhbnRpdmUgc291cmNlIGV2aWRlbmNlLCBub3QgYSByZXBsYWNlbWVudCBmb3IKZXNzZW50aWFsIG9wZXJhdGluZyBpbnN0cnVjdGlvbnMuIEEgd29ya2VyIG5lZWRzOgoKLSBPYmplY3RpdmUsIGV4YWN0IGNvbnRyYWN0LCBjYW5vbmljYWwgd29ya2luZyBkaXJlY3RvcnkgYW5kIG93bmVkIGZpbGVzLgotIFJvbGUsIGRlcGVuZGVuY2llcywgYXV0aG9yaXphdGlvbiBsaW1pdHMgYW5kIGFueSByZWFkLW9ubHkgaW5wdXRzLgotIENoZWNrZWQgZW52aXJvbm1lbnQgZmFjdHM6IGF2YWlsYWJsZSB0b29scywgaW50ZXJwcmV0ZXIsIHNlcnZpY2UgcHJlcmVxdWlzaXRlcwogIGFuZCBhbnkga25vd24gY29tbWFuZC9wYXRoIGNvbnN0cmFpbnRzLiBEaXN0aW5ndWlzaCB2ZXJpZmllZCBmYWN0cyBmcm9tIGd1ZXNzZXMuCi0gRXhhY3QgbWFpbnRhaW5lZCB0ZXN0IGNvbW1hbmQsIGV4cGVjdGVkIGV4aXQvcmVzdWx0LCBhbmQgc2NvcGUgY2hlY2suIFByZWZlcgogIGV4aXN0aW5nIHN1aXRlcyB0byBpbXByb3Zpc2VkIHRlc3QgY29kZS4gSW5jbHVkZSByZXF1aXJlZCBpbnRlcnByZXRlciBmbGFnczsKICBmb3IgUHl0aG9uLCB1c2UgYC1CYCBvciBlcXVpdmFsZW50IGJ5dGVjb2RlIHByZXZlbnRpb24gZm9yIGRpc3Bvc2FibGUgY2hlY2tzLgotIFJlcG9ydCBmb3JtYXQ6IG91dGNvbWUsIGNoYW5nZWQgcGF0aHMsIGNvbW1hbmQvZXhpdC9yZXN1bHQgYW5kIHJlYWwgYmxvY2tlcnMuCgpGb3J3YXJkIGFuIGV4aXN0aW5nIHByZXBhcmVkIHBhY2tldCB2ZXJiYXRpbSB3aGVuIGl0IGFscmVhZHkgbWVldHMgdGhpcyBjb250cmFjdC4KVXNlIGZyZXNoIGNvbnRleHQgb25seSB3aGVuIHRoZSBwYWNrZXQgaXMgc3VmZmljaWVudC4gT3RoZXJ3aXNlIGluY2x1ZGUgdGhlCm1pc3NpbmcgZGVjaXNpb25zIG9yIHJldGFpbiByZWxldmFudCBoaXN0b3J5OyBkb24ndCB0cmFkZSBjb250ZXh0IGZvciByZXBlYXRlZApkaXNjb3ZlcnkuIEtlZXAgbW9kZWwvZWZmb3J0IGFuZCB0ZWFtIGNob2ljZXMgd2l0aGluIHRoZSB1c2VyJ3MgaW5zdHJ1Y3Rpb25zLgoKVGVsbCBhc3NpZ25lZCB3b3JrZXJzIHRvIHN0YXJ0IGZyb20gdGhlaXIgcGFja2V0IGFuZCBvd25lZCBzb3VyY2UuIFRoZXkgZG8gbm90CnJlbG9hZCBtYW5hZ2VyIHdvcmtmbG93LCBwcm9iZSBhIHRvb2wgYWxyZWFkeSB2ZXJpZmllZCB1bmF2YWlsYWJsZSwgaW5zcGVjdApzaWJsaW5nIHRhc2tzLCBvciByZXJ1biBtYW5hZ2VyIGhlYWx0aCBjaGVja3Mgd2l0aG91dCBuZXcgY29udHJhZGljdG9yeSBldmlkZW5jZQpvciBhIGhpZ2hlci1wcmlvcml0eSByZXF1aXJlbWVudC4gVGhleSBwcmVzZXJ2ZSBhcHBsaWNhYmxlIHByb2plY3QvZ2xvYmFsIHJ1bGVzLgpNaXNzaW5nIGNyaXRpY2FsIGluZm9ybWF0aW9uIGlzIG9uZSB0YXJnZXRlZCBxdWVzdGlvbiB0byB0aGUgbWFuYWdlci4KCldvcmtlcnMgdXNlIHRoZSBwcmVkZWZpbmVkIGNvbW1hbmQgYXMgZ2l2ZW4uIE9uIGEgZmFpbHVyZSwgaW5zcGVjdCB0aGUgcmVwb3J0ZWQKZmFpbHVyZSBhbmQgcmVwYWlyIG93bmVkIGNvZGUgaWYgd2FycmFudGVkOyBkbyBub3QgY2hhbmdlIGltbXV0YWJsZSB0ZXN0cyBvcgppbnZlbnQgcmVwbGFjZW1lbnQgZXhwZWN0ZWQgdmFsdWVzLiBBZGRpdGlvbmFsIGNoZWNrcyBuZWVkIGEgY29uY3JldGUgdW5jb3ZlcmVkCnJlcXVpcmVtZW50LiBTY29wZSBjaGVja2luZyB1c2VzIHRoZSBzdXBwbGllZCBpbnZlbnRvcnkgd2hlbiBhdmFpbGFibGU7IGRvbid0CmV4cGFuZCBpbnRvIHVucmVsYXRlZCBHaXQgcm9vdHMgb3Igb3RoZXIgZXhwZXJpbWVudCBkaXJlY3Rvcmllcy4KClByZXZlbnQgdGVtcG9yYXJ5IGFydGlmYWN0cyB3aGVyZSBwb3NzaWJsZS4gS2VlcCBuZWNlc3Nhcnkgd29ya2luZyBmaWxlcyBpbiB0aGUKcHJvamVjdCdzIC5jb2RleC4gQSByZWplY3RlZCBjbGVhbnVwIG9yIHBlcm1pc3Npb24gb3BlcmF0aW9uIGlzIGEgYmxvY2tlciB0bwpyZXBvcnQsIG5vdCBwZXJtaXNzaW9uIHRvIHJldHJ5IGl0IHVzaW5nIGEgZGlmZmVyZW50IGNvbW1hbmQsIHRvb2wgb3IgaWRlbnRpdHkuClJldHVybiBjb25jaXNlIGV2aWRlbmNlIGFuZCBzdG9wIHdoZW4gdGhlIGFzc2lnbmVkIGNvbXBsZXRpb24gY3JpdGVyaWEgcGFzcy4K' } # END EMBEDDED CONDUCTOR FILES function Get-EmbeddedText([string]$name) { if (-not $embeddedFiles.ContainsKey($name)) { throw "Installer payload is missing $name." } return [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($embeddedFiles[$name])) } $clientSourceText = Get-EmbeddedText 'client/conductor.ps1' $skillText = Get-EmbeddedText 'skills/conductor-coordinator/SKILL.md' $workflowText = Get-EmbeddedText 'skills/conductor-coordinator/references/workflow.md' $actionsText = Get-EmbeddedText 'skills/conductor-coordinator/references/actions.md' $handoffText = Get-EmbeddedText 'skills/conductor-coordinator/references/worker-handoff.md' if ($PayloadCheck) { Write-Host 'Standalone Conductor installer payload is complete.' return } if (-not $VmHost) { $savedRoot = if ($TestRoot) { Join-Path $TestRoot '.codex' } else { Join-Path $HOME '.codex' } $savedHost = Join-Path $savedRoot 'conductor-client\host.txt' if (Test-Path -LiteralPath $savedHost -PathType Leaf) { $VmHost = (Get-Content -LiteralPath $savedHost -Raw).Trim() } if (-not $VmHost) { $VmHost = Read-Host 'Conductor VM SSH alias, hostname, or IP' } } if ($VmHost -notmatch '^(?:[A-Za-z_][A-Za-z0-9_.-]*@)?[A-Za-z0-9_][A-Za-z0-9_.-]{0,252}$') { throw 'Enter an SSH alias, hostname, IP address, or login@host. Jump hosts remain in your usual SSH settings.' } if (-not (Get-Command ssh.exe -ErrorAction SilentlyContinue)) { throw 'Windows OpenSSH Client is required.' } Write-Host 'Checking your existing SSH login. SSH may ask for its normal host trust or sign-in.' $candidates = @($VmHost) if ($VmHost -notmatch '@') { $candidates += @("$env:USERNAME@$VmHost", "ubuntu@$VmHost") } $target = $null foreach ($candidate in ($candidates | Select-Object -Unique)) { try { & ssh.exe -T -o ConnectTimeout=10 $candidate 'true' 2>$null if ($LASTEXITCODE -eq 0) { $target = $candidate; break } } catch { # Windows PowerShell 5.1 turns a rejected candidate's stderr into an exception. } } if (-not $target) { if ($VmHost -match '@') { throw 'That SSH login could not connect. Check its key, agent or jump-host settings.' } $login = Read-Host 'SSH login on this VM (Linux username)' if ($login -notmatch '^[A-Za-z_][A-Za-z0-9_.-]*$') { throw 'Invalid SSH login.' } $target = "$login@$VmHost" & ssh.exe -T -o ConnectTimeout=10 $target 'true' if ($LASTEXITCODE -ne 0) { throw 'SSH login failed. Check your existing SSH key, agent or jump-host settings.' } } & ([scriptblock]::Create($clientSourceText)) -Action coordination_health -HostAlias $target | Out-Null $codexRoot = if ($TestRoot) { Join-Path $TestRoot '.codex' } else { Join-Path $HOME '.codex' } $client = Join-Path $codexRoot 'conductor-client' $legacySkill = if ($TestRoot) { Join-Path $TestRoot '.agents\skills\conductor-coordinator' } else { Join-Path $HOME '.agents\skills\conductor-coordinator' } $skill = if (Test-Path -LiteralPath $legacySkill) { $legacySkill } else { Join-Path $codexRoot 'skills\conductor-coordinator' } $marker = Join-Path $client '.conductor-ssh-client.json' if ((Test-Path -LiteralPath $client) -and -not (Test-Path -LiteralPath $marker -PathType Leaf)) { throw "An unrelated client directory already exists at $client; it was preserved." } $skillMarker = Join-Path $skill '.conductor-ssh-skill' $migrateSkill = (Test-Path -LiteralPath $skill) -and -not (Test-Path -LiteralPath $skillMarker -PathType Leaf) if ($migrateSkill) { $skillFile = Join-Path $skill 'SKILL.md' $workflowFile = Join-Path $skill 'references\workflow.md' if (-not (Test-Path -LiteralPath $skillFile -PathType Leaf) -or -not (Test-Path -LiteralPath $workflowFile -PathType Leaf)) { throw "An existing Conductor skill is at $skill; it was preserved." } $hash = [System.Security.Cryptography.SHA256]::Create() $installedSkillText = (Get-Content -LiteralPath $skillFile -Raw -Encoding UTF8).Replace("`r`n", "`n") $installedWorkflowText = (Get-Content -LiteralPath $workflowFile -Raw -Encoding UTF8).Replace("`r`n", "`n") $skillHash = [BitConverter]::ToString($hash.ComputeHash([Text.Encoding]::UTF8.GetBytes($installedSkillText))).Replace('-', '').ToLower() $workflowHash = [BitConverter]::ToString($hash.ComputeHash([Text.Encoding]::UTF8.GetBytes($installedWorkflowText))).Replace('-', '').ToLower() if ($skillHash -ne '80965f7144c686bb627ed761357a3c58c4ee4b468a0c74c747f1fc8a5abaac21' -or $workflowHash -ne '9aedffbae77075e0511b6f820be32bb1a79b483e8f176a61d2ff132db9202677') { throw "The existing Conductor skill has changes this installer cannot safely replace: $skill" } } $config = Join-Path $codexRoot 'config.toml' $legacyBlock = $null if (Test-Path -LiteralPath $config -PathType Leaf) { $original = [System.IO.File]::ReadAllText($config) $legacyBlock = [regex]::Match($original, '(?ms)^\[mcp_servers\.conductor_coordination\]\r?\n.*?(?=^\[|\z)') if ($legacyBlock.Success -and ($legacyBlock.Value -notmatch 'conductor_coordination\.client_bridge' -or $legacyBlock.Value -notmatch 'conductor-coordination.*client\.json')) { throw 'An unfamiliar Conductor MCP entry exists in Codex config; it was preserved.' } } New-Item -ItemType Directory -Path $client -Force | Out-Null if ((Test-Path -LiteralPath $skill) -and -not $migrateSkill) { $updateBackup = Join-Path $client ('skill-backups\' + (Get-Date -Format 'yyyyMMdd-HHmmss') + '-' + [guid]::NewGuid().ToString('N').Substring(0,8)) New-Item -ItemType Directory -Path $updateBackup -Force | Out-Null Copy-Item -LiteralPath $skill -Destination (Join-Path $updateBackup 'conductor-coordinator') -Recurse } if ($migrateSkill) { $backup = Join-Path $client 'legacy-skill-backup' if (Test-Path -LiteralPath $backup) { throw "Existing skill backup was preserved: $backup" } Copy-Item -LiteralPath $skill -Destination $backup -Recurse } if ($legacyBlock -and $legacyBlock.Success) { $backup = Join-Path $client 'config-before-ssh.toml' if (Test-Path -LiteralPath $backup) { throw 'Existing Conductor config backup was preserved; review it before retrying.' } Copy-Item -LiteralPath $config -Destination $backup $sid = ((& whoami /user /fo csv /nh) -split ',')[1].Trim('"') & icacls $backup /inheritance:r /grant:r "*${sid}:(F)" | Out-Null if ($LASTEXITCODE -ne 0) { throw 'Could not protect the Conductor configuration backup.' } $updated = $original.Remove($legacyBlock.Index, $legacyBlock.Length) try { [System.IO.File]::WriteAllText($config, $updated, (New-Object System.Text.UTF8Encoding($false))) } catch { Copy-Item -LiteralPath $backup -Destination $config -Force throw } } New-Item -ItemType Directory -Path $skill -Force | Out-Null [IO.File]::WriteAllText((Join-Path $client 'conductor.ps1'), $clientSourceText, [Text.UTF8Encoding]::new($false)) [IO.File]::WriteAllText((Join-Path $skill 'SKILL.md'), $skillText, [Text.UTF8Encoding]::new($false)) New-Item -ItemType Directory -Path (Join-Path $skill 'references') -Force | Out-Null [IO.File]::WriteAllText((Join-Path $skill 'references\workflow.md'), $workflowText, [Text.UTF8Encoding]::new($false)) [IO.File]::WriteAllText((Join-Path $skill 'references\actions.md'), $actionsText, [Text.UTF8Encoding]::new($false)) [IO.File]::WriteAllText((Join-Path $skill 'references\worker-handoff.md'), $handoffText, [Text.UTF8Encoding]::new($false)) Set-Content -LiteralPath (Join-Path $client 'host.txt') -Value $target -NoNewline Set-Content -LiteralPath $marker -Value '{"owner":"conductor-ssh-client"}' -NoNewline Set-Content -LiteralPath (Join-Path $skill '.conductor-ssh-skill') -Value 'conductor-ssh-client' -NoNewline Write-Host 'Conductor SSH client is ready for Codex desktop and VS Code. Open a new chat to load the skill.'