@chainingintention/pi-web-cn 2.202610.5 → 2.202611.2

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 (997) hide show
  1. package/README.md +4 -2
  2. package/dist/bin/pi-web-server.sh +91 -0
  3. package/dist/bin/pi-web-sessiond.sh +91 -0
  4. package/dist/bin/pi-web.sh +91 -0
  5. package/dist/cli.js +33 -29
  6. package/dist/cli.js.map +1 -1
  7. package/dist/client/assets/3d-Dr68X8h8.svg +1 -0
  8. package/dist/client/assets/PiWebApp-Dur6Wi62.js +3952 -0
  9. package/dist/client/assets/SettingsDialog-SOljSiee.js +1129 -0
  10. package/dist/client/assets/abap-uAHVFerN.svg +1 -0
  11. package/dist/client/assets/abc-CXjdSXsv.svg +1 -0
  12. package/dist/client/assets/actionscript-BCkIwjgm.svg +1 -0
  13. package/dist/client/assets/ada-GL6JWmc_.svg +1 -0
  14. package/dist/client/assets/adobe-illustrator-DhGvkpwi.svg +1 -0
  15. package/dist/client/assets/adobe-photoshop-0hmnA7cm.svg +1 -0
  16. package/dist/client/assets/adobe-swc-myFGSGFT.svg +1 -0
  17. package/dist/client/assets/adonis-SdGYdzCA.svg +1 -0
  18. package/dist/client/assets/advpl-BWLgf_Ky.svg +1 -0
  19. package/dist/client/assets/advpl-include-DYgH3R0u.svg +1 -0
  20. package/dist/client/assets/advpl-ptm-C5Y5ffZi.svg +1 -0
  21. package/dist/client/assets/advpl-tlpp-BAlVwpPL.svg +1 -0
  22. package/dist/client/assets/agent-DAWBwR7s.svg +1 -0
  23. package/dist/client/assets/amplify-BAWPaFFb.svg +1 -0
  24. package/dist/client/assets/android-TigHCxTb.svg +1 -0
  25. package/dist/client/assets/angular-D2ijCUIg.svg +1 -0
  26. package/dist/client/assets/angular-component-eczQQRE6.svg +1 -0
  27. package/dist/client/assets/angular-directive-C_jq8cjP.svg +1 -0
  28. package/dist/client/assets/angular-guard-B4iC5rXF.svg +1 -0
  29. package/dist/client/assets/angular-interceptor-CJvi6DuQ.svg +1 -0
  30. package/dist/client/assets/angular-pipe-BQZMATB_.svg +1 -0
  31. package/dist/client/assets/angular-service-DHYn6jIk.svg +1 -0
  32. package/dist/client/assets/antlr-DkzdiGgY.svg +1 -0
  33. package/dist/client/assets/apiblueprint-BDRvCIBM.svg +1 -0
  34. package/dist/client/assets/apollo-BAVoyYDs.svg +1 -0
  35. package/dist/client/assets/applescript-Bm_R8YT0.svg +1 -0
  36. package/dist/client/assets/apps-script-6efl-CXu.svg +1 -0
  37. package/dist/client/assets/appveyor-6B1suIBr.svg +1 -0
  38. package/dist/client/assets/appwrite-D7AlK8SW.svg +1 -0
  39. package/dist/client/assets/architecture-CtuqF8rD.svg +1 -0
  40. package/dist/client/assets/arduino-DFxCIupZ.svg +1 -0
  41. package/dist/client/assets/asciidoc-DUAdVwVP.svg +1 -0
  42. package/dist/client/assets/assembly-BKikEKKy.svg +1 -0
  43. package/dist/client/assets/astro-Bivf18eC.svg +1 -0
  44. package/dist/client/assets/astro-config-Cr5suFul.svg +1 -0
  45. package/dist/client/assets/astyle-BiqOWu-0.svg +1 -0
  46. package/dist/client/assets/audio-B4FatEUD.svg +1 -0
  47. package/dist/client/assets/aurelia-CnUjHPcZ.svg +1 -0
  48. package/dist/client/assets/authors-DdaDoKVR.svg +1 -0
  49. package/dist/client/assets/auto-BOO_fhxh.svg +1 -0
  50. package/dist/client/assets/autohotkey-D87F33UG.svg +1 -0
  51. package/dist/client/assets/autoit-DQTGS66r.svg +1 -0
  52. package/dist/client/assets/azure-DMSkMABH.svg +1 -0
  53. package/dist/client/assets/azure-pipelines-CcGJw3Rl.svg +1 -0
  54. package/dist/client/assets/babel-DFMbiqHA.svg +1 -0
  55. package/dist/client/assets/ballerina-BT8MyHl8.svg +1 -0
  56. package/dist/client/assets/bashly-settings-Ch9mIpw9.svg +1 -0
  57. package/dist/client/assets/bazel-CPXexffJ.svg +1 -0
  58. package/dist/client/assets/bbx-CB-6IYxw.svg +1 -0
  59. package/dist/client/assets/beancount-DR_GSwds.svg +1 -0
  60. package/dist/client/assets/bench-js-DOHd4EZB.svg +1 -0
  61. package/dist/client/assets/bench-jsx-CLJJl81D.svg +1 -0
  62. package/dist/client/assets/bench-ts-BM8GsfrF.svg +1 -0
  63. package/dist/client/assets/bibliography-D3emS1pd.svg +1 -0
  64. package/dist/client/assets/bibtex-style-CVY4tTiP.svg +1 -0
  65. package/dist/client/assets/bicep-BMMGt18P.svg +1 -0
  66. package/dist/client/assets/biome-Bf2373dl.svg +1 -0
  67. package/dist/client/assets/bitbucket-BQr8Az5R.svg +1 -0
  68. package/dist/client/assets/bithound-BOh7-s-G.svg +1 -0
  69. package/dist/client/assets/blender-B7Vz8gxa.svg +1 -0
  70. package/dist/client/assets/blink-DVWcfhba.svg +1 -0
  71. package/dist/client/assets/blitz-B4hhOxPa.svg +1 -0
  72. package/dist/client/assets/bower-CkFcC1Ou.svg +1 -0
  73. package/dist/client/assets/brainfuck-BXozg9z7.svg +1 -0
  74. package/dist/client/assets/browserlist-CUbhNMS9.svg +1 -0
  75. package/dist/client/assets/bruno-CoSNrNfv.svg +1 -0
  76. package/dist/client/assets/buck-BRuOl0ko.svg +1 -0
  77. package/dist/client/assets/bucklescript-TfoVgTnq.svg +1 -0
  78. package/dist/client/assets/buildkite-BrDKWLhW.svg +1 -0
  79. package/dist/client/assets/bun-CZtgPBjt.svg +1 -0
  80. package/dist/client/assets/c-CCkhSkL9.svg +1 -0
  81. package/dist/client/assets/c3-J0cVtsWq.svg +1 -0
  82. package/dist/client/assets/cabal-CQb4_DnV.svg +1 -0
  83. package/dist/client/assets/caddy-ywaArsUF.svg +1 -0
  84. package/dist/client/assets/cadence-BRBsaulT.svg +1 -0
  85. package/dist/client/assets/cairo-Cls19dwE.svg +1 -0
  86. package/dist/client/assets/cake-DpuWz3gE.svg +1 -0
  87. package/dist/client/assets/capacitor-CugB3p3d.svg +1 -0
  88. package/dist/client/assets/capnp-DtxOZ2_z.svg +1 -0
  89. package/dist/client/assets/cbx-QvSmyWq4.svg +1 -0
  90. package/dist/client/assets/cds-Bi3ghsEA.svg +1 -0
  91. package/dist/client/assets/certificate-B5QPOK_C.svg +1 -0
  92. package/dist/client/assets/changelog-mhp3hE32.svg +1 -0
  93. package/dist/client/assets/chess-4hVz24Rg.svg +1 -0
  94. package/dist/client/assets/chromatic-DRZoj4Hg.svg +1 -0
  95. package/dist/client/assets/chrome-ox3b9yI4.svg +1 -0
  96. package/dist/client/assets/circleci-DubwoSEv.svg +1 -0
  97. package/dist/client/assets/citation-ldCt-JF8.svg +1 -0
  98. package/dist/client/assets/clangd-bL8W2_13.svg +1 -0
  99. package/dist/client/assets/claude-DypBvzkn.svg +1 -0
  100. package/dist/client/assets/cline-Dd7x4bMT.svg +1 -0
  101. package/dist/client/assets/clojure-wfCfR06G.svg +1 -0
  102. package/dist/client/assets/cloudfoundry-BS-9yLUv.svg +1 -0
  103. package/dist/client/assets/cmake-B7q-R28A.svg +1 -0
  104. package/dist/client/assets/coala-D4YHPVOS.svg +1 -0
  105. package/dist/client/assets/cobol-wDz3o6g-.svg +1 -0
  106. package/dist/client/assets/coconut-C7cPswso.svg +1 -0
  107. package/dist/client/assets/code-climate-BJrwzyOv.svg +1 -0
  108. package/dist/client/assets/codecov-CXg1oY95.svg +1 -0
  109. package/dist/client/assets/codeowners-D_rztV49.svg +1 -0
  110. package/dist/client/assets/coderabbit-ai-DGoTDlyw.svg +1 -0
  111. package/dist/client/assets/coffee-D5JGmA63.svg +1 -0
  112. package/dist/client/assets/coldfusion-DhOnvVS_.svg +1 -0
  113. package/dist/client/assets/coloredpetrinets-DY894G_S.svg +1 -0
  114. package/dist/client/assets/command-Df3AkI2A.svg +1 -0
  115. package/dist/client/assets/commitizen-9SU1u7to.svg +1 -0
  116. package/dist/client/assets/commitlint-3vvjpxJt.svg +1 -0
  117. package/dist/client/assets/composerShortcuts-BggqvE9J.js +31 -0
  118. package/dist/client/assets/concourse-DAGkX2vY.svg +1 -0
  119. package/dist/client/assets/conduct-2Bm8RK0N.svg +1 -0
  120. package/dist/client/assets/console-pcgGAn8Z.svg +1 -0
  121. package/dist/client/assets/contentlayer-vXTwXOHk.svg +1 -0
  122. package/dist/client/assets/context-CebLrksE.svg +1 -0
  123. package/dist/client/assets/contributing-DLcmDS34.svg +1 -0
  124. package/dist/client/assets/controller-Doc75EnV.svg +1 -0
  125. package/dist/client/assets/copilot-DBlNrZ6L.svg +1 -0
  126. package/dist/client/assets/cpp-DT2939hp.svg +1 -0
  127. package/dist/client/assets/craco-BySmcQ23.svg +1 -0
  128. package/dist/client/assets/credits-GALyqcNu.svg +1 -0
  129. package/dist/client/assets/crystal-BbNQlJLs.svg +1 -0
  130. package/dist/client/assets/csharp-D5ZKsaqY.svg +1 -0
  131. package/dist/client/assets/css-JKwEyWYb.svg +1 -0
  132. package/dist/client/assets/css-map-Ctu4D9Ve.svg +1 -0
  133. package/dist/client/assets/cucumber-B3ZYwjRe.svg +1 -0
  134. package/dist/client/assets/cuda-CRW2z42A.svg +1 -0
  135. package/dist/client/assets/cue-ni2TTLiZ.svg +1 -0
  136. package/dist/client/assets/cursor-CJahHGg2.svg +1 -0
  137. package/dist/client/assets/cypress-DR0JRbfI.svg +1 -0
  138. package/dist/client/assets/d-B87zyVMx.svg +1 -0
  139. package/dist/client/assets/dart-Dx2oVcaR.svg +1 -0
  140. package/dist/client/assets/dart_generated-Wk58pte9.svg +1 -0
  141. package/dist/client/assets/database-B_oKaDcf.svg +1 -0
  142. package/dist/client/assets/deepsource-DUTIJ9mv.svg +1 -0
  143. package/dist/client/assets/denizenscript-BJc2vgOS.svg +1 -0
  144. package/dist/client/assets/deno-CyFvrzCm.svg +1 -0
  145. package/dist/client/assets/dependabot-BgJkJLU3.svg +1 -0
  146. package/dist/client/assets/dependencies-update-CdGy9ujO.svg +1 -0
  147. package/dist/client/assets/dhall-Dmhh82EO.svg +1 -0
  148. package/dist/client/assets/diff-6SXDCokN.svg +1 -0
  149. package/dist/client/assets/dinophp-D9hQnqAR.svg +1 -0
  150. package/dist/client/assets/disc-h_dLNGEL.svg +1 -0
  151. package/dist/client/assets/django-N1UNAXk1.svg +1 -0
  152. package/dist/client/assets/dll-1DkaBp0q.svg +1 -0
  153. package/dist/client/assets/docker-CfHcr61D.svg +1 -0
  154. package/dist/client/assets/doctex-installer-Cs7SA-ct.svg +1 -0
  155. package/dist/client/assets/document-o-3iA9GQ.svg +1 -0
  156. package/dist/client/assets/dotjs-DIyH7Gzv.svg +1 -0
  157. package/dist/client/assets/drawio-2RVDLi9g.svg +1 -0
  158. package/dist/client/assets/drizzle-hhBCZx1t.svg +1 -0
  159. package/dist/client/assets/drone-KvQ2n-xY.svg +1 -0
  160. package/dist/client/assets/dtx-DdGk8fFj.svg +1 -0
  161. package/dist/client/assets/duc-CHcAZQos.svg +1 -0
  162. package/dist/client/assets/dune-DuGO6qDA.svg +1 -0
  163. package/dist/client/assets/edge-ChHKXrYp.svg +1 -0
  164. package/dist/client/assets/editorconfig-BUzUAwRX.svg +1 -0
  165. package/dist/client/assets/ejs-D_Li05n3.svg +1 -0
  166. package/dist/client/assets/elixir-75mYTx2s.svg +1 -0
  167. package/dist/client/assets/elm-DE_LIp02.svg +1 -0
  168. package/dist/client/assets/email-G8mUttGa.svg +1 -0
  169. package/dist/client/assets/ember-B1y9-Oks.svg +1 -0
  170. package/dist/client/assets/epub-DPvrBCNf.svg +1 -0
  171. package/dist/client/assets/erlang-DosS6spf.svg +1 -0
  172. package/dist/client/assets/esbuild-DV6xNZ-T.svg +1 -0
  173. package/dist/client/assets/eslint-IU_g232-.svg +1 -0
  174. package/dist/client/assets/excalidraw-BllKd-7L.svg +1 -0
  175. package/dist/client/assets/exe-SfcXmkQy.svg +1 -0
  176. package/dist/client/assets/expo-B4PonO4I.svg +1 -0
  177. package/dist/client/assets/external-DjGXa4ZP.js +1 -0
  178. package/dist/client/assets/fastlane-C4SZDg50.svg +1 -0
  179. package/dist/client/assets/favicon-VsCcG-A-.svg +1 -0
  180. package/dist/client/assets/figma-C8Gjq2Xj.svg +1 -0
  181. package/dist/client/assets/file-BEIHQH8Q.svg +256 -0
  182. package/dist/client/assets/firebase-DHIO0glR.svg +1 -0
  183. package/dist/client/assets/flash-Dck7x_rj.svg +1 -0
  184. package/dist/client/assets/flow-DD4KQiTg.svg +1 -0
  185. package/dist/client/assets/font-ChbWr8nk.svg +1 -0
  186. package/dist/client/assets/forth-C3qwGqMh.svg +1 -0
  187. package/dist/client/assets/fortran-B0jORJ3v.svg +1 -0
  188. package/dist/client/assets/foxpro-D3Wp1B1h.svg +1 -0
  189. package/dist/client/assets/freemarker-BLonnh3h.svg +1 -0
  190. package/dist/client/assets/fsharp-QwwPC8x_.svg +1 -0
  191. package/dist/client/assets/fusebox-DqjzyXyI.svg +1 -0
  192. package/dist/client/assets/gamemaker-C82Pt646.svg +1 -0
  193. package/dist/client/assets/garden-BUsWpFKW.svg +1 -0
  194. package/dist/client/assets/gatsby-OA1TADMJ.svg +1 -0
  195. package/dist/client/assets/gcp-CW2RG_Wp.svg +1 -0
  196. package/dist/client/assets/gemfile-1RY6BqSx.svg +1 -0
  197. package/dist/client/assets/gemini-CIgUY8Tg.svg +1 -0
  198. package/dist/client/assets/gemini-ai-Bwe7HeFb.svg +1 -0
  199. package/dist/client/assets/git-BEMs8TOZ.svg +1 -0
  200. package/dist/client/assets/gitlab-zt07_Oa4.svg +1 -0
  201. package/dist/client/assets/gitpod-BtZJQuF0.svg +1 -0
  202. package/dist/client/assets/gleam-CKPcrRAD.svg +1 -0
  203. package/dist/client/assets/gnuplot-BvFqM0ms.svg +1 -0
  204. package/dist/client/assets/go-ByY4sxRu.svg +1 -0
  205. package/dist/client/assets/go-mod-CB6BWQDr.svg +1 -0
  206. package/dist/client/assets/godot-C1EmL4jR.svg +1 -0
  207. package/dist/client/assets/godot-assets-D-FMsuJX.svg +1 -0
  208. package/dist/client/assets/google-BnrMOJ4V.svg +1 -0
  209. package/dist/client/assets/gradle-zsQ12U1q.svg +1 -0
  210. package/dist/client/assets/grafana-alloy-D2DQ33BM.svg +1 -0
  211. package/dist/client/assets/grain-5NkvKROL.svg +1 -0
  212. package/dist/client/assets/graphcool-CInCTIdE.svg +1 -0
  213. package/dist/client/assets/graphql-DnNt2maR.svg +1 -0
  214. package/dist/client/assets/gridsome-C2H5SpaD.svg +1 -0
  215. package/dist/client/assets/groovy-B93RxI7a.svg +1 -0
  216. package/dist/client/assets/grunt-cwitasVS.svg +1 -0
  217. package/dist/client/assets/gulp-BIZ8EAl0.svg +1 -0
  218. package/dist/client/assets/h-1bd73y8t.svg +1 -0
  219. package/dist/client/assets/hack-Bsd1y9bu.svg +1 -0
  220. package/dist/client/assets/hadolint-D1aEtESc.svg +1 -0
  221. package/dist/client/assets/haml-BKq8hU-U.svg +1 -0
  222. package/dist/client/assets/handlebars-Dem98Ago.svg +1 -0
  223. package/dist/client/assets/happo-B64XokX0.svg +1 -0
  224. package/dist/client/assets/hardhat-ByFzkuf4.svg +1 -0
  225. package/dist/client/assets/harmonix-CUh3S11M.svg +1 -0
  226. package/dist/client/assets/haskell-C6GxEwdX.svg +1 -0
  227. package/dist/client/assets/haxe-DdxZWPQy.svg +1 -0
  228. package/dist/client/assets/hcl-BJiZ3gWE.svg +1 -0
  229. package/dist/client/assets/helm-CF4Mi35z.svg +1 -0
  230. package/dist/client/assets/heroku-B6vPz_TJ.svg +1 -0
  231. package/dist/client/assets/hex-BuGJuqn1.svg +1 -0
  232. package/dist/client/assets/hip-DB4xe1Ab.svg +1 -0
  233. package/dist/client/assets/histoire-BMTufysg.svg +1 -0
  234. package/dist/client/assets/hjson-Dl4ZTgK4.svg +1 -0
  235. package/dist/client/assets/horusec-z6vyrVAy.svg +1 -0
  236. package/dist/client/assets/hosts-BydfWJ9z.svg +1 -0
  237. package/dist/client/assets/hpp-HerxyIaC.svg +1 -0
  238. package/dist/client/assets/html-BNRzQ3jk.svg +1 -0
  239. package/dist/client/assets/http-Cp7RCu8F.svg +1 -0
  240. package/dist/client/assets/huff-t3uGT10D.svg +1 -0
  241. package/dist/client/assets/hurl-S3Fvmz3R.svg +1 -0
  242. package/dist/client/assets/husky-A0ALYNcp.svg +1 -0
  243. package/dist/client/assets/i18n-BezCQ09L.svg +1 -0
  244. package/dist/client/assets/idris-CfHPjxcM.svg +1 -0
  245. package/dist/client/assets/ifanr-cloud-DnqgZYHA.svg +1 -0
  246. package/dist/client/assets/image-DYZiZ4CP.svg +1 -0
  247. package/dist/client/assets/imba-C1Q6aK1I.svg +1 -0
  248. package/dist/client/assets/index-CInvlJKI.js +2 -0
  249. package/dist/client/assets/installation-p19cVXO7.svg +1 -0
  250. package/dist/client/assets/instructions-CaWEzdge.svg +1 -0
  251. package/dist/client/assets/ionic-Xp-47Icg.svg +1 -0
  252. package/dist/client/assets/istanbul-DJKvMwnq.svg +1 -0
  253. package/dist/client/assets/jar-BaN44U3v.svg +1 -0
  254. package/dist/client/assets/java-QyMrrPma.svg +1 -0
  255. package/dist/client/assets/javaclass-BU8_3KBR.svg +1 -0
  256. package/dist/client/assets/javascript-CQjpTQab.svg +1 -0
  257. package/dist/client/assets/javascript-map-BQGiWnDM.svg +1 -0
  258. package/dist/client/assets/jenkins-Bf7aNz-w.svg +1 -0
  259. package/dist/client/assets/jest-BgbiFFEd.svg +1 -0
  260. package/dist/client/assets/jinja-4WR9tA6i.svg +1 -0
  261. package/dist/client/assets/jsconfig-ZAi6fTF1.svg +1 -0
  262. package/dist/client/assets/json-NsberLUP.svg +1 -0
  263. package/dist/client/assets/json_schema-sOuobP_H.svg +1 -0
  264. package/dist/client/assets/jsr-CWVSPSyV.svg +1 -0
  265. package/dist/client/assets/julia-DCKDSo9T.svg +1 -0
  266. package/dist/client/assets/jupyter-BKV2q0IB.svg +1 -0
  267. package/dist/client/assets/just-WQgcj-TR.svg +1 -0
  268. package/dist/client/assets/karma-Dm3AtiMd.svg +1 -0
  269. package/dist/client/assets/kcl-CyzArNE1.svg +1 -0
  270. package/dist/client/assets/key-CrFjkQiv.svg +1 -0
  271. package/dist/client/assets/keystatic-BECeLiHJ.svg +1 -0
  272. package/dist/client/assets/kivy-baDYR7ar.svg +1 -0
  273. package/dist/client/assets/kl-Dy3qeUbd.svg +1 -0
  274. package/dist/client/assets/knip-BWpBMXqu.svg +1 -0
  275. package/dist/client/assets/kotlin-DcjME28v.svg +1 -0
  276. package/dist/client/assets/kubernetes-B5EEXb3e.svg +1 -0
  277. package/dist/client/assets/kusto-CIjvTfRW.svg +1 -0
  278. package/dist/client/assets/label-AKZOJqFh.svg +1 -0
  279. package/dist/client/assets/laravel-DWauj5w4.svg +1 -0
  280. package/dist/client/assets/latexmk-DQ0u8QMa.svg +1 -0
  281. package/dist/client/assets/lbx-BMCQe48q.svg +1 -0
  282. package/dist/client/assets/lean-COOrALn9.svg +1 -0
  283. package/dist/client/assets/lefthook-DClcp3br.svg +1 -0
  284. package/dist/client/assets/lerna-BsWY3uYS.svg +1 -0
  285. package/dist/client/assets/less-0c0PeB1Z.svg +1 -0
  286. package/dist/client/assets/liara-CSN9sJzE.svg +1 -0
  287. package/dist/client/assets/lib-B-NXM8aC.svg +1 -0
  288. package/dist/client/assets/license-DmydDYqK.svg +1 -0
  289. package/dist/client/assets/lighthouse-CtbIoCdK.svg +1 -0
  290. package/dist/client/assets/lilypond-CBSm3LFL.svg +1 -0
  291. package/dist/client/assets/lintstaged-Bj1Eddi5.svg +1 -0
  292. package/dist/client/assets/liquid-ClnkrScY.svg +1 -0
  293. package/dist/client/assets/lisp-CMn3epg5.svg +1 -0
  294. package/dist/client/assets/lit-CJ6w1GHF.js +2 -0
  295. package/dist/client/assets/livescript-B5PkWD8e.svg +1 -0
  296. package/dist/client/assets/lock-DRloBj1S.svg +1 -0
  297. package/dist/client/assets/log-Db6NwxHZ.svg +1 -0
  298. package/dist/client/assets/lolcode-C6q6fY1O.svg +1 -0
  299. package/dist/client/assets/lottie-ExyLYhtq.svg +1 -0
  300. package/dist/client/assets/lua-CUh_Iwk8.svg +1 -0
  301. package/dist/client/assets/luau-De_4eP_9.svg +1 -0
  302. package/dist/client/assets/lynx-B49IBNBN.svg +1 -0
  303. package/dist/client/assets/lyric-Bm3UlVp3.svg +1 -0
  304. package/dist/client/assets/macaulay2-0YotwNnE.svg +1 -0
  305. package/dist/client/assets/main-CWcn0Deu.js +2 -0
  306. package/dist/client/assets/makefile-B2WlY55Y.svg +1 -0
  307. package/dist/client/assets/markdoc-DjROVW5I.svg +1 -0
  308. package/dist/client/assets/markdoc-config-BpVRhg1B.svg +1 -0
  309. package/dist/client/assets/markdown-Bm_LLmmi.svg +1 -0
  310. package/dist/client/assets/markdownlint-D4M2LXbH.svg +1 -0
  311. package/dist/client/assets/markojs-BohUrSLp.svg +1 -0
  312. package/dist/client/assets/mathematica-BGWNQXSR.svg +1 -0
  313. package/dist/client/assets/maven-BffVB5hm.svg +1 -0
  314. package/dist/client/assets/mdsvex-Dc9CFJJa.svg +1 -0
  315. package/dist/client/assets/mdx-D6qa5U8C.svg +1 -0
  316. package/dist/client/assets/mercurial-BDoD6ubd.svg +1 -0
  317. package/dist/client/assets/merlin-D5wTXfO4.svg +1 -0
  318. package/dist/client/assets/mermaid-BTscZDRS.svg +1 -0
  319. package/dist/client/assets/meson-dcvm8lmo.svg +1 -0
  320. package/dist/client/assets/metro-XIyWX0Go.svg +1 -0
  321. package/dist/client/assets/minecraft-CE8xXE3-.svg +1 -0
  322. package/dist/client/assets/minecraft-fabric-wG6LwgIf.svg +1 -0
  323. package/dist/client/assets/mint-Cb-YXACo.svg +1 -0
  324. package/dist/client/assets/mist-DAm4UkTw.svg +1 -0
  325. package/dist/client/assets/mjml-C_r30C5E.svg +1 -0
  326. package/dist/client/assets/mocha-BF5_j65C.svg +1 -0
  327. package/dist/client/assets/modernizr-89IMS8eL.svg +1 -0
  328. package/dist/client/assets/mojo-CscjT2Jm.svg +1 -0
  329. package/dist/client/assets/moon-_L_nTq1_.svg +1 -0
  330. package/dist/client/assets/moonscript-Ayut2PrD.svg +1 -0
  331. package/dist/client/assets/mrpack-BVpGpKVf.svg +1 -0
  332. package/dist/client/assets/mxml-B21Nbdgw.svg +1 -0
  333. package/dist/client/assets/nano-staged-CAVSFkY8.svg +1 -0
  334. package/dist/client/assets/ndst-DpYLiHkx.svg +1 -0
  335. package/dist/client/assets/nest-CUu_iPqI.svg +1 -0
  336. package/dist/client/assets/netlify-Bb7vRMfV.svg +1 -0
  337. package/dist/client/assets/next-2gAImGWJ.svg +1 -0
  338. package/dist/client/assets/nextflow-dPJG5e3G.svg +1 -0
  339. package/dist/client/assets/nginx-Ss9U_SJ3.svg +1 -0
  340. package/dist/client/assets/nim-CXHB5kuH.svg +1 -0
  341. package/dist/client/assets/nix-DoxxkZ2k.svg +1 -0
  342. package/dist/client/assets/nodejs-Czg5JT6z.svg +1 -0
  343. package/dist/client/assets/nodemon-CprsexAJ.svg +1 -0
  344. package/dist/client/assets/npm-BSKPS9CC.svg +1 -0
  345. package/dist/client/assets/nuget-D_mqKH22.svg +1 -0
  346. package/dist/client/assets/nunjucks-CSL1En7R.svg +1 -0
  347. package/dist/client/assets/nuxt-BszScKzK.svg +1 -0
  348. package/dist/client/assets/nx-CTIqtdbG.svg +1 -0
  349. package/dist/client/assets/objective-c-3E5wWl6u.svg +1 -0
  350. package/dist/client/assets/objective-cpp-DjpoLOMo.svg +1 -0
  351. package/dist/client/assets/ocaml-T4fLeZFT.svg +1 -0
  352. package/dist/client/assets/odin-DlWnbZWN.svg +1 -0
  353. package/dist/client/assets/onnx-C6WInyrb.svg +1 -0
  354. package/dist/client/assets/opa-D5GoZW5M.svg +1 -0
  355. package/dist/client/assets/opam-3IZadro4.svg +1 -0
  356. package/dist/client/assets/openapi-DjlVyoOp.svg +1 -0
  357. package/dist/client/assets/opencode-BaYncWio.svg +1 -0
  358. package/dist/client/assets/opentofu-jFw9lQBP.svg +1 -0
  359. package/dist/client/assets/otne-SLiO8whA.svg +1 -0
  360. package/dist/client/assets/oxc-DN6_023j.svg +1 -0
  361. package/dist/client/assets/packship-UyLXQ_8n.svg +1 -0
  362. package/dist/client/assets/palette-C0GOsJgu.svg +1 -0
  363. package/dist/client/assets/panda-D469wGns.svg +1 -0
  364. package/dist/client/assets/parcel-BrXQSBYb.svg +1 -0
  365. package/dist/client/assets/pascal-oxGvvJ_x.svg +1 -0
  366. package/dist/client/assets/pawn-BvapPd-t.svg +1 -0
  367. package/dist/client/assets/payload-Cks6N40-.svg +1 -0
  368. package/dist/client/assets/pdf-DtjgBDdX.svg +1 -0
  369. package/dist/client/assets/pdm-CbwhGqOl.svg +1 -0
  370. package/dist/client/assets/peg-BJdFn78b.svg +1 -0
  371. package/dist/client/assets/percy-CWbuYL05.svg +1 -0
  372. package/dist/client/assets/perl-DUX0zwsQ.svg +1 -0
  373. package/dist/client/assets/php-5lebFt-d.svg +1 -0
  374. package/dist/client/assets/php-cs-fixer-D3Vv91zO.svg +1 -0
  375. package/dist/client/assets/phpstan-D9FJYotS.svg +1 -0
  376. package/dist/client/assets/phpunit-BlNyjrEw.svg +1 -0
  377. package/dist/client/assets/pinejs-CDuWmsOY.svg +1 -0
  378. package/dist/client/assets/pipeline-CCHJ-CIC.svg +1 -0
  379. package/dist/client/assets/pkl-CzHZDqdt.svg +1 -0
  380. package/dist/client/assets/plastic-CvMMB3c5.svg +1 -0
  381. package/dist/client/assets/playwright-C8c_RKic.svg +1 -0
  382. package/dist/client/assets/plop-D4uymN-_.svg +1 -0
  383. package/dist/client/assets/pm2-ecosystem-Cv28zGx9.svg +1 -0
  384. package/dist/client/assets/pnpm-ndvMXYUu.svg +1 -0
  385. package/dist/client/assets/poetry-ClZfXo_0.svg +1 -0
  386. package/dist/client/assets/postcss-g3C3DDoi.svg +1 -0
  387. package/dist/client/assets/posthtml-BkDCsIkz.svg +1 -0
  388. package/dist/client/assets/powerpoint-CCXYfzLu.svg +1 -0
  389. package/dist/client/assets/powershell-DnXi9Rjx.svg +1 -0
  390. package/dist/client/assets/pre-commit-DXbl2unR.svg +1 -0
  391. package/dist/client/assets/preload-helper-CRzLMJPS.js +1 -0
  392. package/dist/client/assets/prettier-DFxlFAp4.svg +1 -0
  393. package/dist/client/assets/prisma-BgG1MIwh.svg +1 -0
  394. package/dist/client/assets/processing-B1bs0VmW.svg +1 -0
  395. package/dist/client/assets/prolog-CxwCfnlm.svg +1 -0
  396. package/dist/client/assets/prompt-7jgVTNou.svg +1 -0
  397. package/dist/client/assets/proto-Bv4-L0XU.svg +1 -0
  398. package/dist/client/assets/protractor-CJWv1lK-.svg +1 -0
  399. package/dist/client/assets/pug-BXlORXuH.svg +1 -0
  400. package/dist/client/assets/puppet-CKCVJvZX.svg +1 -0
  401. package/dist/client/assets/puppeteer-DDZkfQNZ.svg +1 -0
  402. package/dist/client/assets/purescript-CUdIfJrp.svg +1 -0
  403. package/dist/client/assets/python-misc-BZ5TXfdG.svg +1 -0
  404. package/dist/client/assets/python-oHA753pt.svg +1 -0
  405. package/dist/client/assets/pytorch-f0udCMaw.svg +1 -0
  406. package/dist/client/assets/qsharp-BaFNvoXS.svg +1 -0
  407. package/dist/client/assets/quarto-zhC7oGOB.svg +1 -0
  408. package/dist/client/assets/quasar-BXE2pW5w.svg +1 -0
  409. package/dist/client/assets/quokka-DrMOw93T.svg +1 -0
  410. package/dist/client/assets/r-AQewf3lz.svg +1 -0
  411. package/dist/client/assets/racket-BCyLzvrP.svg +1 -0
  412. package/dist/client/assets/raml-WDbT4cRb.svg +1 -0
  413. package/dist/client/assets/razor-BAUCpTxC.svg +1 -0
  414. package/dist/client/assets/rbxmk-CZ9pB7X6.svg +1 -0
  415. package/dist/client/assets/rc-BDgxm_A8.svg +1 -0
  416. package/dist/client/assets/react-CdMrIyLK.svg +1 -0
  417. package/dist/client/assets/react_ts-9WeLJBIj.svg +1 -0
  418. package/dist/client/assets/readme-BSIQKZwq.svg +1 -0
  419. package/dist/client/assets/reason-m9vOqeqw.svg +1 -0
  420. package/dist/client/assets/red-Dzf3O8j4.svg +1 -0
  421. package/dist/client/assets/regedit-DJzxfiQN.svg +1 -0
  422. package/dist/client/assets/remark-C55cxr93.svg +1 -0
  423. package/dist/client/assets/remix-Bk2h4zH7.svg +1 -0
  424. package/dist/client/assets/renovate-zzi8oRFv.svg +1 -0
  425. package/dist/client/assets/replit-BpeMxcBh.svg +1 -0
  426. package/dist/client/assets/requiredTerminalPlugin-B-0wkiKe.js +3 -0
  427. package/dist/client/assets/rescript-interface-a87dYX5u.svg +1 -0
  428. package/dist/client/assets/rescript-qPAwtDLa.svg +1 -0
  429. package/dist/client/assets/restql-CnZcZpny.svg +1 -0
  430. package/dist/client/assets/riot-DjRzaRVp.svg +1 -0
  431. package/dist/client/assets/roadmap-DWpVc5P5.svg +1 -0
  432. package/dist/client/assets/roblox-Bv5zbklC.svg +1 -0
  433. package/dist/client/assets/robot-Cto_i8jo.svg +1 -0
  434. package/dist/client/assets/robots-COnOCAqh.svg +1 -0
  435. package/dist/client/assets/rocket-CAmUpMm6.svg +1 -0
  436. package/dist/client/assets/rolldown-Cy_4AzVW.svg +1 -0
  437. package/dist/client/assets/rollup-2ZkmBeWV.svg +1 -0
  438. package/dist/client/assets/rome-Cq3lb2xY.svg +1 -0
  439. package/dist/client/assets/routing-BNxHhbXZ.svg +1 -0
  440. package/dist/client/assets/rspec-CoEmfx5H.svg +1 -0
  441. package/dist/client/assets/rstack-DzJ3cPXM.svg +1 -0
  442. package/dist/client/assets/rubocop-CokGq15J.svg +1 -0
  443. package/dist/client/assets/ruby-DTGQ4xCM.svg +1 -0
  444. package/dist/client/assets/ruff-BN0KpNzC.svg +1 -0
  445. package/dist/client/assets/rust-B122pUHY.svg +1 -0
  446. package/dist/client/assets/salt-B8j0OVNV.svg +1 -0
  447. package/dist/client/assets/san-C0UnyaU4.svg +1 -0
  448. package/dist/client/assets/sas-RNoBA0-Y.svg +1 -0
  449. package/dist/client/assets/sass-B7y5mYt_.svg +1 -0
  450. package/dist/client/assets/sbt-DosCci-d.svg +1 -0
  451. package/dist/client/assets/scala-CsGkKwl5.svg +1 -0
  452. package/dist/client/assets/scheme-CS2UbTis.svg +1 -0
  453. package/dist/client/assets/scons-CyqfFgvx.svg +1 -0
  454. package/dist/client/assets/screwdriver-DjTKuDz7.svg +1 -0
  455. package/dist/client/assets/search-fq7VxV09.svg +1 -0
  456. package/dist/client/assets/semantic-release-BbLzZX96.svg +1 -0
  457. package/dist/client/assets/semgrep-Cl6VUQtd.svg +1 -0
  458. package/dist/client/assets/sentry-MrouyD-P.svg +1 -0
  459. package/dist/client/assets/sequelize-BQWikTCs.svg +1 -0
  460. package/dist/client/assets/serverless-C7Jdn6_T.svg +1 -0
  461. package/dist/client/assets/settings-CtzL1evz.svg +1 -0
  462. package/dist/client/assets/shader-BZXKDeiD.svg +1 -0
  463. package/dist/client/assets/shellcheck-BgWOclub.svg +1 -0
  464. package/dist/client/assets/simulink-yQnKyx__.svg +1 -0
  465. package/dist/client/assets/siyuan-CPWD86-6.svg +1 -0
  466. package/dist/client/assets/sketch-NbltjaPf.svg +1 -0
  467. package/dist/client/assets/skill-BThvgH87.svg +1 -0
  468. package/dist/client/assets/slim-CTjdZAfz.svg +1 -0
  469. package/dist/client/assets/slint-B0xbkqgr.svg +1 -0
  470. package/dist/client/assets/slug-CWkQgR9s.svg +1 -0
  471. package/dist/client/assets/smarty-BXDiLQNt.svg +1 -0
  472. package/dist/client/assets/sml-DMkoWEN5.svg +1 -0
  473. package/dist/client/assets/snakemake-xG7xUrdI.svg +1 -0
  474. package/dist/client/assets/snapcraft-zvgAcZ4p.svg +1 -0
  475. package/dist/client/assets/snowpack-l0uHt304.svg +1 -0
  476. package/dist/client/assets/snyk-DCW3rtvv.svg +1 -0
  477. package/dist/client/assets/solidity-C4TQWJKU.svg +1 -0
  478. package/dist/client/assets/sonarcloud-ClLIXGyx.svg +1 -0
  479. package/dist/client/assets/spwn-31WG9ftR.svg +1 -0
  480. package/dist/client/assets/stackblitz-ZX6aBRKb.svg +1 -0
  481. package/dist/client/assets/stan-CPcUXbxB.svg +1 -0
  482. package/dist/client/assets/steadybit-BZtlLY-3.svg +1 -0
  483. package/dist/client/assets/stencil-D0FNO32O.svg +1 -0
  484. package/dist/client/assets/stitches-BYlEJvuz.svg +1 -0
  485. package/dist/client/assets/storybook-KxGhpZYa.svg +1 -0
  486. package/dist/client/assets/stryker-CYflxT_R.svg +1 -0
  487. package/dist/client/assets/sty-C4HqHV4z.svg +1 -0
  488. package/dist/client/assets/stylable-Bi9Gr97T.svg +1 -0
  489. package/dist/client/assets/styleSources-CdF2T_pj.js +1 -0
  490. package/dist/client/assets/stylelint-JSbd-yhE.svg +1 -0
  491. package/dist/client/assets/styles-BwN5rgmt.js +10 -0
  492. package/dist/client/assets/styles-DK4aKhCE.js +1 -0
  493. package/dist/client/assets/stylus-ZoqbP9jE.svg +1 -0
  494. package/dist/client/assets/sublime-DFvp_Ess.svg +1 -0
  495. package/dist/client/assets/subtitles-BNOc1mEf.svg +1 -0
  496. package/dist/client/assets/supabase-CX7cap86.svg +1 -0
  497. package/dist/client/assets/svelte-B8HKO6BX.svg +1 -0
  498. package/dist/client/assets/svelte_js-C_RKcwSP.svg +1 -0
  499. package/dist/client/assets/svelte_ts-APH7lcVp.svg +1 -0
  500. package/dist/client/assets/svg-DVy7iktw.svg +1 -0
  501. package/dist/client/assets/svgo-CJXaeDEN.svg +1 -0
  502. package/dist/client/assets/svgr-Dn8OFGar.svg +1 -0
  503. package/dist/client/assets/swagger-Dqyrwr4g.svg +1 -0
  504. package/dist/client/assets/sway-C1Kkif7r.svg +1 -0
  505. package/dist/client/assets/swc-BUhoW8cb.svg +1 -0
  506. package/dist/client/assets/swift-D4_pkWil.svg +1 -0
  507. package/dist/client/assets/syncpack-DtZ994Gf.svg +1 -0
  508. package/dist/client/assets/table-YhsaNNk_.svg +1 -0
  509. package/dist/client/assets/tailwindcss-DODJSdj1.svg +1 -0
  510. package/dist/client/assets/tape-DGYhnMht.svg +1 -0
  511. package/dist/client/assets/taskfile-f5DM79_-.svg +1 -0
  512. package/dist/client/assets/tauri-DBBtDoCo.svg +1 -0
  513. package/dist/client/assets/taze-BPR9LgXp.svg +1 -0
  514. package/dist/client/assets/tcl-CiAJKGaA.svg +1 -0
  515. package/dist/client/assets/teal-WyfAQok0.svg +1 -0
  516. package/dist/client/assets/templ-BHla0pe-.svg +1 -0
  517. package/dist/client/assets/template-qJWiB5gQ.svg +1 -0
  518. package/dist/client/assets/terraform-R86_iPhv.svg +1 -0
  519. package/dist/client/assets/test-js-A34KrdbK.svg +1 -0
  520. package/dist/client/assets/test-jsx-C2PQBkQP.svg +1 -0
  521. package/dist/client/assets/test-ts-fdt299ek.svg +1 -0
  522. package/dist/client/assets/tex-DpewR4UN.svg +1 -0
  523. package/dist/client/assets/textlint-pjwsbDhs.svg +1 -0
  524. package/dist/client/assets/themeCatalog-B3yda95n.js +1 -0
  525. package/dist/client/assets/themePreference-BBiJxLjs.js +1 -0
  526. package/dist/client/assets/themeStartup-0b02tNrh.js +2 -0
  527. package/dist/client/assets/tilt-Dwon5dv-.svg +1 -0
  528. package/dist/client/assets/tldraw-BnDJmluq.svg +1 -0
  529. package/dist/client/assets/tobi-CQ-666uh.svg +1 -0
  530. package/dist/client/assets/tobimake-DzDbTYW1.svg +1 -0
  531. package/dist/client/assets/toc-nUTycYjl.svg +1 -0
  532. package/dist/client/assets/todo-CpcorlsE.svg +1 -0
  533. package/dist/client/assets/toml-DvUt-GOd.svg +1 -0
  534. package/dist/client/assets/toon-CGe9RDKY.svg +1 -0
  535. package/dist/client/assets/travis-CH6zNy43.svg +1 -0
  536. package/dist/client/assets/tree-epW9JaxP.svg +1 -0
  537. package/dist/client/assets/trigger-CqdxCyG0.svg +1 -0
  538. package/dist/client/assets/tsconfig-ROp_YdWL.svg +1 -0
  539. package/dist/client/assets/tsdoc-BEXcYgLD.svg +1 -0
  540. package/dist/client/assets/tsdown-B96z16my.svg +1 -0
  541. package/dist/client/assets/tsil-D-U9yWS8.svg +1 -0
  542. package/dist/client/assets/tune-DISlqKNZ.svg +1 -0
  543. package/dist/client/assets/turborepo-CWNwoZtI.svg +1 -0
  544. package/dist/client/assets/twig-CA70AYNK.svg +1 -0
  545. package/dist/client/assets/twine-BPJsGZd2.svg +1 -0
  546. package/dist/client/assets/typedoc-FY7jFoGW.svg +1 -0
  547. package/dist/client/assets/typescript-DjjXqw-n.svg +1 -0
  548. package/dist/client/assets/typescript-def-CTN5WM5i.svg +1 -0
  549. package/dist/client/assets/typst-CnDSkp_i.svg +1 -0
  550. package/dist/client/assets/uiua-BOsurlxn.svg +1 -0
  551. package/dist/client/assets/umi-DYOjFi8w.svg +1 -0
  552. package/dist/client/assets/uml-CYijxuna.svg +1 -0
  553. package/dist/client/assets/unity-CRNCEoK6.svg +1 -0
  554. package/dist/client/assets/unlicense-DG_b3BEE.svg +1 -0
  555. package/dist/client/assets/unocss-MqLuLfeL.svg +1 -0
  556. package/dist/client/assets/url-hE4h5p6b.svg +1 -0
  557. package/dist/client/assets/uv-DRTOVSi_.svg +1 -0
  558. package/dist/client/assets/vagrant-YnxMTuKe.svg +1 -0
  559. package/dist/client/assets/vala-m_i2ZWns.svg +1 -0
  560. package/dist/client/assets/vanilla-extract-76H6-A4R.svg +1 -0
  561. package/dist/client/assets/varnish-CX3oiNcp.svg +1 -0
  562. package/dist/client/assets/vedic-D6-oQUka.svg +1 -0
  563. package/dist/client/assets/velite-nLLNxKBA.svg +1 -0
  564. package/dist/client/assets/velocity-CSvfE9yM.svg +1 -0
  565. package/dist/client/assets/vercel-CgKLo9IO.svg +1 -0
  566. package/dist/client/assets/verdaccio-gsdiCbvv.svg +1 -0
  567. package/dist/client/assets/verified-BFLtqroG.svg +1 -0
  568. package/dist/client/assets/verilog-CbZvRaae.svg +1 -0
  569. package/dist/client/assets/verse-D_RZ0Bz0.svg +1 -0
  570. package/dist/client/assets/vfl-8CAM-hjs.svg +1 -0
  571. package/dist/client/assets/video-qxpJXkH6.svg +1 -0
  572. package/dist/client/assets/vim-CB8qTVuS.svg +1 -0
  573. package/dist/client/assets/virtual-Hoc2XbZN.svg +1 -0
  574. package/dist/client/assets/visualstudio-BHj2x5q7.svg +1 -0
  575. package/dist/client/assets/vite-JKzchVew.svg +1 -0
  576. package/dist/client/assets/vitest-Cl4_wKFu.svg +1 -0
  577. package/dist/client/assets/vlang-C3-DMUIm.svg +1 -0
  578. package/dist/client/assets/vscode-BtTXhPua.svg +1 -0
  579. package/dist/client/assets/vue-BlenztPP.svg +1 -0
  580. package/dist/client/assets/vue-config-o7yPAADv.svg +1 -0
  581. package/dist/client/assets/wakatime-DNz7qcxZ.svg +1 -0
  582. package/dist/client/assets/wallaby-C0UIkEOa.svg +1 -0
  583. package/dist/client/assets/wally-Ds1quKSG.svg +1 -0
  584. package/dist/client/assets/warp-B3X5Zoeh.svg +1 -0
  585. package/dist/client/assets/watchman-7EFq9LSa.svg +1 -0
  586. package/dist/client/assets/webassembly-Bs4UtU2T.svg +1 -0
  587. package/dist/client/assets/webhint-B4I6V0Ee.svg +1 -0
  588. package/dist/client/assets/webpack-zo2uWGOg.svg +1 -0
  589. package/dist/client/assets/wepy-Cho54Qlr.svg +1 -0
  590. package/dist/client/assets/werf-BW9FiKe5.svg +1 -0
  591. package/dist/client/assets/windicss-C_8y516i.svg +1 -0
  592. package/dist/client/assets/wolframlanguage-D6C1WBYh.svg +1 -0
  593. package/dist/client/assets/word-BcPLm6YH.svg +1 -0
  594. package/dist/client/assets/wrangler-CjgAkoTg.svg +1 -0
  595. package/dist/client/assets/wxt-c6drtC9H.svg +1 -0
  596. package/dist/client/assets/xaml-DE72OHNQ.svg +1 -0
  597. package/dist/client/assets/xmake-4WNmmIJj.svg +1 -0
  598. package/dist/client/assets/xml-S4aCxoUr.svg +1 -0
  599. package/dist/client/assets/yaml-DPTMsOTP.svg +1 -0
  600. package/dist/client/assets/yang-N-7dP4WI.svg +1 -0
  601. package/dist/client/assets/yarn-Cios8OFX.svg +1 -0
  602. package/dist/client/assets/zeabur-kqbNXTTH.svg +1 -0
  603. package/dist/client/assets/zig-CdphsgLN.svg +1 -0
  604. package/dist/client/assets/zip-GDnEynqi.svg +1 -0
  605. package/dist/client/assets/zizmor-IsFFdy6W.svg +1 -0
  606. package/dist/client/index.html +12 -6
  607. package/dist/config.js +233 -87
  608. package/dist/config.js.map +1 -1
  609. package/dist/configSessionNamingMigration.js +63 -0
  610. package/dist/configSessionNamingMigration.js.map +1 -0
  611. package/dist/nativeServices/serviceDoctor.js +3 -3
  612. package/dist/nativeServices/serviceDoctor.js.map +1 -1
  613. package/dist/nativeServices/servicePlan.js +53 -23
  614. package/dist/nativeServices/servicePlan.js.map +1 -1
  615. package/dist/nativeServices/serviceProbe.js +27 -7
  616. package/dist/nativeServices/serviceProbe.js.map +1 -1
  617. package/dist/pi-packages/relays/markdownDocument.js +8 -9
  618. package/dist/pi-packages/relays/pi-web-plugin.js +11 -11
  619. package/dist/pi-packages/relays/relays.messages.js +38 -0
  620. package/dist/pi-packages/relays/relaysLocalization.js +19 -0
  621. package/dist/pi-packages/relays/relaysPanelElement.js +151 -96
  622. package/dist/pi-packages/scheduled-tasks/browser/pi-web-plugin.js +1135 -0
  623. package/dist/pi-packages/scheduled-tasks/domain.js +63 -0
  624. package/dist/pi-packages/scheduled-tasks/extensions/index.js +710 -0
  625. package/dist/pi-packages/scheduled-tasks/package.json +30 -0
  626. package/dist/pi-packages/scheduled-tasks/scheduler.js +89 -0
  627. package/dist/pi-packages/scheduled-tasks/server-plugin.js +9872 -0
  628. package/dist/pi-packages/scheduled-tasks/service.js +178 -0
  629. package/dist/pi-packages/scheduled-tasks/skills/scheduled-tasks/SKILL.md +30 -0
  630. package/dist/pi-packages/scheduled-tasks/sqlite.js +18 -0
  631. package/dist/pi-packages/scheduled-tasks/store.js +230 -0
  632. package/dist/pi-packages/scheduled-tasks/vite.browser.config.mjs +16 -0
  633. package/dist/pi-packages/scheduled-tasks/vite.companion.config.mjs +17 -0
  634. package/dist/pi-packages/scheduled-tasks/vite.config.mjs +17 -0
  635. package/dist/pi-packages/session-naming/config.js +78 -0
  636. package/dist/pi-packages/session-naming/extensions/index.js +74 -0
  637. package/dist/pi-packages/session-naming/generator.js +76 -0
  638. package/dist/pi-packages/session-naming/package.json +15 -0
  639. package/dist/pi-packages/workflows/browser/pi-web-plugin.js +10 -7
  640. package/dist/pi-packages/workflows/browser/workflows.messages.js +32 -0
  641. package/dist/pi-packages/workflows/browser/worktreeDialog.js +71 -50
  642. package/dist/pi-packages/workflows/server-plugin.js +137 -23
  643. package/dist/pi-web-plugins/audio/audioElement.js +61 -0
  644. package/dist/pi-web-plugins/audio/audioFormats.js +18 -0
  645. package/dist/pi-web-plugins/audio/byteRange.js +21 -0
  646. package/dist/pi-web-plugins/audio/package.json +10 -0
  647. package/dist/pi-web-plugins/audio/pi-web-plugin.js +39 -0
  648. package/dist/pi-web-plugins/audio/server.js +71 -0
  649. package/dist/pi-web-plugins/code-highlight/browser/pi-web-plugin.js +4 -4
  650. package/dist/pi-web-plugins/custom-ui-codex/codex.css +8 -0
  651. package/dist/pi-web-plugins/custom-ui-codex/fileIcons.js +30 -0
  652. package/dist/pi-web-plugins/custom-ui-codex/package.json +8 -1
  653. package/dist/pi-web-plugins/custom-ui-codex/pi-web-plugin.js +8 -8
  654. package/dist/pi-web-plugins/files/browser/pi-web-plugin.js +236 -259
  655. package/dist/pi-web-plugins/git/browser/git-panel.js +138 -59
  656. package/dist/pi-web-plugins/git/browser/git.messages.js +47 -0
  657. package/dist/pi-web-plugins/git/browser/gitFileIcon.js +71 -0
  658. package/dist/pi-web-plugins/git/browser/pi-web-plugin.js +21 -4
  659. package/dist/pi-web-plugins/git/server-plugin.js +5 -3
  660. package/dist/pi-web-plugins/info/info.messages.js +66 -0
  661. package/dist/pi-web-plugins/info/infoInternals.js +217 -217
  662. package/dist/pi-web-plugins/info/pi-web-plugin.js +19 -14
  663. package/dist/pi-web-plugins/language-spanish/catalogs.js +1896 -0
  664. package/dist/pi-web-plugins/language-spanish/package.json +14 -0
  665. package/dist/pi-web-plugins/language-spanish/pi-web-plugin.js +90 -0
  666. package/dist/pi-web-plugins/language-swedish/catalogs.js +1896 -0
  667. package/dist/pi-web-plugins/language-swedish/package.json +14 -0
  668. package/dist/pi-web-plugins/language-swedish/pi-web-plugin.js +89 -0
  669. package/dist/pi-web-plugins/mermaid/browser/pi-web-plugin.js +4 -4
  670. package/dist/pi-web-plugins/terminal/browser/pi-web-plugin.js +71 -66
  671. package/dist/pi-web-plugins/terminal/bunPtyProvider.js +109 -0
  672. package/dist/pi-web-plugins/terminal/nodePtyProvider.js +75 -0
  673. package/dist/pi-web-plugins/terminal/nodePtySpawnHelper.js +36 -0
  674. package/dist/pi-web-plugins/terminal/ptyComposition.js +12 -0
  675. package/dist/pi-web-plugins/terminal/ptyProvider.js +2 -0
  676. package/dist/pi-web-plugins/terminal/server-plugin.js +42 -14
  677. package/dist/pi-web-plugins/terminal/terminalService.js +218 -76
  678. package/dist/pi-web-plugins/themes/assets/graphite.css +56 -0
  679. package/dist/pi-web-plugins/themes/assets/paper.css +56 -0
  680. package/dist/pi-web-plugins/themes/package.json +21 -0
  681. package/dist/pi-web-plugins/updates/pi-web-plugin.js +200 -155
  682. package/dist/pi-web-plugins/updates/updates.messages.js +59 -0
  683. package/dist/pi-web-plugins/updates/updatesLogic.js +27 -29
  684. package/dist/pi-web-plugins/workspace-tasks/config.js +18 -19
  685. package/dist/pi-web-plugins/workspace-tasks/pi-web-plugin.js +13 -8
  686. package/dist/pi-web-plugins/workspace-tasks/tasks.messages.js +45 -0
  687. package/dist/pi-web-plugins/workspace-tasks/tasksLocalization.js +33 -0
  688. package/dist/pi-web-plugins/workspace-tasks/tasksPanelElement.js +56 -42
  689. package/dist/pi-web-plugins/workspace-tasks/workspaceTasksClient.js +7 -33
  690. package/dist/pi-web-plugins/zh-cn/catalogs.json +1803 -0
  691. package/dist/pi-web-plugins/zh-cn/main.json +5 -1
  692. package/dist/pi-web-plugins/zh-cn/management-errors.json +6 -0
  693. package/dist/pi-web-plugins/zh-cn/pi-web-plugin.js +13 -4
  694. package/dist/pi-web-plugins/zh-cn/server.json +1 -1
  695. package/dist/piWebVersionReport.js +2 -0
  696. package/dist/piWebVersionReport.js.map +1 -1
  697. package/dist/plugin-api.d.ts +194 -9
  698. package/dist/runtimePreflight.js +14 -0
  699. package/dist/runtimePreflight.js.map +1 -0
  700. package/dist/server/activity/workspaceActivityService.js +18 -1
  701. package/dist/server/activity/workspaceActivityService.js.map +1 -1
  702. package/dist/server/app.js +45 -10
  703. package/dist/server/app.js.map +1 -1
  704. package/dist/server/configRoutes.js +117 -139
  705. package/dist/server/configRoutes.js.map +1 -1
  706. package/dist/server/configUpdates.js +104 -0
  707. package/dist/server/configUpdates.js.map +1 -0
  708. package/dist/server/deploymentIdentity.js +12 -10
  709. package/dist/server/deploymentIdentity.js.map +1 -1
  710. package/dist/server/deploymentIdentityRoutes.js +2 -1
  711. package/dist/server/deploymentIdentityRoutes.js.map +1 -1
  712. package/dist/server/diagnostics/nodePtyNativeModule.js +0 -18
  713. package/dist/server/diagnostics/nodePtyNativeModule.js.map +1 -1
  714. package/dist/server/diagnostics/terminalPrerequisites.js +54 -0
  715. package/dist/server/diagnostics/terminalPrerequisites.js.map +1 -0
  716. package/dist/server/index.js +9 -0
  717. package/dist/server/index.js.map +1 -1
  718. package/dist/server/knownAutoInstallPiPackages.js +6 -0
  719. package/dist/server/knownAutoInstallPiPackages.js.map +1 -1
  720. package/dist/server/knownPiPackages.js +4 -4
  721. package/dist/server/knownPiPackages.js.map +1 -1
  722. package/dist/server/machines/machineClient.js +39 -17
  723. package/dist/server/machines/machineClient.js.map +1 -1
  724. package/dist/server/machines/machinePluginProxyRoutes.js +3 -1
  725. package/dist/server/machines/machinePluginProxyRoutes.js.map +1 -1
  726. package/dist/server/machines/machineProxyRoutes.js +60 -9
  727. package/dist/server/machines/machineProxyRoutes.js.map +1 -1
  728. package/dist/server/machines/machineService.js +81 -13
  729. package/dist/server/machines/machineService.js.map +1 -1
  730. package/dist/server/machines/machineStore.js.map +1 -1
  731. package/dist/server/managementEmbed.js +4 -1
  732. package/dist/server/managementEmbed.js.map +1 -1
  733. package/dist/server/managementEntryRoutes.js +51 -0
  734. package/dist/server/managementEntryRoutes.js.map +1 -0
  735. package/dist/server/managementEntryTickets.js +46 -0
  736. package/dist/server/managementEntryTickets.js.map +1 -0
  737. package/dist/server/managementTransportLimits.js +5 -0
  738. package/dist/server/managementTransportLimits.js.map +1 -0
  739. package/dist/server/navigationPreferenceRoutes.js +58 -2
  740. package/dist/server/navigationPreferenceRoutes.js.map +1 -1
  741. package/dist/server/normalAuth.js +3 -1
  742. package/dist/server/normalAuth.js.map +1 -1
  743. package/dist/server/notices/serverNoticeStore.js +4 -0
  744. package/dist/server/notices/serverNoticeStore.js.map +1 -1
  745. package/dist/server/piPackageService.js +15 -1
  746. package/dist/server/piPackageService.js.map +1 -1
  747. package/dist/server/piWebPluginCatalog.js +23 -11
  748. package/dist/server/piWebPluginCatalog.js.map +1 -1
  749. package/dist/server/piWebPluginLifecycle.js +14 -4
  750. package/dist/server/piWebPluginLifecycle.js.map +1 -1
  751. package/dist/server/piWebPluginService.js +11 -5
  752. package/dist/server/piWebPluginService.js.map +1 -1
  753. package/dist/server/piWebStatus.js +12 -10
  754. package/dist/server/piWebStatus.js.map +1 -1
  755. package/dist/server/piWebStatusCache.js +3 -1
  756. package/dist/server/piWebStatusCache.js.map +1 -1
  757. package/dist/server/plugins/pluginBackendRegistry.js +229 -4
  758. package/dist/server/plugins/pluginBackendRegistry.js.map +1 -1
  759. package/dist/server/plugins/pluginBackendResourceProxyRoutes.js +40 -0
  760. package/dist/server/plugins/pluginBackendResourceProxyRoutes.js.map +1 -0
  761. package/dist/server/plugins/pluginBackendResourceResponse.js +84 -0
  762. package/dist/server/plugins/pluginBackendResourceResponse.js.map +1 -0
  763. package/dist/server/plugins/projectPluginSettings.js +9 -2
  764. package/dist/server/plugins/projectPluginSettings.js.map +1 -1
  765. package/dist/server/plugins/serverPluginCatalogCapability.js +7 -2
  766. package/dist/server/plugins/serverPluginCatalogCapability.js.map +1 -1
  767. package/dist/server/plugins/serverPluginPiSessionsCapability.js +16 -3
  768. package/dist/server/plugins/serverPluginPiSessionsCapability.js.map +1 -1
  769. package/dist/server/plugins/serverPluginRuntime.js +25 -9
  770. package/dist/server/plugins/serverPluginRuntime.js.map +1 -1
  771. package/dist/server/plugins/serverPluginSessionLifecycleCapability.js +87 -0
  772. package/dist/server/plugins/serverPluginSessionLifecycleCapability.js.map +1 -0
  773. package/dist/server/requestLogging.js +1 -1
  774. package/dist/server/requestLogging.js.map +1 -1
  775. package/dist/server/sessiond/agentHttpDispatcher.js +14 -7
  776. package/dist/server/sessiond/agentHttpDispatcher.js.map +1 -1
  777. package/dist/server/sessiond/autoInstallPiPackageSources.js +54 -0
  778. package/dist/server/sessiond/autoInstallPiPackageSources.js.map +1 -0
  779. package/dist/server/sessiond/autoInstallPiPackages.js +77 -30
  780. package/dist/server/sessiond/autoInstallPiPackages.js.map +1 -1
  781. package/dist/server/sessiond/pluginBackendChannelRoutes.js +3 -13
  782. package/dist/server/sessiond/pluginBackendChannelRoutes.js.map +1 -1
  783. package/dist/server/sessiond/pluginBackendResourceRoutes.js +62 -0
  784. package/dist/server/sessiond/pluginBackendResourceRoutes.js.map +1 -0
  785. package/dist/server/sessiond/pluginSessionLifecycleRoutes.js +45 -0
  786. package/dist/server/sessiond/pluginSessionLifecycleRoutes.js.map +1 -0
  787. package/dist/server/sessiond/sessionProxyRoutes.js +76 -12
  788. package/dist/server/sessiond/sessionProxyRoutes.js.map +1 -1
  789. package/dist/server/sessiond/sessionServiceDependencies.js +3 -0
  790. package/dist/server/sessiond/sessionServiceDependencies.js.map +1 -1
  791. package/dist/server/sessiond.js +47 -16
  792. package/dist/server/sessiond.js.map +1 -1
  793. package/dist/server/sessions/askUserDomain.js +24 -2
  794. package/dist/server/sessions/askUserDomain.js.map +1 -1
  795. package/dist/server/sessions/askUserTool.js +1 -1
  796. package/dist/server/sessions/askUserTool.js.map +1 -1
  797. package/dist/server/sessions/dockerEnvironmentFacts.js +10 -9
  798. package/dist/server/sessions/dockerEnvironmentFacts.js.map +1 -1
  799. package/dist/server/sessions/mcpOAuthCredentialAdapter.js +4 -4
  800. package/dist/server/sessions/mcpOAuthCredentialAdapter.js.map +1 -1
  801. package/dist/server/sessions/piSessionService.js +491 -283
  802. package/dist/server/sessions/piSessionService.js.map +1 -1
  803. package/dist/server/sessions/requestHumanInterventionTool.js +27 -0
  804. package/dist/server/sessions/requestHumanInterventionTool.js.map +1 -0
  805. package/dist/server/sessions/sendSessionMessageTool.js +32 -0
  806. package/dist/server/sessions/sendSessionMessageTool.js.map +1 -0
  807. package/dist/server/sessions/sessionActivityCoordinator.js.map +1 -1
  808. package/dist/server/sessions/sessionCleanup.js +18 -1
  809. package/dist/server/sessions/sessionCleanup.js.map +1 -1
  810. package/dist/server/sessions/sessionCommandService.js +58 -52
  811. package/dist/server/sessions/sessionCommandService.js.map +1 -1
  812. package/dist/server/sessions/sessionContentSearch.js +103 -30
  813. package/dist/server/sessions/sessionContentSearch.js.map +1 -1
  814. package/dist/server/sessions/sessionIntervention.js +29 -0
  815. package/dist/server/sessions/sessionIntervention.js.map +1 -0
  816. package/dist/server/sessions/sessionNameGenerator.js +0 -60
  817. package/dist/server/sessions/sessionNameGenerator.js.map +1 -1
  818. package/dist/server/sessions/sessionNotificationStore.js +2 -1
  819. package/dist/server/sessions/sessionNotificationStore.js.map +1 -1
  820. package/dist/server/sessions/sessionRoutes.js +25 -28
  821. package/dist/server/sessions/sessionRoutes.js.map +1 -1
  822. package/dist/server/sessions/sessionSummaryScanner.js +8 -0
  823. package/dist/server/sessions/sessionSummaryScanner.js.map +1 -1
  824. package/dist/server/sessions/sessionTreeProjection.js +108 -97
  825. package/dist/server/sessions/sessionTreeProjection.js.map +1 -1
  826. package/dist/server/sessions/sessionUiEvents.js +2 -0
  827. package/dist/server/sessions/sessionUiEvents.js.map +1 -1
  828. package/dist/server/sessions/sessionUnreadStore.js +11 -1
  829. package/dist/server/sessions/sessionUnreadStore.js.map +1 -1
  830. package/dist/server/sessions/spawnSubsessionTool.js +66 -15
  831. package/dist/server/sessions/spawnSubsessionTool.js.map +1 -1
  832. package/dist/server/sessions/subsessionCompletionDelivery.js +6 -3
  833. package/dist/server/sessions/subsessionCompletionDelivery.js.map +1 -1
  834. package/dist/server/sessions/subsessionCompletionInbox.js +6 -9
  835. package/dist/server/sessions/subsessionCompletionInbox.js.map +1 -1
  836. package/dist/server/status/machineStatusService.js +15 -3
  837. package/dist/server/status/machineStatusService.js.map +1 -1
  838. package/dist/server/storage/navigationPreferenceStore.js +19 -2
  839. package/dist/server/storage/navigationPreferenceStore.js.map +1 -1
  840. package/dist/server/storage/sessionPinStore.js +101 -0
  841. package/dist/server/storage/sessionPinStore.js.map +1 -0
  842. package/dist/server/terminals/maintenanceExecutionContext.js +18 -0
  843. package/dist/server/terminals/maintenanceExecutionContext.js.map +1 -0
  844. package/dist/server/terminals/maintenanceTerminalCapability.js +25 -0
  845. package/dist/server/terminals/maintenanceTerminalCapability.js.map +1 -0
  846. package/dist/server/terminals/requiredTerminalService.js.map +1 -1
  847. package/dist/server/terminals/terminalStatusRoutes.js +22 -0
  848. package/dist/server/terminals/terminalStatusRoutes.js.map +1 -0
  849. package/dist/server/themeBootstrap.js +123 -0
  850. package/dist/server/themeBootstrap.js.map +1 -0
  851. package/dist/server/themeCatalog.js +206 -0
  852. package/dist/server/themeCatalog.js.map +1 -0
  853. package/dist/server/themeMetadata.js +74 -0
  854. package/dist/server/themeMetadata.js.map +1 -0
  855. package/dist/server/webSocketBridge.js +16 -12
  856. package/dist/server/webSocketBridge.js.map +1 -1
  857. package/dist/server/webSocketPayloadLimit.js +17 -0
  858. package/dist/server/webSocketPayloadLimit.js.map +1 -0
  859. package/dist/server/workspaces/effectivePathAccess.js +1 -1
  860. package/dist/server/workspaces/effectivePathAccess.js.map +1 -1
  861. package/dist/server/workspaces/projectPiWebConfig.js +30 -7
  862. package/dist/server/workspaces/projectPiWebConfig.js.map +1 -1
  863. package/dist/server/workspaces/sessionDaemonWorkspaceCatalog.js +2 -0
  864. package/dist/server/workspaces/sessionDaemonWorkspaceCatalog.js.map +1 -1
  865. package/dist/server/workspaces/workspaceProviderRegistry.js +6 -2
  866. package/dist/server/workspaces/workspaceProviderRegistry.js.map +1 -1
  867. package/dist/server/workspaces/workspaceRemovalService.js +6 -4
  868. package/dist/server/workspaces/workspaceRemovalService.js.map +1 -1
  869. package/dist/server-plugin-api.d.ts +39 -1
  870. package/dist/server-plugin-api.js +18 -3
  871. package/dist/server-plugin-api.js.map +1 -1
  872. package/dist/sessiond/sessionDaemonClient.js +7 -1
  873. package/dist/sessiond/sessionDaemonClient.js.map +1 -1
  874. package/dist/sessiond/sessionDaemonTerminalStatus.js +27 -0
  875. package/dist/sessiond/sessionDaemonTerminalStatus.js.map +1 -0
  876. package/dist/shared/apiTypes.js +5 -0
  877. package/dist/shared/apiTypes.js.map +1 -1
  878. package/dist/shared/capabilities.js +9 -0
  879. package/dist/shared/capabilities.js.map +1 -1
  880. package/dist/shared/commandOutputPresentation.js +17 -0
  881. package/dist/shared/commandOutputPresentation.js.map +1 -0
  882. package/dist/shared/commandResultPresentation.js +51 -0
  883. package/dist/shared/commandResultPresentation.js.map +1 -0
  884. package/dist/shared/configResolution.js +99 -0
  885. package/dist/shared/configResolution.js.map +1 -0
  886. package/dist/shared/defaultLocalization.js +60 -0
  887. package/dist/shared/defaultLocalization.js.map +1 -0
  888. package/dist/shared/federatedRoutes.js +11 -4
  889. package/dist/shared/federatedRoutes.js.map +1 -1
  890. package/dist/shared/installationName.js +21 -0
  891. package/dist/shared/installationName.js.map +1 -0
  892. package/dist/shared/localization.d.ts +55 -0
  893. package/dist/shared/localization.js +4 -0
  894. package/dist/shared/machineStatus.js +2 -0
  895. package/dist/shared/machineStatus.js.map +1 -1
  896. package/dist/shared/piWebConfigParsing.js +16 -30
  897. package/dist/shared/piWebConfigParsing.js.map +1 -1
  898. package/dist/shared/piWebRuntime.js +17 -0
  899. package/dist/shared/piWebRuntime.js.map +1 -0
  900. package/dist/shared/piWebStatusParsing.js +5 -0
  901. package/dist/shared/piWebStatusParsing.js.map +1 -1
  902. package/dist/shared/pluginApiTypes.d.ts +35 -7
  903. package/dist/shared/pluginBackendProtocol.js +24 -0
  904. package/dist/shared/pluginBackendProtocol.js.map +1 -1
  905. package/dist/shared/pluginCatalogTypes.d.ts +8 -0
  906. package/dist/shared/pluginCatalogTypes.js +15 -0
  907. package/dist/shared/pluginCatalogTypes.js.map +1 -1
  908. package/dist/shared/pluginResourceMetadata.js +58 -0
  909. package/dist/shared/pluginResourceMetadata.js.map +1 -0
  910. package/dist/shared/pluginSessionLifecycleTypes.d.ts +24 -0
  911. package/dist/shared/pluginSessionLifecycleTypes.js +56 -0
  912. package/dist/shared/pluginSessionLifecycleTypes.js.map +1 -0
  913. package/dist/shared/serverNoticePresentation.d.ts +9 -0
  914. package/dist/shared/serverNoticePresentation.js +12 -0
  915. package/dist/shared/serverNoticePresentation.js.map +1 -0
  916. package/dist/shared/sessionActivityPresentation.js +73 -0
  917. package/dist/shared/sessionActivityPresentation.js.map +1 -0
  918. package/dist/shared/sessionNotificationPresentation.js +16 -0
  919. package/dist/shared/sessionNotificationPresentation.js.map +1 -0
  920. package/dist/shared/terminalCommandRun.js +4 -0
  921. package/dist/shared/terminalCommandRun.js.map +1 -1
  922. package/dist/shared/terminalServiceStatus.js +14 -0
  923. package/dist/shared/terminalServiceStatus.js.map +1 -0
  924. package/dist/shared/terminalTitlePresentation.d.ts +10 -0
  925. package/dist/shared/terminalTitlePresentation.js +13 -0
  926. package/dist/shared/terminalTitlePresentation.js.map +1 -0
  927. package/dist/shared/themeCatalog.js +2 -0
  928. package/dist/shared/themeCatalog.js.map +1 -0
  929. package/dist/shared/themePreference.js +1 -0
  930. package/dist/shared/themePreference.js.map +1 -1
  931. package/dist/shared/thinkingLevels.d.ts +29 -0
  932. package/dist/shared/thinkingLevels.js +6 -4
  933. package/dist/shared/thinkingLevels.js.map +1 -1
  934. package/dist/shared/versionCheckPolicy.js +10 -0
  935. package/dist/shared/versionCheckPolicy.js.map +1 -0
  936. package/dist/shared/workspaceRemovalPresentation.d.ts +8 -0
  937. package/dist/shared/workspaceRemovalPresentation.js +10 -0
  938. package/dist/shared/workspaceRemovalPresentation.js.map +1 -0
  939. package/docs/README.md +7 -3
  940. package/docs/assets/pi-web-desktop-graphite.png +0 -0
  941. package/docs/assets/pi-web-desktop-paper.png +0 -0
  942. package/docs/assets/pi-web-desktop-pi-web-dark.png +0 -0
  943. package/docs/assets/pi-web-desktop-pi-web-light.png +0 -0
  944. package/docs/assets/pi-web-desktop.png +0 -0
  945. package/docs/assets/pi-web-mobile-graphite.png +0 -0
  946. package/docs/assets/pi-web-mobile-paper.png +0 -0
  947. package/docs/assets/pi-web-mobile-pi-web-dark.png +0 -0
  948. package/docs/assets/pi-web-mobile-pi-web-light.png +0 -0
  949. package/docs/assets/pi-web-mobile-themes.gif +0 -0
  950. package/docs/assets/pi-web-mobile.png +0 -0
  951. package/docs/assets/pi-web-tablet-graphite.png +0 -0
  952. package/docs/assets/pi-web-tablet-paper.png +0 -0
  953. package/docs/assets/pi-web-tablet-pi-web-dark.png +0 -0
  954. package/docs/assets/pi-web-tablet-pi-web-light.png +0 -0
  955. package/docs/assets/pi-web-tablet-themes.gif +0 -0
  956. package/docs/assets/pi-web-tablet.png +0 -0
  957. package/docs/assets/pi-web-themes.gif +0 -0
  958. package/docs/config.md +193 -55
  959. package/docs/plugins.md +350 -21
  960. package/docs/scheduled-tasks.md +127 -0
  961. package/package.json +43 -19
  962. package/dist/client/assets/CommandPicker-8oDe6AaV.js +0 -70
  963. package/dist/client/assets/PiWebApp-TCQVYghs.js +0 -3761
  964. package/dist/client/assets/SettingsDialog-DFUpwUyp.js +0 -1015
  965. package/dist/client/assets/index-DzMPXVth.js +0 -2
  966. package/dist/client/assets/managementEmbed-Bx8Mwzdw.js +0 -2
  967. package/dist/client/assets/preload-helper-XpATwJ5c.js +0 -1
  968. package/dist/pi-packages/captains-log/README.md +0 -11
  969. package/dist/pi-packages/captains-log/dist/browser/channelProtocol.js +0 -29
  970. package/dist/pi-packages/captains-log/dist/browser/index.js +0 -143
  971. package/dist/pi-packages/captains-log/dist/browser/markdown.js +0 -68
  972. package/dist/pi-packages/captains-log/dist/browser/panel.js +0 -148
  973. package/dist/pi-packages/captains-log/dist/browser/protocol.js +0 -26
  974. package/dist/pi-packages/captains-log/dist/companion.js +0 -126
  975. package/dist/pi-packages/captains-log/dist/roundtrip.js +0 -62
  976. package/dist/pi-packages/captains-log/dist/server.js +0 -210
  977. package/dist/pi-packages/captains-log/dist/store.js +0 -75
  978. package/dist/pi-packages/captains-log/docs/usage.md +0 -29
  979. package/dist/pi-packages/captains-log/i18n.js +0 -7
  980. package/dist/pi-packages/captains-log/package.json +0 -35
  981. package/dist/pi-packages/captains-log/tsconfig.json +0 -21
  982. package/dist/pi-packages/captains-log/vite.config.mjs +0 -28
  983. package/dist/server/sessions/sessionPinStore.js +0 -109
  984. package/dist/server/sessions/sessionPinStore.js.map +0 -1
  985. package/examples/session-bridge-plugin/README.md +0 -20
  986. package/examples/session-bridge-plugin/docs/usage.md +0 -54
  987. package/examples/session-bridge-plugin/package.json +0 -26
  988. package/examples/session-bridge-plugin/src/browser/index.ts +0 -87
  989. package/examples/session-bridge-plugin/src/browser/protocol.ts +0 -24
  990. package/examples/session-bridge-plugin/src/companion.ts +0 -65
  991. package/examples/session-bridge-plugin/src/reviewRun.ts +0 -39
  992. package/examples/session-bridge-plugin/src/server.ts +0 -85
  993. package/examples/session-bridge-plugin/src/store.ts +0 -80
  994. package/examples/session-bridge-plugin/tsconfig.json +0 -21
  995. /package/dist/{client/assets/classic-CyM97Akm.css → pi-web-plugins/themes/assets/classic.css} +0 -0
  996. /package/dist/{client/assets/pi-web-dark-D_KtbM95.css → pi-web-plugins/themes/assets/pi-web-dark.css} +0 -0
  997. /package/dist/{client/assets/pi-web-light-DSNLMIBI.css → pi-web-plugins/themes/assets/pi-web-light.css} +0 -0
package/docs/README.md CHANGED
@@ -11,17 +11,21 @@
11
11
  | 了解产品、安装和使用 | [网站首页](index.html)、[安装](install.html)、[常见问题](faq.html)、[社区插件](community-plugins.html) |
12
12
  | 开始维护代码 | [维护约定](maintenance.md)、[维护者上手](getting-started.md) |
13
13
  | 理解整体结构与状态归属 | [架构](development/architecture.md) |
14
- | 查找共享控件和插件样式入口 | [共享 UI 导航](ui-primitives.md)、[插件样式契约](plugins.md#styles-highlighting-and-display) |
14
+ | 查找共享控件和插件样式入口 | [共享 UI 导航](ui-primitives.md)、[主题架构](theme-architecture.md)、[主题样式契约](theme-styling-contract.md)、[插件样式契约](plugins.md#styles-highlighting-and-display) |
15
15
  | 查找模块职责与边界 | [项目与工作区](modules/projects-workspaces.md)、[会话](modules/sessions.md)、[认证与模型](modules/auth-models.md)、[文件与终端](modules/files-terminals.md) |
16
16
  | 理解跨机器、插件与配置边界 | [机器/API](modules/machines-api.md)、[插件](modules/plugins.md)、[配置维护](modules/configuration.md) |
17
17
  | 管理集成与运行维护 | [管理与审计](admin/management-audit.md)、[运维](admin/operations.md) |
18
- | 查公开使用契约 | [配置参考](config.md)、[插件指南](plugins.md)、[机器联邦](machines.html)、[远端使用](remote-first.html) |
19
- | 选择验证与交付检查 | [改动联动](development/change-guide.md)、[开发检查](development-checks.md) |
18
+ | 维护配置分层与翻译 | [配置架构](config-architecture.md)、[本地化开发](localization.md) |
19
+ | 查公开使用契约 | [配置参考](config.md)、[插件指南](plugins.md)、[定时代理任务](scheduled-tasks.md)、[机器联邦](machines.html)、[远端使用](remote-first.html) |
20
+ | 选择验证与交付检查 | [测试政策](testing.md)、[测试夹具](testing-harnesses.md)、[改动联动](development/change-guide.md)、[开发检查](development-checks.md) |
21
+ | 维护网站与临时代码 | [网站部署](website-deployments.md)、[临时代码策略](temporary-code.md) |
22
+ | 准备或审查贡献描述 | [贡献指南](../CONTRIBUTING.md)、[描述审查政策](github-description-review.md) |
20
23
 
21
24
  ## 目录职责
22
25
 
23
26
  | 位置 | 内容与边界 |
24
27
  | --- | --- |
28
+ | [config-audit.md](config-audit.md) | 配置实施前历史审计;当前行为以配置参考与配置架构为准。 |
25
29
  | `docs/` | 用户指南、配置与插件参考、网站页面、社区插件 npm 发现目录及维护入口。成对的 Markdown/HTML 页面保持契约一致。 |
26
30
  | [`development/`](development/) | 全局架构、状态所有权和跨模块改动约束。 |
27
31
  | [`modules/`](modules/) | 各领域的职责、协作关系、不变量及少量源码导航。 |
Binary file
Binary file
Binary file
Binary file
package/docs/config.md CHANGED
@@ -5,6 +5,7 @@
5
5
  <a id="config-files"></a>
6
6
  ## 配置文件
7
7
 
8
+ - **部署默认值**:可选 `PI_WEB_DEFAULTS_CONFIG` 指向只读、同 schema JSON;没有默认路径。显式选择缺失、格式错误或无效文件会失败,不能与可写配置共用路径,两个服务必须使用同一选择。
8
9
  - **机器配置**:`$PI_WEB_CONFIG`;未设置时使用 `$XDG_CONFIG_HOME/pi-web/config.json` 或 `~/.config/pi-web/config.json`。
9
10
  - **项目配置**:`<project>/.pi-web/config.json`,可提交到仓库。
10
11
  - **托管数据**:`$PI_WEB_DATA_DIR`(默认 `~/.pi-web`),不是用户可编辑配置 API。
@@ -23,11 +24,11 @@ Pi 包由目标机器的 `pi install`、`pi remove`、`pi update` 或 **设置
23
24
  <a id="chinese-language-plugin"></a>
24
25
  ### 中文语言插件
25
26
 
26
- 内置 `zh-cn` 默认启用,覆盖核心界面、内置插件、CLI 及 PI WEB 自有提示。要恢复英文,在有效机器配置中设置 `"plugins": { "zh-cn": { "enabled": false } }`。不新增语言选择器或语言配置文件,缺失词条回退英文。
27
+ 内置 `zh-cn` 默认启用,覆盖核心界面、内置插件、CLI 及 PI WEB 自有提示。要恢复英文,在有效机器配置中设置 `"plugins": { "zh-cn": { "enabled": false } }`。设置中的语言与区域可独立选择界面语言、格式区域、时区和时制,缺失词条回退英文。浏览器语言选择不改变 CLI/服务端语言。
27
28
 
28
- 浏览器语言由网关机器的开关决定,不随所选远端机器切换。每台机器的 CLI 和服务端读取自身配置;远端返回的提示保留远端语言。用户内容、模型回复、第三方输出、命令、错误码及协议字段不会被翻译。
29
+ 浏览器的默认中文由网关 zh-cn 插件提供,并服从网关语言默认值、设备选择及环境强制策略,不随所选远端机器切换。每台机器的 CLI 和服务端读取自身配置;远端返回的提示保留远端语言。用户内容、模型回复、第三方输出、命令、错误码及协议字段不会被翻译。
29
30
 
30
- 修改后刷新网页;CLI 下次启动生效;服务端需重启。拆分部署时重启 `pi-web-sessiond.service` 和 Web 服务(开发安装为 `pi-web-ui-dev.service`),确保两者使用相同有效 `PI_WEB_CONFIG`。不支持运行中热切换。
31
+ 修改后刷新网页;CLI 下次启动生效;服务端需重启。拆分部署时重启 `pi-web-sessiond.service` 和 Web 服务(开发安装为 `pi-web-ui-dev.service`),确保两者使用相同有效 `PI_WEB_CONFIG`。浏览器语言与区域设置可即时切换;插件启用和服务端词典变更仍按上述刷新/重启规则生效。
31
32
 
32
33
  普通模式模型凭据和自定义模型按注册项目存放在托管目录的 `auth.json`、`models.json`。同一项目所有工作区共享项目存储;首次使用从有效全局 Pi agent 文件复制一次,之后不回退或覆盖。认证、启动与列表请求必须解析到注册项目;运行中的会话保留创建时的项目 registry,即使项目之后关闭。管理嵌入使用独立的 `management-embed/auth.json` 与 `models.json`,不混用普通项目凭据。
33
34
 
@@ -55,31 +56,40 @@ Pi 包由目标机器的 `pi install`、`pi remove`、`pi update` 或 **设置
55
56
  默认值无需重启,适用于新会话。项目 Pi 设置、显式启动选择及每模型思考设置仍有既定优先级。默认模型必须启用,否则选择首个启用模型。恢复会话保留原模型与思考等级。其他共享 agent 设置(包、扩展、代理等)继续读真实 agent 目录的 `settings.json`。
56
57
 
57
58
  <a id="default-theme-and-streaming"></a>
59
+ <a id="theme-default-and-device-choices"></a>
58
60
  ## 应用主题与发送默认值
59
61
 
60
- `defaultTheme` 是网关配置,形如 `{ "themeId": "plugin-id:theme-id", "auto": true }`:`themeId` 必须为限定贡献 ID,`auto` 必须为布尔值。`auto: true` 在该主题有明暗配对时跟随系统明暗,否则使用所选主题。浏览器设备已保存的主题覆盖优先;主题暂不可用时使用回退,不删除原选择。主题属于整个应用,不保存到当前远端机器;保存/刷新配置后生效,无需重启 daemon。
62
+ 网关初始 HTML 携带默认主题详情与 CSS,Auto 包含配对两种变体;不评估主题包代码即可提供静态主题。初始默认主题不在静态目录中(例如旧运行时主题、插件已禁用或未知 ID)时先用 Classic 显示,同时保留原偏好;此引导回退不适用于显式主题查询。设备覆盖按需请求,失败或不可用时保持已提交配色而不抹掉选择;设置页每个对话框首次进入通用页加载完整主题目录,失败可显式重试。主题资产使用带 revision 的 URL 与 HTTP 缓存,不把任意 CSS 写入 localStorage,也不增加配置文件。
61
63
 
62
- 在 **设置 → 通用 → 主题** 中,“在此设备使用”保存浏览器覆盖,“设为默认”保存网关默认且不覆盖已有设备选择,“使用默认值”清除此浏览器覆盖并采用应用默认。设置页的“默认主题”说明与应用的默认选择一致;网关未显式配置 `defaultTheme` 时,也会反映 Custom UI Codex 可用时的隐式默认。读取默认值或清除设备覆盖均不写入网关配置。Auto 只在主题有明暗配对时跟随设备。
64
+ `defaultTheme` 是网关配置,形如 `{ "themeId": "plugin-id:theme-id", "auto": true }`:`themeId` 必须为限定贡献 ID,`auto` 必须为布尔值。`auto: true` 在该主题有明暗配对时跟随系统明暗,否则使用所选主题。除环境强制主题外,浏览器设备已保存的主题覆盖优先;主题暂不可用时使用回退,不删除原选择。主题属于整个应用,不保存到当前远端机器;保存/刷新配置后生效,无需重启 daemon。
63
65
 
64
- 内置 **Custom UI Codex** 展示插件默认启用,配置 ID 为 `pi-web.custom-ui-codex`。在网关的插件设置中禁用,或在网关有效机器配置设置 `plugins["pi-web.custom-ui-codex"].enabled: false`,刷新页面后恢复宿主默认布局;中文语言插件与权限模式不受影响,无需重启 daemon。远端机器不能替网关接管整个应用界面。
66
+ 在 **设置 → 通用 → 主题** 中,“在此设备使用”保存浏览器覆盖,“设为默认”保存网关默认且不覆盖已有设备选择,“使用默认值”清除此浏览器覆盖并采用应用默认。设置页的“默认主题”说明与应用的默认选择一致;网关未显式配置 `defaultTheme` 时,使用内置 `themes:pi-web-dark`,并在 `auto: true` 下跟随系统在 PI WEB Light / Dark 之间切换。读取默认值或清除设备覆盖均不写入网关配置。Auto 只在主题有明暗配对时跟随设备。
65
67
 
66
- 该插件启用且设备、网关均未显式选择主题时,使用 Paper / Graphite 明暗配对并跟随系统。已有设备或网关主题选择仍优先。主题限定 ID 为 `pi-web.custom-ui-codex:paper`、`pi-web.custom-ui-codex:graphite`;旧的 `themes:paper`、`themes:graphite` 在插件可用时继续解析到对应主题,设置页的名称、选项及保存操作同样识别这些旧 ID。读取和显示不改写原有配置,只有显式保存才使用当前可用主题的限定 ID。插件不可用时按正常主题回退规则显示,保留原选择以便恢复;设置页仍标记原主题不可用,不允许把回退主题当作原选择保存。
68
+ 内置 **Custom UI Codex** 展示插件默认启用,配置 ID 为 `pi-web.custom-ui-codex`。它只提供可选的本地视觉与布局定制,不提供应用默认主题。在网关的插件设置中禁用,或在网关有效机器配置设置 `plugins["pi-web.custom-ui-codex"].enabled: false`,刷新页面后恢复上游默认布局与样式;中文语言插件与权限模式不受影响,无需重启 daemon。远端机器不能替网关接管整个应用界面。
69
+
70
+ 该插件不再通过浏览器 `activate` 注册主题;其配色与明暗配对改为 `package.json` 的静态 `themes` / `themePairs` 声明,并与其他静态主题一样由网关目录收集。Paper / Graphite 等内置配色也由静态目录提供,限定 ID 为 `themes:paper`、`themes:graphite` 和 `themes:paper-graphite`;这些 ID 直接指向内置静态主题,不再是映射到 Custom UI Codex 的旧别名。旧插件命名空间的同名静态主题仍保留,供已保存的显式 `pi-web.custom-ui-codex:` ID 继续解析;它们不是默认值,也不改变内置 `themes:*` 选择。已有设备或网关主题选择照常优先。读取和显示不改写原有配置;主题暂不可用时保留原选择并显示回退,设置页标记该主题不可用,不把回退主题当作原选择保存。
67
71
 
68
72
  网关 `defaultStreamingBehavior` 为 `"steer"`(默认)或 `"followUp"`,决定流式工作期间编辑器的默认发送方式,不改变已在 daemon 中排队的消息。浏览器分区尺寸、编辑器偏好与普通导航顺序不是新的项目配置文件;导航顺序是按机器管理的托管状态,管理模式不共用普通存储。
69
73
 
70
74
  <a id="session-naming-and-archives"></a>
71
75
  ## 会话命名与归档
72
76
 
73
- 机器配置 `sessionNaming` 仅接受以下可选字段,不提供项目覆盖。设置保存后用于后续命名请求,无需重启;每次请求固定自己的有效设置,不覆盖用户已命名会话,也不切换聊天模型。
77
+ <a id="session-naming"></a>
74
78
 
75
- | 设置 | 作用范围 | 默认值 | 改变什么 | 生效 / 重启 |
76
- | --- | --- | --- | --- | --- |
77
- | `sessionNaming.model` | 机器 | 当前会话模型 | 命名模型,精确 `provider/model-id`;使用原会话普通项目或管理 registry | 后续命名请求;无需重启 |
78
- | `sessionNaming.maxTokens` | 机器 | `24` | 命名输出 token 上限,正安全整数 | 后续命名请求;无需重启 |
79
- | `sessionNaming.thinkingLevel` | 机器 | `minimal` | 命名思考等级,须为已知等级;`off` 不发送 reasoning 参数 | 后续命名请求;无需重启 |
80
- | `sessionNaming.timeoutMs` | 机器 | `10000` | 命名总耗时上限,整数 `1..2147483647` 毫秒 | 后续命名请求;无需重启 |
79
+ 自动命名由随包提供的 **Session naming** Pi 扩展(`@jmfederico/pi-session-naming`)负责,依据新对话的首条提示命名;使用同一有效 Pi profile 的 TUI 也会加载它。可在 **设置 → Pi 包** 移除以使用其他命名扩展,或从“可用包”重新安装;包变更对新会话生效。
80
+
81
+ 在 `<active-agent-profile>/session-naming/config.json`(通常是 `~/.pi/agent/session-naming/config.json`)配置以下可选字段,不再使用核心 `sessionNaming` 配置或命名设置面板:
82
+
83
+ | 字段 | 默认值 | 契约 |
84
+ | --- | --- | --- |
85
+ | `model` | 当前会话模型 | 精确 `provider/model-id`,仍使用原会话普通项目或管理 registry |
86
+ | `maxTokens` | `24` | 正安全整数;提供器可能将 reasoning 计入该预算,不是标题字数 |
87
+ | `thinkingLevel` | `minimal` | `off`、`minimal`、`low`、`medium`、`high`、`xhigh`、`max`;受模型能力限制 |
88
+ | `timeoutMs` | `10000` | 模型加载及生成总耗时,整数 `1..2147483647` 毫秒 |
89
+
90
+ 文件编辑用于下次命名请求,删除字段恢复默认,`{}` 重置文件覆盖。`PI_WEB_SESSION_NAMING` 仍可用 JSON 对象强制指定字段,修改后重启相关进程。命名不切换聊天模型或把项目凭据切换为全局凭据;失败时扩展报告错误并使用提示词开头作为回退名称。
81
91
 
82
- 模型不可用、超时或命名失败时使用首条消息的回退名称;标题语言跟随用户请求。命名设置不把项目凭据切换为全局凭据。
92
+ 加载核心配置时,旧 `sessionNaming` 值迁移到包文件;已有包配置优先。迁移成功后删除可写核心配置中的旧键;部署默认文件中的旧项需按日志检查目标包文件后手动移除。核心配置 API 拒绝已退役的键。迁移失败保留旧键并继续启动,下次加载重试;修复前命名可能使用已有包配置或默认值。
83
93
 
84
94
  <a id="session-archive-directory"></a>
85
95
 
@@ -88,35 +98,144 @@ Pi 包由目标机器的 `pi install`、`pi remove`、`pi update` 或 **设置
88
98
  <a id="mcp-settings-and-authentication"></a>
89
99
  ## MCP 设置与认证
90
100
 
91
- **设置 → MCP** 管理所选机器当前非归档会话中已启用、支持 OAuth 的 MCP 服务器认证;先选择可写、空闲且可信的会话。服务器配置由 Pi 的全局/项目设置和信任规则决定,这里不新增 `pi-web` MCP 服务器配置键,也不替代管理模式的 Workbench 受控 MCP 集成。
101
+ **设置 → MCP** 管理所选机器当前非归档会话中已启用、支持 OAuth 的 MCP 服务器认证;先选择可写、空闲且可信的会话。普通会话的服务器配置读取共享 Pi agent 全局根及可信项目;完整特权管理读取管理私有配置根及可信项目,不读取共享 agent 全局根。项目配置遵循 Pi 的信任规则,这里不新增 `pi-web` MCP 服务器配置键,也不替代管理模式的 Workbench 受控 MCP 集成。
92
102
 
93
103
  也可从操作面板选择 MCP 登录/注销,再选择服务器;设置页直接针对所选服务器。两者使用同一独立认证流程,不切到聊天;禁用、header 认证或 stdio 服务器不列为 OAuth 候选,同机器同时只能进行一项 MCP 认证操作。
94
104
 
95
- 专用认证仅支持所选 **Pi 1.3.0** 同一 SDK 的内部凭据适配,未知版本不保证兼容。普通项目与管理使用独立私有 MCP 凭据,不回退共享 agent 的 MCP OAuth 存储;完整特权仍是管理身份,受限管理不提供该流程。认证固定原机器、会话、cwd、项目和 scope,切换选择不会转移流程。注销删除对应保存凭据,影响使用该凭据的其他会话,但不禁用服务器或撤销提供方授权。详见[认证与模型](https://github.com/nayuto-wakusei/pi-web-ChineseTranslation/blob/main/docs/modules/auth-models.md#mcp-认证)。
105
+ 专用认证仅支持所选 **Pi 1.3.0 或 1.4.0** 同一 SDK 的内部凭据适配,未知版本不保证兼容。普通项目与管理使用独立私有 MCP 凭据,不回退共享 agent 的 MCP OAuth 存储;完整特权仍是管理身份,受限管理不提供该流程。认证固定原机器、会话、cwd、项目和 scope,切换选择不会转移流程。注销删除对应保存凭据,影响使用该凭据的其他会话,但不禁用服务器或撤销提供方授权。详见[认证与模型](https://github.com/nayuto-wakusei/pi-web-ChineseTranslation/blob/main/docs/modules/auth-models.md#mcp-认证)。
96
106
 
97
107
  <a id="reverse-proxy-deployment-paths"></a>
98
108
  ## 反向代理部署前缀
99
109
 
100
110
  PI WEB 不需要专门的 URL 前缀配置。同一发布产物可用于 `/`、`/ai/`、`/test/ai/`。代理必须先把不带尾斜线的前缀重定向到带斜线地址,再剥离前缀转发同一认证范围的 HTTP 与 WebSocket。页面相对资源和 PWA 路径依赖这一契约,详见[反向代理安装指南](https://pi-web.dev/install#reverse-proxy-prefix)。
101
111
 
112
+ 管理换票入口遵循同一前缀:`entryPath` 由平台用带尾斜线的外部应用 base URL 解析一次,不能相对 POST 地址解析。旧 `?embed=management&token=` 长链接仍可能触发 nginx `414`;这是请求行限制,与 `client_max_body_size` 无关,推荐平台改接换票,单独升级不会自动改写旧链接(管理员可临时调高反向代理请求行限制缓解)。见[短入口换票](https://github.com/nayuto-wakusei/pi-web-ChineseTranslation/blob/main/docs/admin/management-audit.md#management-entry-tickets)。
113
+
102
114
  <a id="precedence"></a>
103
115
  <a id="precedence-and-reloads"></a>
104
- ## 优先级与生效条件
116
+ ## Precedence and reloads
117
+
118
+ Highest priority first, for layers applicable to that setting:
119
+
120
+ ```text
121
+ enforced environment > browser-local choice > supported project override
122
+ > writable global config > deployment defaults > built-in defaults
123
+ ```
124
+
125
+ Browser-local choices apply to colour theme, file icon theme, and localization. Project config participates only for supported keys. Environment policy wins over both; it is not a default that projects or browsers can override.
126
+
127
+ Each declared setting replaces its lower-priority value, including arrays and dictionaries; there is no general recursive merge. The schema declares these namespace leaves: `uploads.defaultFolder`, `attachments.defaultFolder`, `sessionArchive.directory`, `pathAccess.allowedPaths`, and `defaultLocalization.language`, `.formatLocale`, `.timeZone`, `.hourCycle`. Each inherits independently across deployment defaults, writable config, applicable project config, and environment policy. An empty namespace `{}` contributes no overrides; missing leaves inherit.
128
+
129
+ Each plugin's `enabled` and each top-level `plugins.<id>.settings.<key>` also resolve independently. An individual array/dictionary-valued setting still replaces entirely, including an explicit empty value. `defaultTheme` remains one atomic, coherent preference; `shortcuts` and deprecated `agent` are also atomic. JSON depth alone does not define a setting. Path additions have the separate composition rules below.
130
+
131
+ ### Environment policy
132
+
133
+ Every nondeprecated runtime core config key has an environment override named `PI_WEB_<SNAKE_CASE_KEY>`. Strings and numbers use scalar values; object/array settings use JSON. See the matrix below for names. Offline plugin recovery state is managed separately by the recovery CLI. For example:
134
+
135
+ ```sh
136
+ PI_WEB_INSTALLATION_NAME='Build lab'
137
+ PI_WEB_BASE_PATHS='["/opt/reference"]'
138
+ PI_WEB_UPLOADS='{"defaultFolder":"manual/uploads"}'
139
+ PI_WEB_DEFAULT_LOCALIZATION='{"timeZone":"UTC"}'
140
+ PI_WEB_PLUGINS='{"git":{"settings":{"workspaceDiscoveryHooks":false}}}'
141
+ ```
142
+
143
+ Container JSON variables keep their existing names: `PI_WEB_UPLOADS`, `PI_WEB_ATTACHMENTS`, `PI_WEB_SESSION_NAMING`, `PI_WEB_SESSION_ARCHIVE`, `PI_WEB_PATH_ACCESS`, and `PI_WEB_DEFAULT_LOCALIZATION`. Only supplied namespace leaves are enforced, including `pathAccess.allowedPaths` and plugin leaves; `{}` enforces none. Atomic settings lock the whole value. `PI_WEB_PORT` retains the `PORT` fallback; a nonempty `PI_WEB_SESSION_ARCHIVE_DIR` alias wins over `PI_WEB_SESSION_ARCHIVE` JSON. `PI_WEB_ALLOWED_HOSTS` accepts JSON `true` or a string array, plus legacy `true`/comma-separated hosts. Allowing all hosts is unsafe for an exposed development server; prefer an explicit list.
144
+
145
+ Boolean environment inputs accept only `true`/`false` (case-insensitive) or `1`/`0`. Invalid supplied policy values fail startup instead of being ignored. Unknown fields in declared core containers are errors, including misspellings in `pathAccess`, `uploads`, and `attachments`. Plugin environment envelopes accept only `enabled` and `settings`; keys inside `settings` remain plugin-owned. Unset a variable to remove enforcement; empty strings are not a general reset syntax. Legacy empty host, port, allowed-hosts, upload-limit, and archive-directory overrides remain ignored. Runtime-only variables have their own contracts; see offline flags below. Markers such as `PI_WEB_SESSION` are not config policy.
146
+
147
+ ### Sources, saves, and resets
148
+
149
+ Settings identifies inherited sources and environment-enforced values. Enforced controls are read-only. Where a saved override has a **Reset saved override** control, resetting deletes that override and exposes the next applicable layer; it does not copy today's effective default into the writable file. Loading deployment defaults keeps them separate from writable overrides. Theme and localization enforcement temporarily masks saved browser choices without erasing them; removing policy restores those choices.
150
+
151
+ The config API returns `config` (writable overrides), `effectiveConfig`, optional `defaultsPath` / `defaultsConfig`, `configSources` (JSON-pointer identifiers mapped to `defaults`, `config`, or the controlling environment variable), and `enforcedSettings` (identifiers mapped to environment variables). Source and enforcement pointers address declared leaves, such as `/defaultLocalization/language` and `/pathAccess/allowedPaths`; the archive alias reports `/sessionArchive/directory`. Missing source entries inherit built-in/feature defaults; this is machine metadata, not browser/project provenance.
152
+
153
+ Use `PATCH /api/config` for explicit updates, or `PATCH /api/machines/<machineId>/config` for selected-machine-supported keys (`local` selects the gateway machine). The body has optional `set` (config-shaped values) and `unset` (JSON-pointer strings):
154
+
155
+ ```json
156
+ {
157
+ "set": { "quietMode": true },
158
+ "unset": ["/defaultTheme", "/defaultLocalization/timeZone", "/plugins/git/settings/workspaceDiscoveryHooks"]
159
+ }
160
+ ```
161
+
162
+ `unset` accepts known leaf pointers such as `/defaultLocalization/language`, `/uploads/defaultFolder`, and `/pathAccess/allowedPaths`, as well as container resets such as `/defaultLocalization`. Atomic settings reset at their top-level pointer, such as `/defaultTheme`. UI container-group resets remove only unlocked saved leaves in one request. An API container reset overlapping any enforced leaf is rejected, preserving saved choices hidden by enforcement. Escape `~` as `~0` and `/` as `~1` within pointer segments: a plugin setting named `a/b~c` uses `/plugins/git/settings/a~1b~0c`. Conflicting set/unset targets and changes to enforced settings are rejected. There is no null reset sentinel: `null` retains its schema-defined meaning, such as disabling a shortcut. Existing `PUT` endpoints remain available. They retain replacement semantics for unenforced settings, but omitted enforced settings preserve their hidden saved values. Supplying a different saved value for an enforced setting is rejected; unchanged saved values may round-trip. This protection also applies when no saved override exists: a legacy save cannot create one for an enforced setting. Federated protection requires the target to report enforcement metadata; upgrade older peers before relying on it.
163
+
164
+ ### When changes apply
165
+
166
+ Process restarts depend on the key:
167
+
168
+ - `host` / `port`: restart the gateway web/API service or process.
169
+ - `maxUploadBytes`: restart both the web/API process and the session daemon on that machine.
170
+ - `spawnSessions` / `subsessions` / `sessionMessages` / `askUser` / `extensionDialogsTimeoutMs` / `environmentFacts`: restart the session daemon on that machine.
171
+ - `sessionArchive.directory`: restart the session daemon on that machine; changes only the destination for new archives.
172
+ - Session naming: the removable Pi package reads its file for each new title; old core settings migrate on config load. See [Session naming](#session-naming).
173
+ - `pathAccess`: applies on the next request; existing file views may need a browser refresh.
174
+ - `uploads.defaultFolder`: applies to newly opened Files upload dialogs and new direct drag/drop batches after config/workspace refresh.
175
+ - `attachments.defaultFolder`: applies to new prompt-attachment saves after config/workspace refresh.
176
+ - `plugins`: browser-only changes need a tab reload. Server-backed enablement, settings, or package changes require a manual session-daemon restart, then a tab reload. See [Project plugin settings](#project-plugin-settings).
177
+ - `serverPlugins.safeStart`: persistent offline recovery state applied before server-plugin discovery/import on the next sessiond start; use the `pi-web plugins safe-start ...` CLI rather than hand-editing it.
178
+ - Pi package changes: use `/reload` in each idle session for ordinary extensions, skills, templates, and themes. Packages containing server plugins require a manual session-daemon restart and browser reload. Global provider registration or connection changes also require a daemon restart; model-list-only updates do not. See [Pi extension provider baseline](#pi-extension-provider-baseline).
179
+ - `shortcuts` / `defaultStreamingBehavior` / `quietMode`: saved settings apply in the browser after config refresh/save; no service restart.
180
+ - `defaultTheme`: applies after settings save or browser config refresh when the browser inherits it or environment policy enforces it; no service restart.
181
+
182
+ ### Localization defaults
183
+
184
+ Set `defaultLocalization` in the gateway's global config to supply browser defaults:
185
+
186
+ ```json
187
+ { "defaultLocalization": { "language": "en", "formatLocale": "de-DE", "timeZone": "Europe/Berlin", "hourCycle": "h23" } }
188
+ ```
189
+
190
+ All fields are optional and independent. `language` requests installed translations, with English fallback. `formatLocale` is a standard locale tag. `timeZone` is validated by native `Intl`; omitted zones use the device zone. `hourCycle` accepts `h11`, `h12`, `h23`, or `h24`; omission uses regional conventions. In this fork, omitted UI language uses the bundled zh-cn language preference (English when that plugin is disabled); omitted format locale uses the browser language. No currency or zone is inferred from language. Development pseudo locales cannot be configured here.
191
+
192
+ Saved browser preferences override defaults independently per field unless that field is enforced by `PI_WEB_DEFAULT_LOCALIZATION`. Settings → General → Language and region saves only explicit browser-local choices, not this server setting. Empty Regional format and Time zone fields inherit the configured gateway value, if any, otherwise the browser’s value; the source and value are shown below each field. Clear a field and apply to resume inheritance for that field, or choose **Use defaults** to clear all local overrides. Existing saved snapshots remain explicit overrides until cleared. Reload the tab after changing config defaults; no service restart is needed. This key is gateway-only, not selected-machine or project-local. Omitted fields inherit lower layers; `{}` adds no overrides, so use reset/unset to remove saved fields.
193
+
194
+ ### Streaming send default
195
+
196
+ In **Settings → Keyboard shortcuts → Send while agent is running**, choose **Steer** (the default) to deliver input before the next model call, or **Follow-up** to queue it until the current response finishes. This changes only the keyboard shortcut, not the chat buttons. During compaction, messages queue as follow-ups.
197
+
198
+ The global gateway key is `defaultStreamingBehavior`: `steer` or `followUp`. It is not project-local and needs no service restart.
199
+
200
+ ### Quiet mode
201
+
202
+ Quiet mode collapses agent activity in the transcript. Tool calls, thinking, results, and skill loads stay in the conversation but start inside one expandable **live events** / **events** summary line instead of being expanded while the agent works. Conversation text, question forms, and tool output images are unchanged.
105
203
 
106
- 机器运行配置顺序:内置默认值 → 全局配置 → 环境覆盖。支持的项目键之后应用,上传与附件目录以项目值覆盖,允许路径列表合并去重。
204
+ Turn it on in **Settings → General → Chat display → Quiet mode**. It is off by default. The global gateway key is `quietMode`; it is not project-local and needs no service restart. Devices share the gateway setting, so it is not a per-browser preference.
205
+
206
+ ```json
207
+ { "quietMode": true }
208
+ ```
209
+
210
+
211
+ ## Machine name
212
+
213
+ Set `installationName` in the machine's config, enforce it with `PI_WEB_INSTALLATION_NAME`, or edit **Settings → General → Machine name** for the selected machine:
214
+
215
+ ```json
216
+ { "installationName": "Build lab" }
217
+ ```
107
218
 
108
- 环境覆盖包含 `PI_WEB_HOST`、`PI_WEB_PORT`/`PORT`、`PI_WEB_ALLOWED_HOSTS`、`PI_WEB_MAX_UPLOAD_BYTES`、`PI_CODING_AGENT_DIR`、`PI_CODING_AGENT_SESSION_DIR`、`PI_WEB_SPAWN_SESSIONS`、`PI_WEB_SUBSESSIONS`、`PI_WEB_ASK_USER`、`PI_WEB_ENVIRONMENT_FACTS`。本地保留的旧 agent/companion 输入另见下文。
219
+ The name replaces the local machine's label and remains visible when there is only one machine, in browsers and installed PWAs. Empty or unset names use **PI-WEB**. Names are trimmed and limited to 120 characters without control characters. This setting is machine-global, not project-local, and needs no restart; reload other open windows to refresh their labels.
109
220
 
110
- - host/port:重启 Web/API。
111
- - 上传大小:目标机器 Web/API 与 daemon 都重启。
112
- - 会话工具、扩展对话框超时、环境事实:重启 daemon。
113
- - 路径访问:下次请求生效;已有视图可需刷新。
114
- - 上传/附件目录:配置或工作区刷新后的新批次生效。
115
- - 纯浏览器插件:刷新浏览器。影响 `serverModule` 的启用、设置、包来源或版本:手动重启目标 daemon,再刷新。
116
- - `serverPlugins.safeStart`:下次 daemon 启动前、发现/导入插件前生效,通过恢复 CLI 管理。
117
- - Pi 普通资源变更:每个空闲会话执行 `/reload`。服务端插件或全局提供器定义/连接变更仍需手动重启 daemon;已知提供器仅模型列表刷新无需重启。
118
- - 快捷键:保存或配置刷新后生效。
119
- - `workbenchIntegration`、管理特权配置或跨进程审计配置:Web/API 与 daemon 保持一致并重启;签名授权仍必须显式允许对应权限。
221
+ Federated gateways use the remote machine's reported name unless you set a **Local display name**. Clear that field to use the remote machine's name again. Existing registry names remain overrides. An unavailable or older remote without a reported name uses **PI-WEB**; a previously discovered name is retained while the gateway process stays running.
222
+
223
+ The PWA manifest uses the gateway's installation name, with **(dev)** appended for development deployments. Changing the selected remote machine does not rename the installed gateway app. Browsers control when existing launcher names update; reinstall the PWA if its old name remains.
224
+
225
+
226
+ ### File icon theme
227
+
228
+ **Settings → General → File icons** selects a complete icon set for Files and Git in this browser, independently of the colour theme. Git uses filename colours and status labels to distinguish changes without tinting the file-type artwork. Material is included locally and selected by default. Its file-type shapes render in one muted grey supplied by the active colour theme, without separate light/dark assets. Choose generic file icons to disable themed icons, or reset the browser choice to return to Material. Unavailable saved themes temporarily fall back to Material without erasing the choice. If Material is unavailable too, Files uses generic icons. Directory expand/collapse indicators remain unchanged.
229
+
230
+ This is a browser-only preference, with no gateway default, project setting, or environment override. See [file icon contributions](plugins.md#file-icon-themes) for additional icon sets.
231
+
232
+
233
+ ### Path composition
234
+
235
+ `basePaths` supplies machine-wide roots. Without environment enforcement, `pathAccess.allowedPaths` adds global and supported project roots, deduplicated after base roots. `PI_WEB_PATH_ACCESS` with `allowedPaths` replaces those additions, not the base roots. `PI_WEB_UPLOADS`, `PI_WEB_ATTACHMENTS`, and `PI_WEB_PLUGINS` enforce supplied leaves over project values.
236
+
237
+
238
+ 管理集成、管理权限及跨进程审计配置变化仍要求 Web/API 与 daemon 对齐并重启;分层配置不改变普通项目凭据与管理身份隔离。
120
239
 
121
240
  <a id="global-config-example"></a>
122
241
  ## 全局配置示例
@@ -134,6 +253,7 @@ PI WEB 不需要专门的 URL 前缀配置。同一发布产物可用于 `/`、`
134
253
  },
135
254
  "spawnSessions": true,
136
255
  "subsessions": true,
256
+ "sessionMessages": true,
137
257
  "askUser": true,
138
258
  "extensionDialogsTimeoutMs": 300000,
139
259
  "environmentFacts": true,
@@ -161,12 +281,12 @@ PI WEB 不需要专门的 URL 前缀配置。同一发布产物可用于 `/`、`
161
281
  <a id="project-plugin-settings"></a>
162
282
  ### 项目插件设置
163
283
 
164
- 支持项目设置的服务端插件可读取注册项目根目录的 `.pi-web/config.json` 中 `plugins.<id>.settings`,不是各 worktree 独立配置。项目顶层设置键覆盖机器值,嵌套对象整体替换而非深合并;`enabled` 仍只属于机器配置,项目声明会被拒绝。修改服务端插件的全局或项目设置后,手动重启目标 daemon。
284
+ 支持项目设置的服务端插件可读取注册项目根目录的 `.pi-web/config.json` 中 `plugins.<id>.settings`,不是各 worktree 独立配置。未被环境强制的项目顶层设置键覆盖机器值,嵌套对象整体替换而非深合并;`enabled` 仍只属于机器配置,项目声明会被拒绝。修改服务端插件的全局或项目设置后,手动重启目标 daemon。
165
285
 
166
286
  <a id="git-worktree-discovery-hooks"></a>
167
287
  ### Git 工作树发现通知
168
288
 
169
- Git 插件的 `plugins.git.settings.workspaceDiscoveryHooks` 为布尔值,默认 `true`,项目值覆盖机器值。支持命名 hooks 的 Git(2.54+)可安装自身命名通知,保留已有 hooks 且不修改 `core.hooksPath`;不支持时仍可按需刷新列表。通知仅提示宿主重新查询当前提供器,不直接注册工作区。修改后重启 daemon,浏览器刷新不能更新 hook 状态。
289
+ Git 插件的 `plugins.git.settings.workspaceDiscoveryHooks` 为布尔值,默认 `true`,未被环境强制时项目值覆盖机器值。支持命名 hooks 的 Git(2.54+)可安装自身命名通知,保留已有 hooks 且不修改 `core.hooksPath`;不支持时仍可按需刷新列表。通知仅提示宿主重新查询当前提供器,不直接注册工作区。修改后重启 daemon,浏览器刷新不能更新 hook 状态。
170
290
 
171
291
  <a id="git-instance-namespace"></a>
172
292
 
@@ -209,32 +329,36 @@ worktree_path="$1"
209
329
  <a id="configuration-matrix"></a>
210
330
  ## 配置矩阵
211
331
 
212
- “机器”为所选机器;“网关”为当前浏览器连接的机器。`—` 为无配置文件键的纯环境变量。
332
+ “机器”为所选机器;“网关”为当前浏览器连接的机器。环境强制始终优先于下表的项目或浏览器参与。`—` 为无配置文件键的纯环境变量。
213
333
 
214
334
  | 配置 | JSON 键 | 环境变量 | 作用域 | 项目行为 / 生效 |
215
335
  | --- | --- | --- | --- | --- |
336
+ | 机器名称 | `installationName` | `PI_WEB_INSTALLATION_NAME` | 机器 | 刷新配置;无项目覆盖 |
337
+ | 基础路径根 | `basePaths` | `PI_WEB_BASE_PATHS` | 机器 | 下次文件请求 |
338
+ | 语言区域默认值 | `defaultLocalization` | `PI_WEB_DEFAULT_LOCALIZATION` | 网关 | 刷新浏览器;字段独立 |
339
+ | 安静模式 | `quietMode` | `PI_WEB_QUIET_MODE` | 网关 | 默认 false;保存/刷新 |
216
340
  | 监听地址 | `host` | `PI_WEB_HOST` | 网关 | 无项目键;重启 Web/API |
217
341
  | 监听端口 | `port` | `PI_WEB_PORT`、`PORT` | 网关 | 无项目键;重启 Web/API |
218
342
  | 开发允许主机 | `allowedHosts` | `PI_WEB_ALLOWED_HOSTS` | 网关开发服务 | 重启开发 Web/UI |
219
- | 外部路径根 | `pathAccess.allowedPaths` | — | 机器 + 项目 | 全局后加项目,去重;下次文件请求 |
220
- | 上传目录 | `uploads.defaultFolder` | — | 机器 + 项目 | 项目覆盖;新对话框/拖放批次 |
221
- | 附件目录 | `attachments.defaultFolder` | — | 机器 + 项目 | 项目覆盖;新附件保存 |
343
+ | 外部路径根 | `pathAccess.allowedPaths` | `PI_WEB_PATH_ACCESS` | 机器 + 项目 | basePaths 后加全局/项目;环境替换添加项;下次文件请求 |
344
+ | 上传目录 | `uploads.defaultFolder` | `PI_WEB_UPLOADS` | 机器 + 项目 | 项目覆盖;新对话框/拖放批次 |
345
+ | 附件目录 | `attachments.defaultFolder` | `PI_WEB_ATTACHMENTS` | 机器 + 项目 | 项目覆盖;新附件保存 |
222
346
  | 请求大小 | `maxUploadBytes` | `PI_WEB_MAX_UPLOAD_BYTES` | 机器 | Web/API 与 daemon 重启 |
223
347
  | 独立会话 | `spawnSessions` | `PI_WEB_SPAWN_SESSIONS` | daemon | 重启 daemon |
224
348
  | 跟踪子会话 | `subsessions` | `PI_WEB_SUBSESSIONS` | daemon | 也需要 `spawnSessions`;重启 |
349
+ | 会话消息 | `sessionMessages` | `PI_WEB_SESSION_MESSAGES` | daemon | 独立于 spawn 开关;重启 |
225
350
  | 问题表单 | `askUser` | `PI_WEB_ASK_USER` | daemon | 重启 daemon |
226
- | 扩展对话框超时 | `extensionDialogsTimeoutMs` | — | daemon | 重启 daemon |
351
+ | 扩展对话框超时 | `extensionDialogsTimeoutMs` | `PI_WEB_EXTENSION_DIALOGS_TIMEOUT_MS` | daemon | 重启 daemon |
227
352
  | 环境事实 | `environmentFacts` | `PI_WEB_ENVIRONMENT_FACTS` | daemon | 重启 daemon |
228
- | 插件期望状态 | `plugins.<id>.enabled/settings` | — | 机器 | 浏览器刷新;服务端重启后刷新 |
229
- | 项目插件设置 | `plugins.<id>.settings` | — | 机器 + 项目 | 支持的服务端插件顶层覆盖;重启 daemon |
230
- | Git 发现通知 | `plugins.git.settings.workspaceDiscoveryHooks` | — | 机器 + 项目 | 默认 `true`;重启 daemon |
353
+ | 插件期望状态 | `plugins.<id>.enabled/settings` | `PI_WEB_PLUGINS` | 机器 | 浏览器刷新;服务端重启后刷新 |
354
+ | 项目插件设置 | `plugins.<id>.settings` | `PI_WEB_PLUGINS` | 机器 + 项目 | 支持的服务端插件顶层覆盖;重启 daemon |
355
+ | Git 发现通知 | `plugins.git.settings.workspaceDiscoveryHooks` | `PI_WEB_PLUGINS` | 机器 + 项目 | 默认 `true`;重启 daemon |
231
356
  | Git 通知 namespace | — | `PI_WEB_INSTANCE_NAMESPACE` | daemon | 默认空;开发为 `dev`;重启 daemon |
232
357
  | 插件恢复 | `serverPlugins.safeStart` | — | 机器离线恢复 | 下次 daemon 启动前应用 |
233
- | 快捷键 | `shortcuts.<actionId>` | — | 网关 | 保存/刷新配置 |
234
- | 默认主题 | `defaultTheme.themeId/auto` | — | 网关 | 浏览器覆盖优先;保存/刷新配置 |
235
- | 流式发送默认方式 | `defaultStreamingBehavior` | — | 网关 | `steer` 或 `followUp`;默认 `steer` |
236
- | 会话命名 | `sessionNaming.model/maxTokens/thinkingLevel/timeoutMs` | — | 机器 | 后续命名请求生效;无项目覆盖 |
237
- | 归档目的地 | `sessionArchive.directory` | `PI_WEB_SESSION_ARCHIVE_DIR` | daemon | 重启;不迁移既有归档或索引 |
358
+ | 快捷键 | `shortcuts.<actionId>` | `PI_WEB_SHORTCUTS` | 网关 | 保存/刷新配置 |
359
+ | 默认主题 | `defaultTheme.themeId/auto` | `PI_WEB_DEFAULT_THEME` | 网关 | 浏览器覆盖优先;保存/刷新配置 |
360
+ | 流式发送默认方式 | `defaultStreamingBehavior` | `PI_WEB_DEFAULT_STREAMING_BEHAVIOR` | 网关 | `steer` 或 `followUp`;默认 `steer` |
361
+ | 归档目的地 | `sessionArchive.directory` | `PI_WEB_SESSION_ARCHIVE`、`PI_WEB_SESSION_ARCHIVE_DIR` | 所选机器 daemon | 重启;不迁移既有归档或索引 |
238
362
  | 项目版本 | `version` | — | 项目 | 存在时必须为 `1` |
239
363
  | 配置文件 | — | `PI_WEB_CONFIG`、`XDG_CONFIG_HOME` | 进程 | 改环境后重启;不是项目配置 |
240
364
  | 托管数据 | — | `PI_WEB_DATA_DIR` | Web/API + daemon | 两进程对齐重启;不自动迁移数据 |
@@ -287,6 +411,8 @@ ES 错误记日志,不停止管理会话。有界内存队列重试,并在
287
411
 
288
412
  默认 request/capability 超时 10000/30000ms、Skill bundle/file 上限 10485760/2097152 字节、文件数 200。适配器把一次性管理 token 换成私有 Agent Session,仅加载授权固定资源快照;并发同 entry token 复用该 Agent Session。
289
413
 
414
+ 平台的浏览器入口同样先换票:应用相对 `POST api/management-entry-tickets`(JSON 正文 `{"token":"..."}`)返回 `201` 与 `{entryPath, expiresAt}`,不设置浏览器 Cookie;`GET management-entry?ticket=...` 兑换后写管理 HttpOnly Cookie 并 `303` 到 `./?embed=management`。票据一次性、最多 60 秒,最多 256 个待用票据且序列化上下文合计 8 MiB;`POST` 正文 1 MiB、编码上下文 1 MiB(`413`),daemon 内部 HTTP 头限额 1 MiB + 64 KiB,均不提高对外反向代理的请求行限制。换票响应使用 `no-store`,兑换响应附加 `no-referrer`。细节见[短入口换票](https://github.com/nayuto-wakusei/pi-web-ChineseTranslation/blob/main/docs/admin/management-audit.md#management-entry-tickets)。
415
+
290
416
  受控工具为 `icnoc_search_capabilities`、`icnoc_call_capability`、`workbench_search_knowledge`、`workbench_retrieve_knowledge`、`workbench_retrieve_bookstack`、管理文件工具与 Bubblewrap 隔离的 `python`。知识访问经后端短期一次性 token,PI WEB 不配置 RAGFlow/BookStack 服务凭据,工具不接受 tenant/dataset ID。来源链接不是连接配置。全局开关允许时再提供 spawn/跟踪子会话/ask_user,子会话继承管理上下文及显式拒绝。
291
417
 
292
418
  Python 与受限 bash 默认无网络,只绑定管理工作区及必要的只读运行库;bash 可在该工作区沙盒内执行命令,不默认暴露其他宿主目录。通用 MCP、HTTP、Web 搜索、宿主 shell 和交互终端默认拒绝。签名 token 的 `privileged.bash`/`privileged.network` 仅在机器 `managementEmbed.allowPrivileged: true`(默认 false)时生效;仅 tools.allow 不足以获得特权。单项授权仍采用受限模式,tools.allow/deny 继续有效:仅 bash 授权可提供工作区可写、其他宿主目录只读的沙盒;仅网络授权可启用 http/webfetch/websearch 并移除管理 Python/bash/terminal-command-runs 的 `--unshare-net`,但不增加宿主文件可见性。
@@ -332,7 +458,7 @@ Skill bundle 只从 MCP origin 下载,校验授权固定版本与 manifest,
332
458
  <a id="external-path-access"></a>
333
459
  ### 外部路径访问
334
460
 
335
- 默认相对读取只在工作区内,绝对路径拒绝。`pathAccess.allowedPaths` 允许浏览器文件面板和绝对 `@` 补全列出/读取指定外部根。
461
+ 默认相对读取只在工作区内,绝对路径拒绝。`basePaths` 与 `pathAccess.allowedPaths` 的有效根允许浏览器文件面板和绝对 `@` 补全列出/读取指定外部根。
336
462
 
337
463
  允许 Unix 绝对路径 `/opt/reference`、家目录相对 `~/SDKs`、Windows 宿主上的 `C:\Users\dev\SDKs`。展开 `~`,通过 `realpath` 规范化根,要求存在目录,拒绝符号链接逃逸。不支持相对根。设置保存在所选机器,网关网络设置仍在网关。
338
464
 
@@ -341,7 +467,7 @@ Skill bundle 只从 MCP origin 下载,校验授权固定版本与 manifest,
341
467
  <a id="manual-upload-defaults"></a>
342
468
  ### 手动上传默认目录
343
469
 
344
- 文件面板支持多文件:直接拖放立即上传到工作区有效目录;“上传”按钮打开审核对话框,可修改目录和选项。默认 `.pi-web/uploads`,项目 `uploads.defaultFolder` 覆盖机器默认值。
470
+ 文件面板支持多文件:直接拖放立即上传到工作区有效目录;“上传”按钮打开审核对话框,可修改目录和选项。默认 `.pi-web/uploads`,未被环境强制时,项目 `uploads.defaultFolder` 覆盖机器默认值。
345
471
 
346
472
  目录非空且必须相对工作区;重复分隔符和反斜线规范化为 `/`,绝对路径与 `..` 逃逸拒绝。仅审核对话框允许清空目录,把该批次上传到工作区根。默认创建父目录,不覆盖已有文件;审核可显式覆盖,直接拖放从不覆盖。进度展示完成、冲突和错误。联邦使用目标机器/项目目录,大小限制由服务上传的机器控制。
347
473
 
@@ -395,8 +521,8 @@ daemon 日志记录忽略的配置变更与模型列表应用,不输出提供
395
521
  - 每次最多 **60 秒**,超时/不可达五分钟后**只重试一次**;HTTP 错误留到下次计划。
396
522
  - 失败不清空目录,保留最后成功结果并记日志;daemon 关闭会中止在途刷新。
397
523
  - 下次请求模型列表才见新目录,已打开选择器可需重新打开。
398
- - 设置 daemon 环境 `PI_WEB_OFFLINE` 或 `PI_OFFLINE` 后重启,完全禁止目录联网,包括登录后刷新;读取对应存储已有目录。
399
- - `PI_WEB_SKIP_VERSION_CHECK`/`PI_SKIP_VERSION_CHECK` 只抑制版本检查,不禁止目录刷新。以上离线/跳过标记任意非空值(包括字符串 `0`、`false`)都启用,清空或移除才关闭。
524
+ - 设置 daemon 环境 `PI_WEB_OFFLINE=true` 或 `PI_OFFLINE=true` 后重启,完全禁止目录联网,包括登录后刷新;读取对应存储已有目录。
525
+ - `PI_WEB_SKIP_VERSION_CHECK`/`PI_SKIP_VERSION_CHECK` 只抑制版本检查,不禁止目录刷新。离线/跳过标记只接受 `true`/`false`(大小写不敏感)或 `1`/`0`;空值或其他值导致启动失败。任一离线标记为真即禁止目录刷新;恢复时将相关标记设为假或移除。
400
526
 
401
527
  <a id="project-trust-for-project-local-resources"></a>
402
528
  ### 项目信任
@@ -411,13 +537,25 @@ daemon 日志记录忽略的配置变更与模型列表应用,不输出提供
411
537
  <a id="session-tools"></a>
412
538
  ### 会话守护进程工具
413
539
 
414
- `spawnSessions` 默认 `true`,提供 `spawn_session`,在同一项目其他工作区发起独立会话,发起后不向父会话回传结果。`subsessions` 默认 `true`,同时要求 `spawnSessions`,提供跟踪子会话工具。子会话始终使用父 cwd,`spawn_subsession` 没有 `cwd`;其他工作区使用独立 `spawn_session`。
540
+ `spawnSessions` 默认 `true`,提供 `spawn_session`,在同一项目工作区创建独立会话,不自动返回结果或授予管理权限。`subsessions` 默认 `true`,同时要求 `spawnSessions`,提供 `spawn_subsession`、`list_subsessions`、`check_subsession`、`read_subsession`、`yield_to_subsessions`、`manage_subsession`。跟踪子会话固定父 cwd,`spawn_subsession` 不接受 `cwd`;其他工作区使用独立会话。
541
+
542
+ 跟踪子会话运行结束只向父会话发送 idle/error 通知,不自动交付最终答案,也不证明任务完成。忙碌父会话在下个安全边界收到通知;父会话可继续工作,或用 `yield_to_subsessions` 等待新通知。已收到的通知不自动重复,详细状态和输出通过 check/read 显式检查。
543
+
544
+ `manage_subsession` 仅控制直接子会话:`stop` 中断当前运行,`resume` 继续空闲会话,`archive` 归档空闲子会话。可选 `prompt` 只用于 resume;忙碌子会话须先 stop 再归档。停止不冻结进程或撤销已完成写入,不授予控制无关会话或孙会话的权限。
545
+
546
+ `sessionMessages` 默认 `true`,独立于 spawn 开关,提供 `send_session_message`;设置为 `false` 或 `PI_WEB_SESSION_MESSAGES=0` 并重启 daemon 后移除工具及投递能力。目标必须是同机器、同注册项目中的精确已知会话 ID;可跨工作区,不能发送到归档会话。空闲目标启动新运行,忙碌目标在安全代理边界收到 steering,不中断执行中的工具,压缩或独立 shell 结束后再投递。接受不代表已读或得到回答;队列不是耐久邮箱,停止或关闭会话可能丢弃待处理消息。发送不创建父子关系、检查/控制权限或结果订阅。运行时提供发送者 ID,子会话还获得父 ID,但身份不强制协作流程或额外权限。普通、受限管理与完整特权管理运行时均可提供该工具;管理目标必须属于相同管理作用域,受限模式仍遵守管理工具授权;目标解析拒绝跨普通/管理边界通信。
547
+
548
+ 两种 spawn 支持精确 `provider/model-id`;省略模型继承父模型,思考级别继承并限制到目标模型能力。`#provider/model-id` 引用不自动改变当前会话。
549
+
550
+ #### 人工介入
551
+
552
+ 代理先在对话中写明问题,再调用 `request_human_intervention`(简短 `reason`)标记“需要输入”并结束当前运行。此工具不受 spawn、消息或问题表单开关控制,也用于审批或 PI WEB 之外的操作;仅写问题文本不设置指示器。静态空心环汇总到工作区、项目和机器,含折叠子会话组;未读状态独立。
415
553
 
416
- 跟踪子会话完成会自动通知/唤醒空闲父会话,无需轮询。父会话可继续独立工作,或在 join 点单独调用 `yield_to_subsessions` 作为批次最后动作:仍有工作则结束当前代理运行,没有工作则明确报告且不结束。`list_subsessions`、`check_subsession`、`read_subsession` 用于有意检查,不更改控制流;工作期间隐藏部分输出,完成后输出可用。过长完成结果不重复截断进上下文,指引使用 `check_subsession`。
554
+ 任何新代理运行都会清除代理请求的介入状态;只排队消息、阅读会话或浏览历史不会清除。仍需帮助时应重新请求。该状态随会话持久化并跨 daemon 重启保留,不是分支专属表单。新 `ask_user` 表单自动设置相同状态;待答扩展对话框也显示“需要输入”,但保留独立取消/超时生命周期,运行时对话框不跨 daemon 重启恢复。升级后重启 daemon 激活工具及跟踪。
417
555
 
418
- 两种 spawn 都支持精确 `provider/model-id` 的 `model`;未知/错误格式拒绝。省略时继承父模型,思考级别也继承并限制到模型能力。`#provider/model-id` 引用表达用户模型选择,不自动改变当前会话。
556
+ #### 问题表单
419
557
 
420
- `askUser` 默认 `true`,可在 **设置 → 会话守护进程** 切换。问题表单支持 1–20 问,每问最多 12 选项、可选多选、始终可自定义文本,可以不回答。普通消息取消开放表单,新表单替代旧表单;daemon 仍活跃时开放表单可跨浏览器/Web 重启保留。修改开关或升级工具实现需重启 daemon。管理生成子会话仍保留原管理上下文及显式工具拒绝。
558
+ `askUser` 默认 `true`,在 **设置 → 会话守护进程** 切换。表单支持 1–20 问,每问最多 12 选项、可选多选及自定义文本,可跳过。表单随对话持久化并跨重启保留,只有活动对话末尾表单开放;回答、跳过或发送消息关闭它,旧表单仍可展开只读查看。历史树回到该问题会重新开放,归档对话只读。修改开关或升级实现需重启 daemon。管理子会话仍保留原管理上下文及显式工具拒绝。
421
559
 
422
560
  <a id="extension-dialogs"></a>
423
561
  ### 扩展对话框
@@ -430,7 +568,7 @@ daemon 日志记录忽略的配置变更与模型列表应用,不输出提供
430
568
  <a id="plugin-config"></a>
431
569
  ### 插件配置与恢复
432
570
 
433
- `plugins` 控制纯浏览器、纯服务端与双入口的期望启用状态和 JSON 设置,不管理 Pi 包安装。默认启用,包可声明 `defaultEnabled: false`,Captain's Log 如此;显式配置覆盖包默认。必需 `pi-web.terminal` 普通启动不能禁用,设置中不可编辑。服务端设置启动时生效,诊断不暴露设置值。
571
+ `plugins` 控制纯浏览器、纯服务端与双入口的期望启用状态和 JSON 设置,不管理 Pi 包安装。默认启用,包可声明 `defaultEnabled: false`;显式配置覆盖包默认。必需 `pi-web.terminal` 普通启动不能禁用,设置中不可编辑。服务端设置启动时生效,诊断不暴露设置值。
434
572
 
435
573
  ```json
436
574
  {
@@ -442,7 +580,7 @@ daemon 日志记录忽略的配置变更与模型列表应用,不输出提供
442
580
  }
443
581
  ```
444
582
 
445
- 保存或换包改变期望状态,不替换运行代码。禁用服务端插件及配套 UI 可在重启前仍运行;包/设置不匹配、健康或兼容异常时暂缓配套 UI。设置区分期望与实际状态,daemon 不可用时实际状态不可用。混合版本不支持,远端插件/Git 可不可用或 404;网关/目标一起升级,重启更新的 Web/API 与目标 daemon 后刷新。不能回退到网关。
583
+ 保存或换包改变期望状态,不替换运行代码。`npm run dev:web` 默认启用进程级 `PI_WEB_DEV_PLUGIN_PAIRING=1`,仅开发启动允许刷新后的 UI 连接仍运行的旧后端;设置为 `0` 恢复严格配对。生产默认严格,后端变化仍需手动重启 daemon。禁用服务端插件及配套 UI 可在重启前仍运行;包/设置不匹配、健康或兼容异常时暂缓配套 UI。设置区分期望与实际状态,daemon 不可用时实际状态不可用。混合版本不支持,远端插件/Git 可不可用或 404;网关/目标一起升级,重启更新的 Web/API 与目标 daemon 后刷新。不能回退到网关。
446
584
 
447
585
  顺序:安装/更新目标包 → 保存期望配置 → 纯浏览器刷新;服务端则手动重启目标 daemon、等就绪、再刷新。重启可能中断活跃会话和所有权。仅浏览器刷新、Web/UI 自动重载、Web/API 重启、Pi `/reload` 都不激活服务端变化。
448
586