npcsh 1.1.14__py3-none-any.whl → 1.1.16__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. npcsh/_state.py +533 -80
  2. npcsh/mcp_server.py +2 -1
  3. npcsh/npc.py +84 -32
  4. npcsh/npc_team/alicanto.npc +22 -1
  5. npcsh/npc_team/corca.npc +28 -9
  6. npcsh/npc_team/frederic.npc +25 -4
  7. npcsh/npc_team/guac.npc +22 -0
  8. npcsh/npc_team/jinxs/bin/nql.jinx +141 -0
  9. npcsh/npc_team/jinxs/bin/sync.jinx +230 -0
  10. {npcsh-1.1.14.data/data/npcsh/npc_team → npcsh/npc_team/jinxs/bin}/vixynt.jinx +8 -30
  11. npcsh/npc_team/jinxs/bin/wander.jinx +152 -0
  12. npcsh/npc_team/jinxs/lib/browser/browser_action.jinx +220 -0
  13. npcsh/npc_team/jinxs/lib/browser/browser_screenshot.jinx +40 -0
  14. npcsh/npc_team/jinxs/lib/browser/close_browser.jinx +14 -0
  15. npcsh/npc_team/jinxs/lib/browser/open_browser.jinx +43 -0
  16. npcsh/npc_team/jinxs/lib/computer_use/click.jinx +23 -0
  17. npcsh/npc_team/jinxs/lib/computer_use/key_press.jinx +26 -0
  18. npcsh/npc_team/jinxs/lib/computer_use/launch_app.jinx +37 -0
  19. npcsh/npc_team/jinxs/lib/computer_use/screenshot.jinx +23 -0
  20. npcsh/npc_team/jinxs/lib/computer_use/type_text.jinx +27 -0
  21. npcsh/npc_team/jinxs/lib/computer_use/wait.jinx +21 -0
  22. {npcsh-1.1.14.data/data/npcsh/npc_team → npcsh/npc_team/jinxs/lib/core}/edit_file.jinx +3 -3
  23. {npcsh-1.1.14.data/data/npcsh/npc_team → npcsh/npc_team/jinxs/lib/core}/load_file.jinx +1 -1
  24. npcsh/npc_team/jinxs/lib/core/paste.jinx +134 -0
  25. {npcsh-1.1.14.data/data/npcsh/npc_team → npcsh/npc_team/jinxs/lib/core}/search.jinx +2 -1
  26. npcsh/npc_team/jinxs/{code → lib/core}/sh.jinx +2 -8
  27. npcsh/npc_team/jinxs/{code → lib/core}/sql.jinx +1 -1
  28. npcsh/npc_team/jinxs/lib/orchestration/convene.jinx +232 -0
  29. npcsh/npc_team/jinxs/lib/orchestration/delegate.jinx +184 -0
  30. npcsh/npc_team/jinxs/lib/research/arxiv.jinx +76 -0
  31. npcsh/npc_team/jinxs/lib/research/paper_search.jinx +101 -0
  32. npcsh/npc_team/jinxs/lib/research/semantic_scholar.jinx +69 -0
  33. npcsh/npc_team/jinxs/{utils/core → lib/utils}/build.jinx +8 -8
  34. npcsh/npc_team/jinxs/lib/utils/jinxs.jinx +176 -0
  35. npcsh/npc_team/jinxs/lib/utils/shh.jinx +17 -0
  36. npcsh/npc_team/jinxs/lib/utils/switch.jinx +62 -0
  37. npcsh/npc_team/jinxs/lib/utils/switches.jinx +61 -0
  38. npcsh/npc_team/jinxs/lib/utils/teamviz.jinx +205 -0
  39. npcsh/npc_team/jinxs/lib/utils/verbose.jinx +17 -0
  40. npcsh/npc_team/kadiefa.npc +19 -1
  41. npcsh/npc_team/plonk.npc +26 -1
  42. npcsh/npc_team/plonkjr.npc +22 -1
  43. npcsh/npc_team/sibiji.npc +23 -2
  44. npcsh/npcsh.py +153 -39
  45. npcsh/ui.py +22 -1
  46. npcsh-1.1.16.data/data/npcsh/npc_team/alicanto.npc +23 -0
  47. npcsh-1.1.16.data/data/npcsh/npc_team/arxiv.jinx +76 -0
  48. npcsh-1.1.16.data/data/npcsh/npc_team/browser_action.jinx +220 -0
  49. npcsh-1.1.16.data/data/npcsh/npc_team/browser_screenshot.jinx +40 -0
  50. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/build.jinx +8 -8
  51. npcsh-1.1.16.data/data/npcsh/npc_team/click.jinx +23 -0
  52. npcsh-1.1.16.data/data/npcsh/npc_team/close_browser.jinx +14 -0
  53. npcsh-1.1.16.data/data/npcsh/npc_team/convene.jinx +232 -0
  54. npcsh-1.1.16.data/data/npcsh/npc_team/corca.npc +31 -0
  55. npcsh-1.1.16.data/data/npcsh/npc_team/delegate.jinx +184 -0
  56. {npcsh/npc_team/jinxs/utils → npcsh-1.1.16.data/data/npcsh/npc_team}/edit_file.jinx +3 -3
  57. npcsh-1.1.16.data/data/npcsh/npc_team/frederic.npc +27 -0
  58. npcsh-1.1.16.data/data/npcsh/npc_team/guac.npc +22 -0
  59. npcsh-1.1.16.data/data/npcsh/npc_team/jinxs.jinx +176 -0
  60. npcsh-1.1.16.data/data/npcsh/npc_team/kadiefa.npc +21 -0
  61. npcsh-1.1.16.data/data/npcsh/npc_team/key_press.jinx +26 -0
  62. npcsh-1.1.16.data/data/npcsh/npc_team/launch_app.jinx +37 -0
  63. {npcsh/npc_team/jinxs/utils → npcsh-1.1.16.data/data/npcsh/npc_team}/load_file.jinx +1 -1
  64. npcsh-1.1.16.data/data/npcsh/npc_team/nql.jinx +141 -0
  65. npcsh-1.1.16.data/data/npcsh/npc_team/open_browser.jinx +43 -0
  66. npcsh-1.1.16.data/data/npcsh/npc_team/paper_search.jinx +101 -0
  67. npcsh-1.1.16.data/data/npcsh/npc_team/paste.jinx +134 -0
  68. npcsh-1.1.16.data/data/npcsh/npc_team/plonk.npc +27 -0
  69. npcsh-1.1.16.data/data/npcsh/npc_team/plonkjr.npc +23 -0
  70. npcsh-1.1.16.data/data/npcsh/npc_team/screenshot.jinx +23 -0
  71. {npcsh/npc_team/jinxs/utils → npcsh-1.1.16.data/data/npcsh/npc_team}/search.jinx +2 -1
  72. npcsh-1.1.16.data/data/npcsh/npc_team/semantic_scholar.jinx +69 -0
  73. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/sh.jinx +2 -8
  74. npcsh-1.1.16.data/data/npcsh/npc_team/shh.jinx +17 -0
  75. npcsh-1.1.16.data/data/npcsh/npc_team/sibiji.npc +24 -0
  76. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/sql.jinx +1 -1
  77. npcsh-1.1.16.data/data/npcsh/npc_team/switch.jinx +62 -0
  78. npcsh-1.1.16.data/data/npcsh/npc_team/switches.jinx +61 -0
  79. npcsh-1.1.16.data/data/npcsh/npc_team/sync.jinx +230 -0
  80. npcsh-1.1.16.data/data/npcsh/npc_team/teamviz.jinx +205 -0
  81. npcsh-1.1.16.data/data/npcsh/npc_team/type_text.jinx +27 -0
  82. npcsh-1.1.16.data/data/npcsh/npc_team/verbose.jinx +17 -0
  83. {npcsh/npc_team/jinxs/utils → npcsh-1.1.16.data/data/npcsh/npc_team}/vixynt.jinx +8 -30
  84. npcsh-1.1.16.data/data/npcsh/npc_team/wait.jinx +21 -0
  85. npcsh-1.1.16.data/data/npcsh/npc_team/wander.jinx +152 -0
  86. {npcsh-1.1.14.dist-info → npcsh-1.1.16.dist-info}/METADATA +399 -58
  87. npcsh-1.1.16.dist-info/RECORD +170 -0
  88. npcsh-1.1.16.dist-info/entry_points.txt +19 -0
  89. npcsh-1.1.16.dist-info/top_level.txt +2 -0
  90. project/__init__.py +1 -0
  91. npcsh/npc_team/foreman.npc +0 -7
  92. npcsh/npc_team/jinxs/modes/alicanto.jinx +0 -194
  93. npcsh/npc_team/jinxs/modes/corca.jinx +0 -249
  94. npcsh/npc_team/jinxs/modes/guac.jinx +0 -317
  95. npcsh/npc_team/jinxs/modes/plonk.jinx +0 -214
  96. npcsh/npc_team/jinxs/modes/pti.jinx +0 -170
  97. npcsh/npc_team/jinxs/modes/wander.jinx +0 -186
  98. npcsh/npc_team/jinxs/utils/agent.jinx +0 -17
  99. npcsh/npc_team/jinxs/utils/core/jinxs.jinx +0 -32
  100. npcsh-1.1.14.data/data/npcsh/npc_team/agent.jinx +0 -17
  101. npcsh-1.1.14.data/data/npcsh/npc_team/alicanto.jinx +0 -194
  102. npcsh-1.1.14.data/data/npcsh/npc_team/alicanto.npc +0 -2
  103. npcsh-1.1.14.data/data/npcsh/npc_team/corca.jinx +0 -249
  104. npcsh-1.1.14.data/data/npcsh/npc_team/corca.npc +0 -12
  105. npcsh-1.1.14.data/data/npcsh/npc_team/foreman.npc +0 -7
  106. npcsh-1.1.14.data/data/npcsh/npc_team/frederic.npc +0 -6
  107. npcsh-1.1.14.data/data/npcsh/npc_team/guac.jinx +0 -317
  108. npcsh-1.1.14.data/data/npcsh/npc_team/jinxs.jinx +0 -32
  109. npcsh-1.1.14.data/data/npcsh/npc_team/kadiefa.npc +0 -3
  110. npcsh-1.1.14.data/data/npcsh/npc_team/plonk.jinx +0 -214
  111. npcsh-1.1.14.data/data/npcsh/npc_team/plonk.npc +0 -2
  112. npcsh-1.1.14.data/data/npcsh/npc_team/plonkjr.npc +0 -2
  113. npcsh-1.1.14.data/data/npcsh/npc_team/pti.jinx +0 -170
  114. npcsh-1.1.14.data/data/npcsh/npc_team/sibiji.npc +0 -3
  115. npcsh-1.1.14.data/data/npcsh/npc_team/wander.jinx +0 -186
  116. npcsh-1.1.14.dist-info/RECORD +0 -135
  117. npcsh-1.1.14.dist-info/entry_points.txt +0 -9
  118. npcsh-1.1.14.dist-info/top_level.txt +0 -1
  119. /npcsh/npc_team/jinxs/{utils → bin}/roll.jinx +0 -0
  120. /npcsh/npc_team/jinxs/{utils → bin}/sample.jinx +0 -0
  121. /npcsh/npc_team/jinxs/{modes → bin}/spool.jinx +0 -0
  122. /npcsh/npc_team/jinxs/{modes → bin}/yap.jinx +0 -0
  123. /npcsh/npc_team/jinxs/{utils → lib/computer_use}/trigger.jinx +0 -0
  124. /npcsh/npc_team/jinxs/{utils → lib/core}/chat.jinx +0 -0
  125. /npcsh/npc_team/jinxs/{utils → lib/core}/cmd.jinx +0 -0
  126. /npcsh/npc_team/jinxs/{utils → lib/core}/compress.jinx +0 -0
  127. /npcsh/npc_team/jinxs/{utils → lib/core}/ots.jinx +0 -0
  128. /npcsh/npc_team/jinxs/{code → lib/core}/python.jinx +0 -0
  129. /npcsh/npc_team/jinxs/{utils → lib/core}/sleep.jinx +0 -0
  130. /npcsh/npc_team/jinxs/{utils/core → lib/utils}/compile.jinx +0 -0
  131. /npcsh/npc_team/jinxs/{utils/core → lib/utils}/help.jinx +0 -0
  132. /npcsh/npc_team/jinxs/{utils/core → lib/utils}/init.jinx +0 -0
  133. /npcsh/npc_team/jinxs/{utils → lib/utils}/serve.jinx +0 -0
  134. /npcsh/npc_team/jinxs/{utils/core → lib/utils}/set.jinx +0 -0
  135. /npcsh/npc_team/jinxs/{utils → lib/utils}/usage.jinx +0 -0
  136. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/alicanto.png +0 -0
  137. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/chat.jinx +0 -0
  138. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/cmd.jinx +0 -0
  139. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/compile.jinx +0 -0
  140. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/compress.jinx +0 -0
  141. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/corca.png +0 -0
  142. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/corca_example.png +0 -0
  143. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/frederic4.png +0 -0
  144. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/guac.png +0 -0
  145. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/help.jinx +0 -0
  146. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/init.jinx +0 -0
  147. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/kadiefa.png +0 -0
  148. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/npc-studio.jinx +0 -0
  149. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/npcsh.ctx +0 -0
  150. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/npcsh_sibiji.png +0 -0
  151. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/ots.jinx +0 -0
  152. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/plonk.png +0 -0
  153. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/plonkjr.png +0 -0
  154. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/python.jinx +0 -0
  155. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/roll.jinx +0 -0
  156. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/sample.jinx +0 -0
  157. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/serve.jinx +0 -0
  158. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/set.jinx +0 -0
  159. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/sibiji.png +0 -0
  160. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/sleep.jinx +0 -0
  161. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/spool.jinx +0 -0
  162. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/spool.png +0 -0
  163. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/trigger.jinx +0 -0
  164. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/usage.jinx +0 -0
  165. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/yap.jinx +0 -0
  166. {npcsh-1.1.14.data → npcsh-1.1.16.data}/data/npcsh/npc_team/yap.png +0 -0
  167. {npcsh-1.1.14.dist-info → npcsh-1.1.16.dist-info}/WHEEL +0 -0
  168. {npcsh-1.1.14.dist-info → npcsh-1.1.16.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,170 @@
1
+ npcsh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ npcsh/_state.py,sha256=FB4oDy8x4Z03zYjJtz967JWLapd0rGipAOGZWCwIp88,150595
3
+ npcsh/alicanto.py,sha256=SXxpT525cOje1J60OMwpaEdWfyPVTEecl_dTVpOvUYQ,2415
4
+ npcsh/build.py,sha256=UuId0_rQml40A4U1KuvMekRyfB30s8HiLsXFJjqrBmM,7692
5
+ npcsh/completion.py,sha256=iX7JDBGC_Tiutr3Iux5zB6eHKu2bLsJfv9Klln0iUq8,5666
6
+ npcsh/config.py,sha256=1m5WNft9PbAlDCTMmnA_tI27UracAvME7MCC9udBvMg,5541
7
+ npcsh/corca.py,sha256=zZRcW_EDoVsz6Xhyos1dlOgk7oNF2-bJvHraLGLj8pc,1568
8
+ npcsh/execution.py,sha256=sgM6HwAfGnattdItKtNpzvQJhhDh5ro2mPfp2swFbys,5270
9
+ npcsh/guac.py,sha256=nU33ONVP4He0ak9kKP1sJLsoMBm0Zl8q0Zp7h17Ev1E,1342
10
+ npcsh/mcp_helpers.py,sha256=9TsCfcquGu_vX4WaKlY3J3P13-uxruQKrXng-jJ5YyY,11176
11
+ npcsh/mcp_server.py,sha256=O-cuk1XAqWqIpkEy2ESxQgMjsBfloMzRqecRz4wCk1I,8763
12
+ npcsh/npc.py,sha256=vyfoiUbZ_tziiE4Sx5fpLXZpirtXwzWgyiUWHqH-xsM,11623
13
+ npcsh/npcsh.py,sha256=wtf2mTEle04QF3856CsOg8PJO4b7rB12MPNUm1ZkFTk,16638
14
+ npcsh/parsing.py,sha256=eGATFUkDvHu5pVbh0RswhWEmGjcIsLaDwgxTtPbC9sk,2943
15
+ npcsh/plonk.py,sha256=34ORKsIFkIK9BK5nNM4KQRprA-RVXe1vLk_vHNK4wmI,1725
16
+ npcsh/pti.py,sha256=zTqE6bH4H_QOqJ4zQbC4-vT_dm7TE9iUIqTbIGb_bxY,1783
17
+ npcsh/routes.py,sha256=27rZUwiMK12WuFEDOxLL_F_F8GjmHlFBxKQRuvElrHI,4967
18
+ npcsh/spool.py,sha256=G0Sc_veJVKqoEdeOCTkBfAwFSHIMK5oAwYel1rr463A,1508
19
+ npcsh/ui.py,sha256=wnjFCDFkMslCgE2BwS3Ug1OBlI-Po87iQflJAinA7Fk,7295
20
+ npcsh/wander.py,sha256=CRQ8eCaIckJL21wLCXTjj5f0bnVmUEK_vHipFGKghGs,2288
21
+ npcsh/yap.py,sha256=jvGHHaFfPgQheLwWC_ORn63eGDPOq9vZCh-OBaSeu3A,1593
22
+ npcsh/npc_team/alicanto.npc,sha256=MjCeCKhC4OqKO0Rxa5U_SLEui7Lh8M2hXabcVfqEDhc,1455
23
+ npcsh/npc_team/alicanto.png,sha256=A7xeMbcoKGjlkELxJEVifCEZLVWbOKZarTN5ZFJG-FM,3519858
24
+ npcsh/npc_team/corca.npc,sha256=Iu9bRD_OFVYQVyn0PLB_Kp91qzcHiHyo7VwmkXz2S-0,1667
25
+ npcsh/npc_team/corca.png,sha256=0lF70hKu6tY-37YmIPVF2cuaPzvnQ4-UtQOzuAbKEf4,1666776
26
+ npcsh/npc_team/corca_example.png,sha256=p0lVTuwaps4-F-3k4wgp9d897YPyn6FGZugtXMUQjj8,28777
27
+ npcsh/npc_team/frederic.npc,sha256=1-TcFRWm5RsSnLoeZG_SN4JUU0Ynu6CzV-h6Wfasjto,1945
28
+ npcsh/npc_team/frederic4.png,sha256=ll8uoV0npnPp5HVJWv7h0xDSeuq4pqsk_gYGBHLS0VY,1590744
29
+ npcsh/npc_team/guac.npc,sha256=bOMEMXxvL4B-xdGqtq7hWf_gZpdMlo4OqER7c9iBsiM,797
30
+ npcsh/npc_team/guac.png,sha256=MCE7eJuEJwLJEzc9FS7lL62Mm-38jQRHkxXogPfOTuw,211470
31
+ npcsh/npc_team/kadiefa.npc,sha256=tg9YZ3dTlXS8CIEb544G5UYvGndPhgdlQoLWRV5j-JY,1758
32
+ npcsh/npc_team/kadiefa.png,sha256=3CAwL8crKIwJko6o75Z6OYYEEM9Rk--yGzCJg7zoszg,3062528
33
+ npcsh/npc_team/npcsh.ctx,sha256=-jKYaPm2YbZHAGgWAXhyPIwhiNe1H1ZRFg1Zc7tHSxk,1049
34
+ npcsh/npc_team/npcsh_sibiji.png,sha256=9fUqgYMsSHmaH-kBTBQ7N5UCS5-eLZF94Log0O3mtFg,4544
35
+ npcsh/npc_team/plonk.npc,sha256=z2fd5U0qaymiqHvkunQxCGQ1N2Mx6DMeErcltrJWrqw,1341
36
+ npcsh/npc_team/plonk.png,sha256=IU5ey-Dl4HEKlwnf75RSWNSHpF8rVqGmdbsa0deL4rQ,2727773
37
+ npcsh/npc_team/plonkjr.npc,sha256=umvWEigYLJBzzqSpF70lbf75612q8LxxGeYHT1Oq21Q,1568
38
+ npcsh/npc_team/plonkjr.png,sha256=MqLEGwsyECUeODZIti0HQQrMMVxA6XERpW01R06NbpY,2606710
39
+ npcsh/npc_team/sibiji.npc,sha256=I2fJsYPi7SUPLErczT6vwWl1p00FpuRYyx6r5Ljjyt4,1542
40
+ npcsh/npc_team/sibiji.png,sha256=1dlZb7J3E62FcVo9CVOzLb8nu1bIUV7cr97nsFocHCM,35615
41
+ npcsh/npc_team/spool.png,sha256=LWTLkwDxXBfLuSUCX32_lo5yAmLYGsA67Xpsz-7MmWU,2876725
42
+ npcsh/npc_team/yap.png,sha256=_l7UbWnXJdsy4Mx-x5l9DT0R6ize3HTnkwQQnOFlI18,1548649
43
+ npcsh/npc_team/jinxs/bin/nql.jinx,sha256=xTAFs44JFvu4XCqoqyypaujNU1BsDf2VL_2MO9arEc0,5576
44
+ npcsh/npc_team/jinxs/bin/roll.jinx,sha256=RhYhDDdyKcWjVhVSU7dX_DMn5s4rz-nY6pXmtr6tytM,2908
45
+ npcsh/npc_team/jinxs/bin/sample.jinx,sha256=7cWwfAZFgWxaTkIL1gpFFryQ3mjvVjoWYAov-zOFn_E,2237
46
+ npcsh/npc_team/jinxs/bin/spool.jinx,sha256=MLmqcnsytTQjektI7feD9bwUu3m-plPme1tRM6_zO6M,6446
47
+ npcsh/npc_team/jinxs/bin/sync.jinx,sha256=rAhh2S5IeK9kzmpYJ-qdSVgagFv9wlZjMZ6pnn_ZLj4,8569
48
+ npcsh/npc_team/jinxs/bin/vixynt.jinx,sha256=p6r_yuUr5DYrDOEueuNnlqaf74ydllTuZ686slRHKmA,4300
49
+ npcsh/npc_team/jinxs/bin/wander.jinx,sha256=cFEacTTjMY_FZfWlR7ydSStcpPEN3T9119dGdny9tZA,5620
50
+ npcsh/npc_team/jinxs/bin/yap.jinx,sha256=EU_10qxp-GIaCUfJo0sldl4N4989yd5tysfr4J_8biw,9596
51
+ npcsh/npc_team/jinxs/lib/browser/browser_action.jinx,sha256=EXM-SYtla0UPjGlnUuccOc-Xp4i07Qo7Mu-mWtLZvIk,9261
52
+ npcsh/npc_team/jinxs/lib/browser/browser_screenshot.jinx,sha256=syV-OhZi--tVFQnj0KDZbwxk9IB78EZar1sh-c1ruP0,1168
53
+ npcsh/npc_team/jinxs/lib/browser/close_browser.jinx,sha256=D0-sIQCTt3TEnUpr6SIWuhQOkJ6eyzhJnvYtYqbg1UM,322
54
+ npcsh/npc_team/jinxs/lib/browser/open_browser.jinx,sha256=AfZ7GSkBOKEmqYHOuJ1KsUh7OlTivBmCPbiIZ_VOwy8,1660
55
+ npcsh/npc_team/jinxs/lib/computer_use/click.jinx,sha256=86rCXMATlgWPC0MieNyP9SUjC8eb-pE8R-4YXm06mK8,665
56
+ npcsh/npc_team/jinxs/lib/computer_use/key_press.jinx,sha256=zXdJuOGm3Vkyf2cZH1G28J-ZxfqhIpYBDqqrYRPLPL4,834
57
+ npcsh/npc_team/jinxs/lib/computer_use/launch_app.jinx,sha256=mvLGmHkKZTQAXc4uhSlxJfHzdt3CgDcETSf65kTgO1U,1245
58
+ npcsh/npc_team/jinxs/lib/computer_use/screenshot.jinx,sha256=a4tEC7l72srWbrUU_vyZzWrZl2SNaU0wnQFMTAMQLuA,695
59
+ npcsh/npc_team/jinxs/lib/computer_use/trigger.jinx,sha256=YVFPEH6mT9HiAyfPZOCcBpKB033g6K4QCJO0sfgKSQA,2458
60
+ npcsh/npc_team/jinxs/lib/computer_use/type_text.jinx,sha256=0093dk1X1DSaE8LANzn_JA1i07MLqI9NHa3a5pJPwyg,738
61
+ npcsh/npc_team/jinxs/lib/computer_use/wait.jinx,sha256=Kg4AtesSduDn0bTemAxTz1XTdlY_Et0bc0OmS9wEuJ0,527
62
+ npcsh/npc_team/jinxs/lib/core/chat.jinx,sha256=zSrhjm58SkcpIbHtfpWbBKWF_ha6f7HdZLkiY1Ad9Qg,1405
63
+ npcsh/npc_team/jinxs/lib/core/cmd.jinx,sha256=9pRiNmSeraimszsWg3HVIqvvhe8F40JJHaSkOFhkqm8,1406
64
+ npcsh/npc_team/jinxs/lib/core/compress.jinx,sha256=B2dMsT-jrMWzjQfMhRIuO7afgqj7MJngshz5DBMmu7s,6834
65
+ npcsh/npc_team/jinxs/lib/core/edit_file.jinx,sha256=VJ3NogMh_zcX-VH_R5MwqS9ypSFhWqpD8uaQZsnY-A8,3545
66
+ npcsh/npc_team/jinxs/lib/core/load_file.jinx,sha256=Dq2982ZJkbSrM75O8YgLeGRnHdWl0AfEIYkj9RkNMLg,1271
67
+ npcsh/npc_team/jinxs/lib/core/ots.jinx,sha256=DKoSVgH_ZcmOaZ2-R-Yn80KyCiYgqG25JG6e4wQwP64,2301
68
+ npcsh/npc_team/jinxs/lib/core/paste.jinx,sha256=bycgMzeYFHl3-TN4YYDyasbNe22hEgFGMOmYoMWFgWI,4957
69
+ npcsh/npc_team/jinxs/lib/core/python.jinx,sha256=lFJubdPVlGxSuUKCxsxjYG4_dnX2ATn8U9ChYKRmL5Q,389
70
+ npcsh/npc_team/jinxs/lib/core/search.jinx,sha256=DtTiQj9ezgd4_dW3s2H9ZvgM7QVsWgMM0GuYqq7gTmI,5510
71
+ npcsh/npc_team/jinxs/lib/core/sh.jinx,sha256=LeBkoJOmWY0_U-vmgVnX5yxvoMO2kSw1cr5PT4Jmlp8,846
72
+ npcsh/npc_team/jinxs/lib/core/sleep.jinx,sha256=c-7Dn4aLuX7WyBVcvuk3sqcbIutqKIz1N9sBfPNzhck,5301
73
+ npcsh/npc_team/jinxs/lib/core/sql.jinx,sha256=wHxvoCkEy1bZE2DPT2m_h0PXiTLtZlmax2flg-iXPdY,581
74
+ npcsh/npc_team/jinxs/lib/orchestration/convene.jinx,sha256=Zg9CKDtkXe0R_xHCA2nzPMjH7_P98fjdNifuoCjPXh0,8777
75
+ npcsh/npc_team/jinxs/lib/orchestration/delegate.jinx,sha256=FGi8K1vypHj25VoKAsuYgI_o2HMr8mOXLUD3IA1R0-w,8051
76
+ npcsh/npc_team/jinxs/lib/research/arxiv.jinx,sha256=nhrvgSWHEQiRfX2-VYLfG1ke-oW8pvjmPmREXzPJz7A,2538
77
+ npcsh/npc_team/jinxs/lib/research/paper_search.jinx,sha256=UdDKhGSeHZoFkpdgrp369w-G4MQXHJwrEYabdYxEgLA,4204
78
+ npcsh/npc_team/jinxs/lib/research/semantic_scholar.jinx,sha256=SCLzeTxVNv0rcnELbT3cKSuz7SO4Rft_H6K9w9QO10k,2530
79
+ npcsh/npc_team/jinxs/lib/utils/build.jinx,sha256=O45ZgI0dRn1INr5pO5H6U1rac9mT3T8aXzPYGMV-vvw,2807
80
+ npcsh/npc_team/jinxs/lib/utils/compile.jinx,sha256=Rjdm5jf3ech1E3cnpLz-o2tbJuVvEoQGAp0FQRAU7qo,2526
81
+ npcsh/npc_team/jinxs/lib/utils/help.jinx,sha256=OquhUEgcYZp-gu5Wgl3pOZnswxGQ96RoNG08tHjC9-4,2091
82
+ npcsh/npc_team/jinxs/lib/utils/init.jinx,sha256=QBb1uOTvMlD-x3S7zPASH5TBZRwNhMQvK6t3DdC2mVw,1596
83
+ npcsh/npc_team/jinxs/lib/utils/jinxs.jinx,sha256=6JKxCJX3EQj-va22ZEqR4psqRotGOqSJ-eF0Y0nH-NA,7291
84
+ npcsh/npc_team/jinxs/lib/utils/serve.jinx,sha256=D-a-UafymNfAWeLW1sLM_Ef-971SF9TPcUvYu70AIlk,837
85
+ npcsh/npc_team/jinxs/lib/utils/set.jinx,sha256=hQY_0muEtnWtfXsdK9cPwSvIevCimiJJn1-yhGC_VxM,1381
86
+ npcsh/npc_team/jinxs/lib/utils/shh.jinx,sha256=yD-_va97JHT1MAhUvoL8w86Li9cbwi8XbswVcTRxd4U,464
87
+ npcsh/npc_team/jinxs/lib/utils/switch.jinx,sha256=9RWt5jipaZr8iJXJKVHQvTLymuYwKfSjCnuUk48M-Ss,2114
88
+ npcsh/npc_team/jinxs/lib/utils/switches.jinx,sha256=wXb614UdXuuO3WzIhp1_Two_DksTDUwsYHFjeZNa9wc,2214
89
+ npcsh/npc_team/jinxs/lib/utils/teamviz.jinx,sha256=sg2Szrkmeg9S0AAD7EA0uWneHOcCBvSySfUnZn4Eh6k,7650
90
+ npcsh/npc_team/jinxs/lib/utils/usage.jinx,sha256=40zhs19l7-16KAXHzOa8hjv7hA32ORe0F7das0TTLXY,1052
91
+ npcsh/npc_team/jinxs/lib/utils/verbose.jinx,sha256=mFGLy2Azx1JXGhDOwVwd5EwJB9fxPQpk9BrP8kJ3RzE,473
92
+ npcsh/npc_team/jinxs/npc_studio/npc-studio.jinx,sha256=0aY-z399BRIXIL3TLMTcYDiHjDm-krZy0CnYfiskQUo,2234
93
+ npcsh-1.1.16.data/data/npcsh/npc_team/alicanto.npc,sha256=MjCeCKhC4OqKO0Rxa5U_SLEui7Lh8M2hXabcVfqEDhc,1455
94
+ npcsh-1.1.16.data/data/npcsh/npc_team/alicanto.png,sha256=A7xeMbcoKGjlkELxJEVifCEZLVWbOKZarTN5ZFJG-FM,3519858
95
+ npcsh-1.1.16.data/data/npcsh/npc_team/arxiv.jinx,sha256=nhrvgSWHEQiRfX2-VYLfG1ke-oW8pvjmPmREXzPJz7A,2538
96
+ npcsh-1.1.16.data/data/npcsh/npc_team/browser_action.jinx,sha256=EXM-SYtla0UPjGlnUuccOc-Xp4i07Qo7Mu-mWtLZvIk,9261
97
+ npcsh-1.1.16.data/data/npcsh/npc_team/browser_screenshot.jinx,sha256=syV-OhZi--tVFQnj0KDZbwxk9IB78EZar1sh-c1ruP0,1168
98
+ npcsh-1.1.16.data/data/npcsh/npc_team/build.jinx,sha256=O45ZgI0dRn1INr5pO5H6U1rac9mT3T8aXzPYGMV-vvw,2807
99
+ npcsh-1.1.16.data/data/npcsh/npc_team/chat.jinx,sha256=zSrhjm58SkcpIbHtfpWbBKWF_ha6f7HdZLkiY1Ad9Qg,1405
100
+ npcsh-1.1.16.data/data/npcsh/npc_team/click.jinx,sha256=86rCXMATlgWPC0MieNyP9SUjC8eb-pE8R-4YXm06mK8,665
101
+ npcsh-1.1.16.data/data/npcsh/npc_team/close_browser.jinx,sha256=D0-sIQCTt3TEnUpr6SIWuhQOkJ6eyzhJnvYtYqbg1UM,322
102
+ npcsh-1.1.16.data/data/npcsh/npc_team/cmd.jinx,sha256=9pRiNmSeraimszsWg3HVIqvvhe8F40JJHaSkOFhkqm8,1406
103
+ npcsh-1.1.16.data/data/npcsh/npc_team/compile.jinx,sha256=Rjdm5jf3ech1E3cnpLz-o2tbJuVvEoQGAp0FQRAU7qo,2526
104
+ npcsh-1.1.16.data/data/npcsh/npc_team/compress.jinx,sha256=B2dMsT-jrMWzjQfMhRIuO7afgqj7MJngshz5DBMmu7s,6834
105
+ npcsh-1.1.16.data/data/npcsh/npc_team/convene.jinx,sha256=Zg9CKDtkXe0R_xHCA2nzPMjH7_P98fjdNifuoCjPXh0,8777
106
+ npcsh-1.1.16.data/data/npcsh/npc_team/corca.npc,sha256=Iu9bRD_OFVYQVyn0PLB_Kp91qzcHiHyo7VwmkXz2S-0,1667
107
+ npcsh-1.1.16.data/data/npcsh/npc_team/corca.png,sha256=0lF70hKu6tY-37YmIPVF2cuaPzvnQ4-UtQOzuAbKEf4,1666776
108
+ npcsh-1.1.16.data/data/npcsh/npc_team/corca_example.png,sha256=p0lVTuwaps4-F-3k4wgp9d897YPyn6FGZugtXMUQjj8,28777
109
+ npcsh-1.1.16.data/data/npcsh/npc_team/delegate.jinx,sha256=FGi8K1vypHj25VoKAsuYgI_o2HMr8mOXLUD3IA1R0-w,8051
110
+ npcsh-1.1.16.data/data/npcsh/npc_team/edit_file.jinx,sha256=VJ3NogMh_zcX-VH_R5MwqS9ypSFhWqpD8uaQZsnY-A8,3545
111
+ npcsh-1.1.16.data/data/npcsh/npc_team/frederic.npc,sha256=1-TcFRWm5RsSnLoeZG_SN4JUU0Ynu6CzV-h6Wfasjto,1945
112
+ npcsh-1.1.16.data/data/npcsh/npc_team/frederic4.png,sha256=ll8uoV0npnPp5HVJWv7h0xDSeuq4pqsk_gYGBHLS0VY,1590744
113
+ npcsh-1.1.16.data/data/npcsh/npc_team/guac.npc,sha256=bOMEMXxvL4B-xdGqtq7hWf_gZpdMlo4OqER7c9iBsiM,797
114
+ npcsh-1.1.16.data/data/npcsh/npc_team/guac.png,sha256=MCE7eJuEJwLJEzc9FS7lL62Mm-38jQRHkxXogPfOTuw,211470
115
+ npcsh-1.1.16.data/data/npcsh/npc_team/help.jinx,sha256=OquhUEgcYZp-gu5Wgl3pOZnswxGQ96RoNG08tHjC9-4,2091
116
+ npcsh-1.1.16.data/data/npcsh/npc_team/init.jinx,sha256=QBb1uOTvMlD-x3S7zPASH5TBZRwNhMQvK6t3DdC2mVw,1596
117
+ npcsh-1.1.16.data/data/npcsh/npc_team/jinxs.jinx,sha256=6JKxCJX3EQj-va22ZEqR4psqRotGOqSJ-eF0Y0nH-NA,7291
118
+ npcsh-1.1.16.data/data/npcsh/npc_team/kadiefa.npc,sha256=tg9YZ3dTlXS8CIEb544G5UYvGndPhgdlQoLWRV5j-JY,1758
119
+ npcsh-1.1.16.data/data/npcsh/npc_team/kadiefa.png,sha256=3CAwL8crKIwJko6o75Z6OYYEEM9Rk--yGzCJg7zoszg,3062528
120
+ npcsh-1.1.16.data/data/npcsh/npc_team/key_press.jinx,sha256=zXdJuOGm3Vkyf2cZH1G28J-ZxfqhIpYBDqqrYRPLPL4,834
121
+ npcsh-1.1.16.data/data/npcsh/npc_team/launch_app.jinx,sha256=mvLGmHkKZTQAXc4uhSlxJfHzdt3CgDcETSf65kTgO1U,1245
122
+ npcsh-1.1.16.data/data/npcsh/npc_team/load_file.jinx,sha256=Dq2982ZJkbSrM75O8YgLeGRnHdWl0AfEIYkj9RkNMLg,1271
123
+ npcsh-1.1.16.data/data/npcsh/npc_team/npc-studio.jinx,sha256=0aY-z399BRIXIL3TLMTcYDiHjDm-krZy0CnYfiskQUo,2234
124
+ npcsh-1.1.16.data/data/npcsh/npc_team/npcsh.ctx,sha256=-jKYaPm2YbZHAGgWAXhyPIwhiNe1H1ZRFg1Zc7tHSxk,1049
125
+ npcsh-1.1.16.data/data/npcsh/npc_team/npcsh_sibiji.png,sha256=9fUqgYMsSHmaH-kBTBQ7N5UCS5-eLZF94Log0O3mtFg,4544
126
+ npcsh-1.1.16.data/data/npcsh/npc_team/nql.jinx,sha256=xTAFs44JFvu4XCqoqyypaujNU1BsDf2VL_2MO9arEc0,5576
127
+ npcsh-1.1.16.data/data/npcsh/npc_team/open_browser.jinx,sha256=AfZ7GSkBOKEmqYHOuJ1KsUh7OlTivBmCPbiIZ_VOwy8,1660
128
+ npcsh-1.1.16.data/data/npcsh/npc_team/ots.jinx,sha256=DKoSVgH_ZcmOaZ2-R-Yn80KyCiYgqG25JG6e4wQwP64,2301
129
+ npcsh-1.1.16.data/data/npcsh/npc_team/paper_search.jinx,sha256=UdDKhGSeHZoFkpdgrp369w-G4MQXHJwrEYabdYxEgLA,4204
130
+ npcsh-1.1.16.data/data/npcsh/npc_team/paste.jinx,sha256=bycgMzeYFHl3-TN4YYDyasbNe22hEgFGMOmYoMWFgWI,4957
131
+ npcsh-1.1.16.data/data/npcsh/npc_team/plonk.npc,sha256=z2fd5U0qaymiqHvkunQxCGQ1N2Mx6DMeErcltrJWrqw,1341
132
+ npcsh-1.1.16.data/data/npcsh/npc_team/plonk.png,sha256=IU5ey-Dl4HEKlwnf75RSWNSHpF8rVqGmdbsa0deL4rQ,2727773
133
+ npcsh-1.1.16.data/data/npcsh/npc_team/plonkjr.npc,sha256=umvWEigYLJBzzqSpF70lbf75612q8LxxGeYHT1Oq21Q,1568
134
+ npcsh-1.1.16.data/data/npcsh/npc_team/plonkjr.png,sha256=MqLEGwsyECUeODZIti0HQQrMMVxA6XERpW01R06NbpY,2606710
135
+ npcsh-1.1.16.data/data/npcsh/npc_team/python.jinx,sha256=lFJubdPVlGxSuUKCxsxjYG4_dnX2ATn8U9ChYKRmL5Q,389
136
+ npcsh-1.1.16.data/data/npcsh/npc_team/roll.jinx,sha256=RhYhDDdyKcWjVhVSU7dX_DMn5s4rz-nY6pXmtr6tytM,2908
137
+ npcsh-1.1.16.data/data/npcsh/npc_team/sample.jinx,sha256=7cWwfAZFgWxaTkIL1gpFFryQ3mjvVjoWYAov-zOFn_E,2237
138
+ npcsh-1.1.16.data/data/npcsh/npc_team/screenshot.jinx,sha256=a4tEC7l72srWbrUU_vyZzWrZl2SNaU0wnQFMTAMQLuA,695
139
+ npcsh-1.1.16.data/data/npcsh/npc_team/search.jinx,sha256=DtTiQj9ezgd4_dW3s2H9ZvgM7QVsWgMM0GuYqq7gTmI,5510
140
+ npcsh-1.1.16.data/data/npcsh/npc_team/semantic_scholar.jinx,sha256=SCLzeTxVNv0rcnELbT3cKSuz7SO4Rft_H6K9w9QO10k,2530
141
+ npcsh-1.1.16.data/data/npcsh/npc_team/serve.jinx,sha256=D-a-UafymNfAWeLW1sLM_Ef-971SF9TPcUvYu70AIlk,837
142
+ npcsh-1.1.16.data/data/npcsh/npc_team/set.jinx,sha256=hQY_0muEtnWtfXsdK9cPwSvIevCimiJJn1-yhGC_VxM,1381
143
+ npcsh-1.1.16.data/data/npcsh/npc_team/sh.jinx,sha256=LeBkoJOmWY0_U-vmgVnX5yxvoMO2kSw1cr5PT4Jmlp8,846
144
+ npcsh-1.1.16.data/data/npcsh/npc_team/shh.jinx,sha256=yD-_va97JHT1MAhUvoL8w86Li9cbwi8XbswVcTRxd4U,464
145
+ npcsh-1.1.16.data/data/npcsh/npc_team/sibiji.npc,sha256=I2fJsYPi7SUPLErczT6vwWl1p00FpuRYyx6r5Ljjyt4,1542
146
+ npcsh-1.1.16.data/data/npcsh/npc_team/sibiji.png,sha256=1dlZb7J3E62FcVo9CVOzLb8nu1bIUV7cr97nsFocHCM,35615
147
+ npcsh-1.1.16.data/data/npcsh/npc_team/sleep.jinx,sha256=c-7Dn4aLuX7WyBVcvuk3sqcbIutqKIz1N9sBfPNzhck,5301
148
+ npcsh-1.1.16.data/data/npcsh/npc_team/spool.jinx,sha256=MLmqcnsytTQjektI7feD9bwUu3m-plPme1tRM6_zO6M,6446
149
+ npcsh-1.1.16.data/data/npcsh/npc_team/spool.png,sha256=LWTLkwDxXBfLuSUCX32_lo5yAmLYGsA67Xpsz-7MmWU,2876725
150
+ npcsh-1.1.16.data/data/npcsh/npc_team/sql.jinx,sha256=wHxvoCkEy1bZE2DPT2m_h0PXiTLtZlmax2flg-iXPdY,581
151
+ npcsh-1.1.16.data/data/npcsh/npc_team/switch.jinx,sha256=9RWt5jipaZr8iJXJKVHQvTLymuYwKfSjCnuUk48M-Ss,2114
152
+ npcsh-1.1.16.data/data/npcsh/npc_team/switches.jinx,sha256=wXb614UdXuuO3WzIhp1_Two_DksTDUwsYHFjeZNa9wc,2214
153
+ npcsh-1.1.16.data/data/npcsh/npc_team/sync.jinx,sha256=rAhh2S5IeK9kzmpYJ-qdSVgagFv9wlZjMZ6pnn_ZLj4,8569
154
+ npcsh-1.1.16.data/data/npcsh/npc_team/teamviz.jinx,sha256=sg2Szrkmeg9S0AAD7EA0uWneHOcCBvSySfUnZn4Eh6k,7650
155
+ npcsh-1.1.16.data/data/npcsh/npc_team/trigger.jinx,sha256=YVFPEH6mT9HiAyfPZOCcBpKB033g6K4QCJO0sfgKSQA,2458
156
+ npcsh-1.1.16.data/data/npcsh/npc_team/type_text.jinx,sha256=0093dk1X1DSaE8LANzn_JA1i07MLqI9NHa3a5pJPwyg,738
157
+ npcsh-1.1.16.data/data/npcsh/npc_team/usage.jinx,sha256=40zhs19l7-16KAXHzOa8hjv7hA32ORe0F7das0TTLXY,1052
158
+ npcsh-1.1.16.data/data/npcsh/npc_team/verbose.jinx,sha256=mFGLy2Azx1JXGhDOwVwd5EwJB9fxPQpk9BrP8kJ3RzE,473
159
+ npcsh-1.1.16.data/data/npcsh/npc_team/vixynt.jinx,sha256=p6r_yuUr5DYrDOEueuNnlqaf74ydllTuZ686slRHKmA,4300
160
+ npcsh-1.1.16.data/data/npcsh/npc_team/wait.jinx,sha256=Kg4AtesSduDn0bTemAxTz1XTdlY_Et0bc0OmS9wEuJ0,527
161
+ npcsh-1.1.16.data/data/npcsh/npc_team/wander.jinx,sha256=cFEacTTjMY_FZfWlR7ydSStcpPEN3T9119dGdny9tZA,5620
162
+ npcsh-1.1.16.data/data/npcsh/npc_team/yap.jinx,sha256=EU_10qxp-GIaCUfJo0sldl4N4989yd5tysfr4J_8biw,9596
163
+ npcsh-1.1.16.data/data/npcsh/npc_team/yap.png,sha256=_l7UbWnXJdsy4Mx-x5l9DT0R6ize3HTnkwQQnOFlI18,1548649
164
+ npcsh-1.1.16.dist-info/licenses/LICENSE,sha256=IKBvAECHP-aCiJtE4cHGCE5Yl0tozYz02PomGeWS3y4,1070
165
+ project/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
166
+ npcsh-1.1.16.dist-info/METADATA,sha256=2sZKfbod7xhQj2VS6vx64CBw47vIBwgaxHdLXINjhDU,37337
167
+ npcsh-1.1.16.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
168
+ npcsh-1.1.16.dist-info/entry_points.txt,sha256=9yQH_10yxRK3ntcTn_BRXUkGZ1HfPQ8HbXPMmvYl9TE,495
169
+ npcsh-1.1.16.dist-info/top_level.txt,sha256=sbA6l0H-5EUmtoSA3SJTzrFzT_BmsFtf1FOUq8P8vL0,14
170
+ npcsh-1.1.16.dist-info/RECORD,,
@@ -0,0 +1,19 @@
1
+ [console_scripts]
2
+ alicanto = npcsh.npcsh:main
3
+ corca = npcsh.npcsh:main
4
+ frederic = npcsh.npcsh:main
5
+ guac = npcsh.npcsh:main
6
+ kadiefa = npcsh.npcsh:main
7
+ npc = npcsh.npc:main
8
+ npcsh = npcsh.npcsh:main
9
+ nql = npcsh.npc:jinx_main
10
+ plonk = npcsh.npcsh:main
11
+ plonkjr = npcsh.npcsh:main
12
+ roll = npcsh.npc:jinx_main
13
+ sample = npcsh.npc:jinx_main
14
+ sibiji = npcsh.npcsh:main
15
+ spool = npcsh.npc:jinx_main
16
+ sync = npcsh.npc:jinx_main
17
+ vixynt = npcsh.npc:jinx_main
18
+ wander = npcsh.npc:jinx_main
19
+ yap = npcsh.npc:jinx_main
@@ -0,0 +1,2 @@
1
+ npcsh
2
+ project
project/__init__.py ADDED
@@ -0,0 +1 @@
1
+
@@ -1,7 +0,0 @@
1
- name: foreman
2
- primary_directive: You are the foreman of an NPC team. It is your duty
3
- to delegate tasks to your team members or to other specialized teams
4
- in order to complete the project. You are responsible for the
5
- completion of the project and the safety of your team members.
6
- model: gpt-4o-mini
7
- provider: openai
@@ -1,194 +0,0 @@
1
- jinx_name: alicanto
2
- description: Deep research mode - multi-perspective exploration with gold insights and cliff warnings
3
- npc: forenpc
4
- inputs:
5
- - query: null
6
- - num_npcs: 5
7
- - depth: 3
8
- - model: null
9
- - provider: null
10
- - max_steps: 20
11
- - skip_research: true
12
- - exploration: 0.3
13
- - creativity: 0.5
14
- - format: report
15
-
16
- steps:
17
- - name: alicanto_research
18
- engine: python
19
- code: |
20
- import os
21
- from termcolor import colored
22
-
23
- from npcpy.llm_funcs import get_llm_response
24
- from npcpy.data.web import search_web
25
- from npcpy.npc_compiler import NPC
26
-
27
- npc = context.get('npc')
28
- team = context.get('team')
29
- messages = context.get('messages', [])
30
-
31
- query = context.get('query')
32
- num_npcs = int(context.get('num_npcs', 5))
33
- depth = int(context.get('depth', 3))
34
- max_steps = int(context.get('max_steps', 20))
35
- skip_research = context.get('skip_research', True)
36
- exploration = float(context.get('exploration', 0.3))
37
- creativity = float(context.get('creativity', 0.5))
38
- output_format = context.get('format', 'report')
39
-
40
- model = context.get('model') or (npc.model if npc else 'gemini-1.5-pro')
41
- provider = context.get('provider') or (npc.provider if npc else 'gemini')
42
-
43
- if not query:
44
- context['output'] = """Usage: /alicanto <research query>
45
-
46
- Options:
47
- --num-npcs N Number of research perspectives (default: 5)
48
- --depth N Research depth (default: 3)
49
- --max-steps N Maximum research steps (default: 20)
50
- --exploration F Exploration factor 0-1 (default: 0.3)
51
- --creativity F Creativity factor 0-1 (default: 0.5)
52
- --format FORMAT Output: report|summary|full (default: report)
53
-
54
- Example: /alicanto What are the latest advances in quantum computing?"""
55
- context['messages'] = messages
56
- exit()
57
-
58
- print(f"""
59
- █████╗ ██╗ ██╗ ██████╗ █████╗ ███╗ ██╗████████╗ ██████╗
60
- ██╔══██╗██║ ██║██╔════╝██╔══██╗████╗ ██║╚══██╔══╝██╔═══██╗
61
- ███████║██║ ██║██║ ███████║██╔██╗ ██║ ██║ ██║ ██║
62
- ██╔══██║██║ ██║██║ ██╔══██║██║╚██╗██║ ██║ ██║ ██║
63
- ██║ ██║███████╗██║╚██████╗██║ ██║██║ ╚████║ ██║ ╚██████╔╝
64
- ╚═╝ ╚═╝╚══════╝╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═╝ ╚═════╝
65
-
66
- Deep Research Mode
67
- Query: {query}
68
- Perspectives: {num_npcs} | Depth: {depth} | Max Steps: {max_steps}
69
- """)
70
-
71
- # Generate research perspectives
72
- perspectives_prompt = f"""Generate {num_npcs} distinct research perspectives for investigating: "{query}"
73
-
74
- For each perspective, provide:
75
- 1. Name (a descriptive title)
76
- 2. Approach (how this perspective would investigate)
77
- 3. Key questions to explore
78
-
79
- Return as a numbered list."""
80
-
81
- print(colored("Generating research perspectives...", "cyan"))
82
- resp = get_llm_response(
83
- perspectives_prompt,
84
- model=model,
85
- provider=provider,
86
- npc=npc
87
- )
88
- perspectives = str(resp.get('response', ''))
89
- print(perspectives)
90
-
91
- # Conduct web research if not skipped
92
- research_findings = ""
93
- if not skip_research:
94
- print(colored("\nConducting web research...", "cyan"))
95
- try:
96
- search_results = search_web(query, n_results=5)
97
- if search_results:
98
- research_findings = "\n\nWeb Research Findings:\n"
99
- for i, result in enumerate(search_results[:5], 1):
100
- title = result.get('title', 'No title')
101
- snippet = result.get('snippet', result.get('body', ''))[:200]
102
- research_findings += f"\n{i}. {title}\n {snippet}...\n"
103
- print(colored(f"Found {len(search_results)} sources", "green"))
104
- except Exception as e:
105
- print(colored(f"Web search error: {e}", "yellow"))
106
-
107
- # Multi-step exploration from each perspective
108
- all_insights = []
109
- gold_insights = [] # Key valuable findings
110
- cliff_warnings = [] # Potential pitfalls or caveats
111
-
112
- for step in range(min(depth, max_steps)):
113
- print(colored(f"\n--- Research Depth {step + 1}/{depth} ---", "cyan"))
114
-
115
- explore_prompt = f"""Research query: "{query}"
116
-
117
- Perspectives generated:
118
- {perspectives}
119
-
120
- {research_findings}
121
-
122
- Previous insights: {all_insights[-3:] if all_insights else 'None yet'}
123
-
124
- For depth level {step + 1}:
125
- 1. Explore deeper implications from each perspective
126
- 2. Identify GOLD insights (valuable, non-obvious findings) - mark with [GOLD]
127
- 3. Identify CLIFF warnings (pitfalls, caveats, risks) - mark with [CLIFF]
128
- 4. Connect insights across perspectives
129
-
130
- Exploration factor: {exploration} (higher = more diverse exploration)
131
- Creativity factor: {creativity} (higher = more novel connections)"""
132
-
133
- resp = get_llm_response(
134
- explore_prompt,
135
- model=model,
136
- provider=provider,
137
- temperature=creativity,
138
- npc=npc
139
- )
140
-
141
- step_insights = str(resp.get('response', ''))
142
- print(step_insights)
143
-
144
- # Extract gold and cliff markers
145
- if '[GOLD]' in step_insights:
146
- gold_insights.extend([line.strip() for line in step_insights.split('\n') if '[GOLD]' in line])
147
- if '[CLIFF]' in step_insights:
148
- cliff_warnings.extend([line.strip() for line in step_insights.split('\n') if '[CLIFF]' in line])
149
-
150
- all_insights.append(step_insights)
151
-
152
- # Generate final synthesis
153
- print(colored("\n--- Synthesizing Research ---", "cyan"))
154
-
155
- synthesis_prompt = f"""Synthesize research on: "{query}"
156
-
157
- All insights gathered:
158
- {chr(10).join(all_insights)}
159
-
160
- Gold insights identified:
161
- {chr(10).join(gold_insights) if gold_insights else 'None explicitly marked'}
162
-
163
- Cliff warnings identified:
164
- {chr(10).join(cliff_warnings) if cliff_warnings else 'None explicitly marked'}
165
-
166
- Generate a {output_format} that:
167
- 1. Summarizes key findings
168
- 2. Highlights the most valuable insights (gold)
169
- 3. Notes important caveats and risks (cliffs)
170
- 4. Provides actionable conclusions"""
171
-
172
- resp = get_llm_response(
173
- synthesis_prompt,
174
- model=model,
175
- provider=provider,
176
- npc=npc
177
- )
178
-
179
- final_report = str(resp.get('response', ''))
180
- print("\n" + "="*60)
181
- print(colored("ALICANTO RESEARCH REPORT", "green", attrs=['bold']))
182
- print("="*60)
183
- print(final_report)
184
-
185
- context['output'] = final_report
186
- context['messages'] = messages
187
- context['alicanto_result'] = {
188
- 'query': query,
189
- 'perspectives': perspectives,
190
- 'insights': all_insights,
191
- 'gold': gold_insights,
192
- 'cliffs': cliff_warnings,
193
- 'report': final_report
194
- }
@@ -1,249 +0,0 @@
1
- jinx_name: corca
2
- description: MCP-powered agentic shell - LLM with tool use via MCP servers
3
- inputs:
4
- - mcp_server_path: null
5
- - initial_command: null
6
- - model: null
7
- - provider: null
8
-
9
- steps:
10
- - name: corca_repl
11
- engine: python
12
- code: |
13
- import os
14
- import sys
15
- import asyncio
16
- import json
17
- from contextlib import AsyncExitStack
18
- from termcolor import colored
19
-
20
- from npcpy.llm_funcs import get_llm_response
21
- from npcpy.npc_sysenv import render_markdown, get_system_message
22
-
23
- # MCP imports
24
- try:
25
- from mcp import ClientSession, StdioServerParameters
26
- from mcp.client.stdio import stdio_client
27
- MCP_AVAILABLE = True
28
- except ImportError:
29
- MCP_AVAILABLE = False
30
- print(colored("MCP not available. Install with: pip install mcp-client", "yellow"))
31
-
32
- npc = context.get('npc')
33
- team = context.get('team')
34
- messages = context.get('messages', [])
35
- mcp_server_path = context.get('mcp_server_path')
36
- initial_command = context.get('initial_command')
37
-
38
- model = context.get('model') or (npc.model if npc else None)
39
- provider = context.get('provider') or (npc.provider if npc else None)
40
-
41
- # Use shared_context for MCP state
42
- shared_ctx = npc.shared_context if npc and hasattr(npc, 'shared_context') else {}
43
-
44
- print("""
45
- ██████╗ ██████╗ ██████╗ ██████╗ █████╗
46
- ██╔════╝██╔═══██╗██╔══██╗██╔════╝██╔══██╗
47
- ██║ ██║ ██║██████╔╝██║ ███████║
48
- ██║ ██║ ██║██╔══██╗██║ ██╔══██╗
49
- ╚██████╗╚██████╔╝██║ ██║╚██████╗██║ ██║
50
- ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝
51
- """)
52
-
53
- npc_name = npc.name if npc else "corca"
54
- print(f"Entering corca mode (NPC: {npc_name}). Type '/cq' to exit.")
55
-
56
- # ========== MCP Connection Setup ==========
57
- async def connect_mcp(server_path):
58
- """Connect to MCP server and return tools"""
59
- if not MCP_AVAILABLE:
60
- return [], {}
61
-
62
- abs_path = os.path.abspath(os.path.expanduser(server_path))
63
- if not os.path.exists(abs_path):
64
- print(colored(f"MCP server not found: {abs_path}", "red"))
65
- return [], {}
66
-
67
- try:
68
- loop = asyncio.get_event_loop()
69
- except RuntimeError:
70
- loop = asyncio.new_event_loop()
71
- asyncio.set_event_loop(loop)
72
-
73
- exit_stack = AsyncExitStack()
74
-
75
- if abs_path.endswith('.py'):
76
- cmd_parts = [sys.executable, abs_path]
77
- else:
78
- cmd_parts = [abs_path]
79
-
80
- server_params = StdioServerParameters(
81
- command=cmd_parts[0],
82
- args=[abs_path],
83
- env=os.environ.copy()
84
- )
85
-
86
- stdio_transport = await exit_stack.enter_async_context(stdio_client(server_params))
87
- session = await exit_stack.enter_async_context(ClientSession(*stdio_transport))
88
- await session.initialize()
89
-
90
- response = await session.list_tools()
91
- tools_llm = []
92
- tool_map = {}
93
-
94
- if response.tools:
95
- for mcp_tool in response.tools:
96
- tool_def = {
97
- "type": "function",
98
- "function": {
99
- "name": mcp_tool.name,
100
- "description": mcp_tool.description or f"MCP tool: {mcp_tool.name}",
101
- "parameters": getattr(mcp_tool, "inputSchema", {"type": "object", "properties": {}})
102
- }
103
- }
104
- tools_llm.append(tool_def)
105
-
106
- # Create sync wrapper for async tool call
107
- def make_tool_func(tool_name, sess, lp):
108
- async def call_tool(**kwargs):
109
- cleaned = {k: (None if v == 'None' else v) for k, v in kwargs.items()}
110
- result = await asyncio.wait_for(sess.call_tool(tool_name, cleaned), timeout=30.0)
111
- return result
112
- def sync_call(**kwargs):
113
- return lp.run_until_complete(call_tool(**kwargs))
114
- return sync_call
115
-
116
- tool_map[mcp_tool.name] = make_tool_func(mcp_tool.name, session, loop)
117
-
118
- # Store in shared context
119
- shared_ctx['mcp_client'] = session
120
- shared_ctx['mcp_tools'] = tools_llm
121
- shared_ctx['mcp_tool_map'] = tool_map
122
- shared_ctx['_mcp_exit_stack'] = exit_stack
123
- shared_ctx['_mcp_loop'] = loop
124
-
125
- print(colored(f"Connected to MCP server. Tools: {', '.join(tool_map.keys())}", "green"))
126
- return tools_llm, tool_map
127
-
128
- # Try to connect if server path provided
129
- tools_llm = shared_ctx.get('mcp_tools', [])
130
- tool_map = shared_ctx.get('mcp_tool_map', {})
131
-
132
- if mcp_server_path and not tools_llm:
133
- try:
134
- loop = asyncio.get_event_loop()
135
- except RuntimeError:
136
- loop = asyncio.new_event_loop()
137
- asyncio.set_event_loop(loop)
138
- tools_llm, tool_map = loop.run_until_complete(connect_mcp(mcp_server_path))
139
-
140
- # Find default MCP server if none provided
141
- if not tools_llm:
142
- default_paths = [
143
- os.path.expanduser("~/.npcsh/npc_team/mcp_server.py"),
144
- os.path.join(team.team_path, "mcp_server.py") if team and hasattr(team, 'team_path') else None,
145
- ]
146
- for path in default_paths:
147
- if path and os.path.exists(path):
148
- try:
149
- loop = asyncio.get_event_loop()
150
- except RuntimeError:
151
- loop = asyncio.new_event_loop()
152
- asyncio.set_event_loop(loop)
153
- tools_llm, tool_map = loop.run_until_complete(connect_mcp(path))
154
- if tools_llm:
155
- break
156
-
157
- # Ensure system message
158
- if not messages or messages[0].get("role") != "system":
159
- sys_msg = get_system_message(npc) if npc else "You are an AI assistant with access to tools."
160
- if tools_llm:
161
- sys_msg += f"\n\nYou have access to these tools: {', '.join(t['function']['name'] for t in tools_llm)}"
162
- messages.insert(0, {"role": "system", "content": sys_msg})
163
-
164
- # Handle initial command if provided (one-shot mode)
165
- if initial_command:
166
- resp = get_llm_response(
167
- initial_command,
168
- model=model,
169
- provider=provider,
170
- messages=messages,
171
- tools=tools_llm if tools_llm else None,
172
- tool_map=tool_map if tool_map else None,
173
- auto_process_tool_calls=True,
174
- npc=npc
175
- )
176
- messages = resp.get('messages', messages)
177
- render_markdown(str(resp.get('response', '')))
178
- context['output'] = resp.get('response', 'Done.')
179
- context['messages'] = messages
180
- # Don't enter REPL for one-shot
181
- exit()
182
-
183
- # REPL loop
184
- while True:
185
- try:
186
- prompt_str = f"{npc_name}:corca> "
187
- user_input = input(prompt_str).strip()
188
-
189
- if not user_input:
190
- continue
191
-
192
- if user_input.lower() == "/cq":
193
- print("Exiting corca mode.")
194
- break
195
-
196
- # Handle /tools to list available tools
197
- if user_input.lower() == "/tools":
198
- if tools_llm:
199
- print(colored("Available MCP tools:", "cyan"))
200
- for t in tools_llm:
201
- print(f" - {t['function']['name']}: {t['function'].get('description', '')[:60]}")
202
- else:
203
- print(colored("No MCP tools connected.", "yellow"))
204
- continue
205
-
206
- # Handle /connect to connect to new MCP server
207
- if user_input.startswith("/connect "):
208
- new_path = user_input[9:].strip()
209
- try:
210
- loop = asyncio.get_event_loop()
211
- except RuntimeError:
212
- loop = asyncio.new_event_loop()
213
- asyncio.set_event_loop(loop)
214
- tools_llm, tool_map = loop.run_until_complete(connect_mcp(new_path))
215
- continue
216
-
217
- # Get LLM response with tools
218
- resp = get_llm_response(
219
- user_input,
220
- model=model,
221
- provider=provider,
222
- messages=messages,
223
- tools=tools_llm if tools_llm else None,
224
- tool_map=tool_map if tool_map else None,
225
- auto_process_tool_calls=True,
226
- stream=False, # Tool calls don't work well with streaming
227
- npc=npc
228
- )
229
-
230
- messages = resp.get('messages', messages)
231
- response_text = resp.get('response', '')
232
- render_markdown(str(response_text))
233
-
234
- # Track usage
235
- if 'usage' in resp and npc and hasattr(npc, 'shared_context'):
236
- usage = resp['usage']
237
- npc.shared_context['session_input_tokens'] += usage.get('input_tokens', 0)
238
- npc.shared_context['session_output_tokens'] += usage.get('output_tokens', 0)
239
- npc.shared_context['turn_count'] += 1
240
-
241
- except KeyboardInterrupt:
242
- print("\nUse '/cq' to exit or continue.")
243
- continue
244
- except EOFError:
245
- print("\nExiting corca mode.")
246
- break
247
-
248
- context['output'] = "Exited corca mode."
249
- context['messages'] = messages