npcsh 1.0.31__py3-none-any.whl → 1.0.33__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.
- npcsh/alicanto.py +1001 -1015
- npcsh/corca.py +68 -24
- npcsh/routes.py +16 -15
- {npcsh-1.0.31.dist-info → npcsh-1.0.33.dist-info}/METADATA +1 -1
- {npcsh-1.0.31.dist-info → npcsh-1.0.33.dist-info}/RECORD +35 -35
- {npcsh-1.0.31.data → npcsh-1.0.33.data}/data/npcsh/npc_team/alicanto.npc +0 -0
- {npcsh-1.0.31.data → npcsh-1.0.33.data}/data/npcsh/npc_team/alicanto.png +0 -0
- {npcsh-1.0.31.data → npcsh-1.0.33.data}/data/npcsh/npc_team/bash_executer.jinx +0 -0
- {npcsh-1.0.31.data → npcsh-1.0.33.data}/data/npcsh/npc_team/corca.npc +0 -0
- {npcsh-1.0.31.data → npcsh-1.0.33.data}/data/npcsh/npc_team/corca.png +0 -0
- {npcsh-1.0.31.data → npcsh-1.0.33.data}/data/npcsh/npc_team/edit_file.jinx +0 -0
- {npcsh-1.0.31.data → npcsh-1.0.33.data}/data/npcsh/npc_team/foreman.npc +0 -0
- {npcsh-1.0.31.data → npcsh-1.0.33.data}/data/npcsh/npc_team/frederic.npc +0 -0
- {npcsh-1.0.31.data → npcsh-1.0.33.data}/data/npcsh/npc_team/frederic4.png +0 -0
- {npcsh-1.0.31.data → npcsh-1.0.33.data}/data/npcsh/npc_team/guac.png +0 -0
- {npcsh-1.0.31.data → npcsh-1.0.33.data}/data/npcsh/npc_team/image_generation.jinx +0 -0
- {npcsh-1.0.31.data → npcsh-1.0.33.data}/data/npcsh/npc_team/internet_search.jinx +0 -0
- {npcsh-1.0.31.data → npcsh-1.0.33.data}/data/npcsh/npc_team/kadiefa.npc +0 -0
- {npcsh-1.0.31.data → npcsh-1.0.33.data}/data/npcsh/npc_team/kadiefa.png +0 -0
- {npcsh-1.0.31.data → npcsh-1.0.33.data}/data/npcsh/npc_team/npcsh.ctx +0 -0
- {npcsh-1.0.31.data → npcsh-1.0.33.data}/data/npcsh/npc_team/npcsh_sibiji.png +0 -0
- {npcsh-1.0.31.data → npcsh-1.0.33.data}/data/npcsh/npc_team/plonk.npc +0 -0
- {npcsh-1.0.31.data → npcsh-1.0.33.data}/data/npcsh/npc_team/plonk.png +0 -0
- {npcsh-1.0.31.data → npcsh-1.0.33.data}/data/npcsh/npc_team/plonkjr.npc +0 -0
- {npcsh-1.0.31.data → npcsh-1.0.33.data}/data/npcsh/npc_team/plonkjr.png +0 -0
- {npcsh-1.0.31.data → npcsh-1.0.33.data}/data/npcsh/npc_team/python_executor.jinx +0 -0
- {npcsh-1.0.31.data → npcsh-1.0.33.data}/data/npcsh/npc_team/screen_cap.jinx +0 -0
- {npcsh-1.0.31.data → npcsh-1.0.33.data}/data/npcsh/npc_team/sibiji.npc +0 -0
- {npcsh-1.0.31.data → npcsh-1.0.33.data}/data/npcsh/npc_team/sibiji.png +0 -0
- {npcsh-1.0.31.data → npcsh-1.0.33.data}/data/npcsh/npc_team/spool.png +0 -0
- {npcsh-1.0.31.data → npcsh-1.0.33.data}/data/npcsh/npc_team/yap.png +0 -0
- {npcsh-1.0.31.dist-info → npcsh-1.0.33.dist-info}/WHEEL +0 -0
- {npcsh-1.0.31.dist-info → npcsh-1.0.33.dist-info}/entry_points.txt +0 -0
- {npcsh-1.0.31.dist-info → npcsh-1.0.33.dist-info}/licenses/LICENSE +0 -0
- {npcsh-1.0.31.dist-info → npcsh-1.0.33.dist-info}/top_level.txt +0 -0
npcsh/corca.py
CHANGED
|
@@ -7,6 +7,7 @@ from contextlib import AsyncExitStack
|
|
|
7
7
|
from typing import Optional, Callable, Dict, Any, Tuple, List
|
|
8
8
|
import shutil
|
|
9
9
|
import traceback
|
|
10
|
+
from litellm.exceptions import Timeout, ContextWindowExceededError, RateLimitError
|
|
10
11
|
|
|
11
12
|
try:
|
|
12
13
|
from mcp import ClientSession, StdioServerParameters
|
|
@@ -250,6 +251,7 @@ def process_mcp_stream(stream_response, active_npc):
|
|
|
250
251
|
|
|
251
252
|
|
|
252
253
|
|
|
254
|
+
|
|
253
255
|
def execute_command_corca(command: str, state: ShellState, command_history, selected_mcp_tools_names: Optional[List[str]] = None) -> Tuple[ShellState, Any]:
|
|
254
256
|
mcp_tools_for_llm = []
|
|
255
257
|
|
|
@@ -270,27 +272,63 @@ def execute_command_corca(command: str, state: ShellState, command_history, sele
|
|
|
270
272
|
|
|
271
273
|
active_npc = state.npc if isinstance(state.npc, NPC) else NPC(name="default")
|
|
272
274
|
|
|
273
|
-
if len(state.messages) >
|
|
274
|
-
compressed_state = active_npc.compress_planning_state(
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
275
|
+
if len(state.messages) > 50:
|
|
276
|
+
compressed_state = active_npc.compress_planning_state(state.messages)
|
|
277
|
+
state.messages = [{"role": "system", "content": compressed_state}]
|
|
278
|
+
print(compressed_state)
|
|
279
|
+
|
|
280
|
+
try:
|
|
281
|
+
response_dict = get_llm_response(
|
|
282
|
+
prompt=command,
|
|
283
|
+
npc=state.npc,
|
|
284
|
+
messages=state.messages,
|
|
285
|
+
tools=mcp_tools_for_llm,
|
|
286
|
+
auto_process_tool_calls=False,
|
|
287
|
+
stream=state.stream_output,
|
|
288
|
+
team=state.team
|
|
289
|
+
)
|
|
290
|
+
except Timeout:
|
|
291
|
+
response_dict = get_llm_response(
|
|
292
|
+
prompt=command,
|
|
293
|
+
npc=state.npc,
|
|
294
|
+
messages=state.messages,
|
|
295
|
+
tools=mcp_tools_for_llm,
|
|
296
|
+
auto_process_tool_calls=False,
|
|
297
|
+
stream=state.stream_output,
|
|
298
|
+
team=state.team
|
|
299
|
+
)
|
|
300
|
+
except ContextWindowExceededError:
|
|
301
|
+
compressed_state = active_npc.compress_planning_state(state.messages)
|
|
302
|
+
state.messages = [{"role": "system", "content": compressed_state}]
|
|
303
|
+
|
|
304
|
+
response_dict = get_llm_response(
|
|
305
|
+
prompt=command,
|
|
306
|
+
npc=state.npc,
|
|
307
|
+
messages=state.messages,
|
|
308
|
+
tools=mcp_tools_for_llm,
|
|
309
|
+
auto_process_tool_calls=False,
|
|
310
|
+
stream=state.stream_output,
|
|
311
|
+
team=state.team
|
|
312
|
+
)
|
|
313
|
+
except RateLimitError:
|
|
314
|
+
import time
|
|
315
|
+
print('rate limit hit... waiting 60 seconds')
|
|
316
|
+
time.sleep(60)
|
|
317
|
+
print('compressing..... ')
|
|
318
|
+
compressed_state = active_npc.compress_planning_state(state.messages)
|
|
319
|
+
state.messages = [{"role": "system", "content": compressed_state}]
|
|
320
|
+
|
|
321
|
+
response_dict = get_llm_response(
|
|
322
|
+
prompt=command,
|
|
323
|
+
npc=state.npc,
|
|
324
|
+
messages=state.messages,
|
|
325
|
+
tools=mcp_tools_for_llm,
|
|
326
|
+
auto_process_tool_calls=False,
|
|
327
|
+
stream=state.stream_output,
|
|
328
|
+
team=state.team
|
|
329
|
+
)
|
|
330
|
+
|
|
331
|
+
|
|
294
332
|
stream_response = response_dict.get('response')
|
|
295
333
|
messages = response_dict.get('messages', state.messages)
|
|
296
334
|
|
|
@@ -308,6 +346,8 @@ def execute_command_corca(command: str, state: ShellState, command_history, sele
|
|
|
308
346
|
"tool_calls": tool_calls,
|
|
309
347
|
"messages": state.messages
|
|
310
348
|
}
|
|
349
|
+
|
|
350
|
+
|
|
311
351
|
def _resolve_and_copy_mcp_server_path(
|
|
312
352
|
explicit_path: Optional[str],
|
|
313
353
|
current_path: Optional[str],
|
|
@@ -906,8 +946,12 @@ def _resolve_and_copy_mcp_server_path(
|
|
|
906
946
|
|
|
907
947
|
cprint("No MCP server script found in any expected location.", "yellow")
|
|
908
948
|
return None
|
|
909
|
-
def create_corca_state_and_mcp_client(conversation_id,
|
|
910
|
-
|
|
949
|
+
def create_corca_state_and_mcp_client(conversation_id,
|
|
950
|
+
command_history,
|
|
951
|
+
npc=None,
|
|
952
|
+
team=None,
|
|
953
|
+
current_path=None,
|
|
954
|
+
mcp_server_path: Optional[str] = None):
|
|
911
955
|
from npcsh._state import ShellState
|
|
912
956
|
|
|
913
957
|
state = ShellState(
|
|
@@ -925,7 +969,7 @@ def create_corca_state_and_mcp_client(conversation_id, command_history, npc=None
|
|
|
925
969
|
auto_copy_bypass = os.getenv("NPCSH_CORCA_AUTO_COPY_MCP_SERVER", "false").lower() == "true"
|
|
926
970
|
|
|
927
971
|
resolved_server_path = _resolve_and_copy_mcp_server_path(
|
|
928
|
-
explicit_path=
|
|
972
|
+
explicit_path=mcp_server_path,
|
|
929
973
|
current_path=current_path,
|
|
930
974
|
team_ctx_mcp_servers=team.team_ctx.get('mcp_servers', []) if team and hasattr(team, 'team_ctx') else None,
|
|
931
975
|
interactive=False,
|
npcsh/routes.py
CHANGED
|
@@ -1130,18 +1130,11 @@ def yap_handler(command: str, **kwargs):
|
|
|
1130
1130
|
@router.route("alicanto", "Conduct deep research with multiple perspectives, identifying gold insights and cliff warnings")
|
|
1131
1131
|
def alicanto_handler(command: str, **kwargs):
|
|
1132
1132
|
messages = safe_get(kwargs, "messages", [])
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
1133
|
parts = shlex.split(command)
|
|
1136
|
-
|
|
1137
1134
|
|
|
1138
1135
|
query = ""
|
|
1139
1136
|
num_npcs = safe_get(kwargs, 'num_npcs', 5)
|
|
1140
1137
|
depth = safe_get(kwargs, 'depth', 3)
|
|
1141
|
-
exploration_factor = safe_get(kwargs, 'exploration', 0.3)
|
|
1142
|
-
creativity_factor = safe_get(kwargs, 'creativity', 0.5)
|
|
1143
|
-
output_format = safe_get(kwargs, 'format', 'report')
|
|
1144
|
-
|
|
1145
1138
|
|
|
1146
1139
|
i = 1
|
|
1147
1140
|
while i < len(parts):
|
|
@@ -1217,17 +1210,25 @@ def alicanto_handler(command: str, **kwargs):
|
|
|
1217
1210
|
|
|
1218
1211
|
try:
|
|
1219
1212
|
logging.info(f"Starting Alicanto research on: {query}")
|
|
1213
|
+
model = safe_get(kwargs, 'model')
|
|
1214
|
+
if len(model) == 0 :
|
|
1215
|
+
model = NPCSH_CHAT_MODEL
|
|
1216
|
+
provider = safe_get(kwargs, 'provider')
|
|
1217
|
+
if len(provider) == 0 :
|
|
1218
|
+
provider = NPCSH_CHAT_PROVIDER
|
|
1219
|
+
|
|
1220
|
+
|
|
1221
|
+
print('model: ', model)
|
|
1222
|
+
print('provider: ', provider)
|
|
1223
|
+
|
|
1220
1224
|
result = alicanto(
|
|
1221
|
-
|
|
1225
|
+
query,
|
|
1222
1226
|
num_npcs=num_npcs,
|
|
1223
1227
|
depth=depth,
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
exploration_factor=exploration_factor,
|
|
1229
|
-
creativity_factor=creativity_factor,
|
|
1230
|
-
output_format=output_format
|
|
1228
|
+
model=model,
|
|
1229
|
+
provider=provider,
|
|
1230
|
+
max_steps = safe_get(kwargs, 'max_steps', 20),
|
|
1231
|
+
|
|
1231
1232
|
)
|
|
1232
1233
|
|
|
1233
1234
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
npcsh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
2
|
npcsh/_state.py,sha256=sntRSm9DKthandawaLCf-semAm_1CNx3AUh-066G248,86498
|
|
3
|
-
npcsh/alicanto.py,sha256=
|
|
4
|
-
npcsh/corca.py,sha256=
|
|
3
|
+
npcsh/alicanto.py,sha256=ZftzxfQPQuuj9VB9V2FCTQN5NIE9Rvsg4iNiNqOUE6U,38118
|
|
4
|
+
npcsh/corca.py,sha256=4OluICXdL0APOWmk9JdeLuMbQPiA3LoupUmCJ8Ot0dE,49272
|
|
5
5
|
npcsh/guac.py,sha256=sVdLYVkzkQw6TE7crtLUX0QJZFkzQthWZTe1p7IfAQE,80412
|
|
6
6
|
npcsh/mcp_helpers.py,sha256=9TsCfcquGu_vX4WaKlY3J3P13-uxruQKrXng-jJ5YyY,11176
|
|
7
7
|
npcsh/mcp_server.py,sha256=krc1rhiSU9gI76w99Ph3Mk7OyUVzfiEXKMvVid-7-Ik,5201
|
|
@@ -9,7 +9,7 @@ npcsh/npc.py,sha256=OjCDu03hAcXyqPbzMeBBr1cBnmQsB1FBhd7kLNsWALc,8330
|
|
|
9
9
|
npcsh/npcsh.py,sha256=3WLkZxHGzRekVGxHiJUA4VFyhC3A1jwX11aB0kgzE9s,8818
|
|
10
10
|
npcsh/plonk.py,sha256=IfOuiE5FBvk-EIsrWFjGy0SrNywDpn4a49E7seBtEmY,14246
|
|
11
11
|
npcsh/pti.py,sha256=UciiiH2Kz4ERQFy0-FX6BQEU2VxYQEUril-_Cvj76Y0,7853
|
|
12
|
-
npcsh/routes.py,sha256=
|
|
12
|
+
npcsh/routes.py,sha256=ulQMLrNwOAQqfbHC1Nijr8lkn9v4efviCdkgZe9T0iY,44106
|
|
13
13
|
npcsh/spool.py,sha256=oCive2dbn1o3UGUJnFMzfON6g4bOnauuzyyQBgul6RI,9839
|
|
14
14
|
npcsh/wander.py,sha256=8WOX8az8BXjizXGraEvu-ZVphi6PECKZzo9alTK4gmA,21730
|
|
15
15
|
npcsh/yap.py,sha256=QU-j9eg8zixXG6nyjoIYXsanJ4FjPnzhS4aJ241HLxw,18467
|
|
@@ -39,35 +39,35 @@ npcsh/npc_team/jinxs/image_generation.jinx,sha256=bQxZdEm0_eqvf_OJSHw3qarp8Klp3L
|
|
|
39
39
|
npcsh/npc_team/jinxs/internet_search.jinx,sha256=s8zVxwKFUAof_VzQrwB5dpAQdeJ6hUBkbIdRsT-I5mo,1267
|
|
40
40
|
npcsh/npc_team/jinxs/python_executor.jinx,sha256=vZz3pZaj1BnPFHMs_wpyjRc0b32JR4rLhZfulCMDF1s,398
|
|
41
41
|
npcsh/npc_team/jinxs/screen_cap.jinx,sha256=-4DG0EiEe61N_kMhVqqHKhLVGOLuZQT9ax6IZk20NjI,960
|
|
42
|
-
npcsh-1.0.
|
|
43
|
-
npcsh-1.0.
|
|
44
|
-
npcsh-1.0.
|
|
45
|
-
npcsh-1.0.
|
|
46
|
-
npcsh-1.0.
|
|
47
|
-
npcsh-1.0.
|
|
48
|
-
npcsh-1.0.
|
|
49
|
-
npcsh-1.0.
|
|
50
|
-
npcsh-1.0.
|
|
51
|
-
npcsh-1.0.
|
|
52
|
-
npcsh-1.0.
|
|
53
|
-
npcsh-1.0.
|
|
54
|
-
npcsh-1.0.
|
|
55
|
-
npcsh-1.0.
|
|
56
|
-
npcsh-1.0.
|
|
57
|
-
npcsh-1.0.
|
|
58
|
-
npcsh-1.0.
|
|
59
|
-
npcsh-1.0.
|
|
60
|
-
npcsh-1.0.
|
|
61
|
-
npcsh-1.0.
|
|
62
|
-
npcsh-1.0.
|
|
63
|
-
npcsh-1.0.
|
|
64
|
-
npcsh-1.0.
|
|
65
|
-
npcsh-1.0.
|
|
66
|
-
npcsh-1.0.
|
|
67
|
-
npcsh-1.0.
|
|
68
|
-
npcsh-1.0.
|
|
69
|
-
npcsh-1.0.
|
|
70
|
-
npcsh-1.0.
|
|
71
|
-
npcsh-1.0.
|
|
72
|
-
npcsh-1.0.
|
|
73
|
-
npcsh-1.0.
|
|
42
|
+
npcsh-1.0.33.data/data/npcsh/npc_team/alicanto.npc,sha256=y9yDY3lq8ZwxQxpnrgle8w5IJwZqvxDepZFU4OaZCtg,148
|
|
43
|
+
npcsh-1.0.33.data/data/npcsh/npc_team/alicanto.png,sha256=A7xeMbcoKGjlkELxJEVifCEZLVWbOKZarTN5ZFJG-FM,3519858
|
|
44
|
+
npcsh-1.0.33.data/data/npcsh/npc_team/bash_executer.jinx,sha256=C_oQccOY8cKevMMPLRdznlMOccQvLgyzyOIThXvmrD8,692
|
|
45
|
+
npcsh-1.0.33.data/data/npcsh/npc_team/corca.npc,sha256=HI3Bs6KlUBPMz7icF1TRE8-V3f3EdU_VxvQxEpru3L4,662
|
|
46
|
+
npcsh-1.0.33.data/data/npcsh/npc_team/corca.png,sha256=0lF70hKu6tY-37YmIPVF2cuaPzvnQ4-UtQOzuAbKEf4,1666776
|
|
47
|
+
npcsh-1.0.33.data/data/npcsh/npc_team/edit_file.jinx,sha256=4PaJs8g_cdeDpbQwQSBycU5RDA0rczEC_NpLfLjo74Y,3490
|
|
48
|
+
npcsh-1.0.33.data/data/npcsh/npc_team/foreman.npc,sha256=WqB8jLfBToGmr8c1vip1KOnTHxfXlGXwDUGnZoDMQr0,327
|
|
49
|
+
npcsh-1.0.33.data/data/npcsh/npc_team/frederic.npc,sha256=EE2dOUItp-VKuW3ZMSHffmIEO4evjPcU2W_C4P3WXbY,362
|
|
50
|
+
npcsh-1.0.33.data/data/npcsh/npc_team/frederic4.png,sha256=ll8uoV0npnPp5HVJWv7h0xDSeuq4pqsk_gYGBHLS0VY,1590744
|
|
51
|
+
npcsh-1.0.33.data/data/npcsh/npc_team/guac.png,sha256=MCE7eJuEJwLJEzc9FS7lL62Mm-38jQRHkxXogPfOTuw,211470
|
|
52
|
+
npcsh-1.0.33.data/data/npcsh/npc_team/image_generation.jinx,sha256=bQxZdEm0_eqvf_OJSHw3qarp8Klp3LlBDv1_HY3COo4,1307
|
|
53
|
+
npcsh-1.0.33.data/data/npcsh/npc_team/internet_search.jinx,sha256=s8zVxwKFUAof_VzQrwB5dpAQdeJ6hUBkbIdRsT-I5mo,1267
|
|
54
|
+
npcsh-1.0.33.data/data/npcsh/npc_team/kadiefa.npc,sha256=Yl5a4wrfe4F2f6Ndw_ukzlVVX7NE9g_mG-3QqJSkg_o,381
|
|
55
|
+
npcsh-1.0.33.data/data/npcsh/npc_team/kadiefa.png,sha256=3CAwL8crKIwJko6o75Z6OYYEEM9Rk--yGzCJg7zoszg,3062528
|
|
56
|
+
npcsh-1.0.33.data/data/npcsh/npc_team/npcsh.ctx,sha256=-jKYaPm2YbZHAGgWAXhyPIwhiNe1H1ZRFg1Zc7tHSxk,1049
|
|
57
|
+
npcsh-1.0.33.data/data/npcsh/npc_team/npcsh_sibiji.png,sha256=9fUqgYMsSHmaH-kBTBQ7N5UCS5-eLZF94Log0O3mtFg,4544
|
|
58
|
+
npcsh-1.0.33.data/data/npcsh/npc_team/plonk.npc,sha256=u1m2a1D512XGQ2kC3eWDAY8Y2IvpkNU73DI_CPE65UE,90
|
|
59
|
+
npcsh-1.0.33.data/data/npcsh/npc_team/plonk.png,sha256=IU5ey-Dl4HEKlwnf75RSWNSHpF8rVqGmdbsa0deL4rQ,2727773
|
|
60
|
+
npcsh-1.0.33.data/data/npcsh/npc_team/plonkjr.npc,sha256=It-i-BEuG0XddKk0d85onk2aJr9Pe5pLnJzNaCWaQIM,87
|
|
61
|
+
npcsh-1.0.33.data/data/npcsh/npc_team/plonkjr.png,sha256=MqLEGwsyECUeODZIti0HQQrMMVxA6XERpW01R06NbpY,2606710
|
|
62
|
+
npcsh-1.0.33.data/data/npcsh/npc_team/python_executor.jinx,sha256=vZz3pZaj1BnPFHMs_wpyjRc0b32JR4rLhZfulCMDF1s,398
|
|
63
|
+
npcsh-1.0.33.data/data/npcsh/npc_team/screen_cap.jinx,sha256=-4DG0EiEe61N_kMhVqqHKhLVGOLuZQT9ax6IZk20NjI,960
|
|
64
|
+
npcsh-1.0.33.data/data/npcsh/npc_team/sibiji.npc,sha256=Hb4wXKIObKKgibwnio5hLec9yd_9bKDCA87Nm2zijFA,216
|
|
65
|
+
npcsh-1.0.33.data/data/npcsh/npc_team/sibiji.png,sha256=1dlZb7J3E62FcVo9CVOzLb8nu1bIUV7cr97nsFocHCM,35615
|
|
66
|
+
npcsh-1.0.33.data/data/npcsh/npc_team/spool.png,sha256=LWTLkwDxXBfLuSUCX32_lo5yAmLYGsA67Xpsz-7MmWU,2876725
|
|
67
|
+
npcsh-1.0.33.data/data/npcsh/npc_team/yap.png,sha256=_l7UbWnXJdsy4Mx-x5l9DT0R6ize3HTnkwQQnOFlI18,1548649
|
|
68
|
+
npcsh-1.0.33.dist-info/licenses/LICENSE,sha256=IKBvAECHP-aCiJtE4cHGCE5Yl0tozYz02PomGeWS3y4,1070
|
|
69
|
+
npcsh-1.0.33.dist-info/METADATA,sha256=oxuT3G2l8HLWmgzV4GlVCUYaBx5C1LT-b2IggcgCvtA,25486
|
|
70
|
+
npcsh-1.0.33.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
71
|
+
npcsh-1.0.33.dist-info/entry_points.txt,sha256=S5yIuGm8ZXQ4siHYgN5gs0J7bxgobSEULXf8L5HaW5o,206
|
|
72
|
+
npcsh-1.0.33.dist-info/top_level.txt,sha256=kHSNgKMCkfjV95-DH0YSp1LLBi0HXdF3w57j7MQON3E,6
|
|
73
|
+
npcsh-1.0.33.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|