pi-kot 0.1.20 → 0.1.21

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 (330) hide show
  1. package/README.md +253 -17
  2. package/package.json +8 -60
  3. package/bin/pi-kot.mjs +0 -148
  4. package/dist/client/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  5. package/dist/client/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  6. package/dist/client/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  7. package/dist/client/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  8. package/dist/client/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  9. package/dist/client/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  10. package/dist/client/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  11. package/dist/client/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  12. package/dist/client/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  13. package/dist/client/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  14. package/dist/client/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  15. package/dist/client/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  16. package/dist/client/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  17. package/dist/client/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  18. package/dist/client/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  19. package/dist/client/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  20. package/dist/client/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  21. package/dist/client/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  22. package/dist/client/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  23. package/dist/client/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  24. package/dist/client/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  25. package/dist/client/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  26. package/dist/client/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  27. package/dist/client/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  28. package/dist/client/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  29. package/dist/client/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  30. package/dist/client/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  31. package/dist/client/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  32. package/dist/client/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  33. package/dist/client/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  34. package/dist/client/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  35. package/dist/client/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  36. package/dist/client/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  37. package/dist/client/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  38. package/dist/client/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  39. package/dist/client/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  40. package/dist/client/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  41. package/dist/client/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  42. package/dist/client/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  43. package/dist/client/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  44. package/dist/client/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  45. package/dist/client/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  46. package/dist/client/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  47. package/dist/client/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  48. package/dist/client/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  49. package/dist/client/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  50. package/dist/client/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  51. package/dist/client/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  52. package/dist/client/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  53. package/dist/client/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  54. package/dist/client/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  55. package/dist/client/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  56. package/dist/client/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  57. package/dist/client/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  58. package/dist/client/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  59. package/dist/client/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  60. package/dist/client/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  61. package/dist/client/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  62. package/dist/client/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  63. package/dist/client/assets/index-C5quN7Km.js +0 -448
  64. package/dist/client/assets/index-C5quN7Km.js.map +0 -1
  65. package/dist/client/assets/index-CuQOwQs1.css +0 -1
  66. package/dist/client/index.html +0 -14
  67. package/dist/server/ask-user-question/envelope.d.ts +0 -11
  68. package/dist/server/ask-user-question/envelope.d.ts.map +0 -1
  69. package/dist/server/ask-user-question/envelope.js +0 -41
  70. package/dist/server/ask-user-question/envelope.js.map +0 -1
  71. package/dist/server/ask-user-question/plan-mode-question-tool.d.ts +0 -26
  72. package/dist/server/ask-user-question/plan-mode-question-tool.d.ts.map +0 -1
  73. package/dist/server/ask-user-question/plan-mode-question-tool.js +0 -273
  74. package/dist/server/ask-user-question/plan-mode-question-tool.js.map +0 -1
  75. package/dist/server/ask-user-question/prompt-strings.d.ts +0 -4
  76. package/dist/server/ask-user-question/prompt-strings.d.ts.map +0 -1
  77. package/dist/server/ask-user-question/prompt-strings.js +0 -18
  78. package/dist/server/ask-user-question/prompt-strings.js.map +0 -1
  79. package/dist/server/ask-user-question/registry.d.ts +0 -39
  80. package/dist/server/ask-user-question/registry.d.ts.map +0 -1
  81. package/dist/server/ask-user-question/registry.js +0 -124
  82. package/dist/server/ask-user-question/registry.js.map +0 -1
  83. package/dist/server/ask-user-question/tool.d.ts +0 -4
  84. package/dist/server/ask-user-question/tool.d.ts.map +0 -1
  85. package/dist/server/ask-user-question/tool.js +0 -68
  86. package/dist/server/ask-user-question/tool.js.map +0 -1
  87. package/dist/server/ask-user-question/types.d.ts +0 -50
  88. package/dist/server/ask-user-question/types.d.ts.map +0 -1
  89. package/dist/server/ask-user-question/types.js +0 -7
  90. package/dist/server/ask-user-question/types.js.map +0 -1
  91. package/dist/server/ask-user-question/validate.d.ts +0 -3
  92. package/dist/server/ask-user-question/validate.d.ts.map +0 -1
  93. package/dist/server/ask-user-question/validate.js +0 -67
  94. package/dist/server/ask-user-question/validate.js.map +0 -1
  95. package/dist/server/compaction-continuation.d.ts +0 -113
  96. package/dist/server/compaction-continuation.d.ts.map +0 -1
  97. package/dist/server/compaction-continuation.js +0 -65
  98. package/dist/server/compaction-continuation.js.map +0 -1
  99. package/dist/server/compaction-history.d.ts +0 -62
  100. package/dist/server/compaction-history.d.ts.map +0 -1
  101. package/dist/server/compaction-history.js +0 -180
  102. package/dist/server/compaction-history.js.map +0 -1
  103. package/dist/server/config-manager.d.ts +0 -97
  104. package/dist/server/config-manager.d.ts.map +0 -1
  105. package/dist/server/config-manager.js +0 -352
  106. package/dist/server/config-manager.js.map +0 -1
  107. package/dist/server/config.d.ts +0 -24
  108. package/dist/server/config.d.ts.map +0 -1
  109. package/dist/server/config.js +0 -67
  110. package/dist/server/config.js.map +0 -1
  111. package/dist/server/extension-manager.d.ts +0 -116
  112. package/dist/server/extension-manager.d.ts.map +0 -1
  113. package/dist/server/extension-manager.js +0 -586
  114. package/dist/server/extension-manager.js.map +0 -1
  115. package/dist/server/extension-ui-bridge.d.ts +0 -35
  116. package/dist/server/extension-ui-bridge.d.ts.map +0 -1
  117. package/dist/server/extension-ui-bridge.js +0 -228
  118. package/dist/server/extension-ui-bridge.js.map +0 -1
  119. package/dist/server/extensions-discovery.d.ts +0 -26
  120. package/dist/server/extensions-discovery.d.ts.map +0 -1
  121. package/dist/server/extensions-discovery.js +0 -107
  122. package/dist/server/extensions-discovery.js.map +0 -1
  123. package/dist/server/file-manager.d.ts +0 -79
  124. package/dist/server/file-manager.d.ts.map +0 -1
  125. package/dist/server/file-manager.js +0 -535
  126. package/dist/server/file-manager.js.map +0 -1
  127. package/dist/server/file-references.d.ts +0 -5
  128. package/dist/server/file-references.d.ts.map +0 -1
  129. package/dist/server/file-references.js +0 -249
  130. package/dist/server/file-references.js.map +0 -1
  131. package/dist/server/file-searcher.d.ts +0 -29
  132. package/dist/server/file-searcher.d.ts.map +0 -1
  133. package/dist/server/file-searcher.js +0 -318
  134. package/dist/server/file-searcher.js.map +0 -1
  135. package/dist/server/git-clone.d.ts +0 -56
  136. package/dist/server/git-clone.d.ts.map +0 -1
  137. package/dist/server/git-clone.js +0 -173
  138. package/dist/server/git-clone.js.map +0 -1
  139. package/dist/server/git-hunk-stager.d.ts +0 -56
  140. package/dist/server/git-hunk-stager.d.ts.map +0 -1
  141. package/dist/server/git-hunk-stager.js +0 -137
  142. package/dist/server/git-hunk-stager.js.map +0 -1
  143. package/dist/server/git-runner.d.ts +0 -346
  144. package/dist/server/git-runner.d.ts.map +0 -1
  145. package/dist/server/git-runner.js +0 -884
  146. package/dist/server/git-runner.js.map +0 -1
  147. package/dist/server/index.d.ts +0 -22
  148. package/dist/server/index.d.ts.map +0 -1
  149. package/dist/server/index.js +0 -262
  150. package/dist/server/index.js.map +0 -1
  151. package/dist/server/lifecycle-notifications.d.ts +0 -28
  152. package/dist/server/lifecycle-notifications.d.ts.map +0 -1
  153. package/dist/server/lifecycle-notifications.js +0 -38
  154. package/dist/server/lifecycle-notifications.js.map +0 -1
  155. package/dist/server/mcp/config.d.ts +0 -23
  156. package/dist/server/mcp/config.d.ts.map +0 -1
  157. package/dist/server/mcp/config.js +0 -139
  158. package/dist/server/mcp/config.js.map +0 -1
  159. package/dist/server/mcp/manager.d.ts +0 -40
  160. package/dist/server/mcp/manager.d.ts.map +0 -1
  161. package/dist/server/mcp/manager.js +0 -435
  162. package/dist/server/mcp/manager.js.map +0 -1
  163. package/dist/server/mcp/stdio-trust.d.ts +0 -5
  164. package/dist/server/mcp/stdio-trust.d.ts.map +0 -1
  165. package/dist/server/mcp/stdio-trust.js +0 -78
  166. package/dist/server/mcp/stdio-trust.js.map +0 -1
  167. package/dist/server/mcp/tool-bridge.d.ts +0 -33
  168. package/dist/server/mcp/tool-bridge.d.ts.map +0 -1
  169. package/dist/server/mcp/tool-bridge.js +0 -138
  170. package/dist/server/mcp/tool-bridge.js.map +0 -1
  171. package/dist/server/orchestration/config.d.ts +0 -5
  172. package/dist/server/orchestration/config.d.ts.map +0 -1
  173. package/dist/server/orchestration/config.js +0 -35
  174. package/dist/server/orchestration/config.js.map +0 -1
  175. package/dist/server/orchestration/event-bridge.d.ts +0 -32
  176. package/dist/server/orchestration/event-bridge.d.ts.map +0 -1
  177. package/dist/server/orchestration/event-bridge.js +0 -110
  178. package/dist/server/orchestration/event-bridge.js.map +0 -1
  179. package/dist/server/orchestration/inbox.d.ts +0 -9
  180. package/dist/server/orchestration/inbox.d.ts.map +0 -1
  181. package/dist/server/orchestration/inbox.js +0 -186
  182. package/dist/server/orchestration/inbox.js.map +0 -1
  183. package/dist/server/orchestration/init.d.ts +0 -2
  184. package/dist/server/orchestration/init.d.ts.map +0 -1
  185. package/dist/server/orchestration/init.js +0 -22
  186. package/dist/server/orchestration/init.js.map +0 -1
  187. package/dist/server/orchestration/store.d.ts +0 -33
  188. package/dist/server/orchestration/store.d.ts.map +0 -1
  189. package/dist/server/orchestration/store.js +0 -331
  190. package/dist/server/orchestration/store.js.map +0 -1
  191. package/dist/server/orchestration/tools.d.ts +0 -15
  192. package/dist/server/orchestration/tools.d.ts.map +0 -1
  193. package/dist/server/orchestration/tools.js +0 -621
  194. package/dist/server/orchestration/tools.js.map +0 -1
  195. package/dist/server/orchestration/types.d.ts +0 -68
  196. package/dist/server/orchestration/types.d.ts.map +0 -1
  197. package/dist/server/orchestration/types.js +0 -43
  198. package/dist/server/orchestration/types.js.map +0 -1
  199. package/dist/server/orchestration/worker-lifecycle.d.ts +0 -15
  200. package/dist/server/orchestration/worker-lifecycle.d.ts.map +0 -1
  201. package/dist/server/orchestration/worker-lifecycle.js +0 -45
  202. package/dist/server/orchestration/worker-lifecycle.js.map +0 -1
  203. package/dist/server/project-manager.d.ts +0 -25
  204. package/dist/server/project-manager.d.ts.map +0 -1
  205. package/dist/server/project-manager.js +0 -157
  206. package/dist/server/project-manager.js.map +0 -1
  207. package/dist/server/pty-manager.d.ts +0 -54
  208. package/dist/server/pty-manager.d.ts.map +0 -1
  209. package/dist/server/pty-manager.js +0 -220
  210. package/dist/server/pty-manager.js.map +0 -1
  211. package/dist/server/routes/_schemas.d.ts +0 -16
  212. package/dist/server/routes/_schemas.d.ts.map +0 -1
  213. package/dist/server/routes/_schemas.js +0 -12
  214. package/dist/server/routes/_schemas.js.map +0 -1
  215. package/dist/server/routes/ask-user-question.d.ts +0 -3
  216. package/dist/server/routes/ask-user-question.d.ts.map +0 -1
  217. package/dist/server/routes/ask-user-question.js +0 -105
  218. package/dist/server/routes/ask-user-question.js.map +0 -1
  219. package/dist/server/routes/auth.d.ts +0 -8
  220. package/dist/server/routes/auth.d.ts.map +0 -1
  221. package/dist/server/routes/auth.js +0 -225
  222. package/dist/server/routes/auth.js.map +0 -1
  223. package/dist/server/routes/config.d.ts +0 -3
  224. package/dist/server/routes/config.d.ts.map +0 -1
  225. package/dist/server/routes/config.js +0 -568
  226. package/dist/server/routes/config.js.map +0 -1
  227. package/dist/server/routes/control.d.ts +0 -3
  228. package/dist/server/routes/control.d.ts.map +0 -1
  229. package/dist/server/routes/control.js +0 -365
  230. package/dist/server/routes/control.js.map +0 -1
  231. package/dist/server/routes/exec.d.ts +0 -3
  232. package/dist/server/routes/exec.d.ts.map +0 -1
  233. package/dist/server/routes/exec.js +0 -426
  234. package/dist/server/routes/exec.js.map +0 -1
  235. package/dist/server/routes/extension-commands.d.ts +0 -22
  236. package/dist/server/routes/extension-commands.d.ts.map +0 -1
  237. package/dist/server/routes/extension-commands.js +0 -178
  238. package/dist/server/routes/extension-commands.js.map +0 -1
  239. package/dist/server/routes/extensions.d.ts +0 -8
  240. package/dist/server/routes/extensions.d.ts.map +0 -1
  241. package/dist/server/routes/extensions.js +0 -414
  242. package/dist/server/routes/extensions.js.map +0 -1
  243. package/dist/server/routes/files.d.ts +0 -3
  244. package/dist/server/routes/files.d.ts.map +0 -1
  245. package/dist/server/routes/files.js +0 -835
  246. package/dist/server/routes/files.js.map +0 -1
  247. package/dist/server/routes/git.d.ts +0 -3
  248. package/dist/server/routes/git.d.ts.map +0 -1
  249. package/dist/server/routes/git.js +0 -1058
  250. package/dist/server/routes/git.js.map +0 -1
  251. package/dist/server/routes/mcp.d.ts +0 -3
  252. package/dist/server/routes/mcp.d.ts.map +0 -1
  253. package/dist/server/routes/mcp.js +0 -403
  254. package/dist/server/routes/mcp.js.map +0 -1
  255. package/dist/server/routes/orchestration.d.ts +0 -3
  256. package/dist/server/routes/orchestration.d.ts.map +0 -1
  257. package/dist/server/routes/orchestration.js +0 -251
  258. package/dist/server/routes/orchestration.js.map +0 -1
  259. package/dist/server/routes/projects.d.ts +0 -3
  260. package/dist/server/routes/projects.d.ts.map +0 -1
  261. package/dist/server/routes/projects.js +0 -421
  262. package/dist/server/routes/projects.js.map +0 -1
  263. package/dist/server/routes/prompt.d.ts +0 -3
  264. package/dist/server/routes/prompt.d.ts.map +0 -1
  265. package/dist/server/routes/prompt.js +0 -311
  266. package/dist/server/routes/prompt.js.map +0 -1
  267. package/dist/server/routes/session-extensions.d.ts +0 -11
  268. package/dist/server/routes/session-extensions.d.ts.map +0 -1
  269. package/dist/server/routes/session-extensions.js +0 -171
  270. package/dist/server/routes/session-extensions.js.map +0 -1
  271. package/dist/server/routes/sessions.d.ts +0 -3
  272. package/dist/server/routes/sessions.d.ts.map +0 -1
  273. package/dist/server/routes/sessions.js +0 -706
  274. package/dist/server/routes/sessions.js.map +0 -1
  275. package/dist/server/routes/skills.d.ts +0 -14
  276. package/dist/server/routes/skills.d.ts.map +0 -1
  277. package/dist/server/routes/skills.js +0 -448
  278. package/dist/server/routes/skills.js.map +0 -1
  279. package/dist/server/routes/stream.d.ts +0 -3
  280. package/dist/server/routes/stream.d.ts.map +0 -1
  281. package/dist/server/routes/stream.js +0 -112
  282. package/dist/server/routes/stream.js.map +0 -1
  283. package/dist/server/routes/terminal.d.ts +0 -28
  284. package/dist/server/routes/terminal.d.ts.map +0 -1
  285. package/dist/server/routes/terminal.js +0 -211
  286. package/dist/server/routes/terminal.js.map +0 -1
  287. package/dist/server/routes/tunnel.d.ts +0 -13
  288. package/dist/server/routes/tunnel.d.ts.map +0 -1
  289. package/dist/server/routes/tunnel.js +0 -231
  290. package/dist/server/routes/tunnel.js.map +0 -1
  291. package/dist/server/session-registry.d.ts +0 -164
  292. package/dist/server/session-registry.d.ts.map +0 -1
  293. package/dist/server/session-registry.js +0 -754
  294. package/dist/server/session-registry.js.map +0 -1
  295. package/dist/server/skill-overrides.d.ts +0 -47
  296. package/dist/server/skill-overrides.d.ts.map +0 -1
  297. package/dist/server/skill-overrides.js +0 -178
  298. package/dist/server/skill-overrides.js.map +0 -1
  299. package/dist/server/sse-bridge.d.ts +0 -31
  300. package/dist/server/sse-bridge.d.ts.map +0 -1
  301. package/dist/server/sse-bridge.js +0 -158
  302. package/dist/server/sse-bridge.js.map +0 -1
  303. package/dist/server/tool-overrides.d.ts +0 -39
  304. package/dist/server/tool-overrides.d.ts.map +0 -1
  305. package/dist/server/tool-overrides.js +0 -121
  306. package/dist/server/tool-overrides.js.map +0 -1
  307. package/dist/server/tunnel/executable-search.d.ts +0 -45
  308. package/dist/server/tunnel/executable-search.d.ts.map +0 -1
  309. package/dist/server/tunnel/executable-search.js +0 -150
  310. package/dist/server/tunnel/executable-search.js.map +0 -1
  311. package/dist/server/tunnel/install-help.d.ts +0 -19
  312. package/dist/server/tunnel/install-help.d.ts.map +0 -1
  313. package/dist/server/tunnel/install-help.js +0 -47
  314. package/dist/server/tunnel/install-help.js.map +0 -1
  315. package/dist/server/tunnel/providers/ngrok.d.ts +0 -34
  316. package/dist/server/tunnel/providers/ngrok.d.ts.map +0 -1
  317. package/dist/server/tunnel/providers/ngrok.js +0 -464
  318. package/dist/server/tunnel/providers/ngrok.js.map +0 -1
  319. package/dist/server/tunnel/registry.d.ts +0 -15
  320. package/dist/server/tunnel/registry.d.ts.map +0 -1
  321. package/dist/server/tunnel/registry.js +0 -58
  322. package/dist/server/tunnel/registry.js.map +0 -1
  323. package/dist/server/tunnel/service.d.ts +0 -15
  324. package/dist/server/tunnel/service.d.ts.map +0 -1
  325. package/dist/server/tunnel/service.js +0 -158
  326. package/dist/server/tunnel/service.js.map +0 -1
  327. package/dist/server/tunnel/types.d.ts +0 -166
  328. package/dist/server/tunnel/types.d.ts.map +0 -1
  329. package/dist/server/tunnel/types.js +0 -217
  330. package/dist/server/tunnel/types.js.map +0 -1
@@ -1,352 +0,0 @@
1
- /**
2
- * Config Manager — wraps SDK config files (auth.json, settings.json, models.json).
3
- *
4
- * Ported from a reference config-manager
5
- * Simplified for pi-kot: no prompt/skill/tool overrides, no export/import.
6
- */
7
- import { readFile, writeFile, rename, unlink, mkdir } from "node:fs/promises";
8
- import { join, dirname } from "node:path";
9
- import { randomUUID } from "node:crypto";
10
- import { getSupportedThinkingLevels } from "@earendil-works/pi-ai";
11
- import { AuthStorage, SettingsManager, ModelRegistry, } from "@earendil-works/pi-coding-agent";
12
- import { config } from "./config.js";
13
- /**
14
- * Probe a provider endpoint to test connectivity, detect API type,
15
- * and fetch available models.
16
- */
17
- export async function probeProvider(req) {
18
- const baseUrl = req.baseUrl.replace(/\/+$/, "");
19
- // Build headers
20
- const headers = {
21
- ...(req.headers ?? {}),
22
- };
23
- if (req.apiKey) {
24
- headers["Authorization"] = `Bearer ${req.apiKey}`;
25
- }
26
- // Detect API type if not provided
27
- const urlLower = baseUrl.toLowerCase();
28
- const apiType = req.apiType ??
29
- (urlLower.includes("anthropic")
30
- ? "anthropic-messages"
31
- : urlLower.includes("google")
32
- ? "google-generative-ai"
33
- : "openai-completions");
34
- // Try to fetch models — different endpoints per API type
35
- let modelsEndpoint;
36
- if (apiType === "google-generative-ai") {
37
- // Google uses /v1beta/models or /v1/models
38
- modelsEndpoint = baseUrl.endsWith("/v1beta") || baseUrl.endsWith("/v1")
39
- ? `${baseUrl}/models`
40
- : `${baseUrl}/v1beta/models`;
41
- }
42
- else if (apiType === "anthropic-messages") {
43
- // Anthropic doesn't have a public models endpoint — try common patterns
44
- modelsEndpoint = `${baseUrl}/models`;
45
- }
46
- else {
47
- // OpenAI-compatible: /v1/models or /models
48
- modelsEndpoint = baseUrl.endsWith("/v1")
49
- ? `${baseUrl}/models`
50
- : `${baseUrl}/v1/models`;
51
- }
52
- // First test basic connectivity
53
- try {
54
- const controller = new AbortController();
55
- const timeout = setTimeout(() => controller.abort(), 10000);
56
- const res = await fetch(modelsEndpoint, {
57
- method: "GET",
58
- headers,
59
- signal: controller.signal,
60
- });
61
- clearTimeout(timeout);
62
- if (!res.ok) {
63
- return {
64
- reachable: false,
65
- error: `HTTP ${res.status}: ${res.statusText}. Tried ${modelsEndpoint}`,
66
- detectedApiType: apiType,
67
- };
68
- }
69
- const body = (await res.json());
70
- // Parse models from response
71
- let models = [];
72
- if (Array.isArray(body.data)) {
73
- // OpenAI-compatible { data: [{ id, ... }] }
74
- models = body.data.map((m) => ({
75
- id: String(m.id ?? ""),
76
- name: String(m.name ?? m.id ?? ""),
77
- }));
78
- }
79
- else if (Array.isArray(body.models)) {
80
- // Google-style { models: [{ name, ... }] }
81
- models = body.models.map((m) => {
82
- const name = String(m.name ?? "");
83
- const shortId = name.includes("/") ? name.split("/").pop() ?? name : name;
84
- return { id: shortId, name };
85
- });
86
- }
87
- // Filter out empty ids
88
- models = models.filter((m) => m.id.length > 0);
89
- // Derive a suggested provider name from the hostname
90
- let suggestedName;
91
- try {
92
- const hostname = new URL(baseUrl).hostname;
93
- suggestedName = hostname
94
- .replace(/^api[.-]/, "")
95
- .replace(/[.-]api$/, "")
96
- .replace(/\./g, "-")
97
- .replace(/[^a-zA-Z0-9_-]/g, "")
98
- .toLowerCase()
99
- .slice(0, 24) || "custom";
100
- }
101
- catch {
102
- suggestedName = "custom";
103
- }
104
- return {
105
- reachable: true,
106
- detectedApiType: apiType,
107
- models,
108
- suggestedName,
109
- rawResponse: models.length > 0 ? undefined : body,
110
- };
111
- }
112
- catch (err) {
113
- const message = err instanceof Error ? err.message : String(err);
114
- return {
115
- reachable: false,
116
- error: `Connection failed: ${message}`,
117
- detectedApiType: apiType,
118
- };
119
- }
120
- }
121
- /**
122
- * Add or update a custom provider in models.json.
123
- */
124
- export async function addCustomProvider(providerName, config) {
125
- const current = await readModelsJsonRaw();
126
- current.providers[providerName] = config;
127
- await writeModelsJson(current);
128
- return { providers: current.providers };
129
- }
130
- /**
131
- * Remove a custom provider from models.json.
132
- */
133
- export async function removeCustomProvider(providerName) {
134
- const current = await readModelsJsonRaw();
135
- delete current.providers[providerName];
136
- await writeModelsJson(current);
137
- return { providers: current.providers };
138
- }
139
- /**
140
- * Read models.json raw (without redaction).
141
- */
142
- async function readModelsJsonRaw() {
143
- try {
144
- const raw = await readFile(MODELS_PATH, "utf-8");
145
- return JSON.parse(raw);
146
- }
147
- catch (err) {
148
- if (err.code === "ENOENT") {
149
- return { providers: {} };
150
- }
151
- throw err;
152
- }
153
- }
154
- // ── Paths ─────────────────────────────────────────────────────────────────
155
- const PI_CONFIG_DIR = config.piConfigDir;
156
- const AUTH_PATH = join(PI_CONFIG_DIR, "auth.json");
157
- const MODELS_PATH = join(PI_CONFIG_DIR, "models.json");
158
- // ── Errors ─────────────────────────────────────────────────────────────────
159
- export class AuthProviderNotFoundError extends Error {
160
- constructor(provider) {
161
- super(`Auth provider "${provider}" not found`);
162
- this.name = "AuthProviderNotFoundError";
163
- }
164
- }
165
- export function readAuthSummary() {
166
- const store = AuthStorage.create(AUTH_PATH);
167
- const providers = {};
168
- for (const name of store.list()) {
169
- providers[name] = {
170
- configured: store.has(name),
171
- source: "stored",
172
- };
173
- }
174
- return { providers };
175
- }
176
- export function writeApiKey(provider, apiKey) {
177
- const store = AuthStorage.create(AUTH_PATH);
178
- store.set(provider, { type: "api_key", key: apiKey });
179
- }
180
- export function removeApiKey(provider) {
181
- const store = AuthStorage.create(AUTH_PATH);
182
- if (!store.has(provider)) {
183
- throw new AuthProviderNotFoundError(provider);
184
- }
185
- store.remove(provider);
186
- }
187
- // ── Settings (settings.json) ──────────────────────────────────────────────
188
- export function readSettings() {
189
- const mgr = SettingsManager.create(PI_CONFIG_DIR);
190
- return mgr.getGlobalSettings();
191
- }
192
- export function updateSettings(patch) {
193
- const mgr = SettingsManager.create(PI_CONFIG_DIR);
194
- // Apply overrides for the fields that have individual setters
195
- if (patch.defaultProvider !== undefined && patch.defaultProvider !== null) {
196
- mgr.setDefaultProvider(String(patch.defaultProvider));
197
- }
198
- if (patch.defaultModel !== undefined && patch.defaultModel !== null) {
199
- mgr.setDefaultModel(String(patch.defaultModel));
200
- }
201
- if (patch.defaultThinkingLevel !== undefined && patch.defaultThinkingLevel !== null) {
202
- mgr.setDefaultThinkingLevel(patch.defaultThinkingLevel);
203
- }
204
- if (patch.skills !== undefined) {
205
- mgr.setSkillPaths(patch.skills === null ? [] : patch.skills);
206
- }
207
- if (patch.enableSkillCommands !== undefined) {
208
- mgr.setEnableSkillCommands(patch.enableSkillCommands === null ? false : Boolean(patch.enableSkillCommands));
209
- }
210
- mgr.flush();
211
- // Handle orchestrator model fields (not managed by SDK SettingsManager)
212
- const raw = mgr.getGlobalSettings();
213
- if (patch.orchProvider !== undefined) {
214
- raw.orchProvider = patch.orchProvider === null ? undefined : String(patch.orchProvider);
215
- }
216
- if (patch.orchModel !== undefined) {
217
- raw.orchModel = patch.orchModel === null ? undefined : String(patch.orchModel);
218
- }
219
- // Write back to persist the extra fields
220
- writeSettings(raw).catch(() => undefined);
221
- return raw;
222
- }
223
- /**
224
- * Read models.json, redacting secret fields (apiKey, apiKeyCommand).
225
- */
226
- export async function readModelsJsonRedacted() {
227
- try {
228
- const raw = await readFile(MODELS_PATH, "utf-8");
229
- const parsed = JSON.parse(raw);
230
- // Redact secrets in every provider config
231
- const redacted = { providers: {} };
232
- for (const [key, val] of Object.entries(parsed.providers ?? {})) {
233
- if (typeof val === "object" && val !== null) {
234
- const v = val;
235
- const redactedVal = {};
236
- for (const [k, vv] of Object.entries(v)) {
237
- if ((k === "apiKey" || k === "apiKeyCommand") && vv !== undefined) {
238
- redactedVal[k] = "***REDACTED***";
239
- }
240
- else {
241
- redactedVal[k] = vv;
242
- }
243
- }
244
- redacted.providers[key] = redactedVal;
245
- }
246
- else {
247
- redacted.providers[key] = val;
248
- }
249
- }
250
- return redacted;
251
- }
252
- catch (err) {
253
- if (err.code === "ENOENT") {
254
- return { providers: {} };
255
- }
256
- throw err;
257
- }
258
- }
259
- export async function writeModelsJson(data) {
260
- await mkdir(dirname(MODELS_PATH), { recursive: true });
261
- await writeFile(MODELS_PATH, JSON.stringify(data, null, 2), "utf-8");
262
- }
263
- /**
264
- * Atomic JSON write (tmp + rename) for config files.
265
- * Pattern: crash-safe writes, no partial writes.
266
- */
267
- async function atomicWriteJson(path, data) {
268
- await mkdir(dirname(path), { recursive: true });
269
- const tmp = `${path}.${randomUUID()}.tmp`;
270
- await writeFile(tmp, JSON.stringify(data, null, 2), "utf8");
271
- try {
272
- await rename(tmp, path);
273
- }
274
- catch (err) {
275
- await unlink(tmp).catch(() => undefined);
276
- throw err;
277
- }
278
- }
279
- /**
280
- * Write settings.json atomically. Used by the per-session setModel route
281
- * to restore the global default after the SDK mutates it as a side effect
282
- * of session.setModel().
283
- * Pattern from reference writeSettings().
284
- */
285
- export async function writeSettings(settings) {
286
- const SETTINGS_FILE = join(PI_CONFIG_DIR, "settings.json");
287
- await atomicWriteJson(SETTINGS_FILE, settings);
288
- }
289
- // ── Enabled Models (settings.json → enabledModels) ─────────────────────────
290
- /**
291
- * Read the enabledModels array from settings via the SDK SettingsManager.
292
- * Returns undefined when no scoping is active (all models visible).
293
- */
294
- export function readEnabledModels() {
295
- const mgr = SettingsManager.create(PI_CONFIG_DIR);
296
- return mgr.getEnabledModels();
297
- }
298
- /**
299
- * Persist the enabledModels array to settings. Pass undefined or null
300
- * to disable scoping (all models visible).
301
- */
302
- export function writeEnabledModels(patterns) {
303
- const mgr = SettingsManager.create(PI_CONFIG_DIR);
304
- mgr.setEnabledModels(patterns === null || patterns === undefined ? undefined : patterns);
305
- }
306
- // ── Live providers listing (from SDK ModelRegistry) ──────────────────────
307
- function buildModelDetail(m, registry) {
308
- const supportedThinkingLevels = (() => {
309
- try {
310
- return getSupportedThinkingLevels(m);
311
- }
312
- catch {
313
- return [];
314
- }
315
- })();
316
- return {
317
- id: m.id,
318
- name: m.name,
319
- contextWindow: m.contextWindow,
320
- maxTokens: m.maxTokens,
321
- reasoning: m.reasoning,
322
- input: m.input,
323
- hasAuth: registry.hasConfiguredAuth(m),
324
- supportedThinkingLevels,
325
- };
326
- }
327
- export function liveProvidersListing(opts) {
328
- const store = AuthStorage.create(AUTH_PATH);
329
- const registry = ModelRegistry.create(store, MODELS_PATH);
330
- let all = registry.getAll();
331
- console.log("[config] total models:", all.length);
332
- // Filter to enabled models when scoped mode is on
333
- if (opts?.scoped === true) {
334
- const enabled = readEnabledModels();
335
- if (enabled !== undefined && enabled.length > 0) {
336
- // enabledModels are stored as "provider/modelId" patterns
337
- all = all.filter((m) => enabled.includes(`${m.provider}/${m.id}`));
338
- console.log("[config] scoped models:", all.length);
339
- }
340
- }
341
- const grouped = new Map();
342
- for (const m of all) {
343
- let entry = grouped.get(m.provider);
344
- if (entry === undefined) {
345
- entry = { provider: m.provider, models: [] };
346
- grouped.set(m.provider, entry);
347
- }
348
- entry.models.push(buildModelDetail(m, registry));
349
- }
350
- return { providers: Array.from(grouped.values()) };
351
- }
352
- //# sourceMappingURL=config-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../src/config-manager.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- export declare const config: Readonly<{
2
- readonly port: number;
3
- readonly host: string;
4
- readonly logLevel: string;
5
- readonly isTest: boolean;
6
- readonly trustProxy: boolean;
7
- readonly workspacePath: string;
8
- readonly piConfigDir: string;
9
- readonly forgeDataDir: string;
10
- readonly sessionDir: string;
11
- readonly mcpConfigFile: string;
12
- readonly mcpStdioTrustFile: string;
13
- readonly toolOverridesFile: string;
14
- readonly skillOverridesFile: string;
15
- readonly uiPassword: string | undefined;
16
- readonly apiKey: string | undefined;
17
- readonly clientDistPath: string;
18
- readonly serveClient: boolean;
19
- readonly corsOrigin: string | true;
20
- readonly orchestrationEnabled: boolean;
21
- readonly orchestrationMaxWorkersPerSupervisor: number;
22
- readonly minimalUi: boolean;
23
- }>;
24
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAsDA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;EA8BR,CAAC"}
@@ -1,67 +0,0 @@
1
- import { homedir } from "node:os";
2
- import { dirname, join, resolve } from "node:path";
3
- import { fileURLToPath } from "node:url";
4
- function readEnv(key) {
5
- const v = process.env[key];
6
- return v === undefined || v === "" ? undefined : v;
7
- }
8
- function readInt(key, fallback) {
9
- const v = readEnv(key);
10
- if (v === undefined)
11
- return fallback;
12
- const n = Number.parseInt(v, 10);
13
- if (!Number.isFinite(n) || n < 0 || String(n) !== v.trim()) {
14
- throw new Error(`config: ${key} must be a non-negative integer (got ${v})`);
15
- }
16
- return n;
17
- }
18
- function readBool(key, fallback) {
19
- const v = readEnv(key)?.toLowerCase();
20
- if (v === undefined)
21
- return fallback;
22
- return ["1", "true", "yes", "on"].includes(v);
23
- }
24
- function modeSuffix() {
25
- const mode = readEnv("PIKOT_MODE") ?? "";
26
- return mode === "dev" ? "-dev" : "";
27
- }
28
- const HOME = homedir();
29
- if (HOME === "/" || HOME === "") {
30
- throw new Error("config: os.homedir() returned empty path. " +
31
- "Set HOME / USERPROFILE to a real user account.");
32
- }
33
- const SUFFIX = modeSuffix();
34
- const WORKSPACE_PATH = resolve(readEnv("WORKSPACE_PATH") ?? resolve(HOME, `.pi-kot${SUFFIX}`, "workspace", "default"));
35
- const SESSION_DIR = resolve(readEnv("SESSION_DIR") ?? resolve(HOME, `.pi-kot${SUFFIX}`, "sessions"));
36
- const FORGE_DATA_DIR = resolve(readEnv("FORGE_DATA_DIR") ?? resolve(HOME, `.pi-kot${SUFFIX}`));
37
- /** Path to built client dist (Vite output). Resolved relative to server dist/ */
38
- const CLIENT_DIST_PATH = resolve(readEnv("CLIENT_DIST_PATH") ??
39
- join(dirname(fileURLToPath(import.meta.url)), "..", "..", "client", "dist"));
40
- export const config = Object.freeze({
41
- port: readInt("PORT", 3333),
42
- host: readEnv("HOST") ?? "0.0.0.0",
43
- logLevel: readEnv("LOG_LEVEL") ?? "info",
44
- isTest: (readEnv("NODE_ENV") ?? "") === "test",
45
- trustProxy: readBool("TRUST_PROXY", false),
46
- workspacePath: WORKSPACE_PATH,
47
- piConfigDir: resolve(readEnv("PI_CONFIG_DIR") ?? resolve(HOME, ".pi", `agent${SUFFIX}`)),
48
- forgeDataDir: FORGE_DATA_DIR,
49
- sessionDir: SESSION_DIR,
50
- mcpConfigFile: resolve(readEnv("MCP_CONFIG_FILE") ?? resolve(FORGE_DATA_DIR, "mcp.json")),
51
- mcpStdioTrustFile: resolve(readEnv("MCP_STDIO_TRUST_FILE") ?? resolve(FORGE_DATA_DIR, "mcp-stdio-trust.json")),
52
- toolOverridesFile: resolve(readEnv("TOOL_OVERRIDES_FILE") ?? resolve(FORGE_DATA_DIR, "tool-overrides.json")),
53
- skillOverridesFile: resolve(readEnv("SKILL_OVERRIDES_FILE") ?? resolve(FORGE_DATA_DIR, "skill-overrides.json")),
54
- // Auth
55
- uiPassword: readEnv("UI_PASSWORD"),
56
- apiKey: readEnv("API_KEY"),
57
- // Static client (production)
58
- clientDistPath: CLIENT_DIST_PATH,
59
- serveClient: readBool("SERVE_CLIENT", true),
60
- // CORS
61
- corsOrigin: readEnv("CORS_ORIGIN") ?? true,
62
- // Orchestration
63
- orchestrationEnabled: readBool("ORCHESTRATION_ENABLED", true),
64
- orchestrationMaxWorkersPerSupervisor: readInt("ORCHESTRATION_MAX_WORKERS", 8),
65
- minimalUi: readBool("MINIMAL_UI", false),
66
- });
67
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1,116 +0,0 @@
1
- /**
2
- * Extension manager — runtime discovery + install for pi.dev extensions.
3
- * Scans ~/.pi/agent/ for installed extensions, agents, and packages,
4
- * and exposes a curated recommendation catalog optimised for pi-kot.
5
- *
6
- * Architecture: extension dynamic detection pattern:
7
- * detect → activate — UI features light up based on what's installed.
8
- *
9
- * Update checking:
10
- * checkExtensionUpdates() compares installed vs. npm registry latest.
11
- * updateExtension() runs npm install to upgrade to latest.
12
- */
13
- export interface DiscoveredExtension {
14
- /** Package / extension name */
15
- name: string;
16
- /** Where it was found: 'extensions_dir' | 'agents_dir' | 'package' | 'builtin' */
17
- source: "extensions_dir" | "agents_dir" | "package" | "builtin";
18
- /** Human description */
19
- description: string;
20
- /** Version string if available */
21
- version?: string;
22
- /** Original package identifier (e.g. "npm:@ayulab/pi-rewind"). Only set for package source. */
23
- package?: string;
24
- /** The agent type definitions this extension provides (e.g. scout, planner) */
25
- agentTypes?: string[];
26
- /** What UI features this extension enables */
27
- enablesFeatures?: string[];
28
- }
29
- export interface RecommendedExtension {
30
- id: string;
31
- name: string;
32
- description: string;
33
- /** npm package name (including npm: prefix for pi) */
34
- package: string;
35
- /** Category for grouping in UI */
36
- category: "orchestration" | "tools" | "ui" | "integration" | "productivity";
37
- /** Whether this extension is already installed */
38
- installed: boolean;
39
- /** True when this extension has been tested and verified to work with pi-kot */
40
- verified?: boolean;
41
- /** What agent types this extension provides */
42
- providesAgentTypes?: string[];
43
- /** What UI features this enables */
44
- enablesFeatures?: string[];
45
- /** Icon emoji */
46
- icon: string;
47
- }
48
- export interface ExtensionsResponse {
49
- /** Extensions currently detected in the pi agent directory */
50
- detected: DiscoveredExtension[];
51
- /** Curated recommendations optimised for pi-kot */
52
- recommended: RecommendedExtension[];
53
- /** Agent definitions found (scout, planner, etc.) */
54
- agents: AgentDef[];
55
- }
56
- export interface AgentDef {
57
- name: string;
58
- description: string;
59
- model?: string;
60
- tools?: string[];
61
- source: "file" | "builtin";
62
- }
63
- export declare function discoverExtensions(): Promise<ExtensionsResponse>;
64
- export declare function uninstallExtension(packageName: string): Promise<{
65
- success: boolean;
66
- error?: string;
67
- }>;
68
- export declare function installExtension(packageName: string): Promise<{
69
- success: boolean;
70
- error?: string;
71
- }>;
72
- export interface ExtensionUpdateInfo {
73
- /** npm package name (without npm: prefix) */
74
- package: string;
75
- /** Display name */
76
- name: string;
77
- /** Currently installed version from node_modules/package.json */
78
- installed: string | undefined;
79
- /** Latest version available on npm registry */
80
- latest: string | undefined;
81
- /** Whether a newer version is available */
82
- updateAvailable: boolean;
83
- }
84
- /** Clear the update cache so the next `checkExtensionUpdates()` hits npm fresh. */
85
- export declare function clearExtensionCache(): void;
86
- /**
87
- * Check for updates on all installed npm packages.
88
- * Reads installed versions from node_modules, then fetches latest
89
- * from registry.npmjs.org. Results are cached for 60 seconds.
90
- */
91
- export declare function checkExtensionUpdates(): Promise<ExtensionUpdateInfo[]>;
92
- /**
93
- * Manual install — accepts any pi install spec through the SDK config path
94
- * (settings.json + npm install). No CLI dependency.
95
- *
96
- * Supported formats:
97
- * npm:package-name → npm install
98
- * git:github.com/user/repo → npm install via git URL
99
- * pi install <spec> → strips prefix first (user typed the full command)
100
- */
101
- export declare function installManualExtension(installSpec: string): Promise<{
102
- success: boolean;
103
- error?: string;
104
- }>;
105
- /**
106
- * Update an installed extension to the latest version via npm install.
107
- * Equivalent to re-running the install but without touching settings.json
108
- * (since it's already in the packages list).
109
- */
110
- export declare function updateExtension(packageName: string): Promise<{
111
- success: boolean;
112
- error?: string;
113
- }>;
114
- /** Built-in agent definitions (builtin defaults like pi-subagents examples) */
115
- export declare const builtinAgentDefs: AgentDef[];
116
- //# sourceMappingURL=extension-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extension-manager.d.ts","sourceRoot":"","sources":["../src/extension-manager.ts"],"names":[],"mappings":"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"}