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.
- package/README.md +253 -17
- package/client/assets/index-CE_Na97I.js +75 -0
- package/client/assets/index-CE_Na97I.js.map +1 -0
- package/client/assets/index-QP95zkpd.css +1 -0
- package/client/assets/rolldown-runtime-QTnfLwEv.js +1 -0
- package/client/assets/vendor-codemirror-CD3uCqRj.js +48 -0
- package/client/assets/vendor-codemirror-CD3uCqRj.js.map +1 -0
- package/client/assets/vendor-icons-W8thHNMl.js +2 -0
- package/client/assets/vendor-icons-W8thHNMl.js.map +1 -0
- package/client/assets/vendor-katex-4z5K3dyr.js +260 -0
- package/client/assets/vendor-katex-4z5K3dyr.js.map +1 -0
- package/client/assets/vendor-katex-CYlHEDRF.css +1 -0
- package/client/assets/vendor-markdown-BSzxNR_7.js +35 -0
- package/client/assets/vendor-markdown-BSzxNR_7.js.map +1 -0
- package/client/assets/vendor-prism-CQGp13s2.js +4 -0
- package/client/assets/vendor-prism-CQGp13s2.js.map +1 -0
- package/client/assets/vendor-xterm-BrP-ENHg.css +1 -0
- package/client/assets/vendor-xterm-DXwh06H3.js +36 -0
- package/client/assets/vendor-xterm-DXwh06H3.js.map +1 -0
- package/client/index.html +23 -0
- package/package.json +11 -61
- package/{dist/server/git-clone.d.ts → server/clone-provider.d.ts} +1 -2
- package/server/clone-provider.d.ts.map +1 -0
- package/{dist/server/git-clone.js → server/clone-provider.js} +1 -2
- package/server/clone-provider.js.map +1 -0
- package/{dist/server/compaction-history.d.ts → server/compaction-cards.d.ts} +2 -2
- package/server/compaction-cards.d.ts.map +1 -0
- package/{dist/server/compaction-history.js → server/compaction-cards.js} +1 -1
- package/server/compaction-cards.js.map +1 -0
- package/{dist/server → server}/compaction-continuation.d.ts +2 -3
- package/server/compaction-continuation.d.ts.map +1 -0
- package/{dist/server → server}/compaction-continuation.js +1 -1
- package/{dist/server → server}/compaction-continuation.js.map +1 -1
- package/{dist/server/config-manager.d.ts → server/config-store.d.ts} +2 -2
- package/server/config-store.d.ts.map +1 -0
- package/{dist/server/config-manager.js → server/config-store.js} +3 -4
- package/server/config-store.js.map +1 -0
- package/{dist/server/sse-bridge.d.ts → server/event-stream.d.ts} +2 -5
- package/server/event-stream.d.ts.map +1 -0
- package/{dist/server/sse-bridge.js → server/event-stream.js} +1 -6
- package/server/event-stream.js.map +1 -0
- package/{dist/server/extensions-discovery.d.ts → server/extension-scanner.d.ts} +1 -1
- package/server/extension-scanner.d.ts.map +1 -0
- package/{dist/server/extensions-discovery.js → server/extension-scanner.js} +2 -2
- package/server/extension-scanner.js.map +1 -0
- package/{dist/server → server}/extension-ui-bridge.d.ts +1 -1
- package/{dist/server → server}/extension-ui-bridge.d.ts.map +1 -1
- package/{dist/server/git-runner.d.ts → server/git-operations.d.ts} +1 -1
- package/server/git-operations.d.ts.map +1 -0
- package/{dist/server/git-runner.js → server/git-operations.js} +2 -2
- package/server/git-operations.js.map +1 -0
- package/{dist/server/git-hunk-stager.d.ts → server/hunk-stager.d.ts} +1 -1
- package/server/hunk-stager.d.ts.map +1 -0
- package/{dist/server/git-hunk-stager.js → server/hunk-stager.js} +3 -3
- package/server/hunk-stager.js.map +1 -0
- package/{dist/server → server}/index.d.ts +0 -1
- package/server/index.d.ts.map +1 -0
- package/{dist/server → server}/index.js +5 -5
- package/{dist/server → server}/index.js.map +1 -1
- package/{dist/server → server}/orchestration/event-bridge.d.ts +2 -2
- package/{dist/server → server}/orchestration/inbox.js +2 -2
- package/{dist/server → server}/orchestration/inbox.js.map +1 -1
- package/{dist/server → server}/orchestration/init.js +2 -2
- package/{dist/server → server}/orchestration/tools.d.ts +1 -1
- package/{dist/server → server}/orchestration/tools.js +2 -2
- package/{dist/server → server}/orchestration/tools.js.map +1 -1
- package/{dist/server → server}/orchestration/worker-lifecycle.js +1 -1
- package/{dist/server → server}/orchestration/worker-lifecycle.js.map +1 -1
- package/{dist/server/file-references.d.ts → server/path-refs.d.ts} +1 -1
- package/server/path-refs.d.ts.map +1 -0
- package/{dist/server/file-references.js → server/path-refs.js} +1 -1
- package/server/path-refs.js.map +1 -0
- package/{dist/server → server}/routes/ask-user-question.js +1 -1
- package/{dist/server → server}/routes/ask-user-question.js.map +1 -1
- package/{dist/server → server}/routes/auth.js +1 -1
- package/{dist/server → server}/routes/auth.js.map +1 -1
- package/{dist/server → server}/routes/config.d.ts.map +1 -1
- package/{dist/server → server}/routes/config.js +39 -5
- package/{dist/server → server}/routes/config.js.map +1 -1
- package/{dist/server → server}/routes/control.d.ts.map +1 -1
- package/{dist/server → server}/routes/control.js +3 -3
- package/{dist/server → server}/routes/control.js.map +1 -1
- package/{dist/server → server}/routes/exec.js +1 -1
- package/{dist/server → server}/routes/exec.js.map +1 -1
- package/{dist/server → server}/routes/extension-commands.js +2 -2
- package/{dist/server → server}/routes/extension-commands.js.map +1 -1
- package/{dist/server → server}/routes/extensions.js +1 -1
- package/{dist/server → server}/routes/extensions.js.map +1 -1
- package/{dist/server → server}/routes/files.js +1 -1
- package/{dist/server → server}/routes/git.js +4 -4
- package/{dist/server → server}/routes/git.js.map +1 -1
- package/{dist/server → server}/routes/mcp.js +2 -2
- package/{dist/server → server}/routes/mcp.js.map +1 -1
- package/{dist/server → server}/routes/orchestration.js +2 -2
- package/{dist/server → server}/routes/orchestration.js.map +1 -1
- package/{dist/server → server}/routes/projects.js +2 -2
- package/{dist/server → server}/routes/projects.js.map +1 -1
- package/{dist/server → server}/routes/prompt.js +3 -3
- package/{dist/server → server}/routes/prompt.js.map +1 -1
- package/{dist/server → server}/routes/session-extensions.js +1 -1
- package/{dist/server → server}/routes/session-extensions.js.map +1 -1
- package/{dist/server → server}/routes/sessions.js +8 -8
- package/{dist/server → server}/routes/sessions.js.map +1 -1
- package/{dist/server → server}/routes/skills.js +1 -1
- package/{dist/server → server}/routes/skills.js.map +1 -1
- package/{dist/server → server}/routes/stream.js +2 -2
- package/{dist/server → server}/routes/stream.js.map +1 -1
- package/{dist/server → server}/routes/terminal.js +2 -2
- package/{dist/server → server}/routes/terminal.js.map +1 -1
- package/{dist/server/lifecycle-notifications.d.ts → server/session-alerts.d.ts} +1 -1
- package/server/session-alerts.d.ts.map +1 -0
- package/{dist/server/lifecycle-notifications.js → server/session-alerts.js} +1 -1
- package/server/session-alerts.js.map +1 -0
- package/{dist/server/session-registry.d.ts → server/session-store.d.ts} +2 -2
- package/server/session-store.d.ts.map +1 -0
- package/{dist/server/session-registry.js → server/session-store.js} +4 -4
- package/server/session-store.js.map +1 -0
- package/{dist/server/skill-overrides.d.ts → server/skill-policy.d.ts} +1 -1
- package/server/skill-policy.d.ts.map +1 -0
- package/{dist/server/skill-overrides.js → server/skill-policy.js} +2 -2
- package/server/skill-policy.js.map +1 -0
- package/{dist/server/pty-manager.d.ts → server/terminal-provider.d.ts} +1 -1
- package/server/terminal-provider.d.ts.map +1 -0
- package/{dist/server/pty-manager.js → server/terminal-provider.js} +1 -1
- package/server/terminal-provider.js.map +1 -0
- package/{dist/server/tool-overrides.d.ts → server/tool-policy.d.ts} +1 -1
- package/server/tool-policy.d.ts.map +1 -0
- package/{dist/server/tool-overrides.js → server/tool-policy.js} +1 -1
- package/server/tool-policy.js.map +1 -0
- package/{dist/server → server}/tunnel/executable-search.d.ts +0 -2
- package/server/tunnel/executable-search.d.ts.map +1 -0
- package/{dist/server → server}/tunnel/executable-search.js +0 -2
- package/server/tunnel/executable-search.js.map +1 -0
- package/{dist/server → server}/tunnel/providers/ngrok.d.ts +0 -3
- package/server/tunnel/providers/ngrok.d.ts.map +1 -0
- package/{dist/server → server}/tunnel/providers/ngrok.js +0 -3
- package/server/tunnel/providers/ngrok.js.map +1 -0
- package/{dist/server → server}/tunnel/registry.d.ts +0 -2
- package/server/tunnel/registry.d.ts.map +1 -0
- package/{dist/server → server}/tunnel/registry.js +0 -2
- package/server/tunnel/registry.js.map +1 -0
- package/{dist/server → server}/tunnel/service.d.ts +0 -2
- package/server/tunnel/service.d.ts.map +1 -0
- package/{dist/server → server}/tunnel/service.js +0 -2
- package/server/tunnel/service.js.map +1 -0
- package/{dist/server → server}/tunnel/types.d.ts +0 -3
- package/server/tunnel/types.d.ts.map +1 -0
- package/{dist/server → server}/tunnel/types.js +0 -3
- package/server/tunnel/types.js.map +1 -0
- package/server/ui-settings-store.d.ts +25 -0
- package/server/ui-settings-store.d.ts.map +1 -0
- package/server/ui-settings-store.js +91 -0
- package/server/ui-settings-store.js.map +1 -0
- package/{dist/server/project-manager.d.ts → server/workspace-store.d.ts} +1 -1
- package/{dist/server/project-manager.d.ts.map → server/workspace-store.d.ts.map} +1 -1
- package/{dist/server/project-manager.js → server/workspace-store.js} +1 -1
- package/{dist/server/project-manager.js.map → server/workspace-store.js.map} +1 -1
- package/dist/client/assets/index-C5quN7Km.js +0 -448
- package/dist/client/assets/index-C5quN7Km.js.map +0 -1
- package/dist/client/assets/index-CuQOwQs1.css +0 -1
- package/dist/client/index.html +0 -14
- package/dist/server/compaction-continuation.d.ts.map +0 -1
- package/dist/server/compaction-history.d.ts.map +0 -1
- package/dist/server/compaction-history.js.map +0 -1
- package/dist/server/config-manager.d.ts.map +0 -1
- package/dist/server/config-manager.js.map +0 -1
- package/dist/server/extensions-discovery.d.ts.map +0 -1
- package/dist/server/extensions-discovery.js.map +0 -1
- package/dist/server/file-references.d.ts.map +0 -1
- package/dist/server/file-references.js.map +0 -1
- package/dist/server/git-clone.d.ts.map +0 -1
- package/dist/server/git-clone.js.map +0 -1
- package/dist/server/git-hunk-stager.d.ts.map +0 -1
- package/dist/server/git-hunk-stager.js.map +0 -1
- package/dist/server/git-runner.d.ts.map +0 -1
- package/dist/server/git-runner.js.map +0 -1
- package/dist/server/index.d.ts.map +0 -1
- package/dist/server/lifecycle-notifications.d.ts.map +0 -1
- package/dist/server/lifecycle-notifications.js.map +0 -1
- package/dist/server/pty-manager.d.ts.map +0 -1
- package/dist/server/pty-manager.js.map +0 -1
- package/dist/server/session-registry.d.ts.map +0 -1
- package/dist/server/session-registry.js.map +0 -1
- package/dist/server/skill-overrides.d.ts.map +0 -1
- package/dist/server/skill-overrides.js.map +0 -1
- package/dist/server/sse-bridge.d.ts.map +0 -1
- package/dist/server/sse-bridge.js.map +0 -1
- package/dist/server/tool-overrides.d.ts.map +0 -1
- package/dist/server/tool-overrides.js.map +0 -1
- package/dist/server/tunnel/executable-search.d.ts.map +0 -1
- package/dist/server/tunnel/executable-search.js.map +0 -1
- package/dist/server/tunnel/providers/ngrok.d.ts.map +0 -1
- package/dist/server/tunnel/providers/ngrok.js.map +0 -1
- package/dist/server/tunnel/registry.d.ts.map +0 -1
- package/dist/server/tunnel/registry.js.map +0 -1
- package/dist/server/tunnel/service.d.ts.map +0 -1
- package/dist/server/tunnel/service.js.map +0 -1
- package/dist/server/tunnel/types.d.ts.map +0 -1
- package/dist/server/tunnel/types.js.map +0 -1
- /package/{dist/client → client}/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- /package/{dist/client → client}/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- /package/{dist/client → client}/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- /package/{dist/client → client}/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- /package/{dist/client → client}/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- /package/{dist/client → client}/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- /package/{dist/client → client}/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- /package/{dist/client → client}/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- /package/{dist/client → client}/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- /package/{dist/client → client}/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- /package/{dist/client → client}/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- /package/{dist/client → client}/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- /package/{dist/client → client}/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- /package/{dist/client → client}/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- /package/{dist/client → client}/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- /package/{dist/client → client}/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- /package/{dist/client → client}/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- /package/{dist/client → client}/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- /package/{dist/client → client}/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- /package/{dist/client → client}/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- /package/{dist/client → client}/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- /package/{dist/client → client}/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- /package/{dist/client → client}/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- /package/{dist/client → client}/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- /package/{dist/client → client}/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- /package/{dist/client → client}/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- /package/{dist/client → client}/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- /package/{dist/client → client}/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- /package/{dist/client → client}/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- /package/{dist/client → client}/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- /package/{dist/client → client}/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- /package/{dist/client → client}/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- /package/{dist/client → client}/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- /package/{dist/client → client}/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- /package/{dist/client → client}/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- /package/{dist/client → client}/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- /package/{dist/client → client}/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- /package/{dist/client → client}/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- /package/{dist/client → client}/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- /package/{dist/client → client}/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- /package/{dist/client → client}/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- /package/{dist/client → client}/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- /package/{dist/client → client}/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- /package/{dist/client → client}/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- /package/{dist/client → client}/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- /package/{dist/client → client}/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- /package/{dist/client → client}/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- /package/{dist/client → client}/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- /package/{dist/client → client}/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- /package/{dist/client → client}/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- /package/{dist/client → client}/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- /package/{dist/client → client}/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- /package/{dist/client → client}/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- /package/{dist/client → client}/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- /package/{dist/client → client}/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- /package/{dist/client → client}/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- /package/{dist/client → client}/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- /package/{dist/client → client}/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- /package/{dist/client → client}/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- /package/{dist/server → server}/ask-user-question/envelope.d.ts +0 -0
- /package/{dist/server → server}/ask-user-question/envelope.d.ts.map +0 -0
- /package/{dist/server → server}/ask-user-question/envelope.js +0 -0
- /package/{dist/server → server}/ask-user-question/envelope.js.map +0 -0
- /package/{dist/server → server}/ask-user-question/plan-mode-question-tool.d.ts +0 -0
- /package/{dist/server → server}/ask-user-question/plan-mode-question-tool.d.ts.map +0 -0
- /package/{dist/server → server}/ask-user-question/plan-mode-question-tool.js +0 -0
- /package/{dist/server → server}/ask-user-question/plan-mode-question-tool.js.map +0 -0
- /package/{dist/server → server}/ask-user-question/prompt-strings.d.ts +0 -0
- /package/{dist/server → server}/ask-user-question/prompt-strings.d.ts.map +0 -0
- /package/{dist/server → server}/ask-user-question/prompt-strings.js +0 -0
- /package/{dist/server → server}/ask-user-question/prompt-strings.js.map +0 -0
- /package/{dist/server → server}/ask-user-question/registry.d.ts +0 -0
- /package/{dist/server → server}/ask-user-question/registry.d.ts.map +0 -0
- /package/{dist/server → server}/ask-user-question/registry.js +0 -0
- /package/{dist/server → server}/ask-user-question/registry.js.map +0 -0
- /package/{dist/server → server}/ask-user-question/tool.d.ts +0 -0
- /package/{dist/server → server}/ask-user-question/tool.d.ts.map +0 -0
- /package/{dist/server → server}/ask-user-question/tool.js +0 -0
- /package/{dist/server → server}/ask-user-question/tool.js.map +0 -0
- /package/{dist/server → server}/ask-user-question/types.d.ts +0 -0
- /package/{dist/server → server}/ask-user-question/types.d.ts.map +0 -0
- /package/{dist/server → server}/ask-user-question/types.js +0 -0
- /package/{dist/server → server}/ask-user-question/types.js.map +0 -0
- /package/{dist/server → server}/ask-user-question/validate.d.ts +0 -0
- /package/{dist/server → server}/ask-user-question/validate.d.ts.map +0 -0
- /package/{dist/server → server}/ask-user-question/validate.js +0 -0
- /package/{dist/server → server}/ask-user-question/validate.js.map +0 -0
- /package/{dist/server → server}/config.d.ts +0 -0
- /package/{dist/server → server}/config.d.ts.map +0 -0
- /package/{dist/server → server}/config.js +0 -0
- /package/{dist/server → server}/config.js.map +0 -0
- /package/{dist/server → server}/extension-manager.d.ts +0 -0
- /package/{dist/server → server}/extension-manager.d.ts.map +0 -0
- /package/{dist/server → server}/extension-manager.js +0 -0
- /package/{dist/server → server}/extension-manager.js.map +0 -0
- /package/{dist/server → server}/extension-ui-bridge.js +0 -0
- /package/{dist/server → server}/extension-ui-bridge.js.map +0 -0
- /package/{dist/server → server}/file-manager.d.ts +0 -0
- /package/{dist/server → server}/file-manager.d.ts.map +0 -0
- /package/{dist/server → server}/file-manager.js +0 -0
- /package/{dist/server → server}/file-manager.js.map +0 -0
- /package/{dist/server → server}/file-searcher.d.ts +0 -0
- /package/{dist/server → server}/file-searcher.d.ts.map +0 -0
- /package/{dist/server → server}/file-searcher.js +0 -0
- /package/{dist/server → server}/file-searcher.js.map +0 -0
- /package/{dist/server → server}/mcp/config.d.ts +0 -0
- /package/{dist/server → server}/mcp/config.d.ts.map +0 -0
- /package/{dist/server → server}/mcp/config.js +0 -0
- /package/{dist/server → server}/mcp/config.js.map +0 -0
- /package/{dist/server → server}/mcp/manager.d.ts +0 -0
- /package/{dist/server → server}/mcp/manager.d.ts.map +0 -0
- /package/{dist/server → server}/mcp/manager.js +0 -0
- /package/{dist/server → server}/mcp/manager.js.map +0 -0
- /package/{dist/server → server}/mcp/stdio-trust.d.ts +0 -0
- /package/{dist/server → server}/mcp/stdio-trust.d.ts.map +0 -0
- /package/{dist/server → server}/mcp/stdio-trust.js +0 -0
- /package/{dist/server → server}/mcp/stdio-trust.js.map +0 -0
- /package/{dist/server → server}/mcp/tool-bridge.d.ts +0 -0
- /package/{dist/server → server}/mcp/tool-bridge.d.ts.map +0 -0
- /package/{dist/server → server}/mcp/tool-bridge.js +0 -0
- /package/{dist/server → server}/mcp/tool-bridge.js.map +0 -0
- /package/{dist/server → server}/orchestration/config.d.ts +0 -0
- /package/{dist/server → server}/orchestration/config.d.ts.map +0 -0
- /package/{dist/server → server}/orchestration/config.js +0 -0
- /package/{dist/server → server}/orchestration/config.js.map +0 -0
- /package/{dist/server → server}/orchestration/event-bridge.d.ts.map +0 -0
- /package/{dist/server → server}/orchestration/event-bridge.js +0 -0
- /package/{dist/server → server}/orchestration/event-bridge.js.map +0 -0
- /package/{dist/server → server}/orchestration/inbox.d.ts +0 -0
- /package/{dist/server → server}/orchestration/inbox.d.ts.map +0 -0
- /package/{dist/server → server}/orchestration/init.d.ts +0 -0
- /package/{dist/server → server}/orchestration/init.d.ts.map +0 -0
- /package/{dist/server → server}/orchestration/init.js.map +0 -0
- /package/{dist/server → server}/orchestration/store.d.ts +0 -0
- /package/{dist/server → server}/orchestration/store.d.ts.map +0 -0
- /package/{dist/server → server}/orchestration/store.js +0 -0
- /package/{dist/server → server}/orchestration/store.js.map +0 -0
- /package/{dist/server → server}/orchestration/tools.d.ts.map +0 -0
- /package/{dist/server → server}/orchestration/types.d.ts +0 -0
- /package/{dist/server → server}/orchestration/types.d.ts.map +0 -0
- /package/{dist/server → server}/orchestration/types.js +0 -0
- /package/{dist/server → server}/orchestration/types.js.map +0 -0
- /package/{dist/server → server}/orchestration/worker-lifecycle.d.ts +0 -0
- /package/{dist/server → server}/orchestration/worker-lifecycle.d.ts.map +0 -0
- /package/{dist/server → server}/routes/_schemas.d.ts +0 -0
- /package/{dist/server → server}/routes/_schemas.d.ts.map +0 -0
- /package/{dist/server → server}/routes/_schemas.js +0 -0
- /package/{dist/server → server}/routes/_schemas.js.map +0 -0
- /package/{dist/server → server}/routes/ask-user-question.d.ts +0 -0
- /package/{dist/server → server}/routes/ask-user-question.d.ts.map +0 -0
- /package/{dist/server → server}/routes/auth.d.ts +0 -0
- /package/{dist/server → server}/routes/auth.d.ts.map +0 -0
- /package/{dist/server → server}/routes/config.d.ts +0 -0
- /package/{dist/server → server}/routes/control.d.ts +0 -0
- /package/{dist/server → server}/routes/exec.d.ts +0 -0
- /package/{dist/server → server}/routes/exec.d.ts.map +0 -0
- /package/{dist/server → server}/routes/extension-commands.d.ts +0 -0
- /package/{dist/server → server}/routes/extension-commands.d.ts.map +0 -0
- /package/{dist/server → server}/routes/extensions.d.ts +0 -0
- /package/{dist/server → server}/routes/extensions.d.ts.map +0 -0
- /package/{dist/server → server}/routes/files.d.ts +0 -0
- /package/{dist/server → server}/routes/files.d.ts.map +0 -0
- /package/{dist/server → server}/routes/files.js.map +0 -0
- /package/{dist/server → server}/routes/git.d.ts +0 -0
- /package/{dist/server → server}/routes/git.d.ts.map +0 -0
- /package/{dist/server → server}/routes/mcp.d.ts +0 -0
- /package/{dist/server → server}/routes/mcp.d.ts.map +0 -0
- /package/{dist/server → server}/routes/orchestration.d.ts +0 -0
- /package/{dist/server → server}/routes/orchestration.d.ts.map +0 -0
- /package/{dist/server → server}/routes/projects.d.ts +0 -0
- /package/{dist/server → server}/routes/projects.d.ts.map +0 -0
- /package/{dist/server → server}/routes/prompt.d.ts +0 -0
- /package/{dist/server → server}/routes/prompt.d.ts.map +0 -0
- /package/{dist/server → server}/routes/session-extensions.d.ts +0 -0
- /package/{dist/server → server}/routes/session-extensions.d.ts.map +0 -0
- /package/{dist/server → server}/routes/sessions.d.ts +0 -0
- /package/{dist/server → server}/routes/sessions.d.ts.map +0 -0
- /package/{dist/server → server}/routes/skills.d.ts +0 -0
- /package/{dist/server → server}/routes/skills.d.ts.map +0 -0
- /package/{dist/server → server}/routes/stream.d.ts +0 -0
- /package/{dist/server → server}/routes/stream.d.ts.map +0 -0
- /package/{dist/server → server}/routes/terminal.d.ts +0 -0
- /package/{dist/server → server}/routes/terminal.d.ts.map +0 -0
- /package/{dist/server → server}/routes/tunnel.d.ts +0 -0
- /package/{dist/server → server}/routes/tunnel.d.ts.map +0 -0
- /package/{dist/server → server}/routes/tunnel.js +0 -0
- /package/{dist/server → server}/routes/tunnel.js.map +0 -0
- /package/{dist/server → server}/tunnel/install-help.d.ts +0 -0
- /package/{dist/server → server}/tunnel/install-help.d.ts.map +0 -0
- /package/{dist/server → server}/tunnel/install-help.js +0 -0
- /package/{dist/server → server}/tunnel/install-help.js.map +0 -0
package/README.md
CHANGED
|
@@ -1,30 +1,266 @@
|
|
|
1
|
-
# pi-kot
|
|
1
|
+
# pi-kot
|
|
2
2
|
|
|
3
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
264
|
+
## License
|
|
29
265
|
|
|
30
|
-
|
|
266
|
+
MIT
|