@truefoundry/trueforge 0.2.0-rc.2 → 0.2.0-rc.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.
- package/dist/_frontend/assets/AgentCodeSnippets-N546FNNS-DlWVvctF.js +1 -0
- package/dist/_frontend/assets/AgentCodeSnippets-N546FNNS-DlWVvctF.js.br +0 -0
- package/dist/_frontend/assets/AgentCodeSnippets-N546FNNS-DlWVvctF.js.gz +0 -0
- package/dist/_frontend/assets/AgentMetricChart-YWJYVYYA-DTDXcVgE.js +1 -0
- package/dist/_frontend/assets/AgentMetricChart-YWJYVYYA-DTDXcVgE.js.br +0 -0
- package/dist/_frontend/assets/AgentMetricChart-YWJYVYYA-DTDXcVgE.js.gz +0 -0
- package/dist/_frontend/assets/{AgentOverview-3FJ5EE6N-D1pX5Emq.js → AgentOverview-VF74XC7I-DuR4GDFb.js} +1 -1
- package/dist/_frontend/assets/AgentOverview-VF74XC7I-DuR4GDFb.js.br +0 -0
- package/dist/_frontend/assets/AgentOverview-VF74XC7I-DuR4GDFb.js.gz +0 -0
- package/dist/_frontend/assets/AgentSessionEventTimeline-RFR6LQMY-B_5nS70p.js +1 -0
- package/dist/_frontend/assets/AgentSessionEventTimeline-RFR6LQMY-B_5nS70p.js.br +0 -0
- package/dist/_frontend/assets/AgentSessionEventTimeline-RFR6LQMY-B_5nS70p.js.gz +0 -0
- package/dist/_frontend/assets/AgentSessionEventTimelineChart-27CQF6FX-DSTwylcS.js +1 -0
- package/dist/_frontend/assets/AgentSessionEventTimelineChart-27CQF6FX-DSTwylcS.js.br +0 -0
- package/dist/_frontend/assets/AgentSessionEventTimelineChart-27CQF6FX-DSTwylcS.js.gz +0 -0
- package/dist/_frontend/assets/AgentSessions-4IVX2SGD-Bf2N2ega.js +1 -0
- package/dist/_frontend/assets/AgentSessions-4IVX2SGD-Bf2N2ega.js.br +0 -0
- package/dist/_frontend/assets/AgentSessions-4IVX2SGD-Bf2N2ega.js.gz +0 -0
- package/dist/_frontend/assets/ConnectorSettings-R5VEP7BO-Cvdqimeu.js +1 -0
- package/dist/_frontend/assets/ConnectorSettings-R5VEP7BO-Cvdqimeu.js.br +0 -0
- package/dist/_frontend/assets/ConnectorSettings-R5VEP7BO-Cvdqimeu.js.gz +0 -0
- package/dist/_frontend/assets/{DockLayout-NLFNU6F2-BGJvqqVS.js → DockLayout-F44RWGEY-DVcqWNpi.js} +1 -1
- package/dist/_frontend/assets/DrawerLayout-SQ323AVM-CrsDJpVR.js +2 -0
- package/dist/_frontend/assets/DrawerLayout-SQ323AVM-CrsDJpVR.js.br +0 -0
- package/dist/_frontend/assets/DrawerLayout-SQ323AVM-CrsDJpVR.js.gz +0 -0
- package/dist/_frontend/assets/ModelSettings-6QLS63HM-B0omK7y_.js +1 -0
- package/dist/_frontend/assets/ModelSettings-6QLS63HM-B0omK7y_.js.br +0 -0
- package/dist/_frontend/assets/ModelSettings-6QLS63HM-B0omK7y_.js.gz +0 -0
- package/dist/_frontend/assets/SandboxSettings-OLKDXIQS-O1pf1zn0.js +1 -0
- package/dist/_frontend/assets/SandboxSettings-OLKDXIQS-O1pf1zn0.js.br +0 -0
- package/dist/_frontend/assets/SandboxSettings-OLKDXIQS-O1pf1zn0.js.gz +0 -0
- package/dist/_frontend/assets/SchedulesPage-TMOTK6DR-D9JlkZFv.js +1 -0
- package/dist/_frontend/assets/SchedulesPage-TMOTK6DR-D9JlkZFv.js.br +0 -0
- package/dist/_frontend/assets/SchedulesPage-TMOTK6DR-D9JlkZFv.js.gz +0 -0
- package/dist/_frontend/assets/{SettingsBuilder-LSXK2VN4-B0Y9JGuK.js → SettingsBuilder-GISAH2WU-2fVa9yeg.js} +2 -2
- package/dist/_frontend/assets/SettingsBuilder-GISAH2WU-2fVa9yeg.js.br +0 -0
- package/dist/_frontend/assets/SettingsBuilder-GISAH2WU-2fVa9yeg.js.gz +0 -0
- package/dist/_frontend/assets/ShellRouteSync-EN33DUQ7-C280D67g.js +1 -0
- package/dist/_frontend/assets/ShellRouteSync-EN33DUQ7-C280D67g.js.br +0 -0
- package/dist/_frontend/assets/ShellRouteSync-EN33DUQ7-C280D67g.js.gz +0 -0
- package/dist/_frontend/assets/SidebarLayout-35K4AKTC-0-Mjo6gf.js +2 -0
- package/dist/_frontend/assets/SidebarLayout-35K4AKTC-0-Mjo6gf.js.br +0 -0
- package/dist/_frontend/assets/SidebarLayout-35K4AKTC-0-Mjo6gf.js.gz +0 -0
- package/dist/_frontend/assets/SkillSettings-JSX2BTII-BriJH4Oj.js +1 -0
- package/dist/_frontend/assets/SkillSettings-JSX2BTII-BriJH4Oj.js.br +0 -0
- package/dist/_frontend/assets/SkillSettings-JSX2BTII-BriJH4Oj.js.gz +0 -0
- package/dist/_frontend/assets/TrueForgeUIWithRouter-6VCR7ES3-CtIaYnA8.js +1 -0
- package/dist/_frontend/assets/WidgetLayout-RKBSN2FZ-u6iVYu3w.js +1 -0
- package/dist/_frontend/assets/WidgetLayout-RKBSN2FZ-u6iVYu3w.js.br +0 -0
- package/dist/_frontend/assets/WidgetLayout-RKBSN2FZ-u6iVYu3w.js.gz +0 -0
- package/dist/_frontend/assets/{chunk-62JRHF6Z-gAUkEAjv.js → chunk-62JRHF6Z-DYrEQoq5.js} +1 -1
- package/dist/_frontend/assets/chunk-62JRHF6Z-DYrEQoq5.js.br +0 -0
- package/dist/_frontend/assets/chunk-62JRHF6Z-DYrEQoq5.js.gz +0 -0
- package/dist/_frontend/assets/chunk-73FQVITT-mgvTPDmd.js +1 -0
- package/dist/_frontend/assets/chunk-73FQVITT-mgvTPDmd.js.br +0 -0
- package/dist/_frontend/assets/chunk-73FQVITT-mgvTPDmd.js.gz +0 -0
- package/dist/_frontend/assets/chunk-GIPFF6FZ-DPTdcXQj.js +2 -0
- package/dist/_frontend/assets/chunk-GIPFF6FZ-DPTdcXQj.js.br +0 -0
- package/dist/_frontend/assets/chunk-GIPFF6FZ-DPTdcXQj.js.gz +0 -0
- package/dist/_frontend/assets/chunk-LUG7E6BL-QKvrInc2.js +1 -0
- package/dist/_frontend/assets/chunk-LUG7E6BL-QKvrInc2.js.br +0 -0
- package/dist/_frontend/assets/chunk-LUG7E6BL-QKvrInc2.js.gz +0 -0
- package/dist/_frontend/assets/cssMode-BNfxrwWp.js +1 -0
- package/dist/_frontend/assets/cssMode-BNfxrwWp.js.br +0 -0
- package/dist/_frontend/assets/cssMode-BNfxrwWp.js.gz +0 -0
- package/dist/_frontend/assets/{freemarker2-BqULNxdn.js → freemarker2-ClbLzW-k.js} +1 -1
- package/dist/_frontend/assets/freemarker2-ClbLzW-k.js.br +0 -0
- package/dist/_frontend/assets/freemarker2-ClbLzW-k.js.gz +0 -0
- package/dist/_frontend/assets/{handlebars-D-wN_MMv.js → handlebars-5nE6yTDt.js} +1 -1
- package/dist/_frontend/assets/handlebars-5nE6yTDt.js.br +0 -0
- package/dist/_frontend/assets/handlebars-5nE6yTDt.js.gz +0 -0
- package/dist/_frontend/assets/{html-DX_2Eu_G.js → html-BZRf7Zhg.js} +1 -1
- package/dist/_frontend/assets/html-BZRf7Zhg.js.br +0 -0
- package/dist/_frontend/assets/html-BZRf7Zhg.js.gz +0 -0
- package/dist/_frontend/assets/htmlMode-C6O73C_r.js +1 -0
- package/dist/_frontend/assets/htmlMode-C6O73C_r.js.br +0 -0
- package/dist/_frontend/assets/htmlMode-C6O73C_r.js.gz +0 -0
- package/dist/_frontend/assets/{index-SN54UIUh.css → index-BBGLYdJn.css} +1 -1
- package/dist/_frontend/assets/index-BBGLYdJn.css.br +0 -0
- package/dist/_frontend/assets/index-BBGLYdJn.css.gz +0 -0
- package/dist/_frontend/assets/{index-MPbqVnOf.js → index-D0Yf366e.js} +1 -1
- package/dist/_frontend/assets/index-D0Yf366e.js.br +0 -0
- package/dist/_frontend/assets/index-D0Yf366e.js.gz +0 -0
- package/dist/_frontend/assets/{index-CNHFMp3w.js → index-DBjak9Sg.js} +4 -4
- package/dist/_frontend/assets/index-DBjak9Sg.js.br +0 -0
- package/dist/_frontend/assets/index-DBjak9Sg.js.gz +0 -0
- package/dist/_frontend/assets/index-DhA9jnhv.css +1 -0
- package/dist/_frontend/assets/index-DhA9jnhv.css.br +0 -0
- package/dist/_frontend/assets/index-DhA9jnhv.css.gz +0 -0
- package/dist/_frontend/assets/index-XpZpj5Rl.js +933 -0
- package/dist/_frontend/assets/index-XpZpj5Rl.js.br +0 -0
- package/dist/_frontend/assets/index-XpZpj5Rl.js.gz +0 -0
- package/dist/_frontend/assets/{javascript-CO_8uS79.js → javascript-CrSAQdU4.js} +1 -1
- package/dist/_frontend/assets/{jsonMode-D0kqu8c3.js → jsonMode-Dal25yu2.js} +4 -4
- package/dist/_frontend/assets/jsonMode-Dal25yu2.js.br +0 -0
- package/dist/_frontend/assets/jsonMode-Dal25yu2.js.gz +0 -0
- package/dist/_frontend/assets/{liquid-CB807zJs.js → liquid-Ci7gjLGv.js} +1 -1
- package/dist/_frontend/assets/liquid-Ci7gjLGv.js.br +0 -0
- package/dist/_frontend/assets/liquid-Ci7gjLGv.js.gz +0 -0
- package/dist/_frontend/assets/{lspLanguageFeatures-D0-0mkv4.js → lspLanguageFeatures-rM-QiA57.js} +1 -1
- package/dist/_frontend/assets/lspLanguageFeatures-rM-QiA57.js.br +0 -0
- package/dist/_frontend/assets/lspLanguageFeatures-rM-QiA57.js.gz +0 -0
- package/dist/_frontend/assets/{mdx-7_H2_m8y.js → mdx-J3rSuJw4.js} +1 -1
- package/dist/_frontend/assets/mdx-J3rSuJw4.js.br +0 -0
- package/dist/_frontend/assets/mdx-J3rSuJw4.js.gz +0 -0
- package/dist/_frontend/assets/{python-DhB7kQ15.js → python-BSpXGEco.js} +1 -1
- package/dist/_frontend/assets/python-BSpXGEco.js.br +0 -0
- package/dist/_frontend/assets/python-BSpXGEco.js.gz +0 -0
- package/dist/_frontend/assets/{razor-CDzQiIjH.js → razor-DLV1uhEc.js} +1 -1
- package/dist/_frontend/assets/razor-DLV1uhEc.js.br +0 -0
- package/dist/_frontend/assets/razor-DLV1uhEc.js.gz +0 -0
- package/dist/_frontend/assets/{tsMode-CVP7xaF5.js → tsMode-CQqRu3mP.js} +1 -1
- package/dist/_frontend/assets/tsMode-CQqRu3mP.js.br +0 -0
- package/dist/_frontend/assets/tsMode-CQqRu3mP.js.gz +0 -0
- package/dist/_frontend/assets/{typescript-BTAuo6jN.js → typescript-BExfm66c.js} +1 -1
- package/dist/_frontend/assets/typescript-BExfm66c.js.br +0 -0
- package/dist/_frontend/assets/typescript-BExfm66c.js.gz +0 -0
- package/dist/_frontend/assets/{workers-Dl5avODY.js → workers-Cn25A5Lb.js} +1 -1
- package/dist/_frontend/assets/workers-Cn25A5Lb.js.br +0 -0
- package/dist/_frontend/assets/workers-Cn25A5Lb.js.gz +0 -0
- package/dist/_frontend/assets/{xml-CKI7eM7V.js → xml-D2IDD-hb.js} +1 -1
- package/dist/_frontend/assets/xml-D2IDD-hb.js.br +0 -0
- package/dist/_frontend/assets/xml-D2IDD-hb.js.gz +0 -0
- package/dist/_frontend/assets/{yaml-Czn9FR3r.js → yaml-CY4c2A0Y.js} +1 -1
- package/dist/_frontend/assets/yaml-CY4c2A0Y.js.br +0 -0
- package/dist/_frontend/assets/yaml-CY4c2A0Y.js.gz +0 -0
- package/dist/_frontend/index.html +5 -2
- package/dist/controller-main.js +96 -10
- package/dist/controller-main.js.map +1 -1
- package/dist/main.js +14943 -13382
- package/dist/main.js.map +1 -1
- package/dist/postgres/migrations/20260907_000001_schedule_run_reason.js +15 -0
- package/dist/postgres/migrations/20260907_000001_schedule_run_reason.js.map +1 -0
- package/dist/sqlite/migrations/20260907_000001_schedule_run_reason.js +17 -0
- package/dist/sqlite/migrations/20260907_000001_schedule_run_reason.js.map +1 -0
- package/package.json +3 -4
- package/dist/_frontend/assets/AgentCodeSnippets-637HQUXD-C5c8zg9J.js +0 -1
- package/dist/_frontend/assets/AgentCodeSnippets-637HQUXD-C5c8zg9J.js.br +0 -0
- package/dist/_frontend/assets/AgentCodeSnippets-637HQUXD-C5c8zg9J.js.gz +0 -0
- package/dist/_frontend/assets/AgentMetricChart-4FYECRIN-BN07l9mr.js +0 -1
- package/dist/_frontend/assets/AgentMetricChart-4FYECRIN-BN07l9mr.js.br +0 -0
- package/dist/_frontend/assets/AgentMetricChart-4FYECRIN-BN07l9mr.js.gz +0 -0
- package/dist/_frontend/assets/AgentOverview-3FJ5EE6N-D1pX5Emq.js.br +0 -0
- package/dist/_frontend/assets/AgentOverview-3FJ5EE6N-D1pX5Emq.js.gz +0 -0
- package/dist/_frontend/assets/AgentSessionEventTimeline-VELWUYPR-S1LS04B9.js +0 -1
- package/dist/_frontend/assets/AgentSessionEventTimeline-VELWUYPR-S1LS04B9.js.br +0 -0
- package/dist/_frontend/assets/AgentSessionEventTimeline-VELWUYPR-S1LS04B9.js.gz +0 -0
- package/dist/_frontend/assets/AgentSessionEventTimelineChart-CUKETHWM-D4LvjUpF.js +0 -1
- package/dist/_frontend/assets/AgentSessionEventTimelineChart-CUKETHWM-D4LvjUpF.js.br +0 -0
- package/dist/_frontend/assets/AgentSessionEventTimelineChart-CUKETHWM-D4LvjUpF.js.gz +0 -0
- package/dist/_frontend/assets/AgentSessions-T7MOGOTZ-wppcDkIn.js +0 -1
- package/dist/_frontend/assets/AgentSessions-T7MOGOTZ-wppcDkIn.js.br +0 -0
- package/dist/_frontend/assets/AgentSessions-T7MOGOTZ-wppcDkIn.js.gz +0 -0
- package/dist/_frontend/assets/ConnectorSettings-ESZ2RSRG-DLxrylX3.js +0 -1
- package/dist/_frontend/assets/ConnectorSettings-ESZ2RSRG-DLxrylX3.js.br +0 -0
- package/dist/_frontend/assets/ConnectorSettings-ESZ2RSRG-DLxrylX3.js.gz +0 -0
- package/dist/_frontend/assets/DrawerLayout-PR3SMKA6-C13frtIA.js +0 -2
- package/dist/_frontend/assets/DrawerLayout-PR3SMKA6-C13frtIA.js.br +0 -0
- package/dist/_frontend/assets/DrawerLayout-PR3SMKA6-C13frtIA.js.gz +0 -0
- package/dist/_frontend/assets/ModelSettings-LYW64IRR-BLLhCXsR.js +0 -1
- package/dist/_frontend/assets/ModelSettings-LYW64IRR-BLLhCXsR.js.br +0 -0
- package/dist/_frontend/assets/ModelSettings-LYW64IRR-BLLhCXsR.js.gz +0 -0
- package/dist/_frontend/assets/SandboxSettings-DF64LHYI-7AeygCju.js +0 -1
- package/dist/_frontend/assets/SandboxSettings-DF64LHYI-7AeygCju.js.br +0 -0
- package/dist/_frontend/assets/SandboxSettings-DF64LHYI-7AeygCju.js.gz +0 -0
- package/dist/_frontend/assets/SchedulesPage-WQU4H25F-BGlu6WXG.js +0 -1
- package/dist/_frontend/assets/SchedulesPage-WQU4H25F-BGlu6WXG.js.br +0 -0
- package/dist/_frontend/assets/SchedulesPage-WQU4H25F-BGlu6WXG.js.gz +0 -0
- package/dist/_frontend/assets/SettingsBuilder-LSXK2VN4-B0Y9JGuK.js.br +0 -0
- package/dist/_frontend/assets/SettingsBuilder-LSXK2VN4-B0Y9JGuK.js.gz +0 -0
- package/dist/_frontend/assets/ShellRouteSync-B22IAV2W-leIgCXVi.js +0 -1
- package/dist/_frontend/assets/ShellRouteSync-B22IAV2W-leIgCXVi.js.br +0 -0
- package/dist/_frontend/assets/ShellRouteSync-B22IAV2W-leIgCXVi.js.gz +0 -0
- package/dist/_frontend/assets/SidebarLayout-XW6LXB7R-Cfmnvl3i.js +0 -2
- package/dist/_frontend/assets/SidebarLayout-XW6LXB7R-Cfmnvl3i.js.br +0 -0
- package/dist/_frontend/assets/SidebarLayout-XW6LXB7R-Cfmnvl3i.js.gz +0 -0
- package/dist/_frontend/assets/SkillSettings-64VXUO6J-CeuMawWX.js +0 -1
- package/dist/_frontend/assets/SkillSettings-64VXUO6J-CeuMawWX.js.br +0 -0
- package/dist/_frontend/assets/SkillSettings-64VXUO6J-CeuMawWX.js.gz +0 -0
- package/dist/_frontend/assets/TrueForgeUIWithRouter-3TSLV22Q-BiR4AwMi.js +0 -1
- package/dist/_frontend/assets/WidgetLayout-Q5P7PYSJ-D-NJInrA.js +0 -1
- package/dist/_frontend/assets/WidgetLayout-Q5P7PYSJ-D-NJInrA.js.br +0 -0
- package/dist/_frontend/assets/WidgetLayout-Q5P7PYSJ-D-NJInrA.js.gz +0 -0
- package/dist/_frontend/assets/chunk-62JRHF6Z-gAUkEAjv.js.br +0 -0
- package/dist/_frontend/assets/chunk-62JRHF6Z-gAUkEAjv.js.gz +0 -0
- package/dist/_frontend/assets/chunk-I3AL54MA--fCRbraS.js +0 -2
- package/dist/_frontend/assets/chunk-I3AL54MA--fCRbraS.js.br +0 -0
- package/dist/_frontend/assets/chunk-I3AL54MA--fCRbraS.js.gz +0 -0
- package/dist/_frontend/assets/chunk-SQGT43Z3-Di5-vYAQ.js +0 -1
- package/dist/_frontend/assets/chunk-SQGT43Z3-Di5-vYAQ.js.br +0 -0
- package/dist/_frontend/assets/chunk-SQGT43Z3-Di5-vYAQ.js.gz +0 -0
- package/dist/_frontend/assets/chunk-VUMGMGKZ-CUX2iOMe.js +0 -1
- package/dist/_frontend/assets/chunk-VUMGMGKZ-CUX2iOMe.js.br +0 -0
- package/dist/_frontend/assets/chunk-VUMGMGKZ-CUX2iOMe.js.gz +0 -0
- package/dist/_frontend/assets/cssMode-Bmk_AUwV.js +0 -1
- package/dist/_frontend/assets/cssMode-Bmk_AUwV.js.br +0 -0
- package/dist/_frontend/assets/cssMode-Bmk_AUwV.js.gz +0 -0
- package/dist/_frontend/assets/freemarker2-BqULNxdn.js.br +0 -0
- package/dist/_frontend/assets/freemarker2-BqULNxdn.js.gz +0 -0
- package/dist/_frontend/assets/handlebars-D-wN_MMv.js.br +0 -0
- package/dist/_frontend/assets/handlebars-D-wN_MMv.js.gz +0 -0
- package/dist/_frontend/assets/html-DX_2Eu_G.js.br +0 -0
- package/dist/_frontend/assets/html-DX_2Eu_G.js.gz +0 -0
- package/dist/_frontend/assets/htmlMode-CqQ0rpq1.js +0 -1
- package/dist/_frontend/assets/htmlMode-CqQ0rpq1.js.br +0 -0
- package/dist/_frontend/assets/htmlMode-CqQ0rpq1.js.gz +0 -0
- package/dist/_frontend/assets/index-CB2SckMT.css +0 -1
- package/dist/_frontend/assets/index-CB2SckMT.css.br +0 -0
- package/dist/_frontend/assets/index-CB2SckMT.css.gz +0 -0
- package/dist/_frontend/assets/index-CNHFMp3w.js.br +0 -0
- package/dist/_frontend/assets/index-CNHFMp3w.js.gz +0 -0
- package/dist/_frontend/assets/index-G4wOqi3O.js +0 -923
- package/dist/_frontend/assets/index-G4wOqi3O.js.br +0 -0
- package/dist/_frontend/assets/index-G4wOqi3O.js.gz +0 -0
- package/dist/_frontend/assets/index-MPbqVnOf.js.br +0 -0
- package/dist/_frontend/assets/index-MPbqVnOf.js.gz +0 -0
- package/dist/_frontend/assets/index-SN54UIUh.css.br +0 -0
- package/dist/_frontend/assets/index-SN54UIUh.css.gz +0 -0
- package/dist/_frontend/assets/jsonMode-D0kqu8c3.js.br +0 -0
- package/dist/_frontend/assets/jsonMode-D0kqu8c3.js.gz +0 -0
- package/dist/_frontend/assets/liquid-CB807zJs.js.br +0 -0
- package/dist/_frontend/assets/liquid-CB807zJs.js.gz +0 -0
- package/dist/_frontend/assets/lspLanguageFeatures-D0-0mkv4.js.br +0 -0
- package/dist/_frontend/assets/lspLanguageFeatures-D0-0mkv4.js.gz +0 -0
- package/dist/_frontend/assets/mdx-7_H2_m8y.js.br +0 -0
- package/dist/_frontend/assets/mdx-7_H2_m8y.js.gz +0 -0
- package/dist/_frontend/assets/python-DhB7kQ15.js.br +0 -0
- package/dist/_frontend/assets/python-DhB7kQ15.js.gz +0 -0
- package/dist/_frontend/assets/razor-CDzQiIjH.js.br +0 -0
- package/dist/_frontend/assets/razor-CDzQiIjH.js.gz +0 -0
- package/dist/_frontend/assets/tsMode-CVP7xaF5.js.br +0 -0
- package/dist/_frontend/assets/tsMode-CVP7xaF5.js.gz +0 -0
- package/dist/_frontend/assets/typescript-BTAuo6jN.js.br +0 -0
- package/dist/_frontend/assets/typescript-BTAuo6jN.js.gz +0 -0
- package/dist/_frontend/assets/workers-Dl5avODY.js.br +0 -0
- package/dist/_frontend/assets/workers-Dl5avODY.js.gz +0 -0
- package/dist/_frontend/assets/xml-CKI7eM7V.js.br +0 -0
- package/dist/_frontend/assets/xml-CKI7eM7V.js.gz +0 -0
- package/dist/_frontend/assets/yaml-Czn9FR3r.js.br +0 -0
- package/dist/_frontend/assets/yaml-Czn9FR3r.js.gz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{l as e}from"./index-
|
|
1
|
+
import{l as e}from"./index-DBjak9Sg.js";import"./index-XpZpj5Rl.js";const o={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{offSide:!0},onEnterRules:[{beforeText:/:\s*$/,action:{indentAction:e.IndentAction.Indent}}]},r={tokenPostfix:".yaml",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["true","True","TRUE","false","False","FALSE","null","Null","Null","~"],numberInteger:/(?:0|[+-]?[0-9]+)/,numberFloat:/(?:0|[+-]?[0-9]+)(?:\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,numberOctal:/0o[0-7]+/,numberHex:/0x[0-9a-fA-F]+/,numberInfinity:/[+-]?\.(?:inf|Inf|INF)/,numberNaN:/\.(?:nan|Nan|NAN)/,numberDate:/\d{4}-\d\d-\d\d([Tt ]\d\d:\d\d:\d\d(\.\d+)?(( ?[+-]\d\d?(:\d\d)?)|Z)?)?/,escapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/%[^ ]+.*$/,"meta.directive"],[/---/,"operators.directivesEnd"],[/\.{3}/,"operators.documentEnd"],[/[-?:](?= )/,"operators"],{include:"@anchor"},{include:"@tagHandle"},{include:"@flowCollections"},{include:"@blockStyle"},[/@numberInteger(?![ \t]*\S+)/,"number"],[/@numberFloat(?![ \t]*\S+)/,"number.float"],[/@numberOctal(?![ \t]*\S+)/,"number.octal"],[/@numberHex(?![ \t]*\S+)/,"number.hex"],[/@numberInfinity(?![ \t]*\S+)/,"number.infinity"],[/@numberNaN(?![ \t]*\S+)/,"number.nan"],[/@numberDate(?![ \t]*\S+)/,"number.date"],[/(".*?"|'.*?'|[^#'"]*?)([ \t]*)(:)( |$)/,["type","white","operators","white"]],{include:"@flowScalars"},[/.+?(?=(\s+#|$))/,{cases:{"@keywords":"keyword","@default":"string"}}]],object:[{include:"@whitespace"},{include:"@comment"},[/\}/,"@brackets","@pop"],[/,/,"delimiter.comma"],[/:(?= )/,"operators"],[/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/,"type"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\},]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],array:[{include:"@whitespace"},{include:"@comment"},[/\]/,"@brackets","@pop"],[/,/,"delimiter.comma"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\],]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],multiString:[[/^( +).+$/,"string","@multiStringContinued.$1"]],multiStringContinued:[[/^( *).+$/,{cases:{"$1==$S2":"string","@default":{token:"@rematch",next:"@popall"}}}]],whitespace:[[/[ \t\r\n]+/,"white"]],comment:[[/#.*$/,"comment"]],flowCollections:[[/\[/,"@brackets","@array"],[/\{/,"@brackets","@object"]],flowScalars:[[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'[^']*'/,"string"],[/"/,"string","@doubleQuotedString"]],doubleQuotedString:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],blockStyle:[[/[>|][0-9]*[+-]?$/,"operators","@multiString"]],flowNumber:[[/@numberInteger(?=[ \t]*[,\]\}])/,"number"],[/@numberFloat(?=[ \t]*[,\]\}])/,"number.float"],[/@numberOctal(?=[ \t]*[,\]\}])/,"number.octal"],[/@numberHex(?=[ \t]*[,\]\}])/,"number.hex"],[/@numberInfinity(?=[ \t]*[,\]\}])/,"number.infinity"],[/@numberNaN(?=[ \t]*[,\]\}])/,"number.nan"],[/@numberDate(?=[ \t]*[,\]\}])/,"number.date"]],tagHandle:[[/\![^ ]*/,"tag"]],anchor:[[/[&*][^ ]+/,"namespace"]]}};export{o as conf,r as language};
|
|
Binary file
|
|
Binary file
|
|
@@ -5,8 +5,11 @@
|
|
|
5
5
|
<meta charset="UTF-8" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<title>TrueForge</title>
|
|
8
|
-
<script
|
|
9
|
-
|
|
8
|
+
<script>
|
|
9
|
+
window.__TRUEFORGE_BASE_PATH__ = '%%TRUEFORGE_BASE_PATH%%';
|
|
10
|
+
</script>
|
|
11
|
+
<script type="module" crossorigin src="%%TRUEFORGE_BASE_PATH%%assets/index-XpZpj5Rl.js"></script>
|
|
12
|
+
<link rel="stylesheet" crossorigin href="%%TRUEFORGE_BASE_PATH%%assets/index-BBGLYdJn.css">
|
|
10
13
|
</head>
|
|
11
14
|
<body>
|
|
12
15
|
<div id="root"></div>
|
package/dist/controller-main.js
CHANGED
|
@@ -85,6 +85,38 @@ function parseBoolean(options) {
|
|
|
85
85
|
}
|
|
86
86
|
throw new Error(`Environment variable ${envKey} must be "true" or "false", got "${raw}"`);
|
|
87
87
|
}
|
|
88
|
+
function parsePublicBaseUrl(raw) {
|
|
89
|
+
if (raw === void 0 || raw.trim() === "") {
|
|
90
|
+
return "";
|
|
91
|
+
}
|
|
92
|
+
let parsed;
|
|
93
|
+
try {
|
|
94
|
+
parsed = new URL(raw.trim());
|
|
95
|
+
} catch (error) {
|
|
96
|
+
throw new Error("PUBLIC_BASE_URL must be a valid URL", { cause: error });
|
|
97
|
+
}
|
|
98
|
+
if (parsed.search !== "" || parsed.hash !== "") {
|
|
99
|
+
throw new Error("PUBLIC_BASE_URL must not include a query or hash");
|
|
100
|
+
}
|
|
101
|
+
const segments = parsed.pathname.split("/").filter((part) => part.length > 0);
|
|
102
|
+
if (segments.some((part) => part === "." || part === "..")) {
|
|
103
|
+
throw new Error('PUBLIC_BASE_URL path must not contain "." or ".." segments');
|
|
104
|
+
}
|
|
105
|
+
const path3 = segments.length === 0 ? "" : `/${segments.join("/")}`;
|
|
106
|
+
return `${parsed.origin}${path3}`;
|
|
107
|
+
}
|
|
108
|
+
function parseTrueFoundrySandboxProvider(raw) {
|
|
109
|
+
if (raw === void 0 || raw.trim() === "") {
|
|
110
|
+
return void 0;
|
|
111
|
+
}
|
|
112
|
+
const value = raw.trim();
|
|
113
|
+
if (value === "daytona" || value === "truefoundry") {
|
|
114
|
+
return value;
|
|
115
|
+
}
|
|
116
|
+
throw new Error(
|
|
117
|
+
`Environment variable TRUEFOUNDRY_SANDBOX_PROVIDER must be "daytona" or "truefoundry", got ${JSON.stringify(raw)}`
|
|
118
|
+
);
|
|
119
|
+
}
|
|
88
120
|
function parsePostgresSslMode(raw) {
|
|
89
121
|
if (!raw) {
|
|
90
122
|
return "";
|
|
@@ -296,7 +328,7 @@ var shared = {
|
|
|
296
328
|
raw: getEnv("REDIS_REQUEST_REPLY_POLL_INTERVAL_MS"),
|
|
297
329
|
defaultValue: 500
|
|
298
330
|
}),
|
|
299
|
-
PUBLIC_BASE_URL: getEnv("PUBLIC_BASE_URL", { defaultValue: "" })
|
|
331
|
+
PUBLIC_BASE_URL: parsePublicBaseUrl(getEnv("PUBLIC_BASE_URL", { defaultValue: "" })),
|
|
300
332
|
SERVER_URL: getEnv("SERVER_URL", { defaultValue: `http://localhost:${String(port)}` }) ?? `http://localhost:${String(port)}`,
|
|
301
333
|
TRUEFORGE_MTLS_ENABLED: parseBoolean({
|
|
302
334
|
envKey: "TRUEFORGE_MTLS_ENABLED",
|
|
@@ -333,6 +365,7 @@ var configuration = standalone ? {
|
|
|
333
365
|
REDIS_URL: resolveRedisUrl(),
|
|
334
366
|
OIDC: resolveOIDCConfig(),
|
|
335
367
|
TRUEFOUNDRY_SERVICEFOUNDRY_SERVER_URL: getEnv("TRUEFOUNDRY_SERVICEFOUNDRY_SERVER_URL", { required: false }),
|
|
368
|
+
TRUEFOUNDRY_API_KEY: getEnv("TRUEFOUNDRY_API_KEY", { required: false }),
|
|
336
369
|
TRUEFOUNDRY_SERVICEFOUNDRY_HTTP_TIMEOUT_MS: parsePositiveInt({
|
|
337
370
|
envKey: "TRUEFOUNDRY_SERVICEFOUNDRY_HTTP_TIMEOUT_MS",
|
|
338
371
|
raw: getEnv("TRUEFOUNDRY_SERVICEFOUNDRY_HTTP_TIMEOUT_MS"),
|
|
@@ -354,8 +387,12 @@ var configuration = standalone ? {
|
|
|
354
387
|
raw: getEnv("TRUEFOUNDRY_SANDBOX_ENABLED"),
|
|
355
388
|
defaultValue: false
|
|
356
389
|
}),
|
|
390
|
+
TRUEFOUNDRY_SANDBOX_PROVIDER: parseTrueFoundrySandboxProvider(
|
|
391
|
+
getEnv("TRUEFOUNDRY_SANDBOX_PROVIDER", { required: false })
|
|
392
|
+
),
|
|
357
393
|
TRUEFOUNDRY_SANDBOX_API_KEY: getEnv("TRUEFOUNDRY_SANDBOX_API_KEY", { required: false }),
|
|
358
|
-
|
|
394
|
+
TRUEFOUNDRY_SANDBOX_SERVER_URL: getEnv("TRUEFOUNDRY_SANDBOX_SERVER_URL", { required: false }),
|
|
395
|
+
TRUEFOUNDRY_SANDBOX_SETTINGS: getEnv("TRUEFOUNDRY_SANDBOX_SETTINGS", { required: false })
|
|
359
396
|
};
|
|
360
397
|
function isOidcConfigured(value) {
|
|
361
398
|
return !value.STANDALONE && value.OIDC !== void 0;
|
|
@@ -369,10 +406,33 @@ if (isTrueFoundryModeEnabled(configuration)) {
|
|
|
369
406
|
"TRUEFOUNDRY_SERVICEFOUNDRY_SERVER_URL (TrueFoundry mode) and OIDC (SSO) cannot both be enabled at once."
|
|
370
407
|
);
|
|
371
408
|
}
|
|
409
|
+
if (configuration.TRUEFOUNDRY_API_KEY === void 0) {
|
|
410
|
+
throw new Error("TRUEFOUNDRY_API_KEY is required when TRUEFOUNDRY_SERVICEFOUNDRY_SERVER_URL is set.");
|
|
411
|
+
}
|
|
372
412
|
if (configuration.TRUEFOUNDRY_SANDBOX_ENABLED) {
|
|
373
|
-
if (configuration.
|
|
413
|
+
if (configuration.TRUEFOUNDRY_SANDBOX_PROVIDER === void 0) {
|
|
414
|
+
throw new Error(
|
|
415
|
+
'TRUEFOUNDRY_SANDBOX_ENABLED is true but TRUEFOUNDRY_SANDBOX_PROVIDER is not set. Set TRUEFOUNDRY_SANDBOX_PROVIDER to "daytona" or "truefoundry", or set TRUEFOUNDRY_SANDBOX_ENABLED=false.'
|
|
416
|
+
);
|
|
417
|
+
}
|
|
418
|
+
if (configuration.TRUEFOUNDRY_SANDBOX_SETTINGS === void 0) {
|
|
374
419
|
throw new Error(
|
|
375
|
-
"TRUEFOUNDRY_SANDBOX_ENABLED is true but
|
|
420
|
+
"TRUEFOUNDRY_SANDBOX_ENABLED is true but TRUEFOUNDRY_SANDBOX_SETTINGS is not set. Provide a JSON settings object, or set TRUEFOUNDRY_SANDBOX_ENABLED=false."
|
|
421
|
+
);
|
|
422
|
+
}
|
|
423
|
+
try {
|
|
424
|
+
JSON.parse(configuration.TRUEFOUNDRY_SANDBOX_SETTINGS);
|
|
425
|
+
} catch (error) {
|
|
426
|
+
throw new Error("TRUEFOUNDRY_SANDBOX_SETTINGS must be valid JSON", { cause: error });
|
|
427
|
+
}
|
|
428
|
+
if (configuration.TRUEFOUNDRY_SANDBOX_PROVIDER === "daytona" && configuration.TRUEFOUNDRY_SANDBOX_API_KEY === void 0) {
|
|
429
|
+
throw new Error(
|
|
430
|
+
"TRUEFOUNDRY_SANDBOX_PROVIDER=daytona requires TRUEFOUNDRY_SANDBOX_API_KEY, or set TRUEFOUNDRY_SANDBOX_ENABLED=false."
|
|
431
|
+
);
|
|
432
|
+
}
|
|
433
|
+
if (configuration.TRUEFOUNDRY_SANDBOX_PROVIDER === "truefoundry" && configuration.TRUEFOUNDRY_SANDBOX_SERVER_URL === void 0) {
|
|
434
|
+
throw new Error(
|
|
435
|
+
"TRUEFOUNDRY_SANDBOX_PROVIDER=truefoundry requires TRUEFOUNDRY_SANDBOX_SERVER_URL, or set TRUEFOUNDRY_SANDBOX_ENABLED=false."
|
|
376
436
|
);
|
|
377
437
|
}
|
|
378
438
|
}
|
|
@@ -554,10 +614,14 @@ var ScheduleRunSchema = z2.object({
|
|
|
554
614
|
status: ScheduleRunStatusSchema,
|
|
555
615
|
created_by_subject: CreatedBySubjectSchema,
|
|
556
616
|
triggered_at: NullableIsoTimestamp,
|
|
617
|
+
reason: z2.string().nullable(),
|
|
557
618
|
created_at: IsoTimestamp,
|
|
558
619
|
updated_at: IsoTimestamp
|
|
559
620
|
}).strict().openapi("ScheduleRun");
|
|
560
|
-
var ListScheduleRunsResponseSchema = z2.object({
|
|
621
|
+
var ListScheduleRunsResponseSchema = z2.object({
|
|
622
|
+
data: z2.array(ScheduleRunSchema),
|
|
623
|
+
pagination: TokenPaginationSchema
|
|
624
|
+
}).openapi("ListScheduleRunsResponse");
|
|
561
625
|
var CreateScheduleRunRequestSchema = z2.object({
|
|
562
626
|
schedule_id: z2.string().min(1).max(64).describe("Immutable schedule identifier.")
|
|
563
627
|
}).strict().describe("Trigger an immediate run for the given schedule. The task is taken from the schedule manifest.").openapi("CreateScheduleRunRequest");
|
|
@@ -609,6 +673,9 @@ function nextTriggerAfter(input) {
|
|
|
609
673
|
|
|
610
674
|
// src/controller/scheduleDispatch.ts
|
|
611
675
|
var DISPATCH_BATCH_LIMIT = 20;
|
|
676
|
+
function scheduleRunFailureReason(error) {
|
|
677
|
+
return error instanceof Error && error.message.trim() !== "" ? error.message : "Schedule run failed";
|
|
678
|
+
}
|
|
612
679
|
var SCHEDULE_DISPATCH_INTERVAL_MS = 6e4;
|
|
613
680
|
var SCHEDULE_DISPATCH_LOOP_NAME = "schedule-dispatch";
|
|
614
681
|
function executeScheduledRun(client) {
|
|
@@ -629,10 +696,13 @@ function executeScheduledRun(client) {
|
|
|
629
696
|
};
|
|
630
697
|
}
|
|
631
698
|
async function finishScheduledRun(params) {
|
|
632
|
-
const { store, withTransaction, run, status, now: now2 } = params;
|
|
699
|
+
const { store, withTransaction, run, status, reason, now: now2 } = params;
|
|
633
700
|
await withTransaction(async (txn) => {
|
|
634
701
|
const latest = await store.getScheduleForUpdate({ tenant_id: run.tenant_id, id: run.schedule_id }, txn);
|
|
635
|
-
const updated = await store.updateRunStatus(
|
|
702
|
+
const updated = await store.updateRunStatus(
|
|
703
|
+
{ tenant_id: run.tenant_id, id: run.id, status, reason: reason ?? null },
|
|
704
|
+
txn
|
|
705
|
+
);
|
|
636
706
|
if (updated === void 0) {
|
|
637
707
|
return;
|
|
638
708
|
}
|
|
@@ -697,6 +767,7 @@ async function dispatchScheduledRuns(params) {
|
|
|
697
767
|
run,
|
|
698
768
|
now: now2,
|
|
699
769
|
status: "failed",
|
|
770
|
+
reason: scheduleRunFailureReason(error),
|
|
700
771
|
withTransaction
|
|
701
772
|
});
|
|
702
773
|
failed += 1;
|
|
@@ -912,6 +983,7 @@ import {
|
|
|
912
983
|
decodeOffsetPageToken,
|
|
913
984
|
paginateOffsetRows
|
|
914
985
|
} from "@truefoundry/trueforge-core/agent-session/store/OffsetPageToken";
|
|
986
|
+
import { sql as sql3 } from "kysely";
|
|
915
987
|
|
|
916
988
|
// src/utils/id.ts
|
|
917
989
|
import { ulid } from "ulid";
|
|
@@ -967,6 +1039,7 @@ function toRunRecord(row) {
|
|
|
967
1039
|
status: row.status,
|
|
968
1040
|
created_by_subject: CreatedBySubjectSchema2.parse(row.created_by_subject),
|
|
969
1041
|
triggered_at: row.triggered_at === null ? null : row.triggered_at.toISOString(),
|
|
1042
|
+
reason: row.reason,
|
|
970
1043
|
created_at: row.created_at.toISOString(),
|
|
971
1044
|
updated_at: row.updated_at.toISOString()
|
|
972
1045
|
};
|
|
@@ -1086,10 +1159,20 @@ var PostgresScheduleStore = class {
|
|
|
1086
1159
|
const { data, pagination } = paginateOffsetRows(rows, input.limit, offset);
|
|
1087
1160
|
return { data: data.map(toScheduleRecord), pagination };
|
|
1088
1161
|
}
|
|
1162
|
+
async getOwnedIds(input, transaction) {
|
|
1163
|
+
if (input.ids.length === 0) {
|
|
1164
|
+
return [];
|
|
1165
|
+
}
|
|
1166
|
+
const db = transaction ?? this.#db;
|
|
1167
|
+
const rows = await db.selectFrom("schedule").select("id").where("tenant_id", "=", input.tenant_id).where("id", "in", [...input.ids]).where(sql3`created_by_subject->>'subject_id'`, "=", input.subject_id).execute();
|
|
1168
|
+
return rows.map((row) => row.id);
|
|
1169
|
+
}
|
|
1089
1170
|
async listRuns(input, transaction) {
|
|
1171
|
+
const offset = decodeOffsetPageToken(input.page_token);
|
|
1090
1172
|
const db = transaction ?? this.#db;
|
|
1091
|
-
const rows = await db.selectFrom("schedule_run").selectAll().where("tenant_id", "=", input.tenant_id).where("schedule_id", "=", input.schedule_id).orderBy("scheduled_for", "desc").orderBy("id").execute();
|
|
1092
|
-
|
|
1173
|
+
const rows = await db.selectFrom("schedule_run").selectAll().where("tenant_id", "=", input.tenant_id).where("schedule_id", "=", input.schedule_id).orderBy("scheduled_for", "desc").orderBy("id").limit(input.limit + 1).offset(offset).execute();
|
|
1174
|
+
const { data, pagination } = paginateOffsetRows(rows, input.limit, offset);
|
|
1175
|
+
return { data: data.map(toRunRecord), pagination };
|
|
1093
1176
|
}
|
|
1094
1177
|
async getRun(input, transaction) {
|
|
1095
1178
|
const db = transaction ?? this.#db;
|
|
@@ -1113,6 +1196,7 @@ var PostgresScheduleStore = class {
|
|
|
1113
1196
|
status: input.status,
|
|
1114
1197
|
created_by_subject: json(input.created_by_subject),
|
|
1115
1198
|
triggered_at: input.triggered_at ?? null,
|
|
1199
|
+
reason: input.reason ?? null,
|
|
1116
1200
|
created_at: now(),
|
|
1117
1201
|
updated_at: now()
|
|
1118
1202
|
}).returningAll().executeTakeFirstOrThrow();
|
|
@@ -1126,7 +1210,9 @@ var PostgresScheduleStore = class {
|
|
|
1126
1210
|
}
|
|
1127
1211
|
async updateRunStatus(input, transaction) {
|
|
1128
1212
|
const db = transaction ?? this.#db;
|
|
1129
|
-
const
|
|
1213
|
+
const timestamp = now();
|
|
1214
|
+
const reason = input.status === "failed" ? input.reason ?? null : null;
|
|
1215
|
+
const patch = input.status === "triggered" ? { status: input.status, triggered_at: timestamp, reason, updated_at: timestamp } : { status: input.status, reason, updated_at: timestamp };
|
|
1130
1216
|
const row = await db.updateTable("schedule_run").set(patch).where("tenant_id", "=", input.tenant_id).where("id", "=", input.id).returningAll().executeTakeFirst();
|
|
1131
1217
|
return row === void 0 ? void 0 : toRunRecord(row);
|
|
1132
1218
|
}
|