+
    kHàjt  ã                   óx   € R t ^ RIHt ^ RIHt ^ RIHt  ! R R]4      t]! RRRRRR	R
RRRR7
      t]! ]4       R# )aa  GitHub Copilot ACP provider profile.

copilot-acp does not speak OpenAI-over-HTTP: it drives an external ACP subprocess over
stdio, so the profile supplies its own client via :meth:`ProviderProfile.create_client`.
An out-of-tree ACP provider (``~/.hermes/plugins/model-providers/`` or a pip entry point)
uses the same three lines without touching core.
©ÚAny)Úregister_provider)ÚProviderProfilec                   óX   a € ] tR t^t o RtV 3R lR ltRRRRRR/V 3R	 lR
 lltRtV tR# )ÚCopilotACPProfileuA   GitHub Copilot ACP â€” external process, no REST models endpoint.c                ó&   <€ V ^8„  d   QhRS[ RS[ /# )é   Úclient_kwargsÚreturnr   )ÚformatÚ__classdict__s   "€ÚQ/home/ubuntu/.hermes/hermes-agent/plugins/model-providers/copilot-acp/__init__.pyÚ__annotate__ÚCopilotACPProfile.__annotate__   s   ø€ ÷ 1ñ 1©Sð 1±Sñ 1ó    c                ó   € ^ RI Hp V! R/ VB # )z4Build the ACP stdio shim rather than an HTTP client.)ÚCopilotACPClient© )Úagent.copilot_acp_clientr   )Úselfr
   r   s   &, r   Úcreate_clientÚCopilotACPProfile.create_client   s   € å=áÑ0 -Ñ0Ð0r   Úapi_keyNÚbase_urlÚtimeoutg      .@c          	      ól   <€ V ^8„  d   QhRS[ R,          RS[ R,          RS[RS[S[ ,          R,          /# )r	   r   Nr   r   r   )ÚstrÚfloatÚlist)r   r   s   "€r   r   r      s>   ø€ ÷ ñ Ù �*ðÙ7:¸TµzðÙSXðá	‰c��TÕ	ñr   c               ó¨  € ^ RI Hp  V! V P                  4      p\        VP	                  R4      ;'       g    R4      P                  R4      '       g   R# V P                  VP	                  R4      VP	                  R4      VP	                  R4      VP	                  R4      R	7      pVP                  VR
7      ;'       g    R#   \         d     R# i ; i)u°  Enabled models advertised by a short-lived signed-in ACP session (``session/new``).

The CLI may keep its login in an OS credential store with no token Hermes can reuse, so
the session is the only source that reflects the account's enablement. ``api_key`` /
``base_url`` are ignored: the subprocess owns auth. None when the CLI is missing, refuses
``--acp``, or the probe fails/times out â€” callers fall back to their next source.
)Ú-resolve_external_process_provider_credentialsr   Ú zacp://Nr   ÚcommandÚargs)r   r   r#   r$   )Útimeout_seconds)	Úhermes_cli.authr!   Únamer   ÚgetÚ
startswithr   Úlist_modelsÚ	Exception)r   r   r   r   r!   ÚcredsÚclients   &$$$   r   Úfetch_modelsÚCopilotACPProfile.fetch_models   s»   € õ 	Rð	ÙAÀ$Ç)Á)ÓLˆEÜ�u—y‘y Ó,×2Ð2°Ó3×>Ñ>¸x×HÒHÙØ×'Ñ'ØŸ	™	 )Ó,°u·y±yÀÓ7LØŸ	™	 )Ó,°5·9±9¸VÓ3Dð (ó FˆFð ×%Ñ%°gÐ%Ó>×FÐFÀ$ÐFøÜô 	ò ð	ús#   ˆ.C ·C ÁA)C Â?C ÃCÃCr   )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r.   Ú__static_attributes__Ú__classdictcell__)r   s   @r   r   r      s9   ø‡ € ÙK÷1ð 1ðØ'+ðØDHðØ[_÷÷ ð r   r   zcopilot-acpÚchat_completionszacp://copilotÚexternal_processÚcopilotÚHERMES_COPILOT_ACP_ARGS)
r'   ÚaliasesÚapi_modeÚenv_varsr   Ú	auth_typeÚprocess_commandÚprocess_argsÚprocess_command_env_varsÚprocess_args_env_varN)zgithub-copilot-acpzcopilot-acp-agentr   )z--acpz--stdio)ÚHERMES_COPILOT_ACP_COMMANDÚCOPILOT_CLI_PATH)	r4   Útypingr   Ú	providersr   Úproviders.baser   r   Úcopilot_acpr   r   r   Ú<module>rI      sX   ðñõ å 'Ý *ô ˜ô  ñF  Ø	Ð KØØØØ ð Ø%ØOØ2ô€ñ �+Ö r   