pi-kot 0.1.20 → 0.1.22

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 (390) hide show
  1. package/README.md +253 -17
  2. package/client/assets/index-CE_Na97I.js +75 -0
  3. package/client/assets/index-CE_Na97I.js.map +1 -0
  4. package/client/assets/index-QP95zkpd.css +1 -0
  5. package/client/assets/rolldown-runtime-QTnfLwEv.js +1 -0
  6. package/client/assets/vendor-codemirror-CD3uCqRj.js +48 -0
  7. package/client/assets/vendor-codemirror-CD3uCqRj.js.map +1 -0
  8. package/client/assets/vendor-icons-W8thHNMl.js +2 -0
  9. package/client/assets/vendor-icons-W8thHNMl.js.map +1 -0
  10. package/client/assets/vendor-katex-4z5K3dyr.js +260 -0
  11. package/client/assets/vendor-katex-4z5K3dyr.js.map +1 -0
  12. package/client/assets/vendor-katex-CYlHEDRF.css +1 -0
  13. package/client/assets/vendor-markdown-BSzxNR_7.js +35 -0
  14. package/client/assets/vendor-markdown-BSzxNR_7.js.map +1 -0
  15. package/client/assets/vendor-prism-CQGp13s2.js +4 -0
  16. package/client/assets/vendor-prism-CQGp13s2.js.map +1 -0
  17. package/client/assets/vendor-xterm-BrP-ENHg.css +1 -0
  18. package/client/assets/vendor-xterm-DXwh06H3.js +36 -0
  19. package/client/assets/vendor-xterm-DXwh06H3.js.map +1 -0
  20. package/client/index.html +23 -0
  21. package/package.json +11 -61
  22. package/{dist/server/git-clone.d.ts → server/clone-provider.d.ts} +1 -2
  23. package/server/clone-provider.d.ts.map +1 -0
  24. package/{dist/server/git-clone.js → server/clone-provider.js} +1 -2
  25. package/server/clone-provider.js.map +1 -0
  26. package/{dist/server/compaction-history.d.ts → server/compaction-cards.d.ts} +2 -2
  27. package/server/compaction-cards.d.ts.map +1 -0
  28. package/{dist/server/compaction-history.js → server/compaction-cards.js} +1 -1
  29. package/server/compaction-cards.js.map +1 -0
  30. package/{dist/server → server}/compaction-continuation.d.ts +2 -3
  31. package/server/compaction-continuation.d.ts.map +1 -0
  32. package/{dist/server → server}/compaction-continuation.js +1 -1
  33. package/{dist/server → server}/compaction-continuation.js.map +1 -1
  34. package/{dist/server/config-manager.d.ts → server/config-store.d.ts} +2 -2
  35. package/server/config-store.d.ts.map +1 -0
  36. package/{dist/server/config-manager.js → server/config-store.js} +3 -4
  37. package/server/config-store.js.map +1 -0
  38. package/{dist/server/sse-bridge.d.ts → server/event-stream.d.ts} +2 -5
  39. package/server/event-stream.d.ts.map +1 -0
  40. package/{dist/server/sse-bridge.js → server/event-stream.js} +1 -6
  41. package/server/event-stream.js.map +1 -0
  42. package/{dist/server/extensions-discovery.d.ts → server/extension-scanner.d.ts} +1 -1
  43. package/server/extension-scanner.d.ts.map +1 -0
  44. package/{dist/server/extensions-discovery.js → server/extension-scanner.js} +2 -2
  45. package/server/extension-scanner.js.map +1 -0
  46. package/{dist/server → server}/extension-ui-bridge.d.ts +1 -1
  47. package/{dist/server → server}/extension-ui-bridge.d.ts.map +1 -1
  48. package/{dist/server/git-runner.d.ts → server/git-operations.d.ts} +1 -1
  49. package/server/git-operations.d.ts.map +1 -0
  50. package/{dist/server/git-runner.js → server/git-operations.js} +2 -2
  51. package/server/git-operations.js.map +1 -0
  52. package/{dist/server/git-hunk-stager.d.ts → server/hunk-stager.d.ts} +1 -1
  53. package/server/hunk-stager.d.ts.map +1 -0
  54. package/{dist/server/git-hunk-stager.js → server/hunk-stager.js} +3 -3
  55. package/server/hunk-stager.js.map +1 -0
  56. package/{dist/server → server}/index.d.ts +0 -1
  57. package/server/index.d.ts.map +1 -0
  58. package/{dist/server → server}/index.js +5 -5
  59. package/{dist/server → server}/index.js.map +1 -1
  60. package/{dist/server → server}/orchestration/event-bridge.d.ts +2 -2
  61. package/{dist/server → server}/orchestration/inbox.js +2 -2
  62. package/{dist/server → server}/orchestration/inbox.js.map +1 -1
  63. package/{dist/server → server}/orchestration/init.js +2 -2
  64. package/{dist/server → server}/orchestration/tools.d.ts +1 -1
  65. package/{dist/server → server}/orchestration/tools.js +2 -2
  66. package/{dist/server → server}/orchestration/tools.js.map +1 -1
  67. package/{dist/server → server}/orchestration/worker-lifecycle.js +1 -1
  68. package/{dist/server → server}/orchestration/worker-lifecycle.js.map +1 -1
  69. package/{dist/server/file-references.d.ts → server/path-refs.d.ts} +1 -1
  70. package/server/path-refs.d.ts.map +1 -0
  71. package/{dist/server/file-references.js → server/path-refs.js} +1 -1
  72. package/server/path-refs.js.map +1 -0
  73. package/{dist/server → server}/routes/ask-user-question.js +1 -1
  74. package/{dist/server → server}/routes/ask-user-question.js.map +1 -1
  75. package/{dist/server → server}/routes/auth.js +1 -1
  76. package/{dist/server → server}/routes/auth.js.map +1 -1
  77. package/{dist/server → server}/routes/config.d.ts.map +1 -1
  78. package/{dist/server → server}/routes/config.js +39 -5
  79. package/{dist/server → server}/routes/config.js.map +1 -1
  80. package/{dist/server → server}/routes/control.d.ts.map +1 -1
  81. package/{dist/server → server}/routes/control.js +3 -3
  82. package/{dist/server → server}/routes/control.js.map +1 -1
  83. package/{dist/server → server}/routes/exec.js +1 -1
  84. package/{dist/server → server}/routes/exec.js.map +1 -1
  85. package/{dist/server → server}/routes/extension-commands.js +2 -2
  86. package/{dist/server → server}/routes/extension-commands.js.map +1 -1
  87. package/{dist/server → server}/routes/extensions.js +1 -1
  88. package/{dist/server → server}/routes/extensions.js.map +1 -1
  89. package/{dist/server → server}/routes/files.js +1 -1
  90. package/{dist/server → server}/routes/git.js +4 -4
  91. package/{dist/server → server}/routes/git.js.map +1 -1
  92. package/{dist/server → server}/routes/mcp.js +2 -2
  93. package/{dist/server → server}/routes/mcp.js.map +1 -1
  94. package/{dist/server → server}/routes/orchestration.js +2 -2
  95. package/{dist/server → server}/routes/orchestration.js.map +1 -1
  96. package/{dist/server → server}/routes/projects.js +2 -2
  97. package/{dist/server → server}/routes/projects.js.map +1 -1
  98. package/{dist/server → server}/routes/prompt.js +3 -3
  99. package/{dist/server → server}/routes/prompt.js.map +1 -1
  100. package/{dist/server → server}/routes/session-extensions.js +1 -1
  101. package/{dist/server → server}/routes/session-extensions.js.map +1 -1
  102. package/{dist/server → server}/routes/sessions.js +8 -8
  103. package/{dist/server → server}/routes/sessions.js.map +1 -1
  104. package/{dist/server → server}/routes/skills.js +1 -1
  105. package/{dist/server → server}/routes/skills.js.map +1 -1
  106. package/{dist/server → server}/routes/stream.js +2 -2
  107. package/{dist/server → server}/routes/stream.js.map +1 -1
  108. package/{dist/server → server}/routes/terminal.js +2 -2
  109. package/{dist/server → server}/routes/terminal.js.map +1 -1
  110. package/{dist/server/lifecycle-notifications.d.ts → server/session-alerts.d.ts} +1 -1
  111. package/server/session-alerts.d.ts.map +1 -0
  112. package/{dist/server/lifecycle-notifications.js → server/session-alerts.js} +1 -1
  113. package/server/session-alerts.js.map +1 -0
  114. package/{dist/server/session-registry.d.ts → server/session-store.d.ts} +2 -2
  115. package/server/session-store.d.ts.map +1 -0
  116. package/{dist/server/session-registry.js → server/session-store.js} +4 -4
  117. package/server/session-store.js.map +1 -0
  118. package/{dist/server/skill-overrides.d.ts → server/skill-policy.d.ts} +1 -1
  119. package/server/skill-policy.d.ts.map +1 -0
  120. package/{dist/server/skill-overrides.js → server/skill-policy.js} +2 -2
  121. package/server/skill-policy.js.map +1 -0
  122. package/{dist/server/pty-manager.d.ts → server/terminal-provider.d.ts} +1 -1
  123. package/server/terminal-provider.d.ts.map +1 -0
  124. package/{dist/server/pty-manager.js → server/terminal-provider.js} +1 -1
  125. package/server/terminal-provider.js.map +1 -0
  126. package/{dist/server/tool-overrides.d.ts → server/tool-policy.d.ts} +1 -1
  127. package/server/tool-policy.d.ts.map +1 -0
  128. package/{dist/server/tool-overrides.js → server/tool-policy.js} +1 -1
  129. package/server/tool-policy.js.map +1 -0
  130. package/{dist/server → server}/tunnel/executable-search.d.ts +0 -2
  131. package/server/tunnel/executable-search.d.ts.map +1 -0
  132. package/{dist/server → server}/tunnel/executable-search.js +0 -2
  133. package/server/tunnel/executable-search.js.map +1 -0
  134. package/{dist/server → server}/tunnel/providers/ngrok.d.ts +0 -3
  135. package/server/tunnel/providers/ngrok.d.ts.map +1 -0
  136. package/{dist/server → server}/tunnel/providers/ngrok.js +0 -3
  137. package/server/tunnel/providers/ngrok.js.map +1 -0
  138. package/{dist/server → server}/tunnel/registry.d.ts +0 -2
  139. package/server/tunnel/registry.d.ts.map +1 -0
  140. package/{dist/server → server}/tunnel/registry.js +0 -2
  141. package/server/tunnel/registry.js.map +1 -0
  142. package/{dist/server → server}/tunnel/service.d.ts +0 -2
  143. package/server/tunnel/service.d.ts.map +1 -0
  144. package/{dist/server → server}/tunnel/service.js +0 -2
  145. package/server/tunnel/service.js.map +1 -0
  146. package/{dist/server → server}/tunnel/types.d.ts +0 -3
  147. package/server/tunnel/types.d.ts.map +1 -0
  148. package/{dist/server → server}/tunnel/types.js +0 -3
  149. package/server/tunnel/types.js.map +1 -0
  150. package/server/ui-settings-store.d.ts +25 -0
  151. package/server/ui-settings-store.d.ts.map +1 -0
  152. package/server/ui-settings-store.js +91 -0
  153. package/server/ui-settings-store.js.map +1 -0
  154. package/{dist/server/project-manager.d.ts → server/workspace-store.d.ts} +1 -1
  155. package/{dist/server/project-manager.d.ts.map → server/workspace-store.d.ts.map} +1 -1
  156. package/{dist/server/project-manager.js → server/workspace-store.js} +1 -1
  157. package/{dist/server/project-manager.js.map → server/workspace-store.js.map} +1 -1
  158. package/dist/client/assets/index-C5quN7Km.js +0 -448
  159. package/dist/client/assets/index-C5quN7Km.js.map +0 -1
  160. package/dist/client/assets/index-CuQOwQs1.css +0 -1
  161. package/dist/client/index.html +0 -14
  162. package/dist/server/compaction-continuation.d.ts.map +0 -1
  163. package/dist/server/compaction-history.d.ts.map +0 -1
  164. package/dist/server/compaction-history.js.map +0 -1
  165. package/dist/server/config-manager.d.ts.map +0 -1
  166. package/dist/server/config-manager.js.map +0 -1
  167. package/dist/server/extensions-discovery.d.ts.map +0 -1
  168. package/dist/server/extensions-discovery.js.map +0 -1
  169. package/dist/server/file-references.d.ts.map +0 -1
  170. package/dist/server/file-references.js.map +0 -1
  171. package/dist/server/git-clone.d.ts.map +0 -1
  172. package/dist/server/git-clone.js.map +0 -1
  173. package/dist/server/git-hunk-stager.d.ts.map +0 -1
  174. package/dist/server/git-hunk-stager.js.map +0 -1
  175. package/dist/server/git-runner.d.ts.map +0 -1
  176. package/dist/server/git-runner.js.map +0 -1
  177. package/dist/server/index.d.ts.map +0 -1
  178. package/dist/server/lifecycle-notifications.d.ts.map +0 -1
  179. package/dist/server/lifecycle-notifications.js.map +0 -1
  180. package/dist/server/pty-manager.d.ts.map +0 -1
  181. package/dist/server/pty-manager.js.map +0 -1
  182. package/dist/server/session-registry.d.ts.map +0 -1
  183. package/dist/server/session-registry.js.map +0 -1
  184. package/dist/server/skill-overrides.d.ts.map +0 -1
  185. package/dist/server/skill-overrides.js.map +0 -1
  186. package/dist/server/sse-bridge.d.ts.map +0 -1
  187. package/dist/server/sse-bridge.js.map +0 -1
  188. package/dist/server/tool-overrides.d.ts.map +0 -1
  189. package/dist/server/tool-overrides.js.map +0 -1
  190. package/dist/server/tunnel/executable-search.d.ts.map +0 -1
  191. package/dist/server/tunnel/executable-search.js.map +0 -1
  192. package/dist/server/tunnel/providers/ngrok.d.ts.map +0 -1
  193. package/dist/server/tunnel/providers/ngrok.js.map +0 -1
  194. package/dist/server/tunnel/registry.d.ts.map +0 -1
  195. package/dist/server/tunnel/registry.js.map +0 -1
  196. package/dist/server/tunnel/service.d.ts.map +0 -1
  197. package/dist/server/tunnel/service.js.map +0 -1
  198. package/dist/server/tunnel/types.d.ts.map +0 -1
  199. package/dist/server/tunnel/types.js.map +0 -1
  200. /package/{dist/client → client}/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  201. /package/{dist/client → client}/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  202. /package/{dist/client → client}/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  203. /package/{dist/client → client}/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  204. /package/{dist/client → client}/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  205. /package/{dist/client → client}/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  206. /package/{dist/client → client}/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  207. /package/{dist/client → client}/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  208. /package/{dist/client → client}/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  209. /package/{dist/client → client}/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  210. /package/{dist/client → client}/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  211. /package/{dist/client → client}/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  212. /package/{dist/client → client}/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  213. /package/{dist/client → client}/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  214. /package/{dist/client → client}/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  215. /package/{dist/client → client}/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  216. /package/{dist/client → client}/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  217. /package/{dist/client → client}/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  218. /package/{dist/client → client}/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  219. /package/{dist/client → client}/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  220. /package/{dist/client → client}/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  221. /package/{dist/client → client}/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  222. /package/{dist/client → client}/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  223. /package/{dist/client → client}/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  224. /package/{dist/client → client}/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  225. /package/{dist/client → client}/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  226. /package/{dist/client → client}/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  227. /package/{dist/client → client}/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  228. /package/{dist/client → client}/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  229. /package/{dist/client → client}/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  230. /package/{dist/client → client}/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  231. /package/{dist/client → client}/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  232. /package/{dist/client → client}/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  233. /package/{dist/client → client}/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  234. /package/{dist/client → client}/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  235. /package/{dist/client → client}/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  236. /package/{dist/client → client}/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  237. /package/{dist/client → client}/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  238. /package/{dist/client → client}/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  239. /package/{dist/client → client}/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  240. /package/{dist/client → client}/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  241. /package/{dist/client → client}/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  242. /package/{dist/client → client}/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  243. /package/{dist/client → client}/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  244. /package/{dist/client → client}/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  245. /package/{dist/client → client}/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  246. /package/{dist/client → client}/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  247. /package/{dist/client → client}/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  248. /package/{dist/client → client}/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  249. /package/{dist/client → client}/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  250. /package/{dist/client → client}/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  251. /package/{dist/client → client}/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  252. /package/{dist/client → client}/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  253. /package/{dist/client → client}/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  254. /package/{dist/client → client}/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  255. /package/{dist/client → client}/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  256. /package/{dist/client → client}/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  257. /package/{dist/client → client}/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  258. /package/{dist/client → client}/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  259. /package/{dist/server → server}/ask-user-question/envelope.d.ts +0 -0
  260. /package/{dist/server → server}/ask-user-question/envelope.d.ts.map +0 -0
  261. /package/{dist/server → server}/ask-user-question/envelope.js +0 -0
  262. /package/{dist/server → server}/ask-user-question/envelope.js.map +0 -0
  263. /package/{dist/server → server}/ask-user-question/plan-mode-question-tool.d.ts +0 -0
  264. /package/{dist/server → server}/ask-user-question/plan-mode-question-tool.d.ts.map +0 -0
  265. /package/{dist/server → server}/ask-user-question/plan-mode-question-tool.js +0 -0
  266. /package/{dist/server → server}/ask-user-question/plan-mode-question-tool.js.map +0 -0
  267. /package/{dist/server → server}/ask-user-question/prompt-strings.d.ts +0 -0
  268. /package/{dist/server → server}/ask-user-question/prompt-strings.d.ts.map +0 -0
  269. /package/{dist/server → server}/ask-user-question/prompt-strings.js +0 -0
  270. /package/{dist/server → server}/ask-user-question/prompt-strings.js.map +0 -0
  271. /package/{dist/server → server}/ask-user-question/registry.d.ts +0 -0
  272. /package/{dist/server → server}/ask-user-question/registry.d.ts.map +0 -0
  273. /package/{dist/server → server}/ask-user-question/registry.js +0 -0
  274. /package/{dist/server → server}/ask-user-question/registry.js.map +0 -0
  275. /package/{dist/server → server}/ask-user-question/tool.d.ts +0 -0
  276. /package/{dist/server → server}/ask-user-question/tool.d.ts.map +0 -0
  277. /package/{dist/server → server}/ask-user-question/tool.js +0 -0
  278. /package/{dist/server → server}/ask-user-question/tool.js.map +0 -0
  279. /package/{dist/server → server}/ask-user-question/types.d.ts +0 -0
  280. /package/{dist/server → server}/ask-user-question/types.d.ts.map +0 -0
  281. /package/{dist/server → server}/ask-user-question/types.js +0 -0
  282. /package/{dist/server → server}/ask-user-question/types.js.map +0 -0
  283. /package/{dist/server → server}/ask-user-question/validate.d.ts +0 -0
  284. /package/{dist/server → server}/ask-user-question/validate.d.ts.map +0 -0
  285. /package/{dist/server → server}/ask-user-question/validate.js +0 -0
  286. /package/{dist/server → server}/ask-user-question/validate.js.map +0 -0
  287. /package/{dist/server → server}/config.d.ts +0 -0
  288. /package/{dist/server → server}/config.d.ts.map +0 -0
  289. /package/{dist/server → server}/config.js +0 -0
  290. /package/{dist/server → server}/config.js.map +0 -0
  291. /package/{dist/server → server}/extension-manager.d.ts +0 -0
  292. /package/{dist/server → server}/extension-manager.d.ts.map +0 -0
  293. /package/{dist/server → server}/extension-manager.js +0 -0
  294. /package/{dist/server → server}/extension-manager.js.map +0 -0
  295. /package/{dist/server → server}/extension-ui-bridge.js +0 -0
  296. /package/{dist/server → server}/extension-ui-bridge.js.map +0 -0
  297. /package/{dist/server → server}/file-manager.d.ts +0 -0
  298. /package/{dist/server → server}/file-manager.d.ts.map +0 -0
  299. /package/{dist/server → server}/file-manager.js +0 -0
  300. /package/{dist/server → server}/file-manager.js.map +0 -0
  301. /package/{dist/server → server}/file-searcher.d.ts +0 -0
  302. /package/{dist/server → server}/file-searcher.d.ts.map +0 -0
  303. /package/{dist/server → server}/file-searcher.js +0 -0
  304. /package/{dist/server → server}/file-searcher.js.map +0 -0
  305. /package/{dist/server → server}/mcp/config.d.ts +0 -0
  306. /package/{dist/server → server}/mcp/config.d.ts.map +0 -0
  307. /package/{dist/server → server}/mcp/config.js +0 -0
  308. /package/{dist/server → server}/mcp/config.js.map +0 -0
  309. /package/{dist/server → server}/mcp/manager.d.ts +0 -0
  310. /package/{dist/server → server}/mcp/manager.d.ts.map +0 -0
  311. /package/{dist/server → server}/mcp/manager.js +0 -0
  312. /package/{dist/server → server}/mcp/manager.js.map +0 -0
  313. /package/{dist/server → server}/mcp/stdio-trust.d.ts +0 -0
  314. /package/{dist/server → server}/mcp/stdio-trust.d.ts.map +0 -0
  315. /package/{dist/server → server}/mcp/stdio-trust.js +0 -0
  316. /package/{dist/server → server}/mcp/stdio-trust.js.map +0 -0
  317. /package/{dist/server → server}/mcp/tool-bridge.d.ts +0 -0
  318. /package/{dist/server → server}/mcp/tool-bridge.d.ts.map +0 -0
  319. /package/{dist/server → server}/mcp/tool-bridge.js +0 -0
  320. /package/{dist/server → server}/mcp/tool-bridge.js.map +0 -0
  321. /package/{dist/server → server}/orchestration/config.d.ts +0 -0
  322. /package/{dist/server → server}/orchestration/config.d.ts.map +0 -0
  323. /package/{dist/server → server}/orchestration/config.js +0 -0
  324. /package/{dist/server → server}/orchestration/config.js.map +0 -0
  325. /package/{dist/server → server}/orchestration/event-bridge.d.ts.map +0 -0
  326. /package/{dist/server → server}/orchestration/event-bridge.js +0 -0
  327. /package/{dist/server → server}/orchestration/event-bridge.js.map +0 -0
  328. /package/{dist/server → server}/orchestration/inbox.d.ts +0 -0
  329. /package/{dist/server → server}/orchestration/inbox.d.ts.map +0 -0
  330. /package/{dist/server → server}/orchestration/init.d.ts +0 -0
  331. /package/{dist/server → server}/orchestration/init.d.ts.map +0 -0
  332. /package/{dist/server → server}/orchestration/init.js.map +0 -0
  333. /package/{dist/server → server}/orchestration/store.d.ts +0 -0
  334. /package/{dist/server → server}/orchestration/store.d.ts.map +0 -0
  335. /package/{dist/server → server}/orchestration/store.js +0 -0
  336. /package/{dist/server → server}/orchestration/store.js.map +0 -0
  337. /package/{dist/server → server}/orchestration/tools.d.ts.map +0 -0
  338. /package/{dist/server → server}/orchestration/types.d.ts +0 -0
  339. /package/{dist/server → server}/orchestration/types.d.ts.map +0 -0
  340. /package/{dist/server → server}/orchestration/types.js +0 -0
  341. /package/{dist/server → server}/orchestration/types.js.map +0 -0
  342. /package/{dist/server → server}/orchestration/worker-lifecycle.d.ts +0 -0
  343. /package/{dist/server → server}/orchestration/worker-lifecycle.d.ts.map +0 -0
  344. /package/{dist/server → server}/routes/_schemas.d.ts +0 -0
  345. /package/{dist/server → server}/routes/_schemas.d.ts.map +0 -0
  346. /package/{dist/server → server}/routes/_schemas.js +0 -0
  347. /package/{dist/server → server}/routes/_schemas.js.map +0 -0
  348. /package/{dist/server → server}/routes/ask-user-question.d.ts +0 -0
  349. /package/{dist/server → server}/routes/ask-user-question.d.ts.map +0 -0
  350. /package/{dist/server → server}/routes/auth.d.ts +0 -0
  351. /package/{dist/server → server}/routes/auth.d.ts.map +0 -0
  352. /package/{dist/server → server}/routes/config.d.ts +0 -0
  353. /package/{dist/server → server}/routes/control.d.ts +0 -0
  354. /package/{dist/server → server}/routes/exec.d.ts +0 -0
  355. /package/{dist/server → server}/routes/exec.d.ts.map +0 -0
  356. /package/{dist/server → server}/routes/extension-commands.d.ts +0 -0
  357. /package/{dist/server → server}/routes/extension-commands.d.ts.map +0 -0
  358. /package/{dist/server → server}/routes/extensions.d.ts +0 -0
  359. /package/{dist/server → server}/routes/extensions.d.ts.map +0 -0
  360. /package/{dist/server → server}/routes/files.d.ts +0 -0
  361. /package/{dist/server → server}/routes/files.d.ts.map +0 -0
  362. /package/{dist/server → server}/routes/files.js.map +0 -0
  363. /package/{dist/server → server}/routes/git.d.ts +0 -0
  364. /package/{dist/server → server}/routes/git.d.ts.map +0 -0
  365. /package/{dist/server → server}/routes/mcp.d.ts +0 -0
  366. /package/{dist/server → server}/routes/mcp.d.ts.map +0 -0
  367. /package/{dist/server → server}/routes/orchestration.d.ts +0 -0
  368. /package/{dist/server → server}/routes/orchestration.d.ts.map +0 -0
  369. /package/{dist/server → server}/routes/projects.d.ts +0 -0
  370. /package/{dist/server → server}/routes/projects.d.ts.map +0 -0
  371. /package/{dist/server → server}/routes/prompt.d.ts +0 -0
  372. /package/{dist/server → server}/routes/prompt.d.ts.map +0 -0
  373. /package/{dist/server → server}/routes/session-extensions.d.ts +0 -0
  374. /package/{dist/server → server}/routes/session-extensions.d.ts.map +0 -0
  375. /package/{dist/server → server}/routes/sessions.d.ts +0 -0
  376. /package/{dist/server → server}/routes/sessions.d.ts.map +0 -0
  377. /package/{dist/server → server}/routes/skills.d.ts +0 -0
  378. /package/{dist/server → server}/routes/skills.d.ts.map +0 -0
  379. /package/{dist/server → server}/routes/stream.d.ts +0 -0
  380. /package/{dist/server → server}/routes/stream.d.ts.map +0 -0
  381. /package/{dist/server → server}/routes/terminal.d.ts +0 -0
  382. /package/{dist/server → server}/routes/terminal.d.ts.map +0 -0
  383. /package/{dist/server → server}/routes/tunnel.d.ts +0 -0
  384. /package/{dist/server → server}/routes/tunnel.d.ts.map +0 -0
  385. /package/{dist/server → server}/routes/tunnel.js +0 -0
  386. /package/{dist/server → server}/routes/tunnel.js.map +0 -0
  387. /package/{dist/server → server}/tunnel/install-help.d.ts +0 -0
  388. /package/{dist/server → server}/tunnel/install-help.d.ts.map +0 -0
  389. /package/{dist/server → server}/tunnel/install-help.js +0 -0
  390. /package/{dist/server → server}/tunnel/install-help.js.map +0 -0
package/README.md CHANGED
@@ -1,30 +1,266 @@
1
- # pi-kot v0.1.20
1
+ # pi-kot
2
2
 
3
- Browser UI for the [pi coding agent](https://pi.dev).
4
- Self-hosted React workbench: streaming chat, session tree, file browser, terminal, git panel.
3
+ <img width="2560" height="1440" alt="New Project" src="https://github.com/user-attachments/assets/fa6a4dd8-c61e-43e4-ba36-4b5bf2640745" />
5
4
 
6
- ## Quick start
7
5
 
6
+ > A browser-based UI wrapper for the [pi coding agent](https://pi.dev)
7
+
8
+ pi-kot wraps the `@earendil-works/pi-coding-agent` SDK in an HTTP bridge with a React-based web UI. It exposes the agent's capabilities through REST, SSE, and WebSocket, giving you a fully interactive chat-and-terminal environment in your browser — no desktop app required.
9
+
10
+ ---
11
+
12
+ ## Motivation
13
+
14
+ pi-kot was created because I was looking for an agentic harness with minimal token usage and high customization — one that behaves the way I want and looks the way I want. I've used many, and I really like Hermes, but I'm in love with Pi.
15
+
16
+ Then I decided to push Qwen3.6-35B-A3B to its absolute limit to build pi-kot. The setup I use is an RTX 3060 12GB VRAM running Qwen3 through llama.cpp with turboquant by [TheTom](https://github.com/TheTom/llama-cpp-turboquant), keeping context around 120k. That gets me to about 19-25 tps — painfully slow — but it stays stable: no failures, no tool-calling loops. pi-kot is built 90% with Qwen3.6-35B-A3B.
17
+
18
+ This project was built out of **love and curiosity**.
19
+
20
+ ---
21
+
22
+ ## Features
23
+
24
+ | Feature | Description |
25
+ |---|---|
26
+ | **💬 Chat** | Full agent conversation with streaming, markdown rendering, code blocks with syntax highlighting, and diff views |
27
+ | **🖥️ Terminal** | Multi-tab xterm.js terminal with persistent PTY sessions, **touch gestures** (long-press+drag arrows, double-tap Tab, 3-finger paste), and a mobile quick-keys bar |
28
+ | **📁 File Explorer** | Browse, read, edit, and manage files in your project workspace with folder drag-and-drop uploads, drag-to-move, and ZIP downloads |
29
+ | **🔧 MCP Support** | Add, configure, and toggle MCP servers with a full settings UI |
30
+ | **💾 Persistent UI Prefs** | Theme, sticky header, token usage toggle, and image compression — saved **server-side** in `~/.pi/agent/ui-settings.json`. Survives browser cache clears and device switches |
31
+ | **🧩 Orchestration** | Multi-agent workflows — supervise sub-agents, delegate tasks, inspect results |
32
+ | **🔐 Auth** | Password-based login, API key support, JWT sessions |
33
+ | **📱 Mobile-friendly** | PWA-ready, adaptive layout, touch gestures, virtual keyboard support |
34
+ | **🔄 Session persistence** | Sessions survive restarts via JSONL on disk; reattach on reconnect |
35
+ | **🎨 Unified Theme System** | Consistent light/dark theme tokens across panels, modals, inputs, and terminal chrome |
36
+ | **🔌 Tunnel** | Built-in tunnel helper UI for exposing local pi-kot traffic via supported providers, with install checks, diagnostics, and one-click start/stop |
37
+ | **📦 Extensions** | Discover and install pi extensions from the UI — some features only appear after installing the right extension |
38
+
39
+ ---
40
+
41
+ ## Quick Start
42
+
43
+ ### One-shot setup via npx
44
+
45
+ ```bash
46
+ npx pi-kot --password pikot
47
+ ```
48
+
49
+ help
8
50
  ```bash
9
- npx pi-kot # one-shot, no install
10
- npm install -g pi-kot # or install globally
11
- pi-kot # then run anywhere
51
+ npx pi-kot --help
12
52
  ```
13
53
 
14
- Opens at **http://localhost:3333** by default.
54
+ Available options:
55
+
56
+ | Flag | Description | Default |
57
+ |---|---|---|
58
+ | `--port <n>` | Port to listen on | `3333` |
59
+ | `--host <h>` | Host/interface to bind to | `0.0.0.0` |
60
+ | `--password <pw>` | Enable UI password auth | — |
61
+ | `--api-key <key>` | Static API key for scripts/CI | — |
62
+ | `--workspace <path>` | Workspace root directory | `~/.pi-kot/workspace/default` |
63
+ | `--log-level <level>` | Logging level | `info` |
64
+ | `--help, -h` | Show help | — |
65
+ | `--version, -v` | Show version | — |
66
+
67
+ All flags can also be set with environment variables: `PORT`, `HOST`, `UI_PASSWORD`, `API_KEY`, `WORKSPACE_PATH`, `LOG_LEVEL`, `MINIMAL_UI`.
15
68
 
16
- ## Options
69
+ ### Example: install, run, and expose it
70
+
71
+ ```bash
72
+ # Install dependencies
73
+ npm install
17
74
 
75
+ # Run directly with all settings inline
76
+ npx pi-kot --port 3333 --host 127.0.0.1 --password secret --workspace ~/Code
18
77
  ```
19
- pi-kot --port 4000
20
- pi-kot --host 127.0.0.1
21
- pi-kot --password mysecret
22
- pi-kot --workspace ~/Code
23
- pi-kot --help
78
+
79
+ ### Dev mode (server + Vite hot-reload)
80
+
81
+ ```bash
82
+ npm run dev
83
+
84
+ # Open http://localhost:5173
85
+ ```
86
+
87
+ ### Production
88
+
89
+ ```bash
90
+ npm run build
91
+ npm run start
92
+
93
+ # Open http://localhost:3333
24
94
  ```
25
95
 
26
- All options have matching env vars: `PORT`, `HOST`, `UI_PASSWORD`, `API_KEY`, `WORKSPACE_PATH`, `LOG_LEVEL`.
96
+ Or build for production:
97
+
98
+ ```bash
99
+ npm run build
100
+ npm run start
101
+ # Open http://localhost:3333
102
+ ```
103
+
104
+ ---
105
+
106
+ ## Terminal Touch Gestures
107
+
108
+ pi-kot's terminal supports mobile touch gestures inspired by Termius:
109
+
110
+ | Gesture | Action | Details |
111
+ |---|---|---|
112
+ | **Long-press 150ms + drag** | Arrow keys (↑↓←→) | Continuous with 3 speed gears — drag further for faster |
113
+ | **Double-tap** | Tab key | Two quick taps within 300ms |
114
+ | **3-finger tap** | Paste | Reads from system clipboard |
115
+ | **2-finger scroll** | Scroll buffer | Up/down through terminal history |
116
+
117
+ ---
118
+
119
+ ## 📦 Recommended Extensions
120
+
121
+ Some features only appear **after** installing the corresponding extension. Head to the **Extensions tab** (⚙ → Extensions) and install the 💎 **Recommended for pi-kot** extensions:
122
+
123
+ | Extension | Package | Unlocks |
124
+ |---|---|---|
125
+ | **pi-web-access** 🌐 | `npm:pi-web-access` | Web search, content extraction, API interaction tools for the agent |
126
+ | **pi-playwright** 🎭 | `npm:pi-playwright` | Browser automation — the agent can interact with real web UI |
127
+ | **pi-vision-tool** 👁️ | `npm:pi-vision-tool` | **Vision agent selection** — non-vision models can delegate `describe_image` to a vision-capable model; full vision settings exposed in Extensions tab |
128
+ | **pi-rewind** ⏪ | `npm:@ayulab/pi-rewind` | **Session revert** — checkpoint, rewind, and branch from any prior state |
129
+ | **pi-plan-mode** 📋 | `npm:@narumitw/pi-plan-mode` | **Plan mode** — codex-like structured planning. Blocks mutating tools, adds `plan_mode_question` for structured user questions |
130
+ | **context-mode** 🧠 | `npm:context-mode` | **Context window savings** — sandboxed code execution, FTS5 knowledge base, BM25 search, and session continuity across compaction |
131
+
132
+ > 💡 **Tip**: Some UI elements only appear **after** the extension is installed. For example:
133
+ > - **Vision model selector** in Extensions tab → appears only after `pi-vision-tool` is installed
134
+ > - **Rewind button** on chat messages → appears only after `pi-rewind` is installed
135
+ > - **Plan mode tool safety** → appears only after `pi-plan-mode` is installed
136
+ > - **Context stats/doctor commands** → appears only after `context-mode` is installed
137
+ > If something mentioned in this README doesn't show up, check the Extensions tab first.
138
+
139
+ ---
140
+
141
+ ## Tunnel
142
+
143
+ pi-kot includes a built-in tunnel helper for exposing your local instance to the internet.
144
+
145
+ - **Provider**: currently supports **ngrok**
146
+ - **Modes**: **quick** tunnel mode
147
+ - **Intents**: ephemeral-public, persistent-public, private-network
148
+
149
+ ### Using the Tunnel tab
150
+
151
+ 1. Open **Settings** → **Tunnel**
152
+ 2. The tab shows an installation check for the tunnel provider
153
+ 3. If missing, it shows the install command and download link
154
+ 4. Run **diagnostics** to verify binary, auth token, and network readiness
155
+ 5. Click **Start Tunnel** to launch; the public URL is shown and can be copied
156
+ 6. Click **Stop Tunnel** to tear it down when finished
157
+
158
+ ### API routes
159
+
160
+ The server exposes tunnel controls under `/api/v1/tunnel`:
161
+
162
+ | Method | Path | Purpose |
163
+ |---|---|---|
164
+ | `GET` | `/api/v1/tunnel/check` | Check whether ngrok is installed and return version/platform info |
165
+ | `GET` | `/api/v1/tunnel/doctor` | Run diagnostics for binary, auth token, and network checks |
166
+ | `GET` | `/api/v1/tunnel/status` | Return whether a tunnel is active, its public URL, mode, provider, and local port |
167
+ | `POST` | `/api/v1/tunnel/start` | Start an ngrok tunnel |
168
+ | `POST` | `/api/v1/tunnel/stop` | Stop an active tunnel |
169
+
170
+ ---
171
+
172
+ ## Configuration
173
+
174
+ See [START.md](./START.md) for the full configuration reference — ports, auth, storage paths, and more.
175
+
176
+ ---
177
+
178
+ ## File Explorer
179
+
180
+ Browse and manage files in your project workspace.
181
+
182
+ - **Open**: Click a file to read it
183
+ - **Edit**: Modify content directly in the editor (CodeMirror)
184
+ - **New file/folder**: Right-click in the tree
185
+ - **Delete**: Right-click a file
186
+ - **Drag to move**: Drag files or folders onto another folder to move them in-app
187
+ - **Upload files/folders**: Drag from your OS, use the folder picker, or click the upload buttons
188
+ - **Download folder as ZIP**: Right-click a folder in the explorer and choose the download action
189
+ - **Clone project**: Use the clone dialog to pull a repo into the workspace, with optional custom destination path
190
+
191
+ The file explorer also shows files the agent has created or modified during the session.
192
+
193
+ ---
194
+
195
+ ## Git Panel
196
+
197
+ The Git panel shows the current repository's status — modified files, staged changes, commit history, and branch information.
198
+
199
+ - **View changes**: See diffs of modified files
200
+ - **Stage/unstage**: Stage files for commit
201
+ - **Commit**: Write and execute commits
202
+ - **Branch**: Switch branches
203
+ - **Commit history**: Browse commits and expand each one to see changed files
204
+ - **Inline commit diffs**: Click a file inside a commit to view its unified diff directly in the panel
205
+
206
+ ---
207
+
208
+ ## Settings
209
+
210
+ Access settings via the **⚙** icon in the header.
211
+
212
+ | Tab | What you can configure |
213
+ |---|---|
214
+ | **Appearance** | Theme picker, sticky user header, show token usage, image compression — all **persisted server-side** |
215
+ | **Providers** | View configured providers, add/remove API keys, add custom providers, raw models.json editor |
216
+ | **Agent** | Default provider, default model, thinking level, model scope (hide unused models), orchestrator model |
217
+ | **General** | Server & SDK versions, update check, reload page |
218
+ | **Extensions ⚗️** | Install/manage pi extensions — **install the recommended ones to unlock features** |
219
+ | **Skills** | Enable/disable agent skills |
220
+ | **Tunnel 🚇** | Tunnel provider install check, diagnostics, start/stop tunnel, copy public URL |
221
+
222
+ ### Image compression
223
+
224
+ You can toggle automatic client-side image compression before sending images to the model. When enabled, images are downscaled to a max dimension and compressed to JPEG to reduce token usage.
225
+
226
+ ---
227
+
228
+ ## Project Structure
229
+
230
+ ```
231
+ pi-kot/
232
+ ├── packages/
233
+ │ ├── client/ # React SPA (Vite, xterm.js, Zustand)
234
+ │ │ └── src/
235
+ │ │ ├── components/ # UI components (ChatView, TerminalPanel, SlidePanel, AddProviderDialog, ...)
236
+ │ │ ├── stores/ # Zustand stores (layout, session, terminal, MCP, preferences)
237
+ │ │ ├── hooks/ # Custom hooks (touch swipe, extensions, ...)
238
+ │ │ └── lib/ # Utilities (API client, SSE, theme, ...)
239
+ │ └── server/ # Express server (REST, SSE, WebSocket, PTY)
240
+ │ └── src/
241
+ │ ├── routes/ # API routes (sessions, terminal, git, files, projects, extensions, tunnel, ...)
242
+ │ ├── mcp/ # MCP server registry & manager
243
+ │ ├── orchestration/ # Multi-agent orchestration
244
+ │ ├── ask-user-question/ # Web-compatible tool wrappers (e.g. plan_mode_question)
245
+ │ ├── tunnel/ # Tunnel providers, registry, service, install/doctor helpers
246
+ │ └── ... # Config, auth, PTY manager, extension manager, etc.
247
+ ├── START.md # Configuration & running guide
248
+ ```
249
+
250
+ ---
251
+
252
+ ## Tech Stack
253
+
254
+ | Layer | Technology |
255
+ |---|---|
256
+ | **UI** | React, TypeScript, Vite, xterm.js, CodeMirror, Zustand |
257
+ | **Server** | Express, ws (WebSocket), node-pty |
258
+ | **SDK** | `@earendil-works/pi-coding-agent` |
259
+ | **Auth** | JWT, scrypt password hashing |
260
+ | **State** | Zustand (client), JSONL session files (server) |
261
+
262
+ ---
27
263
 
28
- ## Source
264
+ ## License
29
265
 
30
- [github.com/YOUR_USERNAME/pi-kot](https://github.com/YOUR_USERNAME/pi-kot)
266
+ MIT