@runeya/runeya 2.0.14 → 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 +221 -13
- 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-TI3HFRUW.js → dist-P3HYK2SI.js} +321 -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-TI3HFRUW.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 {
|
|
@@ -5682,6 +5686,209 @@ var aiRouter = router({
|
|
|
5682
5686
|
})
|
|
5683
5687
|
});
|
|
5684
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
|
+
|
|
5685
5892
|
// src/trpc/router.ts
|
|
5686
5893
|
var appRouter = router({
|
|
5687
5894
|
process: processRouter,
|
|
@@ -5689,7 +5896,8 @@ var appRouter = router({
|
|
|
5689
5896
|
config: configRouter,
|
|
5690
5897
|
terminal: terminalRouter,
|
|
5691
5898
|
git: gitRouter,
|
|
5692
|
-
ai: aiRouter
|
|
5899
|
+
ai: aiRouter,
|
|
5900
|
+
wiki: wikiRouter
|
|
5693
5901
|
});
|
|
5694
5902
|
|
|
5695
5903
|
// src/create-agent.ts
|