@henlii/pidance 0.1.0

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 (477) hide show
  1. package/.next/BUILD_ID +1 -0
  2. package/.next/app-path-routes-manifest.json +54 -0
  3. package/.next/build-manifest.json +20 -0
  4. package/.next/package.json +1 -0
  5. package/.next/prerender-manifest.json +114 -0
  6. package/.next/required-server-files.json +340 -0
  7. package/.next/routes-manifest.json +405 -0
  8. package/.next/server/app/_global-error/page.js +32 -0
  9. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -0
  10. package/.next/server/app/_global-error.html +1 -0
  11. package/.next/server/app/_global-error.meta +16 -0
  12. package/.next/server/app/_global-error.rsc +14 -0
  13. package/.next/server/app/_global-error.segments/_full.segment.rsc +14 -0
  14. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +5 -0
  15. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +5 -0
  16. package/.next/server/app/_global-error.segments/_head.segment.rsc +5 -0
  17. package/.next/server/app/_global-error.segments/_index.segment.rsc +5 -0
  18. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
  19. package/.next/server/app/_not-found/page.js +2 -0
  20. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
  21. package/.next/server/app/_not-found.html +1 -0
  22. package/.next/server/app/_not-found.meta +16 -0
  23. package/.next/server/app/_not-found.rsc +20 -0
  24. package/.next/server/app/_not-found.segments/_full.segment.rsc +20 -0
  25. package/.next/server/app/_not-found.segments/_head.segment.rsc +6 -0
  26. package/.next/server/app/_not-found.segments/_index.segment.rsc +7 -0
  27. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -0
  28. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +5 -0
  29. package/.next/server/app/_not-found.segments/_tree.segment.rsc +5 -0
  30. package/.next/server/app/api/about/route.js +1 -0
  31. package/.next/server/app/api/about/route_client-reference-manifest.js +1 -0
  32. package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -0
  33. package/.next/server/app/api/agent/[id]/bash-output/route_client-reference-manifest.js +1 -0
  34. package/.next/server/app/api/agent/[id]/events/route.js +3 -0
  35. package/.next/server/app/api/agent/[id]/events/route_client-reference-manifest.js +1 -0
  36. package/.next/server/app/api/agent/[id]/route.js +1 -0
  37. package/.next/server/app/api/agent/[id]/route_client-reference-manifest.js +1 -0
  38. package/.next/server/app/api/agent/new/route.js +1 -0
  39. package/.next/server/app/api/agent/new/route_client-reference-manifest.js +1 -0
  40. package/.next/server/app/api/agent/running/events/route.js +3 -0
  41. package/.next/server/app/api/agent/running/events/route_client-reference-manifest.js +1 -0
  42. package/.next/server/app/api/agent/running/route.js +1 -0
  43. package/.next/server/app/api/agent/running/route_client-reference-manifest.js +1 -0
  44. package/.next/server/app/api/agent-settings/route.js +2 -0
  45. package/.next/server/app/api/agent-settings/route_client-reference-manifest.js +1 -0
  46. package/.next/server/app/api/attachments/route.js +1 -0
  47. package/.next/server/app/api/attachments/route_client-reference-manifest.js +1 -0
  48. package/.next/server/app/api/auth/all-providers/route.js +1 -0
  49. package/.next/server/app/api/auth/all-providers/route_client-reference-manifest.js +1 -0
  50. package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -0
  51. package/.next/server/app/api/auth/api-key/[provider]/route_client-reference-manifest.js +1 -0
  52. package/.next/server/app/api/auth/login/[provider]/route.js +3 -0
  53. package/.next/server/app/api/auth/login/[provider]/route_client-reference-manifest.js +1 -0
  54. package/.next/server/app/api/auth/logout/[provider]/route.js +1 -0
  55. package/.next/server/app/api/auth/logout/[provider]/route_client-reference-manifest.js +1 -0
  56. package/.next/server/app/api/auth/providers/route.js +1 -0
  57. package/.next/server/app/api/auth/providers/route_client-reference-manifest.js +1 -0
  58. package/.next/server/app/api/auth/ui-session/route.js +1 -0
  59. package/.next/server/app/api/auth/ui-session/route_client-reference-manifest.js +1 -0
  60. package/.next/server/app/api/cwd/browse/route.js +1 -0
  61. package/.next/server/app/api/cwd/browse/route_client-reference-manifest.js +1 -0
  62. package/.next/server/app/api/cwd/validate/route.js +1 -0
  63. package/.next/server/app/api/cwd/validate/route_client-reference-manifest.js +1 -0
  64. package/.next/server/app/api/default-cwd/route.js +1 -0
  65. package/.next/server/app/api/default-cwd/route_client-reference-manifest.js +1 -0
  66. package/.next/server/app/api/file-index/route.js +1 -0
  67. package/.next/server/app/api/file-index/route_client-reference-manifest.js +1 -0
  68. package/.next/server/app/api/files/[...path]/route.js +49 -0
  69. package/.next/server/app/api/files/[...path]/route_client-reference-manifest.js +1 -0
  70. package/.next/server/app/api/git/diff/route.js +1 -0
  71. package/.next/server/app/api/git/diff/route_client-reference-manifest.js +1 -0
  72. package/.next/server/app/api/git/status/route.js +1 -0
  73. package/.next/server/app/api/git/status/route_client-reference-manifest.js +1 -0
  74. package/.next/server/app/api/home/route.js +1 -0
  75. package/.next/server/app/api/home/route_client-reference-manifest.js +1 -0
  76. package/.next/server/app/api/models/route.js +1 -0
  77. package/.next/server/app/api/models/route_client-reference-manifest.js +1 -0
  78. package/.next/server/app/api/models-config/route.js +1 -0
  79. package/.next/server/app/api/models-config/route_client-reference-manifest.js +1 -0
  80. package/.next/server/app/api/models-config/test/route.js +1 -0
  81. package/.next/server/app/api/models-config/test/route_client-reference-manifest.js +1 -0
  82. package/.next/server/app/api/plugins/route.js +2 -0
  83. package/.next/server/app/api/plugins/route_client-reference-manifest.js +1 -0
  84. package/.next/server/app/api/runtime/route.js +1 -0
  85. package/.next/server/app/api/runtime/route_client-reference-manifest.js +1 -0
  86. package/.next/server/app/api/runtime/switch/route.js +1 -0
  87. package/.next/server/app/api/runtime/switch/route_client-reference-manifest.js +1 -0
  88. package/.next/server/app/api/sessions/[id]/archive/route.js +1 -0
  89. package/.next/server/app/api/sessions/[id]/archive/route_client-reference-manifest.js +1 -0
  90. package/.next/server/app/api/sessions/[id]/auto-name/route.js +11 -0
  91. package/.next/server/app/api/sessions/[id]/auto-name/route_client-reference-manifest.js +1 -0
  92. package/.next/server/app/api/sessions/[id]/command-entry/route.js +1 -0
  93. package/.next/server/app/api/sessions/[id]/command-entry/route_client-reference-manifest.js +1 -0
  94. package/.next/server/app/api/sessions/[id]/context/route.js +1 -0
  95. package/.next/server/app/api/sessions/[id]/context/route_client-reference-manifest.js +1 -0
  96. package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -0
  97. package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route_client-reference-manifest.js +1 -0
  98. package/.next/server/app/api/sessions/[id]/export/route.js +67 -0
  99. package/.next/server/app/api/sessions/[id]/export/route_client-reference-manifest.js +1 -0
  100. package/.next/server/app/api/sessions/[id]/info/route.js +1 -0
  101. package/.next/server/app/api/sessions/[id]/info/route_client-reference-manifest.js +1 -0
  102. package/.next/server/app/api/sessions/[id]/route.js +1 -0
  103. package/.next/server/app/api/sessions/[id]/route_client-reference-manifest.js +1 -0
  104. package/.next/server/app/api/sessions/[id]/state/route.js +1 -0
  105. package/.next/server/app/api/sessions/[id]/state/route_client-reference-manifest.js +1 -0
  106. package/.next/server/app/api/sessions/[id]/tool-results/[toolCallId]/route.js +1 -0
  107. package/.next/server/app/api/sessions/[id]/tool-results/[toolCallId]/route_client-reference-manifest.js +1 -0
  108. package/.next/server/app/api/sessions/route.js +1 -0
  109. package/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -0
  110. package/.next/server/app/api/sessions/search/route.js +26 -0
  111. package/.next/server/app/api/sessions/search/route_client-reference-manifest.js +1 -0
  112. package/.next/server/app/api/skills/check/route.js +1 -0
  113. package/.next/server/app/api/skills/check/route_client-reference-manifest.js +1 -0
  114. package/.next/server/app/api/skills/install/route.js +1 -0
  115. package/.next/server/app/api/skills/install/route_client-reference-manifest.js +1 -0
  116. package/.next/server/app/api/skills/route.js +2 -0
  117. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -0
  118. package/.next/server/app/api/skills/search/route.js +1 -0
  119. package/.next/server/app/api/skills/search/route_client-reference-manifest.js +1 -0
  120. package/.next/server/app/api/skills/update/route.js +1 -0
  121. package/.next/server/app/api/skills/update/route_client-reference-manifest.js +1 -0
  122. package/.next/server/app/api/subagent-runs/route.js +1 -0
  123. package/.next/server/app/api/subagent-runs/route_client-reference-manifest.js +1 -0
  124. package/.next/server/app/api/worktrees/route.js +1 -0
  125. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -0
  126. package/.next/server/app/icon.png/route.js +1 -0
  127. package/.next/server/app/icon.png.body +0 -0
  128. package/.next/server/app/icon.png.meta +1 -0
  129. package/.next/server/app/index.html +1 -0
  130. package/.next/server/app/index.meta +14 -0
  131. package/.next/server/app/index.rsc +20 -0
  132. package/.next/server/app/index.segments/__PAGE__.segment.rsc +7 -0
  133. package/.next/server/app/index.segments/_full.segment.rsc +20 -0
  134. package/.next/server/app/index.segments/_head.segment.rsc +6 -0
  135. package/.next/server/app/index.segments/_index.segment.rsc +7 -0
  136. package/.next/server/app/index.segments/_tree.segment.rsc +5 -0
  137. package/.next/server/app/page.js +26 -0
  138. package/.next/server/app/page_client-reference-manifest.js +1 -0
  139. package/.next/server/app-paths-manifest.json +54 -0
  140. package/.next/server/chunks/1069.js +23 -0
  141. package/.next/server/chunks/1089.js +1 -0
  142. package/.next/server/chunks/1130.js +79 -0
  143. package/.next/server/chunks/1207.js +36 -0
  144. package/.next/server/chunks/1515.js +1 -0
  145. package/.next/server/chunks/1570.js +24 -0
  146. package/.next/server/chunks/1605.js +1 -0
  147. package/.next/server/chunks/1707.js +93 -0
  148. package/.next/server/chunks/1734.js +1 -0
  149. package/.next/server/chunks/1792.js +38 -0
  150. package/.next/server/chunks/1813.js +1 -0
  151. package/.next/server/chunks/188.js +1 -0
  152. package/.next/server/chunks/1965.js +8 -0
  153. package/.next/server/chunks/2018.js +148 -0
  154. package/.next/server/chunks/2106.js +1 -0
  155. package/.next/server/chunks/2155.js +34 -0
  156. package/.next/server/chunks/2185.js +5 -0
  157. package/.next/server/chunks/2190.js +1 -0
  158. package/.next/server/chunks/2325.js +82 -0
  159. package/.next/server/chunks/2349.js +1 -0
  160. package/.next/server/chunks/2394.js +1 -0
  161. package/.next/server/chunks/2537.js +1 -0
  162. package/.next/server/chunks/2744.js +1 -0
  163. package/.next/server/chunks/2815.js +1 -0
  164. package/.next/server/chunks/2817.js +17 -0
  165. package/.next/server/chunks/2871.js +8 -0
  166. package/.next/server/chunks/2903.js +1 -0
  167. package/.next/server/chunks/3115.js +4 -0
  168. package/.next/server/chunks/319.js +45 -0
  169. package/.next/server/chunks/3252.js +115 -0
  170. package/.next/server/chunks/3379.js +1 -0
  171. package/.next/server/chunks/3504.js +1 -0
  172. package/.next/server/chunks/3533.js +1293 -0
  173. package/.next/server/chunks/3603.js +1 -0
  174. package/.next/server/chunks/3757.js +1 -0
  175. package/.next/server/chunks/3770.js +1 -0
  176. package/.next/server/chunks/3776.js +1 -0
  177. package/.next/server/chunks/3894.js +1 -0
  178. package/.next/server/chunks/3960.js +1 -0
  179. package/.next/server/chunks/4030.js +86 -0
  180. package/.next/server/chunks/4188.js +1 -0
  181. package/.next/server/chunks/4286.js +1 -0
  182. package/.next/server/chunks/4309.js +1 -0
  183. package/.next/server/chunks/4338.js +64 -0
  184. package/.next/server/chunks/4367.js +1 -0
  185. package/.next/server/chunks/4372.js +1 -0
  186. package/.next/server/chunks/4424.js +215 -0
  187. package/.next/server/chunks/443.js +32 -0
  188. package/.next/server/chunks/4485.js +1 -0
  189. package/.next/server/chunks/46.js +62 -0
  190. package/.next/server/chunks/4674.js +1 -0
  191. package/.next/server/chunks/4741.js +20 -0
  192. package/.next/server/chunks/4742.js +80 -0
  193. package/.next/server/chunks/4796.js +104 -0
  194. package/.next/server/chunks/4980.js +1 -0
  195. package/.next/server/chunks/5029.js +1 -0
  196. package/.next/server/chunks/5198.js +90 -0
  197. package/.next/server/chunks/5318.js +1 -0
  198. package/.next/server/chunks/5319.js +1 -0
  199. package/.next/server/chunks/5461.js +1 -0
  200. package/.next/server/chunks/5598.js +1 -0
  201. package/.next/server/chunks/5627.js +1 -0
  202. package/.next/server/chunks/6192.js +6 -0
  203. package/.next/server/chunks/6219.js +41 -0
  204. package/.next/server/chunks/6337.js +1 -0
  205. package/.next/server/chunks/6454.js +28 -0
  206. package/.next/server/chunks/6476.js +27 -0
  207. package/.next/server/chunks/6509.js +153 -0
  208. package/.next/server/chunks/6949.js +1 -0
  209. package/.next/server/chunks/6953.js +1 -0
  210. package/.next/server/chunks/703.js +1 -0
  211. package/.next/server/chunks/7075.js +1 -0
  212. package/.next/server/chunks/7129.js +6 -0
  213. package/.next/server/chunks/7152.js +1 -0
  214. package/.next/server/chunks/7181.js +160 -0
  215. package/.next/server/chunks/7233.js +1 -0
  216. package/.next/server/chunks/7307.js +1 -0
  217. package/.next/server/chunks/7434.js +77 -0
  218. package/.next/server/chunks/7527.js +1 -0
  219. package/.next/server/chunks/7561.js +1 -0
  220. package/.next/server/chunks/7872.js +1 -0
  221. package/.next/server/chunks/7914.js +226 -0
  222. package/.next/server/chunks/8213.js +1 -0
  223. package/.next/server/chunks/8267.js +24 -0
  224. package/.next/server/chunks/8294.js +1 -0
  225. package/.next/server/chunks/835.js +1 -0
  226. package/.next/server/chunks/8645.js +141 -0
  227. package/.next/server/chunks/8875.js +2 -0
  228. package/.next/server/chunks/9071.js +1 -0
  229. package/.next/server/chunks/9081.js +1 -0
  230. package/.next/server/chunks/9169.js +1 -0
  231. package/.next/server/chunks/9280.js +255 -0
  232. package/.next/server/chunks/940.js +287 -0
  233. package/.next/server/chunks/9486.js +1 -0
  234. package/.next/server/chunks/9509.js +1 -0
  235. package/.next/server/chunks/951.js +8 -0
  236. package/.next/server/chunks/9784.js +2 -0
  237. package/.next/server/chunks/981.js +2 -0
  238. package/.next/server/chunks/9874.js +1 -0
  239. package/.next/server/chunks/9883.js +2 -0
  240. package/.next/server/functions-config-manifest.json +21 -0
  241. package/.next/server/instrumentation.js +1 -0
  242. package/.next/server/interception-route-rewrite-manifest.js +1 -0
  243. package/.next/server/middleware-build-manifest.js +1 -0
  244. package/.next/server/middleware-manifest.json +6 -0
  245. package/.next/server/middleware-react-loadable-manifest.js +1 -0
  246. package/.next/server/middleware.js +18 -0
  247. package/.next/server/next-font-manifest.json +1 -0
  248. package/.next/server/pages/404.html +1 -0
  249. package/.next/server/pages/500.html +1 -0
  250. package/.next/server/pages-manifest.json +4 -0
  251. package/.next/server/prefetch-hints.json +1 -0
  252. package/.next/server/server-reference-manifest.js +1 -0
  253. package/.next/server/server-reference-manifest.json +1 -0
  254. package/.next/server/webpack-runtime.js +1 -0
  255. package/.next/static/M5hSQWk4seDK1NGMqmgGY/_buildManifest.js +1 -0
  256. package/.next/static/M5hSQWk4seDK1NGMqmgGY/_ssgManifest.js +1 -0
  257. package/.next/static/chunks/050357b0.986bc6597f184c3b.js +62 -0
  258. package/.next/static/chunks/1212.c32f02f461182c5b.js +226 -0
  259. package/.next/static/chunks/127.394be8b7a579a747.js +8 -0
  260. package/.next/static/chunks/1327.09252bb80616cc3a.js +1 -0
  261. package/.next/static/chunks/1377.e883e13864574c26.js +36 -0
  262. package/.next/static/chunks/1390.3e7d84d187924556.js +104 -0
  263. package/.next/static/chunks/1438.d742ea00e0f072ca.js +27 -0
  264. package/.next/static/chunks/1474.605367a77b6161a0.js +115 -0
  265. package/.next/static/chunks/1576.93e0666990c12243.js +38 -0
  266. package/.next/static/chunks/1951.4b73bf47740c2bfb.js +160 -0
  267. package/.next/static/chunks/2081.47b6e9391094055f.js +1 -0
  268. package/.next/static/chunks/2178.2adcd2b51553bd50.js +1 -0
  269. package/.next/static/chunks/2217.4bf1455eb89bdd9b.js +1 -0
  270. package/.next/static/chunks/2325.23caf22075e51aa5.js +1 -0
  271. package/.next/static/chunks/2356.52627097a8b56ec1.js +1 -0
  272. package/.next/static/chunks/2418.b5d9e177e10a686e.js +1 -0
  273. package/.next/static/chunks/249.973d23a3940a5fc9.js +1 -0
  274. package/.next/static/chunks/2554.ca4cb2f8bc69f32e.js +86 -0
  275. package/.next/static/chunks/2566.505384571dedf726.js +79 -0
  276. package/.next/static/chunks/2646.c653cac657d7b035.js +215 -0
  277. package/.next/static/chunks/2784.3d8e0d20edb71dcd.js +64 -0
  278. package/.next/static/chunks/2821.934bcf60fbdc28c6.js +1 -0
  279. package/.next/static/chunks/2847.b66f6d92e4f5e495.js +23 -0
  280. package/.next/static/chunks/2866.4ecb766127917d99.js +1 -0
  281. package/.next/static/chunks/28f0fb3b.5f2b0099c24fbe32.js +122 -0
  282. package/.next/static/chunks/3308.23eadd1744bb967c.js +73 -0
  283. package/.next/static/chunks/3316.5c51b238308a838b.js +34 -0
  284. package/.next/static/chunks/3341.6042c7cb7225d88d.js +41 -0
  285. package/.next/static/chunks/339.1a094bb1c6eaf9dc.js +1 -0
  286. package/.next/static/chunks/370.57cfa27da8567918.js +1 -0
  287. package/.next/static/chunks/3708.81252290870c8487.js +1 -0
  288. package/.next/static/chunks/3794-907785a527d8128b.js +32 -0
  289. package/.next/static/chunks/3832.5d713641634c65b5.js +24 -0
  290. package/.next/static/chunks/4368.e43e952c5535cba6.js +80 -0
  291. package/.next/static/chunks/4424.fd0c93a807a333e1.js +1 -0
  292. package/.next/static/chunks/4866.d1060b4faf2ae1e2.js +1 -0
  293. package/.next/static/chunks/4bd1b696-e356ca5ba0218e27.js +1 -0
  294. package/.next/static/chunks/5020.9ac8d0dc8390bb6e.js +1 -0
  295. package/.next/static/chunks/5166.7d3648847337fe52.js +62 -0
  296. package/.next/static/chunks/5242.7b643c6b3394cac1.js +1 -0
  297. package/.next/static/chunks/5361.afc00ab2626bacbf.js +1 -0
  298. package/.next/static/chunks/5460.0337c14f29b9ff9a.js +90 -0
  299. package/.next/static/chunks/5521.cfdf2cfc6db31407.js +1 -0
  300. package/.next/static/chunks/5531-66b1a21ff1c52081.js +1 -0
  301. package/.next/static/chunks/5715.048f1bae2c41fa89.js +1 -0
  302. package/.next/static/chunks/6121.5b8cb3199531d194.js +1 -0
  303. package/.next/static/chunks/6294.24f510c0c3e3714c.js +1 -0
  304. package/.next/static/chunks/6467.b354ed428e3bef01.js +5 -0
  305. package/.next/static/chunks/66d203d7.3e90bc8f1f096a8e.js +153 -0
  306. package/.next/static/chunks/6787.a15de946178e8ef7.js +1 -0
  307. package/.next/static/chunks/7176.2979806e91c0df29.js +1 -0
  308. package/.next/static/chunks/7256.e07cf52d87d40252.js +1 -0
  309. package/.next/static/chunks/7543.89f7b805ed0f2901.js +1 -0
  310. package/.next/static/chunks/776.fe8e64ab3669a915.js +287 -0
  311. package/.next/static/chunks/8118.f905a690db2b859b.js +148 -0
  312. package/.next/static/chunks/8233.a465d18b04719c6d.js +141 -0
  313. package/.next/static/chunks/8249.7a48897e80a16391.js +1 -0
  314. package/.next/static/chunks/8365.dc22e1ff76d04a3b.js +93 -0
  315. package/.next/static/chunks/8498.1083c36ddbbedd69.js +1 -0
  316. package/.next/static/chunks/8511.c7c064a8f58f1355.js +1 -0
  317. package/.next/static/chunks/869.7152372b662e31af.js +1 -0
  318. package/.next/static/chunks/8782.9ab86081b5661687.js +77 -0
  319. package/.next/static/chunks/8863.fa0320ea586efb3b.js +1 -0
  320. package/.next/static/chunks/8953.e5e7399c7952a1ff.js +1 -0
  321. package/.next/static/chunks/90542734.b75ad0df50bf68f5.js +1 -0
  322. package/.next/static/chunks/9165.02dc1f4804b94791.js +24 -0
  323. package/.next/static/chunks/934.9006461bd0548660.js +1 -0
  324. package/.next/static/chunks/9522.c7c6e9c330f9ba6b.js +1 -0
  325. package/.next/static/chunks/9667.f6918525b31688b4.js +1 -0
  326. package/.next/static/chunks/9705.40a82b97f214e28b.js +1 -0
  327. package/.next/static/chunks/9780-509b4d1bec6b6e17.js +1 -0
  328. package/.next/static/chunks/9793.4567af813117ad25.js +1 -0
  329. package/.next/static/chunks/app/_global-error/page-451d6ba79f90a9c4.js +1 -0
  330. package/.next/static/chunks/app/_not-found/page-32c24c2d341ba407.js +1 -0
  331. package/.next/static/chunks/app/api/about/route-451d6ba79f90a9c4.js +1 -0
  332. package/.next/static/chunks/app/api/agent/[id]/bash-output/route-451d6ba79f90a9c4.js +1 -0
  333. package/.next/static/chunks/app/api/agent/[id]/events/route-451d6ba79f90a9c4.js +1 -0
  334. package/.next/static/chunks/app/api/agent/[id]/route-451d6ba79f90a9c4.js +1 -0
  335. package/.next/static/chunks/app/api/agent/new/route-451d6ba79f90a9c4.js +1 -0
  336. package/.next/static/chunks/app/api/agent/running/events/route-451d6ba79f90a9c4.js +1 -0
  337. package/.next/static/chunks/app/api/agent/running/route-451d6ba79f90a9c4.js +1 -0
  338. package/.next/static/chunks/app/api/agent-settings/route-451d6ba79f90a9c4.js +1 -0
  339. package/.next/static/chunks/app/api/attachments/route-451d6ba79f90a9c4.js +1 -0
  340. package/.next/static/chunks/app/api/auth/all-providers/route-451d6ba79f90a9c4.js +1 -0
  341. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-451d6ba79f90a9c4.js +1 -0
  342. package/.next/static/chunks/app/api/auth/login/[provider]/route-451d6ba79f90a9c4.js +1 -0
  343. package/.next/static/chunks/app/api/auth/logout/[provider]/route-451d6ba79f90a9c4.js +1 -0
  344. package/.next/static/chunks/app/api/auth/providers/route-451d6ba79f90a9c4.js +1 -0
  345. package/.next/static/chunks/app/api/auth/ui-session/route-451d6ba79f90a9c4.js +1 -0
  346. package/.next/static/chunks/app/api/cwd/browse/route-451d6ba79f90a9c4.js +1 -0
  347. package/.next/static/chunks/app/api/cwd/validate/route-451d6ba79f90a9c4.js +1 -0
  348. package/.next/static/chunks/app/api/default-cwd/route-451d6ba79f90a9c4.js +1 -0
  349. package/.next/static/chunks/app/api/file-index/route-451d6ba79f90a9c4.js +1 -0
  350. package/.next/static/chunks/app/api/files/[...path]/route-451d6ba79f90a9c4.js +1 -0
  351. package/.next/static/chunks/app/api/git/diff/route-451d6ba79f90a9c4.js +1 -0
  352. package/.next/static/chunks/app/api/git/status/route-451d6ba79f90a9c4.js +1 -0
  353. package/.next/static/chunks/app/api/home/route-451d6ba79f90a9c4.js +1 -0
  354. package/.next/static/chunks/app/api/models/route-451d6ba79f90a9c4.js +1 -0
  355. package/.next/static/chunks/app/api/models-config/route-451d6ba79f90a9c4.js +1 -0
  356. package/.next/static/chunks/app/api/models-config/test/route-451d6ba79f90a9c4.js +1 -0
  357. package/.next/static/chunks/app/api/plugins/route-451d6ba79f90a9c4.js +1 -0
  358. package/.next/static/chunks/app/api/runtime/route-451d6ba79f90a9c4.js +1 -0
  359. package/.next/static/chunks/app/api/runtime/switch/route-451d6ba79f90a9c4.js +1 -0
  360. package/.next/static/chunks/app/api/sessions/[id]/archive/route-451d6ba79f90a9c4.js +1 -0
  361. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-451d6ba79f90a9c4.js +1 -0
  362. package/.next/static/chunks/app/api/sessions/[id]/command-entry/route-451d6ba79f90a9c4.js +1 -0
  363. package/.next/static/chunks/app/api/sessions/[id]/context/route-451d6ba79f90a9c4.js +1 -0
  364. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-451d6ba79f90a9c4.js +1 -0
  365. package/.next/static/chunks/app/api/sessions/[id]/export/route-451d6ba79f90a9c4.js +1 -0
  366. package/.next/static/chunks/app/api/sessions/[id]/info/route-451d6ba79f90a9c4.js +1 -0
  367. package/.next/static/chunks/app/api/sessions/[id]/route-451d6ba79f90a9c4.js +1 -0
  368. package/.next/static/chunks/app/api/sessions/[id]/state/route-451d6ba79f90a9c4.js +1 -0
  369. package/.next/static/chunks/app/api/sessions/[id]/tool-results/[toolCallId]/route-451d6ba79f90a9c4.js +1 -0
  370. package/.next/static/chunks/app/api/sessions/route-451d6ba79f90a9c4.js +1 -0
  371. package/.next/static/chunks/app/api/sessions/search/route-451d6ba79f90a9c4.js +1 -0
  372. package/.next/static/chunks/app/api/skills/check/route-451d6ba79f90a9c4.js +1 -0
  373. package/.next/static/chunks/app/api/skills/install/route-451d6ba79f90a9c4.js +1 -0
  374. package/.next/static/chunks/app/api/skills/route-451d6ba79f90a9c4.js +1 -0
  375. package/.next/static/chunks/app/api/skills/search/route-451d6ba79f90a9c4.js +1 -0
  376. package/.next/static/chunks/app/api/skills/update/route-451d6ba79f90a9c4.js +1 -0
  377. package/.next/static/chunks/app/api/subagent-runs/route-451d6ba79f90a9c4.js +1 -0
  378. package/.next/static/chunks/app/api/worktrees/route-451d6ba79f90a9c4.js +1 -0
  379. package/.next/static/chunks/app/layout-88764b4be2728d3f.js +1 -0
  380. package/.next/static/chunks/app/page-f1ebfa55dc4bd91c.js +25 -0
  381. package/.next/static/chunks/d2c09beb.4f5ff7197b5bbbea.js +1 -0
  382. package/.next/static/chunks/d3ac728e-7964f816a1ca64e5.js +1 -0
  383. package/.next/static/chunks/da12927c.00775c0e4542fd3e.js +82 -0
  384. package/.next/static/chunks/framework-711ef29bc66f648c.js +1 -0
  385. package/.next/static/chunks/main-8e7ef001ea9dd641.js +5 -0
  386. package/.next/static/chunks/main-app-06b2b50b226e40d1.js +1 -0
  387. package/.next/static/chunks/next/dist/client/components/builtin/app-error-451d6ba79f90a9c4.js +1 -0
  388. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-451d6ba79f90a9c4.js +1 -0
  389. package/.next/static/chunks/next/dist/client/components/builtin/global-error-f351187b7f546530.js +1 -0
  390. package/.next/static/chunks/next/dist/client/components/builtin/not-found-451d6ba79f90a9c4.js +1 -0
  391. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-451d6ba79f90a9c4.js +1 -0
  392. package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  393. package/.next/static/chunks/webpack-9f5e68be126b5e81.js +1 -0
  394. package/.next/static/css/88714c00e109ce28.css +1 -0
  395. package/.next/static/css/edecf7d5ab33f0fd.css +1 -0
  396. package/.next/static/media/15605e25b523335c-s.woff2 +0 -0
  397. package/.next/static/media/1a3dce5cfb5f7760-s.woff2 +0 -0
  398. package/.next/static/media/1cdd02902f937a18-s.woff2 +0 -0
  399. package/.next/static/media/4c4b3b30b6bcb2be-s.woff2 +0 -0
  400. package/.next/static/media/641a7b8a5800ee0e-s.woff2 +0 -0
  401. package/.next/static/media/7deddc85b7ffd1dc-s.p.woff2 +0 -0
  402. package/.next/static/media/KaTeX_AMS-Regular.1608a09b.woff +0 -0
  403. package/.next/static/media/KaTeX_AMS-Regular.4aafdb68.ttf +0 -0
  404. package/.next/static/media/KaTeX_AMS-Regular.a79f1c31.woff2 +0 -0
  405. package/.next/static/media/KaTeX_Caligraphic-Bold.b6770918.woff +0 -0
  406. package/.next/static/media/KaTeX_Caligraphic-Bold.cce5b8ec.ttf +0 -0
  407. package/.next/static/media/KaTeX_Caligraphic-Bold.ec17d132.woff2 +0 -0
  408. package/.next/static/media/KaTeX_Caligraphic-Regular.07ef19e7.ttf +0 -0
  409. package/.next/static/media/KaTeX_Caligraphic-Regular.55fac258.woff2 +0 -0
  410. package/.next/static/media/KaTeX_Caligraphic-Regular.dad44a7f.woff +0 -0
  411. package/.next/static/media/KaTeX_Fraktur-Bold.9f256b85.woff +0 -0
  412. package/.next/static/media/KaTeX_Fraktur-Bold.b18f59e1.ttf +0 -0
  413. package/.next/static/media/KaTeX_Fraktur-Bold.d42a5579.woff2 +0 -0
  414. package/.next/static/media/KaTeX_Fraktur-Regular.7c187121.woff +0 -0
  415. package/.next/static/media/KaTeX_Fraktur-Regular.d3c882a6.woff2 +0 -0
  416. package/.next/static/media/KaTeX_Fraktur-Regular.ed38e79f.ttf +0 -0
  417. package/.next/static/media/KaTeX_Main-Bold.b74a1a8b.ttf +0 -0
  418. package/.next/static/media/KaTeX_Main-Bold.c3fb5ac2.woff2 +0 -0
  419. package/.next/static/media/KaTeX_Main-Bold.d181c465.woff +0 -0
  420. package/.next/static/media/KaTeX_Main-BoldItalic.6f2bb1df.woff2 +0 -0
  421. package/.next/static/media/KaTeX_Main-BoldItalic.70d8b0a5.ttf +0 -0
  422. package/.next/static/media/KaTeX_Main-BoldItalic.e3f82f9d.woff +0 -0
  423. package/.next/static/media/KaTeX_Main-Italic.47373d1e.ttf +0 -0
  424. package/.next/static/media/KaTeX_Main-Italic.8916142b.woff2 +0 -0
  425. package/.next/static/media/KaTeX_Main-Italic.9024d815.woff +0 -0
  426. package/.next/static/media/KaTeX_Main-Regular.0462f03b.woff2 +0 -0
  427. package/.next/static/media/KaTeX_Main-Regular.7f51fe03.woff +0 -0
  428. package/.next/static/media/KaTeX_Main-Regular.b7f8fe9b.ttf +0 -0
  429. package/.next/static/media/KaTeX_Math-BoldItalic.572d331f.woff2 +0 -0
  430. package/.next/static/media/KaTeX_Math-BoldItalic.a879cf83.ttf +0 -0
  431. package/.next/static/media/KaTeX_Math-BoldItalic.f1035d8d.woff +0 -0
  432. package/.next/static/media/KaTeX_Math-Italic.5295ba48.woff +0 -0
  433. package/.next/static/media/KaTeX_Math-Italic.939bc644.ttf +0 -0
  434. package/.next/static/media/KaTeX_Math-Italic.f28c23ac.woff2 +0 -0
  435. package/.next/static/media/KaTeX_SansSerif-Bold.8c5b5494.woff2 +0 -0
  436. package/.next/static/media/KaTeX_SansSerif-Bold.94e1e8dc.ttf +0 -0
  437. package/.next/static/media/KaTeX_SansSerif-Bold.bf59d231.woff +0 -0
  438. package/.next/static/media/KaTeX_SansSerif-Italic.3b1e59b3.woff2 +0 -0
  439. package/.next/static/media/KaTeX_SansSerif-Italic.7c9bc82b.woff +0 -0
  440. package/.next/static/media/KaTeX_SansSerif-Italic.b4c20c84.ttf +0 -0
  441. package/.next/static/media/KaTeX_SansSerif-Regular.74048478.woff +0 -0
  442. package/.next/static/media/KaTeX_SansSerif-Regular.ba21ed5f.woff2 +0 -0
  443. package/.next/static/media/KaTeX_SansSerif-Regular.d4d7ba48.ttf +0 -0
  444. package/.next/static/media/KaTeX_Script-Regular.03e9641d.woff2 +0 -0
  445. package/.next/static/media/KaTeX_Script-Regular.07505710.woff +0 -0
  446. package/.next/static/media/KaTeX_Script-Regular.fe9cbbe1.ttf +0 -0
  447. package/.next/static/media/KaTeX_Size1-Regular.e1e279cb.woff +0 -0
  448. package/.next/static/media/KaTeX_Size1-Regular.eae34984.woff2 +0 -0
  449. package/.next/static/media/KaTeX_Size1-Regular.fabc004a.ttf +0 -0
  450. package/.next/static/media/KaTeX_Size2-Regular.57727022.woff +0 -0
  451. package/.next/static/media/KaTeX_Size2-Regular.5916a24f.woff2 +0 -0
  452. package/.next/static/media/KaTeX_Size2-Regular.d6b476ec.ttf +0 -0
  453. package/.next/static/media/KaTeX_Size3-Regular.9acaf01c.woff +0 -0
  454. package/.next/static/media/KaTeX_Size3-Regular.a144ef58.ttf +0 -0
  455. package/.next/static/media/KaTeX_Size3-Regular.b4230e7e.woff2 +0 -0
  456. package/.next/static/media/KaTeX_Size4-Regular.10d95fd3.woff2 +0 -0
  457. package/.next/static/media/KaTeX_Size4-Regular.7a996c9d.woff +0 -0
  458. package/.next/static/media/KaTeX_Size4-Regular.fbccdabe.ttf +0 -0
  459. package/.next/static/media/KaTeX_Typewriter-Regular.6258592b.woff +0 -0
  460. package/.next/static/media/KaTeX_Typewriter-Regular.a8709e36.woff2 +0 -0
  461. package/.next/static/media/KaTeX_Typewriter-Regular.d97aaf4a.ttf +0 -0
  462. package/.next/static/media/ec14413c594b3356-s.p.woff2 +0 -0
  463. package/LICENSE +22 -0
  464. package/README.en.md +151 -0
  465. package/README.md +151 -0
  466. package/README.zh-CN.md +182 -0
  467. package/bin/pidance-auth-gate.js +44 -0
  468. package/bin/pidance-options.js +34 -0
  469. package/bin/pidance.js +95 -0
  470. package/package.json +92 -0
  471. package/public/brand/pidance-banner.svg +45 -0
  472. package/public/brand/pidance-icon.svg +32 -0
  473. package/public/brand/pidance-logo.png +0 -0
  474. package/public/brand/pidance-mark-dark.svg +18 -0
  475. package/public/brand/pidance-mark-light.svg +18 -0
  476. package/public/brand/pidance-mark.png +0 -0
  477. package/public/brand/pidance-preview.svg +279 -0
package/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 agegr
4
+ Copyright (c) 2026 Henry Li
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
package/README.en.md ADDED
@@ -0,0 +1,151 @@
1
+ <div align="center">
2
+ <img src="./docs/assets/pidance-banner.png" alt="Pidance — Move with Pi" width="760">
3
+ <p><strong>Let Pi sessions, tools, and project workflows move naturally in the browser.</strong></p>
4
+ <p>
5
+ <a href="./README.md">简体中文</a> ·
6
+ <a href="https://github.com/henlii/pidance/issues">Issues</a> ·
7
+ <a href="./docs/release.md">Release guide</a>
8
+ </p>
9
+ </div>
10
+
11
+ Pidance is an open-source web client for the [Pi](https://github.com/badlogic/pi-mono) coding agent. It reads local Pi session files directly and preserves Pi SDK session and runtime semantics, bringing live chat, project files, Git, worktrees, subagents, and configuration into one browser workspace. Pi remains the source of truth for data and execution semantics; Pidance provides a clearer and more complete interface.
12
+
13
+ > Current version: `0.1.0` · npm package: `@henlii/pidance` · CLI: `pidance`
14
+
15
+ ## Preview
16
+
17
+ ![Pidance new-session workspace](./docs/screenshots/desktop.png)
18
+
19
+ <p align="center"><sub>New-session workspace with project and worktree selectors, model controls, and contextual side panels. The path shown is anonymized.</sub></p>
20
+
21
+ ![Pidance appearance settings](./docs/screenshots/settings.png)
22
+
23
+ <p align="center"><sub>Appearance settings with Light, Dark, System, Chamber, and Fusion options.</sub></p>
24
+
25
+ ## Features
26
+
27
+ - **Project-oriented sessions**: browse a Project → Worktree → Session tree with search, recent sessions, archive/restore, rename, automatic titles, and HTML export.
28
+ - **Live agent chat**: stream responses, thinking, tool calls, ANSI terminal output, compaction, and running state over SSE, with reconciliation after reconnects.
29
+ - **Safe exploration**: continue from an earlier message, create an in-session branch, or fork to an independent `.jsonl` session without conflating those semantics.
30
+ - **Project workspace**: browse and preview source, Markdown, images, audio, PDFs, and DOCX; search files, use `@` mentions, and inspect Git status and diffs.
31
+ - **Git worktree workflow**: select, create, and remove worktrees in the UI while new sessions and the file workspace follow the chosen checkout.
32
+ - **Pi ecosystem integration**: inspect synchronous and asynchronous subagent run status, interact with generic extension UI cards, and view read-only projections of structured todos.
33
+ - **Central configuration**: manage provider authentication, API keys, models and model tests, session defaults, skills, plugins, and project trust.
34
+ - **Polished interface**: responsive desktop/mobile layouts, a command palette, session minimap, completion sound, English and Chinese, plus Light / Dark / System themes.
35
+ - **Explicit security boundaries**: project file allowlists, path and symlink checks, Host and CSRF guards, and mandatory passwords for non-loopback listeners.
36
+
37
+ ## Quick start
38
+
39
+ Node.js `>= 20.9.0` is required.
40
+
41
+ ### Run without installing
42
+
43
+ ```bash
44
+ npx @henlii/pidance@latest
45
+ ```
46
+
47
+ ### Install globally
48
+
49
+ ```bash
50
+ npm install -g @henlii/pidance
51
+ pidance
52
+ ```
53
+
54
+ Open [http://localhost:31415](http://localhost:31415) when the server is ready. The CLI attempts to open the browser by default.
55
+
56
+ ```bash
57
+ pidance --port 8080
58
+ pidance --hostname 127.0.0.1
59
+ pidance -p 8080 -H 127.0.0.1
60
+ pidance --no-open
61
+ ```
62
+
63
+ `PORT` and `PIDANCE_NO_OPEN=1` are also supported. Pidance reads `~/.pi/agent` by default; set `PI_CODING_AGENT_DIR` to use another Pi agent directory.
64
+
65
+ ### Remote or LAN access
66
+
67
+ Listening on `0.0.0.0`, `::`, a LAN address, or another non-loopback host requires a password. The CLI refuses to start without one:
68
+
69
+ ```bash
70
+ PIDANCE_PASSWORD='use-a-strong-password' pidance --hostname 0.0.0.0
71
+ ```
72
+
73
+ For local-only use, bind explicitly to `127.0.0.1`. The legacy `PI_WEB_PASSWORD` variable remains compatible; new deployments should prefer `PIDANCE_PASSWORD`.
74
+
75
+ ### HTTP proxy
76
+
77
+ Server-side model and API requests honor `HTTP_PROXY`, `HTTPS_PROXY`, and `NO_PROXY`:
78
+
79
+ ```bash
80
+ HTTPS_PROXY=http://127.0.0.1:7890 \
81
+ NO_PROXY=localhost,127.0.0.1 \
82
+ pidance
83
+ ```
84
+
85
+ ## Development and testing
86
+
87
+ ```bash
88
+ npm install
89
+ npm run dev # http://localhost:31415
90
+ npm run check # typecheck + lint + unit tests
91
+ ```
92
+
93
+ Additional acceptance checks:
94
+
95
+ ```bash
96
+ npm run verify:render-bridge # real pi-subagents rendering bridge
97
+ npm run test:browser # browser regression against 31416 by default
98
+ ```
99
+
100
+ Do **not** run `npm run build` or `next build` during everyday development: it writes to `.next/` and can disrupt the development server. Production builds belong in an isolated release checkout through `npm run release:check`.
101
+
102
+ ### Continuous test deployment (31416)
103
+
104
+ After application code changes, deploy the current workspace to the isolated production-mode test service:
105
+
106
+ ```bash
107
+ node .agents/skills/pidance-development/scripts/local-deploy.mjs restart
108
+ ```
109
+
110
+ | Port | Purpose |
111
+ | --- | --- |
112
+ | **31415** | Pidance product default: CLI, stable installation, `npm run dev` / `npm start` |
113
+ | **31416** | Continuous workspace test build in isolated `.next-public`; never public-proxied |
114
+ | **30141** | Upstream pi-web; this repository never operates it |
115
+
116
+ ## Release process
117
+
118
+ Formal releases use a two-stage audit gate: run checks and the build in an isolated checkout, audit the prospective package, explicitly create the tgz, and then audit the real archive. Only that same accepted tgz may be used for installation smoke tests, npm, and the GitHub Release. No script automatically changes versions, creates tags, pushes, or publishes.
119
+
120
+ See [docs/release.md](./docs/release.md) for the complete procedure.
121
+
122
+ ## Architecture
123
+
124
+ ```text
125
+ Browser
126
+ ├─ Session / file / Git REST APIs ─▶ Next.js Route Handlers ─▶ local disk and Pi config
127
+ ├─ Send message ───────────────────▶ SessionService ──────────▶ AgentSession
128
+ └─ SSE events ◀──────────────────── EventStreamManager ◀───── AgentSession events
129
+
130
+ ~/.pi/agent/sessions/*.jsonl always remains the session source of truth
131
+ ```
132
+
133
+ - **Read-only browsing** parses Pi `.jsonl` sessions without creating an AgentSession.
134
+ - **Sending a message** creates or reuses an in-process AgentSession wrapper on the server.
135
+ - Session service, event streaming, extension UI, project context, and chat composition form one-way seams so the UI cannot bypass session lifecycle rules.
136
+ - File endpoints only expose explicit roots such as selected projects, worktrees, and session working directories.
137
+
138
+ ## Documentation
139
+
140
+ - [Git worktrees](./docs/worktrees.md)
141
+ - [Release and package auditing](./docs/release.md)
142
+ - [Interface design system](./docs/ui-redesign/README.md)
143
+ - [Theme tokens](./docs/ui-redesign/theme-tokens.md)
144
+ - [Chat architecture refactor](./docs/chat-refactor-plan.md)
145
+ - [OpenChamber upgrade evaluation](./docs/openchamber-upgrade-evaluation-2026-08-05.md)
146
+
147
+ ## Upstream and license
148
+
149
+ Pidance is derived from [agegr/pi-web](https://github.com/agegr/pi-web) and is built around the session and runtime semantics of [badlogic/pi-mono](https://github.com/badlogic/pi-mono). Many thanks to both upstream projects and their contributors.
150
+
151
+ Pidance is available under the [MIT License](./LICENSE). Upstream and derivative-work notices are retained in LICENSE: Copyright © 2026 agegr; Copyright © 2026 Henry Li.
package/README.md ADDED
@@ -0,0 +1,151 @@
1
+ <div align="center">
2
+ <img src="./docs/assets/pidance-banner.png" alt="Pidance — Move with Pi" width="760">
3
+ <p><strong>让 Pi 的会话、工具与项目工作流在浏览器里自然舞动。</strong></p>
4
+ <p>
5
+ <a href="./README.en.md">English</a> ·
6
+ <a href="https://github.com/henlii/pidance/issues">问题反馈</a> ·
7
+ <a href="./docs/release.md">发布说明</a>
8
+ </p>
9
+ </div>
10
+
11
+ Pidance 是面向 [Pi](https://github.com/badlogic/pi-mono) coding agent 的开源 Web 客户端。它直接读取本机 Pi 会话文件,并沿用 Pi SDK 的会话与运行时语义,把实时对话、项目文件、Git、工作树、子代理和配置管理汇集到一个浏览器工作区。Pi 仍是数据与执行语义的事实来源;Pidance 负责提供更清晰、更完整的操作界面。
12
+
13
+ > 当前版本:`0.1.0` · npm 包:`@henlii/pidance` · CLI:`pidance`
14
+
15
+ ## 界面预览
16
+
17
+ ![Pidance 新会话工作区](./docs/screenshots/desktop.png)
18
+
19
+ <p align="center"><sub>新会话工作区:项目与工作树选择、模型、思考等级和右侧上下文面板。截图中的路径已脱敏。</sub></p>
20
+
21
+ ![Pidance 外观设置](./docs/screenshots/settings.png)
22
+
23
+ <p align="center"><sub>外观设置:浅色、深色、跟随系统,以及 Chamber / Fusion 两套主题风格。</sub></p>
24
+
25
+ ## 功能特性
26
+
27
+ - **项目化会话空间**:按 Project → Worktree → Session 浏览会话树,支持搜索、最近会话、归档、恢复、重命名、自动命名与 HTML 导出。
28
+ - **实时 Agent 对话**:通过 SSE 呈现流式回复、思考过程、工具调用、终端 ANSI 输出、压缩状态和运行中状态;页面恢复后自动对账。
29
+ - **安全探索不同方向**:从历史消息继续、创建会话内分支,或 fork 为独立 `.jsonl` 会话;两种分支语义清晰分离。
30
+ - **项目工作区**:浏览与预览源码、Markdown、图片、音频、PDF 和 DOCX,支持文件搜索、`@` 引用、Git 状态与 diff。
31
+ - **Git worktree 工作流**:在界面内选择、创建和移除工作树,新会话与文件工作区自动跟随所选 checkout。
32
+ - **Pi 生态集成**:展示同步与异步子代理运行状态、通用扩展 UI 卡片与交互,以及结构化 Todos 的只读投影。
33
+ - **集中配置**:管理供应商认证、API Key、模型与测试、会话默认值、技能、插件和项目信任。
34
+ - **精心打磨的界面**:响应式桌面/移动布局、命令面板、会话 minimap、完成提示音、中英双语,以及 Light / Dark / System 主题。
35
+ - **边界明确的安全设计**:项目文件 allow-list、路径与符号链接检查、Host/CSRF 防护;非回环监听必须配置密码。
36
+
37
+ ## 快速开始
38
+
39
+ 需要 Node.js `>= 20.9.0`。
40
+
41
+ ### 无需安装
42
+
43
+ ```bash
44
+ npx @henlii/pidance@latest
45
+ ```
46
+
47
+ ### 全局安装
48
+
49
+ ```bash
50
+ npm install -g @henlii/pidance
51
+ pidance
52
+ ```
53
+
54
+ 服务就绪后访问 [http://localhost:31415](http://localhost:31415)。CLI 默认会尝试打开浏览器。
55
+
56
+ ```bash
57
+ pidance --port 8080
58
+ pidance --hostname 127.0.0.1
59
+ pidance -p 8080 -H 127.0.0.1
60
+ pidance --no-open
61
+ ```
62
+
63
+ 也可使用 `PORT` 与 `PIDANCE_NO_OPEN=1`。Pidance 默认读取 `~/.pi/agent`;可通过 `PI_CODING_AGENT_DIR` 指向其他 Pi agent 目录。
64
+
65
+ ### 远程或局域网访问
66
+
67
+ 绑定 `0.0.0.0`、`::`、局域网 IP 或其他非回环地址时,必须设置认证密码,否则 CLI 会拒绝启动:
68
+
69
+ ```bash
70
+ PIDANCE_PASSWORD='请使用强密码' pidance --hostname 0.0.0.0
71
+ ```
72
+
73
+ 仅本机访问时建议显式绑定 `127.0.0.1`。兼容旧变量 `PI_WEB_PASSWORD`,新部署优先使用 `PIDANCE_PASSWORD`。
74
+
75
+ ### HTTP 代理
76
+
77
+ 服务端模型与 API 请求读取标准的 `HTTP_PROXY`、`HTTPS_PROXY` 和 `NO_PROXY`:
78
+
79
+ ```bash
80
+ HTTPS_PROXY=http://127.0.0.1:7890 \
81
+ NO_PROXY=localhost,127.0.0.1 \
82
+ pidance
83
+ ```
84
+
85
+ ## 开发与测试
86
+
87
+ ```bash
88
+ npm install
89
+ npm run dev # http://localhost:31415
90
+ npm run check # typecheck + lint + 单元测试
91
+ ```
92
+
93
+ 其他验收入口:
94
+
95
+ ```bash
96
+ npm run verify:render-bridge # 真实 pi-subagents 渲染桥
97
+ npm run test:browser # 浏览器回归,默认访问 31416
98
+ ```
99
+
100
+ 日常开发**不要**执行 `npm run build` 或 `next build`:它会写入 `.next/` 并干扰开发服务。正式构建只在隔离发布 checkout 中通过 `npm run release:check` 执行。
101
+
102
+ ### 持续测试部署(31416)
103
+
104
+ 每次应用代码修改完成后,将当前工作区部署到隔离的生产模式测试服务:
105
+
106
+ ```bash
107
+ node .agents/skills/pidance-development/scripts/local-deploy.mjs restart
108
+ ```
109
+
110
+ | 端口 | 用途 |
111
+ | --- | --- |
112
+ | **31415** | Pidance 产品默认:CLI、稳定安装版、`npm run dev` / `npm start` |
113
+ | **31416** | 当前工作区持续测试版:`.next-public` 隔离生产构建,不对外反代 |
114
+ | **30141** | 上游 pi-web;本仓绝不操作 |
115
+
116
+ ## 发布
117
+
118
+ 正式发布采用“双审计”门禁:隔离 checkout 中完成质量检查与构建,生成前审计包清单和内容,显式 `npm pack`,再审计真实 tgz;同一份已验收 tgz 才能用于安装冒烟、npm 与 GitHub Release。脚本不会自动改版本、打 tag、push 或 publish。
119
+
120
+ 完整步骤见 [docs/release.md](./docs/release.md)。
121
+
122
+ ## 架构概览
123
+
124
+ ```text
125
+ 浏览器
126
+ ├─ 会话 / 文件 / Git REST API ──▶ Next.js Route Handlers ──▶ 本地磁盘与 Pi 配置
127
+ ├─ 发送消息 ───────────────────▶ SessionService ───────────▶ AgentSession
128
+ └─ SSE 事件流 ◀──────────────── EventStreamManager ◀────── AgentSession 事件
129
+
130
+ ~/.pi/agent/sessions/*.jsonl 始终是会话事实来源
131
+ ```
132
+
133
+ - **只读浏览**直接解析 Pi `.jsonl` 会话,不创建 AgentSession。
134
+ - **发送消息**时才在服务端进程内创建或复用 AgentSession wrapper。
135
+ - 会话服务、事件流、扩展 UI、项目上下文和聊天合成器按单向 seam 分层,避免 UI 绕过会话生命周期。
136
+ - 文件端点仅允许访问已选择项目、工作树和会话工作目录等明确根路径。
137
+
138
+ ## 文档
139
+
140
+ - [Git worktree 使用说明](./docs/worktrees.zh-CN.md)
141
+ - [发布与制品审计](./docs/release.md)
142
+ - [界面设计与主题规范](./docs/ui-redesign/README.md)
143
+ - [主题 Token](./docs/ui-redesign/theme-tokens.md)
144
+ - [会话系统重构说明](./docs/chat-refactor-plan.md)
145
+ - [OpenChamber 升级评估](./docs/openchamber-upgrade-evaluation-2026-08-05.md)
146
+
147
+ ## 上游与许可
148
+
149
+ Pidance 源自 [agegr/pi-web](https://github.com/agegr/pi-web),并围绕 [badlogic/pi-mono](https://github.com/badlogic/pi-mono) 的会话与运行时语义构建。感谢两个上游项目及其贡献者。
150
+
151
+ 本项目采用 [MIT License](./LICENSE)。上游版权与派生作品声明保留于 LICENSE:Copyright © 2026 agegr;Copyright © 2026 Henry Li。
@@ -0,0 +1,182 @@
1
+ # Pidance
2
+
3
+ [English](./README.md)
4
+
5
+ ![Pidance 横幅](https://raw.githubusercontent.com/henlii/pidance/main/docs/assets/pidance-banner.png)
6
+
7
+ Pidance 是基于 [Pi](https://github.com/badlogic/pi-mono) 的统一 Agent 工作空间上层客户端。它不脱离 Pi,而是读取本机 Pi 会话文件并遵循 Pi 的运行时语义,在浏览器里提供会话管理、实时对话、模型配置、技能管理和项目文件预览。
8
+
9
+ ![Pidance 样例数据产品预览:会话侧边栏、带工具卡片的对话区和文件工作区](https://raw.githubusercontent.com/henlii/pidance/main/docs/assets/pidance-preview.png)
10
+
11
+ *样例数据产品预览:会话侧边栏、包含工具卡片的对话区与文件工作区。图中内容均为示意样例数据,并非真实运行会话。*
12
+
13
+ ## 路线图
14
+
15
+ 路线图、实施进度和验收标准统一记录在各阶段 tracking Issue 中:
16
+
17
+ - [第一阶段:架构 seam 与 OpenChamber 风格产品改造](https://github.com/henlii/pidance/issues/1)
18
+ - [第二阶段:补齐 Pi 生态高价值盲区(待办镜像、会话全文搜索、subagent 结果卡片、项目信任)](https://github.com/henlii/pidance/issues/2)
19
+ - [第三阶段:Pi 扩展生态可观测性与 Agent 默认值设置](https://github.com/henlii/pidance/issues/3)
20
+ - [第四阶段:辅助信息面与低频能力(统计、结果浏览、克隆、模板、版本)](https://github.com/henlii/pidance/issues/4)
21
+
22
+ ## Upstream / 上游来源
23
+
24
+ Pidance 源自 [agegr/pi-web](https://github.com/agegr/pi-web),遵循 MIT License;底层运行时来自 [badlogic/pi-mono](https://github.com/badlogic/pi-mono)。项目保留 Pi 的会话文件格式与运行时语义,现有 Pi 数据仍是事实来源。上游版权和派生作品说明保留在 [LICENSE](./LICENSE) 中。
25
+
26
+ ## 快速开始
27
+
28
+ **无需安装,直接运行:**
29
+
30
+ ```bash
31
+ npx @henlii/pidance@latest
32
+ ```
33
+
34
+ **或全局安装后使用:**
35
+
36
+ ```bash
37
+ npm install -g @henlii/pidance
38
+ pidance
39
+ ```
40
+
41
+ 启动后打开 [http://localhost:31415](http://localhost:31415)。命令行版本会在服务就绪后尝试自动打开浏览器。
42
+
43
+ **可选参数:**
44
+
45
+ ```bash
46
+ pidance --port 8080 # 自定义端口
47
+ pidance --hostname 127.0.0.1 # 仅本机访问
48
+ pidance -p 8080 -H 127.0.0.1 # 组合使用
49
+ pidance --no-open # 不自动打开浏览器
50
+
51
+ PORT=8080 pidance # 也支持环境变量
52
+ PIDANCE_NO_OPEN=1 pidance # 不自动打开浏览器(适用于后台服务或开机自启)
53
+ ```
54
+
55
+ ## HTTP 代理
56
+
57
+ Pidance 的服务端模型请求和 API 请求会读取标准的 `HTTP_PROXY`、`HTTPS_PROXY` 和 `NO_PROXY` 环境变量。
58
+
59
+ macOS 或 Linux:
60
+
61
+ ```bash
62
+ HTTP_PROXY=http://127.0.0.1:7890 \
63
+ HTTPS_PROXY=http://127.0.0.1:7890 \
64
+ NO_PROXY=localhost,127.0.0.1 \
65
+ npx @henlii/pidance@latest
66
+ ```
67
+
68
+ Windows PowerShell:
69
+
70
+ ```powershell
71
+ $env:HTTP_PROXY = "http://127.0.0.1:7890"
72
+ $env:HTTPS_PROXY = "http://127.0.0.1:7890"
73
+ $env:NO_PROXY = "localhost,127.0.0.1"
74
+ npx @henlii/pidance@latest
75
+ ```
76
+
77
+ ## 功能介绍
78
+
79
+ - **把历史工作接回来**:打开网页就能按项目找到以前的 pi 对话,不必在终端里翻文件或记住会话路径。
80
+ - **放心试不同方向**:可以从某条历史消息重新开始,也可以复制出一条独立的新路线,探索方案时不怕弄乱原来的对话。
81
+ - **跨分支工作**:在侧边栏切换 Git worktree,让新会话和 Explorer 跟随你选择的 checkout。
82
+ - **边聊边看项目文件**:左侧浏览项目文件,右侧打开源码、文档、图片、音频和 PDF;文件变化会自动刷新,适合边让 agent 改边检查结果。
83
+ - **随时掌握会话状态**:在顶部就能看到上下文占用、花费、压缩结果和系统提示,长会话不再像黑箱。
84
+ - **少离开当前界面**:模型、登录/API key、模型测试和技能开关都能在网页里处理,配置 agent 时不用在多个工具之间来回切换。
85
+
86
+ ## 注意事项
87
+
88
+ - **数据目录**:默认读取 `~/.pi/agent/sessions` 下的会话文件。可通过环境变量 `PI_CODING_AGENT_DIR` 指定其他 pi agent 目录。
89
+ - **会话文件**:路径形如 `~/.pi/agent/sessions/<编码后的工作目录>/<时间戳>_<uuid>.jsonl`。
90
+ - **模型配置**:Models 面板读写 pi agent 目录下的 `models.json`,模型列表和默认模型由 pi 的配置解析得到。
91
+ - **文件访问**:文件浏览和预览面向当前选择的项目目录,以及会话中已出现过的工作目录。
92
+ - **Git worktree**:什么时候显示切换器、新建目录在哪里、删除会影响什么,见 [Pidance 里的 Worktree](./docs/worktrees.zh-CN.md)。
93
+ - **Fork 与会话内分支不同**:Fork 会创建新的 `.jsonl` 文件;“Edit from here” 是同一会话文件里的分支。
94
+
95
+ ## 开发
96
+
97
+ ```bash
98
+ npm install
99
+ npm run dev
100
+ ```
101
+
102
+ 本地开发端口为 [http://localhost:31415](http://localhost:31415)(Pidance 产品默认;`30141` 留给上游 pi-web)。
103
+
104
+ | 端口 | 角色 |
105
+ |------|------|
106
+ | **31415** | 产品默认(`npm run dev` / `npm start` / CLI `pidance`) |
107
+ | **31416** | 持续本地测试部署(`local-deploy.mjs`,Next dev,不对公网) |
108
+ | **30141** | 上游 pi-web / 既有服务 — 禁止操作 |
109
+
110
+ 常用检查:
111
+
112
+ ```bash
113
+ node_modules/.bin/tsc --noEmit
114
+ npm run lint
115
+ ```
116
+
117
+ 开发时不要运行 `next build` / `npm run build`,它会写入 `.next/`,容易影响正在运行的 dev server。发布流程再执行构建。
118
+
119
+ ## 项目结构
120
+
121
+ ```
122
+ app/
123
+ api/
124
+ agent/ # 创建/驱动 AgentSession,提供 SSE 事件流和 bash 输出
125
+ auth/ # OAuth 和 API key 管理
126
+ cwd/validate/ # 自定义工作目录校验
127
+ default-cwd/ # 获取 pi 默认工作目录
128
+ files/ # 文件列表、读取、预览、搜索、上传和 watch
129
+ file-index/ # 项目文件索引和 @ 提及搜索
130
+ git/ # 当前项目的 Git diff 和 status
131
+ home/ # 当前用户 home 目录
132
+ models/ # 可用模型、默认模型、thinking levels
133
+ models-config/ # 读写 models.json、测试模型
134
+ plugins/ # package 插件管理
135
+ sessions/ # 会话读取、重命名、自动命名、删除、上下文、状态、延迟 thinking 和 HTML 导出
136
+ skills/ # skills 列表、搜索、安装、更新、检查和启停
137
+ worktrees/ # Git worktree 列表、新建和删除
138
+ components/
139
+ AppShell.tsx # 主布局、URL 状态、顶部面板、文件标签
140
+ SessionSidebar.tsx # 项目选择、会话树、Explorer
141
+ ChatWindow.tsx # 消息区、SSE、拖拽图片、minimap
142
+ ChatInput.tsx # 输入栏、模型/工具/thinking/compact/slash controls
143
+ MessageView.tsx # 消息、thinking、tool call/result 渲染
144
+ ModelsConfig.tsx # 模型和认证配置面板
145
+ SkillsConfig.tsx # 技能管理面板
146
+ FileExplorer.tsx # 文件树
147
+ FileViewer.tsx # 源码、diff、图片、音频、PDF、DOCX 预览
148
+ lib/
149
+ api-types.ts # API 请求和响应的共享类型
150
+ ansi.ts # 终端输出的 ANSI 转义序列处理
151
+ bash-output.ts # bash 命令输出的格式化和解析
152
+ custom-ui-terminal.ts # 自定义 UI 输出的终端适配器
153
+ git-changes.ts # Git diff/变更收集
154
+ git-status.ts # Git status 收集和规范化
155
+ git-types.ts # Git 数据共享类型
156
+ http-dispatcher.ts # 服务端 fetch 的 HTTP(S) 代理配置
157
+ rpc-manager.ts # AgentSessionWrapper 生命周期和全局 registry
158
+ session-reader.ts # 解析 .jsonl 会话文件和分支上下文
159
+ session-file-references.ts # 会话引用文件的检查
160
+ normalize.ts # 规范化 toolCall 字段名
161
+ file-access.ts # 文件读取安全边界和允许的根目录
162
+ file-fuzzy.ts # 文件模糊搜索工具
163
+ file-upload.ts # 文件上传校验和冲突处理
164
+ file-paths.ts # 文件路径编码/相对路径工具
165
+ models-cache.ts # 模型列表和默认值缓存
166
+ session-title.ts # 会话标题和自动命名工具
167
+ skill-updates.ts # 技能更新操作
168
+ skill-lock.ts # 技能更新锁
169
+ terminal-input.ts # 终端输入处理
170
+ worktree.ts # 项目/worktree 解析和 Git 操作
171
+ markdown.ts # Markdown/Mermaid/KaTeX 插件配置
172
+ pi-types.ts # pi 相关类型
173
+ hooks/
174
+ useAgentSession.ts # 会话加载、发送命令、SSE 状态机
175
+ useAudio.ts # 完成提示音
176
+ useDragDrop.ts # 图片拖拽
177
+ useKeyboardShortcuts.ts # 键盘快捷键处理
178
+ useTheme.ts # 主题切换
179
+ bin/
180
+ pidance.js # npm CLI 入口(仅 pidance;pi-web 归上游)
181
+ instrumentation.ts # 初始化服务端 HTTP dispatcher
182
+ ```