@runeya/runeya 2.0.13 → 2.0.16
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/agent/index.js +236 -15
- package/agent/index.js.map +1 -1
- package/agent-manager-7IDZTNVZ-HVRWIXYW.js +8 -0
- package/{chunk-AJW7LDO5.js → chunk-AHOJAT74.js} +9 -3
- package/chunk-AHOJAT74.js.map +1 -0
- package/{dist-HGCFHXO4.js → dist-P3HYK2SI.js} +334 -92
- package/dist-P3HYK2SI.js.map +1 -0
- package/index.js +1 -1
- package/package.json +1 -1
- package/web/assets/{AddressBar.vue-B6BOLYmO.js → AddressBar.vue-BZnGu8vW.js} +1 -1
- package/web/assets/{AgentScalarChatInterface.vue-DKSmjtvV.js → AgentScalarChatInterface.vue-QkKS0oIt.js} +1 -1
- package/web/assets/{AgentTerminalPage-BZ6jaRAs.js → AgentTerminalPage-CfI3DoEO.js} +1 -1
- package/web/assets/AiChatPage-C_j-aspS.js +1 -0
- package/web/assets/{AppLayout-B7-y0tBI.css → AppLayout-Cf8sRK63.css} +1 -1
- package/web/assets/{AppLayout-DnMCPCO8.js → AppLayout-CgU4s6lb.js} +1 -1
- package/web/assets/{AuditPage-CTdEvLE-.js → AuditPage-C42BeKr5.js} +1 -1
- package/web/assets/{CodeInput.vue-Sp2dM8hl.js → CodeInput.vue-BGBOdacc.js} +1 -1
- package/web/assets/{Collection.vue-CdPjaC9d.js → Collection.vue-Vub9L9if.js} +1 -1
- package/web/assets/{CollectionAuthentication.vue-DMPykUah.js → CollectionAuthentication.vue-DMa9nYTH.js} +1 -1
- package/web/assets/CollectionCookies.vue-Dr_bErXS.js +1 -0
- package/web/assets/{CollectionEnvironment.vue-DKab6xJJ.js → CollectionEnvironment.vue-CcS_RH1F.js} +1 -1
- package/web/assets/{CollectionOverview.vue-DlODh8Vk.js → CollectionOverview.vue-Cm3m-3IA.js} +1 -1
- package/web/assets/CollectionScripts.vue-DwfCDW_N.js +1 -0
- package/web/assets/{CollectionServers.vue-Br-QackN.js → CollectionServers.vue-CDU7RCJI.js} +1 -1
- package/web/assets/{CollectionSettings.vue-Cm6NQbDm.js → CollectionSettings.vue-QApKyKpx.js} +1 -1
- package/web/assets/CollectionSync.vue-2mc6W9Vb.js +1 -0
- package/web/assets/{CommandActionInput.vue-CZ3-rqSL.js → CommandActionInput.vue-CSydiKjM.js} +1 -1
- package/web/assets/{Cookies.vue-Duz-a-ga.js → Cookies.vue-2UMujX_l.js} +1 -1
- package/web/assets/DashboardPage-CSkUCQHY.css +1 -0
- package/web/assets/DashboardPage-Dt5zSm2a.js +1 -0
- package/web/assets/{DataTable.vue-Dorr-r7J.js → DataTable.vue-BKb6QQRz.js} +1 -1
- package/web/assets/{DataTableCheckbox.vue-CATn-YYp.js → DataTableCheckbox.vue-DC2n-xeZ.js} +1 -1
- package/web/assets/{DataTableHeader.vue-C3SUSaR8.js → DataTableHeader.vue-Cbolg5AE.js} +1 -1
- package/web/assets/{DataTableInput.vue-_06pwPUA.js → DataTableInput.vue-DoVPLXed.js} +1 -1
- package/web/assets/{DeleteSidebarListElement.vue-DoqRnMXx.js → DeleteSidebarListElement.vue-Br-Lvh7k.js} +1 -1
- package/web/assets/{EditSidebarListElement.vue-BqTw6Tho.js → EditSidebarListElement.vue-BVJ4wsTf.js} +1 -1
- package/web/assets/{EditorIcon-CbpIT0A1.js → EditorIcon-D3F3QHD_.js} +1 -1
- package/web/assets/{EmptyState.vue-Bur5L0a4.js → EmptyState.vue-DMCTVrXN.js} +1 -1
- package/web/assets/{Environment.vue-C50lH9cP.js → Environment.vue-CEBYjegx.js} +1 -1
- package/web/assets/{EnvironmentForm-BDfzXuHx.js → EnvironmentForm-D9pUNi_S.js} +1 -1
- package/web/assets/{EnvironmentFormPage-CLylRN6B.js → EnvironmentFormPage-BQwHvpiH.js} +1 -1
- package/web/assets/{EnvironmentListPage-DlUT6LnX.js → EnvironmentListPage-BEX6YTjm.js} +1 -1
- package/web/assets/{EnvironmentModal.vue-Dz5CArRX.js → EnvironmentModal.vue-Bipjnu_F.js} +1 -1
- package/web/assets/{EnvironmentSelector-DHoYUCTH.js → EnvironmentSelector-BsLO-o9W.js} +1 -1
- package/web/assets/{Form.vue-BzZCMgN1.js → Form.vue-CwujTuIH.js} +1 -1
- package/web/assets/{IconSelector.vue-BCmeqlrs.js → IconSelector.vue-xGa1snoB.js} +1 -1
- package/web/assets/KanbanBoardPage-CS0DFaYQ.js +2 -0
- package/web/assets/KanbanBoardPage-GHv836NO.css +1 -0
- package/web/assets/{KanbanListPage-BLdNz80q.js → KanbanListPage-BlycDa8i.js} +1 -1
- package/web/assets/{LaunchProjectPage-DjRA2D3h.js → LaunchProjectPage-CQPXVRR8.js} +1 -1
- package/web/assets/{LaunchServicesPage-CKaGcu3z.js → LaunchServicesPage-DIc47d5w.js} +1 -1
- package/web/assets/{LogViewer-CtX_6uFM.js → LogViewer-D-j9SP-8.js} +1 -1
- package/web/assets/{ProcessControls-BY-_9zo7.js → ProcessControls-D3MHr6vJ.js} +1 -1
- package/web/assets/{ProcessDetailPage-Bqis1qMA.js → ProcessDetailPage-DArVdn5O.js} +1 -1
- package/web/assets/{ProcessMetrics-DQybvwcA.js → ProcessMetrics-tRbudcTQ.js} +1 -1
- package/web/assets/{ProjectDetailPage-FBPonwd5.js → ProjectDetailPage-DQWbqmra.js} +1 -1
- package/web/assets/{ProjectListPage-xwlVXN8A.js → ProjectListPage-BArhG94f.js} +1 -1
- package/web/assets/{RandomJobTestPage-0pqne-FD.js → RandomJobTestPage-cx0kQXnf.js} +1 -1
- package/web/assets/{Request.vue-Db4XEPKt.js → Request.vue-B9DoYtI8.js} +1 -1
- package/web/assets/{RequestAuth.vue-CK1A6ySt.js → RequestAuth.vue-CqHxzl6g.js} +1 -1
- package/web/assets/{RequestRoot.vue-BLF0GGT5.js → RequestRoot.vue-C28ISMld.js} +1 -1
- package/web/assets/{ScalarAsciiArt.vue-BPdUsXWj.js → ScalarAsciiArt.vue-BYd0f-av.js} +1 -1
- package/web/assets/{ScalarIconEyeSlash.vue-BBDBShRO.js → ScalarIconEyeSlash.vue-Ct2ktTXq.js} +1 -1
- package/web/assets/{ScalarIconTrash.vue-Tpr15aNY.js → ScalarIconTrash.vue-DQO_gQ8s.js} +1 -1
- package/web/assets/{ScenarioEditorPage-DNuo-2Gi.js → ScenarioEditorPage-DP06DP64.js} +1 -1
- package/web/assets/{ServerVariablesForm.vue-XLQ145gw.js → ServerVariablesForm.vue-D11m7aiX.js} +1 -1
- package/web/assets/{ServiceControlsBar-CCTGcA1t.js → ServiceControlsBar-DMq83CtH.js} +1 -1
- package/web/assets/{ServiceDetailPage-BELECRic.css → ServiceDetailPage-BngfQIAo.css} +1 -1
- package/web/assets/ServiceDetailPage-Cn1MTG_u.js +2 -0
- package/web/assets/{ServiceFormPage-F3boRKs-.js → ServiceFormPage-CyIValC5.js} +1 -1
- package/web/assets/{Settings.vue-D_1yQu6i.js → Settings.vue-CCeUjK5z.js} +1 -1
- package/web/assets/{SettingsPage-CgJN_IL7.css → SettingsPage-BhGoaUHP.css} +1 -1
- package/web/assets/SettingsPage-LVnvVA93.js +225 -0
- package/web/assets/{SetupKeyPage-BcaSoLjU.js → SetupKeyPage-DOxR0hTs.js} +1 -1
- package/web/assets/{SetupPage-mCVAKLtm.js → SetupPage-DTQqk8IW.js} +1 -1
- package/web/assets/{Sidebar.vue-De4YlW0c.js → Sidebar.vue-BLpHEfAt.js} +1 -1
- package/web/assets/{SidebarButton.vue-CctYiTRp.js → SidebarButton.vue-CNMSjNtm.js} +1 -1
- package/web/assets/{SidebarListElement.vue-Cv7jUZIM.js → SidebarListElement.vue-DSsy6NQT.js} +1 -1
- package/web/assets/TiptapEditor-DzMKh7Iq.css +1 -0
- package/web/assets/TiptapEditor-TuQki585.js +181 -0
- package/web/assets/{UnlockPage-BSpzyZnd.js → UnlockPage-D4x8qq_i.js} +1 -1
- package/web/assets/{VariablesTable-Dn3IvplD.js → VariablesTable-BP8KuwPI.js} +1 -1
- package/web/assets/{ViewLayout.vue-fiagi8zc.js → ViewLayout.vue-Dui_p5J4.js} +1 -1
- package/web/assets/{ViewLayoutContent.vue-BehGrsED.js → ViewLayoutContent.vue-CZRQTJFb.js} +1 -1
- package/web/assets/{ViewLayoutSection.vue-D4icCgQI.js → ViewLayoutSection.vue-C87DZ2QU.js} +1 -1
- package/web/assets/WikiPage-BrgnqOvx.js +1 -0
- package/web/assets/WikiView-CMF4PzXp.css +1 -0
- package/web/assets/WikiView-Decl55xY.js +1 -0
- package/web/assets/{active-entities-CkBGjwu9.js → active-entities-DEkfqGrE.js} +1 -1
- package/web/assets/{api-reference-D1EfYtPj.js → api-reference-DP5iGzGP.js} +1 -1
- package/web/assets/{autocomplete-CjBHTJWh.js → autocomplete-DcAAfn0y.js} +1 -1
- package/web/assets/{card-CsmU2iiY.js → card-DyK4dvjg.js} +1 -1
- package/web/assets/{checkbox-B5XZqi1U.js → checkbox-Csn61_gJ.js} +1 -1
- package/web/assets/{chip-C4pSomPm.js → chip-DkjFl7f-.js} +1 -1
- package/web/assets/{column-CR3Hix4J.js → column-DyznW54C.js} +1 -1
- package/web/assets/{core-CtGUajLi.js → core-BXP8Yp-2.js} +1 -1
- package/web/assets/{cssMode-nuznbveH.js → cssMode-C9nCeku9.js} +1 -1
- package/web/assets/{dist--ZlcDulO.js → dist-DKLcX5kd.js} +1 -1
- package/web/assets/{dist-DH_zJr7W.js → dist-DM4_kDGf.js} +1 -1
- package/web/assets/{dist-WjGUyWSO.js → dist-DOfPSpzL.js} +1 -1
- package/web/assets/{dist-CXkMrHNP.js → dist-zqENM1-W.js} +1 -1
- package/web/assets/{divider-CnJlD7qO.js → divider-BJQexqne.js} +1 -1
- package/web/assets/{fieldset-D9zY6R6s.js → fieldset-BPm9DkKy.js} +1 -1
- package/web/assets/{freemarker2-Bw43sOne.js → freemarker2-BaJGEPal.js} +1 -1
- package/web/assets/{handlebars-C8qgW7u6.js → handlebars-BQFn9RdQ.js} +1 -1
- package/web/assets/{html-Dy9PKnkr.js → html-Cr5a-EYz.js} +1 -1
- package/web/assets/{htmlMode-o8EU0tqo.js → htmlMode-CC9GYLNa.js} +1 -1
- package/web/assets/{index-CIcE6DNv.js → index-CV_lCcKm.js} +5 -5
- package/web/assets/{javascript-CuRngcUR.js → javascript-mDqsZBlu.js} +1 -1
- package/web/assets/{jsonMode-CsUIxwQq.js → jsonMode-B54JAo3i.js} +1 -1
- package/web/assets/{keyboard-DhkINir5.js → keyboard-BALpgxzI.js} +1 -1
- package/web/assets/{lib-E9M4L9vE.js → lib-CbGVmNqI.js} +1 -1
- package/web/assets/{library-BXoSag-V.js → library-DL2YIihE.js} +1 -1
- package/web/assets/{liquid-CraMnqaK.js → liquid-DiGHjG_L.js} +1 -1
- package/web/assets/{mdx-DPSW5q1A.js → mdx-D6dV5_Hg.js} +1 -1
- package/web/assets/{mediaTypes-DDACekzr.js → mediaTypes-97PR9Ryv.js} +1 -1
- package/web/assets/{message-DKOCajc6.js → message-CkvY1zpy.js} +1 -1
- package/web/assets/{minus-CtlH9Syh.js → minus-Cz1A1nRX.js} +1 -1
- package/web/assets/{multiselect-sshNnjnF.js → multiselect-Cg_IvTVL.js} +1 -1
- package/web/assets/{password-Dv9g39jb.js → password-DnBPksM5.js} +1 -1
- package/web/assets/{plus-CG5Ui-l-.js → plus-DLza1kmt.js} +1 -1
- package/web/assets/{pretty-ms-D2BVTeMx.js → pretty-ms-CFs2lDEt.js} +1 -1
- package/web/assets/process.store-DOZqELYx.js +1 -0
- package/web/assets/{project.store-CVbXSH5d.js → project.store-1ZxiIOdG.js} +1 -1
- package/web/assets/{python-BLq8fVkV.js → python-CBOkbLwS.js} +1 -1
- package/web/assets/{radiobutton-Bz_ltBfM.js → radiobutton-Bzj_cgKU.js} +1 -1
- package/web/assets/{razor-CVrBU-Fk.js → razor-DbhB_XzZ.js} +1 -1
- package/web/assets/router-BXlVOZht.js +1 -0
- package/web/assets/{settings.store-vM-8jbAF.js → settings.store-Qq6Gc2CT.js} +1 -1
- package/web/assets/{store-CTKZgNiD.js → store-Cuguy-ft.js} +1 -1
- package/web/assets/{tabpanel-DaZzgdrv.js → tabpanel-BkIDALQ8.js} +1 -1
- package/web/assets/trpc-BFwMZelk.js +1 -0
- package/web/assets/{tsMode-DO5zEzzD.js → tsMode-B48YcNcc.js} +1 -1
- package/web/assets/{typescript-Do-K_3Jj.js → typescript-DNe7mq9Z.js} +1 -1
- package/web/assets/{urls-BlVUwVFM.js → urls-Bhy-NKbg.js} +1 -1
- package/web/assets/{use-tree-walker-xoEX554A.js → use-tree-walker-DGf54lqT.js} +1 -1
- package/web/assets/useAiChatDrawer-C-QgDgQO.js +1 -0
- package/web/assets/{useClipboard-B3J6cGK-.js → useClipboard-Ba0ZMSjV.js} +1 -1
- package/web/assets/{useLayout-DHrumlpr.js → useLayout-CmsWxVhO.js} +1 -1
- package/web/assets/{usePluginManager-BEbBxZnF.js → usePluginManager-DBLyufEz.js} +1 -1
- package/web/assets/{useSidebar-BCBwVF2x.js → useSidebar-BWKBo0y4.js} +1 -1
- package/web/assets/{vue-router-CuFIegGa.js → vue-router-By6H_4a-.js} +1 -1
- package/web/assets/{xml-BolCsFLY.js → xml-zVv61nBe.js} +1 -1
- package/web/assets/{yaml-5iZTkCV3.js → yaml-DJ0ncxUH.js} +1 -1
- package/web/index.html +1 -1
- package/agent-manager-3DHUF2DC-KN6O7WSA.js +0 -8
- package/chunk-AJW7LDO5.js.map +0 -1
- package/dist-HGCFHXO4.js.map +0 -1
- package/web/assets/AiChatPage-C1r42kX7.js +0 -1
- package/web/assets/CollectionCookies.vue-DqNgVtd-.js +0 -1
- package/web/assets/CollectionScripts.vue-B2gkfo4d.js +0 -1
- package/web/assets/CollectionSync.vue-bB7sdahP.js +0 -1
- package/web/assets/DashboardPage-gZJ4_s8T.css +0 -1
- package/web/assets/DashboardPage-hIc9wP_Q.js +0 -1
- package/web/assets/KanbanBoardPage-DoXgFMvo.js +0 -141
- package/web/assets/KanbanBoardPage-hqNojI5j.css +0 -1
- package/web/assets/ServiceDetailPage-UVg73scN.js +0 -2
- package/web/assets/SettingsPage-Cg78lQZF.js +0 -225
- package/web/assets/process.store-CutdTiYB.js +0 -1
- package/web/assets/router-CuxdGfLF.js +0 -1
- package/web/assets/trpc-BIjF6nTt.js +0 -1
- package/web/assets/useAiChatDrawer-BJugMTj0.js +0 -1
- /package/{agent-manager-3DHUF2DC-KN6O7WSA.js.map → agent-manager-7IDZTNVZ-HVRWIXYW.js.map} +0 -0
- /package/web/assets/{_plugin-vue_export-helper-C08BWUE4.js → _plugin-vue_export-helper-BVSTY9ge.js} +0 -0
- /package/web/assets/{abap-BMPR0rjj.js → abap-DktqfXDx.js} +0 -0
- /package/web/assets/{apex-DYC4uYYf.js → apex-C84w8VGC.js} +0 -0
- /package/web/assets/{azcli-GZlxEjpa.js → azcli-Cs5iRzPw.js} +0 -0
- /package/web/assets/{base64-VLYHbiMn.js → base64-CG47Jc3Y.js} +0 -0
- /package/web/assets/{bat-Cv8OxItG.js → bat-Bxztgnvx.js} +0 -0
- /package/web/assets/{bicep-CuCbE6Ue.js → bicep-EmTmx6Fy.js} +0 -0
- /package/web/assets/{cameligo-BEPX3585.js → cameligo-DZYk6cOD.js} +0 -0
- /package/web/assets/{clojure--6rbXIPY.js → clojure-QYeZgX63.js} +0 -0
- /package/web/assets/{coffee-ByvVcDGX.js → coffee-DP64XG_I.js} +0 -0
- /package/web/assets/{cpp-CECtPnZp.js → cpp-Dz6-l8vs.js} +0 -0
- /package/web/assets/{csharp-DyYyZ8UX.js → csharp-CcVGRY-t.js} +0 -0
- /package/web/assets/{csp-B9apvcI9.js → csp-Cqpt0M-R.js} +0 -0
- /package/web/assets/{css-CfdBNbB0.js → css-BEjT2o3U.js} +0 -0
- /package/web/assets/{cypher-BPqQq4XX.js → cypher-CFsKHT39.js} +0 -0
- /package/web/assets/{dart-BLToxiYU.js → dart-Dd8xW03D.js} +0 -0
- /package/web/assets/{dist-COg0nRYK.js → dist-BPIMeATj.js} +0 -0
- /package/web/assets/{dockerfile-CKo5jN7V.js → dockerfile-MHoTmcM0.js} +0 -0
- /package/web/assets/{ecl-qo8pi1Ty.js → ecl-DDOk3_u-.js} +0 -0
- /package/web/assets/{elixir-Dv1YAMPJ.js → elixir-BrvvYQkl.js} +0 -0
- /package/web/assets/{flow9-BKTKs1nN.js → flow9-Desf9xEz.js} +0 -0
- /package/web/assets/{fsharp-BPoxgmtD.js → fsharp-B8Icgpa6.js} +0 -0
- /package/web/assets/{go-DgJ-2ryf.js → go-Do5MIzaM.js} +0 -0
- /package/web/assets/{graphql-YTK8zpFe.js → graphql-CiG6oX7b.js} +0 -0
- /package/web/assets/{hcl-tYOvwaJ3.js → hcl-C-xKM4WW.js} +0 -0
- /package/web/assets/{ini-BTZ3lNbM.js → ini-DXIR0OjP.js} +0 -0
- /package/web/assets/{java-boRe0CIQ.js → java-Dy8EfEt9.js} +0 -0
- /package/web/assets/{julia-K6BtoWYX.js → julia-DkrFX1s_.js} +0 -0
- /package/web/assets/{kotlin-CglG00z4.js → kotlin-Dar7GDKm.js} +0 -0
- /package/web/assets/{less-DlnIYk4g.js → less-DzP6DgzU.js} +0 -0
- /package/web/assets/{lexon-D4aKXJ0J.js → lexon-DptP6qTd.js} +0 -0
- /package/web/assets/{lua-DeQCQ0IN.js → lua-CCVwtOWf.js} +0 -0
- /package/web/assets/{m3-yCjRJP_i.js → m3-DrEvvio5.js} +0 -0
- /package/web/assets/{markdown-C2IT79AR.js → markdown-ruxuCKkk.js} +0 -0
- /package/web/assets/{mips-BAnhwv_D.js → mips-BQqMOsEB.js} +0 -0
- /package/web/assets/{msdax-D1jHDTih.js → msdax-phO8WA3n.js} +0 -0
- /package/web/assets/{mysql-CTJU-jL7.js → mysql-CTdeo58Q.js} +0 -0
- /package/web/assets/{objective-c-CwxzUA28.js → objective-c-jhQ0iM6X.js} +0 -0
- /package/web/assets/{pascal-DpSQp86i.js → pascal-C8SkzMHp.js} +0 -0
- /package/web/assets/{pascaligo-C4F0Gc12.js → pascaligo-ArPaQLGJ.js} +0 -0
- /package/web/assets/{perl-87HvGh3u.js → perl-DdJtSHIR.js} +0 -0
- /package/web/assets/{pgsql-DUB3YVHd.js → pgsql-DzJ8nWb2.js} +0 -0
- /package/web/assets/{php-gpgbnwXh.js → php-CCjtAB9z.js} +0 -0
- /package/web/assets/{pla-9VH1h0qA.js → pla-BcEbmw3g.js} +0 -0
- /package/web/assets/{postiats-DYNil0RB.js → postiats-Fpcus-uJ.js} +0 -0
- /package/web/assets/{powerquery-Cyj_QMWN.js → powerquery-Cu-9g7NG.js} +0 -0
- /package/web/assets/{powershell-BxsWzjwy.js → powershell-DO2fUGfn.js} +0 -0
- /package/web/assets/{protobuf-CpB35fc2.js → protobuf-DQup7qRj.js} +0 -0
- /package/web/assets/{pug-CQ3BHXrf.js → pug-Duim2NdD.js} +0 -0
- /package/web/assets/{qsharp-hvdiA16n.js → qsharp-CytI7IVT.js} +0 -0
- /package/web/assets/{r-BcpSD-1e.js → r-DZINbLk_.js} +0 -0
- /package/web/assets/{redis-B2JGUU7L.js → redis-Bf0SVuM0.js} +0 -0
- /package/web/assets/{redshift-DtV7K8A1.js → redshift-oHIhn4rc.js} +0 -0
- /package/web/assets/{restructuredtext-avYcqBCA.js → restructuredtext-B3n-oeH1.js} +0 -0
- /package/web/assets/{ruby-B75_Tp8C.js → ruby-DXTCv0Dq.js} +0 -0
- /package/web/assets/{rust-CHon-ZXH.js → rust-BM9bjpGj.js} +0 -0
- /package/web/assets/{sb-iehvyQKY.js → sb-BU8bPS70.js} +0 -0
- /package/web/assets/{scala-LBw1ennX.js → scala-BP9uGS4X.js} +0 -0
- /package/web/assets/{scheme-BRK_sKgt.js → scheme-rmkEHrlu.js} +0 -0
- /package/web/assets/{scss-CzbUsG5V.js → scss-BtCDKYlG.js} +0 -0
- /package/web/assets/{shell-DdtWj1FH.js → shell-CG1BTV1P.js} +0 -0
- /package/web/assets/{solidity-CBYPsj6K.js → solidity-DAYsr878.js} +0 -0
- /package/web/assets/{sophia-BAmZLhFu.js → sophia-DLSOk_-J.js} +0 -0
- /package/web/assets/{sparql-DzxQz_25.js → sparql-C_sea8Qf.js} +0 -0
- /package/web/assets/{sql-CtZa8xg5.js → sql-zI2PRpPJ.js} +0 -0
- /package/web/assets/{st-3yAXYt2f.js → st-VM0k3m2K.js} +0 -0
- /package/web/assets/{swift-nwo4k0Qx.js → swift-DAxKPUqq.js} +0 -0
- /package/web/assets/{systemverilog-38mUSYaO.js → systemverilog-D3gk_LvQ.js} +0 -0
- /package/web/assets/{tcl-DfkL3MZ2.js → tcl-YQSEIPQI.js} +0 -0
- /package/web/assets/{twig-C2_DTvv-.js → twig-Bt5uw3P4.js} +0 -0
- /package/web/assets/{typespec-Dn7A_7aO.js → typespec-CF_qDuWb.js} +0 -0
- /package/web/assets/{vb-ByZEqbuQ.js → vb-DERgblZJ.js} +0 -0
- /package/web/assets/{w3c-keyname-CXRaQfIQ.js → w3c-keyname-B0Po4pAC.js} +0 -0
- /package/web/assets/{wgsl-BqCLRRs9.js → wgsl-BrfJ-tM_.js} +0 -0
package/agent/index.js
CHANGED
|
@@ -920,7 +920,9 @@ var SettingsSchema = z5.object({
|
|
|
920
920
|
mode: z5.enum(["local-simple", "cloud"]),
|
|
921
921
|
cloudUrl: z5.string().url().max(2048).nullable().optional(),
|
|
922
922
|
logParsers: z5.array(JSLogParserSchema).max(100).default([]),
|
|
923
|
-
scenarios: z5.array(ScenarioSchema).max(100).default([])
|
|
923
|
+
scenarios: z5.array(ScenarioSchema).max(100).default([]),
|
|
924
|
+
/** Absolute path to the folder where the global wiki/docs markdown files live. Optional. */
|
|
925
|
+
globalDocsPath: z5.string().max(4096).optional()
|
|
924
926
|
});
|
|
925
927
|
var TraefikConfigSchema = z5.object({
|
|
926
928
|
enabled: z5.boolean().default(false),
|
|
@@ -1106,6 +1108,8 @@ var ServiceConfigSchema = z7.object({
|
|
|
1106
1108
|
// Metadata fields (migration from old Runeya)
|
|
1107
1109
|
groups: z7.array(z7.string().max(200)).max(20).optional().default([]),
|
|
1108
1110
|
description: z7.string().max(2e3).optional(),
|
|
1111
|
+
/** Path (relative to service.cwd or absolute) where the service's docs/wiki markdown files live. Optional — defaults to service.cwd. */
|
|
1112
|
+
docsPath: z7.string().max(4096).optional(),
|
|
1109
1113
|
url: z7.string().max(2048).optional(),
|
|
1110
1114
|
localUrls: z7.array(z7.object({
|
|
1111
1115
|
url: z7.string().max(253).regex(/^([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,}$/),
|
|
@@ -2048,8 +2052,8 @@ var FileLogSource = class extends EventEmitter2 {
|
|
|
2048
2052
|
}
|
|
2049
2053
|
}
|
|
2050
2054
|
if (this.config.startFromEnd) {
|
|
2051
|
-
const
|
|
2052
|
-
this.offset =
|
|
2055
|
+
const stat3 = await fsPromises.stat(this.config.path);
|
|
2056
|
+
this.offset = stat3.size;
|
|
2053
2057
|
} else {
|
|
2054
2058
|
this.offset = 0;
|
|
2055
2059
|
}
|
|
@@ -2082,17 +2086,17 @@ var FileLogSource = class extends EventEmitter2 {
|
|
|
2082
2086
|
return this.logBuffer.getByProcessId(processId);
|
|
2083
2087
|
}
|
|
2084
2088
|
async readNewLines(processId) {
|
|
2085
|
-
let
|
|
2089
|
+
let stat3;
|
|
2086
2090
|
try {
|
|
2087
|
-
|
|
2091
|
+
stat3 = await fsPromises.stat(this.config.path);
|
|
2088
2092
|
} catch {
|
|
2089
2093
|
return;
|
|
2090
2094
|
}
|
|
2091
|
-
if (
|
|
2095
|
+
if (stat3.size < this.offset) {
|
|
2092
2096
|
this.offset = 0;
|
|
2093
2097
|
}
|
|
2094
|
-
if (
|
|
2095
|
-
const length =
|
|
2098
|
+
if (stat3.size === this.offset) return;
|
|
2099
|
+
const length = stat3.size - this.offset;
|
|
2096
2100
|
const buf = Buffer.alloc(length);
|
|
2097
2101
|
let fd = null;
|
|
2098
2102
|
try {
|
|
@@ -2890,8 +2894,8 @@ var TraefikManager = class {
|
|
|
2890
2894
|
const walk = async (dir, base) => {
|
|
2891
2895
|
let entries;
|
|
2892
2896
|
try {
|
|
2893
|
-
const { readdir } = await import("fs/promises");
|
|
2894
|
-
entries = await
|
|
2897
|
+
const { readdir: readdir2 } = await import("fs/promises");
|
|
2898
|
+
entries = await readdir2(dir);
|
|
2895
2899
|
} catch {
|
|
2896
2900
|
return;
|
|
2897
2901
|
}
|
|
@@ -2899,8 +2903,8 @@ var TraefikManager = class {
|
|
|
2899
2903
|
const full = join2(dir, entry);
|
|
2900
2904
|
const rel = join2(base, entry);
|
|
2901
2905
|
try {
|
|
2902
|
-
const { stat:
|
|
2903
|
-
const s = await
|
|
2906
|
+
const { stat: stat3 } = await import("fs/promises");
|
|
2907
|
+
const s = await stat3(full);
|
|
2904
2908
|
if (s.isDirectory()) {
|
|
2905
2909
|
await walk(full, rel);
|
|
2906
2910
|
} else {
|
|
@@ -4923,10 +4927,11 @@ function resolveMcpServerPath() {
|
|
|
4923
4927
|
throw new Error("Could not locate @runeya/packages-mcp-server (built dist not found)");
|
|
4924
4928
|
}
|
|
4925
4929
|
var MAX_BUFFER_LINES = 1e5;
|
|
4926
|
-
var MAX_CONCURRENT_SPAWNS =
|
|
4930
|
+
var MAX_CONCURRENT_SPAWNS = 100;
|
|
4927
4931
|
var CLEANUP_INTERVAL_MS = 6e4;
|
|
4928
4932
|
var TTL_ACKED_MS = 5 * 6e4;
|
|
4929
4933
|
var TTL_UNACKED_MS = 24 * 36e5;
|
|
4934
|
+
var TTL_IDLE_PTY_MS = 30 * 6e4;
|
|
4930
4935
|
function resolveSpawnEnvAndArgs(opts) {
|
|
4931
4936
|
const runeyaEnv = {
|
|
4932
4937
|
...opts.mcpApiBaseUrl ? { RUNEYA_BASE_URL: opts.mcpApiBaseUrl } : {},
|
|
@@ -5200,7 +5205,19 @@ var AiSpawnManager = class {
|
|
|
5200
5205
|
cleanup() {
|
|
5201
5206
|
const now = Date.now();
|
|
5202
5207
|
for (const [id, entry] of this.spawns) {
|
|
5203
|
-
if (entry.status === "running")
|
|
5208
|
+
if (entry.status === "running") {
|
|
5209
|
+
if (entry.ptyProc) {
|
|
5210
|
+
const idle = now - (entry.lastChunkAt ?? entry.createdAt);
|
|
5211
|
+
if (idle > TTL_IDLE_PTY_MS) {
|
|
5212
|
+
try {
|
|
5213
|
+
entry.ptyProc.kill();
|
|
5214
|
+
} catch {
|
|
5215
|
+
}
|
|
5216
|
+
console.log(`[ai-spawn-manager] Reaped idle PTY ${id} (idle ${Math.round(idle / 1e3)}s)`);
|
|
5217
|
+
}
|
|
5218
|
+
}
|
|
5219
|
+
continue;
|
|
5220
|
+
}
|
|
5204
5221
|
const age = now - (entry.doneAt ?? entry.createdAt);
|
|
5205
5222
|
if (entry.acked && age > TTL_ACKED_MS) {
|
|
5206
5223
|
this.spawns.delete(id);
|
|
@@ -5669,6 +5686,209 @@ var aiRouter = router({
|
|
|
5669
5686
|
})
|
|
5670
5687
|
});
|
|
5671
5688
|
|
|
5689
|
+
// src/trpc/routers/wiki.ts
|
|
5690
|
+
import { z as z26 } from "zod";
|
|
5691
|
+
import { TRPCError as TRPCError6 } from "@trpc/server";
|
|
5692
|
+
import { readFile as readFile2, readdir, stat as stat2, realpath, writeFile as writeFile6, mkdir as mkdir6, rename as rename2, rm } from "fs/promises";
|
|
5693
|
+
import { dirname } from "path";
|
|
5694
|
+
import { resolve as resolvePath2, join as join5, relative, sep } from "path";
|
|
5695
|
+
var CWD_SCHEMA2 = z26.string().min(1).max(4096);
|
|
5696
|
+
var REL_PATH_SCHEMA = z26.string().min(1).max(512).regex(/^[A-Za-z0-9_./-]+$/).refine((p) => !p.includes("..") && !p.startsWith("/"), {
|
|
5697
|
+
message: "Path must be a relative path without traversal"
|
|
5698
|
+
});
|
|
5699
|
+
var MAX_FILES = 500;
|
|
5700
|
+
var MAX_DEPTH = 8;
|
|
5701
|
+
var MAX_FILE_BYTES = 2e6;
|
|
5702
|
+
var IGNORED_DIRS = /* @__PURE__ */ new Set([
|
|
5703
|
+
"node_modules",
|
|
5704
|
+
".git",
|
|
5705
|
+
"dist",
|
|
5706
|
+
"build",
|
|
5707
|
+
".next",
|
|
5708
|
+
".turbo",
|
|
5709
|
+
".cache",
|
|
5710
|
+
"coverage",
|
|
5711
|
+
".yarn",
|
|
5712
|
+
".pnpm-store",
|
|
5713
|
+
"target",
|
|
5714
|
+
"out"
|
|
5715
|
+
]);
|
|
5716
|
+
var RepoEntrySchema = z26.lazy(() => z26.union([
|
|
5717
|
+
z26.object({ type: z26.literal("file"), name: z26.string(), path: z26.string() }),
|
|
5718
|
+
z26.object({ type: z26.literal("dir"), name: z26.string(), path: z26.string(), children: z26.array(RepoEntrySchema) })
|
|
5719
|
+
]));
|
|
5720
|
+
async function walkMarkdown(root, dir, depth, counter) {
|
|
5721
|
+
if (depth > MAX_DEPTH || counter.n >= MAX_FILES) return [];
|
|
5722
|
+
let entries;
|
|
5723
|
+
try {
|
|
5724
|
+
entries = await readdir(dir, { withFileTypes: true });
|
|
5725
|
+
} catch {
|
|
5726
|
+
return [];
|
|
5727
|
+
}
|
|
5728
|
+
const out = [];
|
|
5729
|
+
for (const e of entries) {
|
|
5730
|
+
if (counter.n >= MAX_FILES) break;
|
|
5731
|
+
if (e.name.startsWith(".") && e.name !== ".") continue;
|
|
5732
|
+
const abs = join5(dir, e.name);
|
|
5733
|
+
const rel = relative(root, abs).split(sep).join("/");
|
|
5734
|
+
if (e.isDirectory()) {
|
|
5735
|
+
if (IGNORED_DIRS.has(e.name)) continue;
|
|
5736
|
+
const children = await walkMarkdown(root, abs, depth + 1, counter);
|
|
5737
|
+
out.push({ type: "dir", name: e.name, path: rel, children });
|
|
5738
|
+
} else if (e.isFile() && /\.(md|markdown)$/i.test(e.name)) {
|
|
5739
|
+
counter.n += 1;
|
|
5740
|
+
out.push({ type: "file", name: e.name, path: rel });
|
|
5741
|
+
}
|
|
5742
|
+
}
|
|
5743
|
+
out.sort((a, b) => {
|
|
5744
|
+
if (a.type !== b.type) return a.type === "dir" ? -1 : 1;
|
|
5745
|
+
return a.name.localeCompare(b.name);
|
|
5746
|
+
});
|
|
5747
|
+
return out;
|
|
5748
|
+
}
|
|
5749
|
+
async function resolveSafePath(root, relPath, requireExist) {
|
|
5750
|
+
if (relPath.includes("..") || relPath.startsWith("/")) {
|
|
5751
|
+
throw new TRPCError6({ code: "BAD_REQUEST", message: "Chemin invalide" });
|
|
5752
|
+
}
|
|
5753
|
+
const target = resolvePath2(root, relPath);
|
|
5754
|
+
if (requireExist) {
|
|
5755
|
+
let real;
|
|
5756
|
+
try {
|
|
5757
|
+
real = await realpath(target);
|
|
5758
|
+
} catch {
|
|
5759
|
+
throw new TRPCError6({ code: "NOT_FOUND", message: "Chemin introuvable" });
|
|
5760
|
+
}
|
|
5761
|
+
if (real !== root && !(real + sep).startsWith(root + sep)) {
|
|
5762
|
+
throw new TRPCError6({ code: "FORBIDDEN", message: "Hors du dossier autoris\xE9" });
|
|
5763
|
+
}
|
|
5764
|
+
return real;
|
|
5765
|
+
}
|
|
5766
|
+
const parent = dirname(target);
|
|
5767
|
+
let realParent;
|
|
5768
|
+
try {
|
|
5769
|
+
realParent = await realpath(parent);
|
|
5770
|
+
} catch {
|
|
5771
|
+
realParent = parent;
|
|
5772
|
+
}
|
|
5773
|
+
if (realParent !== root && !(realParent + sep).startsWith(root + sep)) {
|
|
5774
|
+
throw new TRPCError6({ code: "FORBIDDEN", message: "Hors du dossier autoris\xE9" });
|
|
5775
|
+
}
|
|
5776
|
+
return resolvePath2(realParent, target.slice(parent.length).replace(/^[\\/]+/, ""));
|
|
5777
|
+
}
|
|
5778
|
+
async function resolveRoot(cwd) {
|
|
5779
|
+
const expanded = expandEnvVar(cwd);
|
|
5780
|
+
const abs = resolvePath2(expanded);
|
|
5781
|
+
try {
|
|
5782
|
+
return await realpath(abs);
|
|
5783
|
+
} catch {
|
|
5784
|
+
throw new TRPCError6({ code: "NOT_FOUND", message: `Dossier introuvable: ${abs}` });
|
|
5785
|
+
}
|
|
5786
|
+
}
|
|
5787
|
+
var wikiRouter = router({
|
|
5788
|
+
listRepoMarkdown: protectedProcedure.input(z26.object({ cwd: CWD_SCHEMA2 })).query(async ({ input }) => {
|
|
5789
|
+
const root = await resolveRoot(input.cwd);
|
|
5790
|
+
const counter = { n: 0 };
|
|
5791
|
+
const entries = await walkMarkdown(root, root, 0, counter);
|
|
5792
|
+
return { root, entries, truncated: counter.n >= MAX_FILES };
|
|
5793
|
+
}),
|
|
5794
|
+
readRepoMarkdown: protectedProcedure.input(z26.object({ cwd: CWD_SCHEMA2, path: REL_PATH_SCHEMA })).query(async ({ input }) => {
|
|
5795
|
+
if (!/\.(md|markdown)$/i.test(input.path)) {
|
|
5796
|
+
throw new TRPCError6({ code: "BAD_REQUEST", message: "Seuls les .md sont autoris\xE9s" });
|
|
5797
|
+
}
|
|
5798
|
+
const root = await resolveRoot(input.cwd);
|
|
5799
|
+
const target = resolvePath2(root, input.path);
|
|
5800
|
+
let realTarget;
|
|
5801
|
+
try {
|
|
5802
|
+
realTarget = await realpath(target);
|
|
5803
|
+
} catch {
|
|
5804
|
+
throw new TRPCError6({ code: "NOT_FOUND", message: "Fichier introuvable" });
|
|
5805
|
+
}
|
|
5806
|
+
const realTargetWithSep = realTarget + sep;
|
|
5807
|
+
if (realTarget !== root && !realTargetWithSep.startsWith(root + sep)) {
|
|
5808
|
+
throw new TRPCError6({ code: "FORBIDDEN", message: "Hors du dossier du service" });
|
|
5809
|
+
}
|
|
5810
|
+
const s = await stat2(realTarget);
|
|
5811
|
+
if (!s.isFile()) {
|
|
5812
|
+
throw new TRPCError6({ code: "BAD_REQUEST", message: "Pas un fichier" });
|
|
5813
|
+
}
|
|
5814
|
+
if (s.size > MAX_FILE_BYTES) {
|
|
5815
|
+
throw new TRPCError6({ code: "PAYLOAD_TOO_LARGE", message: "Fichier trop volumineux" });
|
|
5816
|
+
}
|
|
5817
|
+
const content = await readFile2(realTarget, "utf-8");
|
|
5818
|
+
return { path: input.path, content };
|
|
5819
|
+
}),
|
|
5820
|
+
writeMarkdown: protectedProcedure.input(z26.object({
|
|
5821
|
+
cwd: CWD_SCHEMA2,
|
|
5822
|
+
path: REL_PATH_SCHEMA,
|
|
5823
|
+
content: z26.string().max(5e6)
|
|
5824
|
+
})).mutation(async ({ input }) => {
|
|
5825
|
+
if (!/\.(md|markdown)$/i.test(input.path)) {
|
|
5826
|
+
throw new TRPCError6({ code: "BAD_REQUEST", message: "Seuls les .md/.markdown sont autoris\xE9s" });
|
|
5827
|
+
}
|
|
5828
|
+
const root = await resolveRoot(input.cwd);
|
|
5829
|
+
const target = await resolveSafePath(root, input.path, false);
|
|
5830
|
+
await mkdir6(dirname(target), { recursive: true });
|
|
5831
|
+
await writeFile6(target, input.content, "utf-8");
|
|
5832
|
+
return { path: input.path, ok: true };
|
|
5833
|
+
}),
|
|
5834
|
+
createFile: protectedProcedure.input(z26.object({ cwd: CWD_SCHEMA2, path: REL_PATH_SCHEMA })).mutation(async ({ input }) => {
|
|
5835
|
+
if (!/\.(md|markdown)$/i.test(input.path)) {
|
|
5836
|
+
throw new TRPCError6({ code: "BAD_REQUEST", message: "Seuls les .md/.markdown sont autoris\xE9s" });
|
|
5837
|
+
}
|
|
5838
|
+
const root = await resolveRoot(input.cwd);
|
|
5839
|
+
const target = await resolveSafePath(root, input.path, false);
|
|
5840
|
+
try {
|
|
5841
|
+
await stat2(target);
|
|
5842
|
+
throw new TRPCError6({ code: "CONFLICT", message: "Fichier d\xE9j\xE0 existant" });
|
|
5843
|
+
} catch (err) {
|
|
5844
|
+
if (err instanceof TRPCError6) throw err;
|
|
5845
|
+
}
|
|
5846
|
+
await mkdir6(dirname(target), { recursive: true });
|
|
5847
|
+
await writeFile6(target, "", "utf-8");
|
|
5848
|
+
return { path: input.path, ok: true };
|
|
5849
|
+
}),
|
|
5850
|
+
createDir: protectedProcedure.input(z26.object({ cwd: CWD_SCHEMA2, path: REL_PATH_SCHEMA })).mutation(async ({ input }) => {
|
|
5851
|
+
const root = await resolveRoot(input.cwd);
|
|
5852
|
+
const target = await resolveSafePath(root, input.path, false);
|
|
5853
|
+
await mkdir6(target, { recursive: true });
|
|
5854
|
+
return { path: input.path, ok: true };
|
|
5855
|
+
}),
|
|
5856
|
+
renamePath: protectedProcedure.input(z26.object({
|
|
5857
|
+
cwd: CWD_SCHEMA2,
|
|
5858
|
+
fromPath: REL_PATH_SCHEMA,
|
|
5859
|
+
toPath: REL_PATH_SCHEMA
|
|
5860
|
+
})).mutation(async ({ input }) => {
|
|
5861
|
+
const root = await resolveRoot(input.cwd);
|
|
5862
|
+
const from = await resolveSafePath(root, input.fromPath, true);
|
|
5863
|
+
const to = await resolveSafePath(root, input.toPath, false);
|
|
5864
|
+
try {
|
|
5865
|
+
await stat2(to);
|
|
5866
|
+
throw new TRPCError6({ code: "CONFLICT", message: "La cible existe d\xE9j\xE0" });
|
|
5867
|
+
} catch (err) {
|
|
5868
|
+
if (err instanceof TRPCError6) throw err;
|
|
5869
|
+
}
|
|
5870
|
+
await mkdir6(dirname(to), { recursive: true });
|
|
5871
|
+
await rename2(from, to);
|
|
5872
|
+
return { fromPath: input.fromPath, toPath: input.toPath, ok: true };
|
|
5873
|
+
}),
|
|
5874
|
+
ensureRoot: protectedProcedure.input(z26.object({ cwd: CWD_SCHEMA2 })).mutation(async ({ input }) => {
|
|
5875
|
+
const expanded = expandEnvVar(input.cwd);
|
|
5876
|
+
const abs = resolvePath2(expanded);
|
|
5877
|
+
await mkdir6(abs, { recursive: true });
|
|
5878
|
+
const root = await realpath(abs);
|
|
5879
|
+
return { root, ok: true };
|
|
5880
|
+
}),
|
|
5881
|
+
deletePath: protectedProcedure.input(z26.object({ cwd: CWD_SCHEMA2, path: REL_PATH_SCHEMA })).mutation(async ({ input }) => {
|
|
5882
|
+
const root = await resolveRoot(input.cwd);
|
|
5883
|
+
const target = await resolveSafePath(root, input.path, true);
|
|
5884
|
+
if (target === root) {
|
|
5885
|
+
throw new TRPCError6({ code: "FORBIDDEN", message: "Impossible de supprimer la racine" });
|
|
5886
|
+
}
|
|
5887
|
+
await rm(target, { recursive: true, force: true });
|
|
5888
|
+
return { path: input.path, ok: true };
|
|
5889
|
+
})
|
|
5890
|
+
});
|
|
5891
|
+
|
|
5672
5892
|
// src/trpc/router.ts
|
|
5673
5893
|
var appRouter = router({
|
|
5674
5894
|
process: processRouter,
|
|
@@ -5676,7 +5896,8 @@ var appRouter = router({
|
|
|
5676
5896
|
config: configRouter,
|
|
5677
5897
|
terminal: terminalRouter,
|
|
5678
5898
|
git: gitRouter,
|
|
5679
|
-
ai: aiRouter
|
|
5899
|
+
ai: aiRouter,
|
|
5900
|
+
wiki: wikiRouter
|
|
5680
5901
|
});
|
|
5681
5902
|
|
|
5682
5903
|
// src/create-agent.ts
|