@silgrid/pi-web 0.0.1 → 0.0.3

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 (247) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +9 -9
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/required-server-files.js +6 -6
  6. package/.next/required-server-files.json +6 -6
  7. package/.next/server/app/_global-error/page.js +2 -2
  8. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/_global-error.html +1 -1
  10. package/.next/server/app/_global-error.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/.next/server/app/_not-found/page.js +1 -1
  15. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/.next/server/app/_not-found.html +1 -1
  17. package/.next/server/app/_not-found.rsc +2 -2
  18. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  19. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  20. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  21. package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -1
  22. package/.next/server/app/api/agent/[id]/bash-output/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/agent/[id]/bg-tasks/[taskId]/kill/route.js +1 -1
  24. package/.next/server/app/api/agent/[id]/bg-tasks/[taskId]/kill/route_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/agent/[id]/bg-tasks/[taskId]/logs/route.js +1 -1
  26. package/.next/server/app/api/agent/[id]/bg-tasks/[taskId]/logs/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/agent/[id]/bg-tasks/route.js +1 -1
  28. package/.next/server/app/api/agent/[id]/bg-tasks/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/agent/[id]/events/route.js +2 -2
  30. package/.next/server/app/api/agent/[id]/events/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/agent/[id]/lease/route.js +1 -1
  32. package/.next/server/app/api/agent/[id]/lease/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/agent/[id]/route.js +1 -1
  34. package/.next/server/app/api/agent/[id]/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/agent/new/route.js +1 -1
  36. package/.next/server/app/api/agent/new/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/agent/running/route.js +1 -1
  38. package/.next/server/app/api/agent/running/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/app-update/route.js +1 -1
  40. package/.next/server/app/api/app-update/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
  42. package/.next/server/app/api/auth/api-key/[provider]/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/auth/login/[provider]/route.js +2 -2
  44. package/.next/server/app/api/auth/login/[provider]/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
  46. package/.next/server/app/api/auth/logout/[provider]/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/auth/providers/route.js +1 -1
  48. package/.next/server/app/api/auth/providers/route_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/cwd/browse/route.js +1 -1
  50. package/.next/server/app/api/cwd/browse/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/cwd/validate/route.js +1 -1
  52. package/.next/server/app/api/cwd/validate/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/default-cwd/route.js +1 -1
  54. package/.next/server/app/api/default-cwd/route_client-reference-manifest.js +1 -1
  55. package/.next/server/app/api/file-index/route.js +1 -1
  56. package/.next/server/app/api/file-index/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/files/[...path]/route.js +1 -1
  58. package/.next/server/app/api/files/[...path]/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/git/diff/route.js +2 -2
  60. package/.next/server/app/api/git/diff/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/git/status/route.js +1 -1
  62. package/.next/server/app/api/git/status/route_client-reference-manifest.js +1 -1
  63. package/.next/server/app/api/home/route.js +1 -1
  64. package/.next/server/app/api/home/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/models/route.js +1 -1
  66. package/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  67. package/.next/server/app/api/models-config/catalog/route.js +1 -1
  68. package/.next/server/app/api/models-config/catalog/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/models-config/discover/route.js +1 -1
  70. package/.next/server/app/api/models-config/discover/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/models-config/route.js +1 -1
  72. package/.next/server/app/api/models-config/route_client-reference-manifest.js +1 -1
  73. package/.next/server/app/api/models-config/test/route.js +1 -1
  74. package/.next/server/app/api/models-config/test/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/plugins/check/route.js +1 -1
  76. package/.next/server/app/api/plugins/check/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/plugins/route.js +1 -1
  78. package/.next/server/app/api/plugins/route_client-reference-manifest.js +1 -1
  79. package/.next/server/app/api/project-trust/route.js +1 -1
  80. package/.next/server/app/api/project-trust/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/provider-usage/query/route.js +1 -1
  82. package/.next/server/app/api/provider-usage/query/route_client-reference-manifest.js +1 -1
  83. package/.next/server/app/api/push/config/route.js +1 -1
  84. package/.next/server/app/api/push/config/route_client-reference-manifest.js +1 -1
  85. package/.next/server/app/api/push/subscribe/route.js +1 -1
  86. package/.next/server/app/api/push/subscribe/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/sessions/[id]/auto-name/route.js +2 -2
  88. package/.next/server/app/api/sessions/[id]/auto-name/route_client-reference-manifest.js +1 -1
  89. package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
  90. package/.next/server/app/api/sessions/[id]/context/route_client-reference-manifest.js +1 -1
  91. package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -1
  92. package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route.js +1 -1
  94. package/.next/server/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route_client-reference-manifest.js +1 -1
  95. package/.next/server/app/api/sessions/[id]/export/route.js +1 -1
  96. package/.next/server/app/api/sessions/[id]/export/route_client-reference-manifest.js +1 -1
  97. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  98. package/.next/server/app/api/sessions/[id]/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
  100. package/.next/server/app/api/sessions/[id]/state/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/api/sessions/route.js +1 -1
  102. package/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  103. package/.next/server/app/api/sessions/search/route.js +1 -1
  104. package/.next/server/app/api/sessions/search/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/skills/check/route.js +1 -1
  106. package/.next/server/app/api/skills/check/route_client-reference-manifest.js +1 -1
  107. package/.next/server/app/api/skills/install/route.js +1 -1
  108. package/.next/server/app/api/skills/install/route_client-reference-manifest.js +1 -1
  109. package/.next/server/app/api/skills/route.js +1 -1
  110. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/skills/search/route.js +1 -1
  112. package/.next/server/app/api/skills/search/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/skills/update/route.js +1 -1
  114. package/.next/server/app/api/skills/update/route_client-reference-manifest.js +1 -1
  115. package/.next/server/app/api/subagents/[id]/route.js +1 -1
  116. package/.next/server/app/api/subagents/[id]/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/subagents/profiles/route.js +1 -1
  118. package/.next/server/app/api/subagents/profiles/route_client-reference-manifest.js +1 -1
  119. package/.next/server/app/api/subagents/settings/route.js +1 -1
  120. package/.next/server/app/api/subagents/settings/route_client-reference-manifest.js +1 -1
  121. package/.next/server/app/api/terminal/[id]/events/route.js +2 -2
  122. package/.next/server/app/api/terminal/[id]/events/route_client-reference-manifest.js +1 -1
  123. package/.next/server/app/api/terminal/[id]/route.js +1 -1
  124. package/.next/server/app/api/terminal/[id]/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/terminal/route.js +1 -1
  126. package/.next/server/app/api/terminal/route_client-reference-manifest.js +1 -1
  127. package/.next/server/app/api/tools/settings/route.js +1 -1
  128. package/.next/server/app/api/tools/settings/route_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/web-auth/route.js +1 -1
  130. package/.next/server/app/api/web-auth/route_client-reference-manifest.js +1 -1
  131. package/.next/server/app/api/worktrees/route.js +1 -1
  132. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  133. package/.next/server/app/favicon.ico/route.js +1 -1
  134. package/.next/server/app/index.html +1 -1
  135. package/.next/server/app/index.rsc +4 -4
  136. package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  137. package/.next/server/app/index.segments/_full.segment.rsc +4 -4
  138. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  139. package/.next/server/app/login/page.js +1 -1
  140. package/.next/server/app/login/page.js.nft.json +1 -1
  141. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  142. package/.next/server/app/login.html +1 -1
  143. package/.next/server/app/login.rsc +3 -3
  144. package/.next/server/app/login.segments/_full.segment.rsc +3 -3
  145. package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  146. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +3 -3
  147. package/.next/server/app/manifest.webmanifest/route.js +2 -2
  148. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  149. package/.next/server/app/page.js +20 -20
  150. package/.next/server/app/page.js.nft.json +1 -1
  151. package/.next/server/app/page_client-reference-manifest.js +1 -1
  152. package/.next/server/app-paths-manifest.json +9 -9
  153. package/.next/server/chunks/1860.js +1 -1
  154. package/.next/server/chunks/2243.js +1 -1
  155. package/.next/server/chunks/2430.js +4 -4
  156. package/.next/server/chunks/3569.js +1 -1
  157. package/.next/server/chunks/3573.js +1 -0
  158. package/.next/server/chunks/4367.js +1 -1
  159. package/.next/server/chunks/4674.js +1 -1
  160. package/.next/server/chunks/4980.js +1 -1
  161. package/.next/server/chunks/6052.js +1 -1
  162. package/.next/server/chunks/7790.js +1 -1
  163. package/.next/server/middleware-build-manifest.js +1 -1
  164. package/.next/server/middleware.js +3 -3
  165. package/.next/server/next-font-manifest.js +1 -1
  166. package/.next/server/next-font-manifest.json +1 -1
  167. package/.next/server/pages/404.html +1 -1
  168. package/.next/server/pages/500.html +1 -1
  169. package/.next/server/server-reference-manifest.json +1 -1
  170. package/.next/static/chunks/1278-f833cc58666c594d.js +1 -0
  171. package/.next/static/chunks/app/_not-found/{page-4aac80d225231e36.js → page-aa3aeae20bff37cf.js} +1 -1
  172. package/.next/static/chunks/app/layout-f84ae55c3b3367ea.js +1 -0
  173. package/.next/static/chunks/app/login/{page-815e8450466affea.js → page-521a337b5ec4491e.js} +1 -1
  174. package/.next/static/chunks/app/page-59ed8079a95cad1b.js +283 -0
  175. package/.next/static/chunks/{main-app-14e4d7eee2133f9d.js → main-app-a98576891fdd8f60.js} +1 -1
  176. package/.next/static/chunks/next/dist/client/components/builtin/global-error-30078bc26a2476fc.js +1 -0
  177. package/.next/trace +40 -40
  178. package/.next/trace-build +1 -1
  179. package/.next/types/app/api/agent/[id]/bash-output/route.ts +1 -1
  180. package/.next/types/app/api/agent/[id]/bg-tasks/[taskId]/kill/route.ts +1 -1
  181. package/.next/types/app/api/agent/[id]/bg-tasks/[taskId]/logs/route.ts +1 -1
  182. package/.next/types/app/api/agent/[id]/bg-tasks/route.ts +1 -1
  183. package/.next/types/app/api/agent/[id]/events/route.ts +1 -1
  184. package/.next/types/app/api/agent/[id]/lease/route.ts +1 -1
  185. package/.next/types/app/api/agent/[id]/route.ts +1 -1
  186. package/.next/types/app/api/agent/new/route.ts +1 -1
  187. package/.next/types/app/api/agent/running/route.ts +1 -1
  188. package/.next/types/app/api/app-update/route.ts +1 -1
  189. package/.next/types/app/api/auth/api-key/[provider]/route.ts +1 -1
  190. package/.next/types/app/api/auth/login/[provider]/route.ts +1 -1
  191. package/.next/types/app/api/auth/logout/[provider]/route.ts +1 -1
  192. package/.next/types/app/api/auth/providers/route.ts +1 -1
  193. package/.next/types/app/api/cwd/browse/route.ts +1 -1
  194. package/.next/types/app/api/cwd/validate/route.ts +1 -1
  195. package/.next/types/app/api/default-cwd/route.ts +1 -1
  196. package/.next/types/app/api/file-index/route.ts +1 -1
  197. package/.next/types/app/api/files/[...path]/route.ts +1 -1
  198. package/.next/types/app/api/git/diff/route.ts +1 -1
  199. package/.next/types/app/api/git/status/route.ts +1 -1
  200. package/.next/types/app/api/home/route.ts +1 -1
  201. package/.next/types/app/api/models/route.ts +1 -1
  202. package/.next/types/app/api/models-config/catalog/route.ts +1 -1
  203. package/.next/types/app/api/models-config/discover/route.ts +1 -1
  204. package/.next/types/app/api/models-config/route.ts +1 -1
  205. package/.next/types/app/api/models-config/test/route.ts +1 -1
  206. package/.next/types/app/api/plugins/check/route.ts +1 -1
  207. package/.next/types/app/api/plugins/route.ts +1 -1
  208. package/.next/types/app/api/project-trust/route.ts +1 -1
  209. package/.next/types/app/api/provider-usage/query/route.ts +1 -1
  210. package/.next/types/app/api/push/config/route.ts +1 -1
  211. package/.next/types/app/api/push/subscribe/route.ts +1 -1
  212. package/.next/types/app/api/sessions/[id]/auto-name/route.ts +1 -1
  213. package/.next/types/app/api/sessions/[id]/context/route.ts +1 -1
  214. package/.next/types/app/api/sessions/[id]/entries/[entryId]/thinking/route.ts +1 -1
  215. package/.next/types/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route.ts +1 -1
  216. package/.next/types/app/api/sessions/[id]/export/route.ts +1 -1
  217. package/.next/types/app/api/sessions/[id]/route.ts +1 -1
  218. package/.next/types/app/api/sessions/[id]/state/route.ts +1 -1
  219. package/.next/types/app/api/sessions/route.ts +1 -1
  220. package/.next/types/app/api/sessions/search/route.ts +1 -1
  221. package/.next/types/app/api/skills/check/route.ts +1 -1
  222. package/.next/types/app/api/skills/install/route.ts +1 -1
  223. package/.next/types/app/api/skills/route.ts +1 -1
  224. package/.next/types/app/api/skills/search/route.ts +1 -1
  225. package/.next/types/app/api/skills/update/route.ts +1 -1
  226. package/.next/types/app/api/subagents/[id]/route.ts +1 -1
  227. package/.next/types/app/api/subagents/profiles/route.ts +1 -1
  228. package/.next/types/app/api/subagents/settings/route.ts +1 -1
  229. package/.next/types/app/api/terminal/[id]/events/route.ts +1 -1
  230. package/.next/types/app/api/terminal/[id]/route.ts +1 -1
  231. package/.next/types/app/api/terminal/route.ts +1 -1
  232. package/.next/types/app/api/tools/settings/route.ts +1 -1
  233. package/.next/types/app/api/web-auth/route.ts +1 -1
  234. package/.next/types/app/api/worktrees/route.ts +1 -1
  235. package/.next/types/app/layout.ts +1 -1
  236. package/.next/types/app/login/page.ts +1 -1
  237. package/.next/types/app/page.ts +1 -1
  238. package/bin/pi-web-deploy.js +42 -0
  239. package/deploy-piweb.sh +53 -0
  240. package/package.json +5 -3
  241. package/.next/server/chunks/3907.js +0 -1
  242. package/.next/static/chunks/1278-efae9cc32e883ab7.js +0 -1
  243. package/.next/static/chunks/app/layout-a6caf92e84e665d2.js +0 -1
  244. package/.next/static/chunks/app/page-9c67870933d9ca8a.js +0 -283
  245. package/.next/static/chunks/next/dist/client/components/builtin/global-error-eeb75bb921471360.js +0 -1
  246. /package/.next/static/{LjKuOrhAxmaoMmiEKpqEL → UvaNlkI1Ec_O35YDKRH9X}/_buildManifest.js +0 -0
  247. /package/.next/static/{LjKuOrhAxmaoMmiEKpqEL → UvaNlkI1Ec_O35YDKRH9X}/_ssgManifest.js +0 -0
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-webpack","duration":41509240,"timestamp":2770567248490,"id":14,"parentId":1,"tags":{},"startTime":1789966317797,"traceId":"a2cfcbee31320c5e"},{"name":"run-typescript","duration":17785126,"timestamp":2770608765380,"id":8495,"parentId":1,"tags":{},"startTime":1789966359314,"traceId":"a2cfcbee31320c5e"},{"name":"static-check","duration":4212468,"timestamp":2770626607323,"id":8498,"parentId":1,"tags":{},"startTime":1789966377156,"traceId":"a2cfcbee31320c5e"},{"name":"static-generation","duration":7904937,"timestamp":2770631234859,"id":8628,"parentId":1,"tags":{},"startTime":1789966381784,"traceId":"a2cfcbee31320c5e"},{"name":"collect-build-traces","duration":53863420,"timestamp":2770630824619,"id":8625,"parentId":1,"tags":{},"startTime":1789966381374,"traceId":"a2cfcbee31320c5e"},{"name":"telemetry-flush","duration":73,"timestamp":2770684695556,"id":8637,"parentId":1,"tags":{},"startTime":1789966435245,"traceId":"a2cfcbee31320c5e"},{"name":"next-build","duration":117841835,"timestamp":2770566853818,"id":1,"tags":{"buildMode":"default","version":"16.3.5","bundler":"webpack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1789966317403,"traceId":"a2cfcbee31320c5e"}]
1
+ [{"name":"run-webpack","duration":32637778,"timestamp":118293797,"id":14,"parentId":1,"tags":{},"startTime":1790019054626,"traceId":"624699dfdbe9decf"},{"name":"run-typescript","duration":13440697,"timestamp":150935759,"id":8505,"parentId":1,"tags":{},"startTime":1790019087268,"traceId":"624699dfdbe9decf"},{"name":"static-check","duration":2364781,"timestamp":164403301,"id":8508,"parentId":1,"tags":{},"startTime":1790019100735,"traceId":"624699dfdbe9decf"},{"name":"static-generation","duration":5541820,"timestamp":167034268,"id":8638,"parentId":1,"tags":{},"startTime":1790019103366,"traceId":"624699dfdbe9decf"},{"name":"collect-build-traces","duration":39521254,"timestamp":166771780,"id":8635,"parentId":1,"tags":{},"startTime":1790019103104,"traceId":"624699dfdbe9decf"},{"name":"telemetry-flush","duration":54,"timestamp":206296376,"id":8647,"parentId":1,"tags":{},"startTime":1790019142628,"traceId":"624699dfdbe9decf"},{"name":"next-build","duration":88306945,"timestamp":117989495,"id":1,"tags":{"buildMode":"default","version":"16.3.5","bundler":"webpack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1790019054321,"traceId":"624699dfdbe9decf"}]
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/agent/[id]/bash-output/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/agent/[id]/bash-output/route.ts
2
2
  import * as entry from '../../../../../../../app/api/agent/[id]/bash-output/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/agent/[id]/bg-tasks/[taskId]/kill/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/agent/[id]/bg-tasks/[taskId]/kill/route.ts
2
2
  import * as entry from '../../../../../../../../../app/api/agent/[id]/bg-tasks/[taskId]/kill/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/agent/[id]/bg-tasks/[taskId]/logs/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/agent/[id]/bg-tasks/[taskId]/logs/route.ts
2
2
  import * as entry from '../../../../../../../../../app/api/agent/[id]/bg-tasks/[taskId]/logs/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/agent/[id]/bg-tasks/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/agent/[id]/bg-tasks/route.ts
2
2
  import * as entry from '../../../../../../../app/api/agent/[id]/bg-tasks/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/agent/[id]/events/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/agent/[id]/events/route.ts
2
2
  import * as entry from '../../../../../../../app/api/agent/[id]/events/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/agent/[id]/lease/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/agent/[id]/lease/route.ts
2
2
  import * as entry from '../../../../../../../app/api/agent/[id]/lease/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/agent/[id]/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/agent/[id]/route.ts
2
2
  import * as entry from '../../../../../../app/api/agent/[id]/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/agent/new/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/agent/new/route.ts
2
2
  import * as entry from '../../../../../../app/api/agent/new/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/agent/running/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/agent/running/route.ts
2
2
  import * as entry from '../../../../../../app/api/agent/running/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/app-update/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/app-update/route.ts
2
2
  import * as entry from '../../../../../app/api/app-update/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/auth/api-key/[provider]/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/auth/api-key/[provider]/route.ts
2
2
  import * as entry from '../../../../../../../app/api/auth/api-key/[provider]/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/auth/login/[provider]/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/auth/login/[provider]/route.ts
2
2
  import * as entry from '../../../../../../../app/api/auth/login/[provider]/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/auth/logout/[provider]/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/auth/logout/[provider]/route.ts
2
2
  import * as entry from '../../../../../../../app/api/auth/logout/[provider]/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/auth/providers/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/auth/providers/route.ts
2
2
  import * as entry from '../../../../../../app/api/auth/providers/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/cwd/browse/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/cwd/browse/route.ts
2
2
  import * as entry from '../../../../../../app/api/cwd/browse/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/cwd/validate/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/cwd/validate/route.ts
2
2
  import * as entry from '../../../../../../app/api/cwd/validate/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/default-cwd/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/default-cwd/route.ts
2
2
  import * as entry from '../../../../../app/api/default-cwd/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/file-index/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/file-index/route.ts
2
2
  import * as entry from '../../../../../app/api/file-index/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/files/[...path]/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/files/[...path]/route.ts
2
2
  import * as entry from '../../../../../../app/api/files/[...path]/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/git/diff/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/git/diff/route.ts
2
2
  import * as entry from '../../../../../../app/api/git/diff/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/git/status/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/git/status/route.ts
2
2
  import * as entry from '../../../../../../app/api/git/status/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/home/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/home/route.ts
2
2
  import * as entry from '../../../../../app/api/home/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/models/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/models/route.ts
2
2
  import * as entry from '../../../../../app/api/models/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/models-config/catalog/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/models-config/catalog/route.ts
2
2
  import * as entry from '../../../../../../app/api/models-config/catalog/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/models-config/discover/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/models-config/discover/route.ts
2
2
  import * as entry from '../../../../../../app/api/models-config/discover/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/models-config/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/models-config/route.ts
2
2
  import * as entry from '../../../../../app/api/models-config/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/models-config/test/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/models-config/test/route.ts
2
2
  import * as entry from '../../../../../../app/api/models-config/test/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/plugins/check/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/plugins/check/route.ts
2
2
  import * as entry from '../../../../../../app/api/plugins/check/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/plugins/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/plugins/route.ts
2
2
  import * as entry from '../../../../../app/api/plugins/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/project-trust/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/project-trust/route.ts
2
2
  import * as entry from '../../../../../app/api/project-trust/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/provider-usage/query/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/provider-usage/query/route.ts
2
2
  import * as entry from '../../../../../../app/api/provider-usage/query/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/push/config/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/push/config/route.ts
2
2
  import * as entry from '../../../../../../app/api/push/config/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/push/subscribe/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/push/subscribe/route.ts
2
2
  import * as entry from '../../../../../../app/api/push/subscribe/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/sessions/[id]/auto-name/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/sessions/[id]/auto-name/route.ts
2
2
  import * as entry from '../../../../../../../app/api/sessions/[id]/auto-name/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/sessions/[id]/context/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/sessions/[id]/context/route.ts
2
2
  import * as entry from '../../../../../../../app/api/sessions/[id]/context/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/sessions/[id]/entries/[entryId]/thinking/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/sessions/[id]/entries/[entryId]/thinking/route.ts
2
2
  import * as entry from '../../../../../../../../../app/api/sessions/[id]/entries/[entryId]/thinking/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route.ts
2
2
  import * as entry from '../../../../../../../../../app/api/sessions/[id]/entries/[entryId]/tool-result-image/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/sessions/[id]/export/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/sessions/[id]/export/route.ts
2
2
  import * as entry from '../../../../../../../app/api/sessions/[id]/export/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/sessions/[id]/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/sessions/[id]/route.ts
2
2
  import * as entry from '../../../../../../app/api/sessions/[id]/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/sessions/[id]/state/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/sessions/[id]/state/route.ts
2
2
  import * as entry from '../../../../../../../app/api/sessions/[id]/state/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/sessions/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/sessions/route.ts
2
2
  import * as entry from '../../../../../app/api/sessions/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/sessions/search/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/sessions/search/route.ts
2
2
  import * as entry from '../../../../../../app/api/sessions/search/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/skills/check/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/skills/check/route.ts
2
2
  import * as entry from '../../../../../../app/api/skills/check/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/skills/install/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/skills/install/route.ts
2
2
  import * as entry from '../../../../../../app/api/skills/install/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/skills/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/skills/route.ts
2
2
  import * as entry from '../../../../../app/api/skills/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/skills/search/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/skills/search/route.ts
2
2
  import * as entry from '../../../../../../app/api/skills/search/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/skills/update/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/skills/update/route.ts
2
2
  import * as entry from '../../../../../../app/api/skills/update/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/subagents/[id]/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/subagents/[id]/route.ts
2
2
  import * as entry from '../../../../../../app/api/subagents/[id]/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/subagents/profiles/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/subagents/profiles/route.ts
2
2
  import * as entry from '../../../../../../app/api/subagents/profiles/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/subagents/settings/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/subagents/settings/route.ts
2
2
  import * as entry from '../../../../../../app/api/subagents/settings/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/terminal/[id]/events/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/terminal/[id]/events/route.ts
2
2
  import * as entry from '../../../../../../../app/api/terminal/[id]/events/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/terminal/[id]/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/terminal/[id]/route.ts
2
2
  import * as entry from '../../../../../../app/api/terminal/[id]/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/terminal/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/terminal/route.ts
2
2
  import * as entry from '../../../../../app/api/terminal/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/tools/settings/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/tools/settings/route.ts
2
2
  import * as entry from '../../../../../../app/api/tools/settings/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/web-auth/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/web-auth/route.ts
2
2
  import * as entry from '../../../../../app/api/web-auth/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/api/worktrees/route.ts
1
+ // File: /home/runner/work/pi-web/pi-web/app/api/worktrees/route.ts
2
2
  import * as entry from '../../../../../app/api/worktrees/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/layout.tsx
1
+ // File: /home/runner/work/pi-web/pi-web/app/layout.tsx
2
2
  import * as entry from '../../../app/layout.js'
3
3
  import type { ResolvingMetadata, ResolvingViewport } from 'next/dist/lib/metadata/types/metadata-interface.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/login/page.tsx
1
+ // File: /home/runner/work/pi-web/pi-web/app/login/page.tsx
2
2
  import * as entry from '../../../../app/login/page.js'
3
3
  import type { ResolvingMetadata, ResolvingViewport } from 'next/dist/lib/metadata/types/metadata-interface.js'
4
4
 
@@ -1,4 +1,4 @@
1
- // File: /root/code/aicoding/osp-ws/.repo/pi-web/app/page.tsx
1
+ // File: /home/runner/work/pi-web/pi-web/app/page.tsx
2
2
  import * as entry from '../../../app/page.js'
3
3
  import type { ResolvingMetadata, ResolvingViewport } from 'next/dist/lib/metadata/types/metadata-interface.js'
4
4
 
@@ -0,0 +1,42 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+
4
+ // Global `pi-web-deploy` entry: runs deploy-piweb.sh from the installed
5
+ // package directory, passing through arguments and the calling environment.
6
+ // The script itself requires bash, so this shim exists to give Windows
7
+ // installs a Node-based bin target; in the Linux container scenario the
8
+ // script executes unchanged either way.
9
+
10
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
11
+ const { spawn } = require("child_process");
12
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
13
+ const path = require("path");
14
+
15
+ const scriptPath = path.join(__dirname, "..", "deploy-piweb.sh");
16
+ const child = spawn("bash", [scriptPath, ...process.argv.slice(2)], {
17
+ stdio: "inherit",
18
+ env: process.env,
19
+ });
20
+
21
+ function fail(message) {
22
+ console.error(`[pi-web-deploy] ${message}`);
23
+ process.exit(1);
24
+ }
25
+
26
+ child.on("error", (error) => {
27
+ fail(`could not run deploy-piweb.sh: ${error.message}`);
28
+ });
29
+
30
+ for (const forwardableSignal of ["SIGINT", "SIGTERM"]) {
31
+ process.on(forwardableSignal, () => {
32
+ child.kill(forwardableSignal);
33
+ });
34
+ }
35
+
36
+ child.on("close", (code, signal) => {
37
+ if (signal) {
38
+ process.kill(process.pid, signal);
39
+ return;
40
+ }
41
+ process.exit(code ?? 1);
42
+ });
@@ -0,0 +1,53 @@
1
+ #!/usr/bin/env bash
2
+ # deploy-piweb.sh — update and restart the @silgrid/pi-web service in this container.
3
+ #
4
+ # This container has no systemd; pi-web runs inside a detached tmux session
5
+ # ("piweb" by default) with a restart loop. PI_WEB_IDLE_TIMEOUT_MS=0 disables
6
+ # the 10-minute idle auto-exit so the server does not appear to "self-exit"
7
+ # while running unattended as a service.
8
+ #
9
+ # The server binds 0.0.0.0 (override with PIWEB_HOST) so it is reachable from
10
+ # outside the container, and PI_WEB_PASSWORD set in the calling environment is
11
+ # passed through so the deployed service keeps its existing auth behavior.
12
+ #
13
+ # Two invocation modes:
14
+ # 1. From the repository root: ./deploy-piweb.sh
15
+ # 2. After a global npm install: pi-web-deploy
16
+ # (the bin/pi/pi-web-deploy shim runs this same script from inside the
17
+ # installed package directory; arguments and env are passed through)
18
+ #
19
+ # Usage: ./deploy-piweb.sh (or: pi-web-deploy after `npm i -g @silgrid/pi-web`)
20
+ # Env:
21
+ # PIWEB_TMUX_SESSION tmux session name (default: piweb)
22
+ # PIWEB_PORT optional port override passed to pi-web
23
+ # PIWEB_HOST bind address (default: 0.0.0.0)
24
+ # PI_WEB_PASSWORD optional web-auth password passed through to pi-web
25
+ set -euo pipefail
26
+
27
+ SESSION="${PIWEB_TMUX_SESSION:-piweb}"
28
+ PKG="@silgrid/pi-web"
29
+ HOST="${PIWEB_HOST:-0.0.0.0}"
30
+
31
+ # The upstream @agegr/pi-web package owns the same global bin name (pi-web);
32
+ # uninstall it first so installing ours does not fail with EEXIST. Harmless
33
+ # when it is already gone.
34
+ if npm ls -g @agegr/pi-web >/dev/null 2>&1; then
35
+ echo "==> Removing superseded @agegr/pi-web global install (same pi-web bin)"
36
+ npm uninstall -g @agegr/pi-web
37
+ fi
38
+
39
+ echo "==> Installing ${PKG}@latest"
40
+ npm install -g "${PKG}@latest"
41
+
42
+ echo "==> Restarting tmux session '${SESSION}'"
43
+ tmux kill-session -t "${SESSION}" 2>/dev/null || true
44
+ tmux new-session -d -s "${SESSION}" "
45
+ while true; do
46
+ PI_WEB_IDLE_TIMEOUT_MS=0 ${PI_WEB_PASSWORD:+PI_WEB_PASSWORD='${PI_WEB_PASSWORD}'} pi-web -H ${HOST} ${PIWEB_PORT:+--port ${PIWEB_PORT}}
47
+ echo '[piweb] pi-web exited; restarting in 5s' >&2
48
+ sleep 5
49
+ done
50
+ "
51
+
52
+ echo "==> pi-web running in tmux session '${SESSION}'"
53
+ tmux ls
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@silgrid/pi-web",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "description": "Fork of @agegr/pi-web: local web UI for the pi coding agent with split-pane chat and background task panels",
5
5
  "homepage": "https://github.com/silgrid/pi-web#readme",
6
6
  "repository": {
@@ -15,10 +15,12 @@
15
15
  "node": ">=22.19.0"
16
16
  },
17
17
  "bin": {
18
- "pi-web": "bin/pi-web.js"
18
+ "pi-web": "bin/pi-web.js",
19
+ "pi-web-deploy": "bin/pi-web-deploy.js"
19
20
  },
20
21
  "files": [
21
22
  "bin",
23
+ "deploy-piweb.sh",
22
24
  ".next",
23
25
  "!.next/cache",
24
26
  "!.next/dev",
@@ -36,7 +38,7 @@
36
38
  "start:lan": "next start -H 0.0.0.0 -p 30141",
37
39
  "lint": "eslint .",
38
40
  "test:terminal": "node e2e/terminal.mjs",
39
- "test:e2e": "node e2e/run.mjs",
41
+ "test:e2e": "node --experimental-strip-types e2e/run.mjs",
40
42
  "test": "node --experimental-strip-types --test \"app/**/*.test.mjs\" \"components/**/*.test.mjs\" \"hooks/**/*.test.mjs\" \"lib/**/*.test.mjs\" \"public/**/*.test.mjs\"",
41
43
  "release": "npm version patch --no-git-tag-version && npm run build && npm publish --access public"
42
44
  },