@truefoundry/trueforge 0.2.0-rc.3 → 0.2.0-rc.5

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 (214) hide show
  1. package/dist/_frontend/assets/{AgentCodeSnippets-N546FNNS-DlWVvctF.js → AgentCodeSnippets-V5A56M7R-ZCh9CtX_.js} +1 -1
  2. package/dist/_frontend/assets/AgentCodeSnippets-V5A56M7R-ZCh9CtX_.js.br +0 -0
  3. package/dist/_frontend/assets/AgentCodeSnippets-V5A56M7R-ZCh9CtX_.js.gz +0 -0
  4. package/dist/_frontend/assets/AgentMetricChart-GEADURES-CIR5UtB4.js +1 -0
  5. package/dist/_frontend/assets/AgentMetricChart-GEADURES-CIR5UtB4.js.br +0 -0
  6. package/dist/_frontend/assets/AgentMetricChart-GEADURES-CIR5UtB4.js.gz +0 -0
  7. package/dist/_frontend/assets/{AgentOverview-VF74XC7I-DuR4GDFb.js → AgentOverview-NPC4P2EY-Z0AslRUd.js} +1 -1
  8. package/dist/_frontend/assets/AgentOverview-NPC4P2EY-Z0AslRUd.js.br +0 -0
  9. package/dist/_frontend/assets/AgentOverview-NPC4P2EY-Z0AslRUd.js.gz +0 -0
  10. package/dist/_frontend/assets/{AgentSessionEventTimeline-RFR6LQMY-B_5nS70p.js → AgentSessionEventTimeline-UUXOJXTC-Nk5ZgtJk.js} +1 -1
  11. package/dist/_frontend/assets/AgentSessionEventTimeline-UUXOJXTC-Nk5ZgtJk.js.br +0 -0
  12. package/dist/_frontend/assets/AgentSessionEventTimeline-UUXOJXTC-Nk5ZgtJk.js.gz +0 -0
  13. package/dist/_frontend/assets/{AgentSessionEventTimelineChart-27CQF6FX-DSTwylcS.js → AgentSessionEventTimelineChart-FIAQCYJC-TBWekOBI.js} +1 -1
  14. package/dist/_frontend/assets/AgentSessionEventTimelineChart-FIAQCYJC-TBWekOBI.js.br +0 -0
  15. package/dist/_frontend/assets/AgentSessionEventTimelineChart-FIAQCYJC-TBWekOBI.js.gz +0 -0
  16. package/dist/_frontend/assets/AgentSessions-WHODEG2M-OzQblCn4.js +1 -0
  17. package/dist/_frontend/assets/AgentSessions-WHODEG2M-OzQblCn4.js.br +0 -0
  18. package/dist/_frontend/assets/AgentSessions-WHODEG2M-OzQblCn4.js.gz +0 -0
  19. package/dist/_frontend/assets/{ConnectorSettings-R5VEP7BO-Cvdqimeu.js → ConnectorSettings-QTAI4TQX-PySj_xEm.js} +1 -1
  20. package/dist/_frontend/assets/ConnectorSettings-QTAI4TQX-PySj_xEm.js.br +0 -0
  21. package/dist/_frontend/assets/ConnectorSettings-QTAI4TQX-PySj_xEm.js.gz +0 -0
  22. package/dist/_frontend/assets/{DockLayout-F44RWGEY-DVcqWNpi.js → DockLayout-TATYU5SV-DAuT7yes.js} +1 -1
  23. package/dist/_frontend/assets/{DrawerLayout-SQ323AVM-CrsDJpVR.js → DrawerLayout-DXHNV33K-BP-6TUEf.js} +2 -2
  24. package/dist/_frontend/assets/DrawerLayout-DXHNV33K-BP-6TUEf.js.br +0 -0
  25. package/dist/_frontend/assets/DrawerLayout-DXHNV33K-BP-6TUEf.js.gz +0 -0
  26. package/dist/_frontend/assets/{ModelSettings-6QLS63HM-B0omK7y_.js → ModelSettings-UWTBHQRG-L5KYrHBM.js} +1 -1
  27. package/dist/_frontend/assets/ModelSettings-UWTBHQRG-L5KYrHBM.js.br +0 -0
  28. package/dist/_frontend/assets/ModelSettings-UWTBHQRG-L5KYrHBM.js.gz +0 -0
  29. package/dist/_frontend/assets/SandboxSettings-BITQONS3-COVuckfo.js +1 -0
  30. package/dist/_frontend/assets/SandboxSettings-BITQONS3-COVuckfo.js.br +0 -0
  31. package/dist/_frontend/assets/SandboxSettings-BITQONS3-COVuckfo.js.gz +0 -0
  32. package/dist/_frontend/assets/SchedulesPage-JIUWNYUH-5f3ROPme.js +1 -0
  33. package/dist/_frontend/assets/SchedulesPage-JIUWNYUH-5f3ROPme.js.br +0 -0
  34. package/dist/_frontend/assets/SchedulesPage-JIUWNYUH-5f3ROPme.js.gz +0 -0
  35. package/dist/_frontend/assets/{SettingsBuilder-GISAH2WU-2fVa9yeg.js → SettingsBuilder-3OA4UCIM-AN2PJd1q.js} +2 -2
  36. package/dist/_frontend/assets/SettingsBuilder-3OA4UCIM-AN2PJd1q.js.br +0 -0
  37. package/dist/_frontend/assets/SettingsBuilder-3OA4UCIM-AN2PJd1q.js.gz +0 -0
  38. package/dist/_frontend/assets/{ShellRouteSync-EN33DUQ7-C280D67g.js → ShellRouteSync-J74MV23Q-CDk4uzrR.js} +1 -1
  39. package/dist/_frontend/assets/ShellRouteSync-J74MV23Q-CDk4uzrR.js.br +0 -0
  40. package/dist/_frontend/assets/ShellRouteSync-J74MV23Q-CDk4uzrR.js.gz +0 -0
  41. package/dist/_frontend/assets/{SidebarLayout-35K4AKTC-0-Mjo6gf.js → SidebarLayout-EQXQPYIU-zWCTPIcp.js} +2 -2
  42. package/dist/_frontend/assets/SidebarLayout-EQXQPYIU-zWCTPIcp.js.br +0 -0
  43. package/dist/_frontend/assets/SidebarLayout-EQXQPYIU-zWCTPIcp.js.gz +0 -0
  44. package/dist/_frontend/assets/{SkillSettings-JSX2BTII-BriJH4Oj.js → SkillSettings-KQ6GQ7JW-oZVHsKV_.js} +1 -1
  45. package/dist/_frontend/assets/SkillSettings-KQ6GQ7JW-oZVHsKV_.js.br +0 -0
  46. package/dist/_frontend/assets/SkillSettings-KQ6GQ7JW-oZVHsKV_.js.gz +0 -0
  47. package/dist/_frontend/assets/TrueForgeUIWithRouter-R3UXQZRY-wD0P6NXT.js +1 -0
  48. package/dist/_frontend/assets/{WidgetLayout-RKBSN2FZ-u6iVYu3w.js → WidgetLayout-YWZTYFZL-BgYVWW8O.js} +1 -1
  49. package/dist/_frontend/assets/WidgetLayout-YWZTYFZL-BgYVWW8O.js.br +0 -0
  50. package/dist/_frontend/assets/WidgetLayout-YWZTYFZL-BgYVWW8O.js.gz +0 -0
  51. package/dist/_frontend/assets/{chunk-73FQVITT-mgvTPDmd.js → chunk-4MCIDE2C-ClJFqC75.js} +1 -1
  52. package/dist/_frontend/assets/chunk-4MCIDE2C-ClJFqC75.js.br +0 -0
  53. package/dist/_frontend/assets/chunk-4MCIDE2C-ClJFqC75.js.gz +0 -0
  54. package/dist/_frontend/assets/{chunk-62JRHF6Z-DYrEQoq5.js → chunk-62JRHF6Z-CXLsU_my.js} +1 -1
  55. package/dist/_frontend/assets/chunk-62JRHF6Z-CXLsU_my.js.br +0 -0
  56. package/dist/_frontend/assets/chunk-62JRHF6Z-CXLsU_my.js.gz +0 -0
  57. package/dist/_frontend/assets/{chunk-LUG7E6BL-QKvrInc2.js → chunk-7NYDADYN-_y_WJnHd.js} +1 -1
  58. package/dist/_frontend/assets/chunk-7NYDADYN-_y_WJnHd.js.br +0 -0
  59. package/dist/_frontend/assets/chunk-7NYDADYN-_y_WJnHd.js.gz +0 -0
  60. package/dist/_frontend/assets/{chunk-GIPFF6FZ-DPTdcXQj.js → chunk-ZZB3JIBQ-EN4V28Ji.js} +2 -2
  61. package/dist/_frontend/assets/chunk-ZZB3JIBQ-EN4V28Ji.js.br +0 -0
  62. package/dist/_frontend/assets/chunk-ZZB3JIBQ-EN4V28Ji.js.gz +0 -0
  63. package/dist/_frontend/assets/{cssMode-BNfxrwWp.js → cssMode-Dk1ChNt4.js} +1 -1
  64. package/dist/_frontend/assets/cssMode-Dk1ChNt4.js.br +0 -0
  65. package/dist/_frontend/assets/cssMode-Dk1ChNt4.js.gz +0 -0
  66. package/dist/_frontend/assets/{freemarker2-ClbLzW-k.js → freemarker2-D_Yi-Euz.js} +1 -1
  67. package/dist/_frontend/assets/freemarker2-D_Yi-Euz.js.br +0 -0
  68. package/dist/_frontend/assets/freemarker2-D_Yi-Euz.js.gz +0 -0
  69. package/dist/_frontend/assets/{handlebars-5nE6yTDt.js → handlebars-Cm_UQxos.js} +1 -1
  70. package/dist/_frontend/assets/handlebars-Cm_UQxos.js.br +0 -0
  71. package/dist/_frontend/assets/handlebars-Cm_UQxos.js.gz +0 -0
  72. package/dist/_frontend/assets/{html-BZRf7Zhg.js → html-BIx_CMMA.js} +1 -1
  73. package/dist/_frontend/assets/html-BIx_CMMA.js.br +0 -0
  74. package/dist/_frontend/assets/html-BIx_CMMA.js.gz +0 -0
  75. package/dist/_frontend/assets/{htmlMode-C6O73C_r.js → htmlMode-D7eeA6bm.js} +1 -1
  76. package/dist/_frontend/assets/htmlMode-D7eeA6bm.js.br +0 -0
  77. package/dist/_frontend/assets/htmlMode-D7eeA6bm.js.gz +0 -0
  78. package/dist/_frontend/assets/{index-BBGLYdJn.css → index-B01pXqvC.css} +1 -1
  79. package/dist/_frontend/assets/index-B01pXqvC.css.br +0 -0
  80. package/dist/_frontend/assets/{index-BBGLYdJn.css.gz → index-B01pXqvC.css.gz} +0 -0
  81. package/dist/_frontend/assets/{index-DBjak9Sg.js → index-BJUe77Ib.js} +3 -3
  82. package/dist/_frontend/assets/index-BJUe77Ib.js.br +0 -0
  83. package/dist/_frontend/assets/index-BJUe77Ib.js.gz +0 -0
  84. package/dist/_frontend/assets/index-Y_4XXAao.js +933 -0
  85. package/dist/_frontend/assets/index-Y_4XXAao.js.br +0 -0
  86. package/dist/_frontend/assets/index-Y_4XXAao.js.gz +0 -0
  87. package/dist/_frontend/assets/{index-D0Yf366e.js → index-uWXj7DW5.js} +1 -1
  88. package/dist/_frontend/assets/index-uWXj7DW5.js.br +0 -0
  89. package/dist/_frontend/assets/index-uWXj7DW5.js.gz +0 -0
  90. package/dist/_frontend/assets/{javascript-CrSAQdU4.js → javascript-CHojKZO8.js} +1 -1
  91. package/dist/_frontend/assets/{jsonMode-Dal25yu2.js → jsonMode-BTk9mIUo.js} +1 -1
  92. package/dist/_frontend/assets/jsonMode-BTk9mIUo.js.br +0 -0
  93. package/dist/_frontend/assets/jsonMode-BTk9mIUo.js.gz +0 -0
  94. package/dist/_frontend/assets/{liquid-Ci7gjLGv.js → liquid-M5ngFTv5.js} +1 -1
  95. package/dist/_frontend/assets/liquid-M5ngFTv5.js.br +0 -0
  96. package/dist/_frontend/assets/liquid-M5ngFTv5.js.gz +0 -0
  97. package/dist/_frontend/assets/{lspLanguageFeatures-rM-QiA57.js → lspLanguageFeatures-jPhJA8WX.js} +1 -1
  98. package/dist/_frontend/assets/lspLanguageFeatures-jPhJA8WX.js.br +0 -0
  99. package/dist/_frontend/assets/lspLanguageFeatures-jPhJA8WX.js.gz +0 -0
  100. package/dist/_frontend/assets/{mdx-J3rSuJw4.js → mdx-DmyHsr0E.js} +1 -1
  101. package/dist/_frontend/assets/mdx-DmyHsr0E.js.br +0 -0
  102. package/dist/_frontend/assets/mdx-DmyHsr0E.js.gz +0 -0
  103. package/dist/_frontend/assets/{python-BSpXGEco.js → python-BRFA9b-I.js} +1 -1
  104. package/dist/_frontend/assets/python-BRFA9b-I.js.br +0 -0
  105. package/dist/_frontend/assets/python-BRFA9b-I.js.gz +0 -0
  106. package/dist/_frontend/assets/{razor-DLV1uhEc.js → razor-CYsS4Kjw.js} +1 -1
  107. package/dist/_frontend/assets/razor-CYsS4Kjw.js.br +0 -0
  108. package/dist/_frontend/assets/razor-CYsS4Kjw.js.gz +0 -0
  109. package/dist/_frontend/assets/{tsMode-CQqRu3mP.js → tsMode-COQtB6OT.js} +1 -1
  110. package/dist/_frontend/assets/tsMode-COQtB6OT.js.br +0 -0
  111. package/dist/_frontend/assets/tsMode-COQtB6OT.js.gz +0 -0
  112. package/dist/_frontend/assets/{typescript-BExfm66c.js → typescript-B3uUksf0.js} +1 -1
  113. package/dist/_frontend/assets/typescript-B3uUksf0.js.br +0 -0
  114. package/dist/_frontend/assets/typescript-B3uUksf0.js.gz +0 -0
  115. package/dist/_frontend/assets/{workers-Cn25A5Lb.js → workers-CgLq606Q.js} +1 -1
  116. package/dist/_frontend/assets/workers-CgLq606Q.js.br +0 -0
  117. package/dist/_frontend/assets/workers-CgLq606Q.js.gz +0 -0
  118. package/dist/_frontend/assets/{xml-D2IDD-hb.js → xml-YO228FLn.js} +1 -1
  119. package/dist/_frontend/assets/xml-YO228FLn.js.br +0 -0
  120. package/dist/_frontend/assets/xml-YO228FLn.js.gz +0 -0
  121. package/dist/_frontend/assets/{yaml-CY4c2A0Y.js → yaml-CirMKB9x.js} +1 -1
  122. package/dist/_frontend/assets/yaml-CirMKB9x.js.br +0 -0
  123. package/dist/_frontend/assets/yaml-CirMKB9x.js.gz +0 -0
  124. package/dist/_frontend/index.html +2 -2
  125. package/dist/controller-main.js +101 -108
  126. package/dist/controller-main.js.map +1 -1
  127. package/dist/main.js +471 -282
  128. package/dist/main.js.map +1 -1
  129. package/package.json +2 -2
  130. package/dist/_frontend/assets/AgentCodeSnippets-N546FNNS-DlWVvctF.js.br +0 -0
  131. package/dist/_frontend/assets/AgentCodeSnippets-N546FNNS-DlWVvctF.js.gz +0 -0
  132. package/dist/_frontend/assets/AgentMetricChart-YWJYVYYA-DTDXcVgE.js +0 -1
  133. package/dist/_frontend/assets/AgentMetricChart-YWJYVYYA-DTDXcVgE.js.br +0 -0
  134. package/dist/_frontend/assets/AgentMetricChart-YWJYVYYA-DTDXcVgE.js.gz +0 -0
  135. package/dist/_frontend/assets/AgentOverview-VF74XC7I-DuR4GDFb.js.br +0 -0
  136. package/dist/_frontend/assets/AgentOverview-VF74XC7I-DuR4GDFb.js.gz +0 -0
  137. package/dist/_frontend/assets/AgentSessionEventTimeline-RFR6LQMY-B_5nS70p.js.br +0 -0
  138. package/dist/_frontend/assets/AgentSessionEventTimeline-RFR6LQMY-B_5nS70p.js.gz +0 -0
  139. package/dist/_frontend/assets/AgentSessionEventTimelineChart-27CQF6FX-DSTwylcS.js.br +0 -0
  140. package/dist/_frontend/assets/AgentSessionEventTimelineChart-27CQF6FX-DSTwylcS.js.gz +0 -0
  141. package/dist/_frontend/assets/AgentSessions-4IVX2SGD-Bf2N2ega.js +0 -1
  142. package/dist/_frontend/assets/AgentSessions-4IVX2SGD-Bf2N2ega.js.br +0 -0
  143. package/dist/_frontend/assets/AgentSessions-4IVX2SGD-Bf2N2ega.js.gz +0 -0
  144. package/dist/_frontend/assets/ConnectorSettings-R5VEP7BO-Cvdqimeu.js.br +0 -0
  145. package/dist/_frontend/assets/ConnectorSettings-R5VEP7BO-Cvdqimeu.js.gz +0 -0
  146. package/dist/_frontend/assets/DrawerLayout-SQ323AVM-CrsDJpVR.js.br +0 -0
  147. package/dist/_frontend/assets/DrawerLayout-SQ323AVM-CrsDJpVR.js.gz +0 -0
  148. package/dist/_frontend/assets/ModelSettings-6QLS63HM-B0omK7y_.js.br +0 -0
  149. package/dist/_frontend/assets/ModelSettings-6QLS63HM-B0omK7y_.js.gz +0 -0
  150. package/dist/_frontend/assets/SandboxSettings-OLKDXIQS-O1pf1zn0.js +0 -1
  151. package/dist/_frontend/assets/SandboxSettings-OLKDXIQS-O1pf1zn0.js.br +0 -0
  152. package/dist/_frontend/assets/SandboxSettings-OLKDXIQS-O1pf1zn0.js.gz +0 -0
  153. package/dist/_frontend/assets/SchedulesPage-TMOTK6DR-D9JlkZFv.js +0 -1
  154. package/dist/_frontend/assets/SchedulesPage-TMOTK6DR-D9JlkZFv.js.br +0 -0
  155. package/dist/_frontend/assets/SchedulesPage-TMOTK6DR-D9JlkZFv.js.gz +0 -0
  156. package/dist/_frontend/assets/SettingsBuilder-GISAH2WU-2fVa9yeg.js.br +0 -0
  157. package/dist/_frontend/assets/SettingsBuilder-GISAH2WU-2fVa9yeg.js.gz +0 -0
  158. package/dist/_frontend/assets/ShellRouteSync-EN33DUQ7-C280D67g.js.br +0 -0
  159. package/dist/_frontend/assets/ShellRouteSync-EN33DUQ7-C280D67g.js.gz +0 -0
  160. package/dist/_frontend/assets/SidebarLayout-35K4AKTC-0-Mjo6gf.js.br +0 -0
  161. package/dist/_frontend/assets/SidebarLayout-35K4AKTC-0-Mjo6gf.js.gz +0 -0
  162. package/dist/_frontend/assets/SkillSettings-JSX2BTII-BriJH4Oj.js.br +0 -0
  163. package/dist/_frontend/assets/SkillSettings-JSX2BTII-BriJH4Oj.js.gz +0 -0
  164. package/dist/_frontend/assets/TrueForgeUIWithRouter-6VCR7ES3-CtIaYnA8.js +0 -1
  165. package/dist/_frontend/assets/WidgetLayout-RKBSN2FZ-u6iVYu3w.js.br +0 -0
  166. package/dist/_frontend/assets/WidgetLayout-RKBSN2FZ-u6iVYu3w.js.gz +0 -0
  167. package/dist/_frontend/assets/chunk-62JRHF6Z-DYrEQoq5.js.br +0 -0
  168. package/dist/_frontend/assets/chunk-62JRHF6Z-DYrEQoq5.js.gz +0 -0
  169. package/dist/_frontend/assets/chunk-73FQVITT-mgvTPDmd.js.br +0 -0
  170. package/dist/_frontend/assets/chunk-73FQVITT-mgvTPDmd.js.gz +0 -0
  171. package/dist/_frontend/assets/chunk-GIPFF6FZ-DPTdcXQj.js.br +0 -0
  172. package/dist/_frontend/assets/chunk-GIPFF6FZ-DPTdcXQj.js.gz +0 -0
  173. package/dist/_frontend/assets/chunk-LUG7E6BL-QKvrInc2.js.br +0 -0
  174. package/dist/_frontend/assets/chunk-LUG7E6BL-QKvrInc2.js.gz +0 -0
  175. package/dist/_frontend/assets/cssMode-BNfxrwWp.js.br +0 -0
  176. package/dist/_frontend/assets/cssMode-BNfxrwWp.js.gz +0 -0
  177. package/dist/_frontend/assets/freemarker2-ClbLzW-k.js.br +0 -0
  178. package/dist/_frontend/assets/freemarker2-ClbLzW-k.js.gz +0 -0
  179. package/dist/_frontend/assets/handlebars-5nE6yTDt.js.br +0 -0
  180. package/dist/_frontend/assets/handlebars-5nE6yTDt.js.gz +0 -0
  181. package/dist/_frontend/assets/html-BZRf7Zhg.js.br +0 -0
  182. package/dist/_frontend/assets/html-BZRf7Zhg.js.gz +0 -0
  183. package/dist/_frontend/assets/htmlMode-C6O73C_r.js.br +0 -0
  184. package/dist/_frontend/assets/htmlMode-C6O73C_r.js.gz +0 -0
  185. package/dist/_frontend/assets/index-BBGLYdJn.css.br +0 -0
  186. package/dist/_frontend/assets/index-D0Yf366e.js.br +0 -0
  187. package/dist/_frontend/assets/index-D0Yf366e.js.gz +0 -0
  188. package/dist/_frontend/assets/index-DBjak9Sg.js.br +0 -0
  189. package/dist/_frontend/assets/index-DBjak9Sg.js.gz +0 -0
  190. package/dist/_frontend/assets/index-XpZpj5Rl.js +0 -933
  191. package/dist/_frontend/assets/index-XpZpj5Rl.js.br +0 -0
  192. package/dist/_frontend/assets/index-XpZpj5Rl.js.gz +0 -0
  193. package/dist/_frontend/assets/jsonMode-Dal25yu2.js.br +0 -0
  194. package/dist/_frontend/assets/jsonMode-Dal25yu2.js.gz +0 -0
  195. package/dist/_frontend/assets/liquid-Ci7gjLGv.js.br +0 -0
  196. package/dist/_frontend/assets/liquid-Ci7gjLGv.js.gz +0 -0
  197. package/dist/_frontend/assets/lspLanguageFeatures-rM-QiA57.js.br +0 -0
  198. package/dist/_frontend/assets/lspLanguageFeatures-rM-QiA57.js.gz +0 -0
  199. package/dist/_frontend/assets/mdx-J3rSuJw4.js.br +0 -0
  200. package/dist/_frontend/assets/mdx-J3rSuJw4.js.gz +0 -0
  201. package/dist/_frontend/assets/python-BSpXGEco.js.br +0 -0
  202. package/dist/_frontend/assets/python-BSpXGEco.js.gz +0 -0
  203. package/dist/_frontend/assets/razor-DLV1uhEc.js.br +0 -0
  204. package/dist/_frontend/assets/razor-DLV1uhEc.js.gz +0 -0
  205. package/dist/_frontend/assets/tsMode-CQqRu3mP.js.br +0 -0
  206. package/dist/_frontend/assets/tsMode-CQqRu3mP.js.gz +0 -0
  207. package/dist/_frontend/assets/typescript-BExfm66c.js.br +0 -0
  208. package/dist/_frontend/assets/typescript-BExfm66c.js.gz +0 -0
  209. package/dist/_frontend/assets/workers-Cn25A5Lb.js.br +0 -0
  210. package/dist/_frontend/assets/workers-Cn25A5Lb.js.gz +0 -0
  211. package/dist/_frontend/assets/xml-D2IDD-hb.js.br +0 -0
  212. package/dist/_frontend/assets/xml-D2IDD-hb.js.gz +0 -0
  213. package/dist/_frontend/assets/yaml-CY4c2A0Y.js.br +0 -0
  214. package/dist/_frontend/assets/yaml-CY4c2A0Y.js.gz +0 -0
@@ -16,6 +16,7 @@ var DEFAULT_POSTGRES_DB = "trueforge";
16
16
  var DEFAULT_POSTGRES_HOST = "localhost";
17
17
  var DEFAULT_POSTGRES_PORT = 5432;
18
18
  var DEFAULT_REDIS_URL = "redis://localhost:6379";
19
+ var STANDALONE_TRUEFORGE_API_KEY = "trueforge-standalone";
19
20
  var DEFAULT_OIDC_USER_REFERENCE_CLAIM = "sub";
20
21
  var DEFAULT_OIDC_USER_DISPLAY_NAME_CLAIM = "name";
21
22
  var DEFAULT_OIDC_USER_ROLE_CLAIM = "groups";
@@ -330,6 +331,7 @@ var shared = {
330
331
  }),
331
332
  PUBLIC_BASE_URL: parsePublicBaseUrl(getEnv("PUBLIC_BASE_URL", { defaultValue: "" })),
332
333
  SERVER_URL: getEnv("SERVER_URL", { defaultValue: `http://localhost:${String(port)}` }) ?? `http://localhost:${String(port)}`,
334
+ TRUEFORGE_API_KEY: standalone ? getEnv("TRUEFORGE_API_KEY", { defaultValue: STANDALONE_TRUEFORGE_API_KEY }) ?? STANDALONE_TRUEFORGE_API_KEY : getEnv("TRUEFORGE_API_KEY", { required: true }) ?? "",
333
335
  TRUEFORGE_MTLS_ENABLED: parseBoolean({
334
336
  envKey: "TRUEFORGE_MTLS_ENABLED",
335
337
  raw: getEnv("TRUEFORGE_MTLS_ENABLED"),
@@ -437,11 +439,11 @@ if (isTrueFoundryModeEnabled(configuration)) {
437
439
  }
438
440
  }
439
441
  }
442
+ if (!configuration.STANDALONE && configuration.TRUEFORGE_API_KEY.trim() === "") {
443
+ throw new Error("TRUEFORGE_API_KEY must not be empty when STANDALONE=false.");
444
+ }
440
445
  var config_default = configuration;
441
446
 
442
- // src/controller.ts
443
- import { TrueForge } from "@truefoundry/trueforge-sdk";
444
-
445
447
  // src/controller/Controller.ts
446
448
  var CONTROLLER_STOPPED = "controller-stopped";
447
449
  var Controller = class {
@@ -536,6 +538,9 @@ var Controller = class {
536
538
  }
537
539
  };
538
540
 
541
+ // src/controller/scheduleDispatch.ts
542
+ import { TrueForge } from "@truefoundry/trueforge-sdk";
543
+
539
544
  // src/db/scheduleStore.ts
540
545
  import { randomUUID } from "crypto";
541
546
 
@@ -626,6 +631,9 @@ var CreateScheduleRunRequestSchema = z2.object({
626
631
  schedule_id: z2.string().min(1).max(64).describe("Immutable schedule identifier.")
627
632
  }).strict().describe("Trigger an immediate run for the given schedule. The task is taken from the schedule manifest.").openapi("CreateScheduleRunRequest");
628
633
  var CreateScheduleRunResponseSchema = z2.object({ data: ScheduleRunSchema }).openapi("CreateScheduleRunResponse");
634
+ var ExecuteScheduleRunRequestSchema = z2.object({
635
+ schedule_run_id: z2.string().min(1).max(64).describe("Immutable schedule run identifier.")
636
+ }).strict().openapi("ExecuteScheduleRunRequest");
629
637
 
630
638
  // src/db/scheduleStore.ts
631
639
  function cronRunName(scheduledFor) {
@@ -656,6 +664,71 @@ function shouldSyncPendingRun(previous, next) {
656
664
  return previous.status !== next.status || previous.manifest.cron !== next.manifest.cron || previous.manifest.timezone !== next.manifest.timezone;
657
665
  }
658
666
 
667
+ // src/http/tls.ts
668
+ import { readFileSync } from "fs";
669
+ import { createServer as createHttpsServer } from "https";
670
+ import { join } from "path";
671
+ import { rootCertificates, TLSSocket } from "tls";
672
+ import { Agent, fetch as undiciFetch } from "undici";
673
+ var TLS_CERT_FILE = "tls.crt";
674
+ var TLS_KEY_FILE = "tls.key";
675
+ var TLS_CA_FILE = "ca.crt";
676
+ function readTlsFile(input) {
677
+ const filePath = join(input.dir, input.fileName);
678
+ try {
679
+ return readFileSync(filePath, "utf8");
680
+ } catch (error) {
681
+ throw new Error(
682
+ `${input.enabledEnvKey} is true but ${filePath} could not be read. Check that the mTLS secret is mounted at the configured certs directory, or set ${input.enabledEnvKey}=false.`,
683
+ { cause: error }
684
+ );
685
+ }
686
+ }
687
+ function normalizeTlsUrl(input) {
688
+ if (!input.enabled) {
689
+ return input.url;
690
+ }
691
+ const parsed = new URL(input.url);
692
+ if (parsed.protocol === "http:") {
693
+ parsed.protocol = "https:";
694
+ }
695
+ return parsed.href;
696
+ }
697
+ function createTlsDispatcher(options) {
698
+ if (!options.enabled) {
699
+ return void 0;
700
+ }
701
+ const read = (fileName) => readTlsFile({ dir: options.dir, fileName, enabledEnvKey: options.enabledEnvKey });
702
+ return new Agent({
703
+ connect: {
704
+ // Appended to the default roots, not replacing them: passing `ca` alone would override Node's
705
+ // entire trust store for this dispatcher (breaks public HTTPS peers on the same agent).
706
+ ca: [...rootCertificates, read(TLS_CA_FILE)],
707
+ cert: read(TLS_CERT_FILE),
708
+ key: read(TLS_KEY_FILE)
709
+ }
710
+ });
711
+ }
712
+ function requestUrlFromFetchInput(input) {
713
+ if (typeof input === "string") {
714
+ return input;
715
+ }
716
+ if (input instanceof URL) {
717
+ return input.href;
718
+ }
719
+ return input.url;
720
+ }
721
+ function createTlsFetch(options) {
722
+ const dispatcher = createTlsDispatcher({
723
+ ...options,
724
+ enabledEnvKey: "TRUEFORGE_MTLS_ENABLED"
725
+ });
726
+ if (dispatcher === void 0) {
727
+ return void 0;
728
+ }
729
+ return (input, init) => undiciFetch(requestUrlFromFetchInput(input), { ...init, dispatcher });
730
+ }
731
+
659
732
  // src/runtime/cron.ts
660
733
  import { CronExpressionParser } from "cron-parser";
661
734
  function nextTriggerAfter(input) {
@@ -678,22 +751,19 @@ function scheduleRunFailureReason(error) {
678
751
  }
679
752
  var SCHEDULE_DISPATCH_INTERVAL_MS = 6e4;
680
753
  var SCHEDULE_DISPATCH_LOOP_NAME = "schedule-dispatch";
681
- function executeScheduledRun(client) {
682
- return async ({ run, schedule }) => {
683
- const { data: session } = await client.internal.sessions.getOrCreateByExternalId({
684
- externalId: run.id,
685
- agent: { name: schedule.agent_name },
686
- source: { type: "schedule", id: schedule.id, runId: run.id }
687
- });
688
- const turns = await client.sessions.listTurns(session.id, { limit: 1 });
689
- if (turns.data.length > 0) {
690
- return;
691
- }
692
- await client.sessions.createTurn(session.id, {
693
- input: [{ type: "user.message", content: schedule.manifest.task }],
694
- previousTurnId: "none"
695
- });
754
+ function createHttpScheduleRunExecutor() {
755
+ const tls = {
756
+ enabled: config_default.TRUEFORGE_MTLS_ENABLED,
757
+ dir: config_default.TRUEFORGE_MTLS_CERTS_DIR
696
758
  };
759
+ const tlsFetch = createTlsFetch(tls);
760
+ const client = new TrueForge({
761
+ baseUrl: normalizeTlsUrl({ url: config_default.SERVER_URL, enabled: tls.enabled }),
762
+ token: config_default.TRUEFORGE_API_KEY,
763
+ timeoutInSeconds: 60,
764
+ ...tlsFetch === void 0 ? {} : { fetch: tlsFetch }
765
+ });
766
+ return (scheduleRunId) => client.internal.schedules.executeRun({ scheduleRunId });
697
767
  }
698
768
  async function finishScheduledRun(params) {
699
769
  const { store, withTransaction, run, status, reason, now: now2 } = params;
@@ -792,14 +862,15 @@ async function dispatchScheduledRuns(params) {
792
862
  return { dispatched, failed };
793
863
  }
794
864
  function scheduleDispatchLoop(params) {
795
- const { scheduleStore, client, withTransaction, logger } = params;
865
+ const { scheduleStore, withTransaction, logger } = params;
866
+ const executeRun = createHttpScheduleRunExecutor();
796
867
  return {
797
868
  name: SCHEDULE_DISPATCH_LOOP_NAME,
798
869
  intervalMs: SCHEDULE_DISPATCH_INTERVAL_MS,
799
870
  async tick(signal) {
800
871
  const result = await dispatchScheduledRuns({
801
872
  store: scheduleStore,
802
- onTriggered: executeScheduledRun(client),
873
+ onTriggered: (item) => executeRun(item.run.id),
803
874
  logger,
804
875
  withTransaction,
805
876
  signal
@@ -811,94 +882,17 @@ function scheduleDispatchLoop(params) {
811
882
  };
812
883
  }
813
884
 
814
- // src/http/tls.ts
815
- import { readFileSync } from "fs";
816
- import { createServer as createHttpsServer } from "https";
817
- import { join } from "path";
818
- import { rootCertificates, TLSSocket } from "tls";
819
- import { Agent, fetch as undiciFetch } from "undici";
820
- var TLS_CERT_FILE = "tls.crt";
821
- var TLS_KEY_FILE = "tls.key";
822
- var TLS_CA_FILE = "ca.crt";
823
- function readTlsFile(input) {
824
- const filePath = join(input.dir, input.fileName);
825
- try {
826
- return readFileSync(filePath, "utf8");
827
- } catch (error) {
828
- throw new Error(
829
- `${input.enabledEnvKey} is true but ${filePath} could not be read. Check that the mTLS secret is mounted at the configured certs directory, or set ${input.enabledEnvKey}=false.`,
830
- { cause: error }
831
- );
832
- }
833
- }
834
- function normalizeTlsUrl(input) {
835
- if (!input.enabled) {
836
- return input.url;
837
- }
838
- const parsed = new URL(input.url);
839
- if (parsed.protocol === "http:") {
840
- parsed.protocol = "https:";
841
- }
842
- return parsed.href;
843
- }
844
- function createTlsDispatcher(options) {
845
- if (!options.enabled) {
846
- return void 0;
847
- }
848
- const read = (fileName) => readTlsFile({ dir: options.dir, fileName, enabledEnvKey: options.enabledEnvKey });
849
- return new Agent({
850
- connect: {
851
- // Appended to the default roots, not replacing them: passing `ca` alone would override Node's
852
- // entire trust store for this dispatcher (breaks public HTTPS peers on the same agent).
853
- ca: [...rootCertificates, read(TLS_CA_FILE)],
854
- cert: read(TLS_CERT_FILE),
855
- key: read(TLS_KEY_FILE)
856
- }
857
- });
858
- }
859
- function requestUrlFromFetchInput(input) {
860
- if (typeof input === "string") {
861
- return input;
862
- }
863
- if (input instanceof URL) {
864
- return input.href;
865
- }
866
- return input.url;
867
- }
868
- function createTlsFetch(options) {
869
- const dispatcher = createTlsDispatcher({
870
- ...options,
871
- enabledEnvKey: "TRUEFORGE_MTLS_ENABLED"
872
- });
873
- if (dispatcher === void 0) {
874
- return void 0;
875
- }
876
- return (input, init) => undiciFetch(requestUrlFromFetchInput(input), { ...init, dispatcher });
877
- }
878
-
879
885
  // src/controller.ts
880
- function createScheduleApiClient(params) {
881
- const baseUrl = normalizeTlsUrl({ url: params.baseUrl, enabled: params.tls.enabled });
882
- const fetchImpl = createTlsFetch(params.tls);
883
- return new TrueForge({
884
- baseUrl,
885
- auth: false,
886
- ...fetchImpl !== void 0 ? { fetch: fetchImpl } : {}
887
- });
888
- }
889
886
  function createController(params) {
890
- const { scheduleStore, withTransaction, logger, baseUrl } = params;
891
- const tls = params.tls ?? { enabled: false, dir: "" };
892
887
  return new Controller({
893
888
  loops: [
894
889
  scheduleDispatchLoop({
895
- scheduleStore,
896
- client: createScheduleApiClient({ baseUrl, tls }),
897
- withTransaction,
898
- logger
890
+ scheduleStore: params.scheduleStore,
891
+ withTransaction: params.withTransaction,
892
+ logger: params.logger
899
893
  })
900
894
  ],
901
- logger
895
+ logger: params.logger
902
896
  });
903
897
  }
904
898
  function runController(params) {
@@ -1179,6 +1173,11 @@ var PostgresScheduleStore = class {
1179
1173
  const row = await db.selectFrom("schedule_run").selectAll().where("tenant_id", "=", input.tenant_id).where("id", "=", input.id).executeTakeFirst();
1180
1174
  return row === void 0 ? void 0 : toRunRecord(row);
1181
1175
  }
1176
+ async getRunById(input, transaction) {
1177
+ const db = transaction ?? this.#db;
1178
+ const row = await db.selectFrom("schedule_run").selectAll().where("id", "=", input.id).executeTakeFirst();
1179
+ return row === void 0 ? void 0 : toRunRecord(row);
1180
+ }
1182
1181
  async getScheduledRunFor(input, transaction) {
1183
1182
  const db = transaction ?? this.#db;
1184
1183
  const row = await db.selectFrom("schedule_run").selectAll().where("tenant_id", "=", input.tenant_id).where("schedule_id", "=", input.schedule_id).where("status", "=", "scheduled").executeTakeFirst();
@@ -1333,20 +1332,14 @@ try {
1333
1332
  statementTimeoutMs: config_default.POSTGRES_STATEMENT_TIMEOUT_MS,
1334
1333
  idleInTransactionSessionTimeoutMs: config_default.POSTGRES_IDLE_IN_TRANSACTION_SESSION_TIMEOUT_MS
1335
1334
  });
1336
- const mtls = {
1337
- enabled: config_default.TRUEFORGE_MTLS_ENABLED,
1338
- dir: config_default.TRUEFORGE_MTLS_CERTS_DIR
1339
- };
1340
1335
  logger.info("Controller starting", {
1341
1336
  serverUrl: config_default.SERVER_URL,
1342
- mTlsEnabled: mtls.enabled
1337
+ mTlsEnabled: config_default.TRUEFORGE_MTLS_ENABLED
1343
1338
  });
1344
1339
  runController({
1345
1340
  scheduleStore: new PostgresScheduleStore(db),
1346
1341
  withTransaction: (callback) => db.transaction().execute(callback),
1347
1342
  logger,
1348
- baseUrl: config_default.SERVER_URL,
1349
- tls: mtls,
1350
1343
  gracefulTimeoutSeconds: config_default.GRACEFUL_TIMEOUT_SECONDS,
1351
1344
  onStopped: () => db.destroy()
1352
1345
  });