+
    Q(i)$                        R t ^ RIt^ RIt^ RIHt ^ RIt^ RIHtH	t	H
t
 ^ RIHt ^ RIHtHt ^ RIHtHtHtHtHtHt ^ RIHt ]P2                  ! 4       R 4       t]P7                  R	R
7      R 4       t]P7                  RR
7      ]P:                  ! R4      R 4       4       t]P7                  4       ]P:                  ! R4      ]P:                  ! R4      R 4       4       4       t]P7                  4       ]P@                  ! RRR7      ]P@                  ! R]PB                  ! . R*O4      RRR7      ]P@                  ! RRR7      ]P@                  ! RRRR7      ]P@                  ! RRRRR 7      ]P@                  ! R!R"R#R$7      ]P@                  ! R%R"R&R$7      ]P@                  ! R'RRR(R 7      R) 4       4       4       4       4       4       4       4       4       t"R# )+zCLI entry point for mcp-skill.N)Path)discover_appsfind_methodget_app)connect_and_list_tools)generate_app_pygenerate_skill_md)derive_class_namederive_module_namederive_skill_namederive_skill_name_from_urlgenerate_skill_description generate_skill_short_description)validate_generated_codec                    "   R# 5i)z+Convert any MCP server into an Agent Skill.N r       S/Users/agent/.openclaw/workspace/venv/lib/python3.14/site-packages/mcp_skill/cli.pymainr      s     s   z	list-appsnamec                   "   \        4       p V '       g/   \        P                  ! RRR7       \        P                  ! ^4       \        P                  ! R4       \        P                  ! R\        V 4       24       \        P                  ! R4       \        V P                  4       R R7       FW  p\        P                  ! R	VP                   R
VP                   R\        VP                  4       RVP                   R2	4       KY  	  R# 5i)zList all discovered apps.z6No app.py classes found in skills/ or .agents/skills/.TerrzListing appszApps found:  c                     V P                   # )Nr   )items   &r   <lambda>list_apps.<locals>.<lambda>(   s    diir   )key  - : z (z functions, )N)r   clickechosysexitlensortedvaluesr   
class_namemethodssource_label)appsapps     r   	list_appsr/      s      ?D

KQUV	JJ~	JJc$i[)*	JJrNdkkm)?@

388*Bs~~. /CKK !c.>.>-?qB	
 As   DD
zlist-functionsapp_namec                (  "   \        V 4      pVf3   \        P                  ! RV  R2RR7       \        P                  ! ^4       \        P                  ! RVP
                   24       \        P                  ! RVP                   24       \        P                  ! RVP                   24       \        P                  ! R	VP
                   24       \        P                  ! R
\        VP                  4       24       \        P                  ! R4       VP                   Fn  pVP                  P                  4       P                  4       ^ ,          p\        P                  ! RVP                   24       \        P                  ! RV 24       Kp  	  R# 5i)z"List functions for a specific app.NError: App '' not found.Tr   zListing functions for app: Class: Path: zMatched app: zFunctions found: r   r    z    )r   r#   r$   r%   r&   r   r*   app_pathr'   r+   	docstringstrip
splitlines	signature)r0   r.   methodsummarys   &   r   list_functionsr=   /   s    
 (
C
{

\(<8dC	JJ,SXXJ78	JJ()*	JJ~&'	JJsxxj)*	JJ"3s{{#3"456	JJrN++""((*557:

T&**+,-

T'#$ s   FFfunction_namec                X  "   \        V 4      pVf3   \        P                  ! RV  R2RR7       \        P                  ! ^4       \        W!4      pVf@   \        P                  ! RV RVP                   R2RR7       \        P                  ! ^4       \        P                  ! R	VP                   24       \        P                  ! R
VP                   24       \        P                  ! RVP                   RVP                   24       \        P                  ! RVP                   24       \        P                  ! RVP                   24       \        P                  ! R4       \        P                  ! R4       \        P                  ! VP                  P                  4       4       R# 5i)z'Inspect a function on a discovered app.Nr2   r3   Tr   zError: Function 'z' not found in app 'z'.zApp: r4   r5   :z
Function: zSignature: r   zDescription:)r   r#   r$   r%   r&   r   r   r*   r6   liner:   r7   r8   )r0   r>   r.   r;   s   &&  r   inspectrB   E   s-     (
C
{

\(<8dC,F~

.B388*BO	
 		JJsxxj!"	JJ()*	JJ~Qv{{m45	JJFKK=)*	JJV--./0	JJrN	JJ~	JJv%%'(s   F(F*z--urlzMCP server URL)helpz--authnoneAuthentication type)typedefaultrC   z--namez*Skill name (auto-detected if not provided)z	--api-keyapi_keyzAPI key (when auth=api-key)z--auth-headerauth_headerzBHeader name for API key (e.g. 'x-api-key'). Omit for Bearer token.)rG   rC   z--forceTzOverwrite existing directory)is_flagrC   z--non-interactivezSkip interactive promptsz
--app-nameu/   App class base name (e.g. 'Fetch' → FetchApp)c                  "    V'       d8   V '       g/   \         P                  ! RRR7       \        P                  ! ^4       M&V '       g   \         P                  ! R4      G Rj  xL
 p \        V 4      pV'       g-   V'       d   TpM,\         P                  ! RVR7      G Rj  xL
 pM\        V4      pV'       g\   VP                  RR	4      P                  4       P                  R	R
4      p	V'       d   T	pM \         P                  ! RV	R7      G Rj  xL
 pV'       g?   VR8X  d8   \         P                  ! R\         P                  ! . R5O4      RR7      G Rj  xL
 pVR8X  d_   V'       gW   V'       d/   \         P                  ! RRR7       \        P                  ! ^4       \         P                  ! RRR7      G Rj  xL
 pRp
RpVR8X  d   V'       d   V'       d   WC/pRpMTp
RpMVR8X  d   Rp
RpMRp\         P                  ! RV  R24        \        W
VR7      G Rj  xL
 w  r\         P                  ! R\        X4       R24       V FF  pVP                  ;'       g    R
R,          p\         P                  ! RVP                   RV 24       KH  	  V'       g   \         P                  ! R4       \!        V4      p\#        R 4      R!,          V,          pVP%                  4       '       d   V'       g   V'       d3   \         P                  ! R"V R#2RR7       \        P                  ! ^4       \         P&                  ! R$V R%24      '       g-   \         P                  ! R&4       \        P                  ! ^ 4       \)        V4      p\+        XV4      p\-        V4      p\         P                  ! R'4       \/        VV VVVVVR(7      p\1        VVVVVVVVR)7      pVP3                  RRR*7       \4        P6                  ! \4        P8                  ! VR+,          P:                  R
4      \4        P8                  ! VR,,          P:                  V4      \4        P8                  ! VR-,          P:                  V4      4      G Rj  xL
  VR,,          p\         P                  ! R.4       \=        V4      p\         P                  ! VP?                  4       4       VP@                  '       g   \         P                  ! R/RR7       \         P                  ! R0V R124       \         P                  ! R2V R324       \         P                  ! R2V R424       R#  EL EL EL; EL EL EL5  \        \        3 d=   p\         P                  ! RT 2RR7       \        P                  ! ^4        Rp?ELyRp?ii ; i EL/  \B         d=   p\         P                  ! RT 2RR7       \        P                  ! ^4        Rp?R# Rp?ii ; i5i)6z)Create an Agent Skill from an MCP server.z0Error: --url is required in non-interactive modeTr   zMCP Server URLNz
Skill name)rG   - r   z6App name (base name, 'App' suffix added automatically)rD   rE   api-keyoauth)rF   rG   zFError: --api-key is required when auth=api-key in non-interactive modezAPI Key)
hide_inputheaderbearerzConnecting to z...)headerszError: zFound z tools::N<   Nr    r!   z6Warning: Server has 0 tools. Generating minimal skill.z.agentsskillszError: Directory 'z+' already exists. Use --force to overwrite.zDirectory 'z' exists. Overwrite?zAborted.zGenerating skill...)	auth_typerI   
skill_namemodule_name)rV   rI   rX   short_description)parentsexist_okz__init__.pyzapp.pyzSKILL.mdzValidating generated code...zT
Warning: Validation found issues. The skill was still generated but may need fixes.z
Skill generated at .//z  z/app.pyz	/SKILL.mdrD   rN   rO   )"r#   r$   r%   r&   promptr   r   replacetitleChoicer   ConnectionErrorRuntimeErrorr'   descriptionr   r
   r   existsconfirmr	   r   r   r   r   mkdirasynciogather	to_thread
write_textr   r<   passed	Exception)urlauthr   rH   rI   forcenon_interactiver0   url_derived_namedefault_appauth_strrS   rV   server_nametoolsetooldescrX   
output_dirr*   rd   rY   app_codeskill_mdapp_py_pathreports   &&&&&&&&                   r   creater   b   s    HS

MSWX!LL)9:: 6c:'"\\,@PQQ$T*D ,,sC0668@@bIK&!&L'"  46>%\\">? D 9W

\ !LLtDDG)-9&0$	"$	W_HII 	

^C5,-	'=w( "K 	

VCJ<w/0D$$**C0DJJdii[4&12  JJOP(.)_x/+=
"JJ,ZL8cd  HHQK}}{:,>R%STTJJz*HHQK 'x0
0eD<[I

()"##
 %##/	
 	5nnzM9EErJzH4@@(KzJ6BBHM
 	
 	
 !8+

12(5

6>>#$}}}JJg
 	

,ZL:;

R
|7+,

R
|9-.O ; R E("  . 	JJ}$/HHQKK	n	
*  

WQC=d+s.  W5V+ 6V+ V+ $U%V+ V+ "U	#V+ ;7V+ 3V+ UV+ 9V+ UV+ +V+ 3A	V+ <U=V+ V+ 3V+ U  U!U ':V+ ";V+ AV+ 6V+ >AV+ D)V+ 9V(:C
V+ W5V+ 	V+ V+ V+ V+ U V%)1V V+  V%%V+ +W261W-'W5-W22W5r]   )#__doc__rh   r%   pathlibr   
asyncclickr#   mcp_skill.catalogr   r   r   mcp_skill.introspectorr   mcp_skill.generatorr   r   mcp_skill.type_mapperr	   r
   r   r   r   r   mcp_skill.validatorr   groupr   commandr/   argumentr=   rB   optionra   r   r   r   r   <module>r      s   $  
   A A 9 B  8 6 6 ;
  
$ #$
%  %%( 
 ) !  )4 g,-	2	3		 hIJk9+HI	M	 i,JK!46PQ	:	_ R L J K . 0_r   