pi-coding-master 0.2.7

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 (304) hide show
  1. package/README.md +50 -0
  2. package/core/god.agent.capability/@ABANDONED.brain.prefrontal.monitor/gpu_monitor.py +80 -0
  3. package/core/god.agent.capability/@ABANDONED.brain.prefrontal.monitor/gpu_monitor.py.CHANGELOG +1 -0
  4. package/core/god.agent.capability/@ABANDONED.brain.prefrontal.monitor/gpu_monitor.py.SPEC +3 -0
  5. package/core/god.agent.capability/hands.dev.writeissue/issue.ts +209 -0
  6. package/core/god.agent.capability/hands.dev.writeissue/issue.ts.SPEC +26 -0
  7. package/core/god.agent.capability/hands.files.changewatcher/watcher.ts +44 -0
  8. package/core/god.agent.capability/hands.files.changewatcher/watcher.ts.SPEC +25 -0
  9. package/core/god.pi.mod/cli/pi-completion.zsh +21 -0
  10. package/core/god.pi.mod/cli/pi-completion.zsh.CHANGELOG +1 -0
  11. package/core/god.pi.mod/cli/pi-people.sh +264 -0
  12. package/core/god.pi.mod/cli/pi-people.sh.LESSON +10 -0
  13. package/core/god.pi.mod/cli/pi-people.sh.SPEC +31 -0
  14. package/core/god.pi.mod/paths.ts +47 -0
  15. package/core/god.pi.mod/tui.mods.blockrender/blockrender.js +90 -0
  16. package/core/god.pi.mod/tui.mods.blockrender/blockrender.js.SPEC +29 -0
  17. package/core/god.pi.mod/tui.mods.footer.budget/budget_guard.ts +154 -0
  18. package/core/god.pi.mod/tui.mods.footer.budget/budget_guard.ts.CHANGELOG +10 -0
  19. package/core/god.pi.mod/tui.mods.footer.budget/budget_guard.ts.LESSON +12 -0
  20. package/core/god.pi.mod/tui.mods.footer.budget/budget_guard.ts.SPEC +26 -0
  21. package/core/god.pi.mod/tui.mods.footer.budget/footer-cny.CHANGELOG +39 -0
  22. package/core/god.pi.mod/tui.mods.viewmode/view_mode-thinking.patch +55 -0
  23. package/core/god.pi.mod/tui.mods.viewmode/view_mode-tools.patch +19 -0
  24. package/core/god.pi.mod/tui.mods.viewmode/view_mode-tools.patch.CHANGELOG +1 -0
  25. package/core/god.pi.mod/tui.mods.viewmode/view_mode.ts +50 -0
  26. package/core/god.pi.mod/tui.mods.viewmode/view_mode.ts.SPEC +12 -0
  27. package/core/god.pi.mod/tui.variants.userterminal/user_terminal.CHANGELOG +10 -0
  28. package/core/god.pi.mod/tui.variants.userterminal/user_terminal.ts +66 -0
  29. package/core/god.pi.mod/tui.variants.userterminal/user_terminal.ts.SPEC +31 -0
  30. package/core/index.ts +3 -0
  31. package/core/individual.bio.gene/dna.coded/coded.dna +257 -0
  32. package/core/individual.bio.gene/dna.coded/coded.dna.CHANGELOG +12 -0
  33. package/core/individual.bio.gene/dna.coded/coded.dna.SPEC +11 -0
  34. package/core/individual.bio.gene/dna.coded/core.dna +110 -0
  35. package/core/individual.bio.gene/dna.promotor/promotor.dna +117 -0
  36. package/core/individual.bio.gene/dna.promotor/promotor.dna.CHANGELOG +4 -0
  37. package/core/individual.bio.gene/dna.promotor/promotor.dna.SPEC +7 -0
  38. package/core/individual.bio.gene/dna.transpiler/transpiler.ts +395 -0
  39. package/core/individual.bio.gene/dna.transpiler/transpiler.ts.CHANGELOG +7 -0
  40. package/core/individual.bio.gene/dna.transpiler/transpiler.ts.SPEC +28 -0
  41. package/core/individual.bio.gene/gene.README +19 -0
  42. package/core/individual.bio.gene/rna/rna.json +536 -0
  43. package/core/individual.bio.gene/rna/rna.json.CHANGELOG +2 -0
  44. package/core/individual.bio.gene/rna/rna.json.SPEC +8 -0
  45. package/core/individual.bio.organs/blood.runtime/messages.ts +236 -0
  46. package/core/individual.bio.organs/blood.runtime/runtime.ts +173 -0
  47. package/core/individual.bio.organs/blood.runtime/runtime.ts.CHANGELOG +5 -0
  48. package/core/individual.bio.organs/blood.runtime/runtime.ts.SPEC +32 -0
  49. package/core/individual.bio.organs/brain.amygdala/amygdala.ts +25 -0
  50. package/core/individual.bio.organs/brain.amygdala/amygdala.ts.COMMENT +3 -0
  51. package/core/individual.bio.organs/brain.amygdala/amygdala.ts.SPEC +9 -0
  52. package/core/individual.bio.organs/brain.hippocampus/hippocampus-launcher.sh.template +108 -0
  53. package/core/individual.bio.organs/brain.hippocampus/hippocampus.ts +166 -0
  54. package/core/individual.bio.organs/brain.hippocampus/hippocampus.ts.CHANGELOG +12 -0
  55. package/core/individual.bio.organs/brain.hippocampus/hippocampus.ts.LESSON +22 -0
  56. package/core/individual.bio.organs/brain.hippocampus/hippocampus.ts.SPEC +16 -0
  57. package/core/individual.bio.organs/brain.hippocampus/memory.ts +879 -0
  58. package/core/individual.bio.organs/brain.hippocampus/memory.ts.CHANGELOG +66 -0
  59. package/core/individual.bio.organs/brain.hippocampus/memory.ts.LESSON +25 -0
  60. package/core/individual.bio.organs/brain.hippocampus/memory.ts.SPEC +46 -0
  61. package/core/individual.bio.organs/brain.hippocampus/sleep.ts +139 -0
  62. package/core/individual.bio.organs/brain.hippocampus/sleep.ts.CHANGELOG +11 -0
  63. package/core/individual.bio.organs/brain.hippocampus/sleep.ts.SPEC +16 -0
  64. package/core/individual.bio.organs/brain.prefrontal.drafting/drafting.SPEC +44 -0
  65. package/core/individual.bio.organs/brain.prefrontal.drafting/drafting.ts +73 -0
  66. package/core/individual.bio.organs/brain.prefrontal.drafting/drafting.ts.CHANGELOG +3 -0
  67. package/core/individual.bio.organs/brain.prefrontal.drafting/drafting.ts.SPEC +24 -0
  68. package/core/individual.bio.organs/brain.prefrontal.drafting/index.ts.CHANGELOG +3 -0
  69. package/core/individual.bio.organs/brain.prefrontal.drafting/main.ts +13 -0
  70. package/core/individual.bio.organs/brain.prefrontal.drafting/main.ts.SPEC +17 -0
  71. package/core/individual.bio.organs/brain.senses.bioclock/bioclock.ts +94 -0
  72. package/core/individual.bio.organs/brain.senses.bioclock/bioclock.ts.LESSON +13 -0
  73. package/core/individual.bio.organs/brain.senses.bioclock/bioclock.ts.SPEC +20 -0
  74. package/core/individual.bio.organs/brain.senses.subconscious/feed-format.SPEC +56 -0
  75. package/core/individual.bio.organs/brain.senses.subconscious/index.ts.CHANGELOG +13 -0
  76. package/core/individual.bio.organs/brain.senses.subconscious/spawner.ts +130 -0
  77. package/core/individual.bio.organs/brain.senses.subconscious/spawner.ts.SPEC +13 -0
  78. package/core/individual.bio.organs/brain.senses.subconscious/subconscious.ts +280 -0
  79. package/core/individual.bio.organs/brain.senses.subconscious/subconscious.ts.CHANGELOG +7 -0
  80. package/core/individual.bio.organs/brain.senses.subconscious/tools.ts +180 -0
  81. package/core/individual.bio.organs/brain.senses.subconscious/tools.ts.SPEC +3 -0
  82. package/core/individual.bio.organs/ears.listen/config.json +9 -0
  83. package/core/individual.bio.organs/ears.listen/config.json.CHANGELOG +1 -0
  84. package/core/individual.bio.organs/ears.listen/config.json.SPEC +3 -0
  85. package/core/individual.bio.organs/ears.listen/ears.ts.CHANGELOG +48 -0
  86. package/core/individual.bio.organs/ears.listen/ears_recorder.py.CHANGELOG +6 -0
  87. package/core/individual.bio.organs/ears.listen/index.ts +1 -0
  88. package/core/individual.bio.organs/ears.listen/index.ts.SPEC +16 -0
  89. package/core/individual.bio.organs/ears.listen/listen.ts +208 -0
  90. package/core/individual.bio.organs/ears.listen/listen.ts.SPEC +3 -0
  91. package/core/individual.bio.organs/ears.listen/listen_recorder.py +445 -0
  92. package/core/individual.bio.organs/ears.listen/listen_recorder.py.SPEC +7 -0
  93. package/core/individual.bio.organs/ears.listen/python_protogen/__init__.py +0 -0
  94. package/core/individual.bio.organs/ears.listen/python_protogen/common/__init__.py +0 -0
  95. package/core/individual.bio.organs/ears.listen/python_protogen/common/events_pb2.py +38 -0
  96. package/core/individual.bio.organs/ears.listen/python_protogen/common/events_pb2_grpc.py +24 -0
  97. package/core/individual.bio.organs/ears.listen/python_protogen/common/rpcmeta_pb2.py +42 -0
  98. package/core/individual.bio.organs/ears.listen/python_protogen/common/rpcmeta_pb2_grpc.py +24 -0
  99. package/core/individual.bio.organs/ears.listen/python_protogen/products/__init__.py +0 -0
  100. package/core/individual.bio.organs/ears.listen/python_protogen/products/understanding/__init__.py +0 -0
  101. package/core/individual.bio.organs/ears.listen/python_protogen/products/understanding/ast/__init__.py +0 -0
  102. package/core/individual.bio.organs/ears.listen/python_protogen/products/understanding/ast/ast_service_pb2.py +45 -0
  103. package/core/individual.bio.organs/ears.listen/python_protogen/products/understanding/ast/ast_service_pb2_grpc.py +97 -0
  104. package/core/individual.bio.organs/ears.listen/python_protogen/products/understanding/base/__init__.py +0 -0
  105. package/core/individual.bio.organs/ears.listen/python_protogen/products/understanding/base/au_base_pb2.py +80 -0
  106. package/core/individual.bio.organs/ears.listen/python_protogen/products/understanding/base/au_base_pb2_grpc.py +24 -0
  107. package/core/individual.bio.organs/hands.fileactions/authorize.TRUST +1 -0
  108. package/core/individual.bio.organs/hands.fileactions/authorize.ts +70 -0
  109. package/core/individual.bio.organs/hands.fileactions/authorize.ts.CHANGELOG +1 -0
  110. package/core/individual.bio.organs/hands.fileactions/authorize.ts.SPEC +3 -0
  111. package/core/individual.bio.organs/hands.fileactions/dir.README +13 -0
  112. package/core/individual.bio.organs/hands.fileactions/file_rules.json +23 -0
  113. package/core/individual.bio.organs/hands.fileactions/fileactions.README +12 -0
  114. package/core/individual.bio.organs/hands.fileactions/fileactions.ts +540 -0
  115. package/core/individual.bio.organs/hands.fileactions/fileactions.ts.CHANGELOG +25 -0
  116. package/core/individual.bio.organs/hands.fileactions/fileactions.ts.SPEC +30 -0
  117. package/core/individual.bio.organs/hands.fileactions/filewatch.ts +66 -0
  118. package/core/individual.bio.organs/hands.fileactions/filewatch.ts.SPEC +3 -0
  119. package/core/individual.bio.organs/hands.main/main.ts +18 -0
  120. package/core/individual.bio.organs/hands.main/main.ts.SPEC +20 -0
  121. package/core/individual.bio.organs/hands.sensitive/sensitive.ts +24 -0
  122. package/core/individual.bio.organs/hands.sensitive/sensitive.ts.CHANGELOG +2 -0
  123. package/core/individual.bio.organs/hands.sensitive/sensitive.ts.SPEC +3 -0
  124. package/core/individual.bio.organs/heart.interrupt/agent_start-loader-flicker.patch +13 -0
  125. package/core/individual.bio.organs/heart.interrupt/interactive-mode-loader.patch +11 -0
  126. package/core/individual.bio.organs/heart.interrupt/runner_esc.patch +10 -0
  127. package/core/individual.bio.organs/heart.interrupt/runner_esc.patch.SPEC +9 -0
  128. package/core/individual.bio.organs/heart.kernel/kernel.ts +253 -0
  129. package/core/individual.bio.organs/heart.kernel/kernel.ts.CHANGELOG +13 -0
  130. package/core/individual.bio.organs/heart.kernel/kernel.ts.SPEC +23 -0
  131. package/core/individual.bio.organs/heart.main/heart.main.CHANGELOG +43 -0
  132. package/core/individual.bio.organs/heart.main/heartbeat.ts +494 -0
  133. package/core/individual.bio.organs/heart.main/heartbeat.ts.LESSON +43 -0
  134. package/core/individual.bio.organs/heart.main/main.ts +8 -0
  135. package/core/individual.bio.organs/heart.main/main.ts.SPEC +19 -0
  136. package/core/individual.bio.organs/heart.main/process.ts +122 -0
  137. package/core/individual.bio.organs/heart.main/process.ts.CHANGELOG +2 -0
  138. package/core/individual.bio.organs/heart.main/process.ts.SPEC +24 -0
  139. package/core/individual.bio.organs/heart.main/remove_timeout.patch +110 -0
  140. package/core/individual.bio.organs/heart.main/stop.ts.CHANGELOG +3 -0
  141. package/core/individual.bio.organs/heart.main/stop.ts.SPEC +28 -0
  142. package/core/individual.bio.organs/mouth.speak/index.ts +1 -0
  143. package/core/individual.bio.organs/mouth.speak/index.ts.CHANGELOG +1 -0
  144. package/core/individual.bio.organs/mouth.speak/index.ts.SPEC +6 -0
  145. package/core/individual.bio.organs/mouth.speak/mouth.ts.CHANGELOG +15 -0
  146. package/core/individual.bio.organs/mouth.speak/mouth_recorder.py.CHANGELOG +1 -0
  147. package/core/individual.bio.organs/mouth.speak/speak.ts +180 -0
  148. package/core/individual.bio.organs/mouth.speak/speak.ts.SPEC +3 -0
  149. package/core/individual.bio.organs/mouth.speak/speak_recorder.py +35 -0
  150. package/core/individual.bio.organs/mouth.speak/speak_recorder.py.SPEC +3 -0
  151. package/core/individual.bio.organs/organs.README +110 -0
  152. package/core/package-lock.json +18 -0
  153. package/core/package.json +35 -0
  154. package/core/prompts/prompts.json +77 -0
  155. package/core/prompts/prompts.ts +44 -0
  156. package/core/prompts/prompts.ts.SPEC +9 -0
  157. package/core/society.world/.gitkeep +0 -0
  158. package/core/society.world/accessibility.claudecode/message-service.cjs +217 -0
  159. package/core/society.world/accessibility.claudecode/message-service.cjs.SPEC +7 -0
  160. package/core/society.world/accessibility.claudecode/send.ts +34 -0
  161. package/core/society.world/dollar.distribution.ubi/ubi.ts +55 -0
  162. package/core/society.world/dollar.main/dollar-service.cjs +185 -0
  163. package/core/society.world/dollar.main/main.ts +116 -0
  164. package/core/society.world/dollar.transaction/transaction.ts +71 -0
  165. package/core/society.world/space/space.ts +206 -0
  166. package/core/society.world/space/space.ts.SPEC +30 -0
  167. package/core/technology.laptop/#agent.macos.BLUEPRINT +278 -0
  168. package/core/technology.phone/apps.preinstalled/albums.FUTURE/albums.ts +69 -0
  169. package/core/technology.phone/apps.preinstalled/albums.FUTURE/albums.ts.SPEC +15 -0
  170. package/core/technology.phone/apps.preinstalled/calendar/calendar.ts +406 -0
  171. package/core/technology.phone/apps.preinstalled/calendar/calendar.ts.SPEC +22 -0
  172. package/core/technology.phone/apps.preinstalled/calendar/holiday-calendar.ts +529 -0
  173. package/core/technology.phone/apps.preinstalled/clock/clock.ts +132 -0
  174. package/core/technology.phone/apps.preinstalled/clock/clock.ts.SPEC +11 -0
  175. package/core/technology.phone/apps.preinstalled/contacts.FUTURE/contacts.ts +300 -0
  176. package/core/technology.phone/apps.preinstalled/contacts.FUTURE/contacts.ts.SPEC +22 -0
  177. package/core/technology.phone/apps.preinstalled/developer.FUTURE/developer.ts +22 -0
  178. package/core/technology.phone/apps.preinstalled/developer.FUTURE/developer.ts.SPEC +15 -0
  179. package/core/technology.phone/apps.preinstalled/notes/notes.ts +239 -0
  180. package/core/technology.phone/apps.preinstalled/notes/notes.ts.SPEC +21 -0
  181. package/core/technology.phone/apps.preinstalled/polymarket/polymarket.ts +261 -0
  182. package/core/technology.phone/apps.preinstalled/polymarket/polymarket.ts.SPEC +7 -0
  183. package/core/technology.phone/apps.preinstalled/reminder/reminder.ts +404 -0
  184. package/core/technology.phone/apps.preinstalled/reminder/reminder.ts.SPEC +25 -0
  185. package/core/technology.phone/apps.preinstalled/siri.FUTURE/siri.ts +22 -0
  186. package/core/technology.phone/apps.preinstalled/siri.FUTURE/siri.ts.SPEC +15 -0
  187. package/core/technology.phone/apps.preinstalled/spotlight/spotlight.ts +29 -0
  188. package/core/technology.phone/apps.preinstalled/spotlight/spotlight.ts.SPEC +7 -0
  189. package/core/technology.phone/apps.preinstalled/steam/chess.ts +230 -0
  190. package/core/technology.phone/apps.preinstalled/steam/snake.ts +100 -0
  191. package/core/technology.phone/apps.preinstalled/steam/snake.ts.SPEC +7 -0
  192. package/core/technology.phone/apps.preinstalled/steam/spy-cmd.ts +4 -0
  193. package/core/technology.phone/apps.preinstalled/steam/spy-tool.ts +56 -0
  194. package/core/technology.phone/apps.preinstalled/steam/spy.ts +302 -0
  195. package/core/technology.phone/apps.preinstalled/steam/steam.ts +299 -0
  196. package/core/technology.phone/apps.preinstalled/weather/weather.ts +50 -0
  197. package/core/technology.phone/apps.preinstalled/weather/weather.ts.SPEC +9 -0
  198. package/core/technology.phone/apps.preinstalled/wechat/imessage.ts +423 -0
  199. package/core/technology.phone/apps.preinstalled/wechat/imessage.ts.SPEC +24 -0
  200. package/core/technology.phone/apps.system/appstore/appstore.ts +22 -0
  201. package/core/technology.phone/apps.system/appstore/appstore.ts.SPEC +15 -0
  202. package/core/technology.phone/apps.system/finder.FUTURE/finder.ts +64 -0
  203. package/core/technology.phone/apps.system/finder.FUTURE/finder.ts.SPEC +8 -0
  204. package/core/technology.phone/apps.system/safari/safari-app.ts +146 -0
  205. package/core/technology.phone/apps.system/safari/safari.ts.SPEC +24 -0
  206. package/core/technology.phone/apps.system/settings/settings.ts +126 -0
  207. package/core/technology.phone/apps.system/settings/settings.ts.SPEC +17 -0
  208. package/core/technology.phone/apps.system/tips/tips.ts +22 -0
  209. package/core/technology.phone/apps.system/tips/tips.ts.SPEC +15 -0
  210. package/core/technology.phone/apps.thirdparty/alipay/alipay.ts +148 -0
  211. package/core/technology.phone/apps.thirdparty/alipay/alipay.ts.SPEC +7 -0
  212. package/core/technology.phone/apps.thirdparty/bilibili/bilibili-app.ts +33 -0
  213. package/core/technology.phone/apps.thirdparty/bilibili/bilibili.ts +142 -0
  214. package/core/technology.phone/apps.thirdparty/bilibili/bilibili.ts.SPEC +22 -0
  215. package/core/technology.phone/apps.thirdparty/wechatread/wechatread.ts +80 -0
  216. package/core/technology.phone/apps.thirdparty/wechatread/wechatread.ts.SPEC +15 -0
  217. package/core/technology.phone/index.ts +1 -0
  218. package/core/technology.phone/package.json +2 -0
  219. package/core/technology.phone/system.homepage/homepage.ts +247 -0
  220. package/core/technology.phone/system.homepage/homepage.ts.SPEC +22 -0
  221. package/core/technology.phone/system.kernel/kernel.ts +264 -0
  222. package/core/technology.phone/system.kernel/kernel.ts.SPEC +7 -0
  223. package/core/technology.phone/system.notifications/notifications.ts +87 -0
  224. package/core/technology.phone/system.notifications/notifications.ts.SPEC +7 -0
  225. package/core/technology.phone/system.share/share.ts +46 -0
  226. package/core/technology.phone/system.share/share.ts.SPEC +7 -0
  227. package/core/technology.server/browser-service.cjs +152 -0
  228. package/core/technology.server/data/cookies/arxiv.json +30 -0
  229. package/core/technology.server/data/cookies/bili.json +184 -0
  230. package/core/technology.server/data/cookies/default.json +30 -0
  231. package/core/technology.server/data/cookies/news.json +113 -0
  232. package/core/technology.server/data/cookies/s1.json +45 -0
  233. package/core/technology.server/data/cookies/safari.json +184 -0
  234. package/core/technology.server/data/cookies/safari2.json +1 -0
  235. package/core/technology.server/data/cookies/safaridbg.json +1 -0
  236. package/core/technology.server/data/cookies/search.json +45 -0
  237. package/core/technology.server/data/cookies/sw.json +30 -0
  238. package/core/technology.server/data/cookies/t1.json +1 -0
  239. package/core/technology.server/data/cookies/testread.json +1 -0
  240. package/core/technology.server/data/cookies/video1.json +113 -0
  241. package/core/technology.server/data/cookies/yt.json +170 -0
  242. package/core/technology.server/data/cookies/yt2.json +113 -0
  243. package/core/technology.server/pikipedia/#pikipedia.BLUEPRINT +106 -0
  244. package/core/technology.server/playleft.cjs +247 -0
  245. package/core/technology.server/search-proxy.py +76 -0
  246. package/core/technology.server/server.README +59 -0
  247. package/deploy/dist-overrides/cli/cli.js +18 -0
  248. package/deploy/dist-overrides/core/extensions/loader.js +518 -0
  249. package/deploy/dist-overrides/core/package-manager.js +2081 -0
  250. package/deploy/dist-overrides/core/system-prompt.js +109 -0
  251. package/deploy/dist-overrides/core/system-prompt.js.LESSON +17 -0
  252. package/deploy/dist-overrides/core/tools/bash.js +353 -0
  253. package/deploy/dist-overrides/core/tools/bash.js.CHANGELOG +2 -0
  254. package/deploy/dist-overrides/core/tools/edit-diff.js +345 -0
  255. package/deploy/dist-overrides/core/tools/edit.js +315 -0
  256. package/deploy/dist-overrides/core/tools/edit.js.CHANGELOG +1 -0
  257. package/deploy/dist-overrides/core/tools/file-mutation-queue.js +52 -0
  258. package/deploy/dist-overrides/core/tools/find.js +298 -0
  259. package/deploy/dist-overrides/core/tools/find.js.CHANGELOG +1 -0
  260. package/deploy/dist-overrides/core/tools/grep.js +305 -0
  261. package/deploy/dist-overrides/core/tools/grep.js.CHANGELOG +1 -0
  262. package/deploy/dist-overrides/core/tools/index.js +112 -0
  263. package/deploy/dist-overrides/core/tools/ls-guard.js +4 -0
  264. package/deploy/dist-overrides/core/tools/ls.js +170 -0
  265. package/deploy/dist-overrides/core/tools/ls.js.CHANGELOG +1 -0
  266. package/deploy/dist-overrides/core/tools/output-accumulator.js +184 -0
  267. package/deploy/dist-overrides/core/tools/path-utils.js +99 -0
  268. package/deploy/dist-overrides/core/tools/prompts-reader.js +53 -0
  269. package/deploy/dist-overrides/core/tools/read.js +392 -0
  270. package/deploy/dist-overrides/core/tools/read.js.CHANGELOG +1 -0
  271. package/deploy/dist-overrides/core/tools/render-utils.js +65 -0
  272. package/deploy/dist-overrides/core/tools/tool-definition-wrapper.js +34 -0
  273. package/deploy/dist-overrides/core/tools/truncate.js +215 -0
  274. package/deploy/dist-overrides/core/tools/write.js +203 -0
  275. package/deploy/dist-overrides/core/tools/write.js.CHANGELOG +1 -0
  276. package/deploy/dist-overrides/dist-overrides.README +18 -0
  277. package/deploy/dist-overrides/main.js +665 -0
  278. package/deploy/dist-overrides/modes/interactive/components/assistant-message.js +139 -0
  279. package/deploy/dist-overrides/modes/interactive/components/footer.js +326 -0
  280. package/deploy/dist-overrides/modes/interactive/components/model-selector.js +285 -0
  281. package/deploy/dist-overrides/modes/interactive/components/tool-execution.js +383 -0
  282. package/deploy/dist-overrides/modes/interactive/components/tool-execution.js.CHANGELOG +3 -0
  283. package/deploy/dist-overrides/modes/interactive/interactive-mode.js +4781 -0
  284. package/deploy/dist-overrides/pi-ai/providers/anthropic.js +931 -0
  285. package/deploy/dist-overrides/pi-ai/providers/openai-completions.js +1007 -0
  286. package/deploy/dist-overrides/pi-ai/providers/openai-completions.js.LESSON +15 -0
  287. package/deploy/dist-overrides/pi-tui/components/loader.js +69 -0
  288. package/deploy/dist-overrides/pi-tui/components/markdown.js +646 -0
  289. package/deploy/dist-overrides/pi-tui/components/text.js +92 -0
  290. package/deploy/dist-overrides/pi-tui/custom-message.js +75 -0
  291. package/deploy/dist-overrides/pi-tui/tui.js +1266 -0
  292. package/deploy/dist-overrides/pi-tui/utils.js +1060 -0
  293. package/deploy/dist-overrides/vendor.REMOVED/jiti/lib/jiti.mjs +3 -0
  294. package/deploy/install.sh +186 -0
  295. package/deploy/install.sh.CHANGELOG +6 -0
  296. package/deploy/lint/lint-naming.ts +202 -0
  297. package/deploy/scripts/apply.js +18 -0
  298. package/deploy/scripts/build-github.sh +219 -0
  299. package/deploy/scripts/build-phone.sh +24 -0
  300. package/deploy/scripts/check-deploy.sh +42 -0
  301. package/deploy/scripts/migrate-context.sh +72 -0
  302. package/deploy/scripts/patch-pi-dist.js +39 -0
  303. package/deploy/scripts/uninstall.sh +34 -0
  304. package/package.json +18 -0
@@ -0,0 +1,247 @@
1
+ // playleft.js — 极简 CDP 客户端,零依赖,替代 Playwright
2
+ // 直接用 Node.js 原生 WebSocket 控制 Chromium
3
+
4
+ const { spawn } = require("child_process");
5
+ const http = require("http");
6
+ // Node 22+ 原生 WebSocket,零依赖
7
+
8
+ let _msgId = 0;
9
+
10
+ class PlayleftPage {
11
+ constructor(ws, targetId) {
12
+ this._ws = ws;
13
+ this._targetId = targetId;
14
+ this._callbacks = new Map();
15
+ this._eventHandlers = [];
16
+ this._ws.onmessage = (evt) => {
17
+ const raw = typeof evt.data === "string" ? evt.data : evt.data.toString();
18
+ const msg = JSON.parse(raw);
19
+ if (msg.id && this._callbacks.has(msg.id)) {
20
+ const cb = this._callbacks.get(msg.id);
21
+ this._callbacks.delete(msg.id);
22
+ if (msg.error) cb.reject(new Error(msg.error.message));
23
+ else cb.resolve(msg.result);
24
+ }
25
+ for (const h of this._eventHandlers) h(msg);
26
+ };
27
+ }
28
+
29
+ _send(method, params = {}) {
30
+ const id = ++_msgId;
31
+ return new Promise((resolve, reject) => {
32
+ this._callbacks.set(id, { resolve, reject });
33
+ this._ws.send(JSON.stringify({ id, method, params }));
34
+ setTimeout(() => {
35
+ if (this._callbacks.has(id)) {
36
+ this._callbacks.delete(id);
37
+ reject(new Error(`timeout: ${method}`));
38
+ }
39
+ }, 30000);
40
+ });
41
+ }
42
+
43
+ async goto(url) {
44
+ await this._send("Page.enable");
45
+ const nav = new Promise((resolve) => {
46
+ const handler = (msg) => {
47
+ if (msg.method === "Page.loadEventFired") {
48
+ this._eventHandlers = this._eventHandlers.filter(h => h !== handler);
49
+ resolve();
50
+ }
51
+ };
52
+ this._eventHandlers.push(handler);
53
+ setTimeout(resolve, 20000);
54
+ });
55
+ await this._send("Page.navigate", { url });
56
+ await nav;
57
+ // 额外等一下动态内容
58
+ await new Promise(r => setTimeout(r, 1500));
59
+ }
60
+
61
+ async title() {
62
+ const r = await this._send("Runtime.evaluate", { expression: "document.title" });
63
+ return r.result?.value || "";
64
+ }
65
+
66
+ async url() {
67
+ const r = await this._send("Runtime.evaluate", { expression: "location.href" });
68
+ return r.result?.value || "";
69
+ }
70
+
71
+ async text(limit = 5000) {
72
+ const r = await this._send("Runtime.evaluate", {
73
+ expression: `document.body.innerText.slice(0, ${limit})`
74
+ });
75
+ return r.result?.value || "";
76
+ }
77
+
78
+ async eval(expression) {
79
+ const r = await this._send("Runtime.evaluate", {
80
+ expression, returnByValue: true
81
+ });
82
+ if (r.exceptionDetails) throw new Error(r.exceptionDetails.text || "eval error");
83
+ return r.result?.value;
84
+ }
85
+
86
+ async links(limit = 30) {
87
+ return await this.eval(`
88
+ JSON.stringify([...document.querySelectorAll("a[href]")].slice(0, ${limit}).map(a => ({
89
+ text: (a.innerText || "").trim().slice(0, 60),
90
+ href: a.href
91
+ })))
92
+ `).then(JSON.parse);
93
+ }
94
+
95
+ async search(query) {
96
+ return await this.eval(`
97
+ document.body.innerText.split("\\n").filter(l => l.includes(${JSON.stringify(query)})).slice(0, 20).join("\\n")
98
+ `);
99
+ }
100
+
101
+ async click(selector) {
102
+ const r = await this._send("Runtime.evaluate", {
103
+ expression: `(() => {
104
+ const el = document.querySelector(${JSON.stringify(selector)});
105
+ if (!el) return "not_found";
106
+ el.click();
107
+ return "ok";
108
+ })()`
109
+ });
110
+ if (r.result?.value === "not_found") throw new Error(`未找到: ${selector}`);
111
+ await new Promise(r => setTimeout(r, 2000));
112
+ }
113
+
114
+ async type(selector, text) {
115
+ await this._send("Runtime.evaluate", {
116
+ expression: `(() => {
117
+ const el = document.querySelector(${JSON.stringify(selector)});
118
+ if (!el) throw new Error("not found");
119
+ el.focus();
120
+ el.value = ${JSON.stringify(text)};
121
+ el.dispatchEvent(new Event("input", {bubbles: true}));
122
+ el.dispatchEvent(new Event("change", {bubbles: true}));
123
+ })()`
124
+ });
125
+ }
126
+
127
+ async scroll(direction = "down", amount = 500) {
128
+ const y = direction === "up" ? -amount : amount;
129
+ await this._send("Runtime.evaluate", {
130
+ expression: `window.scrollBy(0, ${y})`
131
+ });
132
+ }
133
+
134
+ async accessibility() {
135
+ try {
136
+ const r = await this._send("Accessibility.getFullAXTree", { max_depth: 4 });
137
+ return r.nodes || [];
138
+ } catch {
139
+ return [];
140
+ }
141
+ }
142
+
143
+ async getCookies() {
144
+ await this._send("Network.enable");
145
+ const r = await this._send("Network.getCookies");
146
+ return r.cookies || [];
147
+ }
148
+
149
+ async setCookies(cookies) {
150
+ await this._send("Network.enable");
151
+ for (const c of cookies) {
152
+ await this._send("Network.setCookie", {
153
+ name: c.name, value: c.value, domain: c.domain,
154
+ path: c.path || "/", httpOnly: c.httpOnly ?? false,
155
+ secure: c.secure ?? false,
156
+ ...(c.expires ? { expires: c.expires } : {}),
157
+ });
158
+ }
159
+ }
160
+
161
+ async close() {
162
+ try { this._ws.close(); } catch {}
163
+ }
164
+ }
165
+
166
+ class PlayleftBrowser {
167
+ constructor(process, wsUrl) {
168
+ this._process = process;
169
+ this._wsUrl = wsUrl;
170
+ this._pages = [];
171
+ }
172
+
173
+ async newPage() {
174
+ // 获取 targets
175
+ const debugUrl = this._wsUrl.replace("ws://", "http://").replace(/\/devtools.*/, "");
176
+ const targets = await new Promise((resolve, reject) => {
177
+ const req = http.request(`${debugUrl}/json/new`, { method: "PUT" }, (res) => {
178
+ let data = "";
179
+ res.on("data", c => data += c);
180
+ res.on("end", () => {
181
+ try {
182
+ // Chromium 有时在 JSON 前输出警告,提取第一个 { 开始的部分
183
+ const jsonStart = data.indexOf("{");
184
+ const jsonData = jsonStart >= 0 ? data.slice(jsonStart) : data;
185
+ resolve(JSON.parse(jsonData));
186
+ } catch (e) { reject(new Error(`JSON parse failed: ${data.slice(0, 100)}`)); }
187
+ });
188
+ }).on("error", reject);
189
+ req.end();
190
+ });
191
+
192
+ const wsUrl = targets.webSocketDebuggerUrl;
193
+ const ws = new WebSocket(wsUrl);
194
+ await new Promise((resolve, reject) => {
195
+ ws.onopen = resolve;
196
+ ws.onerror = reject;
197
+ setTimeout(() => reject(new Error("ws connect timeout")), 5000);
198
+ });
199
+
200
+ const page = new PlayleftPage(ws, targets.id);
201
+ this._pages.push(page);
202
+ return page;
203
+ }
204
+
205
+ async close() {
206
+ for (const p of this._pages) await p.close().catch(() => {});
207
+ try { this._process.kill(); } catch {}
208
+ }
209
+ }
210
+
211
+ async function launch(options = {}) {
212
+ const chromePath = options.executablePath || process.env.CHROMIUM_PATH || "chromium-browser";
213
+ const port = options.port || 9333;
214
+
215
+ const args = [
216
+ "--headless", `--remote-debugging-port=${port}`,
217
+ "--no-sandbox", "--disable-setuid-sandbox", "--disable-dev-shm-usage",
218
+ "--disable-gpu", "--no-first-run", "--disable-extensions",
219
+ "--window-size=1280,800",
220
+ ...(options.args || []),
221
+ ];
222
+
223
+ const proc = spawn(chromePath, args, { stdio: "ignore" });
224
+
225
+ // 等 CDP 端口就绪
226
+ for (let i = 0; i < 30; i++) {
227
+ try {
228
+ const data = await new Promise((resolve, reject) => {
229
+ http.get(`http://127.0.0.1:${port}/json/version`, (res) => {
230
+ let d = "";
231
+ res.on("data", c => d += c);
232
+ res.on("end", () => {
233
+ const jsonStart = d.indexOf("{");
234
+ resolve(JSON.parse(jsonStart >= 0 ? d.slice(jsonStart) : d));
235
+ });
236
+ }).on("error", reject);
237
+ });
238
+ return new PlayleftBrowser(proc, data.webSocketDebuggerUrl);
239
+ } catch {
240
+ await new Promise(r => setTimeout(r, 300));
241
+ }
242
+ }
243
+ proc.kill();
244
+ throw new Error("Chromium 启动超时");
245
+ }
246
+
247
+ module.exports = { launch, PlayleftBrowser, PlayleftPage };
@@ -0,0 +1,76 @@
1
+ #!/usr/bin/env python3
2
+ """轻量 Google 搜索代理 — 用 Chrome cookie 绕过反爬"""
3
+ import sqlite3, shutil, os, tempfile, json, re, sys
4
+ from pathlib import Path
5
+ from urllib.parse import urlencode
6
+ from http.server import HTTPServer, BaseHTTPRequestHandler
7
+ import requests
8
+
9
+ PORT = int(os.environ.get("SEARCH_PORT", "8889"))
10
+ COOKIE_DB = Path.home() / "Library/Application Support/Google/Chrome/Default/Cookies"
11
+
12
+ def load_cookies():
13
+ if not COOKIE_DB.exists():
14
+ return {}
15
+ tmp = tempfile.mktemp(suffix=".sqlite")
16
+ shutil.copy2(COOKIE_DB, tmp)
17
+ try:
18
+ conn = sqlite3.connect(tmp)
19
+ rows = conn.execute("SELECT host_key, name, value FROM cookies WHERE host_key LIKE '%google%'").fetchall()
20
+ return {name: value for _, name, value in rows}
21
+ finally:
22
+ os.unlink(tmp)
23
+
24
+ HEADERS = {
25
+ "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36",
26
+ "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
27
+ "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
28
+ }
29
+
30
+ def search_google(query: str, num: int = 8) -> list:
31
+ params = {"q": query, "num": num, "hl": "zh-CN"}
32
+ cookies = load_cookies()
33
+ if not cookies:
34
+ return [{"title": "错误", "url": "", "snippet": "无法读取 Chrome cookie——请先登录 Google"}]
35
+ try:
36
+ r = requests.get("https://www.google.com/search", params=params, headers=HEADERS, cookies=cookies, timeout=8)
37
+ if r.status_code != 200:
38
+ return [{"title": f"Google 返回 {r.status_code}", "url": "", "snippet": ""}]
39
+ # 简单 HTML 提取
40
+ results = []
41
+ # 匹配: <a href="/url?q=REAL_URL" ...><h3>TITLE</h3></a> ... <div ...>SNIPPET</div>
42
+ blocks = re.findall(r'<a[^>]*href="/url\?q=([^"&]+)[^"]*"[^>]*>(.*?)</a>(.*?)<div[^>]*class="[^"]*BNeawe[^"]*"[^>]*>(.*?)</div>', r.text, re.DOTALL)
43
+ for url, title_html, _, snippet in blocks[:num]:
44
+ title = re.sub(r'<[^>]+>', '', title_html)
45
+ if not title.strip():
46
+ continue
47
+ results.append({
48
+ "title": title.strip(),
49
+ "url": url,
50
+ "snippet": re.sub(r'<[^>]+>', '', snippet).strip()[:200]
51
+ })
52
+ return results or [{"title": "无结果", "url": "", "snippet": f"页面长度: {len(r.text)}"}]
53
+ except Exception as e:
54
+ return [{"title": "搜索异常", "url": "", "snippet": str(e)}]
55
+
56
+ class Handler(BaseHTTPRequestHandler):
57
+ def do_GET(self):
58
+ if self.path.startswith("/search"):
59
+ q = self.path.split("?q=")[-1].split("&")[0] if "?q=" in self.path else ""
60
+ from urllib.parse import unquote
61
+ q = unquote(q)
62
+ results = search_google(q)
63
+ self.send_response(200)
64
+ self.send_header("Content-Type", "application/json")
65
+ self.end_headers()
66
+ self.wfile.write(json.dumps({"query": q, "results": results}, ensure_ascii=False).encode())
67
+ else:
68
+ self.send_response(200)
69
+ self.send_header("Content-Type", "text/plain")
70
+ self.end_headers()
71
+ self.wfile.write(b'Google Search Proxy - GET /search?q=QUERY')
72
+
73
+ if __name__ == "__main__":
74
+ server = HTTPServer(("127.0.0.1", PORT), Handler)
75
+ print(f"🔍 Google 搜索代理启动: http://127.0.0.1:{PORT}/search?q=test")
76
+ server.serve_forever()
@@ -0,0 +1,59 @@
1
+ # technology.server — 云端/本地服务
2
+
3
+ agent 使用的后端基础设施。phone app 调用这些服务获取能力。
4
+
5
+ ## browser-service(浏览器服务)
6
+
7
+ 用 playleft(自写零依赖 CDP 客户端)控制 headless Chrome,为 agent 提供动态网页访问能力。
8
+
9
+ ### 架构
10
+
11
+ ```
12
+ phone app (Safari 等)
13
+ → HTTP POST http://localhost:9222
14
+ → browser-service.cjs
15
+ → playleft.cjs (WebSocket CDP)
16
+ → Chrome headless
17
+ → 网页
18
+ ```
19
+
20
+ ### 启动
21
+
22
+ ```bash
23
+ # 本地(默认,用系统 Chrome)
24
+ CHROMIUM_PATH="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" node browser-service.cjs
25
+
26
+ # 云服务器
27
+ CHROMIUM_PATH=/usr/bin/chromium-browser BROWSER_PORT=9222 node browser-service.cjs
28
+ ```
29
+
30
+ ### 切换本地/云端
31
+
32
+ pi-coding-master 通过环境变量 `PI_BROWSER` 切换:
33
+ - 不设 = 默认 `http://localhost:9222`(本地)
34
+ - `PI_BROWSER=http://your-server:9222`(云端)
35
+
36
+ ### API
37
+
38
+ POST JSON,所有操作通过 `action` 字段区分:
39
+
40
+ | action | 参数 | 说明 |
41
+ |--------|------|------|
42
+ | open | url | 打开网页(执行 JS,等待加载) |
43
+ | text | limit? | 读取页面全部文字 |
44
+ | links | limit? | 列出链接 |
45
+ | search | query | 在页面内搜索文字 |
46
+ | click | selector | 点击元素 |
47
+ | type | selector, text | 输入文字 |
48
+ | scroll | direction?, amount? | 滚动 |
49
+ | back | | 后退 |
50
+ | url | | 当前 URL |
51
+ | cookie_import | cookies[] | 导入 cookies |
52
+ | cookie_export | | 导出 cookies |
53
+ | close | | 关闭页面 |
54
+
55
+ ### 文件
56
+
57
+ - `playleft.cjs` — 零依赖 CDP 客户端(~200行),直接用 Node 原生 WebSocket 控制 Chrome
58
+ - `browser-service.cjs` — HTTP API 包装,cookie 持久化
59
+ - `data/cookies/` — 自动生成,per-session cookie 存储
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env -S node --experimental-transform-types
2
+ /**
3
+ * CLI entry point for the refactored coding agent.
4
+ * Uses main.ts with AgentSession and new mode modules.
5
+ *
6
+ * Test with: npx tsx src/cli-new.ts [args...]
7
+ */
8
+ import { APP_NAME } from "./config.js";
9
+ import { configureHttpDispatcher } from "./core/http-dispatcher.js";
10
+ import { main } from "./main.js";
11
+ process.title = APP_NAME;
12
+ process.env.PI_CODING_AGENT = "true";
13
+ process.emitWarning = (() => { });
14
+ // Configure undici's global dispatcher before provider SDKs issue requests.
15
+ // Runtime settings are applied once SettingsManager has loaded global/project settings.
16
+ configureHttpDispatcher();
17
+ main(process.argv.slice(2));
18
+ //# sourceMappingURL=cli.js.map