@akira-tl/forgerelay 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (373) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/LICENSE +22 -0
  3. package/NOTICE.md +19 -0
  4. package/README.md +270 -0
  5. package/dist/apply-patch.js +402 -0
  6. package/dist/artifact-error.js +8 -0
  7. package/dist/artifact-tools.js +377 -0
  8. package/dist/cli.js +597 -0
  9. package/dist/config.js +224 -0
  10. package/dist/db/client.js +29 -0
  11. package/dist/db/migrations.js +189 -0
  12. package/dist/db/schema.js +85 -0
  13. package/dist/git-worktrees.js +255 -0
  14. package/dist/git.js +41 -0
  15. package/dist/incoming-artifacts.js +378 -0
  16. package/dist/local-agent-adapters.js +653 -0
  17. package/dist/local-agent-availability.js +119 -0
  18. package/dist/local-agent-path.js +25 -0
  19. package/dist/local-agent-profiles.js +136 -0
  20. package/dist/local-agent-runtime.js +48 -0
  21. package/dist/local-agent-store.js +145 -0
  22. package/dist/local-agent-targets.js +80 -0
  23. package/dist/logger.js +69 -0
  24. package/dist/mcp/server-instructions.js +78 -0
  25. package/dist/mcp-sessions.js +56 -0
  26. package/dist/oauth-provider.js +237 -0
  27. package/dist/oauth-store.js +138 -0
  28. package/dist/pi-tools.js +81 -0
  29. package/dist/process-platform.js +49 -0
  30. package/dist/process-sessions.js +337 -0
  31. package/dist/request-meta.js +9 -0
  32. package/dist/review-checkpoints.js +219 -0
  33. package/dist/roots.js +37 -0
  34. package/dist/server-shutdown.js +12 -0
  35. package/dist/server.js +1596 -0
  36. package/dist/skills.js +89 -0
  37. package/dist/ui/.vite/manifest.json +2521 -0
  38. package/dist/ui/assets/abap-CLvhMVsD.js +1 -0
  39. package/dist/ui/assets/actionscript-3--17pq3dv.js +1 -0
  40. package/dist/ui/assets/ada-C5qYipkI.js +1 -0
  41. package/dist/ui/assets/andromeeda-vGVdxbeo.js +1 -0
  42. package/dist/ui/assets/angular-html-CovppXt5.js +1 -0
  43. package/dist/ui/assets/angular-ts-0Y9l6YXu.js +1 -0
  44. package/dist/ui/assets/apache-U0d_L8uA.js +1 -0
  45. package/dist/ui/assets/apex-CGTLDQj6.js +1 -0
  46. package/dist/ui/assets/apl-BmBhiklA.js +1 -0
  47. package/dist/ui/assets/applescript-CCn79oCD.js +1 -0
  48. package/dist/ui/assets/ara-4CJ0cIlV.js +1 -0
  49. package/dist/ui/assets/asciidoc-DE70LPWp.js +1 -0
  50. package/dist/ui/assets/asm-Cmm7eHzH.js +1 -0
  51. package/dist/ui/assets/astro-BAmqcqyV.js +1 -0
  52. package/dist/ui/assets/aurora-x-CDeNXAV0.js +1 -0
  53. package/dist/ui/assets/awk-BWXHIvNe.js +1 -0
  54. package/dist/ui/assets/ayu-dark-DluEY0Gj.js +1 -0
  55. package/dist/ui/assets/ayu-light-C3h-C4tm.js +1 -0
  56. package/dist/ui/assets/ayu-mirage-Bqwy1Gya.js +1 -0
  57. package/dist/ui/assets/ballerina-B7ZEbQpA.js +1 -0
  58. package/dist/ui/assets/bat-Bo4NYOV-.js +1 -0
  59. package/dist/ui/assets/beancount-D-usSTwE.js +1 -0
  60. package/dist/ui/assets/berry-DKpUyyne.js +1 -0
  61. package/dist/ui/assets/bibtex-Ci_nEsc7.js +1 -0
  62. package/dist/ui/assets/bicep-CUHmPFLl.js +1 -0
  63. package/dist/ui/assets/bird2-C2hNVINV.js +1 -0
  64. package/dist/ui/assets/blade-BjFcmRJo.js +1 -0
  65. package/dist/ui/assets/bsl-BkkzgIyY.js +1 -0
  66. package/dist/ui/assets/c-CaOJn4x0.js +1 -0
  67. package/dist/ui/assets/c3-CnJL0r0V.js +1 -0
  68. package/dist/ui/assets/cadence-CQ2zXKGN.js +1 -0
  69. package/dist/ui/assets/cairo-DLTphjLi.js +1 -0
  70. package/dist/ui/assets/catppuccin-frappe-3VR1Za6u.js +1 -0
  71. package/dist/ui/assets/catppuccin-latte-DwIHMF0Q.js +1 -0
  72. package/dist/ui/assets/catppuccin-macchiato-DYnBP6_5.js +1 -0
  73. package/dist/ui/assets/catppuccin-mocha-DYhrFGRu.js +1 -0
  74. package/dist/ui/assets/clarity-SemFz856.js +1 -0
  75. package/dist/ui/assets/clojure-DqKBuwfJ.js +1 -0
  76. package/dist/ui/assets/cmake-Bj61d0ZC.js +1 -0
  77. package/dist/ui/assets/cobol-DR4zWFMt.js +1 -0
  78. package/dist/ui/assets/codeowners-C8r90Shi.js +1 -0
  79. package/dist/ui/assets/codeql-oeQT6MSM.js +1 -0
  80. package/dist/ui/assets/coffee-ReGSThmM.js +1 -0
  81. package/dist/ui/assets/common-lisp-Cv5bFMCO.js +1 -0
  82. package/dist/ui/assets/coq-BrsZFFmf.js +1 -0
  83. package/dist/ui/assets/cpp-CnlQh6MO.js +1 -0
  84. package/dist/ui/assets/crystal-BrpPbH1U.js +1 -0
  85. package/dist/ui/assets/csharp-Ct8U2NOr.js +1 -0
  86. package/dist/ui/assets/css-DRBEvyPU.js +1 -0
  87. package/dist/ui/assets/csv-Dx-8-gkx.js +1 -0
  88. package/dist/ui/assets/cue-CE9AQfxI.js +1 -0
  89. package/dist/ui/assets/cypher-ClKdZ_lG.js +1 -0
  90. package/dist/ui/assets/d-qD-0Kul2.js +1 -0
  91. package/dist/ui/assets/dark-plus-Cs2F2srj.js +1 -0
  92. package/dist/ui/assets/dart-DkHntEIa.js +1 -0
  93. package/dist/ui/assets/dax-BkyTk9wS.js +1 -0
  94. package/dist/ui/assets/desktop-Dlh5hvp9.js +1 -0
  95. package/dist/ui/assets/diff-woXpYk--.js +1 -0
  96. package/dist/ui/assets/docker-IyjqRm3v.js +1 -0
  97. package/dist/ui/assets/dotenv-_5a1GRtc.js +1 -0
  98. package/dist/ui/assets/dracula-BHWKrbxM.js +1 -0
  99. package/dist/ui/assets/dracula-soft-5eyTD99u.js +1 -0
  100. package/dist/ui/assets/dream-maker-DW3nJb8Q.js +1 -0
  101. package/dist/ui/assets/edge-cfwpdvl9.js +1 -0
  102. package/dist/ui/assets/elixir-7owrJxb6.js +1 -0
  103. package/dist/ui/assets/elm-udiOjODk.js +1 -0
  104. package/dist/ui/assets/emacs-lisp-C9PiwqqW.js +1 -0
  105. package/dist/ui/assets/erb-8ctXHMkS.js +1 -0
  106. package/dist/ui/assets/erlang-Cphh6RMH.js +1 -0
  107. package/dist/ui/assets/everforest-dark-sB-x3p7T.js +1 -0
  108. package/dist/ui/assets/everforest-light-Df2xbC6M.js +1 -0
  109. package/dist/ui/assets/fennel-DQxkIbk2.js +1 -0
  110. package/dist/ui/assets/fish-BJitypiv.js +1 -0
  111. package/dist/ui/assets/fluent-C03EYrpw.js +1 -0
  112. package/dist/ui/assets/fortran-fixed-form-DEKoE2YW.js +1 -0
  113. package/dist/ui/assets/fortran-free-form-CYNrtFtB.js +1 -0
  114. package/dist/ui/assets/fsharp-D13ZGOAj.js +1 -0
  115. package/dist/ui/assets/gdresource-C0sCabJj.js +1 -0
  116. package/dist/ui/assets/gdscript-Cp2uCuqX.js +1 -0
  117. package/dist/ui/assets/gdshader-CBce3t8t.js +1 -0
  118. package/dist/ui/assets/genie-CV2tkWYe.js +1 -0
  119. package/dist/ui/assets/gherkin-DExj1W_8.js +1 -0
  120. package/dist/ui/assets/git-commit-BSykSTBG.js +1 -0
  121. package/dist/ui/assets/git-rebase-P0V_qK1w.js +1 -0
  122. package/dist/ui/assets/github-dark-C-LZuMrd.js +1 -0
  123. package/dist/ui/assets/github-dark-default-DXG-b-1a.js +1 -0
  124. package/dist/ui/assets/github-dark-dimmed-Bx1FflLF.js +1 -0
  125. package/dist/ui/assets/github-dark-high-contrast-B_tTalzw.js +1 -0
  126. package/dist/ui/assets/github-light-EUqPIrTm.js +1 -0
  127. package/dist/ui/assets/github-light-default-BXViO-2h.js +1 -0
  128. package/dist/ui/assets/github-light-high-contrast-B68TUdTA.js +1 -0
  129. package/dist/ui/assets/gleam-CSRkHgEL.js +1 -0
  130. package/dist/ui/assets/glimmer-js-CZ14ED7U.js +1 -0
  131. package/dist/ui/assets/glimmer-ts-DtBSFP-o.js +1 -0
  132. package/dist/ui/assets/glsl-BX2BkZJK.js +1 -0
  133. package/dist/ui/assets/gn-ilITqXS6.js +1 -0
  134. package/dist/ui/assets/gnuplot-7GGW24-e.js +1 -0
  135. package/dist/ui/assets/go-BJwz_mda.js +1 -0
  136. package/dist/ui/assets/graphql-Dj_cPv4w.js +1 -0
  137. package/dist/ui/assets/groovy-CacY0gHj.js +1 -0
  138. package/dist/ui/assets/gruvbox-dark-hard-C820rvS2.js +1 -0
  139. package/dist/ui/assets/gruvbox-dark-medium-BPjhmG05.js +1 -0
  140. package/dist/ui/assets/gruvbox-dark-soft-MrdJrrXF.js +1 -0
  141. package/dist/ui/assets/gruvbox-light-hard-BC_s9l72.js +1 -0
  142. package/dist/ui/assets/gruvbox-light-medium-BAWPOn9u.js +1 -0
  143. package/dist/ui/assets/gruvbox-light-soft-BSMLrYjP.js +1 -0
  144. package/dist/ui/assets/hack-DGRkd8xn.js +1 -0
  145. package/dist/ui/assets/haml-BAPSvujW.js +1 -0
  146. package/dist/ui/assets/handlebars-PYksdULG.js +1 -0
  147. package/dist/ui/assets/haskell-D8IpX4py.js +1 -0
  148. package/dist/ui/assets/haxe-OTjmBuCE.js +1 -0
  149. package/dist/ui/assets/hcl-Dh228itO.js +1 -0
  150. package/dist/ui/assets/heavy-payload-BjE0LSUi.js +4 -0
  151. package/dist/ui/assets/hjson-CxZEssPk.js +1 -0
  152. package/dist/ui/assets/hlsl-Cvrh5tZx.js +1 -0
  153. package/dist/ui/assets/horizon-CE9ld1lL.js +1 -0
  154. package/dist/ui/assets/horizon-bright-Br1oVSNq.js +1 -0
  155. package/dist/ui/assets/houston-CsvMBhTu.js +1 -0
  156. package/dist/ui/assets/html-DloAPGZ1.js +1 -0
  157. package/dist/ui/assets/html-derivative-C6q86ZrS.js +1 -0
  158. package/dist/ui/assets/http-fPvYDvHA.js +1 -0
  159. package/dist/ui/assets/hurl-Dbir4WvE.js +1 -0
  160. package/dist/ui/assets/hxml-B0Qn7Nwc.js +1 -0
  161. package/dist/ui/assets/hy-CZbG8q4J.js +1 -0
  162. package/dist/ui/assets/imba-DsUTQ-LC.js +1 -0
  163. package/dist/ui/assets/ini-B5eOa1yu.js +1 -0
  164. package/dist/ui/assets/java-DvkqXg3z.js +1 -0
  165. package/dist/ui/assets/javascript-TONTV6Ty.js +1 -0
  166. package/dist/ui/assets/jinja-OM1F5Gct.js +1 -0
  167. package/dist/ui/assets/jison-CBttugts.js +1 -0
  168. package/dist/ui/assets/json-Db5oY-7J.js +1 -0
  169. package/dist/ui/assets/json5-BR5RXkoi.js +1 -0
  170. package/dist/ui/assets/jsonc-CYpm1nAK.js +1 -0
  171. package/dist/ui/assets/jsonl-CmCQp5Yx.js +1 -0
  172. package/dist/ui/assets/jsonnet-CJTPZ8u_.js +1 -0
  173. package/dist/ui/assets/jssm-DXw9l8Rf.js +1 -0
  174. package/dist/ui/assets/jsx-DKeJCgsc.js +1 -0
  175. package/dist/ui/assets/julia-NlIPhXaL.js +1 -0
  176. package/dist/ui/assets/just-BXBJB-mX.js +1 -0
  177. package/dist/ui/assets/kanagawa-dragon-CXtmUGW6.js +1 -0
  178. package/dist/ui/assets/kanagawa-lotus-BN08jTvb.js +1 -0
  179. package/dist/ui/assets/kanagawa-wave-CTweb8Dz.js +1 -0
  180. package/dist/ui/assets/kdl-CsD5j6eV.js +1 -0
  181. package/dist/ui/assets/kotlin-DhhofPvG.js +1 -0
  182. package/dist/ui/assets/kusto-BUv0MjJC.js +1 -0
  183. package/dist/ui/assets/laserwave-C_8bwKvT.js +1 -0
  184. package/dist/ui/assets/latex-CGK-6yDy.js +1 -0
  185. package/dist/ui/assets/lean-CewbzKMR.js +1 -0
  186. package/dist/ui/assets/less-DVTAwKKz.js +1 -0
  187. package/dist/ui/assets/light-plus-DVQuIRkW.js +1 -0
  188. package/dist/ui/assets/liquid-D7waQ0MY.js +1 -0
  189. package/dist/ui/assets/llvm-Cm23YOpf.js +1 -0
  190. package/dist/ui/assets/log-BNLmms1o.js +1 -0
  191. package/dist/ui/assets/logo-Cluzi2Zq.js +1 -0
  192. package/dist/ui/assets/lua-C_kkt4h1.js +1 -0
  193. package/dist/ui/assets/luau-CNKltnaQ.js +1 -0
  194. package/dist/ui/assets/make-Dixweg8N.js +1 -0
  195. package/dist/ui/assets/markdown-BYOwaDjH.js +1 -0
  196. package/dist/ui/assets/marko-BokXuCts.js +1 -0
  197. package/dist/ui/assets/material-theme-Bm3Qr25_.js +1 -0
  198. package/dist/ui/assets/material-theme-darker-2IIEA8gg.js +1 -0
  199. package/dist/ui/assets/material-theme-lighter-uhdI0v04.js +1 -0
  200. package/dist/ui/assets/material-theme-ocean-CHQ94UKr.js +1 -0
  201. package/dist/ui/assets/material-theme-palenight-B5W6OYN7.js +1 -0
  202. package/dist/ui/assets/matlab-D7qyCx1q.js +1 -0
  203. package/dist/ui/assets/mdc-Bk0nnUJA.js +1 -0
  204. package/dist/ui/assets/mdx-DQZ5AkYe.js +1 -0
  205. package/dist/ui/assets/mermaid-Bk4SNUv9.js +1 -0
  206. package/dist/ui/assets/min-dark-BSWPekZh.js +1 -0
  207. package/dist/ui/assets/min-light-DDpmG2fV.js +1 -0
  208. package/dist/ui/assets/mipsasm-BMqwQI7S.js +1 -0
  209. package/dist/ui/assets/mojo-BgCJLMeH.js +1 -0
  210. package/dist/ui/assets/monokai-CdkpiU2Y.js +1 -0
  211. package/dist/ui/assets/moonbit-CaWjb8XO.js +1 -0
  212. package/dist/ui/assets/move-B1IS1UjX.js +1 -0
  213. package/dist/ui/assets/narrat-_X_XdTYD.js +1 -0
  214. package/dist/ui/assets/nextflow-Bbiyy34d.js +1 -0
  215. package/dist/ui/assets/nextflow-groovy-Dc_ddanL.js +1 -0
  216. package/dist/ui/assets/nginx-jM6NF9TV.js +1 -0
  217. package/dist/ui/assets/night-owl-DhmEMT88.js +1 -0
  218. package/dist/ui/assets/night-owl-light-eJ-hLW7d.js +1 -0
  219. package/dist/ui/assets/nim-hYsL-WKb.js +1 -0
  220. package/dist/ui/assets/nix-IvuFDN5E.js +1 -0
  221. package/dist/ui/assets/nord-Cb4Vim4T.js +1 -0
  222. package/dist/ui/assets/nushell-DcLAeLz5.js +1 -0
  223. package/dist/ui/assets/objective-c-D1A_Heim.js +1 -0
  224. package/dist/ui/assets/objective-cpp-BsSzOQcm.js +1 -0
  225. package/dist/ui/assets/ocaml-O90oeIOV.js +1 -0
  226. package/dist/ui/assets/odin-B1RWQWA5.js +1 -0
  227. package/dist/ui/assets/one-dark-pro-CLwyXe_n.js +1 -0
  228. package/dist/ui/assets/one-light-D7Lr4KcI.js +1 -0
  229. package/dist/ui/assets/openscad-BUDT5pXO.js +1 -0
  230. package/dist/ui/assets/pascal-4ZHwLPI5.js +1 -0
  231. package/dist/ui/assets/perl-DBI_cUHJ.js +1 -0
  232. package/dist/ui/assets/php-BX_aQhFl.js +1 -0
  233. package/dist/ui/assets/pierre-dark-sU4Zdns8.js +1 -0
  234. package/dist/ui/assets/pierre-dark-soft-HXgun5vs.js +1 -0
  235. package/dist/ui/assets/pierre-light-DWBk51d8.js +1 -0
  236. package/dist/ui/assets/pierre-light-soft-CodEzPxf.js +1 -0
  237. package/dist/ui/assets/pkl-ot-7Btpt.js +1 -0
  238. package/dist/ui/assets/plastic-DQwYfKfQ.js +1 -0
  239. package/dist/ui/assets/plsql-DGHpHOYJ.js +1 -0
  240. package/dist/ui/assets/po-BiJDBrnU.js +1 -0
  241. package/dist/ui/assets/poimandres-DRFjx7u4.js +1 -0
  242. package/dist/ui/assets/polar-C7UOKdEL.js +1 -0
  243. package/dist/ui/assets/postcss-BXeXVLqQ.js +1 -0
  244. package/dist/ui/assets/powerquery-DNMTfnFr.js +1 -0
  245. package/dist/ui/assets/powershell-DshXNtvi.js +1 -0
  246. package/dist/ui/assets/prisma-BsRQq5mF.js +1 -0
  247. package/dist/ui/assets/prolog-iXnhIJG7.js +1 -0
  248. package/dist/ui/assets/proto-DB4EqR-F.js +1 -0
  249. package/dist/ui/assets/pug-DwFAYy1e.js +1 -0
  250. package/dist/ui/assets/puppet-CDv2pdJW.js +1 -0
  251. package/dist/ui/assets/purescript-9MfHhQsQ.js +1 -0
  252. package/dist/ui/assets/python-gzcpVVnB.js +1 -0
  253. package/dist/ui/assets/qml-eLSwQUKt.js +1 -0
  254. package/dist/ui/assets/qmldir-DCQb3MpD.js +1 -0
  255. package/dist/ui/assets/qss-Fe1Jh2GI.js +1 -0
  256. package/dist/ui/assets/r-BMnQsMLf.js +1 -0
  257. package/dist/ui/assets/racket-DcIDlBhZ.js +1 -0
  258. package/dist/ui/assets/raku-B3gFvitq.js +1 -0
  259. package/dist/ui/assets/razor-CgciiMyw.js +1 -0
  260. package/dist/ui/assets/red-CJ3rzSJv.js +1 -0
  261. package/dist/ui/assets/reg-CRGYupPL.js +1 -0
  262. package/dist/ui/assets/regexp-ZrURNrn5.js +1 -0
  263. package/dist/ui/assets/rel-BtDbiS_P.js +1 -0
  264. package/dist/ui/assets/review-payload-HGkpJjjm.js +1 -0
  265. package/dist/ui/assets/riscv-Ckw8ddFX.js +1 -0
  266. package/dist/ui/assets/ron-VUp2lXgN.js +1 -0
  267. package/dist/ui/assets/rose-pine-BthvhNj6.js +1 -0
  268. package/dist/ui/assets/rose-pine-dawn-Dg85fqjY.js +1 -0
  269. package/dist/ui/assets/rose-pine-moon-hon4tzzS.js +1 -0
  270. package/dist/ui/assets/rosmsg-CAekHB0j.js +1 -0
  271. package/dist/ui/assets/rst-EoAOr3M6.js +1 -0
  272. package/dist/ui/assets/ruby-Dqx5_Rqw.js +1 -0
  273. package/dist/ui/assets/rust-Cfkwpbl8.js +1 -0
  274. package/dist/ui/assets/sas-Bf6xPLSX.js +1 -0
  275. package/dist/ui/assets/sass-DXrisJhu.js +1 -0
  276. package/dist/ui/assets/scala-DKOlJaKm.js +1 -0
  277. package/dist/ui/assets/scheme-DQCgrYNe.js +1 -0
  278. package/dist/ui/assets/scrollbar-DX4Ujotb.js +287 -0
  279. package/dist/ui/assets/scss-DDpW3yTd.js +1 -0
  280. package/dist/ui/assets/sdbl-bTVj8UrX.js +1 -0
  281. package/dist/ui/assets/shaderlab-TOUzSsQk.js +1 -0
  282. package/dist/ui/assets/shellscript-DayAQ-W9.js +1 -0
  283. package/dist/ui/assets/shellsession-jPr_lSnA.js +1 -0
  284. package/dist/ui/assets/slack-dark-DnToyrRv.js +1 -0
  285. package/dist/ui/assets/slack-ochin-B2OO5cIa.js +1 -0
  286. package/dist/ui/assets/smalltalk-B16xEiuN.js +1 -0
  287. package/dist/ui/assets/snazzy-light-4G7pJPwS.js +1 -0
  288. package/dist/ui/assets/solarized-dark-DV17i1UV.js +1 -0
  289. package/dist/ui/assets/solarized-light-DSh2HLQt.js +1 -0
  290. package/dist/ui/assets/solidity-CKzVLygQ.js +1 -0
  291. package/dist/ui/assets/soy-X9adks8G.js +1 -0
  292. package/dist/ui/assets/sparql-D_iOobhT.js +1 -0
  293. package/dist/ui/assets/splunk-BC2Px7Mm.js +1 -0
  294. package/dist/ui/assets/sql-Bmt09AIR.js +1 -0
  295. package/dist/ui/assets/ssh-config-BgfXC-Er.js +1 -0
  296. package/dist/ui/assets/stata-DVkNpH8r.js +1 -0
  297. package/dist/ui/assets/stylus-B6D30XZt.js +1 -0
  298. package/dist/ui/assets/surrealql-eEXzMb8j.js +1 -0
  299. package/dist/ui/assets/svelte-CFoBxZF3.js +1 -0
  300. package/dist/ui/assets/swift-DonLKvLd.js +1 -0
  301. package/dist/ui/assets/synthwave-84-nFMaYfgc.js +1 -0
  302. package/dist/ui/assets/system-verilog-DJ5XKQeo.js +1 -0
  303. package/dist/ui/assets/systemd-BxMlprV5.js +1 -0
  304. package/dist/ui/assets/talonscript-CohzipZa.js +1 -0
  305. package/dist/ui/assets/tasl-DMoTqEGO.js +1 -0
  306. package/dist/ui/assets/tcl-CZd0xW_V.js +1 -0
  307. package/dist/ui/assets/templ-Da_324JF.js +1 -0
  308. package/dist/ui/assets/terraform-DswuEJGm.js +1 -0
  309. package/dist/ui/assets/tex-HAzlmKJ0.js +1 -0
  310. package/dist/ui/assets/tokyo-night-oM2G3aXe.js +1 -0
  311. package/dist/ui/assets/toml-CcmNWLt0.js +1 -0
  312. package/dist/ui/assets/ts-tags-7iLrNH8p.js +1 -0
  313. package/dist/ui/assets/tsv-sltzmVWM.js +1 -0
  314. package/dist/ui/assets/tsx-gZaXf8PJ.js +1 -0
  315. package/dist/ui/assets/turtle-ByJddavk.js +1 -0
  316. package/dist/ui/assets/twig-CLpQ7p1N.js +1 -0
  317. package/dist/ui/assets/typescript-B2WWCRI2.js +1 -0
  318. package/dist/ui/assets/typespec-B88KGewJ.js +1 -0
  319. package/dist/ui/assets/typst-DI99ib-x.js +1 -0
  320. package/dist/ui/assets/v-DETTlOr0.js +1 -0
  321. package/dist/ui/assets/vala-zf12oZj6.js +1 -0
  322. package/dist/ui/assets/vb-Djn5o6TS.js +1 -0
  323. package/dist/ui/assets/verilog-CiiDBU1e.js +1 -0
  324. package/dist/ui/assets/vesper-D5bVUKB1.js +1 -0
  325. package/dist/ui/assets/vhdl-BroJfC0k.js +1 -0
  326. package/dist/ui/assets/viml-DvXPmvsu.js +1 -0
  327. package/dist/ui/assets/vitesse-black-fwtXNY1n.js +1 -0
  328. package/dist/ui/assets/vitesse-dark-BZCL-v6S.js +1 -0
  329. package/dist/ui/assets/vitesse-light-VbXTXTou.js +1 -0
  330. package/dist/ui/assets/vue-No_8Jygd.js +1 -0
  331. package/dist/ui/assets/vue-html-kHJg98Kk.js +1 -0
  332. package/dist/ui/assets/vue-vine-Df4cEYaN.js +1 -0
  333. package/dist/ui/assets/vyper-CgoNMtux.js +1 -0
  334. package/dist/ui/assets/wasm-BnjxR4X6.js +1 -0
  335. package/dist/ui/assets/wasm-ByWQv1Qj.js +1 -0
  336. package/dist/ui/assets/wenyan-C8pVoKbM.js +1 -0
  337. package/dist/ui/assets/wgsl-BsKzXJz4.js +1 -0
  338. package/dist/ui/assets/wikitext-ClFFjSW2.js +1 -0
  339. package/dist/ui/assets/wit-DdvCle-K.js +1 -0
  340. package/dist/ui/assets/wolfram-DLL8P-h_.js +1 -0
  341. package/dist/ui/assets/workspace-app-C_wsC6VL.js +117 -0
  342. package/dist/ui/assets/workspace-app-DHvE2ojW.css +1 -0
  343. package/dist/ui/assets/xml-DUZ05dpG.js +1 -0
  344. package/dist/ui/assets/xsl-Bwp3w2OF.js +1 -0
  345. package/dist/ui/assets/yaml-IA_-TEM1.js +1 -0
  346. package/dist/ui/assets/zenscript-BnlCZFoB.js +1 -0
  347. package/dist/ui/assets/zig-CMLA9XwU.js +1 -0
  348. package/dist/ui/workspace-app.html +15 -0
  349. package/dist/user-config.js +97 -0
  350. package/dist/workspace-store.js +162 -0
  351. package/dist/workspaces.js +528 -0
  352. package/docs/agent-profile-schema.md +119 -0
  353. package/docs/artifact-exchange.md +63 -0
  354. package/docs/chatgpt-coding-workflow.md +183 -0
  355. package/docs/configuration.md +197 -0
  356. package/docs/gotchas.md +243 -0
  357. package/docs/roadmap.md +195 -0
  358. package/docs/security.md +142 -0
  359. package/docs/setup.md +132 -0
  360. package/docs/versioning.md +189 -0
  361. package/examples/agents/claude-implementer.md +30 -0
  362. package/examples/agents/codex-explorer.md +27 -0
  363. package/examples/agents/codex-qa-tester.md +29 -0
  364. package/examples/agents/codex-worker.md +25 -0
  365. package/examples/agents/copilot-reviewer.md +25 -0
  366. package/examples/agents/cursor-agent-worker.md +26 -0
  367. package/examples/agents/opencode-explorer.md +27 -0
  368. package/examples/agents/pi-reviewer.md +27 -0
  369. package/package.json +102 -0
  370. package/scripts/dev-server.mjs +120 -0
  371. package/scripts/fix-node-pty-permissions.mjs +22 -0
  372. package/scripts/release-version.mjs +207 -0
  373. package/skills/subagent-delegation/SKILL.md +132 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,45 @@
1
+ # Changelog
2
+
3
+ All notable ForgeRelay changes are documented here.
4
+
5
+ ## [Unreleased]
6
+
7
+ ## [0.1.0] - 2026-08-09
8
+
9
+ ### Added
10
+
11
+ - Initial ForgeRelay release, independently maintained by Akira-TL and based on the MIT-licensed DevSpace project by Waishnav.
12
+ - Reusable workspace identity based on the actual checkout or worktree directory rather than request or conversation identity.
13
+ - Branch-backed managed worktrees with explicit source, target-branch, and branch metadata.
14
+ - `close_worktree` lifecycle that commits remaining worktree changes, requires safe fast-forward integration, and cleans up the managed worktree and branch.
15
+ - Persistent worktree branch and target-branch metadata in the workspace store.
16
+ - Local coding-agent profiles and provider adapters for Codex, Claude, OpenCode, Pi, Cursor, and Copilot integrations already supported by the runtime.
17
+ - Tag-triggered GitHub Actions publishing for npm and GitHub Releases.
18
+ - Release metadata validation, package inspection, attribution checks, and standard SemVer release helpers.
19
+ - `NOTICE.md` and release-time attribution checks preserving the upstream MIT copyright and provenance.
20
+
21
+ ### Changed
22
+
23
+ - Product identity is now ForgeRelay, published as `@akira-tl/forgerelay` with the `forgerelay` CLI.
24
+ - Versioning now follows independent stable SemVer beginning at `0.1.0` instead of the temporary `X.Y.Z-akira.N` fork version format.
25
+ - New managed worktrees use dedicated `forgerelay/*` branches instead of detached HEADs or the earlier `devspace/*` prefix.
26
+ - Worktree creation is reserved for explicitly requested isolated or parallel work; ordinary work continues in the user's checkout.
27
+ - New configuration prefers `FORGERELAY_*` variables and `~/.forgerelay` while retaining legacy DevSpace configuration compatibility.
28
+ - New default state and worktree directories use ForgeRelay naming when no legacy state needs to be reused.
29
+ - MCP lifecycle instructions direct agents to reuse directory workspaces and close completed managed worktrees safely.
30
+ - Project file modifications are directed through dedicated edit/write capabilities rather than shell-based file mutation.
31
+
32
+ ### Compatibility
33
+
34
+ - Existing `DEVSPACE_*` environment variables remain accepted as fallbacks while `FORGERELAY_*` takes precedence.
35
+ - Existing `~/.devspace` configuration is reused automatically when `~/.forgerelay` does not yet exist.
36
+ - Existing DevSpace state directories and managed worktree metadata remain readable so upgrades do not orphan active work.
37
+ - Legacy internal persistence identifiers such as the existing SQLite schema names and review Git refs are intentionally retained where renaming would break stored state.
38
+ - Existing `@akira-tl/devspace` and upstream `@waishnav/devspace` install paths remain recognized by Pi PATH cleanup logic.
39
+
40
+ ### Fixed
41
+
42
+ - Reopening the same directory no longer creates a different workspace solely because the request came from another conversation.
43
+ - Worktree reuse resolves the actual target branch instead of treating the string `HEAD` as a stable reuse identity.
44
+ - Managed worktree close refuses dirty, wrong-branch, or diverged source checkouts instead of putting the source checkout into a merge-conflict state.
45
+ - Pi subagent PATH handling correctly removes ForgeRelay's own `node_modules/.bin` entry after the package rename.
package/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Waishnav
4
+ Copyright (c) 2026 Akira-TL, modifications
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
package/NOTICE.md ADDED
@@ -0,0 +1,19 @@
1
+ # ForgeRelay Notice
2
+
3
+ ForgeRelay is independently maintained by Akira-TL and contains substantial modifications to the upstream DevSpace project.
4
+
5
+ ## Upstream origin
6
+
7
+ The original DevSpace project was created by Waishnav and is available at:
8
+
9
+ - https://github.com/Waishnav/devspace
10
+
11
+ The upstream project is distributed under the MIT License. Its original copyright notice and the MIT permission notice are preserved in `LICENSE` and must remain included in copies or substantial portions of this software.
12
+
13
+ ## ForgeRelay modifications
14
+
15
+ ForgeRelay is a separately named and independently released derivative project. Changes maintained by Akira-TL include, among other work, workspace identity and persistence, branch-backed managed worktrees and close lifecycle, MCP workflow behavior, local coding-agent integration, release infrastructure, and ForgeRelay-specific configuration/runtime behavior.
16
+
17
+ ForgeRelay releases are not official releases of the upstream DevSpace project, and the ForgeRelay name and distribution should not be interpreted as endorsement by or affiliation with the upstream author.
18
+
19
+ Git history is intentionally retained so the provenance of upstream and later modifications remains inspectable.
package/README.md ADDED
@@ -0,0 +1,270 @@
1
+ # ForgeRelay
2
+
3
+ **Give MCP coding agents a real local workspace.**
4
+
5
+ [![npm](https://img.shields.io/npm/v/%40akira-tl%2Fforgerelay?style=flat-square)](https://www.npmjs.com/package/@akira-tl/forgerelay)
6
+ [![CI](https://img.shields.io/github/actions/workflow/status/Akira-TL/forgerelay/ci.yml?style=flat-square&branch=main)](https://github.com/Akira-TL/forgerelay/actions/workflows/ci.yml)
7
+ [![License](https://img.shields.io/npm/l/%40akira-tl%2Fforgerelay?style=flat-square)](LICENSE)
8
+
9
+ ForgeRelay is a self-hosted MCP server that lets ChatGPT and other MCP-capable
10
+ hosts work on the repositories already on your machine. The host gets explicit
11
+ tools for files, shell commands, Git, managed worktrees, change review, and
12
+ optional local-agent delegation. Your project stays in your normal development
13
+ environment, with the same compilers, package managers, credentials, and Git
14
+ installation you already use.
15
+
16
+ It is not a model and it is not another coding-agent UI. ForgeRelay sits between
17
+ the host and your local development tools and handles the parts that need to run
18
+ on your machine.
19
+
20
+ > [!NOTE]
21
+ > ForgeRelay is an independently maintained derivative of the MIT-licensed
22
+ > [Waishnav/devspace](https://github.com/Waishnav/devspace) project. It is not an
23
+ > official DevSpace release. The original copyright notice and license are kept
24
+ > in [LICENSE](LICENSE), with additional provenance in [NOTICE.md](NOTICE.md).
25
+
26
+ ## Quick start
27
+
28
+ ForgeRelay requires Node `>=22.19 <27`, npm, Git, and a Bash-compatible shell.
29
+
30
+ Install it globally:
31
+
32
+ ```bash
33
+ npm install -g @akira-tl/forgerelay
34
+ ```
35
+
36
+ Then configure and start it:
37
+
38
+ ```bash
39
+ forgerelay init
40
+ forgerelay serve
41
+ ```
42
+
43
+ Or run it directly with `npx`:
44
+
45
+ ```bash
46
+ npx @akira-tl/forgerelay init
47
+ npx @akira-tl/forgerelay serve
48
+ ```
49
+
50
+ The default local MCP endpoint is:
51
+
52
+ ```text
53
+ http://127.0.0.1:7676/mcp
54
+ ```
55
+
56
+ If the MCP host cannot reach localhost, put ForgeRelay behind a public HTTPS
57
+ tunnel or reverse proxy such as Cloudflare Tunnel, ngrok, Pinggy, Tailscale
58
+ Funnel, or your own proxy. During setup, enter the public origin without `/mcp`:
59
+
60
+ ```text
61
+ https://your-tunnel-host.example.com
62
+ ```
63
+
64
+ The client then connects to:
65
+
66
+ ```text
67
+ https://your-tunnel-host.example.com/mcp
68
+ ```
69
+
70
+ ForgeRelay uses an Owner-password OAuth approval flow. `forgerelay init` prints
71
+ the password and stores it in the active config directory. New installations use:
72
+
73
+ ```text
74
+ ~/.forgerelay/config.json
75
+ ~/.forgerelay/auth.json
76
+ ```
77
+
78
+ Keep `auth.json` private.
79
+
80
+ ## What it gives an MCP host
81
+
82
+ Once a workspace is open, the host can:
83
+
84
+ - read, create, edit, and search files inside that workspace;
85
+ - run your local tests, builds, package scripts, Git commands, and shell tools;
86
+ - reuse the same workspace when the same checkout is opened again;
87
+ - follow repository instructions from `AGENTS.md` and `CLAUDE.md`;
88
+ - discover Agent Skills and configured local subagent profiles;
89
+ - create a branch-backed Git worktree when you explicitly ask for isolated or
90
+ parallel work;
91
+ - close a managed worktree by committing its remaining changes and
92
+ fast-forwarding the target branch when that can be done safely;
93
+ - show aggregate changes through optional ChatGPT Apps-compatible UI cards.
94
+
95
+ Normal work happens in your existing checkout. ForgeRelay does not silently move
96
+ every task into a worktree.
97
+
98
+ ## Worktrees without the usual cleanup mess
99
+
100
+ A new managed worktree gets its own `forgerelay/*` branch instead of a detached
101
+ HEAD. It remains visible from the source repository with ordinary Git commands:
102
+
103
+ ```bash
104
+ git worktree list
105
+ git branch
106
+ ```
107
+
108
+ When `close_worktree` succeeds, ForgeRelay:
109
+
110
+ 1. checks that the source checkout is clean and still on the expected target branch;
111
+ 2. commits any remaining worktree changes;
112
+ 3. checks that the target can advance without a merge commit or conflict;
113
+ 4. fast-forwards the target branch;
114
+ 5. removes the worktree and the already-merged managed branch.
115
+
116
+ If the histories have diverged, the close is refused and the worktree is left in
117
+ place. ForgeRelay does not put the source checkout into a merge-conflict state.
118
+ You can rebase and verify inside the worktree, then retry the close.
119
+
120
+ ## Local coding agents
121
+
122
+ ForgeRelay can delegate work to local coding runtimes through user-defined
123
+ profiles. The current adapter layer supports Codex, Claude, OpenCode, Pi,
124
+ Cursor, and Copilot where the corresponding local integration is available.
125
+
126
+ Profiles can live in:
127
+
128
+ ```text
129
+ ~/.forgerelay/agents/*.md
130
+ .forgerelay/agents/*.md
131
+ ```
132
+
133
+ The current CLI workflow is:
134
+
135
+ ```bash
136
+ forgerelay agents ls
137
+ forgerelay agents run <profile-or-provider-or-id> "<prompt>"
138
+ forgerelay agents show <id>
139
+ ```
140
+
141
+ A first-class MCP subagent interface is planned so a parent agent can use the
142
+ same runtime without going through the CLI.
143
+
144
+ See [Agent Profile Schema](docs/agent-profile-schema.md) for the profile format.
145
+
146
+ ## Configuration and upgrades from DevSpace
147
+
148
+ New configuration uses the `FORGERELAY_*` prefix. For example:
149
+
150
+ ```bash
151
+ FORGERELAY_ALLOWED_ROOTS="$HOME/projects" \
152
+ FORGERELAY_PUBLIC_BASE_URL="https://forge.example.com" \
153
+ forgerelay serve
154
+ ```
155
+
156
+ Existing `DEVSPACE_*` variables are still accepted as fallbacks during the
157
+ rename transition. When both names are present, `FORGERELAY_*` wins.
158
+
159
+ The same rule applies to persisted configuration. ForgeRelay prefers
160
+ `~/.forgerelay`, but if that directory does not exist and an existing
161
+ `~/.devspace` setup does, ForgeRelay keeps using the legacy directory rather
162
+ than orphaning OAuth credentials, workspace state, or managed worktrees.
163
+
164
+ Project-level `.devspace/agents` profiles are also still readable for migration
165
+ compatibility. New project configuration should use `.forgerelay`.
166
+
167
+ See [Configuration Reference](docs/configuration.md) for all supported options.
168
+
169
+ ## Security model
170
+
171
+ A connected MCP host can make real changes to local projects through ForgeRelay,
172
+ using the same local account that runs the server. That trust boundary matters.
173
+
174
+ Filesystem tools enforce configured workspace and allowed-root boundaries. Shell
175
+ commands are different: they run with the authority of your local user and are
176
+ **not** contained by an operating-system sandbox added by ForgeRelay.
177
+
178
+ Only connect hosts you trust, keep the Owner password private, and expose only
179
+ the project roots you actually want the host to use.
180
+
181
+ See [Security Model](docs/security.md) for the full boundary and threat model.
182
+
183
+ ## Platform support
184
+
185
+ | Platform | Status | Notes |
186
+ | --- | --- | --- |
187
+ | Linux | Supported | Requires Node, npm, Git, and Bash. |
188
+ | macOS | Supported | Requires Node, npm, Git, and Bash. |
189
+ | Windows with Git Bash, WSL, MSYS2, or Cygwin Bash | Supported | Git Bash is the simplest native Windows setup. |
190
+ | Windows PowerShell or `cmd.exe` only | Not supported yet | Install Git Bash or use WSL. |
191
+
192
+ You can check the local runtime with:
193
+
194
+ ```bash
195
+ forgerelay doctor
196
+ ```
197
+
198
+ ## Where ForgeRelay is going
199
+
200
+ The next additions are focused on making the local execution layer more useful,
201
+ not on turning ForgeRelay into another all-in-one agent framework:
202
+
203
+ 1. lifecycle hooks;
204
+ 2. LSP-backed code intelligence;
205
+ 3. first-class MCP subagent delegation;
206
+ 4. stronger worktree verification and recovery;
207
+ 5. checkpoint/rewind and retention improvements.
208
+
209
+ ForgeRelay does not plan to add its own shell sandbox, long-term memory system,
210
+ or plugin marketplace. Conversation, planning, web access, and other host-native
211
+ capabilities stay with the MCP host. Long-term context can be provided by a
212
+ separate service instead of being mixed into the workspace runtime.
213
+
214
+ See [Roadmap](docs/roadmap.md) for the current plan.
215
+
216
+ ## Releases
217
+
218
+ ForgeRelay uses standard SemVer, starting at `0.1.0`.
219
+
220
+ Prepare a release with:
221
+
222
+ ```bash
223
+ npm run release:check
224
+ npm run release:patch
225
+ npm run release:minor
226
+ npm run release:major
227
+ npm run release:verify
228
+ ```
229
+
230
+ Pushing a matching `vX.Y.Z` tag to `Akira-TL/forgerelay` is the publish action.
231
+ GitHub Actions verifies the tagged commit, publishes `@akira-tl/forgerelay` to
232
+ npm, and creates the matching GitHub Release.
233
+
234
+ See [Versioning and Release Management](docs/versioning.md) for the bootstrap and
235
+ Trusted Publishing setup.
236
+
237
+ ## Documentation
238
+
239
+ - [Setup Guide](docs/setup.md)
240
+ - [ChatGPT Coding Workflow](docs/chatgpt-coding-workflow.md)
241
+ - [Configuration Reference](docs/configuration.md)
242
+ - [Agent Profile Schema](docs/agent-profile-schema.md)
243
+ - [Native File Download](docs/artifact-exchange.md)
244
+ - [Security Model](docs/security.md)
245
+ - [Troubleshooting](docs/gotchas.md)
246
+ - [Roadmap](docs/roadmap.md)
247
+ - [Versioning and Release Management](docs/versioning.md)
248
+ - [Changelog](CHANGELOG.md)
249
+ - [Attribution Notice](NOTICE.md)
250
+
251
+ ## Upstream and attribution
252
+
253
+ ForgeRelay is based on the original
254
+ [Waishnav/devspace](https://github.com/Waishnav/devspace) project by Waishnav,
255
+ released under the MIT License. ForgeRelay has its own name, package, release
256
+ stream, runtime changes, and roadmap, but the upstream provenance remains part of
257
+ the project.
258
+
259
+ The original copyright notice remains in [LICENSE](LICENSE). See
260
+ [NOTICE.md](NOTICE.md) for the attribution and modification notice.
261
+
262
+ ## Local development
263
+
264
+ ```bash
265
+ npm install --include=dev
266
+ npm run dev
267
+ npm run typecheck
268
+ npm test
269
+ npm run build
270
+ ```