pi-outpost 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +55 -0
  3. package/dist/pi-outpost.mjs +373279 -0
  4. package/dist/web/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  5. package/dist/web/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  6. package/dist/web/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  7. package/dist/web/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  8. package/dist/web/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  9. package/dist/web/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  10. package/dist/web/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  11. package/dist/web/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  12. package/dist/web/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  13. package/dist/web/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  14. package/dist/web/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  15. package/dist/web/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  16. package/dist/web/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  17. package/dist/web/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  18. package/dist/web/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  19. package/dist/web/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  20. package/dist/web/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  21. package/dist/web/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  22. package/dist/web/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  23. package/dist/web/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  24. package/dist/web/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  25. package/dist/web/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  26. package/dist/web/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  27. package/dist/web/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  28. package/dist/web/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  29. package/dist/web/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  30. package/dist/web/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  31. package/dist/web/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  32. package/dist/web/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  33. package/dist/web/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  34. package/dist/web/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  35. package/dist/web/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  36. package/dist/web/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  37. package/dist/web/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  38. package/dist/web/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  39. package/dist/web/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  40. package/dist/web/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  41. package/dist/web/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  42. package/dist/web/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  43. package/dist/web/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  44. package/dist/web/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  45. package/dist/web/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  46. package/dist/web/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  47. package/dist/web/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  48. package/dist/web/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  49. package/dist/web/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  50. package/dist/web/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  51. package/dist/web/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  52. package/dist/web/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  53. package/dist/web/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  54. package/dist/web/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  55. package/dist/web/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  56. package/dist/web/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  57. package/dist/web/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  58. package/dist/web/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  59. package/dist/web/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  60. package/dist/web/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  61. package/dist/web/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  62. package/dist/web/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  63. package/dist/web/assets/abnfDiagram-VRR7QNED-By0xeyj_.js +1 -0
  64. package/dist/web/assets/arc-aUt2wAqj.js +1 -0
  65. package/dist/web/assets/architecture-TIHT7OUA-COByoQcb.js +1 -0
  66. package/dist/web/assets/architectureDiagram-ZJ3FMSHR-tAFOJ2ki.js +36 -0
  67. package/dist/web/assets/array-BifhSqXX.js +1 -0
  68. package/dist/web/assets/bash-LmRjUKlR.js +1 -0
  69. package/dist/web/assets/blockDiagram-677ZJIJ3-DeGOVl8A.js +132 -0
  70. package/dist/web/assets/c-CVYb4e6m.js +1 -0
  71. package/dist/web/assets/c4Diagram-LMCZKHZV-RWsM1Cf9.js +10 -0
  72. package/dist/web/assets/channel-vCo4KEPK.js +1 -0
  73. package/dist/web/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
  74. package/dist/web/assets/chunk-32BRIVSS-CWClKuQS.js +1 -0
  75. package/dist/web/assets/chunk-52WLFC77-D_zkkvA5.js +10 -0
  76. package/dist/web/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
  77. package/dist/web/assets/chunk-7BUUIJ7U-Bb538aSH.js +1 -0
  78. package/dist/web/assets/chunk-C7G6YPKG-CgPDvovV.js +1 -0
  79. package/dist/web/assets/chunk-EX3LRPZG-xR0eri2K.js +231 -0
  80. package/dist/web/assets/chunk-FWX5IMBZ-B-MUtzD_.js +2 -0
  81. package/dist/web/assets/chunk-HOUHSVGY-Bef38hel.js +1 -0
  82. package/dist/web/assets/chunk-ICXQ74PX-HAZ2qxg4.js +2 -0
  83. package/dist/web/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
  84. package/dist/web/assets/chunk-KEIR6QF5-BfrZ3jm6.js +161 -0
  85. package/dist/web/assets/chunk-MOJQB5TN-Cj6c32fZ.js +88 -0
  86. package/dist/web/assets/chunk-OGEWGWER-Cm2zwDBd.js +1 -0
  87. package/dist/web/assets/chunk-PUDLZKDR-DD8sYZzr.js +156 -0
  88. package/dist/web/assets/chunk-Q4XR5HBZ-Cebx7e58.js +70 -0
  89. package/dist/web/assets/chunk-RYQCIY6F-CICi0qdQ.js +1 -0
  90. package/dist/web/assets/chunk-V7JOEXUC-C1QHkYUC.js +206 -0
  91. package/dist/web/assets/chunk-VAUOI2AC-Bjm9d_PZ.js +1 -0
  92. package/dist/web/assets/chunk-VR4S4FIN-BzSVpxtc.js +1 -0
  93. package/dist/web/assets/chunk-WYO6CB5R-BXX64OzF.js +128 -0
  94. package/dist/web/assets/chunk-XXDRQBXY-DZCmPHnF.js +1 -0
  95. package/dist/web/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
  96. package/dist/web/assets/chunk-ZGVPDNZ5-DRdBNz1K.js +62 -0
  97. package/dist/web/assets/chunk-ZIRB5QZD-C6fEPe3t.js +32 -0
  98. package/dist/web/assets/classDiagram-OUVF2IWQ-Bo418e_v.js +1 -0
  99. package/dist/web/assets/classDiagram-v2-EOCWNBFH-Bo418e_v.js +1 -0
  100. package/dist/web/assets/core-CJ19CnNV.js +3 -0
  101. package/dist/web/assets/cose-bilkent-JH36ORCC-CDcHFhVZ.js +1 -0
  102. package/dist/web/assets/cpp-V0F2hNk9.js +1 -0
  103. package/dist/web/assets/csharp-GZmu99Fo.js +1 -0
  104. package/dist/web/assets/css-D5l_8KUR.js +1 -0
  105. package/dist/web/assets/cynefin-VYW2F7L2-DvGyi2nQ.js +1 -0
  106. package/dist/web/assets/cynefinDiagram-TSTJHNR4-D4Oz9H2g.js +62 -0
  107. package/dist/web/assets/cytoscape.esm-B3I8pqwA.js +321 -0
  108. package/dist/web/assets/dagre-CXRCoUWR.js +1 -0
  109. package/dist/web/assets/dagre-VKFMJZFB-Du5bxX1W.js +4 -0
  110. package/dist/web/assets/defaultLocale-C8Fc0cco.js +1 -0
  111. package/dist/web/assets/diagram-FQU43EPY-DQahxbiv.js +3 -0
  112. package/dist/web/assets/diagram-G47NLZAW-BzYnUU7K.js +24 -0
  113. package/dist/web/assets/diagram-NH7WQ7WH-D6rnHqCF.js +24 -0
  114. package/dist/web/assets/diagram-OA4YK3LP-44Y6yQQV.js +30 -0
  115. package/dist/web/assets/diagram-WEI45ONY-DbFR9YAr.js +41 -0
  116. package/dist/web/assets/dist-CRj4vvjo.js +1 -0
  117. package/dist/web/assets/dockerfile-C0zufGsU.js +1 -0
  118. package/dist/web/assets/ebnfDiagram-CCIWWBDH-pARMmYJE.js +1 -0
  119. package/dist/web/assets/erDiagram-Q63AITRT-DTe0oCww.js +85 -0
  120. package/dist/web/assets/eventmodeling-45OFAUF4-CnkSwDZT.js +1 -0
  121. package/dist/web/assets/flowDiagram-23GEKE2U-DKpx8sXf.js +1 -0
  122. package/dist/web/assets/ganttDiagram-NO4QXBWP-CQR1CgJ1.js +292 -0
  123. package/dist/web/assets/gitGraph-TEB2WS4Q-C8nCt-M3.js +1 -0
  124. package/dist/web/assets/gitGraphDiagram-IHSO6WYX-BuGr7knw.js +106 -0
  125. package/dist/web/assets/go-B-PCS5zA.js +1 -0
  126. package/dist/web/assets/graphlib-B8gBHxth.js +1 -0
  127. package/dist/web/assets/index-CPx0s6JV.js +311 -0
  128. package/dist/web/assets/index-DfegZ054.css +2 -0
  129. package/dist/web/assets/info-DKCQHKI2-C6gmYdna.js +1 -0
  130. package/dist/web/assets/infoDiagram-FWYZ7A6U-C50Du0bx.js +2 -0
  131. package/dist/web/assets/ini-B1CroMsf.js +1 -0
  132. package/dist/web/assets/init-D6jRqBbL.js +1 -0
  133. package/dist/web/assets/ishikawaDiagram-FXEZZL3T-BKO4PDuY.js +70 -0
  134. package/dist/web/assets/java-ChVphriW.js +1 -0
  135. package/dist/web/assets/javascript-w9aIBC1S.js +1 -0
  136. package/dist/web/assets/journeyDiagram-5HDEW3XC-9Adfqfvn.js +139 -0
  137. package/dist/web/assets/json-DS4EA3dC.js +1 -0
  138. package/dist/web/assets/kanban-definition-HUTT4EX6-Dmu1gzYo.js +89 -0
  139. package/dist/web/assets/line-C2GWqBr9.js +1 -0
  140. package/dist/web/assets/linear-BOrLn1hm.js +1 -0
  141. package/dist/web/assets/map-DsCK-0Cs.js +1 -0
  142. package/dist/web/assets/markdown-C8bVcNXx.js +1 -0
  143. package/dist/web/assets/mermaid-parser.core-BrikYgI2.js +7 -0
  144. package/dist/web/assets/mermaid.core-Di-g7t8E.js +11 -0
  145. package/dist/web/assets/mindmap-definition-LN4V7U3C-Ba2U7Oh-.js +96 -0
  146. package/dist/web/assets/ordinal-hYBb2elL.js +1 -0
  147. package/dist/web/assets/packet-7NZHBO7P-BKs41zwc.js +1 -0
  148. package/dist/web/assets/path-BWPyau1x.js +1 -0
  149. package/dist/web/assets/pegDiagram-2B236MQR-BqmlO3SD.js +1 -0
  150. package/dist/web/assets/php-5k5YNuRS.js +2 -0
  151. package/dist/web/assets/pie-RZYD4A2V-DeiuM8y9.js +1 -0
  152. package/dist/web/assets/pieDiagram-ENE6RG2P-DaTr8gek.js +39 -0
  153. package/dist/web/assets/plaintext-YB8mb-y7.js +1 -0
  154. package/dist/web/assets/python-DwhXSSGr.js +1 -0
  155. package/dist/web/assets/quadrantDiagram-ABIIQ3AL-cz2hhYQG.js +7 -0
  156. package/dist/web/assets/radar-I7S5WNFK-vZnM5om-.js +1 -0
  157. package/dist/web/assets/railroad-3IZDKUUU-D1i2rIDR.js +1 -0
  158. package/dist/web/assets/railroad-abnf-AHOZXSZD-WgnQgCHZ.js +1 -0
  159. package/dist/web/assets/railroad-ebnf-EBAXGLYW-DYDcfWLG.js +1 -0
  160. package/dist/web/assets/railroad-peg-LSFZ7HO6-Cz96y6zX.js +1 -0
  161. package/dist/web/assets/railroadDiagram-RFXS5EU6-CZJ5xdsM.js +1 -0
  162. package/dist/web/assets/requirementDiagram-TGXJPOKE-DYPYs95j.js +84 -0
  163. package/dist/web/assets/rough.esm-CSKSodPl.js +1 -0
  164. package/dist/web/assets/ruby-D6zc0cUO.js +1 -0
  165. package/dist/web/assets/rust-Dk33Kfe-.js +1 -0
  166. package/dist/web/assets/sankeyDiagram-HTMAVEWB-BZgjra3Z.js +40 -0
  167. package/dist/web/assets/scss-BNjRHcgO.js +1 -0
  168. package/dist/web/assets/sequenceDiagram-DBY2YBRQ-DXiIdUFn.js +162 -0
  169. package/dist/web/assets/sizeCapture-X5ZJPWSS-B0uUizjq.js +1 -0
  170. package/dist/web/assets/sql-DWRKyvJ-.js +1 -0
  171. package/dist/web/assets/src-CcKKYRG8.js +1 -0
  172. package/dist/web/assets/stateDiagram-2N3HPSRC-D5RZI9yE.js +1 -0
  173. package/dist/web/assets/stateDiagram-v2-6OUMAXLB-DvjwOCmS.js +1 -0
  174. package/dist/web/assets/swimlanes-5IMT3BWC-78j0TJex.js +2 -0
  175. package/dist/web/assets/swimlanesDiagram-G3AALYLV-D0iwqq6B.js +8 -0
  176. package/dist/web/assets/timeline-definition-FHXFAJF6-CSZIg3gP.js +120 -0
  177. package/dist/web/assets/treeView-QDETBFTQ-DUE1A80c.js +1 -0
  178. package/dist/web/assets/treemap-6X3UGDF4-DIUxQKeS.js +1 -0
  179. package/dist/web/assets/typescript-CTV1Js34.js +1 -0
  180. package/dist/web/assets/vennDiagram-L72KCM5P-QD6LhYLk.js +34 -0
  181. package/dist/web/assets/wardley-OPB4EBWU-CBNgAVP2.js +1 -0
  182. package/dist/web/assets/wardleyDiagram-EHGQE667-Cl5GLiGu.js +78 -0
  183. package/dist/web/assets/xml-DasnpDVC.js +1 -0
  184. package/dist/web/assets/xychartDiagram-FW5EYKEG-DnAmyKA2.js +7 -0
  185. package/dist/web/assets/yaml-1XF8XcZB.js +1 -0
  186. package/dist/web/favicon.svg +1 -0
  187. package/dist/web/icons.svg +24 -0
  188. package/dist/web/index.html +13 -0
  189. package/package.json +45 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Laurent Francoise
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,55 @@
1
+ # pi-outpost
2
+
3
+ A web chat UI for the [pi coding agent](https://github.com/earendil-works/pi) — streaming replies, collapsible thinking, live tool cards (bash, edit, …), a file browser, git integration, and a conversation tree you can branch from.
4
+
5
+ ```sh
6
+ npx pi-outpost init # writes a starter pi-outpost.config.json here
7
+ npx pi-outpost # http://127.0.0.1:3141/
8
+ ```
9
+
10
+ Requires Node ≥ 22.19 and [pi](https://github.com/earendil-works/pi) configured (`~/.pi/agent/auth.json`, or a provider variable like `ANTHROPIC_API_KEY`).
11
+
12
+ ## It will not start without a configuration file
13
+
14
+ That is deliberate. The config decides the agent's working directory, which tools it gets, and whether it can write files or run bash — and inferring that from whatever directory you happen to be standing in is not a decision anyone wants made for them. `init` writes the safe version (read-only, no bash) for you to open up as needed.
15
+
16
+ ## Configuration
17
+
18
+ The **first** of these that exists is read, and only that one — configurations are never merged, so the file you are reading is the configuration that is running:
19
+
20
+ 1. `--config <path>`
21
+ 2. `--profile <name>` → `<user config dir>/profiles/<name>.json`
22
+ 3. `$PI_OUTPOST_CONFIG`
23
+ 4. `$PI_OUTPOST_PROFILE` → `<user config dir>/profiles/<name>.json`
24
+ 5. `./pi-outpost.config.json`
25
+ 6. `<user config dir>/config.json`
26
+
27
+ `<user config dir>` is `$XDG_CONFIG_HOME/pi-outpost`, or `~/.config/pi-outpost`. Not sure which one won, or why a setting has the value it has? `pi-outpost config` prints the resolved configuration and the file it came from, without starting anything.
28
+
29
+ **Profiles** let you configure once and run anywhere: `pi-outpost --profile work` reads `~/.config/pi-outpost/profiles/work.json`, from any directory. A profile is an ordinary config file.
30
+
31
+ **Precedence**, for any setting that appears in more than one place: **flag > environment variable > config file > default**.
32
+
33
+ | Flag | Effect |
34
+ |------|--------|
35
+ | `--config <path>` | Configuration file to use |
36
+ | `--profile <name>` | Named profile from the user config directory |
37
+ | `--cwd <dir>` | Directory the agent works in |
38
+ | `--agent-dir <dir>` | pi config/session store (default `~/.pi/agent`) |
39
+ | `--port <n>` / `--host <addr>` | Where to listen (default `127.0.0.1:3141`) |
40
+
41
+ Environment: `PI_OUTPOST_PORT` (falls back to `PORT`), `PI_OUTPOST_HOST`, `PI_OUTPOST_CWD`, `PI_OUTPOST_AGENT_DIR`, `PI_OUTPOST_TOKEN`.
42
+
43
+ ## Security
44
+
45
+ The agent has file and (optionally) bash tools. The server binds to `127.0.0.1` by default and validates the WebSocket `Origin`.
46
+
47
+ - There is **no `--token` flag** on purpose: a secret on the command line is readable by anyone who can list processes. Use `PI_OUTPOST_TOKEN` or the file's `server.token`.
48
+ - Binding off loopback (`--host 0.0.0.0`) **requires** a token — the server refuses to start otherwise, because the agent's tools would be reachable by anything that can route to the host.
49
+ - Sandbox the agent (`sandbox.root`, `allowWrite`, `allowBash`) for anything beyond your own machine. The effective sandbox is printed at every start.
50
+
51
+ Full documentation: [github.com/laurentftech/pi-outpost](https://github.com/laurentftech/pi-outpost#readme).
52
+
53
+ ## License
54
+
55
+ MIT