npcsh 1.0.24__py3-none-any.whl → 1.0.26__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 (34) hide show
  1. npcsh/guac.py +2 -1
  2. npcsh/routes.py +36 -16
  3. {npcsh-1.0.24.dist-info → npcsh-1.0.26.dist-info}/METADATA +12 -6
  4. {npcsh-1.0.24.dist-info → npcsh-1.0.26.dist-info}/RECORD +34 -34
  5. {npcsh-1.0.24.data → npcsh-1.0.26.data}/data/npcsh/npc_team/alicanto.npc +0 -0
  6. {npcsh-1.0.24.data → npcsh-1.0.26.data}/data/npcsh/npc_team/alicanto.png +0 -0
  7. {npcsh-1.0.24.data → npcsh-1.0.26.data}/data/npcsh/npc_team/bash_executer.jinx +0 -0
  8. {npcsh-1.0.24.data → npcsh-1.0.26.data}/data/npcsh/npc_team/corca.npc +0 -0
  9. {npcsh-1.0.24.data → npcsh-1.0.26.data}/data/npcsh/npc_team/corca.png +0 -0
  10. {npcsh-1.0.24.data → npcsh-1.0.26.data}/data/npcsh/npc_team/edit_file.jinx +0 -0
  11. {npcsh-1.0.24.data → npcsh-1.0.26.data}/data/npcsh/npc_team/foreman.npc +0 -0
  12. {npcsh-1.0.24.data → npcsh-1.0.26.data}/data/npcsh/npc_team/frederic.npc +0 -0
  13. {npcsh-1.0.24.data → npcsh-1.0.26.data}/data/npcsh/npc_team/frederic4.png +0 -0
  14. {npcsh-1.0.24.data → npcsh-1.0.26.data}/data/npcsh/npc_team/guac.png +0 -0
  15. {npcsh-1.0.24.data → npcsh-1.0.26.data}/data/npcsh/npc_team/image_generation.jinx +0 -0
  16. {npcsh-1.0.24.data → npcsh-1.0.26.data}/data/npcsh/npc_team/internet_search.jinx +0 -0
  17. {npcsh-1.0.24.data → npcsh-1.0.26.data}/data/npcsh/npc_team/kadiefa.npc +0 -0
  18. {npcsh-1.0.24.data → npcsh-1.0.26.data}/data/npcsh/npc_team/kadiefa.png +0 -0
  19. {npcsh-1.0.24.data → npcsh-1.0.26.data}/data/npcsh/npc_team/npcsh.ctx +0 -0
  20. {npcsh-1.0.24.data → npcsh-1.0.26.data}/data/npcsh/npc_team/npcsh_sibiji.png +0 -0
  21. {npcsh-1.0.24.data → npcsh-1.0.26.data}/data/npcsh/npc_team/plonk.npc +0 -0
  22. {npcsh-1.0.24.data → npcsh-1.0.26.data}/data/npcsh/npc_team/plonk.png +0 -0
  23. {npcsh-1.0.24.data → npcsh-1.0.26.data}/data/npcsh/npc_team/plonkjr.npc +0 -0
  24. {npcsh-1.0.24.data → npcsh-1.0.26.data}/data/npcsh/npc_team/plonkjr.png +0 -0
  25. {npcsh-1.0.24.data → npcsh-1.0.26.data}/data/npcsh/npc_team/python_executor.jinx +0 -0
  26. {npcsh-1.0.24.data → npcsh-1.0.26.data}/data/npcsh/npc_team/screen_cap.jinx +0 -0
  27. {npcsh-1.0.24.data → npcsh-1.0.26.data}/data/npcsh/npc_team/sibiji.npc +0 -0
  28. {npcsh-1.0.24.data → npcsh-1.0.26.data}/data/npcsh/npc_team/sibiji.png +0 -0
  29. {npcsh-1.0.24.data → npcsh-1.0.26.data}/data/npcsh/npc_team/spool.png +0 -0
  30. {npcsh-1.0.24.data → npcsh-1.0.26.data}/data/npcsh/npc_team/yap.png +0 -0
  31. {npcsh-1.0.24.dist-info → npcsh-1.0.26.dist-info}/WHEEL +0 -0
  32. {npcsh-1.0.24.dist-info → npcsh-1.0.26.dist-info}/entry_points.txt +0 -0
  33. {npcsh-1.0.24.dist-info → npcsh-1.0.26.dist-info}/licenses/LICENSE +0 -0
  34. {npcsh-1.0.24.dist-info → npcsh-1.0.26.dist-info}/top_level.txt +0 -0
npcsh/guac.py CHANGED
@@ -555,9 +555,10 @@ def setup_guac_mode(config_dir=None, plots_dir=None, npc_team_dir=None,
555
555
  print("Updated team.ctx with GUAC-specific information.")
556
556
 
557
557
  setup_py_path = pkg_root_path / "setup.py"
558
+ desc = project_description.replace('"', '\\"')
558
559
  if not setup_py_path.exists():
559
560
  setup_content = f'''from setuptools import setup, find_packages
560
- setup(name="{package_name}", version="0.0.1", description="{project_description.replace('"', '\\"')}", packages=find_packages())
561
+ setup(name="{package_name}", version="0.0.1", description="{desc}", packages=find_packages())
561
562
  '''
562
563
  setup_py_path.write_text(setup_content)
563
564
  logging.info("Created minimal setup.py at %s", setup_py_path)
npcsh/routes.py CHANGED
@@ -976,8 +976,9 @@ def vixynt_handler(command: str, **kwargs):
976
976
  provider = safe_get(kwargs, 'igprovider', NPCSH_IMAGE_GEN_PROVIDER)
977
977
  height = safe_get(kwargs, 'height', 1024)
978
978
  width = safe_get(kwargs, 'width', 1024)
979
- output_file = safe_get(kwargs, 'output_file')
979
+ output_file_base = safe_get(kwargs, 'output_file')
980
980
  attachments = safe_get(kwargs, 'attachments')
981
+ n_images = safe_get(kwargs, 'n_images', 1) # Get n_images from kwargs
981
982
  if isinstance(attachments, str):
982
983
  attachments = attachments.split(',')
983
984
 
@@ -986,34 +987,51 @@ def vixynt_handler(command: str, **kwargs):
986
987
  user_prompt = " ".join(safe_get(kwargs, 'positional_args', []))
987
988
 
988
989
  if not user_prompt:
989
- return {"output": "Usage: /vixynt <prompt> [--output_file path] [--attachments path]", "messages": messages}
990
+ return {"output": "Usage: /vixynt <prompt> [--output_file path] [--attachments path] [--n_images num]", "messages": messages}
991
+
990
992
  try:
991
- image = gen_image(
993
+ # Call gen_image, passing n_images and expecting a list of images
994
+ images_list = gen_image(
992
995
  prompt=user_prompt,
993
996
  model=model,
994
997
  provider=provider,
995
998
  npc=npc,
996
999
  height=height,
997
1000
  width=width,
1001
+ n_images=n_images, # Pass n_images
998
1002
  input_images=attachments
999
1003
  )
1000
1004
 
1001
- if output_file is None:
1002
- os.makedirs(os.path.expanduser("~/.npcsh/images/"), exist_ok=True)
1003
- output_file = (
1004
- os.path.expanduser("~/.npcsh/images/")
1005
- + f"image_{datetime.now().strftime('%Y%m%d_%H%M%S')}.png"
1006
- )
1007
- else:
1008
- output_file = os.path.expanduser(output_file)
1005
+ saved_files = []
1006
+ if not isinstance(images_list, list):
1007
+ images_list = [images_list] if images_list is not None else []
1009
1008
 
1010
- image.save(output_file)
1011
- image.show()
1009
+ for i, image in enumerate(images_list):
1010
+ if image is None:
1011
+ continue
1012
1012
 
1013
- if attachments:
1014
- output = f"Image edited and saved to: {output_file}"
1013
+ if output_file_base is None:
1014
+ os.makedirs(os.path.expanduser("~/.npcsh/images/"), exist_ok=True)
1015
+ current_output_file = (
1016
+ os.path.expanduser("~/.npcsh/images/")
1017
+ + f"image_{datetime.now().strftime('%Y%m%d_%H%M%S')}_{i}.png"
1018
+ )
1019
+ else:
1020
+ base_name, ext = os.path.splitext(os.path.expanduser(output_file_base))
1021
+ current_output_file = f"{base_name}_{i}{ext}"
1022
+
1023
+ image.save(current_output_file)
1024
+ image.show()
1025
+ saved_files.append(current_output_file)
1026
+
1027
+ if saved_files:
1028
+ if attachments:
1029
+ output = f"Image(s) edited and saved to: {', '.join(saved_files)}"
1030
+ else:
1031
+ output = f"Image(s) generated and saved to: {', '.join(saved_files)}"
1015
1032
  else:
1016
- output = f"Image generated and saved to: {output_file}"
1033
+ output = f"No images {'edited' if attachments else 'generated'}."
1034
+
1017
1035
  except Exception as e:
1018
1036
  traceback.print_exc()
1019
1037
  output = f"Error {'editing' if attachments else 'generating'} image: {e}"
@@ -1024,6 +1042,8 @@ def vixynt_handler(command: str, **kwargs):
1024
1042
  "model": model,
1025
1043
  "provider": provider
1026
1044
  }
1045
+
1046
+
1027
1047
  @router.route("wander", "Enter wander mode (experimental)")
1028
1048
  def wander_handler(command: str, **kwargs):
1029
1049
  messages = safe_get(kwargs, "messages", [])
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: npcsh
3
- Version: 1.0.24
3
+ Version: 1.0.26
4
4
  Summary: npcsh is a command-line toolkit for using AI agents in novel ways.
5
5
  Home-page: https://github.com/NPC-Worldwide/npcsh
6
6
  Author: Christopher Agostino
@@ -125,7 +125,7 @@ Once installed: run
125
125
  ```bash
126
126
  npcsh
127
127
  ```
128
- and you will enter the NPC shell. Additionally, the pip installation includes making the following CLI tools available in bash: `corca`, `guac`, `npc` cli, `pti`, `spool`, `wander`, and`yap`.
128
+ and you will enter the NPC shell. Additionally, the pip installation includes the following CLI tools available in bash: `corca`, `guac`, `npc` cli, `pti`, `spool`, `wander`, and`yap`.
129
129
 
130
130
 
131
131
  # Usage
@@ -204,12 +204,14 @@ The core of npcsh's capabilities is powered by the NPC Data Layer. Upon initiali
204
204
  Users can extend NPC capabilities through simple YAML files:
205
205
 
206
206
  - **NPCs** (.npc): are defined with a name, primary directive, and optional model specifications
207
- - **Jinxs** (.jinx): specify function-like capabilities with preprocessing, execution, and postprocessing steps
208
- - **Context** (.ctx): Specify contextual information, team preferences, MCP server paths, database connections, and other environment variables that are loaded for the team. Teams are specified by their path and the team name in the `<team>.ctx` file. Teams organize collections of NPCs with shared context and specify a coordinator within the team context
207
+ - **Jinxs** (.jinx): Jinja execution templates that provide function-like capabilities and scaleable extensibility through Jinja references to call other jinxs to build upon. Jinxs are executed through prompt-based flows, allowing them to be used by models regardless of their tool-calling capabilities, making it possible then to enable agents at the edge of computing through this simple methodology.
208
+ - **Context** (.ctx): Specify contextual information, team preferences, MCP server paths, database connections, and other environment variables that are loaded for the team or for specific agents (e.g. `GUAC_FORENPC`). Teams are specified by their path and the team name in the `<team>.ctx` file. Teams organize collections of NPCs with shared context and specify a coordinator within the team context who is used whenever the team is called upon for orchestration.
209
209
 
210
210
  The NPC Shell system integrates the capabilities of `npcpy` to maintain conversation history, track command execution, and provide intelligent autocomplete through an extensible command routing system. State is preserved between sessions, allowing for continuous knowledge building over time.
211
211
 
212
- This architecture enables complex AI workflows while maintaining a simple, declarative syntax that abstracts away implementation complexity. By organizing AI capabilities as composable data structures rather than code, npcsh creates a more accessible and adaptable framework for AI automation.
212
+ This architecture enables users to build complex AI workflows while maintaining a simple, declarative syntax that abstracts away implementation complexity. By organizing AI capabilities in composable data structures rather than code, `npcsh` creates a more accessible and adaptable framework for AI automation that can scale more intentionally. Within teams can be subteams, and these sub-teams may be called upon for orchestration, but importantly, when the orchestrator is deciding between using one of its own team's NPCs versus yielding to a sub-team, they see only the descriptions of the subteams rather than the full persona descriptions for each of the sub-team's agents, making it easier for the orchestrator to better delineate and keep their attention focused by restricting the number of options in each decisino step. Thus, they may yield to the sub-team's orchestrator, letting them decide which sub-team NPC to use based on their own team's agents.
213
+
214
+ Importantly, users can switch easily between the NPCs they are chatting with by typing `/n npc_name` within the NPC shell. Likewise, they can create Jinxs and then use them from within the NPC shell by invoking the jinx name and the arguments required for the Jinx; `/<jinx_name> arg1 arg2`
213
215
 
214
216
  # Macros
215
217
  - activated by invoking `/<command> ...` in `npcsh`, macros can be called in bash or through the `npc` CLI. In our examples, we provide both `npcsh` calls as well as bash calls with the `npc` cli where relevant. For converting any `/<command>` in `npcsh` to a bash version, replace the `/` with `npc ` and the macro command will be invoked as a positional argument. Some, like breathe, flush,
@@ -276,7 +278,11 @@ To see more about how to use the macros and modes in the NPC Shell, read the doc
276
278
  - `npcsh` works with local and enterprise LLM providers through its LiteLLM integration, allowing users to run inference from Ollama, LMStudio, vLLM, MLX, OpenAI, Anthropic, Gemini, and Deepseek, making it a versatile tool for both simple commands and sophisticated AI-driven tasks.
277
279
 
278
280
  ## NPC Studio
279
- There is a graphical user interface that makes use of the NPC Toolkit through the NPC Studio. See the open source code for NPC Studio [here](https://github.com/npc-worldwide/npc-studio). Download the executables at [our website](https://enpisi.com/npc-studio).
281
+ There is a graphical user interface that makes use of the NPC Toolkit through the NPC Studio. See the source code for NPC Studio [here](https://github.com/npc-worldwide/npc-studio). Download the executables at [our website](https://enpisi.com/npc-studio). For the most up to date version, you can use NPC Studio by invoking it in npcsh
282
+ ```
283
+ /npc-studio
284
+ ```
285
+ which will download and set up and serve the NPC Studio application within your `~/.npcsh` folder. It requires `npm` and `node` to work.
280
286
 
281
287
  ## Mailing List
282
288
  Interested to stay in the loop and to hear the latest and greatest about `npcpy`, `npcsh`, and NPC Studio? Be sure to sign up for the [newsletter](https://forms.gle/n1NzQmwjsV4xv1B2A)!
@@ -2,14 +2,14 @@ npcsh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  npcsh/_state.py,sha256=ynUucPJ81gQTh10dCq9CZJTqmUx31fXSipISd8A3gSU,90177
3
3
  npcsh/alicanto.py,sha256=-muGqd0O2m8xcFBctEavSEizWbQmzuPSdcT-3YqYBhY,45043
4
4
  npcsh/corca.py,sha256=FcZ-tyGkj2oo6q8vvpOlYnYbmc_34Yo7VEMZATpJNdE,32094
5
- npcsh/guac.py,sha256=1sONhVlh46KXXXzJ8UnT1_Kh0MVIGWoxP6O4CO9G1TY,81553
5
+ npcsh/guac.py,sha256=zJv1OEYWU9J-2T0Pf7XosTSgEOqBczla6Jn3S475THk,81569
6
6
  npcsh/mcp_helpers.py,sha256=Ktd2yXuBnLL2P7OMalgGLj84PXJSzaucjqmJVvWx6HA,12723
7
7
  npcsh/mcp_server.py,sha256=htQBSN6y3g3zVCy2ADsdBuQT9PhqaOCSQG_RS9IinWI,5853
8
8
  npcsh/npc.py,sha256=elJ494nl_pv8iDrDvBFAlmFvBdci0_CZBjZwbOjVj0c,9113
9
9
  npcsh/npcsh.py,sha256=Z_Cz3mgEJeIiY91Z-c4YDKY2tlv23RngM4YK2Gqf3Vc,8283
10
10
  npcsh/plonk.py,sha256=7w7J2bht5QXOyV2UK045nAPDmrSrTGLX-sh56KQ3-k0,14653
11
11
  npcsh/pti.py,sha256=UciiiH2Kz4ERQFy0-FX6BQEU2VxYQEUril-_Cvj76Y0,7853
12
- npcsh/routes.py,sha256=vOS7xb_0d00jNR3b6DIxpkRtzvAIjddsJLsEn-3o-eo,46622
12
+ npcsh/routes.py,sha256=jf9cTZuTxx3idTXK6lBi-04EqouGpp9jzNIrKEy_OUI,47481
13
13
  npcsh/spool.py,sha256=r0-oXkrNDbxQ5ZNHr1vSJcdmVj3jdWbz7qYcEDoSrj8,10354
14
14
  npcsh/wander.py,sha256=BiN6eYyFnEsFzo8MFLRkdZ8xS9sTKkQpjiCcy9chMcc,23225
15
15
  npcsh/yap.py,sha256=ipkY3uMDw8gNrPSZ9qJFWVQ_fXtLmQ2oz_6_WZt2hew,21097
@@ -39,35 +39,35 @@ npcsh/npc_team/jinxs/image_generation.jinx,sha256=nelAVtaQuDC_NmcENnWTp6Vr0ea6tE
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=FU71IcO9WzO5ZuR_ezUIyg82jKFfG_k_kCXNy9OlJFM,1087
42
- npcsh-1.0.24.data/data/npcsh/npc_team/alicanto.npc,sha256=y9yDY3lq8ZwxQxpnrgle8w5IJwZqvxDepZFU4OaZCtg,148
43
- npcsh-1.0.24.data/data/npcsh/npc_team/alicanto.png,sha256=A7xeMbcoKGjlkELxJEVifCEZLVWbOKZarTN5ZFJG-FM,3519858
44
- npcsh-1.0.24.data/data/npcsh/npc_team/bash_executer.jinx,sha256=5I6UbmiVItC6evHDrF559JWIIBcc1vcWyJLX44iJ2P4,728
45
- npcsh-1.0.24.data/data/npcsh/npc_team/corca.npc,sha256=HI3Bs6KlUBPMz7icF1TRE8-V3f3EdU_VxvQxEpru3L4,662
46
- npcsh-1.0.24.data/data/npcsh/npc_team/corca.png,sha256=0lF70hKu6tY-37YmIPVF2cuaPzvnQ4-UtQOzuAbKEf4,1666776
47
- npcsh-1.0.24.data/data/npcsh/npc_team/edit_file.jinx,sha256=ZQsSUXjhACxaIoRJLSbCC_EO6uGAsT4Gge-oD1tlamo,3654
48
- npcsh-1.0.24.data/data/npcsh/npc_team/foreman.npc,sha256=WqB8jLfBToGmr8c1vip1KOnTHxfXlGXwDUGnZoDMQr0,327
49
- npcsh-1.0.24.data/data/npcsh/npc_team/frederic.npc,sha256=EE2dOUItp-VKuW3ZMSHffmIEO4evjPcU2W_C4P3WXbY,362
50
- npcsh-1.0.24.data/data/npcsh/npc_team/frederic4.png,sha256=ll8uoV0npnPp5HVJWv7h0xDSeuq4pqsk_gYGBHLS0VY,1590744
51
- npcsh-1.0.24.data/data/npcsh/npc_team/guac.png,sha256=MCE7eJuEJwLJEzc9FS7lL62Mm-38jQRHkxXogPfOTuw,211470
52
- npcsh-1.0.24.data/data/npcsh/npc_team/image_generation.jinx,sha256=nelAVtaQuDC_NmcENnWTp6Vr0ea6tE2gJr-8lRG7giY,1437
53
- npcsh-1.0.24.data/data/npcsh/npc_team/internet_search.jinx,sha256=s8zVxwKFUAof_VzQrwB5dpAQdeJ6hUBkbIdRsT-I5mo,1267
54
- npcsh-1.0.24.data/data/npcsh/npc_team/kadiefa.npc,sha256=Yl5a4wrfe4F2f6Ndw_ukzlVVX7NE9g_mG-3QqJSkg_o,381
55
- npcsh-1.0.24.data/data/npcsh/npc_team/kadiefa.png,sha256=3CAwL8crKIwJko6o75Z6OYYEEM9Rk--yGzCJg7zoszg,3062528
56
- npcsh-1.0.24.data/data/npcsh/npc_team/npcsh.ctx,sha256=-jKYaPm2YbZHAGgWAXhyPIwhiNe1H1ZRFg1Zc7tHSxk,1049
57
- npcsh-1.0.24.data/data/npcsh/npc_team/npcsh_sibiji.png,sha256=9fUqgYMsSHmaH-kBTBQ7N5UCS5-eLZF94Log0O3mtFg,4544
58
- npcsh-1.0.24.data/data/npcsh/npc_team/plonk.npc,sha256=u1m2a1D512XGQ2kC3eWDAY8Y2IvpkNU73DI_CPE65UE,90
59
- npcsh-1.0.24.data/data/npcsh/npc_team/plonk.png,sha256=IU5ey-Dl4HEKlwnf75RSWNSHpF8rVqGmdbsa0deL4rQ,2727773
60
- npcsh-1.0.24.data/data/npcsh/npc_team/plonkjr.npc,sha256=It-i-BEuG0XddKk0d85onk2aJr9Pe5pLnJzNaCWaQIM,87
61
- npcsh-1.0.24.data/data/npcsh/npc_team/plonkjr.png,sha256=MqLEGwsyECUeODZIti0HQQrMMVxA6XERpW01R06NbpY,2606710
62
- npcsh-1.0.24.data/data/npcsh/npc_team/python_executor.jinx,sha256=vZz3pZaj1BnPFHMs_wpyjRc0b32JR4rLhZfulCMDF1s,398
63
- npcsh-1.0.24.data/data/npcsh/npc_team/screen_cap.jinx,sha256=FU71IcO9WzO5ZuR_ezUIyg82jKFfG_k_kCXNy9OlJFM,1087
64
- npcsh-1.0.24.data/data/npcsh/npc_team/sibiji.npc,sha256=Hb4wXKIObKKgibwnio5hLec9yd_9bKDCA87Nm2zijFA,216
65
- npcsh-1.0.24.data/data/npcsh/npc_team/sibiji.png,sha256=1dlZb7J3E62FcVo9CVOzLb8nu1bIUV7cr97nsFocHCM,35615
66
- npcsh-1.0.24.data/data/npcsh/npc_team/spool.png,sha256=LWTLkwDxXBfLuSUCX32_lo5yAmLYGsA67Xpsz-7MmWU,2876725
67
- npcsh-1.0.24.data/data/npcsh/npc_team/yap.png,sha256=_l7UbWnXJdsy4Mx-x5l9DT0R6ize3HTnkwQQnOFlI18,1548649
68
- npcsh-1.0.24.dist-info/licenses/LICENSE,sha256=IKBvAECHP-aCiJtE4cHGCE5Yl0tozYz02PomGeWS3y4,1070
69
- npcsh-1.0.24.dist-info/METADATA,sha256=fSiKmYnPbyN846SSi_9zBXbv-DUpXGvVxeuapDF-P0I,23898
70
- npcsh-1.0.24.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
71
- npcsh-1.0.24.dist-info/entry_points.txt,sha256=S5yIuGm8ZXQ4siHYgN5gs0J7bxgobSEULXf8L5HaW5o,206
72
- npcsh-1.0.24.dist-info/top_level.txt,sha256=kHSNgKMCkfjV95-DH0YSp1LLBi0HXdF3w57j7MQON3E,6
73
- npcsh-1.0.24.dist-info/RECORD,,
42
+ npcsh-1.0.26.data/data/npcsh/npc_team/alicanto.npc,sha256=y9yDY3lq8ZwxQxpnrgle8w5IJwZqvxDepZFU4OaZCtg,148
43
+ npcsh-1.0.26.data/data/npcsh/npc_team/alicanto.png,sha256=A7xeMbcoKGjlkELxJEVifCEZLVWbOKZarTN5ZFJG-FM,3519858
44
+ npcsh-1.0.26.data/data/npcsh/npc_team/bash_executer.jinx,sha256=5I6UbmiVItC6evHDrF559JWIIBcc1vcWyJLX44iJ2P4,728
45
+ npcsh-1.0.26.data/data/npcsh/npc_team/corca.npc,sha256=HI3Bs6KlUBPMz7icF1TRE8-V3f3EdU_VxvQxEpru3L4,662
46
+ npcsh-1.0.26.data/data/npcsh/npc_team/corca.png,sha256=0lF70hKu6tY-37YmIPVF2cuaPzvnQ4-UtQOzuAbKEf4,1666776
47
+ npcsh-1.0.26.data/data/npcsh/npc_team/edit_file.jinx,sha256=ZQsSUXjhACxaIoRJLSbCC_EO6uGAsT4Gge-oD1tlamo,3654
48
+ npcsh-1.0.26.data/data/npcsh/npc_team/foreman.npc,sha256=WqB8jLfBToGmr8c1vip1KOnTHxfXlGXwDUGnZoDMQr0,327
49
+ npcsh-1.0.26.data/data/npcsh/npc_team/frederic.npc,sha256=EE2dOUItp-VKuW3ZMSHffmIEO4evjPcU2W_C4P3WXbY,362
50
+ npcsh-1.0.26.data/data/npcsh/npc_team/frederic4.png,sha256=ll8uoV0npnPp5HVJWv7h0xDSeuq4pqsk_gYGBHLS0VY,1590744
51
+ npcsh-1.0.26.data/data/npcsh/npc_team/guac.png,sha256=MCE7eJuEJwLJEzc9FS7lL62Mm-38jQRHkxXogPfOTuw,211470
52
+ npcsh-1.0.26.data/data/npcsh/npc_team/image_generation.jinx,sha256=nelAVtaQuDC_NmcENnWTp6Vr0ea6tE2gJr-8lRG7giY,1437
53
+ npcsh-1.0.26.data/data/npcsh/npc_team/internet_search.jinx,sha256=s8zVxwKFUAof_VzQrwB5dpAQdeJ6hUBkbIdRsT-I5mo,1267
54
+ npcsh-1.0.26.data/data/npcsh/npc_team/kadiefa.npc,sha256=Yl5a4wrfe4F2f6Ndw_ukzlVVX7NE9g_mG-3QqJSkg_o,381
55
+ npcsh-1.0.26.data/data/npcsh/npc_team/kadiefa.png,sha256=3CAwL8crKIwJko6o75Z6OYYEEM9Rk--yGzCJg7zoszg,3062528
56
+ npcsh-1.0.26.data/data/npcsh/npc_team/npcsh.ctx,sha256=-jKYaPm2YbZHAGgWAXhyPIwhiNe1H1ZRFg1Zc7tHSxk,1049
57
+ npcsh-1.0.26.data/data/npcsh/npc_team/npcsh_sibiji.png,sha256=9fUqgYMsSHmaH-kBTBQ7N5UCS5-eLZF94Log0O3mtFg,4544
58
+ npcsh-1.0.26.data/data/npcsh/npc_team/plonk.npc,sha256=u1m2a1D512XGQ2kC3eWDAY8Y2IvpkNU73DI_CPE65UE,90
59
+ npcsh-1.0.26.data/data/npcsh/npc_team/plonk.png,sha256=IU5ey-Dl4HEKlwnf75RSWNSHpF8rVqGmdbsa0deL4rQ,2727773
60
+ npcsh-1.0.26.data/data/npcsh/npc_team/plonkjr.npc,sha256=It-i-BEuG0XddKk0d85onk2aJr9Pe5pLnJzNaCWaQIM,87
61
+ npcsh-1.0.26.data/data/npcsh/npc_team/plonkjr.png,sha256=MqLEGwsyECUeODZIti0HQQrMMVxA6XERpW01R06NbpY,2606710
62
+ npcsh-1.0.26.data/data/npcsh/npc_team/python_executor.jinx,sha256=vZz3pZaj1BnPFHMs_wpyjRc0b32JR4rLhZfulCMDF1s,398
63
+ npcsh-1.0.26.data/data/npcsh/npc_team/screen_cap.jinx,sha256=FU71IcO9WzO5ZuR_ezUIyg82jKFfG_k_kCXNy9OlJFM,1087
64
+ npcsh-1.0.26.data/data/npcsh/npc_team/sibiji.npc,sha256=Hb4wXKIObKKgibwnio5hLec9yd_9bKDCA87Nm2zijFA,216
65
+ npcsh-1.0.26.data/data/npcsh/npc_team/sibiji.png,sha256=1dlZb7J3E62FcVo9CVOzLb8nu1bIUV7cr97nsFocHCM,35615
66
+ npcsh-1.0.26.data/data/npcsh/npc_team/spool.png,sha256=LWTLkwDxXBfLuSUCX32_lo5yAmLYGsA67Xpsz-7MmWU,2876725
67
+ npcsh-1.0.26.data/data/npcsh/npc_team/yap.png,sha256=_l7UbWnXJdsy4Mx-x5l9DT0R6ize3HTnkwQQnOFlI18,1548649
68
+ npcsh-1.0.26.dist-info/licenses/LICENSE,sha256=IKBvAECHP-aCiJtE4cHGCE5Yl0tozYz02PomGeWS3y4,1070
69
+ npcsh-1.0.26.dist-info/METADATA,sha256=S1ikr2Rgz8DZVEXr3fBiGPOWKFAcQYrKWcmwg5hQFKw,25486
70
+ npcsh-1.0.26.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
71
+ npcsh-1.0.26.dist-info/entry_points.txt,sha256=S5yIuGm8ZXQ4siHYgN5gs0J7bxgobSEULXf8L5HaW5o,206
72
+ npcsh-1.0.26.dist-info/top_level.txt,sha256=kHSNgKMCkfjV95-DH0YSp1LLBi0HXdF3w57j7MQON3E,6
73
+ npcsh-1.0.26.dist-info/RECORD,,
File without changes