npcsh 1.1.18__py3-none-any.whl → 1.1.20__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 (165) hide show
  1. npcsh/_state.py +19 -7
  2. npcsh/benchmark/npcsh_agent.py +47 -16
  3. npcsh/config.py +1 -0
  4. npcsh/diff_viewer.py +452 -0
  5. npcsh/npc_team/jinxs/bin/config_tui.jinx +300 -0
  6. npcsh/npc_team/jinxs/bin/jinxs.jinx +407 -0
  7. npcsh/npc_team/jinxs/bin/kg.jinx +941 -0
  8. npcsh/npc_team/jinxs/bin/memories.jinx +317 -0
  9. npcsh/npc_team/jinxs/bin/models.jinx +343 -0
  10. npcsh/npc_team/jinxs/bin/nql.jinx +380 -50
  11. npcsh/npc_team/jinxs/bin/setup.jinx +241 -0
  12. npcsh/npc_team/jinxs/bin/sync.jinx +143 -150
  13. npcsh/npc_team/jinxs/bin/team.jinx +504 -0
  14. npcsh/npc_team/jinxs/incognide/add_tab.jinx +1 -1
  15. npcsh/npc_team/jinxs/incognide/close_pane.jinx +1 -1
  16. npcsh/npc_team/jinxs/incognide/close_tab.jinx +1 -1
  17. npcsh/npc_team/jinxs/incognide/confirm.jinx +1 -1
  18. npcsh/npc_team/jinxs/incognide/focus_pane.jinx +1 -1
  19. npcsh/npc_team/jinxs/incognide/list_panes.jinx +1 -1
  20. npcsh/npc_team/jinxs/incognide/navigate.jinx +1 -1
  21. npcsh/npc_team/jinxs/incognide/notify.jinx +1 -1
  22. npcsh/npc_team/jinxs/incognide/open_pane.jinx +1 -1
  23. npcsh/npc_team/jinxs/incognide/read_pane.jinx +1 -1
  24. npcsh/npc_team/jinxs/incognide/run_terminal.jinx +1 -1
  25. npcsh/npc_team/jinxs/incognide/send_message.jinx +1 -1
  26. npcsh/npc_team/jinxs/incognide/split_pane.jinx +1 -1
  27. npcsh/npc_team/jinxs/incognide/switch_npc.jinx +1 -1
  28. npcsh/npc_team/jinxs/incognide/switch_tab.jinx +1 -1
  29. npcsh/npc_team/jinxs/incognide/write_file.jinx +1 -1
  30. npcsh/npc_team/jinxs/incognide/zen_mode.jinx +1 -1
  31. npcsh/npc_team/jinxs/lib/core/search/db_search.jinx +1 -1
  32. npcsh/npc_team/jinxs/lib/core/search/file_search.jinx +1 -1
  33. npcsh/npc_team/jinxs/lib/core/search/kg_search.jinx +1 -1
  34. npcsh/npc_team/jinxs/lib/core/search/mem_search.jinx +1 -1
  35. npcsh/npc_team/jinxs/lib/core/search/web_search.jinx +1 -1
  36. npcsh/npc_team/jinxs/lib/research/paper_search.jinx +1 -1
  37. npcsh/npc_team/jinxs/lib/research/semantic_scholar.jinx +1 -1
  38. npcsh/npc_team/jinxs/modes/alicanto.jinx +1 -1
  39. npcsh/npc_team/jinxs/modes/arxiv.jinx +1 -1
  40. npcsh/npc_team/jinxs/modes/corca.jinx +1 -1
  41. npcsh/npc_team/jinxs/modes/guac.jinx +4 -6
  42. npcsh/npc_team/jinxs/modes/plonk.jinx +1 -1
  43. npcsh/npc_team/jinxs/modes/pti.jinx +1 -1
  44. npcsh/npc_team/jinxs/modes/reattach.jinx +1 -1
  45. npcsh/npc_team/jinxs/modes/spool.jinx +1 -1
  46. npcsh/npc_team/jinxs/modes/wander.jinx +1 -1
  47. npcsh/routes.py +8 -2
  48. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/add_tab.jinx +1 -1
  49. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/alicanto.jinx +1 -1
  50. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/arxiv.jinx +1 -1
  51. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/close_pane.jinx +1 -1
  52. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/close_tab.jinx +1 -1
  53. npcsh-1.1.20.data/data/npcsh/npc_team/config_tui.jinx +300 -0
  54. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/confirm.jinx +1 -1
  55. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/corca.jinx +1 -1
  56. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/db_search.jinx +1 -1
  57. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/file_search.jinx +1 -1
  58. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/focus_pane.jinx +1 -1
  59. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/guac.jinx +4 -6
  60. npcsh-1.1.20.data/data/npcsh/npc_team/jinxs.jinx +407 -0
  61. npcsh-1.1.20.data/data/npcsh/npc_team/kg.jinx +941 -0
  62. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/kg_search.jinx +1 -1
  63. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/list_panes.jinx +1 -1
  64. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/mem_search.jinx +1 -1
  65. npcsh-1.1.20.data/data/npcsh/npc_team/memories.jinx +317 -0
  66. npcsh-1.1.20.data/data/npcsh/npc_team/models.jinx +343 -0
  67. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/navigate.jinx +1 -1
  68. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/notify.jinx +1 -1
  69. npcsh-1.1.20.data/data/npcsh/npc_team/nql.jinx +471 -0
  70. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/open_pane.jinx +1 -1
  71. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/paper_search.jinx +1 -1
  72. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/plonk.jinx +1 -1
  73. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/pti.jinx +1 -1
  74. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/read_pane.jinx +1 -1
  75. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/reattach.jinx +1 -1
  76. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/run_terminal.jinx +1 -1
  77. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/semantic_scholar.jinx +1 -1
  78. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/send_message.jinx +1 -1
  79. npcsh-1.1.20.data/data/npcsh/npc_team/setup.jinx +241 -0
  80. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/split_pane.jinx +1 -1
  81. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/spool.jinx +1 -1
  82. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/switch_npc.jinx +1 -1
  83. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/switch_tab.jinx +1 -1
  84. npcsh-1.1.20.data/data/npcsh/npc_team/sync.jinx +223 -0
  85. npcsh-1.1.20.data/data/npcsh/npc_team/team.jinx +504 -0
  86. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/wander.jinx +1 -1
  87. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/web_search.jinx +1 -1
  88. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/write_file.jinx +1 -1
  89. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/zen_mode.jinx +1 -1
  90. {npcsh-1.1.18.dist-info → npcsh-1.1.20.dist-info}/METADATA +21 -14
  91. npcsh-1.1.20.dist-info/RECORD +248 -0
  92. {npcsh-1.1.18.dist-info → npcsh-1.1.20.dist-info}/entry_points.txt +7 -0
  93. npcsh/npc_team/jinxs/lib/utils/jinxs.jinx +0 -331
  94. npcsh-1.1.18.data/data/npcsh/npc_team/jinxs.jinx +0 -331
  95. npcsh-1.1.18.data/data/npcsh/npc_team/nql.jinx +0 -141
  96. npcsh-1.1.18.data/data/npcsh/npc_team/sync.jinx +0 -230
  97. npcsh-1.1.18.dist-info/RECORD +0 -235
  98. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/alicanto.npc +0 -0
  99. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/alicanto.png +0 -0
  100. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/benchmark.jinx +0 -0
  101. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/browser_action.jinx +0 -0
  102. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/browser_screenshot.jinx +0 -0
  103. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/build.jinx +0 -0
  104. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/chat.jinx +0 -0
  105. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/click.jinx +0 -0
  106. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/close_browser.jinx +0 -0
  107. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/cmd.jinx +0 -0
  108. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/compile.jinx +0 -0
  109. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/compress.jinx +0 -0
  110. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/convene.jinx +0 -0
  111. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/corca.npc +0 -0
  112. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/corca.png +0 -0
  113. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/corca_example.png +0 -0
  114. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/delegate.jinx +0 -0
  115. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/edit_file.jinx +0 -0
  116. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/frederic.npc +0 -0
  117. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/frederic4.png +0 -0
  118. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/guac.npc +0 -0
  119. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/guac.png +0 -0
  120. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/help.jinx +0 -0
  121. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/incognide.jinx +0 -0
  122. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/init.jinx +0 -0
  123. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/kadiefa.npc +0 -0
  124. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/kadiefa.png +0 -0
  125. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/key_press.jinx +0 -0
  126. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/launch_app.jinx +0 -0
  127. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/load_file.jinx +0 -0
  128. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/mem_review.jinx +0 -0
  129. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/npcsh.ctx +0 -0
  130. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/npcsh_sibiji.png +0 -0
  131. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/open_browser.jinx +0 -0
  132. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/ots.jinx +0 -0
  133. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/paste.jinx +0 -0
  134. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/plonk.npc +0 -0
  135. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/plonk.png +0 -0
  136. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/plonkjr.npc +0 -0
  137. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/plonkjr.png +0 -0
  138. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/python.jinx +0 -0
  139. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/roll.jinx +0 -0
  140. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/sample.jinx +0 -0
  141. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/screenshot.jinx +0 -0
  142. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/search.jinx +0 -0
  143. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/serve.jinx +0 -0
  144. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/set.jinx +0 -0
  145. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/sh.jinx +0 -0
  146. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/shh.jinx +0 -0
  147. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/sibiji.npc +0 -0
  148. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/sibiji.png +0 -0
  149. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/sleep.jinx +0 -0
  150. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/spool.png +0 -0
  151. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/sql.jinx +0 -0
  152. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/switch.jinx +0 -0
  153. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/switches.jinx +0 -0
  154. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/teamviz.jinx +0 -0
  155. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/trigger.jinx +0 -0
  156. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/type_text.jinx +0 -0
  157. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/usage.jinx +0 -0
  158. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/verbose.jinx +0 -0
  159. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/vixynt.jinx +0 -0
  160. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/wait.jinx +0 -0
  161. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/yap.jinx +0 -0
  162. {npcsh-1.1.18.data → npcsh-1.1.20.data}/data/npcsh/npc_team/yap.png +0 -0
  163. {npcsh-1.1.18.dist-info → npcsh-1.1.20.dist-info}/WHEEL +0 -0
  164. {npcsh-1.1.18.dist-info → npcsh-1.1.20.dist-info}/licenses/LICENSE +0 -0
  165. {npcsh-1.1.18.dist-info → npcsh-1.1.20.dist-info}/top_level.txt +0 -0
@@ -1,230 +0,0 @@
1
- jinx_name: "sync"
2
- description: "Sync npc_team files from the npcsh repo to ~/.npcsh/npc_team. Detects local modifications before overwriting."
3
- inputs:
4
- - force: ""
5
- - dry_run: ""
6
- - jinxs: ""
7
- - npcs: ""
8
- - ctx: ""
9
- - images: ""
10
- steps:
11
- - name: "sync_npc_team"
12
- engine: "python"
13
- code: |
14
- import os
15
- import hashlib
16
- import shutil
17
- from pathlib import Path
18
- from datetime import datetime
19
-
20
- force = context.get('force', False)
21
- dry_run = context.get('dry_run', False)
22
- sync_jinxs = context.get('jinxs', False)
23
- sync_npcs = context.get('npcs', False)
24
- sync_ctx = context.get('ctx', False)
25
- sync_images = context.get('images', False)
26
-
27
- # Convert string flags to boolean
28
- def to_bool(val):
29
- if isinstance(val, bool):
30
- return val
31
- if isinstance(val, str):
32
- return val.lower() in ('true', '1', 'yes', 'y')
33
- return bool(val)
34
-
35
- force = to_bool(force)
36
- dry_run = to_bool(dry_run)
37
- sync_jinxs = to_bool(sync_jinxs)
38
- sync_npcs = to_bool(sync_npcs)
39
- sync_ctx = to_bool(sync_ctx)
40
- sync_images = to_bool(sync_images)
41
-
42
- # If none specified, sync all
43
- sync_all = not (sync_jinxs or sync_npcs or sync_ctx or sync_images)
44
-
45
- # Find the repo npc_team directory
46
- # Check common locations
47
- possible_repo_paths = [
48
- Path.home() / "npcww" / "npc-core" / "npcsh" / "npcsh" / "npc_team",
49
- Path.home() / "npc-core" / "npcsh" / "npcsh" / "npc_team",
50
- Path.home() / "repos" / "npcsh" / "npcsh" / "npc_team",
51
- Path.home() / "Projects" / "npcsh" / "npcsh" / "npc_team",
52
- ]
53
-
54
- # Also check if we can find it via pip show
55
- try:
56
- import subprocess
57
- result = subprocess.run(['pip', 'show', 'npcsh', '-f'], capture_output=True, text=True)
58
- if result.returncode == 0:
59
- for line in result.stdout.split('\n'):
60
- if line.startswith('Location:'):
61
- pip_path = Path(line.split(':', 1)[1].strip()) / "npcsh" / "npc_team"
62
- if pip_path.exists():
63
- possible_repo_paths.insert(0, pip_path)
64
- except:
65
- pass
66
-
67
- repo_npc_team = None
68
- for path in possible_repo_paths:
69
- if path.exists() and path.is_dir():
70
- repo_npc_team = path
71
- break
72
-
73
- local_npc_team = Path.home() / ".npcsh" / "npc_team"
74
-
75
- if not repo_npc_team:
76
- context['output'] = "Error: Could not find npcsh repo npc_team directory.\nSearched:\n" + "\n".join(f" - {p}" for p in possible_repo_paths)
77
- exit()
78
-
79
- if not local_npc_team.exists():
80
- context['output'] = f"Error: Local npc_team directory not found at {local_npc_team}"
81
- exit()
82
-
83
- def get_file_hash(filepath):
84
- """Get MD5 hash of file contents."""
85
- try:
86
- with open(filepath, 'rb') as f:
87
- return hashlib.md5(f.read()).hexdigest()
88
- except:
89
- return None
90
-
91
- def get_files_recursive(base_path, extensions=None):
92
- """Get all files recursively, optionally filtered by extensions."""
93
- files = []
94
- for root, dirs, filenames in os.walk(base_path):
95
- # Skip .git directories
96
- dirs[:] = [d for d in dirs if d != '.git']
97
- for filename in filenames:
98
- if filename.startswith('.'):
99
- continue
100
- if extensions and not any(filename.endswith(ext) for ext in extensions):
101
- continue
102
- full_path = Path(root) / filename
103
- rel_path = full_path.relative_to(base_path)
104
- files.append(rel_path)
105
- return files
106
-
107
- # Build list of extensions to sync based on flags
108
- sync_extensions = []
109
- if sync_all or sync_npcs:
110
- sync_extensions.append('.npc')
111
- if sync_all or sync_ctx:
112
- sync_extensions.append('.ctx')
113
- if sync_all or sync_jinxs:
114
- sync_extensions.append('.jinx')
115
- if sync_all or sync_images:
116
- sync_extensions.extend(['.png', '.jpg', '.jpeg'])
117
-
118
- # Get files from repo
119
- repo_files = get_files_recursive(repo_npc_team, sync_extensions)
120
-
121
- output_lines = []
122
- output_lines.append(f"Syncing from: {repo_npc_team}")
123
- output_lines.append(f"Syncing to: {local_npc_team}")
124
-
125
- # Show what's being synced
126
- sync_types = []
127
- if sync_all:
128
- sync_types.append("all")
129
- else:
130
- if sync_npcs: sync_types.append("npcs")
131
- if sync_ctx: sync_types.append("ctx")
132
- if sync_jinxs: sync_types.append("jinxs")
133
- if sync_images: sync_types.append("images")
134
- output_lines.append(f"Syncing: {', '.join(sync_types)}")
135
-
136
- if dry_run:
137
- output_lines.append("\n[DRY RUN - No changes will be made]\n")
138
- output_lines.append("")
139
-
140
- new_files = []
141
- updated_files = []
142
- modified_locally = []
143
- unchanged_files = []
144
-
145
- for rel_path in repo_files:
146
- repo_file = repo_npc_team / rel_path
147
- local_file = local_npc_team / rel_path
148
-
149
- if not local_file.exists():
150
- new_files.append(rel_path)
151
- else:
152
- repo_hash = get_file_hash(repo_file)
153
- local_hash = get_file_hash(local_file)
154
-
155
- if repo_hash == local_hash:
156
- unchanged_files.append(rel_path)
157
- else:
158
- # Check if local file is newer (possibly modified by user)
159
- repo_mtime = repo_file.stat().st_mtime
160
- local_mtime = local_file.stat().st_mtime
161
-
162
- if local_mtime > repo_mtime:
163
- modified_locally.append((rel_path, local_mtime, repo_mtime))
164
- else:
165
- updated_files.append(rel_path)
166
-
167
- # Report findings
168
- if new_files:
169
- output_lines.append(f"New files to add ({len(new_files)}):")
170
- for f in new_files:
171
- output_lines.append(f" + {f}")
172
- output_lines.append("")
173
-
174
- if updated_files:
175
- output_lines.append(f"Files to update ({len(updated_files)}):")
176
- for f in updated_files:
177
- output_lines.append(f" ~ {f}")
178
- output_lines.append("")
179
-
180
- if modified_locally:
181
- output_lines.append(f"Locally modified files ({len(modified_locally)}):")
182
- for f, local_t, repo_t in modified_locally:
183
- local_dt = datetime.fromtimestamp(local_t).strftime('%Y-%m-%d %H:%M')
184
- repo_dt = datetime.fromtimestamp(repo_t).strftime('%Y-%m-%d %H:%M')
185
- output_lines.append(f" ! {f}")
186
- output_lines.append(f" local: {local_dt} repo: {repo_dt}")
187
- if not force:
188
- output_lines.append(" (use --force to overwrite these)")
189
- output_lines.append("")
190
-
191
- if unchanged_files:
192
- output_lines.append(f"Already up to date: {len(unchanged_files)} files")
193
- output_lines.append("")
194
-
195
- # Perform sync if not dry run
196
- if not dry_run:
197
- synced = 0
198
- skipped = 0
199
-
200
- # Sync new files
201
- for rel_path in new_files:
202
- src = repo_npc_team / rel_path
203
- dst = local_npc_team / rel_path
204
- dst.parent.mkdir(parents=True, exist_ok=True)
205
- shutil.copy2(src, dst)
206
- synced += 1
207
-
208
- # Sync updated files
209
- for rel_path in updated_files:
210
- src = repo_npc_team / rel_path
211
- dst = local_npc_team / rel_path
212
- dst.parent.mkdir(parents=True, exist_ok=True)
213
- shutil.copy2(src, dst)
214
- synced += 1
215
-
216
- # Handle locally modified files
217
- for rel_path, _, _ in modified_locally:
218
- if force:
219
- src = repo_npc_team / rel_path
220
- dst = local_npc_team / rel_path
221
- shutil.copy2(src, dst)
222
- synced += 1
223
- else:
224
- skipped += 1
225
-
226
- output_lines.append(f"Synced: {synced} files")
227
- if skipped:
228
- output_lines.append(f"Skipped: {skipped} locally modified files")
229
-
230
- context['output'] = "\n".join(output_lines)
@@ -1,235 +0,0 @@
1
- npcsh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- npcsh/_state.py,sha256=jnVNLhLYKL2MLrP2MEzPuEPmkGxNLRSjW4XBR3eYygQ,151307
3
- npcsh/alicanto.py,sha256=xIm2Om1QlTcckvh5NQqrs-2HrEXF378dQcoOD7FRjhk,2392
4
- npcsh/build.py,sha256=xYYyy3GD0iLWGpZ3rqrephYjYW1Bt39xZyKqXrWSzSo,7663
5
- npcsh/completion.py,sha256=IOjt7MHnIQgeVub6eJ0q3kooRfYtvRjgUXQHtH8Shjw,5573
6
- npcsh/config.py,sha256=obD8edsFUD2r5-hZpHNhQTS--88cnHdvllNOVTNWDBU,5459
7
- npcsh/conversation_viewer.py,sha256=ynP0S1WP6tzM8K-ZRGHAQ94z7dMBFkvNbczSUO2fB0g,12850
8
- npcsh/corca.py,sha256=jlrK7QnO08dxPqJR8uto9ebceLIPFV3f3QjOhnPFxkc,1558
9
- npcsh/execution.py,sha256=Rd9Qt365CI_9S9-IvRBGEYImlMsM7hb1CkTVs-445fs,5259
10
- npcsh/guac.py,sha256=d4n16mCqKkJ5JrQM0CxBgTtbUY8rac7qsMtjXvUh12k,1332
11
- npcsh/mcp_helpers.py,sha256=2whJgdwIYhAFzgvskya2_uJkUyqVWC3rLHwYfVolHzg,11164
12
- npcsh/mcp_server.py,sha256=9gVZ9rqUaOgGkbHlcU567JgrwKqnnDucDVtB1KufgbY,8434
13
- npcsh/npc.py,sha256=NPfkEyRv6fOtlPI1WHfQr5Ofetc2hRcKl82i_CKqcKM,11641
14
- npcsh/npcsh.py,sha256=OECs5OBFPjVUAxek5pPfNB0zBfqhJpJwI0IR0e8Gklw,18463
15
- npcsh/parsing.py,sha256=eGATFUkDvHu5pVbh0RswhWEmGjcIsLaDwgxTtPbC9sk,2943
16
- npcsh/plonk.py,sha256=MUGunZcSq_7LWBzkrJp3SoEYt75szsoXtZfirsQw3EM,1715
17
- npcsh/pti.py,sha256=8IyU-kCRwYoBxB9877lqLpy87-DEoWMg2CjiJTj9Hhg,1773
18
- npcsh/routes.py,sha256=yBxwSoDcfk67y1lAPZ-FGt28JnI9gDY9OyijRYgWnk8,4904
19
- npcsh/spool.py,sha256=b-AAZdk_fDk7vA-08wc-LO0FJt-yigcUU3ZUXF41V4E,1498
20
- npcsh/ui.py,sha256=owFTZ7KRvWzyMaEYLfwJVv08hNmg9Yqj5RKNTVIcLeM,7281
21
- npcsh/wander.py,sha256=zslcHfH-mAmBlSgc1JVNOlss0Ig85hzNkpmBW9W8JYM,2278
22
- npcsh/yap.py,sha256=QhIr0MyHjznbqfJl9CK93EccN4E7jnlp1QpRzkYc7_c,1583
23
- npcsh/benchmark/__init__.py,sha256=ljV4XCxPBXYNewcqiGx3oExMm2H_sgCwinDgc4xQOZE,898
24
- npcsh/benchmark/npcsh_agent.py,sha256=W1g2mNhmmmCn_tQcWSP0IfnpAbr9W2TIQdWyvmxppqQ,10446
25
- npcsh/benchmark/runner.py,sha256=dIbPds2V3xTItvTHIGvi8D4cqYNi7uhyvBhjxYWGJsY,20234
26
- npcsh/benchmark/templates/install-npcsh.sh.j2,sha256=pkhszKhK9AMO6_KYBE-G2vzj4UISzPGy1vFnyILlCdI,977
27
- npcsh/npc_team/alicanto.npc,sha256=MjCeCKhC4OqKO0Rxa5U_SLEui7Lh8M2hXabcVfqEDhc,1455
28
- npcsh/npc_team/alicanto.png,sha256=A7xeMbcoKGjlkELxJEVifCEZLVWbOKZarTN5ZFJG-FM,3519858
29
- npcsh/npc_team/corca.npc,sha256=Iu9bRD_OFVYQVyn0PLB_Kp91qzcHiHyo7VwmkXz2S-0,1667
30
- npcsh/npc_team/corca.png,sha256=0lF70hKu6tY-37YmIPVF2cuaPzvnQ4-UtQOzuAbKEf4,1666776
31
- npcsh/npc_team/corca_example.png,sha256=p0lVTuwaps4-F-3k4wgp9d897YPyn6FGZugtXMUQjj8,28777
32
- npcsh/npc_team/frederic.npc,sha256=1-TcFRWm5RsSnLoeZG_SN4JUU0Ynu6CzV-h6Wfasjto,1945
33
- npcsh/npc_team/frederic4.png,sha256=ll8uoV0npnPp5HVJWv7h0xDSeuq4pqsk_gYGBHLS0VY,1590744
34
- npcsh/npc_team/guac.npc,sha256=bOMEMXxvL4B-xdGqtq7hWf_gZpdMlo4OqER7c9iBsiM,797
35
- npcsh/npc_team/guac.png,sha256=MCE7eJuEJwLJEzc9FS7lL62Mm-38jQRHkxXogPfOTuw,211470
36
- npcsh/npc_team/kadiefa.npc,sha256=tg9YZ3dTlXS8CIEb544G5UYvGndPhgdlQoLWRV5j-JY,1758
37
- npcsh/npc_team/kadiefa.png,sha256=3CAwL8crKIwJko6o75Z6OYYEEM9Rk--yGzCJg7zoszg,3062528
38
- npcsh/npc_team/npcsh.ctx,sha256=-jKYaPm2YbZHAGgWAXhyPIwhiNe1H1ZRFg1Zc7tHSxk,1049
39
- npcsh/npc_team/npcsh_sibiji.png,sha256=9fUqgYMsSHmaH-kBTBQ7N5UCS5-eLZF94Log0O3mtFg,4544
40
- npcsh/npc_team/plonk.npc,sha256=z2fd5U0qaymiqHvkunQxCGQ1N2Mx6DMeErcltrJWrqw,1341
41
- npcsh/npc_team/plonk.png,sha256=IU5ey-Dl4HEKlwnf75RSWNSHpF8rVqGmdbsa0deL4rQ,2727773
42
- npcsh/npc_team/plonkjr.npc,sha256=umvWEigYLJBzzqSpF70lbf75612q8LxxGeYHT1Oq21Q,1568
43
- npcsh/npc_team/plonkjr.png,sha256=MqLEGwsyECUeODZIti0HQQrMMVxA6XERpW01R06NbpY,2606710
44
- npcsh/npc_team/sibiji.npc,sha256=iYv7KXULbyWLPWhFwM7sNbMT4RNHWMvl10bdzmJdRO4,1624
45
- npcsh/npc_team/sibiji.png,sha256=1dlZb7J3E62FcVo9CVOzLb8nu1bIUV7cr97nsFocHCM,35615
46
- npcsh/npc_team/spool.png,sha256=LWTLkwDxXBfLuSUCX32_lo5yAmLYGsA67Xpsz-7MmWU,2876725
47
- npcsh/npc_team/yap.png,sha256=_l7UbWnXJdsy4Mx-x5l9DT0R6ize3HTnkwQQnOFlI18,1548649
48
- npcsh/npc_team/jinxs/bin/benchmark.jinx,sha256=W4sMNdjmv1ZZSu1ynsm7GDeTd5mTfhrZ51-TBmZQpYg,6101
49
- npcsh/npc_team/jinxs/bin/nql.jinx,sha256=Ekk0fnFf1USjWbtfFX0i9TE5v9ST4vhyhBTswl4AftU,5562
50
- npcsh/npc_team/jinxs/bin/roll.jinx,sha256=Yp9Hg6_aMfQ1366-kKJ2gLjxXyAauoolRXtJva3KUOg,2172
51
- npcsh/npc_team/jinxs/bin/sample.jinx,sha256=0q-Iw7KZEp6fkqjGSy_9onvtqhxmtjDG_v55uA4J7K0,1948
52
- npcsh/npc_team/jinxs/bin/sync.jinx,sha256=YxNnn7L_dsH1AMeBrnm7S3Q99cOIvDqg_pNBteVlhAw,8261
53
- npcsh/npc_team/jinxs/bin/vixynt.jinx,sha256=Zv56WANlzXcuT1PcaftkGcKnHr94PaA80WvN25O8pS8,4284
54
- npcsh/npc_team/jinxs/incognide/add_tab.jinx,sha256=yUS9t9haq-Zd02zuD_MvUuGHKX1AaLuWwRtVgqPpsno,233
55
- npcsh/npc_team/jinxs/incognide/close_pane.jinx,sha256=GjygVyU0-2Wqzwo6H9QUoMXuqsk5Y9u83gGTHJwe8-8,271
56
- npcsh/npc_team/jinxs/incognide/close_tab.jinx,sha256=gCcKBsNUPNKP5JMRcsVd5AZlNnwVtDy26sQBB72cxRc,234
57
- npcsh/npc_team/jinxs/incognide/confirm.jinx,sha256=b0vOQ7CuIxwTHBibJohFQAM23y4923PmmvgHHIivgRE,257
58
- npcsh/npc_team/jinxs/incognide/focus_pane.jinx,sha256=B43rr2brCiP5uX7-90piLeXE5wJkZalw4tINsFuGnZE,229
59
- npcsh/npc_team/jinxs/incognide/incognide.jinx,sha256=0lSYUS7dVmfi4hGS0SiBg5LlAuNHE8qlrgU7QFNAmtQ,2231
60
- npcsh/npc_team/jinxs/incognide/list_panes.jinx,sha256=k__AWJk030ub0COms-6maT1KoQXSmOmSy6wIgxw8Yys,262
61
- npcsh/npc_team/jinxs/incognide/navigate.jinx,sha256=gGarwSCn0wg83PRyTf_0NC7yiDykDsExGpSn02nIZZI,240
62
- npcsh/npc_team/jinxs/incognide/notify.jinx,sha256=4LqWwjGkjTzAZCRSY_WenLJ9Ks0NQpk4s3zCbnYhNNo,236
63
- npcsh/npc_team/jinxs/incognide/open_pane.jinx,sha256=h9lzDoyAairUd6QDb7B9Fx9ukJeO55j7i1tgBJLbSR4,471
64
- npcsh/npc_team/jinxs/incognide/read_pane.jinx,sha256=YAM7UTUVZCZIPfvEgb3OnpG9J9-9rLOSOgubtnxmsG8,326
65
- npcsh/npc_team/jinxs/incognide/run_terminal.jinx,sha256=1wZJ8S5Qg6TSZ8W-dA44DLB77yy2gKjym9FEy5eRcrM,243
66
- npcsh/npc_team/jinxs/incognide/send_message.jinx,sha256=o9fqnVSTGmU4QnT9TZoVIXjLdfz7dPK1oOav8zxi5ok,236
67
- npcsh/npc_team/jinxs/incognide/split_pane.jinx,sha256=leYfKbeIksfALWr23LAQbCRijXshiSkoMMLNR1Gx5dg,290
68
- npcsh/npc_team/jinxs/incognide/switch_npc.jinx,sha256=H4kq-DXcotJ4l-vvO8LbkCaung5XtoWZqJEgGRuUa60,241
69
- npcsh/npc_team/jinxs/incognide/switch_tab.jinx,sha256=4Gd4CR40oxUX3JKCrPaFqIWRzv-TgSWzWzLAdBNPIxw,239
70
- npcsh/npc_team/jinxs/incognide/write_file.jinx,sha256=E8AIpUN-I8PVv44S-_EF4ToTV0PbwYSZhn7DyaNRAd8,285
71
- npcsh/npc_team/jinxs/incognide/zen_mode.jinx,sha256=BqPPUJ1PmeJxo76Ujr1p70oJWYbq56Jjv3VML-zqBq4,228
72
- npcsh/npc_team/jinxs/lib/browser/browser_action.jinx,sha256=OtYK2rnpmjYPk2vZcD5J761XsXVuK6crV7NNGcMQzIg,9201
73
- npcsh/npc_team/jinxs/lib/browser/browser_screenshot.jinx,sha256=rch0IHithrcFb-bLuMcnMAxsn65PKJVZEOhLyAgJc8k,1166
74
- npcsh/npc_team/jinxs/lib/browser/close_browser.jinx,sha256=D0-sIQCTt3TEnUpr6SIWuhQOkJ6eyzhJnvYtYqbg1UM,322
75
- npcsh/npc_team/jinxs/lib/browser/open_browser.jinx,sha256=AJ4ZysHzdNIghSpu2cTcbRvio1KwV4yzjnyAvAragr4,1656
76
- npcsh/npc_team/jinxs/lib/computer_use/click.jinx,sha256=uNJ66ZjIQ-0XflzuK3yGqNd7ApommWPIVL2pURhaRjY,585
77
- npcsh/npc_team/jinxs/lib/computer_use/key_press.jinx,sha256=PQWf0BsYDddwF3_bgdRJpH_pjUWlWtABDyiK_v26Dj0,832
78
- npcsh/npc_team/jinxs/lib/computer_use/launch_app.jinx,sha256=G3KRSKgBbCPiF9WwrkPtNFK7Pb2xu0TFCY98YmMGD50,1187
79
- npcsh/npc_team/jinxs/lib/computer_use/screenshot.jinx,sha256=jVU1u-MH_rW6haAHLO3FrikNgeEKAQpUY962pPM8epc,657
80
- npcsh/npc_team/jinxs/lib/computer_use/trigger.jinx,sha256=VVCnkpYMicq85YA_XQewLvWBl3ctsfObRCwQH9wLCfc,2341
81
- npcsh/npc_team/jinxs/lib/computer_use/type_text.jinx,sha256=JDCkm2bCV3gk08hrfu5pGYynpNoMLPZWGyfjz7fQhUo,720
82
- npcsh/npc_team/jinxs/lib/computer_use/wait.jinx,sha256=Jx-HdmMD7p5vdsNG3FXiZyRpKoFRHsmylxH6TMNznac,494
83
- npcsh/npc_team/jinxs/lib/core/chat.jinx,sha256=QXIh4OIbLKsZISNa0URFkczUFpzkKB2YDNfWPD1Stk4,1397
84
- npcsh/npc_team/jinxs/lib/core/cmd.jinx,sha256=sdmhXlduW2CCer4gUb3xnGN3j85y8GcOA6uLknir6lQ,1398
85
- npcsh/npc_team/jinxs/lib/core/compress.jinx,sha256=zFYcGyDb4KBhpE5E2EPZZ3c01pgKI5-CnlQOl7lxfn8,6563
86
- npcsh/npc_team/jinxs/lib/core/edit_file.jinx,sha256=L31cjWFIlTU4PWOAoZTV1SaCT6qkuY_JIOsR9i5fa1U,3707
87
- npcsh/npc_team/jinxs/lib/core/load_file.jinx,sha256=Dq2982ZJkbSrM75O8YgLeGRnHdWl0AfEIYkj9RkNMLg,1271
88
- npcsh/npc_team/jinxs/lib/core/ots.jinx,sha256=1boaqSw1kb_Y5WJ28c22a3CiHkANzPIW9tTF9STs_Fg,2375
89
- npcsh/npc_team/jinxs/lib/core/paste.jinx,sha256=bycgMzeYFHl3-TN4YYDyasbNe22hEgFGMOmYoMWFgWI,4957
90
- npcsh/npc_team/jinxs/lib/core/python.jinx,sha256=lFJubdPVlGxSuUKCxsxjYG4_dnX2ATn8U9ChYKRmL5Q,389
91
- npcsh/npc_team/jinxs/lib/core/search.jinx,sha256=ZdW4wK_jyCKAQv7h-WRe1tEtgHxr3AHqPdZ60jfRs_A,1236
92
- npcsh/npc_team/jinxs/lib/core/sh.jinx,sha256=RzpvJ0f3tmmrl7W8mxKBaOFtjmKuEXQjhKYYF_EaeyQ,844
93
- npcsh/npc_team/jinxs/lib/core/sleep.jinx,sha256=dcEDGe6v53XzVoya2s7ru3ewJE2iKZ38DJLfnYfODT8,5440
94
- npcsh/npc_team/jinxs/lib/core/sql.jinx,sha256=7cAaLqr0A8vWn7QIVDzvqArwB0XmWOI6JPUVcfeGcWk,689
95
- npcsh/npc_team/jinxs/lib/core/search/db_search.jinx,sha256=cf79Kpl9y_fNLeM4gDzwhdy0xuup_4eH0Q556UCNfbA,17480
96
- npcsh/npc_team/jinxs/lib/core/search/file_search.jinx,sha256=nwxch-VD48-Y8tm_8xirxVVBsV7-bKeYDQFxL2m5dlQ,16421
97
- npcsh/npc_team/jinxs/lib/core/search/kg_search.jinx,sha256=iHFVJUl32BjtOnpQz2OfxS6doh10AjMp0aBm73GmlPs,21118
98
- npcsh/npc_team/jinxs/lib/core/search/mem_review.jinx,sha256=glxH4xySb6YEEdqlgqBTQPXiVJ2iN9LKrb2ZczM7P-0,2478
99
- npcsh/npc_team/jinxs/lib/core/search/mem_search.jinx,sha256=tJ5AvpD7X_nKy0_x_8si6_8ASs6fFcCvbnpN9ZDhCQc,19983
100
- npcsh/npc_team/jinxs/lib/core/search/web_search.jinx,sha256=YZmiPHqpxcUCYmMI7UPBhjf1WBoz_DUk5b7F0qF-FMk,13438
101
- npcsh/npc_team/jinxs/lib/orchestration/convene.jinx,sha256=W4-eRFHXpJe7Bt-8uC79wWygj4KUv15DNnGMJA1gJXA,8828
102
- npcsh/npc_team/jinxs/lib/orchestration/delegate.jinx,sha256=wsFBQfhcAT2o-hg05U_HGhHcJyDWjpdlRJc0g3iE40I,8017
103
- npcsh/npc_team/jinxs/lib/research/paper_search.jinx,sha256=Y2jHwYyEBYWG9G0bwQ01fntaJs5l91iAqfYCpKNgjrA,20609
104
- npcsh/npc_team/jinxs/lib/research/semantic_scholar.jinx,sha256=ExX-TZ5CPzt_Qb0TVs8JE7vgrYU2YiazOSwiPHnCZCQ,21547
105
- npcsh/npc_team/jinxs/lib/utils/build.jinx,sha256=TOsNjTEGlg5aSoYX_hmzywj3W6hlGPUOq7okmCzzaRg,2555
106
- npcsh/npc_team/jinxs/lib/utils/compile.jinx,sha256=LbkZE8ewBUngbI_mchMJylIwY9uCoFCe9KWs4HfMFpU,2393
107
- npcsh/npc_team/jinxs/lib/utils/help.jinx,sha256=BESlgpCj02ZnLSMGpQJ8YpWMi_Z6eTo8wDet7K0M4I4,2089
108
- npcsh/npc_team/jinxs/lib/utils/init.jinx,sha256=UPCtj_XKCC51MzuMAAKlWRwhCKfbB9T96P-8fvhquIQ,1315
109
- npcsh/npc_team/jinxs/lib/utils/jinxs.jinx,sha256=zVPWBA5nsdOeM9cYpbKZ1eAYk1y8vYT3g-Ek53RGIRs,15841
110
- npcsh/npc_team/jinxs/lib/utils/serve.jinx,sha256=EXp58rquPHZcJthrScc-NACrrQu2RzVHzPnfZAR_kcE,762
111
- npcsh/npc_team/jinxs/lib/utils/set.jinx,sha256=FFY6JNVGkrKpHomXLuAiCv7mbwUGIyWh8zE_XMICHJY,1299
112
- npcsh/npc_team/jinxs/lib/utils/shh.jinx,sha256=yD-_va97JHT1MAhUvoL8w86Li9cbwi8XbswVcTRxd4U,464
113
- npcsh/npc_team/jinxs/lib/utils/switch.jinx,sha256=qsYMF_SWT12Z1KvWRT36kgUaUP_UOjpzA4v82IUIqF8,2022
114
- npcsh/npc_team/jinxs/lib/utils/switches.jinx,sha256=UquqT6Kzn4FTquYJPr0hyoEcuZ6Ke9VMO5pT0bOeXEw,2177
115
- npcsh/npc_team/jinxs/lib/utils/teamviz.jinx,sha256=WsWvIXbzJzm8S_7h0cgDqlRJIQ6NRzmAtVxmA6JskMc,7646
116
- npcsh/npc_team/jinxs/lib/utils/usage.jinx,sha256=40zhs19l7-16KAXHzOa8hjv7hA32ORe0F7das0TTLXY,1052
117
- npcsh/npc_team/jinxs/lib/utils/verbose.jinx,sha256=mFGLy2Azx1JXGhDOwVwd5EwJB9fxPQpk9BrP8kJ3RzE,473
118
- npcsh/npc_team/jinxs/modes/alicanto.jinx,sha256=YBFN0WIz4ZIco45tsBy8bYcCpiv9Kt-6MGaFARcIX0A,14312
119
- npcsh/npc_team/jinxs/modes/arxiv.jinx,sha256=lfk3OzWNe1hwEnObS4JFCaTkeWjTa5nDkYN_YYHw0Vk,38142
120
- npcsh/npc_team/jinxs/modes/corca.jinx,sha256=TK4n1d_WUGHioZ3GgSUta1L3_XsoX35wdsmzoI5dheE,18099
121
- npcsh/npc_team/jinxs/modes/guac.jinx,sha256=qaQG-JOAwOVeuFLYqe8Zsod8O0H5RGporWT-vdlsAgA,23693
122
- npcsh/npc_team/jinxs/modes/plonk.jinx,sha256=8Jxe_ccqh5gIGFY5tHA1RoRW8hHlVePuQH3ln1NjDUw,16066
123
- npcsh/npc_team/jinxs/modes/pti.jinx,sha256=6FPu61WdCL5lJ4QsHjR7m9fzDbWkx2WYDcK55gW7N5E,14646
124
- npcsh/npc_team/jinxs/modes/reattach.jinx,sha256=kTe2gYdhFeObbDcbCy20siS4aVCwvhBmk1k2Z4Xf9M8,13993
125
- npcsh/npc_team/jinxs/modes/spool.jinx,sha256=yqzD40jWmhbE33loJt6c_Qj0aWUw1tooeFC7TqAq8wY,14953
126
- npcsh/npc_team/jinxs/modes/wander.jinx,sha256=1H1ef1qMYgL3VAcGlbILqmem-4cTsLYRO1feut3XriY,17889
127
- npcsh/npc_team/jinxs/modes/yap.jinx,sha256=IyfyblJ1jKVYTAsX7w4oRFY8eTj2hHpjnFUft_3eTOo,9881
128
- npcsh-1.1.18.data/data/npcsh/npc_team/add_tab.jinx,sha256=yUS9t9haq-Zd02zuD_MvUuGHKX1AaLuWwRtVgqPpsno,233
129
- npcsh-1.1.18.data/data/npcsh/npc_team/alicanto.jinx,sha256=YBFN0WIz4ZIco45tsBy8bYcCpiv9Kt-6MGaFARcIX0A,14312
130
- npcsh-1.1.18.data/data/npcsh/npc_team/alicanto.npc,sha256=MjCeCKhC4OqKO0Rxa5U_SLEui7Lh8M2hXabcVfqEDhc,1455
131
- npcsh-1.1.18.data/data/npcsh/npc_team/alicanto.png,sha256=A7xeMbcoKGjlkELxJEVifCEZLVWbOKZarTN5ZFJG-FM,3519858
132
- npcsh-1.1.18.data/data/npcsh/npc_team/arxiv.jinx,sha256=lfk3OzWNe1hwEnObS4JFCaTkeWjTa5nDkYN_YYHw0Vk,38142
133
- npcsh-1.1.18.data/data/npcsh/npc_team/benchmark.jinx,sha256=W4sMNdjmv1ZZSu1ynsm7GDeTd5mTfhrZ51-TBmZQpYg,6101
134
- npcsh-1.1.18.data/data/npcsh/npc_team/browser_action.jinx,sha256=OtYK2rnpmjYPk2vZcD5J761XsXVuK6crV7NNGcMQzIg,9201
135
- npcsh-1.1.18.data/data/npcsh/npc_team/browser_screenshot.jinx,sha256=rch0IHithrcFb-bLuMcnMAxsn65PKJVZEOhLyAgJc8k,1166
136
- npcsh-1.1.18.data/data/npcsh/npc_team/build.jinx,sha256=TOsNjTEGlg5aSoYX_hmzywj3W6hlGPUOq7okmCzzaRg,2555
137
- npcsh-1.1.18.data/data/npcsh/npc_team/chat.jinx,sha256=QXIh4OIbLKsZISNa0URFkczUFpzkKB2YDNfWPD1Stk4,1397
138
- npcsh-1.1.18.data/data/npcsh/npc_team/click.jinx,sha256=uNJ66ZjIQ-0XflzuK3yGqNd7ApommWPIVL2pURhaRjY,585
139
- npcsh-1.1.18.data/data/npcsh/npc_team/close_browser.jinx,sha256=D0-sIQCTt3TEnUpr6SIWuhQOkJ6eyzhJnvYtYqbg1UM,322
140
- npcsh-1.1.18.data/data/npcsh/npc_team/close_pane.jinx,sha256=GjygVyU0-2Wqzwo6H9QUoMXuqsk5Y9u83gGTHJwe8-8,271
141
- npcsh-1.1.18.data/data/npcsh/npc_team/close_tab.jinx,sha256=gCcKBsNUPNKP5JMRcsVd5AZlNnwVtDy26sQBB72cxRc,234
142
- npcsh-1.1.18.data/data/npcsh/npc_team/cmd.jinx,sha256=sdmhXlduW2CCer4gUb3xnGN3j85y8GcOA6uLknir6lQ,1398
143
- npcsh-1.1.18.data/data/npcsh/npc_team/compile.jinx,sha256=LbkZE8ewBUngbI_mchMJylIwY9uCoFCe9KWs4HfMFpU,2393
144
- npcsh-1.1.18.data/data/npcsh/npc_team/compress.jinx,sha256=zFYcGyDb4KBhpE5E2EPZZ3c01pgKI5-CnlQOl7lxfn8,6563
145
- npcsh-1.1.18.data/data/npcsh/npc_team/confirm.jinx,sha256=b0vOQ7CuIxwTHBibJohFQAM23y4923PmmvgHHIivgRE,257
146
- npcsh-1.1.18.data/data/npcsh/npc_team/convene.jinx,sha256=W4-eRFHXpJe7Bt-8uC79wWygj4KUv15DNnGMJA1gJXA,8828
147
- npcsh-1.1.18.data/data/npcsh/npc_team/corca.jinx,sha256=TK4n1d_WUGHioZ3GgSUta1L3_XsoX35wdsmzoI5dheE,18099
148
- npcsh-1.1.18.data/data/npcsh/npc_team/corca.npc,sha256=Iu9bRD_OFVYQVyn0PLB_Kp91qzcHiHyo7VwmkXz2S-0,1667
149
- npcsh-1.1.18.data/data/npcsh/npc_team/corca.png,sha256=0lF70hKu6tY-37YmIPVF2cuaPzvnQ4-UtQOzuAbKEf4,1666776
150
- npcsh-1.1.18.data/data/npcsh/npc_team/corca_example.png,sha256=p0lVTuwaps4-F-3k4wgp9d897YPyn6FGZugtXMUQjj8,28777
151
- npcsh-1.1.18.data/data/npcsh/npc_team/db_search.jinx,sha256=cf79Kpl9y_fNLeM4gDzwhdy0xuup_4eH0Q556UCNfbA,17480
152
- npcsh-1.1.18.data/data/npcsh/npc_team/delegate.jinx,sha256=wsFBQfhcAT2o-hg05U_HGhHcJyDWjpdlRJc0g3iE40I,8017
153
- npcsh-1.1.18.data/data/npcsh/npc_team/edit_file.jinx,sha256=L31cjWFIlTU4PWOAoZTV1SaCT6qkuY_JIOsR9i5fa1U,3707
154
- npcsh-1.1.18.data/data/npcsh/npc_team/file_search.jinx,sha256=nwxch-VD48-Y8tm_8xirxVVBsV7-bKeYDQFxL2m5dlQ,16421
155
- npcsh-1.1.18.data/data/npcsh/npc_team/focus_pane.jinx,sha256=B43rr2brCiP5uX7-90piLeXE5wJkZalw4tINsFuGnZE,229
156
- npcsh-1.1.18.data/data/npcsh/npc_team/frederic.npc,sha256=1-TcFRWm5RsSnLoeZG_SN4JUU0Ynu6CzV-h6Wfasjto,1945
157
- npcsh-1.1.18.data/data/npcsh/npc_team/frederic4.png,sha256=ll8uoV0npnPp5HVJWv7h0xDSeuq4pqsk_gYGBHLS0VY,1590744
158
- npcsh-1.1.18.data/data/npcsh/npc_team/guac.jinx,sha256=qaQG-JOAwOVeuFLYqe8Zsod8O0H5RGporWT-vdlsAgA,23693
159
- npcsh-1.1.18.data/data/npcsh/npc_team/guac.npc,sha256=bOMEMXxvL4B-xdGqtq7hWf_gZpdMlo4OqER7c9iBsiM,797
160
- npcsh-1.1.18.data/data/npcsh/npc_team/guac.png,sha256=MCE7eJuEJwLJEzc9FS7lL62Mm-38jQRHkxXogPfOTuw,211470
161
- npcsh-1.1.18.data/data/npcsh/npc_team/help.jinx,sha256=BESlgpCj02ZnLSMGpQJ8YpWMi_Z6eTo8wDet7K0M4I4,2089
162
- npcsh-1.1.18.data/data/npcsh/npc_team/incognide.jinx,sha256=0lSYUS7dVmfi4hGS0SiBg5LlAuNHE8qlrgU7QFNAmtQ,2231
163
- npcsh-1.1.18.data/data/npcsh/npc_team/init.jinx,sha256=UPCtj_XKCC51MzuMAAKlWRwhCKfbB9T96P-8fvhquIQ,1315
164
- npcsh-1.1.18.data/data/npcsh/npc_team/jinxs.jinx,sha256=zVPWBA5nsdOeM9cYpbKZ1eAYk1y8vYT3g-Ek53RGIRs,15841
165
- npcsh-1.1.18.data/data/npcsh/npc_team/kadiefa.npc,sha256=tg9YZ3dTlXS8CIEb544G5UYvGndPhgdlQoLWRV5j-JY,1758
166
- npcsh-1.1.18.data/data/npcsh/npc_team/kadiefa.png,sha256=3CAwL8crKIwJko6o75Z6OYYEEM9Rk--yGzCJg7zoszg,3062528
167
- npcsh-1.1.18.data/data/npcsh/npc_team/key_press.jinx,sha256=PQWf0BsYDddwF3_bgdRJpH_pjUWlWtABDyiK_v26Dj0,832
168
- npcsh-1.1.18.data/data/npcsh/npc_team/kg_search.jinx,sha256=iHFVJUl32BjtOnpQz2OfxS6doh10AjMp0aBm73GmlPs,21118
169
- npcsh-1.1.18.data/data/npcsh/npc_team/launch_app.jinx,sha256=G3KRSKgBbCPiF9WwrkPtNFK7Pb2xu0TFCY98YmMGD50,1187
170
- npcsh-1.1.18.data/data/npcsh/npc_team/list_panes.jinx,sha256=k__AWJk030ub0COms-6maT1KoQXSmOmSy6wIgxw8Yys,262
171
- npcsh-1.1.18.data/data/npcsh/npc_team/load_file.jinx,sha256=Dq2982ZJkbSrM75O8YgLeGRnHdWl0AfEIYkj9RkNMLg,1271
172
- npcsh-1.1.18.data/data/npcsh/npc_team/mem_review.jinx,sha256=glxH4xySb6YEEdqlgqBTQPXiVJ2iN9LKrb2ZczM7P-0,2478
173
- npcsh-1.1.18.data/data/npcsh/npc_team/mem_search.jinx,sha256=tJ5AvpD7X_nKy0_x_8si6_8ASs6fFcCvbnpN9ZDhCQc,19983
174
- npcsh-1.1.18.data/data/npcsh/npc_team/navigate.jinx,sha256=gGarwSCn0wg83PRyTf_0NC7yiDykDsExGpSn02nIZZI,240
175
- npcsh-1.1.18.data/data/npcsh/npc_team/notify.jinx,sha256=4LqWwjGkjTzAZCRSY_WenLJ9Ks0NQpk4s3zCbnYhNNo,236
176
- npcsh-1.1.18.data/data/npcsh/npc_team/npcsh.ctx,sha256=-jKYaPm2YbZHAGgWAXhyPIwhiNe1H1ZRFg1Zc7tHSxk,1049
177
- npcsh-1.1.18.data/data/npcsh/npc_team/npcsh_sibiji.png,sha256=9fUqgYMsSHmaH-kBTBQ7N5UCS5-eLZF94Log0O3mtFg,4544
178
- npcsh-1.1.18.data/data/npcsh/npc_team/nql.jinx,sha256=Ekk0fnFf1USjWbtfFX0i9TE5v9ST4vhyhBTswl4AftU,5562
179
- npcsh-1.1.18.data/data/npcsh/npc_team/open_browser.jinx,sha256=AJ4ZysHzdNIghSpu2cTcbRvio1KwV4yzjnyAvAragr4,1656
180
- npcsh-1.1.18.data/data/npcsh/npc_team/open_pane.jinx,sha256=h9lzDoyAairUd6QDb7B9Fx9ukJeO55j7i1tgBJLbSR4,471
181
- npcsh-1.1.18.data/data/npcsh/npc_team/ots.jinx,sha256=1boaqSw1kb_Y5WJ28c22a3CiHkANzPIW9tTF9STs_Fg,2375
182
- npcsh-1.1.18.data/data/npcsh/npc_team/paper_search.jinx,sha256=Y2jHwYyEBYWG9G0bwQ01fntaJs5l91iAqfYCpKNgjrA,20609
183
- npcsh-1.1.18.data/data/npcsh/npc_team/paste.jinx,sha256=bycgMzeYFHl3-TN4YYDyasbNe22hEgFGMOmYoMWFgWI,4957
184
- npcsh-1.1.18.data/data/npcsh/npc_team/plonk.jinx,sha256=8Jxe_ccqh5gIGFY5tHA1RoRW8hHlVePuQH3ln1NjDUw,16066
185
- npcsh-1.1.18.data/data/npcsh/npc_team/plonk.npc,sha256=z2fd5U0qaymiqHvkunQxCGQ1N2Mx6DMeErcltrJWrqw,1341
186
- npcsh-1.1.18.data/data/npcsh/npc_team/plonk.png,sha256=IU5ey-Dl4HEKlwnf75RSWNSHpF8rVqGmdbsa0deL4rQ,2727773
187
- npcsh-1.1.18.data/data/npcsh/npc_team/plonkjr.npc,sha256=umvWEigYLJBzzqSpF70lbf75612q8LxxGeYHT1Oq21Q,1568
188
- npcsh-1.1.18.data/data/npcsh/npc_team/plonkjr.png,sha256=MqLEGwsyECUeODZIti0HQQrMMVxA6XERpW01R06NbpY,2606710
189
- npcsh-1.1.18.data/data/npcsh/npc_team/pti.jinx,sha256=6FPu61WdCL5lJ4QsHjR7m9fzDbWkx2WYDcK55gW7N5E,14646
190
- npcsh-1.1.18.data/data/npcsh/npc_team/python.jinx,sha256=lFJubdPVlGxSuUKCxsxjYG4_dnX2ATn8U9ChYKRmL5Q,389
191
- npcsh-1.1.18.data/data/npcsh/npc_team/read_pane.jinx,sha256=YAM7UTUVZCZIPfvEgb3OnpG9J9-9rLOSOgubtnxmsG8,326
192
- npcsh-1.1.18.data/data/npcsh/npc_team/reattach.jinx,sha256=kTe2gYdhFeObbDcbCy20siS4aVCwvhBmk1k2Z4Xf9M8,13993
193
- npcsh-1.1.18.data/data/npcsh/npc_team/roll.jinx,sha256=Yp9Hg6_aMfQ1366-kKJ2gLjxXyAauoolRXtJva3KUOg,2172
194
- npcsh-1.1.18.data/data/npcsh/npc_team/run_terminal.jinx,sha256=1wZJ8S5Qg6TSZ8W-dA44DLB77yy2gKjym9FEy5eRcrM,243
195
- npcsh-1.1.18.data/data/npcsh/npc_team/sample.jinx,sha256=0q-Iw7KZEp6fkqjGSy_9onvtqhxmtjDG_v55uA4J7K0,1948
196
- npcsh-1.1.18.data/data/npcsh/npc_team/screenshot.jinx,sha256=jVU1u-MH_rW6haAHLO3FrikNgeEKAQpUY962pPM8epc,657
197
- npcsh-1.1.18.data/data/npcsh/npc_team/search.jinx,sha256=ZdW4wK_jyCKAQv7h-WRe1tEtgHxr3AHqPdZ60jfRs_A,1236
198
- npcsh-1.1.18.data/data/npcsh/npc_team/semantic_scholar.jinx,sha256=ExX-TZ5CPzt_Qb0TVs8JE7vgrYU2YiazOSwiPHnCZCQ,21547
199
- npcsh-1.1.18.data/data/npcsh/npc_team/send_message.jinx,sha256=o9fqnVSTGmU4QnT9TZoVIXjLdfz7dPK1oOav8zxi5ok,236
200
- npcsh-1.1.18.data/data/npcsh/npc_team/serve.jinx,sha256=EXp58rquPHZcJthrScc-NACrrQu2RzVHzPnfZAR_kcE,762
201
- npcsh-1.1.18.data/data/npcsh/npc_team/set.jinx,sha256=FFY6JNVGkrKpHomXLuAiCv7mbwUGIyWh8zE_XMICHJY,1299
202
- npcsh-1.1.18.data/data/npcsh/npc_team/sh.jinx,sha256=RzpvJ0f3tmmrl7W8mxKBaOFtjmKuEXQjhKYYF_EaeyQ,844
203
- npcsh-1.1.18.data/data/npcsh/npc_team/shh.jinx,sha256=yD-_va97JHT1MAhUvoL8w86Li9cbwi8XbswVcTRxd4U,464
204
- npcsh-1.1.18.data/data/npcsh/npc_team/sibiji.npc,sha256=iYv7KXULbyWLPWhFwM7sNbMT4RNHWMvl10bdzmJdRO4,1624
205
- npcsh-1.1.18.data/data/npcsh/npc_team/sibiji.png,sha256=1dlZb7J3E62FcVo9CVOzLb8nu1bIUV7cr97nsFocHCM,35615
206
- npcsh-1.1.18.data/data/npcsh/npc_team/sleep.jinx,sha256=dcEDGe6v53XzVoya2s7ru3ewJE2iKZ38DJLfnYfODT8,5440
207
- npcsh-1.1.18.data/data/npcsh/npc_team/split_pane.jinx,sha256=leYfKbeIksfALWr23LAQbCRijXshiSkoMMLNR1Gx5dg,290
208
- npcsh-1.1.18.data/data/npcsh/npc_team/spool.jinx,sha256=yqzD40jWmhbE33loJt6c_Qj0aWUw1tooeFC7TqAq8wY,14953
209
- npcsh-1.1.18.data/data/npcsh/npc_team/spool.png,sha256=LWTLkwDxXBfLuSUCX32_lo5yAmLYGsA67Xpsz-7MmWU,2876725
210
- npcsh-1.1.18.data/data/npcsh/npc_team/sql.jinx,sha256=7cAaLqr0A8vWn7QIVDzvqArwB0XmWOI6JPUVcfeGcWk,689
211
- npcsh-1.1.18.data/data/npcsh/npc_team/switch.jinx,sha256=qsYMF_SWT12Z1KvWRT36kgUaUP_UOjpzA4v82IUIqF8,2022
212
- npcsh-1.1.18.data/data/npcsh/npc_team/switch_npc.jinx,sha256=H4kq-DXcotJ4l-vvO8LbkCaung5XtoWZqJEgGRuUa60,241
213
- npcsh-1.1.18.data/data/npcsh/npc_team/switch_tab.jinx,sha256=4Gd4CR40oxUX3JKCrPaFqIWRzv-TgSWzWzLAdBNPIxw,239
214
- npcsh-1.1.18.data/data/npcsh/npc_team/switches.jinx,sha256=UquqT6Kzn4FTquYJPr0hyoEcuZ6Ke9VMO5pT0bOeXEw,2177
215
- npcsh-1.1.18.data/data/npcsh/npc_team/sync.jinx,sha256=YxNnn7L_dsH1AMeBrnm7S3Q99cOIvDqg_pNBteVlhAw,8261
216
- npcsh-1.1.18.data/data/npcsh/npc_team/teamviz.jinx,sha256=WsWvIXbzJzm8S_7h0cgDqlRJIQ6NRzmAtVxmA6JskMc,7646
217
- npcsh-1.1.18.data/data/npcsh/npc_team/trigger.jinx,sha256=VVCnkpYMicq85YA_XQewLvWBl3ctsfObRCwQH9wLCfc,2341
218
- npcsh-1.1.18.data/data/npcsh/npc_team/type_text.jinx,sha256=JDCkm2bCV3gk08hrfu5pGYynpNoMLPZWGyfjz7fQhUo,720
219
- npcsh-1.1.18.data/data/npcsh/npc_team/usage.jinx,sha256=40zhs19l7-16KAXHzOa8hjv7hA32ORe0F7das0TTLXY,1052
220
- npcsh-1.1.18.data/data/npcsh/npc_team/verbose.jinx,sha256=mFGLy2Azx1JXGhDOwVwd5EwJB9fxPQpk9BrP8kJ3RzE,473
221
- npcsh-1.1.18.data/data/npcsh/npc_team/vixynt.jinx,sha256=Zv56WANlzXcuT1PcaftkGcKnHr94PaA80WvN25O8pS8,4284
222
- npcsh-1.1.18.data/data/npcsh/npc_team/wait.jinx,sha256=Jx-HdmMD7p5vdsNG3FXiZyRpKoFRHsmylxH6TMNznac,494
223
- npcsh-1.1.18.data/data/npcsh/npc_team/wander.jinx,sha256=1H1ef1qMYgL3VAcGlbILqmem-4cTsLYRO1feut3XriY,17889
224
- npcsh-1.1.18.data/data/npcsh/npc_team/web_search.jinx,sha256=YZmiPHqpxcUCYmMI7UPBhjf1WBoz_DUk5b7F0qF-FMk,13438
225
- npcsh-1.1.18.data/data/npcsh/npc_team/write_file.jinx,sha256=E8AIpUN-I8PVv44S-_EF4ToTV0PbwYSZhn7DyaNRAd8,285
226
- npcsh-1.1.18.data/data/npcsh/npc_team/yap.jinx,sha256=IyfyblJ1jKVYTAsX7w4oRFY8eTj2hHpjnFUft_3eTOo,9881
227
- npcsh-1.1.18.data/data/npcsh/npc_team/yap.png,sha256=_l7UbWnXJdsy4Mx-x5l9DT0R6ize3HTnkwQQnOFlI18,1548649
228
- npcsh-1.1.18.data/data/npcsh/npc_team/zen_mode.jinx,sha256=BqPPUJ1PmeJxo76Ujr1p70oJWYbq56Jjv3VML-zqBq4,228
229
- npcsh-1.1.18.dist-info/licenses/LICENSE,sha256=IKBvAECHP-aCiJtE4cHGCE5Yl0tozYz02PomGeWS3y4,1070
230
- project/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
231
- npcsh-1.1.18.dist-info/METADATA,sha256=-raqqpgIwfB5NvPvq-b0z1XdUeeEOEBOg9i8rbz5SAU,40361
232
- npcsh-1.1.18.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
233
- npcsh-1.1.18.dist-info/entry_points.txt,sha256=WWoakXqyf-kLZJuQCrJaOUoT5YUQ3SdbBH3F2XoINUU,486
234
- npcsh-1.1.18.dist-info/top_level.txt,sha256=sbA6l0H-5EUmtoSA3SJTzrFzT_BmsFtf1FOUq8P8vL0,14
235
- npcsh-1.1.18.dist-info/RECORD,,