decocms 2.304.10 → 2.304.11
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/client/assets/{AlertCircle-CjZpwsOG.js → AlertCircle-DNXZvA9j.js} +1 -1
- package/dist/client/assets/{ArrowNarrowLeft-DYvcqCDw.js → ArrowNarrowLeft-Gm4Xkvpy.js} +1 -1
- package/dist/client/assets/{ArrowUpRight-COD26E6f.js → ArrowUpRight-O3jikuh3.js} +1 -1
- package/dist/client/assets/{CheckCircle-CJDfHIIs.js → CheckCircle-H4V25dcS.js} +1 -1
- package/dist/client/assets/{ChevronDown-2A70mOdX.js → ChevronDown-Ce2OjGrT.js} +1 -1
- package/dist/client/assets/{ChevronRight-BLFgqoQD.js → ChevronRight-DM5N13PI.js} +1 -1
- package/dist/client/assets/{ChevronUp-CW7jO0Oa.js → ChevronUp-CyPLVPf1.js} +1 -1
- package/dist/client/assets/{Container-UVIOzZhY.js → Container-COQnfxdW.js} +1 -1
- package/dist/client/assets/{DotsVertical-BKulvLoy.js → DotsVertical-CyXt8PT9.js} +1 -1
- package/dist/client/assets/{LinkExternal01-8QSWs893.js → LinkExternal01-foB2b2ju.js} +1 -1
- package/dist/client/assets/{Lock01-ByEI8ntw.js → Lock01-ucerLi_m.js} +1 -1
- package/dist/client/assets/{Palette-MsdGyKno.js → Palette-CWS5P_Bb.js} +1 -1
- package/dist/client/assets/{Play-B43xV17t.js → Play-B0qxiwIM.js} +1 -1
- package/dist/client/assets/{Plus-DdlE9ylC.js → Plus-CXt-F95f.js} +1 -1
- package/dist/client/assets/{RefreshCcw01-CaYODjaH.js → RefreshCcw01-CvllgBGg.js} +1 -1
- package/dist/client/assets/{SearchMd-BiSKkSEC.js → SearchMd-mJ3-Y6pi.js} +1 -1
- package/dist/client/assets/{Settings02-WDv7ORkh.js → Settings02-CZXBZ9dp.js} +1 -1
- package/dist/client/assets/{Shield01-B1XU8jks.js → Shield01-DSEVwFlT.js} +1 -1
- package/dist/client/assets/{Star01-tlbUowkj.js → Star01-Kt9eAOrx.js} +1 -1
- package/dist/client/assets/{Sun-CWbOOQl7.js → Sun-DHxk_oDq.js} +1 -1
- package/dist/client/assets/{Tool01-D2ltJ3oZ.js → Tool01-D7BUXrGA.js} +1 -1
- package/dist/client/assets/{Trash01-5V2zml7z.js → Trash01-CpZ82qo1.js} +1 -1
- package/dist/client/assets/{User01-DicXRAlc.js → User01-BXHi1zAw.js} +1 -1
- package/dist/client/assets/{Users03-CI-FUj0j.js → Users03-CxpjXo7-.js} +1 -1
- package/dist/client/assets/{X-7bL4i7ak.js → X-Cesxj0TS.js} +1 -1
- package/dist/client/assets/{XCircle-DRwiT62A.js → XCircle-KN03fplT.js} +1 -1
- package/dist/client/assets/{XClose-cpPLXU9M.js → XClose-DFrrxeI9.js} +1 -1
- package/dist/client/assets/{Zap-BEzJ7FXF.js → Zap-BBJ66Grg.js} +1 -1
- package/dist/client/assets/{ZapSquare-Dc0--ocw.js → ZapSquare-DQMHM_Az.js} +1 -1
- package/dist/client/assets/{accordion-BFon3QKU.js → accordion-ENyIrry_.js} +1 -1
- package/dist/client/assets/{agent-icon-BcY1J7IV.js → agent-icon-DH1erOLo.js} +1 -1
- package/dist/client/assets/{agents-list-D3O8X25T.js → agents-list-CRVayb3p.js} +1 -1
- package/dist/client/assets/ai-providers-ChfcKFAa.js +1 -0
- package/dist/client/assets/{alert-dialog-EwOCtYma.js → alert-dialog-DisfPNds.js} +1 -1
- package/dist/client/assets/{auth-catchall-0F1oGDvu.js → auth-catchall-C7X3aqDL.js} +1 -1
- package/dist/client/assets/{automation-list-row-Bee5Mxa9.js → automation-list-row-B6R4hbWU.js} +1 -1
- package/dist/client/assets/{automations-BLTGSG_-.js → automations-B-eBYWeh.js} +1 -1
- package/dist/client/assets/{avatar-ekdbwMb-.js → avatar-BjZ78dvf.js} +1 -1
- package/dist/client/assets/{badge-BntPr7F5.js → badge-Bu2pzpRI.js} +1 -1
- package/dist/client/assets/{brand-context-CJsw1pSv.js → brand-context-BRZXdXIg.js} +1 -1
- package/dist/client/assets/{card-BmaLn_3f.js → card-Di2QvueV.js} +1 -1
- package/dist/client/assets/{chat-context-Bb8SYeKr.js → chat-context-C7xeFwbj.js} +1 -1
- package/dist/client/assets/{checkbox-Cyu1qnuZ.js → checkbox-BLyNIdWA.js} +1 -1
- package/dist/client/assets/{collection-detail-DWn0aW_r.js → collection-detail-BubZksKa.js} +1 -1
- package/dist/client/assets/{collection-display-button-gVF07lvH.js → collection-display-button-Ig89UA5W.js} +1 -1
- package/dist/client/assets/{collection-search-DYZQIylN.js → collection-search-73ZE_Rxd.js} +1 -1
- package/dist/client/assets/{collection-search-DdAcsppy.js → collection-search-BjTSjOvQ.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-CbD-SUn0.js → collection-table-wrapper-BDcCK68t.js} +1 -1
- package/dist/client/assets/{collection-tabs-BGCfV8l9.js → collection-tabs-afccA05T.js} +1 -1
- package/dist/client/assets/{collections-Bmez1LkJ.js → collections-BM6Z8nGc.js} +1 -1
- package/dist/client/assets/{command-CxmV3QY8.js → command-Dul__cSK.js} +1 -1
- package/dist/client/assets/{connection-card-DN5odoOb.js → connection-card-bt811v_C.js} +1 -1
- package/dist/client/assets/{connection-detail-DQx6QjuX.js → connection-detail-BvIlLD4t.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-Bb3sx_dz.js → connection-form-helpers-DeGnXv9z.js} +1 -1
- package/dist/client/assets/{connections-BkyQQkqt.js → connections-Cvi8bJGK.js} +1 -1
- package/dist/client/assets/{constants-BeUl-Cs3.js → constants-CCFSt8jO.js} +1 -1
- package/dist/client/assets/{constants-CBBJ_jDF.js → constants-HOfKPHDy.js} +1 -1
- package/dist/client/assets/{dialog-CWRMmHKD.js → dialog-BHi9STqD.js} +1 -1
- package/dist/client/assets/{domain-settings-CAmsIuKF.js → domain-settings-CJTT8u55.js} +1 -1
- package/dist/client/assets/{drawer-CNwIxQWf.js → drawer-CFPIi-pq.js} +1 -1
- package/dist/client/assets/{dropdown-menu-LcFaVXWW.js → dropdown-menu-ChEDfeWm.js} +1 -1
- package/dist/client/assets/{dynamic-plugin-layout-BfEd5aHi.js → dynamic-plugin-layout-ChPVfvIn.js} +1 -1
- package/dist/client/assets/{empty-state-C5PKMGQO.js → empty-state-CgXa2kei.js} +1 -1
- package/dist/client/assets/{empty-state-BH9qLxZP.js → empty-state-ad634-a1.js} +1 -1
- package/dist/client/assets/{extract-connection-data-B39jPtC-.js → extract-connection-data-CNS4342G.js} +1 -1
- package/dist/client/assets/{features-CwDXw1Ew.js → features-CBSonKCO.js} +1 -1
- package/dist/client/assets/{form-B6LAB-m_.js → form-O7o12XKC.js} +1 -1
- package/dist/client/assets/{general-BBq6muIT.js → general-Dwl_RFxT.js} +1 -1
- package/dist/client/assets/{index-Dppfuq3M.js → index-B4HzWryX.js} +1 -1
- package/dist/client/assets/{index-Cx4wMtKt.js → index-BQPKIoNa.js} +1 -1
- package/dist/client/assets/{index-UKKy1O7S.js → index-BRREdYdm.js} +1 -1
- package/dist/client/assets/index-BXqhvHqj.js +1 -0
- package/dist/client/assets/{index-DrOF58kq.js → index-BpQvm0m_.js} +1 -1
- package/dist/client/assets/{index-CDSAg0No.js → index-CG8wxlmz.js} +1 -1
- package/dist/client/assets/{index-CYI_Zqko.js → index-CLd1VMk-.js} +1 -1
- package/dist/client/assets/{index-B0J5U2hK.js → index-CP6bD0QO.js} +1 -1
- package/dist/client/assets/{index-C3bjqsvR.js → index-CUeJKjUo.js} +1 -1
- package/dist/client/assets/{index-mk6gx7es.js → index-CV1lFX-Z.js} +2 -2
- package/dist/client/assets/{index-DqHLA0vr.js → index-D-vg00dg.js} +1 -1
- package/dist/client/assets/{index-60PFhV_s.js → index-D4EXGfoG.js} +3 -3
- package/dist/client/assets/{index-HQ_0Qb6i.js → index-D7CuHsQA.js} +1 -1
- package/dist/client/assets/{index-IC1oE4kJ.js → index-DBW0tfwB.js} +1 -1
- package/dist/client/assets/{index-B-sloiGH.js → index-DRxD_3cb.js} +1 -1
- package/dist/client/assets/{index-CUaQtIXP.js → index-Do1XArQs.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-D_1qV-y3.js → infiniteQueryObserver-BVAzy1Sk.js} +1 -1
- package/dist/client/assets/{input-CrToyhgx.js → input-CN-FAUiT.js} +1 -1
- package/dist/client/assets/{integration-icon-DbHk1BBx.js → integration-icon-tJ5Z1ZtK.js} +1 -1
- package/dist/client/assets/{label--BIpch6_.js → label-PUMmND_r.js} +1 -1
- package/dist/client/assets/{layout-C_atXwz3.js → layout-Bqbj2wLY.js} +1 -1
- package/dist/client/assets/{lean-canvas-recruit-modal-C3r5-HxJ.js → lean-canvas-recruit-modal-ywtX7ECZ.js} +1 -1
- package/dist/client/assets/{login-BQ9m3gfS.js → login-Mvzj8t4K.js} +1 -1
- package/dist/client/assets/{members-CIERDQQF.js → members-cTtXQ1OM.js} +1 -1
- package/dist/client/assets/{monaco-editor-4k3ifvms.js → monaco-editor-Dz10Y__a.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-BZSwYPO7.js → monitoring-stats-row-B-cEMu_9.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-BN-qhCGE.js → oauth-callback-ai-provider-Chxdycb_.js} +1 -1
- package/dist/client/assets/{oauth-callback-D49_r6C_.js → oauth-callback-gQD649Ih.js} +1 -1
- package/dist/client/assets/{onboarding-Bq3vKwC-.js → onboarding-DQPmRIcx.js} +1 -1
- package/dist/client/assets/{org-layout-Depwgb9M.js → org-layout-Dn0dw0VQ.js} +1 -1
- package/dist/client/assets/{org-plugin-layout-D95k8tjt.js → org-plugin-layout-CXdSKJr7.js} +1 -1
- package/dist/client/assets/{pair-lMYe4cme.js → pair-ByvRRfgF.js} +1 -1
- package/dist/client/assets/{plugin-empty-state-BZ05BnAb.js → plugin-empty-state-BdyLNYrm.js} +1 -1
- package/dist/client/assets/{plugin-header-Dm9m4K3q.js → plugin-header-DFdSKbGT.js} +1 -1
- package/dist/client/assets/{plugin-layout-DUXQsbyK.js → plugin-layout-BYyFiJQI.js} +1 -1
- package/dist/client/assets/{popover-DlgSjBxW.js → popover-Bb31RhES.js} +1 -1
- package/dist/client/assets/{profile-D81Ov5SL.js → profile-Dt2FmPx9.js} +1 -1
- package/dist/client/assets/{project-app-view-DoUUEEnu.js → project-app-view-BRps_raG.js} +1 -1
- package/dist/client/assets/{registry-layout-BMY_penr.js → registry-layout-CTsKpN8K.js} +1 -1
- package/dist/client/assets/registry-mlXjwmt-.js +2 -0
- package/dist/client/assets/{required-auth-layout-DOoVy0oy.js → required-auth-layout-CUyvfcB4.js} +1 -1
- package/dist/client/assets/{reset-password-Cg9TA69q.js → reset-password-D-ToySou.js} +1 -1
- package/dist/client/assets/{roles-BmzcjVvr.js → roles-CxEY0wcy.js} +1 -1
- package/dist/client/assets/{scroll-area-Dfuf05Gc.js → scroll-area-CxdNBd0d.js} +1 -1
- package/dist/client/assets/{search-input-cOqFo1qp.js → search-input-CoXN7n1O.js} +1 -1
- package/dist/client/assets/{select-DHxhHlTo.js → select-CwP42l1t.js} +1 -1
- package/dist/client/assets/{select-model-BjaSdxZJ.js → select-model-BeJoG9-P.js} +1 -1
- package/dist/client/assets/{settings-layout-CYcP5R2Q.js → settings-layout-DrKWvZnz.js} +1 -1
- package/dist/client/assets/{settings-section-Y_wCb-Mr.js → settings-section-Bi-8KbSP.js} +1 -1
- package/dist/client/assets/{shell-layout-DEFQB1in.js → shell-layout-aUES-kFD.js} +1 -1
- package/dist/client/assets/{skeleton-BD0Xv1yd.js → skeleton-DcjwowII.js} +1 -1
- package/dist/client/assets/{sso-2s3EmE41.js → sso-BGkz0eQv.js} +1 -1
- package/dist/client/assets/{store-BQ3XKuS1.js → store-VBma9EJF.js} +1 -1
- package/dist/client/assets/store-registry-CvC5bBZ_.js +2 -0
- package/dist/client/assets/{switch-B0FJgiAO.js → switch-C5rJGOpi.js} +1 -1
- package/dist/client/assets/{table-D73iLzft.js → table-KruF5l_B.js} +1 -1
- package/dist/client/assets/{tabs-DFh8a3-r.js → tabs-rlOqMpk_.js} +1 -1
- package/dist/client/assets/{task-status-Waiij_cS.js → task-status-bebWweDN.js} +1 -1
- package/dist/client/assets/{textarea-CWor3d17.js → textarea-CxGYitYu.js} +1 -1
- package/dist/client/assets/{toggle-group-7PLS3k3D.js → toggle-group-LdkT1Ecu.js} +1 -1
- package/dist/client/assets/{tools-list-B8DbFvmk.js → tools-list-BzZoS1K1.js} +1 -1
- package/dist/client/assets/{tooltip-CsjqH8MZ.js → tooltip-7zLr-moN.js} +1 -1
- package/dist/client/assets/{types-6MZvaGCM.js → types-DxqWkEtq.js} +1 -1
- package/dist/client/assets/{use-ai-providers-Cbolk4HH.js → use-ai-providers-mLoGEXc_.js} +1 -1
- package/dist/client/assets/{use-collections-C2mp1HBy.js → use-collections-u1h_t_JF.js} +1 -1
- package/dist/client/assets/{use-connection-C7WT3gSh.js → use-connection-DQwJCiIx.js} +1 -1
- package/dist/client/assets/{use-copy-CHwZtSPA.js → use-copy-C-S0osaU.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-B7_v59WJ.js → use-create-virtual-mcp-BruWfWOW.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-BMvaVEKg.js → use-decopilot-events-B4aVkVre.js} +1 -1
- package/dist/client/assets/{use-delete-connection-BU1uYBu3.js → use-delete-connection-CilGQAHO.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-CRyATMOI.js → use-infinite-scroll-C9RvfCBh.js} +1 -1
- package/dist/client/assets/{use-list-state-yZWKPNk6.js → use-list-state-DgGya_Kh.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-DvhC9MfV.js → use-mcp-tools-V6zce17I.js} +1 -1
- package/dist/client/assets/{use-members-BpjdXE5l.js → use-members-DzfmudDX.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-oaJqKBw4.js → use-navigate-to-agent-up8QETMW.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-SKwRWhT9.js → use-org-auth-client-Bv8qraCw.js} +1 -1
- package/dist/client/assets/{use-org-sso-C8gvxTtc.js → use-org-sso-D0kTPrgt.js} +1 -1
- package/dist/client/assets/{use-organization-roles-BJp2KWQQ.js → use-organization-roles-vVY-U_lX.js} +1 -1
- package/dist/client/assets/{use-organization-settings-Ca3JWwFz.js → use-organization-settings-W-mmflSy.js} +1 -1
- package/dist/client/assets/{use-registry-connections-C-khMp_P.js → use-registry-connections-BIZ2aNDt.js} +1 -1
- package/dist/client/assets/{use-status-sounds-CPfqhfdN.js → use-status-sounds-YemQM946.js} +1 -1
- package/dist/client/assets/{use-tasks-CfZED9Y3.js → use-tasks-4FsSty5E.js} +1 -1
- package/dist/client/assets/{use-view-mode-ZkIRYTtf.js → use-view-mode-CLCiVZle.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-Bv1k9ExR.js → use-virtual-mcp-CNRz_FcH.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-CSrqdvmh.js +1 -0
- package/dist/client/assets/useSuspenseInfiniteQuery-dLr5FZgz.js +1 -0
- package/dist/client/assets/{user-DZaOGTTh.js → user-DiQbbrAS.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-tZKajRjf.js → view-mode-toggle-DWWeISWY.js} +1 -1
- package/dist/client/assets/{workflow-DK-N3G_n.js → workflow-CAX5kqLQ.js} +1 -1
- package/dist/client/assets/workflow-detail-B07fAcdT.js +1 -0
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +6 -4
- package/dist/server/node_modules/ink/build/ansi-tokenizer.d.ts +38 -0
- package/dist/server/node_modules/ink/build/ansi-tokenizer.js +316 -0
- package/dist/server/node_modules/ink/build/ansi-tokenizer.js.map +1 -0
- package/dist/server/node_modules/ink/build/apply-styles.js +175 -0
- package/dist/server/node_modules/ink/build/build-layout.js +77 -0
- package/dist/server/node_modules/ink/build/calculate-wrapped-text.js +53 -0
- package/dist/server/node_modules/ink/build/colorize.d.ts +3 -0
- package/dist/server/node_modules/ink/build/colorize.js +48 -0
- package/dist/server/node_modules/ink/build/colorize.js.map +1 -0
- package/dist/server/node_modules/ink/build/components/AccessibilityContext.d.ts +3 -0
- package/dist/server/node_modules/ink/build/components/AccessibilityContext.js +5 -0
- package/dist/server/node_modules/ink/build/components/AccessibilityContext.js.map +1 -0
- package/dist/server/node_modules/ink/build/components/App.d.ts +18 -0
- package/dist/server/node_modules/ink/build/components/App.js +351 -0
- package/dist/server/node_modules/ink/build/components/App.js.map +1 -0
- package/dist/server/node_modules/ink/build/components/AppContext.d.ts +15 -0
- package/dist/server/node_modules/ink/build/components/AppContext.js +11 -0
- package/dist/server/node_modules/ink/build/components/AppContext.js.map +1 -0
- package/dist/server/node_modules/ink/build/components/BackgroundContext.d.ts +4 -0
- package/dist/server/node_modules/ink/build/components/BackgroundContext.js +3 -0
- package/dist/server/node_modules/ink/build/components/BackgroundContext.js.map +1 -0
- package/dist/server/node_modules/ink/build/components/Box.d.ts +117 -0
- package/dist/server/node_modules/ink/build/components/Box.js +34 -0
- package/dist/server/node_modules/ink/build/components/Box.js.map +1 -0
- package/dist/server/node_modules/ink/build/components/Color.js +62 -0
- package/dist/server/node_modules/ink/build/components/Cursor.d.ts +83 -0
- package/dist/server/node_modules/ink/build/components/Cursor.js +53 -0
- package/dist/server/node_modules/ink/build/components/Cursor.js.map +1 -0
- package/dist/server/node_modules/ink/build/components/CursorContext.d.ts +11 -0
- package/dist/server/node_modules/ink/build/components/CursorContext.js +8 -0
- package/dist/server/node_modules/ink/build/components/CursorContext.js.map +1 -0
- package/dist/server/node_modules/ink/build/components/ErrorBoundary.d.ts +18 -0
- package/dist/server/node_modules/ink/build/components/ErrorBoundary.js +23 -0
- package/dist/server/node_modules/ink/build/components/ErrorBoundary.js.map +1 -0
- package/dist/server/node_modules/ink/build/components/ErrorOverview.d.ts +6 -0
- package/dist/server/node_modules/ink/build/components/ErrorOverview.js +84 -0
- package/dist/server/node_modules/ink/build/components/ErrorOverview.js.map +1 -0
- package/dist/server/node_modules/ink/build/components/FocusContext.d.ts +16 -0
- package/dist/server/node_modules/ink/build/components/FocusContext.js +17 -0
- package/dist/server/node_modules/ink/build/components/FocusContext.js.map +1 -0
- package/dist/server/node_modules/ink/build/components/Newline.d.ts +13 -0
- package/dist/server/node_modules/ink/build/components/Newline.js +8 -0
- package/dist/server/node_modules/ink/build/components/Newline.js.map +1 -0
- package/dist/server/node_modules/ink/build/components/Spacer.d.ts +7 -0
- package/dist/server/node_modules/ink/build/components/Spacer.js +11 -0
- package/dist/server/node_modules/ink/build/components/Spacer.js.map +1 -0
- package/dist/server/node_modules/ink/build/components/Static.d.ts +24 -0
- package/dist/server/node_modules/ink/build/components/Static.js +28 -0
- package/dist/server/node_modules/ink/build/components/Static.js.map +1 -0
- package/dist/server/node_modules/ink/build/components/StderrContext.d.ts +15 -0
- package/dist/server/node_modules/ink/build/components/StderrContext.js +13 -0
- package/dist/server/node_modules/ink/build/components/StderrContext.js.map +1 -0
- package/dist/server/node_modules/ink/build/components/StdinContext.d.ts +22 -0
- package/dist/server/node_modules/ink/build/components/StdinContext.js +19 -0
- package/dist/server/node_modules/ink/build/components/StdinContext.js.map +1 -0
- package/dist/server/node_modules/ink/build/components/StdoutContext.d.ts +15 -0
- package/dist/server/node_modules/ink/build/components/StdoutContext.js +13 -0
- package/dist/server/node_modules/ink/build/components/StdoutContext.js.map +1 -0
- package/dist/server/node_modules/ink/build/components/Text.d.ts +55 -0
- package/dist/server/node_modules/ink/build/components/Text.js +50 -0
- package/dist/server/node_modules/ink/build/components/Text.js.map +1 -0
- package/dist/server/node_modules/ink/build/components/Transform.d.ts +16 -0
- package/dist/server/node_modules/ink/build/components/Transform.js +15 -0
- package/dist/server/node_modules/ink/build/components/Transform.js.map +1 -0
- package/dist/server/node_modules/ink/build/cursor-helpers.d.ts +38 -0
- package/dist/server/node_modules/ink/build/cursor-helpers.js +56 -0
- package/dist/server/node_modules/ink/build/cursor-helpers.js.map +1 -0
- package/dist/server/node_modules/ink/build/devtools-window-polyfill.d.ts +1 -0
- package/dist/server/node_modules/ink/build/devtools-window-polyfill.js +65 -0
- package/dist/server/node_modules/ink/build/devtools-window-polyfill.js.map +1 -0
- package/dist/server/node_modules/ink/build/devtools.d.ts +1 -0
- package/dist/server/node_modules/ink/build/devtools.js +11 -0
- package/dist/server/node_modules/ink/build/devtools.js.map +1 -0
- package/dist/server/node_modules/ink/build/dom.d.ts +56 -0
- package/dist/server/node_modules/ink/build/dom.js +124 -0
- package/dist/server/node_modules/ink/build/dom.js.map +1 -0
- package/dist/server/node_modules/ink/build/experimental/apply-style.js +140 -0
- package/dist/server/node_modules/ink/build/experimental/dom.js +123 -0
- package/dist/server/node_modules/ink/build/experimental/output.js +91 -0
- package/dist/server/node_modules/ink/build/experimental/reconciler.js +141 -0
- package/dist/server/node_modules/ink/build/experimental/renderer.js +81 -0
- package/dist/server/node_modules/ink/build/get-max-width.d.ts +3 -0
- package/dist/server/node_modules/ink/build/get-max-width.js +10 -0
- package/dist/server/node_modules/ink/build/get-max-width.js.map +1 -0
- package/dist/server/node_modules/ink/build/hooks/use-app.d.ts +5 -0
- package/dist/server/node_modules/ink/build/hooks/use-app.js +8 -0
- package/dist/server/node_modules/ink/build/hooks/use-app.js.map +1 -0
- package/dist/server/node_modules/ink/build/hooks/use-cursor.d.ts +12 -0
- package/dist/server/node_modules/ink/build/hooks/use-cursor.js +29 -0
- package/dist/server/node_modules/ink/build/hooks/use-cursor.js.map +1 -0
- package/dist/server/node_modules/ink/build/hooks/use-focus-manager.d.ts +28 -0
- package/dist/server/node_modules/ink/build/hooks/use-focus-manager.js +17 -0
- package/dist/server/node_modules/ink/build/hooks/use-focus-manager.js.map +1 -0
- package/dist/server/node_modules/ink/build/hooks/use-focus.d.ts +29 -0
- package/dist/server/node_modules/ink/build/hooks/use-focus.js +42 -0
- package/dist/server/node_modules/ink/build/hooks/use-focus.js.map +1 -0
- package/dist/server/node_modules/ink/build/hooks/use-input.d.ts +131 -0
- package/dist/server/node_modules/ink/build/hooks/use-input.js +124 -0
- package/dist/server/node_modules/ink/build/hooks/use-input.js.map +1 -0
- package/dist/server/node_modules/ink/build/hooks/use-is-screen-reader-enabled.d.ts +5 -0
- package/dist/server/node_modules/ink/build/hooks/use-is-screen-reader-enabled.js +11 -0
- package/dist/server/node_modules/ink/build/hooks/use-is-screen-reader-enabled.js.map +1 -0
- package/dist/server/node_modules/ink/build/hooks/use-stderr.d.ts +5 -0
- package/dist/server/node_modules/ink/build/hooks/use-stderr.js +8 -0
- package/dist/server/node_modules/ink/build/hooks/use-stderr.js.map +1 -0
- package/dist/server/node_modules/ink/build/hooks/use-stdin.d.ts +5 -0
- package/dist/server/node_modules/ink/build/hooks/use-stdin.js +8 -0
- package/dist/server/node_modules/ink/build/hooks/use-stdin.js.map +1 -0
- package/dist/server/node_modules/ink/build/hooks/use-stdout.d.ts +5 -0
- package/dist/server/node_modules/ink/build/hooks/use-stdout.js +8 -0
- package/dist/server/node_modules/ink/build/hooks/use-stdout.js.map +1 -0
- package/dist/server/node_modules/ink/build/hooks/useInput.js +38 -0
- package/dist/server/node_modules/ink/build/index.d.ts +34 -0
- package/dist/server/node_modules/ink/build/index.js +20 -0
- package/dist/server/node_modules/ink/build/index.js.map +1 -0
- package/dist/server/node_modules/ink/build/ink.d.ts +90 -0
- package/dist/server/node_modules/ink/build/ink.js +637 -0
- package/dist/server/node_modules/ink/build/ink.js.map +1 -0
- package/dist/server/node_modules/ink/build/input-parser.d.ts +7 -0
- package/dist/server/node_modules/ink/build/input-parser.js +154 -0
- package/dist/server/node_modules/ink/build/input-parser.js.map +1 -0
- package/dist/server/node_modules/ink/build/instance.js +205 -0
- package/dist/server/node_modules/ink/build/instances.d.ts +3 -0
- package/dist/server/node_modules/ink/build/instances.js +8 -0
- package/dist/server/node_modules/ink/build/instances.js.map +1 -0
- package/dist/server/node_modules/ink/build/kitty-keyboard.d.ts +23 -0
- package/dist/server/node_modules/ink/build/kitty-keyboard.js +32 -0
- package/dist/server/node_modules/ink/build/kitty-keyboard.js.map +1 -0
- package/dist/server/node_modules/ink/build/layout.d.ts +7 -0
- package/dist/server/node_modules/ink/build/layout.js +33 -0
- package/dist/server/node_modules/ink/build/layout.js.map +1 -0
- package/dist/server/node_modules/ink/build/log-update.d.ts +19 -0
- package/dist/server/node_modules/ink/build/log-update.js +242 -0
- package/dist/server/node_modules/ink/build/log-update.js.map +1 -0
- package/dist/server/node_modules/ink/build/measure-element.d.ts +16 -0
- package/dist/server/node_modules/ink/build/measure-element.js +9 -0
- package/dist/server/node_modules/ink/build/measure-element.js.map +1 -0
- package/dist/server/node_modules/ink/build/measure-text.d.ts +6 -0
- package/dist/server/node_modules/ink/build/measure-text.js +21 -0
- package/dist/server/node_modules/ink/build/measure-text.js.map +1 -0
- package/dist/server/node_modules/ink/build/options.d.ts +52 -0
- package/dist/server/node_modules/ink/build/options.js +2 -0
- package/dist/server/node_modules/ink/build/options.js.map +1 -0
- package/dist/server/node_modules/ink/build/output.d.ts +35 -0
- package/dist/server/node_modules/ink/build/output.js +183 -0
- package/dist/server/node_modules/ink/build/output.js.map +1 -0
- package/dist/server/node_modules/ink/build/parse-keypress.d.ts +22 -0
- package/dist/server/node_modules/ink/build/parse-keypress.js +493 -0
- package/dist/server/node_modules/ink/build/parse-keypress.js.map +1 -0
- package/dist/server/node_modules/ink/build/reconciler.d.ts +4 -0
- package/dist/server/node_modules/ink/build/reconciler.js +274 -0
- package/dist/server/node_modules/ink/build/reconciler.js.map +1 -0
- package/dist/server/node_modules/ink/build/render-background.d.ts +4 -0
- package/dist/server/node_modules/ink/build/render-background.js +25 -0
- package/dist/server/node_modules/ink/build/render-background.js.map +1 -0
- package/dist/server/node_modules/ink/build/render-border.d.ts +4 -0
- package/dist/server/node_modules/ink/build/render-border.js +73 -0
- package/dist/server/node_modules/ink/build/render-border.js.map +1 -0
- package/dist/server/node_modules/ink/build/render-node-to-output.d.ts +14 -0
- package/dist/server/node_modules/ink/build/render-node-to-output.js +147 -0
- package/dist/server/node_modules/ink/build/render-node-to-output.js.map +1 -0
- package/dist/server/node_modules/ink/build/render-to-string.d.ts +38 -0
- package/dist/server/node_modules/ink/build/render-to-string.js +115 -0
- package/dist/server/node_modules/ink/build/render-to-string.js.map +1 -0
- package/dist/server/node_modules/ink/build/render.d.ts +121 -0
- package/dist/server/node_modules/ink/build/render.js +55 -0
- package/dist/server/node_modules/ink/build/render.js.map +1 -0
- package/dist/server/node_modules/ink/build/renderer.d.ts +8 -0
- package/dist/server/node_modules/ink/build/renderer.js +55 -0
- package/dist/server/node_modules/ink/build/renderer.js.map +1 -0
- package/dist/server/node_modules/ink/build/sanitize-ansi.d.ts +2 -0
- package/dist/server/node_modules/ink/build/sanitize-ansi.js +27 -0
- package/dist/server/node_modules/ink/build/sanitize-ansi.js.map +1 -0
- package/dist/server/node_modules/ink/build/screen-reader-update.d.ts +13 -0
- package/dist/server/node_modules/ink/build/screen-reader-update.js +38 -0
- package/dist/server/node_modules/ink/build/screen-reader-update.js.map +1 -0
- package/dist/server/node_modules/ink/build/squash-text-nodes.d.ts +3 -0
- package/dist/server/node_modules/ink/build/squash-text-nodes.js +36 -0
- package/dist/server/node_modules/ink/build/squash-text-nodes.js.map +1 -0
- package/dist/server/node_modules/ink/build/styles.d.ts +240 -0
- package/dist/server/node_modules/ink/build/styles.js +232 -0
- package/dist/server/node_modules/ink/build/styles.js.map +1 -0
- package/dist/server/node_modules/ink/build/utils.d.ts +2 -0
- package/dist/server/node_modules/ink/build/utils.js +4 -0
- package/dist/server/node_modules/ink/build/utils.js.map +1 -0
- package/dist/server/node_modules/ink/build/wrap-text.d.ts +3 -0
- package/dist/server/node_modules/ink/build/wrap-text.js +31 -0
- package/dist/server/node_modules/ink/build/wrap-text.js.map +1 -0
- package/dist/server/node_modules/ink/build/write-synchronized.d.ts +4 -0
- package/dist/server/node_modules/ink/build/write-synchronized.js +7 -0
- package/dist/server/node_modules/ink/build/write-synchronized.js.map +1 -0
- package/dist/server/node_modules/ink/license +10 -0
- package/dist/server/node_modules/ink/package.json +201 -0
- package/dist/server/node_modules/ink/readme.md +2636 -0
- package/dist/server/node_modules/is-fullwidth-code-point/index.d.ts +17 -0
- package/dist/server/node_modules/is-fullwidth-code-point/index.js +12 -0
- package/dist/server/node_modules/is-fullwidth-code-point/license +9 -0
- package/dist/server/node_modules/is-fullwidth-code-point/package.json +53 -0
- package/dist/server/node_modules/is-fullwidth-code-point/readme.md +31 -0
- package/dist/server/node_modules/mimic-fn/index.d.ts +54 -0
- package/dist/server/node_modules/mimic-fn/index.js +13 -0
- package/dist/server/node_modules/mimic-fn/license +9 -0
- package/dist/server/node_modules/mimic-fn/package.json +42 -0
- package/dist/server/node_modules/mimic-fn/readme.md +69 -0
- package/dist/server/node_modules/pg-int8/LICENSE +13 -0
- package/dist/server/node_modules/pg-int8/README.md +16 -0
- package/dist/server/node_modules/pg-int8/index.js +100 -0
- package/dist/server/node_modules/pg-int8/package.json +24 -0
- package/dist/server/node_modules/postgres-array/index.d.ts +4 -0
- package/dist/server/node_modules/postgres-array/index.js +97 -0
- package/dist/server/node_modules/postgres-array/license +21 -0
- package/dist/server/node_modules/postgres-array/package.json +35 -0
- package/dist/server/node_modules/postgres-array/readme.md +43 -0
- package/dist/server/node_modules/postgres-bytea/index.js +33 -0
- package/dist/server/node_modules/postgres-bytea/license +21 -0
- package/dist/server/node_modules/postgres-bytea/package.json +34 -0
- package/dist/server/node_modules/postgres-bytea/readme.md +34 -0
- package/dist/server/node_modules/postgres-date/index.js +116 -0
- package/dist/server/node_modules/postgres-date/license +21 -0
- package/dist/server/node_modules/postgres-date/package.json +33 -0
- package/dist/server/node_modules/postgres-date/readme.md +49 -0
- package/dist/server/node_modules/postgres-interval/index.d.ts +20 -0
- package/dist/server/node_modules/postgres-interval/index.js +125 -0
- package/dist/server/node_modules/postgres-interval/license +21 -0
- package/dist/server/node_modules/postgres-interval/package.json +36 -0
- package/dist/server/node_modules/postgres-interval/readme.md +48 -0
- package/dist/server/node_modules/restore-cursor/index.d.ts +11 -0
- package/dist/server/node_modules/restore-cursor/index.js +11 -0
- package/dist/server/node_modules/restore-cursor/license +9 -0
- package/dist/server/node_modules/restore-cursor/package.json +55 -0
- package/dist/server/node_modules/restore-cursor/readme.md +31 -0
- package/dist/server/node_modules/split2/LICENSE +13 -0
- package/dist/server/node_modules/split2/README.md +85 -0
- package/dist/server/node_modules/split2/bench.js +27 -0
- package/dist/server/node_modules/split2/index.js +141 -0
- package/dist/server/node_modules/split2/package.json +39 -0
- package/dist/server/node_modules/split2/test.js +409 -0
- package/dist/server/node_modules/xtend/.jshintrc +30 -0
- package/dist/server/node_modules/xtend/LICENSE +20 -0
- package/dist/server/node_modules/xtend/README.md +32 -0
- package/dist/server/node_modules/xtend/immutable.js +19 -0
- package/dist/server/node_modules/xtend/mutable.js +17 -0
- package/dist/server/node_modules/xtend/package.json +55 -0
- package/dist/server/node_modules/xtend/test.js +103 -0
- package/dist/server/server.js +5 -3
- package/package.json +1 -1
- package/dist/client/assets/ai-providers-BANrhLKX.js +0 -1
- package/dist/client/assets/index-CcvBX77O.js +0 -1
- package/dist/client/assets/registry-5S6FQTql.js +0 -2
- package/dist/client/assets/store-registry-DF30s7iU.js +0 -2
- package/dist/client/assets/useInfiniteQuery-Q9hSiQS7.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-4qMm75IX.js +0 -1
- package/dist/client/assets/workflow-detail-BwRmOSLC.js +0 -1
package/dist/server/cli.js
CHANGED
|
@@ -1643,7 +1643,7 @@ AS SELECT
|
|
|
1643
1643
|
FROM monitoring_metrics
|
|
1644
1644
|
GROUP BY organization_id, name, bucket, connection_id, tool_name, status
|
|
1645
1645
|
`}),console.log("[clickhouse-schema] monitoring_metrics_rollup_1m_mv view ready")}finally{await G.close()}}catch(Y){console.error("[clickhouse-schema] Failed to create rollup DDL (queries will fall back to raw table):",Y)}}async function gA1(X){let Y={...process.env},G=n$1(X,Y),Q=G.settings.encryptionKey;console.log(`[settings] ENCRYPTION_KEY = ${JSON.stringify(Q)} (${Q.length} chars)`);let{ensureServices:J}=await Promise.resolve().then(() => (b$1(),f$1)),{outputs:W,services:Z}=await J({home:G.settings.dataDir,externalDatabaseUrl:G.externalDatabaseUrl,externalNatsUrl:G.externalNatsUrl});if(!G.skipMigrations){let{migrateBetterAuth:K}=await Promise.resolve().then(() => (a30(),rh4));await K(W.databaseUrl);let{createDatabase:H}=await Promise.resolve().then(() => (GU(),ah4)),{migrateToLatest:U}=await Promise.resolve().then(() => (Qs4(),Gs4)),B=H(W.databaseUrl);await U({keepOpen:!0,database:B,skipBetterAuth:!0})}if(G.settings.clickhouseUrl){let{ensureClickHouseRollup:K}=await Promise.resolve().then(() => J16);await K(G.settings.clickhouseUrl)}let $={...G.settings,databaseUrl:W.databaseUrl,natsUrls:W.natsUrls};return vt1($),{settings:$,services:Z.map((K)=>({name:K.name==="PostgreSQL"?"Postgres":K.name,port:K.port})),managedServiceNames:Z.filter((K)=>K.owner==="managed").map((K)=>K.name)}}var IN0=D(()=>{Ct1();l9()});var mA1={};T0(mA1,{updateService:()=>Xa,toggleViewMode:()=>jN0,toggleVibeState:()=>RN0,toggleLogFlow:()=>MN0,subscribeCliState:()=>SX1,setVibe:()=>ot5,setTuiConsoleIntercepted:()=>uA1,setServerUrl:()=>CX1,setMigrationsDone:()=>kX1,setEnv:()=>vX1,setDevMode:()=>at5,setDataDir:()=>rt5,isTuiConsoleIntercepted:()=>lA1,getCliState:()=>RX1,addLogEntry:()=>Zz});function PU(){for(let X of VN0)X()}function RX1(){return e9}function SX1(X){return VN0.add(X),()=>VN0.delete(X)}function Xa(X){e9={...e9,services:e9.services.map((Y)=>Y.name===X.name?X:Y)},PU()}function kX1(){e9={...e9,migrationsStatus:"done"},PU()}function CX1(X){e9={...e9,serverUrl:X},PU()}function vX1(X){e9={...e9,env:X},PU()}function Zz(X){let Y=[...e9.logs,X];e9={...e9,logs:Y.length>500?Y.slice(-500):Y},PU()}function at5(){e9={...e9,services:[...e9.services,{name:"Vite",status:"pending",port:0}]},PU()}function jN0(){e9={...e9,viewMode:e9.viewMode==="requests"?"config":"requests"},PU()}function MN0(){e9={...e9,logFlow:!e9.logFlow},PU()}function rt5(X){e9={...e9,dataDir:X},PU()}function ot5(X){e9={...e9,vibe:X},PU()}function RN0(){e9={...e9,vibe:!e9.vibe},PU()}function uA1(X){Z16=X}function lA1(){return Z16}var e9,VN0,Z16=!1;var Wz=D(()=>{e9={services:[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}],migrationsStatus:"pending",serverUrl:null,env:null,logs:[],viewMode:"requests",logFlow:!1,vibe:!1,dataDir:null},VN0=new Set});import{createServer as W16}from"net";function st5(X){return new Promise((Y)=>{let G=W16();G.once("error",()=>Y(!1)),G.listen(X,"0.0.0.0",()=>{G.close(()=>Y(!0))})})}async function dA1(X){if(await st5(X))return X;let Y=await new Promise((G,Q)=>{let J=W16();J.once("error",Q),J.listen(0,"0.0.0.0",()=>{let W=J.address(),Z=typeof W==="object"&&W?W.port:0;J.close(()=>G(Z))})});return console.warn(`Port ${X} is in use, using port ${Y} instead.`),Y}var SN0=()=>{};var kN0={};T0(kN0,{startDevServer:()=>Xa5});import{join as et5}from"path";function $16(X){return X.replace(/\x1b\[[0-9;]*m/g,"")}function K16(X){let Y=X.getReader(),G=new TextDecoder,Q="";function J(){let W=Q.split(`
|
|
1646
|
-
`);Q=W.pop()??"";for(let Z of W){let $=$16(Z).replace(/^\[\d+\]\s*/,"").trim();if(!$)continue;Zz({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:$})}}(async()=>{for(;;){let{done:W,value:Z}=await Y.read();if(W)break;Q+=G.decode(Z,{stream:!0}),J()}if(Q.trim()){let W=$16(Q).replace(/^\[\d+\]\s*/,"").trim();if(W)Zz({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:W})}})()}async function Xa5(X){let{vitePort:Y,baseUrl:G,noTui:Q}=X,J=await dA1(Number(X.port)),{settings:W,services:Z,managedServiceNames:$}=await gA1({port:String(J),home:X.home,baseUrl:X.baseUrl,localMode:X.localMode,skipMigrations:X.skipMigrations,noTui:X.noTui,vitePort:X.vitePort});for(let z of Z)Xa({name:z.name,status:"ready",port:z.port});vX1(W),kX1();let K=et5(import.meta.dir,"..","..","..","..",".."),H=Q===!0,U=Bun.spawn(["bun","run","--cwd=apps/mesh","dev:servers"],{cwd:K,env:{...process.env,PORT:String(W.port),VITE_PORT:String(Y),DATABASE_URL:W.databaseUrl,NATS_URL:W.natsUrls.join(","),NODE_ENV:W.nodeEnv,DECOCMS_LOCAL_MODE:String(W.localMode),DECOCMS_HOME:W.dataDir,DATA_DIR:W.dataDir,DECO_CLI:"1",...W.baseUrl?{BASE_URL:W.baseUrl}:{}},stdio:["inherit",H?"inherit":"pipe",H?"inherit":"pipe"]});if(!H)K16(U.stdout),K16(U.stderr);let B=G||`http://localhost:${W.port}`;CX1(B),Xa({name:"Vite",status:"ready",port:Number(Y)});let N=async(z)=>{if(U.kill(z),$.length>0){let{stopServices:O}=await Promise.resolve().then(() => (b$1(),f$1));await O(W.dataDir)}};return process.on("SIGINT",()=>N("SIGINT")),process.on("SIGTERM",()=>N("SIGTERM")),{port:Number(W.port),process:U}}var CN0=D(()=>{IN0();Wz();SN0()});import{Box as vN0,Text as _N0}from"ink";import{jsx as F16,jsxs as cA1}from"react/jsx-runtime";function H16(X){if(!X)return"not set";try{let Y=new URL(X);if(Y.password)Y.password="***";if(Y.username&&Y.username.length>3)Y.username=Y.username.slice(0,3)+"***";return Y.pathname="/",Y.search="",Y.hash="",Y.toString()}catch{if(X.length<=10)return X;return X.slice(0,6)+"***"+X.slice(-4)}}function Qa5(X,Y){if(Ya5.has(X))return Y?{text:"\u25CF\u25CF\u25CF\u25CF\u25CF\u25CF",dimColor:!0}:{text:"not set",dimColor:!0};if(Ga5.has(X)){if(Array.isArray(Y)){if(Y.length===0)return{text:"not set",dimColor:!0};return{text:Y.map((W)=>H16(W)).join(", "),color:"cyan"}}let Q=H16(Y);return Q==="not set"?{text:Q,dimColor:!0}:{text:Q,color:"cyan"}}if(Y===void 0||Y===null||Y==="")return{text:"not set",dimColor:!0};let G=String(Y);if(G==="true")return{text:G,color:"green"};if(G==="false")return{text:G,color:"yellow"};try{return new URL(G),{text:G,color:"cyan"}}catch{return{text:G}}}function Ja5(X){return[{title:"Core",entries:[{key:"NODE_ENV",value:X.nodeEnv},{key:"PORT",value:X.port},{key:"BASE_URL",value:X.baseUrl??`http://localhost:${X.port}`},{key:"DATA_DIR",value:X.dataDir}]},{title:"Database",entries:[{key:"DATABASE_URL",value:X.databaseUrl},{key:"DATABASE_PG_SSL",value:X.databasePgSsl}]},{title:"Auth & Secrets",entries:[{key:"BETTER_AUTH_SECRET",value:X.betterAuthSecret},{key:"ENCRYPTION_KEY",value:X.encryptionKey},{key:"MESH_JWT_SECRET",value:X.meshJwtSecret},{key:"STUDIO_PROVISION_SECRET_KEY",value:X.studioProvisionSecretKey},{key:"DISABLE_RATE_LIMIT",value:X.disableRateLimit}]},{title:"Auth Providers",entries:[{key:"AUTH_EMAIL_PASSWORD_ENABLED",value:process.env.AUTH_EMAIL_PASSWORD_ENABLED??"true"},{key:"AUTH_GOOGLE_CLIENT_ID",value:!!process.env.AUTH_GOOGLE_CLIENT_ID},{key:"AUTH_GITHUB_CLIENT_ID",value:!!process.env.AUTH_GITHUB_CLIENT_ID},{key:"AUTH_RESEND_API_KEY",value:!!process.env.AUTH_RESEND_API_KEY},{key:"AUTH_SENDGRID_API_KEY",value:!!process.env.AUTH_SENDGRID_API_KEY},{key:"AUTH_SSO_MS_CLIENT_ID",value:!!process.env.AUTH_SSO_MS_CLIENT_ID},{key:"AUTH_MAGIC_LINK_ENABLED",value:process.env.AUTH_MAGIC_LINK_ENABLED==="true"},{key:"AUTH_EMAIL_OTP_ENABLED",value:process.env.AUTH_EMAIL_OTP_ENABLED==="true"}]},{title:"Observability",entries:[{key:"CLICKHOUSE_URL",value:X.clickhouseUrl},{key:"OTEL_SERVICE_NAME",value:X.otelServiceName}]},{title:"Event Bus & Networking",entries:[{key:"NATS_URL",value:X.natsUrls}]},{title:"Config Files",entries:[{key:"CONFIG_PATH",value:X.configPath}]},{title:"AI Gateway",entries:[{key:"DECO_AI_GATEWAY_ENABLED",value:X.aiGatewayEnabled},{key:"DECO_AI_GATEWAY_URL",value:X.aiGatewayUrl}]}]}function U16({env:X}){let Y=Ja5(X);return F16(vN0,{flexDirection:"column",children:Y.map((G)=>cA1(vN0,{flexDirection:"column",marginTop:1,children:[cA1(_N0,{dimColor:!0,children:[" ","\u2500\u2500 ",G.title," ","\u2500".repeat(Math.max(0,38-G.title.length))]}),G.entries.map(({key:Q,value:J})=>{let W=Qa5(Q,J);return cA1(vN0,{children:[cA1(_N0,{dimColor:!0,children:[" ",Q.padEnd(36)]}),F16(_N0,{color:W.color,dimColor:W.dimColor,children:W.text})]},Q)})]},G.title))})}var Ya5,Ga5;var B16=D(()=>{Ya5=new Set(["BETTER_AUTH_SECRET","ENCRYPTION_KEY","MESH_JWT_SECRET","STUDIO_PROVISION_SECRET_KEY"]),Ga5=new Set(["DATABASE_URL","CLICKHOUSE_URL","NATS_URL"])});var fN0;var N16=D(()=>{fN0={name:"decocms",version:"2.304.10",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/mesh"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:'bun run migrate && concurrently "bun run dev:client" "bun run dev:server"',"dev:servers":'concurrently "bun run dev:client" "bun run dev:server"',"dev:client":"bun --bun vite dev","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts","build:client":"bun --bun vite build","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test","test:e2e":"playwright test","test:e2e:ui":"playwright test --ui","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run build:client && bun run build:server"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1","@freestyle-sh/with-bun":"^0.2.12","@freestyle-sh/with-deno":"^0.0.4","@freestyle-sh/with-nodejs":"^0.2.9","freestyle-sandboxes":"^0.1.46"},dependencies:{"@ai-sdk/anthropic":"^3.0.58","@ai-sdk/google":"^3.0.60","@ai-sdk/openai":"^3.0.50","@anthropic-ai/sdk":"^0.79.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@deco-cx/warp-node":"^0.3.20","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@inkjs/ui":"^2.0.0","@modelcontextprotocol/ext-apps":"^1.2.2","@openrouter/ai-sdk-provider":"^2.2.5","@opentelemetry/core":"^2.6.0","@tanstack/react-virtual":"^3.13.21","@xterm/addon-fit":"^0.11.0","@xterm/xterm":"^6.0.0","ai-sdk-provider-claude-code":"^3.4.4","ai-sdk-provider-codex-cli":"^1.1.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12",nats:"^2.29.3","node-pty":"^1.0.0","posthog-js":"^1.371.1","posthog-node":"^5.0.0",react:"^19.2.0","react-dom":"^19.2.0"},devDependencies:{"@ai-sdk/provider":"^3.0.8","@ai-sdk/react":"^3.0.118","@anthropic-ai/claude-agent-sdk":"^0.2.80","@better-auth/sso":"1.4.1","@daveyplate/better-auth-ui":"^3.2.7","@deco/ui":"workspace:*","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/mesh-sdk":"workspace:*","@decocms/runtime":"workspace:*","@decocms/vite-plugin":"workspace:*","@electric-sql/pglite":"^0.3.15","@floating-ui/react":"^0.27.16","@hookform/resolvers":"^5.2.2","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.27.1","@monaco-editor/react":"^4.7.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@playwright/test":"^1.58.2","@radix-ui/react-avatar":"^1.1.10","@radix-ui/react-checkbox":"^1.3.3","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-dropdown-menu":"^2.1.16","@radix-ui/react-label":"^2.1.7","@radix-ui/react-select":"^2.2.6","@radix-ui/react-separator":"^1.1.7","@radix-ui/react-slot":"^1.2.3","@radix-ui/react-tabs":"^1.1.13","@rjsf/core":"^6.1.2","@rjsf/shadcn":"^6.1.2","@rjsf/utils":"^6.1.2","@rjsf/validator-ajv8":"^6.1.2","@tailwindcss/vite":"^4.1.17","@tanstack/react-query":"5.90.11","@tanstack/react-router":"^1.139.7","@tiptap/core":"3.20.2","@tiptap/extension-mention":"3.20.2","@tiptap/extension-placeholder":"3.20.2","@tiptap/pm":"3.20.2","@tiptap/react":"3.20.2","@tiptap/starter-kit":"3.20.2","@tiptap/suggestion":"3.20.2","@types/bun":"^1.3.1","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@untitledui/icons":"^0.0.19","@vercel/nft":"^1.1.1","@vitejs/plugin-react":"^5.1.0",ai:"^6.0.116","babel-plugin-react-compiler":"^1.0.0","better-auth":"1.4.5","class-variance-authority":"^0.7.1",clsx:"^2.1.1",concurrently:"^9.2.1",croner:"^9.1.0","date-fns":"^4.1.0",degit:"^2.8.4",hono:"^4.10.7","input-otp":"^1.4.2",jose:"^6.0.11","kysely-pglite":"^0.6.1","lucide-react":"^0.468.0",marked:"^15.0.6","@decocms/sandbox":"workspace:*","mesh-plugin-workflows":"workspace:*",nanoid:"^5.1.6",pg:"^8.16.3",prettier:"^3.4.2","react-hook-form":"^7.66.0","react-markdown":"^10.1.0","react-resizable-panels":"^2.1.7","react-syntax-highlighter":"^15.6.1",recharts:"^3.6.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","sass-embedded":"^1.97.2",sonner:"^2.0.7","tailwind-merge":"^3.3.1",tailwindcss:"^4.1.17",typescript:"^5.9.3",vite:"^7.2.1","vite-tsconfig-paths":"^5.1.4",zod:"^4.0.0",zustand:"^5.0.9"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","mesh","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as qU,Text as RX}from"ink";import{Spinner as Wa5}from"@inkjs/ui";import{useSyncExternalStore as z16}from"react";import{jsx as TY,jsxs as sQ}from"react/jsx-runtime";function Ua5(X,Y){if(!X||!Fa5.has(X))return X;let G=bN0[Y]??bN0[bN0.length-1];return X==="#875f00"?G[0]:G[1]}function O16({status:X}){if(X==="pending")return TY(Wa5,{label:""});return TY(RX,{color:"green",children:"\u2713"})}function D16({services:X,migrationsStatus:Y,home:G,serverUrl:Q,vibe:J}){let W=z16(bm0,fm0),Z=z16(lm0,um0);return sQ(qU,{flexDirection:"column",paddingBottom:1,children:[J?sQ(qU,{flexDirection:"column",children:[W.map(($,K)=>{let H=Z[K],U=$.reduce((N,z)=>N+z.text.length,0),B=Math.max(0,Ha5-U);return sQ(qU,{flexDirection:"row",children:[$.map((N,z)=>{let O=Ua5(N.color,K);return O?TY(RX,{color:O,children:N.text},z):TY(RX,{children:N.text},z)}),TY(RX,{children:" ".repeat(B+2)}),H?.map((N,z)=>N.color?TY(RX,{color:N.color,children:N.char},z):TY(RX,{children:N.char},z))]},K)}),sQ(RX,{dimColor:!0,children:[" v",fN0.version]})]}):sQ(qU,{flexDirection:"column",marginTop:1,children:[$a5.map(($,K)=>TY(RX,{color:Ka5[K],children:$},K)),sQ(RX,{dimColor:!0,children:[" v",fN0.version]})]}),TY(qU,{marginBottom:1,children:TY(RX,{dimColor:!0,children:"\u2500".repeat(80)})}),TY(qU,{children:sQ(RX,{dimColor:!0,children:["Home: ",G]})}),sQ(qU,{gap:2,children:[X.map(($)=>sQ(qU,{gap:1,children:[sQ(RX,{children:[$.name," :",$.port||"...."]}),TY(O16,{status:$.status})]},$.name)),sQ(qU,{gap:1,children:[TY(RX,{children:"Migrations"}),TY(O16,{status:Y})]})]}),TY(qU,{children:Q?sQ(RX,{children:["Open in browser: ",TY(RX,{color:"cyan",children:Q})]}):TY(RX,{dimColor:!0,children:"Starting..."})}),sQ(qU,{gap:2,children:[sQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"K"})," ","toggle config"]}),sQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"L"})," ","toggle log flow"]}),sQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"V"})," ","toggle vibe ",J?"\u266A Nihilore \xB7 CC BY 4.0":""]}),J&&sQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"N"})," ","skip song"]})]})]})}var $a5,Ka5,bN0,Ha5=30,Fa5;var w16=D(()=>{N16();Pt1();jt1();$a5=[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588 \u2591 \u2588\u2588\u2588 \u2591\u2591\u2591 \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2591\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591 \u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591 "],Ka5=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"],bN0=[["#00ff64","#00cc50"],["#00f060","#00c04c"],["#00e05c","#00b448"],["#00d058","#00a844"],["#00c054","#009c40"],["#00b050","#00903c"],["#00a04c","#008438"],["#009048","#007834"],["#008044","#006c30"],["#007040","#00602c"],["#00603c","#005428"]],Fa5=new Set(["#875f00","#5f3800"])});import{useSyncExternalStore as Ba5}from"react";function Na5(){let X=process.stdout.rows||24,Y=process.stdout.columns||80;if(X!==iA1.rows||Y!==iA1.columns)iA1={rows:X,columns:Y};return iA1}function za5(X){return process.stdout.on("resize",X),()=>{process.stdout.off("resize",X)}}function L16(){return Ba5(za5,Na5)}var iA1;var E16=D(()=>{iA1={rows:process.stdout.rows||24,columns:process.stdout.columns||80}});import{Box as Oa5,Text as _X1}from"ink";import{useSyncExternalStore as Da5}from"react";import{jsx as yN0,jsxs as xN0}from"react/jsx-runtime";function wa5(X){if(X>=500)return"red";if(X>=400)return"yellow";if(X>=300)return"cyan";return"green"}function P16({logs:X,headerHeight:Y}){let{rows:G}=L16(),{logFlow:Q}=Da5(SX1,RX1),J=Math.max(1,G-Y-1),W=Q?X:X.slice(-J);return yN0(Oa5,{flexDirection:"column",children:W.map((Z,$)=>{if(Z.rawLine)return yN0(_X1,{dimColor:!0,children:Z.rawLine},$);let K=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return xN0(_X1,{children:[xN0(_X1,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),yN0(_X1,{color:wa5(Z.status),children:Z.status}),xN0(_X1,{dimColor:!0,children:[" ",K.padStart(8)]})]},$)})})}var q16=D(()=>{Wz();E16()});var hN0={};T0(hN0,{App:()=>Ia5});import{Box as La5,Text as Ea5,useInput as Pa5}from"ink";import{useSyncExternalStore as qa5}from"react";import{jsx as pA1,jsxs as Va5}from"react/jsx-runtime";function Ia5({home:X}){let Y=qa5(SX1,RX1);return Pa5((G)=>{if(G==="k"||G==="K")jN0();if(G==="l"||G==="L")MN0();if((G==="v"||G==="V")&&Y.dataDir)kt1(Y.dataDir),RN0();if((G==="n"||G==="N")&&Y.vibe)St1()}),Va5(La5,{flexDirection:"column",children:[pA1(D16,{services:Y.services,migrationsStatus:Y.migrationsStatus,home:X,serverUrl:Y.serverUrl,vibe:Y.vibe}),Y.viewMode==="config"?Y.env?pA1(U16,{env:Y.env}):pA1(Ea5,{dimColor:!0,children:"Loading configuration..."}):pA1(P16,{logs:Y.logs,headerHeight:Y.vibe?Ta5:Aa5})]})}var Aa5=15,Ta5=19;var gN0=D(()=>{B16();w16();q16();Wz();_d()});function A16(X,Y={}){return{PORT:String(X.port),NODE_ENV:X.nodeEnv,BASE_URL:X.baseUrl,DATA_DIR:X.dataDir,DECOCMS_HOME:X.dataDir,DATABASE_URL:X.databaseUrl,DATABASE_PG_SSL:String(X.databasePgSsl),DATABASE_POOL_MAX:String(X.databasePoolMax),NATS_URL:X.natsUrls.join(","),BETTER_AUTH_SECRET:X.betterAuthSecret,ENCRYPTION_KEY:X.encryptionKey,MESH_JWT_SECRET:X.meshJwtSecret,DECOCMS_LOCAL_MODE:String(X.localMode),DISABLE_RATE_LIMIT:String(X.disableRateLimit),STUDIO_PROVISION_SECRET_KEY:X.studioProvisionSecretKey,CONFIG_PATH:X.configPath,...Object.fromEntries(Object.entries(process.env).filter(([G])=>G.startsWith("AUTH_"))),DECO_AI_GATEWAY_ENABLED:String(X.aiGatewayEnabled),DECO_AI_GATEWAY_URL:X.aiGatewayUrl,ENABLE_DECO_IMPORT:String(X.enableDecoImport),S3_ENDPOINT:X.s3Endpoint,S3_BUCKET:X.s3Bucket,S3_REGION:X.s3Region,S3_ACCESS_KEY_ID:X.s3AccessKeyId,S3_SECRET_ACCESS_KEY:X.s3SecretAccessKey,S3_FORCE_PATH_STYLE:String(X.s3ForcePathStyle),OTEL_SERVICE_NAME:X.otelServiceName,CLICKHOUSE_URL:X.clickhouseUrl,OTEL_EXPORTER_OTLP_ENDPOINT:process.env.OTEL_EXPORTER_OTLP_ENDPOINT,OTEL_EXPORTER_OTLP_PROTOCOL:process.env.OTEL_EXPORTER_OTLP_PROTOCOL,OTEL_RESOURCE_ATTRIBUTES:process.env.OTEL_RESOURCE_ATTRIBUTES,DECO_SUPABASE_URL:X.decoSupabaseUrl,DECO_SUPABASE_SERVICE_KEY:X.decoSupabaseServiceKey,FIRECRAWL_API_KEY:X.firecrawlApiKey,STUDIO_SANDBOX_RUNNER:process.env.STUDIO_SANDBOX_RUNNER,STUDIO_SANDBOX_TEMPLATE_NAME:process.env.STUDIO_SANDBOX_TEMPLATE_NAME,STUDIO_ENV:process.env.STUDIO_ENV,STUDIO_SANDBOX_PREVIEW_URL_PATTERN:process.env.STUDIO_SANDBOX_PREVIEW_URL_PATTERN,STUDIO_SANDBOX_PREVIEW_GATEWAY_NAME:process.env.STUDIO_SANDBOX_PREVIEW_GATEWAY_NAME,STUDIO_SANDBOX_PREVIEW_GATEWAY_NAMESPACE:process.env.STUDIO_SANDBOX_PREVIEW_GATEWAY_NAMESPACE,STUDIO_SANDBOX_SENTINEL_TOKEN:process.env.STUDIO_SANDBOX_SENTINEL_TOKEN,KUBERNETES_SERVICE_HOST:process.env.KUBERNETES_SERVICE_HOST,KUBERNETES_SERVICE_PORT:process.env.KUBERNETES_SERVICE_PORT,FREESTYLE_API_KEY:process.env.FREESTYLE_API_KEY,BROWSERLESS_TOKEN:process.env.BROWSERLESS_TOKEN,NODE_EXTRA_CA_CERTS:process.env.NODE_EXTRA_CA_CERTS,DECO_CLI:"1",DECO_NO_TUI:"true",...Y}}var bj=k((Ca5)=>{Ca5.HttpAuthLocation=void 0;(function(X){X.HEADER="header",X.QUERY="query"})(Ca5.HttpAuthLocation||(Ca5.HttpAuthLocation={}));Ca5.HttpApiKeyAuthLocation=void 0;(function(X){X.HEADER="header",X.QUERY="query"})(Ca5.HttpApiKeyAuthLocation||(Ca5.HttpApiKeyAuthLocation={}));Ca5.EndpointURLScheme=void 0;(function(X){X.HTTP="http",X.HTTPS="https"})(Ca5.EndpointURLScheme||(Ca5.EndpointURLScheme={}));Ca5.AlgorithmId=void 0;(function(X){X.MD5="md5",X.CRC32="crc32",X.CRC32C="crc32c",X.SHA1="sha1",X.SHA256="sha256"})(Ca5.AlgorithmId||(Ca5.AlgorithmId={}));var ja5=(X)=>{let Y=[];if(X.sha256!==void 0)Y.push({algorithmId:()=>Ca5.AlgorithmId.SHA256,checksumConstructor:()=>X.sha256});if(X.md5!=null)Y.push({algorithmId:()=>Ca5.AlgorithmId.MD5,checksumConstructor:()=>X.md5});return{addChecksumAlgorithm(G){Y.push(G)},checksumAlgorithms(){return Y}}},Ma5=(X)=>{let Y={};return X.checksumAlgorithms().forEach((G)=>{Y[G.algorithmId()]=G.checksumConstructor()}),Y},Ra5=(X)=>{return ja5(X)},Sa5=(X)=>{return Ma5(X)};Ca5.FieldPosition=void 0;(function(X){X[X.HEADER=0]="HEADER",X[X.TRAILER=1]="TRAILER"})(Ca5.FieldPosition||(Ca5.FieldPosition={}));var ka5="__smithy_context";Ca5.IniSectionType=void 0;(function(X){X.PROFILE="profile",X.SSO_SESSION="sso-session",X.SERVICES="services"})(Ca5.IniSectionType||(Ca5.IniSectionType={}));Ca5.RequestHandlerProtocol=void 0;(function(X){X.HTTP_0_9="http/0.9",X.HTTP_1_0="http/1.0",X.TDS_8_0="tds/8.0"})(Ca5.RequestHandlerProtocol||(Ca5.RequestHandlerProtocol={}));Ca5.SMITHY_CONTEXT_KEY=ka5;Ca5.getDefaultClientConfiguration=Ra5;Ca5.resolveDefaultRuntimeConfig=Sa5});var u7=k((ua5)=>{var ba5=bj(),ya5=(X)=>{return{setHttpHandler(Y){X.httpHandler=Y},httpHandler(){return X.httpHandler},updateHttpClientConfig(Y,G){X.httpHandler?.updateHttpClientConfig(Y,G)},httpHandlerConfigs(){return X.httpHandler.httpHandlerConfigs()}}},xa5=(X)=>{return{httpHandler:X.httpHandler()}};class T16{name;kind;values;constructor({name:X,kind:Y=ba5.FieldPosition.HEADER,values:G=[]}){this.name=X,this.kind=Y,this.values=G}add(X){this.values.push(X)}set(X){this.values=X}remove(X){this.values=this.values.filter((Y)=>Y!==X)}toString(){return this.values.map((X)=>X.includes(",")||X.includes(" ")?`"${X}"`:X).join(", ")}get(){return this.values}}class I16{entries={};encoding;constructor({fields:X=[],encoding:Y="utf-8"}){X.forEach(this.setField.bind(this)),this.encoding=Y}setField(X){this.entries[X.name.toLowerCase()]=X}getField(X){return this.entries[X.toLowerCase()]}removeField(X){delete this.entries[X.toLowerCase()]}getByType(X){return Object.values(this.entries).filter((Y)=>Y.kind===X)}}class nA1{method;protocol;hostname;port;path;query;headers;username;password;fragment;body;constructor(X){this.method=X.method||"GET",this.hostname=X.hostname||"localhost",this.port=X.port,this.query=X.query||{},this.headers=X.headers||{},this.body=X.body,this.protocol=X.protocol?X.protocol.slice(-1)!==":"?`${X.protocol}:`:X.protocol:"https:",this.path=X.path?X.path.charAt(0)!=="/"?`/${X.path}`:X.path:"/",this.username=X.username,this.password=X.password,this.fragment=X.fragment}static clone(X){let Y=new nA1({...X,headers:{...X.headers}});if(Y.query)Y.query=ha5(Y.query);return Y}static isInstance(X){if(!X)return!1;let Y=X;return"method"in Y&&"protocol"in Y&&"hostname"in Y&&"path"in Y&&typeof Y.query==="object"&&typeof Y.headers==="object"}clone(){return nA1.clone(this)}}function ha5(X){return Object.keys(X).reduce((Y,G)=>{let Q=X[G];return{...Y,[G]:Array.isArray(Q)?[...Q]:Q}},{})}class V16{statusCode;reason;headers;body;constructor(X){this.statusCode=X.statusCode,this.reason=X.reason,this.headers=X.headers||{},this.body=X.body}static isInstance(X){if(!X)return!1;let Y=X;return typeof Y.statusCode==="number"&&typeof Y.headers==="object"}}function ga5(X){return/^[a-z0-9][a-z0-9\.\-]*[a-z0-9]$/.test(X)}ua5.Field=T16;ua5.Fields=I16;ua5.HttpRequest=nA1;ua5.HttpResponse=V16;ua5.getHttpHandlerExtensionConfiguration=ya5;ua5.isValidHostname=ga5;ua5.resolveHttpHandlerRuntimeConfig=xa5});function ta5(X){return(Y)=>async(G)=>{let{request:Q}=G;if(X.expectContinueHeader!==!1&&j16.HttpRequest.isInstance(Q)&&Q.body&&X.runtime==="node"&&X.requestHandler?.constructor?.name!=="FetchHttpHandler"){let J=!0;if(typeof X.expectContinueHeader==="number")try{J=(Number(Q.headers?.["content-length"])??X.bodyLengthChecker?.(Q.body)??1/0)>=X.expectContinueHeader}catch(W){}else J=!!X.expectContinueHeader;if(J)Q.headers.Expect="100-continue"}return Y({...G,request:Q})}}var j16,aa5,M16=(X)=>({applyToStack:(Y)=>{Y.add(ta5(X),aa5)}});var R16=D(()=>{j16=Y1(u7(),1);aa5={step:"build",tags:["SET_EXPECT_HEADER","EXPECT_HEADER"],name:"addExpectContinueMiddleware",override:!0}});var wH,tA1,yj,aA1,E9,S16,bX1;var LH=D(()=>{wH={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},tA1=wH.WHEN_SUPPORTED,yj={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},aA1=wH.WHEN_SUPPORTED;(function(X){X.MD5="MD5",X.CRC32="CRC32",X.CRC32C="CRC32C",X.CRC64NVME="CRC64NVME",X.SHA1="SHA1",X.SHA256="SHA256"})(E9||(E9={}));(function(X){X.HEADER="header",X.TRAILER="trailer"})(S16||(S16={}));bX1=E9.CRC32});var kq,Ya=(X,Y,G,Q)=>{if(!(Y in X))return;let J=X[Y].toUpperCase();if(!Object.values(G).includes(J))throw TypeError(`Cannot load ${Q} '${Y}'. Expected one of ${Object.values(G)}, got '${X[Y]}'.`);return J};var pN0=D(()=>{(function(X){X.ENV="env",X.CONFIG="shared config entry"})(kq||(kq={}))});var ra5="AWS_REQUEST_CHECKSUM_CALCULATION",oa5="request_checksum_calculation",k16;var C16=D(()=>{LH();pN0();k16={environmentVariableSelector:(X)=>Ya(X,ra5,wH,kq.ENV),configFileSelector:(X)=>Ya(X,oa5,wH,kq.CONFIG),default:tA1}});var sa5="AWS_RESPONSE_CHECKSUM_VALIDATION",ea5="response_checksum_validation",v16;var _16=D(()=>{LH();pN0();v16={environmentVariableSelector:(X)=>Ya(X,sa5,yj,kq.ENV),configFileSelector:(X)=>Ya(X,ea5,yj,kq.CONFIG),default:aA1}});var tN0=k((Hr5)=>{var Xr5=["AuthFailure","InvalidSignatureException","RequestExpired","RequestInTheFuture","RequestTimeTooSkewed","SignatureDoesNotMatch"],Yr5=["BandwidthLimitExceeded","EC2ThrottledException","LimitExceededException","PriorRequestNotComplete","ProvisionedThroughputExceededException","RequestLimitExceeded","RequestThrottled","RequestThrottledException","SlowDown","ThrottledException","Throttling","ThrottlingException","TooManyRequestsException","TransactionInProgressException"],Gr5=["TimeoutError","RequestTimeout","RequestTimeoutException"],Qr5=[500,502,503,504],Jr5=["ECONNRESET","ECONNREFUSED","EPIPE","ETIMEDOUT"],Zr5=["EHOSTUNREACH","ENETUNREACH","ENOTFOUND"],f16=(X)=>X?.$retryable!==void 0,Wr5=(X)=>Xr5.includes(X.name),b16=(X)=>X.$metadata?.clockSkewCorrected,y16=(X)=>{let Y=new Set(["Failed to fetch","NetworkError when attempting to fetch resource","The Internet connection appears to be offline","Load failed","Network request failed"]);if(!(X&&X instanceof TypeError))return!1;return Y.has(X.message)},$r5=(X)=>X.$metadata?.httpStatusCode===429||Yr5.includes(X.name)||X.$retryable?.throttling==!0,nN0=(X,Y=0)=>f16(X)||b16(X)||X.name==="InvalidSignatureException"&&X.message?.includes("Signature expired")||Gr5.includes(X.name)||Jr5.includes(X?.code||"")||Zr5.includes(X?.code||"")||Qr5.includes(X.$metadata?.httpStatusCode||0)||y16(X)||x16(X)||X.cause!==void 0&&Y<=10&&nN0(X.cause,Y+1),Kr5=(X)=>{if(X.$metadata?.httpStatusCode!==void 0){let Y=X.$metadata.httpStatusCode;if(500<=Y&&Y<=599&&!nN0(X))return!0;return!1}return!1};function x16(X){return X.code==="ERR_HTTP2_STREAM_ERROR"&&X.message.includes("NGHTTP2_REFUSED_STREAM")}Hr5.isBrowserNetworkError=y16;Hr5.isClockSkewCorrectedError=b16;Hr5.isClockSkewError=Wr5;Hr5.isNodeJsHttp2TransientError=x16;Hr5.isRetryableByTrait=f16;Hr5.isServerError=Kr5;Hr5.isThrottlingError=$r5;Hr5.isTransientError=nN0});var Dw=k((jr5)=>{var Lr5=tN0();jr5.RETRY_MODES=void 0;(function(X){X.STANDARD="standard",X.ADAPTIVE="adaptive"})(jr5.RETRY_MODES||(jr5.RETRY_MODES={}));var oA1=3,Er5=jr5.RETRY_MODES.STANDARD;class sA1{static setTimeoutFn=setTimeout;beta;minCapacity;minFillRate;scaleConstant;smooth;enabled=!1;availableTokens=0;lastMaxRate=0;measuredTxRate=0;requestCount=0;fillRate;lastThrottleTime;lastTimestamp=0;lastTxRateBucket;maxCapacity;timeWindow=0;constructor(X){this.beta=X?.beta??0.7,this.minCapacity=X?.minCapacity??1,this.minFillRate=X?.minFillRate??0.5,this.scaleConstant=X?.scaleConstant??0.4,this.smooth=X?.smooth??0.8,this.lastThrottleTime=this.getCurrentTimeInSeconds(),this.lastTxRateBucket=Math.floor(this.getCurrentTimeInSeconds()),this.fillRate=this.minFillRate,this.maxCapacity=this.minCapacity}async getSendToken(){return this.acquireTokenBucket(1)}updateClientSendingRate(X){let Y;this.updateMeasuredRate();let G=X;if(G?.errorType==="THROTTLING"||Lr5.isThrottlingError(G?.error??X)){let W=!this.enabled?this.measuredTxRate:Math.min(this.measuredTxRate,this.fillRate);this.lastMaxRate=W,this.calculateTimeWindow(),this.lastThrottleTime=this.getCurrentTimeInSeconds(),Y=this.cubicThrottle(W),this.enableTokenBucket()}else this.calculateTimeWindow(),Y=this.cubicSuccess(this.getCurrentTimeInSeconds());let J=Math.min(Y,2*this.measuredTxRate);this.updateTokenBucketRate(J)}getCurrentTimeInSeconds(){return Date.now()/1000}async acquireTokenBucket(X){if(!this.enabled)return;if(this.refillTokenBucket(),X>this.availableTokens){let Y=(X-this.availableTokens)/this.fillRate*1000;await new Promise((G)=>sA1.setTimeoutFn(G,Y))}this.availableTokens=this.availableTokens-X}refillTokenBucket(){let X=this.getCurrentTimeInSeconds();if(!this.lastTimestamp){this.lastTimestamp=X;return}let Y=(X-this.lastTimestamp)*this.fillRate;this.availableTokens=Math.min(this.maxCapacity,this.availableTokens+Y),this.lastTimestamp=X}calculateTimeWindow(){this.timeWindow=this.getPrecise(Math.pow(this.lastMaxRate*(1-this.beta)/this.scaleConstant,0.3333333333333333))}cubicThrottle(X){return this.getPrecise(X*this.beta)}cubicSuccess(X){return this.getPrecise(this.scaleConstant*Math.pow(X-this.lastThrottleTime-this.timeWindow,3)+this.lastMaxRate)}enableTokenBucket(){this.enabled=!0}updateTokenBucketRate(X){this.refillTokenBucket(),this.fillRate=Math.max(X,this.minFillRate),this.maxCapacity=Math.max(X,this.minCapacity),this.availableTokens=Math.min(this.availableTokens,this.maxCapacity)}updateMeasuredRate(){let X=this.getCurrentTimeInSeconds(),Y=Math.floor(X*2)/2;if(this.requestCount++,Y>this.lastTxRateBucket){let G=this.requestCount/(Y-this.lastTxRateBucket);this.measuredTxRate=this.getPrecise(G*this.smooth+this.measuredTxRate*(1-this.smooth)),this.requestCount=0,this.lastTxRateBucket=Y}}getPrecise(X){return parseFloat(X.toFixed(8))}}var Pr5=100,oN0=20000,qr5=500,aN0=500,Ar5=5,Tr5=10,h16=1,Ir5="amz-sdk-invocation-id",Vr5="amz-sdk-request";class eQ{static v2026=typeof process<"u"&&process.env?.SMITHY_NEW_RETRIES_2026==="true";static delay(){return eQ.v2026?50:100}static throttlingDelay(){return eQ.v2026?1000:500}static cost(){return eQ.v2026?14:5}static throttlingCost(){return eQ.v2026?5:10}static modifiedCostType(){return eQ.v2026?"THROTTLING":"TRANSIENT"}}class g16{x=eQ.delay();computeNextBackoffDelay(X){let Y=Math.random(),G=2,Q=Y*Math.min(this.x*2**X,oN0);return Math.floor(Q)}setDelayBase(X){this.x=X}}class rN0{delay;count;cost;longPoll;constructor(X,Y,G,Q){this.delay=X,this.count=Y,this.cost=G,this.longPoll=Q}getRetryCount(){return this.count}getRetryDelay(){return Math.min(oN0,this.delay)}getRetryCost(){return this.cost}isLongPoll(){return this.longPoll}}var rA1={incompatible:1,attempts:2,capacity:3};class yX1{mode=jr5.RETRY_MODES.STANDARD;capacity=aN0;retryBackoffStrategy;maxAttemptsProvider;baseDelay;constructor(X){if(typeof X==="number")this.maxAttemptsProvider=async()=>X;else if(typeof X==="function")this.maxAttemptsProvider=X;else if(X&&typeof X==="object")this.maxAttemptsProvider=async()=>X.maxAttempts,this.baseDelay=X.baseDelay,this.retryBackoffStrategy=X.backoff;this.maxAttemptsProvider??=async()=>oA1,this.baseDelay??=eQ.delay(),this.retryBackoffStrategy??=new g16}async acquireInitialRetryToken(X){return new rN0(eQ.delay(),0,void 0,eQ.v2026&&X.includes(":longpoll"))}async refreshRetryTokenForRetry(X,Y){let G=await this.getMaxAttempts(),Q=this.retryCode(X,Y,G),J=Q===0,W=X.isLongPoll?.();if(J||W){let Z=Y.errorType;this.retryBackoffStrategy.setDelayBase(Z==="THROTTLING"?eQ.throttlingDelay():this.baseDelay);let $=this.retryBackoffStrategy.computeNextBackoffDelay(X.getRetryCount()),K=$;if(Y.retryAfterHint instanceof Date)K=Math.max($,Math.min(Y.retryAfterHint.getTime()-Date.now(),$+5000));if(!J)throw Object.assign(Error("No retry token available"),{$backoff:eQ.v2026&&Q===rA1.capacity&&W?K:0});else{let H=this.getCapacityCost(Z);return this.capacity-=H,new rN0(K,X.getRetryCount()+1,H,X.isLongPoll?.()??!1)}}throw Error("No retry token available")}recordSuccess(X){this.capacity=Math.min(aN0,this.capacity+(X.getRetryCost()??h16))}getCapacity(){return this.capacity}async maxAttempts(){return this.maxAttemptsProvider()}async getMaxAttempts(){try{return await this.maxAttemptsProvider()}catch(X){return console.warn(`Max attempts provider could not resolve. Using default of ${oA1}`),oA1}}retryCode(X,Y,G){let Q=X.getRetryCount()+1,J=this.isRetryableError(Y.errorType)?0:rA1.incompatible,W=Q<G?0:rA1.attempts,Z=this.capacity>=this.getCapacityCost(Y.errorType)?0:rA1.capacity;return J||W||Z}getCapacityCost(X){return X===eQ.modifiedCostType()?eQ.throttlingCost():eQ.cost()}isRetryableError(X){return X==="THROTTLING"||X==="TRANSIENT"}}class u16{mode=jr5.RETRY_MODES.ADAPTIVE;rateLimiter;standardRetryStrategy;constructor(X,Y){let{rateLimiter:G}=Y??{};this.rateLimiter=G??new sA1,this.standardRetryStrategy=Y?new yX1({maxAttempts:typeof X==="number"?X:3,...Y}):new yX1(X)}async acquireInitialRetryToken(X){return await this.rateLimiter.getSendToken(),this.standardRetryStrategy.acquireInitialRetryToken(X)}async refreshRetryTokenForRetry(X,Y){return this.rateLimiter.updateClientSendingRate(Y),this.standardRetryStrategy.refreshRetryTokenForRetry(X,Y)}recordSuccess(X){this.rateLimiter.updateClientSendingRate({}),this.standardRetryStrategy.recordSuccess(X)}async maxAttemptsProvider(){return this.standardRetryStrategy.maxAttempts()}}class l16 extends yX1{computeNextBackoffDelay;constructor(X,Y=eQ.delay()){super(typeof X==="function"?X:async()=>X);if(typeof Y==="number")this.computeNextBackoffDelay=()=>Y;else this.computeNextBackoffDelay=Y}async refreshRetryTokenForRetry(X,Y){let G=await super.refreshRetryTokenForRetry(X,Y);return G.getRetryDelay=()=>this.computeNextBackoffDelay(G.getRetryCount()),G}}jr5.AdaptiveRetryStrategy=u16;jr5.ConfiguredRetryStrategy=l16;jr5.DEFAULT_MAX_ATTEMPTS=oA1;jr5.DEFAULT_RETRY_DELAY_BASE=Pr5;jr5.DEFAULT_RETRY_MODE=Er5;jr5.DefaultRateLimiter=sA1;jr5.INITIAL_RETRY_TOKENS=aN0;jr5.INVOCATION_ID_HEADER=Ir5;jr5.MAXIMUM_RETRY_DELAY=oN0;jr5.NO_RETRY_INCREMENT=h16;jr5.REQUEST_HEADER=Vr5;jr5.RETRY_COST=Ar5;jr5.Retry=eQ;jr5.StandardRetryStrategy=yX1;jr5.THROTTLING_RETRY_DELAY_BASE=qr5;jr5.TIMEOUT_RETRY_COST=Tr5});var WX=k((or5)=>{var dr5=Dw(),sN0={warningEmitted:!1},cr5=(X)=>{if(X&&!sN0.warningEmitted&&parseInt(X.substring(1,X.indexOf(".")))<20)sN0.warningEmitted=!0,process.emitWarning(`NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will
|
|
1646
|
+
`);Q=W.pop()??"";for(let Z of W){let $=$16(Z).replace(/^\[\d+\]\s*/,"").trim();if(!$)continue;Zz({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:$})}}(async()=>{for(;;){let{done:W,value:Z}=await Y.read();if(W)break;Q+=G.decode(Z,{stream:!0}),J()}if(Q.trim()){let W=$16(Q).replace(/^\[\d+\]\s*/,"").trim();if(W)Zz({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:W})}})()}async function Xa5(X){let{vitePort:Y,baseUrl:G,noTui:Q}=X,J=await dA1(Number(X.port)),{settings:W,services:Z,managedServiceNames:$}=await gA1({port:String(J),home:X.home,baseUrl:X.baseUrl,localMode:X.localMode,skipMigrations:X.skipMigrations,noTui:X.noTui,vitePort:X.vitePort});for(let z of Z)Xa({name:z.name,status:"ready",port:z.port});vX1(W),kX1();let K=et5(import.meta.dir,"..","..","..","..",".."),H=Q===!0,U=Bun.spawn(["bun","run","--cwd=apps/mesh","dev:servers"],{cwd:K,env:{...process.env,PORT:String(W.port),VITE_PORT:String(Y),DATABASE_URL:W.databaseUrl,NATS_URL:W.natsUrls.join(","),NODE_ENV:W.nodeEnv,DECOCMS_LOCAL_MODE:String(W.localMode),DECOCMS_HOME:W.dataDir,DATA_DIR:W.dataDir,DECO_CLI:"1",...W.baseUrl?{BASE_URL:W.baseUrl}:{}},stdio:["inherit",H?"inherit":"pipe",H?"inherit":"pipe"]});if(!H)K16(U.stdout),K16(U.stderr);let B=G||`http://localhost:${W.port}`;CX1(B),Xa({name:"Vite",status:"ready",port:Number(Y)});let N=async(z)=>{if(U.kill(z),$.length>0){let{stopServices:O}=await Promise.resolve().then(() => (b$1(),f$1));await O(W.dataDir)}};return process.on("SIGINT",()=>N("SIGINT")),process.on("SIGTERM",()=>N("SIGTERM")),{port:Number(W.port),process:U}}var CN0=D(()=>{IN0();Wz();SN0()});import{Box as vN0,Text as _N0}from"ink";import{jsx as F16,jsxs as cA1}from"react/jsx-runtime";function H16(X){if(!X)return"not set";try{let Y=new URL(X);if(Y.password)Y.password="***";if(Y.username&&Y.username.length>3)Y.username=Y.username.slice(0,3)+"***";return Y.pathname="/",Y.search="",Y.hash="",Y.toString()}catch{if(X.length<=10)return X;return X.slice(0,6)+"***"+X.slice(-4)}}function Qa5(X,Y){if(Ya5.has(X))return Y?{text:"\u25CF\u25CF\u25CF\u25CF\u25CF\u25CF",dimColor:!0}:{text:"not set",dimColor:!0};if(Ga5.has(X)){if(Array.isArray(Y)){if(Y.length===0)return{text:"not set",dimColor:!0};return{text:Y.map((W)=>H16(W)).join(", "),color:"cyan"}}let Q=H16(Y);return Q==="not set"?{text:Q,dimColor:!0}:{text:Q,color:"cyan"}}if(Y===void 0||Y===null||Y==="")return{text:"not set",dimColor:!0};let G=String(Y);if(G==="true")return{text:G,color:"green"};if(G==="false")return{text:G,color:"yellow"};try{return new URL(G),{text:G,color:"cyan"}}catch{return{text:G}}}function Ja5(X){return[{title:"Core",entries:[{key:"NODE_ENV",value:X.nodeEnv},{key:"PORT",value:X.port},{key:"BASE_URL",value:X.baseUrl??`http://localhost:${X.port}`},{key:"DATA_DIR",value:X.dataDir}]},{title:"Database",entries:[{key:"DATABASE_URL",value:X.databaseUrl},{key:"DATABASE_PG_SSL",value:X.databasePgSsl}]},{title:"Auth & Secrets",entries:[{key:"BETTER_AUTH_SECRET",value:X.betterAuthSecret},{key:"ENCRYPTION_KEY",value:X.encryptionKey},{key:"MESH_JWT_SECRET",value:X.meshJwtSecret},{key:"STUDIO_PROVISION_SECRET_KEY",value:X.studioProvisionSecretKey},{key:"DISABLE_RATE_LIMIT",value:X.disableRateLimit}]},{title:"Auth Providers",entries:[{key:"AUTH_EMAIL_PASSWORD_ENABLED",value:process.env.AUTH_EMAIL_PASSWORD_ENABLED??"true"},{key:"AUTH_GOOGLE_CLIENT_ID",value:!!process.env.AUTH_GOOGLE_CLIENT_ID},{key:"AUTH_GITHUB_CLIENT_ID",value:!!process.env.AUTH_GITHUB_CLIENT_ID},{key:"AUTH_RESEND_API_KEY",value:!!process.env.AUTH_RESEND_API_KEY},{key:"AUTH_SENDGRID_API_KEY",value:!!process.env.AUTH_SENDGRID_API_KEY},{key:"AUTH_SSO_MS_CLIENT_ID",value:!!process.env.AUTH_SSO_MS_CLIENT_ID},{key:"AUTH_MAGIC_LINK_ENABLED",value:process.env.AUTH_MAGIC_LINK_ENABLED==="true"},{key:"AUTH_EMAIL_OTP_ENABLED",value:process.env.AUTH_EMAIL_OTP_ENABLED==="true"}]},{title:"Observability",entries:[{key:"CLICKHOUSE_URL",value:X.clickhouseUrl},{key:"OTEL_SERVICE_NAME",value:X.otelServiceName}]},{title:"Event Bus & Networking",entries:[{key:"NATS_URL",value:X.natsUrls}]},{title:"Config Files",entries:[{key:"CONFIG_PATH",value:X.configPath}]},{title:"AI Gateway",entries:[{key:"DECO_AI_GATEWAY_ENABLED",value:X.aiGatewayEnabled},{key:"DECO_AI_GATEWAY_URL",value:X.aiGatewayUrl}]}]}function U16({env:X}){let Y=Ja5(X);return F16(vN0,{flexDirection:"column",children:Y.map((G)=>cA1(vN0,{flexDirection:"column",marginTop:1,children:[cA1(_N0,{dimColor:!0,children:[" ","\u2500\u2500 ",G.title," ","\u2500".repeat(Math.max(0,38-G.title.length))]}),G.entries.map(({key:Q,value:J})=>{let W=Qa5(Q,J);return cA1(vN0,{children:[cA1(_N0,{dimColor:!0,children:[" ",Q.padEnd(36)]}),F16(_N0,{color:W.color,dimColor:W.dimColor,children:W.text})]},Q)})]},G.title))})}var Ya5,Ga5;var B16=D(()=>{Ya5=new Set(["BETTER_AUTH_SECRET","ENCRYPTION_KEY","MESH_JWT_SECRET","STUDIO_PROVISION_SECRET_KEY"]),Ga5=new Set(["DATABASE_URL","CLICKHOUSE_URL","NATS_URL"])});var fN0;var N16=D(()=>{fN0={name:"decocms",version:"2.304.11",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/mesh"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:'bun run migrate && concurrently "bun run dev:client" "bun run dev:server"',"dev:servers":'concurrently "bun run dev:client" "bun run dev:server"',"dev:client":"bun --bun vite dev","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts","build:client":"bun --bun vite build","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test","test:e2e":"playwright test","test:e2e:ui":"playwright test --ui","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run build:client && bun run build:server"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1","@freestyle-sh/with-bun":"^0.2.12","@freestyle-sh/with-deno":"^0.0.4","@freestyle-sh/with-nodejs":"^0.2.9","freestyle-sandboxes":"^0.1.46"},dependencies:{"@ai-sdk/anthropic":"^3.0.58","@ai-sdk/google":"^3.0.60","@ai-sdk/openai":"^3.0.50","@anthropic-ai/sdk":"^0.79.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@deco-cx/warp-node":"^0.3.20","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@inkjs/ui":"^2.0.0","@modelcontextprotocol/ext-apps":"^1.2.2","@openrouter/ai-sdk-provider":"^2.2.5","@opentelemetry/core":"^2.6.0","@tanstack/react-virtual":"^3.13.21","@xterm/addon-fit":"^0.11.0","@xterm/xterm":"^6.0.0","ai-sdk-provider-claude-code":"^3.4.4","ai-sdk-provider-codex-cli":"^1.1.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12",nats:"^2.29.3","node-pty":"^1.0.0","posthog-js":"^1.371.1","posthog-node":"^5.0.0",react:"^19.2.0","react-dom":"^19.2.0"},devDependencies:{"@ai-sdk/provider":"^3.0.8","@ai-sdk/react":"^3.0.118","@anthropic-ai/claude-agent-sdk":"^0.2.80","@better-auth/sso":"1.4.1","@daveyplate/better-auth-ui":"^3.2.7","@deco/ui":"workspace:*","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/mesh-sdk":"workspace:*","@decocms/runtime":"workspace:*","@decocms/vite-plugin":"workspace:*","@electric-sql/pglite":"^0.3.15","@floating-ui/react":"^0.27.16","@hookform/resolvers":"^5.2.2","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.27.1","@monaco-editor/react":"^4.7.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@playwright/test":"^1.58.2","@radix-ui/react-avatar":"^1.1.10","@radix-ui/react-checkbox":"^1.3.3","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-dropdown-menu":"^2.1.16","@radix-ui/react-label":"^2.1.7","@radix-ui/react-select":"^2.2.6","@radix-ui/react-separator":"^1.1.7","@radix-ui/react-slot":"^1.2.3","@radix-ui/react-tabs":"^1.1.13","@rjsf/core":"^6.1.2","@rjsf/shadcn":"^6.1.2","@rjsf/utils":"^6.1.2","@rjsf/validator-ajv8":"^6.1.2","@tailwindcss/vite":"^4.1.17","@tanstack/react-query":"5.90.11","@tanstack/react-router":"^1.139.7","@tiptap/core":"3.20.2","@tiptap/extension-mention":"3.20.2","@tiptap/extension-placeholder":"3.20.2","@tiptap/pm":"3.20.2","@tiptap/react":"3.20.2","@tiptap/starter-kit":"3.20.2","@tiptap/suggestion":"3.20.2","@types/bun":"^1.3.1","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@untitledui/icons":"^0.0.19","@vercel/nft":"^1.1.1","@vitejs/plugin-react":"^5.1.0",ai:"^6.0.116","babel-plugin-react-compiler":"^1.0.0","better-auth":"1.4.5","class-variance-authority":"^0.7.1",clsx:"^2.1.1",concurrently:"^9.2.1",croner:"^9.1.0","date-fns":"^4.1.0",degit:"^2.8.4",hono:"^4.10.7","input-otp":"^1.4.2",jose:"^6.0.11","kysely-pglite":"^0.6.1","lucide-react":"^0.468.0",marked:"^15.0.6","@decocms/sandbox":"workspace:*","mesh-plugin-workflows":"workspace:*",nanoid:"^5.1.6",pg:"^8.16.3",prettier:"^3.4.2","react-hook-form":"^7.66.0","react-markdown":"^10.1.0","react-resizable-panels":"^2.1.7","react-syntax-highlighter":"^15.6.1",recharts:"^3.6.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","sass-embedded":"^1.97.2",sonner:"^2.0.7","tailwind-merge":"^3.3.1",tailwindcss:"^4.1.17",typescript:"^5.9.3",vite:"^7.2.1","vite-tsconfig-paths":"^5.1.4",zod:"^4.0.0",zustand:"^5.0.9"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","mesh","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as qU,Text as RX}from"ink";import{Spinner as Wa5}from"@inkjs/ui";import{useSyncExternalStore as z16}from"react";import{jsx as TY,jsxs as sQ}from"react/jsx-runtime";function Ua5(X,Y){if(!X||!Fa5.has(X))return X;let G=bN0[Y]??bN0[bN0.length-1];return X==="#875f00"?G[0]:G[1]}function O16({status:X}){if(X==="pending")return TY(Wa5,{label:""});return TY(RX,{color:"green",children:"\u2713"})}function D16({services:X,migrationsStatus:Y,home:G,serverUrl:Q,vibe:J}){let W=z16(bm0,fm0),Z=z16(lm0,um0);return sQ(qU,{flexDirection:"column",paddingBottom:1,children:[J?sQ(qU,{flexDirection:"column",children:[W.map(($,K)=>{let H=Z[K],U=$.reduce((N,z)=>N+z.text.length,0),B=Math.max(0,Ha5-U);return sQ(qU,{flexDirection:"row",children:[$.map((N,z)=>{let O=Ua5(N.color,K);return O?TY(RX,{color:O,children:N.text},z):TY(RX,{children:N.text},z)}),TY(RX,{children:" ".repeat(B+2)}),H?.map((N,z)=>N.color?TY(RX,{color:N.color,children:N.char},z):TY(RX,{children:N.char},z))]},K)}),sQ(RX,{dimColor:!0,children:[" v",fN0.version]})]}):sQ(qU,{flexDirection:"column",marginTop:1,children:[$a5.map(($,K)=>TY(RX,{color:Ka5[K],children:$},K)),sQ(RX,{dimColor:!0,children:[" v",fN0.version]})]}),TY(qU,{marginBottom:1,children:TY(RX,{dimColor:!0,children:"\u2500".repeat(80)})}),TY(qU,{children:sQ(RX,{dimColor:!0,children:["Home: ",G]})}),sQ(qU,{gap:2,children:[X.map(($)=>sQ(qU,{gap:1,children:[sQ(RX,{children:[$.name," :",$.port||"...."]}),TY(O16,{status:$.status})]},$.name)),sQ(qU,{gap:1,children:[TY(RX,{children:"Migrations"}),TY(O16,{status:Y})]})]}),TY(qU,{children:Q?sQ(RX,{children:["Open in browser: ",TY(RX,{color:"cyan",children:Q})]}):TY(RX,{dimColor:!0,children:"Starting..."})}),sQ(qU,{gap:2,children:[sQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"K"})," ","toggle config"]}),sQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"L"})," ","toggle log flow"]}),sQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"V"})," ","toggle vibe ",J?"\u266A Nihilore \xB7 CC BY 4.0":""]}),J&&sQ(RX,{dimColor:!0,children:[TY(RX,{bold:!0,dimColor:!0,children:"N"})," ","skip song"]})]})]})}var $a5,Ka5,bN0,Ha5=30,Fa5;var w16=D(()=>{N16();Pt1();jt1();$a5=[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588 \u2591 \u2588\u2588\u2588 \u2591\u2591\u2591 \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2591\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591 \u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591 "],Ka5=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"],bN0=[["#00ff64","#00cc50"],["#00f060","#00c04c"],["#00e05c","#00b448"],["#00d058","#00a844"],["#00c054","#009c40"],["#00b050","#00903c"],["#00a04c","#008438"],["#009048","#007834"],["#008044","#006c30"],["#007040","#00602c"],["#00603c","#005428"]],Fa5=new Set(["#875f00","#5f3800"])});import{useSyncExternalStore as Ba5}from"react";function Na5(){let X=process.stdout.rows||24,Y=process.stdout.columns||80;if(X!==iA1.rows||Y!==iA1.columns)iA1={rows:X,columns:Y};return iA1}function za5(X){return process.stdout.on("resize",X),()=>{process.stdout.off("resize",X)}}function L16(){return Ba5(za5,Na5)}var iA1;var E16=D(()=>{iA1={rows:process.stdout.rows||24,columns:process.stdout.columns||80}});import{Box as Oa5,Text as _X1}from"ink";import{useSyncExternalStore as Da5}from"react";import{jsx as yN0,jsxs as xN0}from"react/jsx-runtime";function wa5(X){if(X>=500)return"red";if(X>=400)return"yellow";if(X>=300)return"cyan";return"green"}function P16({logs:X,headerHeight:Y}){let{rows:G}=L16(),{logFlow:Q}=Da5(SX1,RX1),J=Math.max(1,G-Y-1),W=Q?X:X.slice(-J);return yN0(Oa5,{flexDirection:"column",children:W.map((Z,$)=>{if(Z.rawLine)return yN0(_X1,{dimColor:!0,children:Z.rawLine},$);let K=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return xN0(_X1,{children:[xN0(_X1,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),yN0(_X1,{color:wa5(Z.status),children:Z.status}),xN0(_X1,{dimColor:!0,children:[" ",K.padStart(8)]})]},$)})})}var q16=D(()=>{Wz();E16()});var hN0={};T0(hN0,{App:()=>Ia5});import{Box as La5,Text as Ea5,useInput as Pa5}from"ink";import{useSyncExternalStore as qa5}from"react";import{jsx as pA1,jsxs as Va5}from"react/jsx-runtime";function Ia5({home:X}){let Y=qa5(SX1,RX1);return Pa5((G)=>{if(G==="k"||G==="K")jN0();if(G==="l"||G==="L")MN0();if((G==="v"||G==="V")&&Y.dataDir)kt1(Y.dataDir),RN0();if((G==="n"||G==="N")&&Y.vibe)St1()}),Va5(La5,{flexDirection:"column",children:[pA1(D16,{services:Y.services,migrationsStatus:Y.migrationsStatus,home:X,serverUrl:Y.serverUrl,vibe:Y.vibe}),Y.viewMode==="config"?Y.env?pA1(U16,{env:Y.env}):pA1(Ea5,{dimColor:!0,children:"Loading configuration..."}):pA1(P16,{logs:Y.logs,headerHeight:Y.vibe?Ta5:Aa5})]})}var Aa5=15,Ta5=19;var gN0=D(()=>{B16();w16();q16();Wz();_d()});function A16(X,Y={}){return{PORT:String(X.port),NODE_ENV:X.nodeEnv,BASE_URL:X.baseUrl,DATA_DIR:X.dataDir,DECOCMS_HOME:X.dataDir,DATABASE_URL:X.databaseUrl,DATABASE_PG_SSL:String(X.databasePgSsl),DATABASE_POOL_MAX:String(X.databasePoolMax),NATS_URL:X.natsUrls.join(","),BETTER_AUTH_SECRET:X.betterAuthSecret,ENCRYPTION_KEY:X.encryptionKey,MESH_JWT_SECRET:X.meshJwtSecret,DECOCMS_LOCAL_MODE:String(X.localMode),DISABLE_RATE_LIMIT:String(X.disableRateLimit),STUDIO_PROVISION_SECRET_KEY:X.studioProvisionSecretKey,CONFIG_PATH:X.configPath,...Object.fromEntries(Object.entries(process.env).filter(([G])=>G.startsWith("AUTH_"))),DECO_AI_GATEWAY_ENABLED:String(X.aiGatewayEnabled),DECO_AI_GATEWAY_URL:X.aiGatewayUrl,ENABLE_DECO_IMPORT:String(X.enableDecoImport),S3_ENDPOINT:X.s3Endpoint,S3_BUCKET:X.s3Bucket,S3_REGION:X.s3Region,S3_ACCESS_KEY_ID:X.s3AccessKeyId,S3_SECRET_ACCESS_KEY:X.s3SecretAccessKey,S3_FORCE_PATH_STYLE:String(X.s3ForcePathStyle),OTEL_SERVICE_NAME:X.otelServiceName,CLICKHOUSE_URL:X.clickhouseUrl,OTEL_EXPORTER_OTLP_ENDPOINT:process.env.OTEL_EXPORTER_OTLP_ENDPOINT,OTEL_EXPORTER_OTLP_PROTOCOL:process.env.OTEL_EXPORTER_OTLP_PROTOCOL,OTEL_RESOURCE_ATTRIBUTES:process.env.OTEL_RESOURCE_ATTRIBUTES,DECO_SUPABASE_URL:X.decoSupabaseUrl,DECO_SUPABASE_SERVICE_KEY:X.decoSupabaseServiceKey,FIRECRAWL_API_KEY:X.firecrawlApiKey,STUDIO_SANDBOX_RUNNER:process.env.STUDIO_SANDBOX_RUNNER,STUDIO_SANDBOX_TEMPLATE_NAME:process.env.STUDIO_SANDBOX_TEMPLATE_NAME,STUDIO_ENV:process.env.STUDIO_ENV,STUDIO_SANDBOX_PREVIEW_URL_PATTERN:process.env.STUDIO_SANDBOX_PREVIEW_URL_PATTERN,STUDIO_SANDBOX_PREVIEW_GATEWAY_NAME:process.env.STUDIO_SANDBOX_PREVIEW_GATEWAY_NAME,STUDIO_SANDBOX_PREVIEW_GATEWAY_NAMESPACE:process.env.STUDIO_SANDBOX_PREVIEW_GATEWAY_NAMESPACE,STUDIO_SANDBOX_SENTINEL_TOKEN:process.env.STUDIO_SANDBOX_SENTINEL_TOKEN,KUBERNETES_SERVICE_HOST:process.env.KUBERNETES_SERVICE_HOST,KUBERNETES_SERVICE_PORT:process.env.KUBERNETES_SERVICE_PORT,FREESTYLE_API_KEY:process.env.FREESTYLE_API_KEY,BROWSERLESS_TOKEN:process.env.BROWSERLESS_TOKEN,NODE_EXTRA_CA_CERTS:process.env.NODE_EXTRA_CA_CERTS,DECO_CLI:"1",DECO_NO_TUI:"true",...Y}}var bj=k((Ca5)=>{Ca5.HttpAuthLocation=void 0;(function(X){X.HEADER="header",X.QUERY="query"})(Ca5.HttpAuthLocation||(Ca5.HttpAuthLocation={}));Ca5.HttpApiKeyAuthLocation=void 0;(function(X){X.HEADER="header",X.QUERY="query"})(Ca5.HttpApiKeyAuthLocation||(Ca5.HttpApiKeyAuthLocation={}));Ca5.EndpointURLScheme=void 0;(function(X){X.HTTP="http",X.HTTPS="https"})(Ca5.EndpointURLScheme||(Ca5.EndpointURLScheme={}));Ca5.AlgorithmId=void 0;(function(X){X.MD5="md5",X.CRC32="crc32",X.CRC32C="crc32c",X.SHA1="sha1",X.SHA256="sha256"})(Ca5.AlgorithmId||(Ca5.AlgorithmId={}));var ja5=(X)=>{let Y=[];if(X.sha256!==void 0)Y.push({algorithmId:()=>Ca5.AlgorithmId.SHA256,checksumConstructor:()=>X.sha256});if(X.md5!=null)Y.push({algorithmId:()=>Ca5.AlgorithmId.MD5,checksumConstructor:()=>X.md5});return{addChecksumAlgorithm(G){Y.push(G)},checksumAlgorithms(){return Y}}},Ma5=(X)=>{let Y={};return X.checksumAlgorithms().forEach((G)=>{Y[G.algorithmId()]=G.checksumConstructor()}),Y},Ra5=(X)=>{return ja5(X)},Sa5=(X)=>{return Ma5(X)};Ca5.FieldPosition=void 0;(function(X){X[X.HEADER=0]="HEADER",X[X.TRAILER=1]="TRAILER"})(Ca5.FieldPosition||(Ca5.FieldPosition={}));var ka5="__smithy_context";Ca5.IniSectionType=void 0;(function(X){X.PROFILE="profile",X.SSO_SESSION="sso-session",X.SERVICES="services"})(Ca5.IniSectionType||(Ca5.IniSectionType={}));Ca5.RequestHandlerProtocol=void 0;(function(X){X.HTTP_0_9="http/0.9",X.HTTP_1_0="http/1.0",X.TDS_8_0="tds/8.0"})(Ca5.RequestHandlerProtocol||(Ca5.RequestHandlerProtocol={}));Ca5.SMITHY_CONTEXT_KEY=ka5;Ca5.getDefaultClientConfiguration=Ra5;Ca5.resolveDefaultRuntimeConfig=Sa5});var u7=k((ua5)=>{var ba5=bj(),ya5=(X)=>{return{setHttpHandler(Y){X.httpHandler=Y},httpHandler(){return X.httpHandler},updateHttpClientConfig(Y,G){X.httpHandler?.updateHttpClientConfig(Y,G)},httpHandlerConfigs(){return X.httpHandler.httpHandlerConfigs()}}},xa5=(X)=>{return{httpHandler:X.httpHandler()}};class T16{name;kind;values;constructor({name:X,kind:Y=ba5.FieldPosition.HEADER,values:G=[]}){this.name=X,this.kind=Y,this.values=G}add(X){this.values.push(X)}set(X){this.values=X}remove(X){this.values=this.values.filter((Y)=>Y!==X)}toString(){return this.values.map((X)=>X.includes(",")||X.includes(" ")?`"${X}"`:X).join(", ")}get(){return this.values}}class I16{entries={};encoding;constructor({fields:X=[],encoding:Y="utf-8"}){X.forEach(this.setField.bind(this)),this.encoding=Y}setField(X){this.entries[X.name.toLowerCase()]=X}getField(X){return this.entries[X.toLowerCase()]}removeField(X){delete this.entries[X.toLowerCase()]}getByType(X){return Object.values(this.entries).filter((Y)=>Y.kind===X)}}class nA1{method;protocol;hostname;port;path;query;headers;username;password;fragment;body;constructor(X){this.method=X.method||"GET",this.hostname=X.hostname||"localhost",this.port=X.port,this.query=X.query||{},this.headers=X.headers||{},this.body=X.body,this.protocol=X.protocol?X.protocol.slice(-1)!==":"?`${X.protocol}:`:X.protocol:"https:",this.path=X.path?X.path.charAt(0)!=="/"?`/${X.path}`:X.path:"/",this.username=X.username,this.password=X.password,this.fragment=X.fragment}static clone(X){let Y=new nA1({...X,headers:{...X.headers}});if(Y.query)Y.query=ha5(Y.query);return Y}static isInstance(X){if(!X)return!1;let Y=X;return"method"in Y&&"protocol"in Y&&"hostname"in Y&&"path"in Y&&typeof Y.query==="object"&&typeof Y.headers==="object"}clone(){return nA1.clone(this)}}function ha5(X){return Object.keys(X).reduce((Y,G)=>{let Q=X[G];return{...Y,[G]:Array.isArray(Q)?[...Q]:Q}},{})}class V16{statusCode;reason;headers;body;constructor(X){this.statusCode=X.statusCode,this.reason=X.reason,this.headers=X.headers||{},this.body=X.body}static isInstance(X){if(!X)return!1;let Y=X;return typeof Y.statusCode==="number"&&typeof Y.headers==="object"}}function ga5(X){return/^[a-z0-9][a-z0-9\.\-]*[a-z0-9]$/.test(X)}ua5.Field=T16;ua5.Fields=I16;ua5.HttpRequest=nA1;ua5.HttpResponse=V16;ua5.getHttpHandlerExtensionConfiguration=ya5;ua5.isValidHostname=ga5;ua5.resolveHttpHandlerRuntimeConfig=xa5});function ta5(X){return(Y)=>async(G)=>{let{request:Q}=G;if(X.expectContinueHeader!==!1&&j16.HttpRequest.isInstance(Q)&&Q.body&&X.runtime==="node"&&X.requestHandler?.constructor?.name!=="FetchHttpHandler"){let J=!0;if(typeof X.expectContinueHeader==="number")try{J=(Number(Q.headers?.["content-length"])??X.bodyLengthChecker?.(Q.body)??1/0)>=X.expectContinueHeader}catch(W){}else J=!!X.expectContinueHeader;if(J)Q.headers.Expect="100-continue"}return Y({...G,request:Q})}}var j16,aa5,M16=(X)=>({applyToStack:(Y)=>{Y.add(ta5(X),aa5)}});var R16=D(()=>{j16=Y1(u7(),1);aa5={step:"build",tags:["SET_EXPECT_HEADER","EXPECT_HEADER"],name:"addExpectContinueMiddleware",override:!0}});var wH,tA1,yj,aA1,E9,S16,bX1;var LH=D(()=>{wH={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},tA1=wH.WHEN_SUPPORTED,yj={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},aA1=wH.WHEN_SUPPORTED;(function(X){X.MD5="MD5",X.CRC32="CRC32",X.CRC32C="CRC32C",X.CRC64NVME="CRC64NVME",X.SHA1="SHA1",X.SHA256="SHA256"})(E9||(E9={}));(function(X){X.HEADER="header",X.TRAILER="trailer"})(S16||(S16={}));bX1=E9.CRC32});var kq,Ya=(X,Y,G,Q)=>{if(!(Y in X))return;let J=X[Y].toUpperCase();if(!Object.values(G).includes(J))throw TypeError(`Cannot load ${Q} '${Y}'. Expected one of ${Object.values(G)}, got '${X[Y]}'.`);return J};var pN0=D(()=>{(function(X){X.ENV="env",X.CONFIG="shared config entry"})(kq||(kq={}))});var ra5="AWS_REQUEST_CHECKSUM_CALCULATION",oa5="request_checksum_calculation",k16;var C16=D(()=>{LH();pN0();k16={environmentVariableSelector:(X)=>Ya(X,ra5,wH,kq.ENV),configFileSelector:(X)=>Ya(X,oa5,wH,kq.CONFIG),default:tA1}});var sa5="AWS_RESPONSE_CHECKSUM_VALIDATION",ea5="response_checksum_validation",v16;var _16=D(()=>{LH();pN0();v16={environmentVariableSelector:(X)=>Ya(X,sa5,yj,kq.ENV),configFileSelector:(X)=>Ya(X,ea5,yj,kq.CONFIG),default:aA1}});var tN0=k((Hr5)=>{var Xr5=["AuthFailure","InvalidSignatureException","RequestExpired","RequestInTheFuture","RequestTimeTooSkewed","SignatureDoesNotMatch"],Yr5=["BandwidthLimitExceeded","EC2ThrottledException","LimitExceededException","PriorRequestNotComplete","ProvisionedThroughputExceededException","RequestLimitExceeded","RequestThrottled","RequestThrottledException","SlowDown","ThrottledException","Throttling","ThrottlingException","TooManyRequestsException","TransactionInProgressException"],Gr5=["TimeoutError","RequestTimeout","RequestTimeoutException"],Qr5=[500,502,503,504],Jr5=["ECONNRESET","ECONNREFUSED","EPIPE","ETIMEDOUT"],Zr5=["EHOSTUNREACH","ENETUNREACH","ENOTFOUND"],f16=(X)=>X?.$retryable!==void 0,Wr5=(X)=>Xr5.includes(X.name),b16=(X)=>X.$metadata?.clockSkewCorrected,y16=(X)=>{let Y=new Set(["Failed to fetch","NetworkError when attempting to fetch resource","The Internet connection appears to be offline","Load failed","Network request failed"]);if(!(X&&X instanceof TypeError))return!1;return Y.has(X.message)},$r5=(X)=>X.$metadata?.httpStatusCode===429||Yr5.includes(X.name)||X.$retryable?.throttling==!0,nN0=(X,Y=0)=>f16(X)||b16(X)||X.name==="InvalidSignatureException"&&X.message?.includes("Signature expired")||Gr5.includes(X.name)||Jr5.includes(X?.code||"")||Zr5.includes(X?.code||"")||Qr5.includes(X.$metadata?.httpStatusCode||0)||y16(X)||x16(X)||X.cause!==void 0&&Y<=10&&nN0(X.cause,Y+1),Kr5=(X)=>{if(X.$metadata?.httpStatusCode!==void 0){let Y=X.$metadata.httpStatusCode;if(500<=Y&&Y<=599&&!nN0(X))return!0;return!1}return!1};function x16(X){return X.code==="ERR_HTTP2_STREAM_ERROR"&&X.message.includes("NGHTTP2_REFUSED_STREAM")}Hr5.isBrowserNetworkError=y16;Hr5.isClockSkewCorrectedError=b16;Hr5.isClockSkewError=Wr5;Hr5.isNodeJsHttp2TransientError=x16;Hr5.isRetryableByTrait=f16;Hr5.isServerError=Kr5;Hr5.isThrottlingError=$r5;Hr5.isTransientError=nN0});var Dw=k((jr5)=>{var Lr5=tN0();jr5.RETRY_MODES=void 0;(function(X){X.STANDARD="standard",X.ADAPTIVE="adaptive"})(jr5.RETRY_MODES||(jr5.RETRY_MODES={}));var oA1=3,Er5=jr5.RETRY_MODES.STANDARD;class sA1{static setTimeoutFn=setTimeout;beta;minCapacity;minFillRate;scaleConstant;smooth;enabled=!1;availableTokens=0;lastMaxRate=0;measuredTxRate=0;requestCount=0;fillRate;lastThrottleTime;lastTimestamp=0;lastTxRateBucket;maxCapacity;timeWindow=0;constructor(X){this.beta=X?.beta??0.7,this.minCapacity=X?.minCapacity??1,this.minFillRate=X?.minFillRate??0.5,this.scaleConstant=X?.scaleConstant??0.4,this.smooth=X?.smooth??0.8,this.lastThrottleTime=this.getCurrentTimeInSeconds(),this.lastTxRateBucket=Math.floor(this.getCurrentTimeInSeconds()),this.fillRate=this.minFillRate,this.maxCapacity=this.minCapacity}async getSendToken(){return this.acquireTokenBucket(1)}updateClientSendingRate(X){let Y;this.updateMeasuredRate();let G=X;if(G?.errorType==="THROTTLING"||Lr5.isThrottlingError(G?.error??X)){let W=!this.enabled?this.measuredTxRate:Math.min(this.measuredTxRate,this.fillRate);this.lastMaxRate=W,this.calculateTimeWindow(),this.lastThrottleTime=this.getCurrentTimeInSeconds(),Y=this.cubicThrottle(W),this.enableTokenBucket()}else this.calculateTimeWindow(),Y=this.cubicSuccess(this.getCurrentTimeInSeconds());let J=Math.min(Y,2*this.measuredTxRate);this.updateTokenBucketRate(J)}getCurrentTimeInSeconds(){return Date.now()/1000}async acquireTokenBucket(X){if(!this.enabled)return;if(this.refillTokenBucket(),X>this.availableTokens){let Y=(X-this.availableTokens)/this.fillRate*1000;await new Promise((G)=>sA1.setTimeoutFn(G,Y))}this.availableTokens=this.availableTokens-X}refillTokenBucket(){let X=this.getCurrentTimeInSeconds();if(!this.lastTimestamp){this.lastTimestamp=X;return}let Y=(X-this.lastTimestamp)*this.fillRate;this.availableTokens=Math.min(this.maxCapacity,this.availableTokens+Y),this.lastTimestamp=X}calculateTimeWindow(){this.timeWindow=this.getPrecise(Math.pow(this.lastMaxRate*(1-this.beta)/this.scaleConstant,0.3333333333333333))}cubicThrottle(X){return this.getPrecise(X*this.beta)}cubicSuccess(X){return this.getPrecise(this.scaleConstant*Math.pow(X-this.lastThrottleTime-this.timeWindow,3)+this.lastMaxRate)}enableTokenBucket(){this.enabled=!0}updateTokenBucketRate(X){this.refillTokenBucket(),this.fillRate=Math.max(X,this.minFillRate),this.maxCapacity=Math.max(X,this.minCapacity),this.availableTokens=Math.min(this.availableTokens,this.maxCapacity)}updateMeasuredRate(){let X=this.getCurrentTimeInSeconds(),Y=Math.floor(X*2)/2;if(this.requestCount++,Y>this.lastTxRateBucket){let G=this.requestCount/(Y-this.lastTxRateBucket);this.measuredTxRate=this.getPrecise(G*this.smooth+this.measuredTxRate*(1-this.smooth)),this.requestCount=0,this.lastTxRateBucket=Y}}getPrecise(X){return parseFloat(X.toFixed(8))}}var Pr5=100,oN0=20000,qr5=500,aN0=500,Ar5=5,Tr5=10,h16=1,Ir5="amz-sdk-invocation-id",Vr5="amz-sdk-request";class eQ{static v2026=typeof process<"u"&&process.env?.SMITHY_NEW_RETRIES_2026==="true";static delay(){return eQ.v2026?50:100}static throttlingDelay(){return eQ.v2026?1000:500}static cost(){return eQ.v2026?14:5}static throttlingCost(){return eQ.v2026?5:10}static modifiedCostType(){return eQ.v2026?"THROTTLING":"TRANSIENT"}}class g16{x=eQ.delay();computeNextBackoffDelay(X){let Y=Math.random(),G=2,Q=Y*Math.min(this.x*2**X,oN0);return Math.floor(Q)}setDelayBase(X){this.x=X}}class rN0{delay;count;cost;longPoll;constructor(X,Y,G,Q){this.delay=X,this.count=Y,this.cost=G,this.longPoll=Q}getRetryCount(){return this.count}getRetryDelay(){return Math.min(oN0,this.delay)}getRetryCost(){return this.cost}isLongPoll(){return this.longPoll}}var rA1={incompatible:1,attempts:2,capacity:3};class yX1{mode=jr5.RETRY_MODES.STANDARD;capacity=aN0;retryBackoffStrategy;maxAttemptsProvider;baseDelay;constructor(X){if(typeof X==="number")this.maxAttemptsProvider=async()=>X;else if(typeof X==="function")this.maxAttemptsProvider=X;else if(X&&typeof X==="object")this.maxAttemptsProvider=async()=>X.maxAttempts,this.baseDelay=X.baseDelay,this.retryBackoffStrategy=X.backoff;this.maxAttemptsProvider??=async()=>oA1,this.baseDelay??=eQ.delay(),this.retryBackoffStrategy??=new g16}async acquireInitialRetryToken(X){return new rN0(eQ.delay(),0,void 0,eQ.v2026&&X.includes(":longpoll"))}async refreshRetryTokenForRetry(X,Y){let G=await this.getMaxAttempts(),Q=this.retryCode(X,Y,G),J=Q===0,W=X.isLongPoll?.();if(J||W){let Z=Y.errorType;this.retryBackoffStrategy.setDelayBase(Z==="THROTTLING"?eQ.throttlingDelay():this.baseDelay);let $=this.retryBackoffStrategy.computeNextBackoffDelay(X.getRetryCount()),K=$;if(Y.retryAfterHint instanceof Date)K=Math.max($,Math.min(Y.retryAfterHint.getTime()-Date.now(),$+5000));if(!J)throw Object.assign(Error("No retry token available"),{$backoff:eQ.v2026&&Q===rA1.capacity&&W?K:0});else{let H=this.getCapacityCost(Z);return this.capacity-=H,new rN0(K,X.getRetryCount()+1,H,X.isLongPoll?.()??!1)}}throw Error("No retry token available")}recordSuccess(X){this.capacity=Math.min(aN0,this.capacity+(X.getRetryCost()??h16))}getCapacity(){return this.capacity}async maxAttempts(){return this.maxAttemptsProvider()}async getMaxAttempts(){try{return await this.maxAttemptsProvider()}catch(X){return console.warn(`Max attempts provider could not resolve. Using default of ${oA1}`),oA1}}retryCode(X,Y,G){let Q=X.getRetryCount()+1,J=this.isRetryableError(Y.errorType)?0:rA1.incompatible,W=Q<G?0:rA1.attempts,Z=this.capacity>=this.getCapacityCost(Y.errorType)?0:rA1.capacity;return J||W||Z}getCapacityCost(X){return X===eQ.modifiedCostType()?eQ.throttlingCost():eQ.cost()}isRetryableError(X){return X==="THROTTLING"||X==="TRANSIENT"}}class u16{mode=jr5.RETRY_MODES.ADAPTIVE;rateLimiter;standardRetryStrategy;constructor(X,Y){let{rateLimiter:G}=Y??{};this.rateLimiter=G??new sA1,this.standardRetryStrategy=Y?new yX1({maxAttempts:typeof X==="number"?X:3,...Y}):new yX1(X)}async acquireInitialRetryToken(X){return await this.rateLimiter.getSendToken(),this.standardRetryStrategy.acquireInitialRetryToken(X)}async refreshRetryTokenForRetry(X,Y){return this.rateLimiter.updateClientSendingRate(Y),this.standardRetryStrategy.refreshRetryTokenForRetry(X,Y)}recordSuccess(X){this.rateLimiter.updateClientSendingRate({}),this.standardRetryStrategy.recordSuccess(X)}async maxAttemptsProvider(){return this.standardRetryStrategy.maxAttempts()}}class l16 extends yX1{computeNextBackoffDelay;constructor(X,Y=eQ.delay()){super(typeof X==="function"?X:async()=>X);if(typeof Y==="number")this.computeNextBackoffDelay=()=>Y;else this.computeNextBackoffDelay=Y}async refreshRetryTokenForRetry(X,Y){let G=await super.refreshRetryTokenForRetry(X,Y);return G.getRetryDelay=()=>this.computeNextBackoffDelay(G.getRetryCount()),G}}jr5.AdaptiveRetryStrategy=u16;jr5.ConfiguredRetryStrategy=l16;jr5.DEFAULT_MAX_ATTEMPTS=oA1;jr5.DEFAULT_RETRY_DELAY_BASE=Pr5;jr5.DEFAULT_RETRY_MODE=Er5;jr5.DefaultRateLimiter=sA1;jr5.INITIAL_RETRY_TOKENS=aN0;jr5.INVOCATION_ID_HEADER=Ir5;jr5.MAXIMUM_RETRY_DELAY=oN0;jr5.NO_RETRY_INCREMENT=h16;jr5.REQUEST_HEADER=Vr5;jr5.RETRY_COST=Ar5;jr5.Retry=eQ;jr5.StandardRetryStrategy=yX1;jr5.THROTTLING_RETRY_DELAY_BASE=qr5;jr5.TIMEOUT_RETRY_COST=Tr5});var WX=k((or5)=>{var dr5=Dw(),sN0={warningEmitted:!1},cr5=(X)=>{if(X&&!sN0.warningEmitted&&parseInt(X.substring(1,X.indexOf(".")))<20)sN0.warningEmitted=!0,process.emitWarning(`NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will
|
|
1647
1647
|
no longer support Node.js ${X} in January 2026.
|
|
1648
1648
|
|
|
1649
1649
|
To continue receiving updates to AWS services, bug fixes, and security
|
|
@@ -7621,11 +7621,13 @@ process.on("SIGTERM", () => {
|
|
|
7621
7621
|
const branch = store.read()?.git?.repository?.branch;
|
|
7622
7622
|
if (branch) {
|
|
7623
7623
|
try {
|
|
7624
|
-
gitSync(["add", "-A"], {
|
|
7625
|
-
|
|
7624
|
+
gitSync(["-c", "safe.directory=*", "add", "-A"], {
|
|
7625
|
+
cwd: bootConfig.repoDir
|
|
7626
|
+
});
|
|
7627
|
+
gitSync(["-c", "safe.directory=*", "commit", "--allow-empty", "-m", "autosave"], { cwd: bootConfig.repoDir });
|
|
7628
|
+
gitSync(["-c", "safe.directory=*", "push", "origin", branch], {
|
|
7626
7629
|
cwd: bootConfig.repoDir
|
|
7627
7630
|
});
|
|
7628
|
-
gitSync(["push", "origin", branch], { cwd: bootConfig.repoDir });
|
|
7629
7631
|
} catch {}
|
|
7630
7632
|
}
|
|
7631
7633
|
try {
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
type ControlStringType = 'osc' | 'dcs' | 'pm' | 'apc' | 'sos';
|
|
2
|
+
type CsiToken = {
|
|
3
|
+
readonly type: 'csi';
|
|
4
|
+
readonly value: string;
|
|
5
|
+
readonly parameterString: string;
|
|
6
|
+
readonly intermediateString: string;
|
|
7
|
+
readonly finalCharacter: string;
|
|
8
|
+
};
|
|
9
|
+
type EscToken = {
|
|
10
|
+
readonly type: 'esc';
|
|
11
|
+
readonly value: string;
|
|
12
|
+
readonly intermediateString: string;
|
|
13
|
+
readonly finalCharacter: string;
|
|
14
|
+
};
|
|
15
|
+
type ControlStringToken = {
|
|
16
|
+
readonly type: ControlStringType;
|
|
17
|
+
readonly value: string;
|
|
18
|
+
};
|
|
19
|
+
type TextToken = {
|
|
20
|
+
readonly type: 'text';
|
|
21
|
+
readonly value: string;
|
|
22
|
+
};
|
|
23
|
+
type StToken = {
|
|
24
|
+
readonly type: 'st';
|
|
25
|
+
readonly value: string;
|
|
26
|
+
};
|
|
27
|
+
type C1Token = {
|
|
28
|
+
readonly type: 'c1';
|
|
29
|
+
readonly value: string;
|
|
30
|
+
};
|
|
31
|
+
type InvalidToken = {
|
|
32
|
+
readonly type: 'invalid';
|
|
33
|
+
readonly value: string;
|
|
34
|
+
};
|
|
35
|
+
export type AnsiToken = TextToken | CsiToken | EscToken | ControlStringToken | StToken | C1Token | InvalidToken;
|
|
36
|
+
export declare const hasAnsiControlCharacters: (text: string) => boolean;
|
|
37
|
+
export declare const tokenizeAnsi: (text: string) => AnsiToken[];
|
|
38
|
+
export {};
|
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
const bellCharacter = '\u0007';
|
|
2
|
+
const escapeCharacter = '\u001B';
|
|
3
|
+
const stringTerminatorCharacter = '\u009C';
|
|
4
|
+
const csiCharacter = '\u009B';
|
|
5
|
+
const oscCharacter = '\u009D';
|
|
6
|
+
const dcsCharacter = '\u0090';
|
|
7
|
+
const pmCharacter = '\u009E';
|
|
8
|
+
const apcCharacter = '\u009F';
|
|
9
|
+
const sosCharacter = '\u0098';
|
|
10
|
+
const isCsiParameterCharacter = (character) => {
|
|
11
|
+
const codePoint = character.codePointAt(0);
|
|
12
|
+
return codePoint !== undefined && codePoint >= 0x30 && codePoint <= 0x3f;
|
|
13
|
+
};
|
|
14
|
+
const isCsiIntermediateCharacter = (character) => {
|
|
15
|
+
const codePoint = character.codePointAt(0);
|
|
16
|
+
return codePoint !== undefined && codePoint >= 0x20 && codePoint <= 0x2f;
|
|
17
|
+
};
|
|
18
|
+
const isCsiFinalCharacter = (character) => {
|
|
19
|
+
const codePoint = character.codePointAt(0);
|
|
20
|
+
return codePoint !== undefined && codePoint >= 0x40 && codePoint <= 0x7e;
|
|
21
|
+
};
|
|
22
|
+
const isEscapeIntermediateCharacter = (character) => {
|
|
23
|
+
const codePoint = character.codePointAt(0);
|
|
24
|
+
return codePoint !== undefined && codePoint >= 0x20 && codePoint <= 0x2f;
|
|
25
|
+
};
|
|
26
|
+
const isEscapeFinalCharacter = (character) => {
|
|
27
|
+
const codePoint = character.codePointAt(0);
|
|
28
|
+
return codePoint !== undefined && codePoint >= 0x30 && codePoint <= 0x7e;
|
|
29
|
+
};
|
|
30
|
+
const isC1ControlCharacter = (character) => {
|
|
31
|
+
const codePoint = character.codePointAt(0);
|
|
32
|
+
return codePoint !== undefined && codePoint >= 0x80 && codePoint <= 0x9f;
|
|
33
|
+
};
|
|
34
|
+
// Standards references:
|
|
35
|
+
// ECMA-48 control functions and CSI byte classes: https://ecma-international.org/publications-and-standards/standards/ecma-48/
|
|
36
|
+
// xterm CSI parameter/intermediate/final format notes: https://invisible-island.net/xterm/ecma-48-parameter-format.html
|
|
37
|
+
// xterm/OSC BEL termination behavior: https://davidrg.github.io/ckwin/dev/ctlseqs.html
|
|
38
|
+
const readCsiSequence = (text, fromIndex) => {
|
|
39
|
+
let index = fromIndex;
|
|
40
|
+
while (index < text.length) {
|
|
41
|
+
const character = text[index];
|
|
42
|
+
if (!isCsiParameterCharacter(character)) {
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
index++;
|
|
46
|
+
}
|
|
47
|
+
const parameterString = text.slice(fromIndex, index);
|
|
48
|
+
const intermediateStartIndex = index;
|
|
49
|
+
while (index < text.length) {
|
|
50
|
+
const character = text[index];
|
|
51
|
+
if (!isCsiIntermediateCharacter(character)) {
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
index++;
|
|
55
|
+
}
|
|
56
|
+
const intermediateString = text.slice(intermediateStartIndex, index);
|
|
57
|
+
const finalCharacter = text[index];
|
|
58
|
+
if (finalCharacter === undefined || !isCsiFinalCharacter(finalCharacter)) {
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
endIndex: index + 1,
|
|
63
|
+
parameterString,
|
|
64
|
+
intermediateString,
|
|
65
|
+
finalCharacter,
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
const findControlStringTerminatorIndex = (text, fromIndex, allowBellTerminator) => {
|
|
69
|
+
for (let index = fromIndex; index < text.length; index++) {
|
|
70
|
+
const character = text[index];
|
|
71
|
+
if (allowBellTerminator && character === bellCharacter) {
|
|
72
|
+
return index + 1;
|
|
73
|
+
}
|
|
74
|
+
if (character === stringTerminatorCharacter) {
|
|
75
|
+
return index + 1;
|
|
76
|
+
}
|
|
77
|
+
if (character === escapeCharacter) {
|
|
78
|
+
const followingCharacter = text[index + 1];
|
|
79
|
+
// Tmux escapes ESC bytes in payload as ESC ESC.
|
|
80
|
+
if (followingCharacter === escapeCharacter) {
|
|
81
|
+
index++;
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
if (followingCharacter === '\\') {
|
|
85
|
+
return index + 2;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return undefined;
|
|
90
|
+
};
|
|
91
|
+
const readEscapeSequence = (text, fromIndex) => {
|
|
92
|
+
let index = fromIndex;
|
|
93
|
+
while (index < text.length) {
|
|
94
|
+
const character = text[index];
|
|
95
|
+
if (!isEscapeIntermediateCharacter(character)) {
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
index++;
|
|
99
|
+
}
|
|
100
|
+
const intermediateString = text.slice(fromIndex, index);
|
|
101
|
+
const finalCharacter = text[index];
|
|
102
|
+
if (finalCharacter === undefined || !isEscapeFinalCharacter(finalCharacter)) {
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
endIndex: index + 1,
|
|
107
|
+
intermediateString,
|
|
108
|
+
finalCharacter,
|
|
109
|
+
};
|
|
110
|
+
};
|
|
111
|
+
// Centralize control-string rules so ESC and C1 paths do not diverge.
|
|
112
|
+
const getControlStringFromEscapeIntroducer = (character) => {
|
|
113
|
+
switch (character) {
|
|
114
|
+
case ']': {
|
|
115
|
+
return { type: 'osc', allowBellTerminator: true };
|
|
116
|
+
}
|
|
117
|
+
case 'P': {
|
|
118
|
+
return { type: 'dcs', allowBellTerminator: false };
|
|
119
|
+
}
|
|
120
|
+
case '^': {
|
|
121
|
+
return { type: 'pm', allowBellTerminator: false };
|
|
122
|
+
}
|
|
123
|
+
case '_': {
|
|
124
|
+
return { type: 'apc', allowBellTerminator: false };
|
|
125
|
+
}
|
|
126
|
+
case 'X': {
|
|
127
|
+
return { type: 'sos', allowBellTerminator: false };
|
|
128
|
+
}
|
|
129
|
+
default: {
|
|
130
|
+
return undefined;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
const getControlStringFromC1Introducer = (character) => {
|
|
135
|
+
switch (character) {
|
|
136
|
+
case oscCharacter: {
|
|
137
|
+
return { type: 'osc', allowBellTerminator: true };
|
|
138
|
+
}
|
|
139
|
+
case dcsCharacter: {
|
|
140
|
+
return { type: 'dcs', allowBellTerminator: false };
|
|
141
|
+
}
|
|
142
|
+
case pmCharacter: {
|
|
143
|
+
return { type: 'pm', allowBellTerminator: false };
|
|
144
|
+
}
|
|
145
|
+
case apcCharacter: {
|
|
146
|
+
return { type: 'apc', allowBellTerminator: false };
|
|
147
|
+
}
|
|
148
|
+
case sosCharacter: {
|
|
149
|
+
return { type: 'sos', allowBellTerminator: false };
|
|
150
|
+
}
|
|
151
|
+
default: {
|
|
152
|
+
return undefined;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
export const hasAnsiControlCharacters = (text) => {
|
|
157
|
+
if (text.includes(escapeCharacter)) {
|
|
158
|
+
return true;
|
|
159
|
+
}
|
|
160
|
+
for (const character of text) {
|
|
161
|
+
if (isC1ControlCharacter(character)) {
|
|
162
|
+
return true;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return false;
|
|
166
|
+
};
|
|
167
|
+
const malformedFromIndex = (tokens, text, textStartIndex, fromIndex) => {
|
|
168
|
+
if (fromIndex > textStartIndex) {
|
|
169
|
+
tokens.push({ type: 'text', value: text.slice(textStartIndex, fromIndex) });
|
|
170
|
+
}
|
|
171
|
+
// Treat the remainder as invalid so callers can drop it as one unsafe unit.
|
|
172
|
+
tokens.push({ type: 'invalid', value: text.slice(fromIndex) });
|
|
173
|
+
return tokens;
|
|
174
|
+
};
|
|
175
|
+
export const tokenizeAnsi = (text) => {
|
|
176
|
+
if (!hasAnsiControlCharacters(text)) {
|
|
177
|
+
return [{ type: 'text', value: text }];
|
|
178
|
+
}
|
|
179
|
+
const tokens = [];
|
|
180
|
+
let textStartIndex = 0;
|
|
181
|
+
for (let index = 0; index < text.length;) {
|
|
182
|
+
const character = text[index];
|
|
183
|
+
if (character === undefined) {
|
|
184
|
+
break;
|
|
185
|
+
}
|
|
186
|
+
if (character === escapeCharacter) {
|
|
187
|
+
const followingCharacter = text[index + 1];
|
|
188
|
+
if (followingCharacter === undefined) {
|
|
189
|
+
return malformedFromIndex(tokens, text, textStartIndex, index);
|
|
190
|
+
}
|
|
191
|
+
if (followingCharacter === '[') {
|
|
192
|
+
const csiSequence = readCsiSequence(text, index + 2);
|
|
193
|
+
if (csiSequence === undefined) {
|
|
194
|
+
return malformedFromIndex(tokens, text, textStartIndex, index);
|
|
195
|
+
}
|
|
196
|
+
if (index > textStartIndex) {
|
|
197
|
+
tokens.push({ type: 'text', value: text.slice(textStartIndex, index) });
|
|
198
|
+
}
|
|
199
|
+
tokens.push({
|
|
200
|
+
type: 'csi',
|
|
201
|
+
value: text.slice(index, csiSequence.endIndex),
|
|
202
|
+
parameterString: csiSequence.parameterString,
|
|
203
|
+
intermediateString: csiSequence.intermediateString,
|
|
204
|
+
finalCharacter: csiSequence.finalCharacter,
|
|
205
|
+
});
|
|
206
|
+
index = csiSequence.endIndex;
|
|
207
|
+
textStartIndex = index;
|
|
208
|
+
continue;
|
|
209
|
+
}
|
|
210
|
+
const escapeControlString = getControlStringFromEscapeIntroducer(followingCharacter);
|
|
211
|
+
if (escapeControlString !== undefined) {
|
|
212
|
+
const controlStringTerminatorIndex = findControlStringTerminatorIndex(text, index + 2, escapeControlString.allowBellTerminator);
|
|
213
|
+
if (controlStringTerminatorIndex === undefined) {
|
|
214
|
+
return malformedFromIndex(tokens, text, textStartIndex, index);
|
|
215
|
+
}
|
|
216
|
+
if (index > textStartIndex) {
|
|
217
|
+
tokens.push({ type: 'text', value: text.slice(textStartIndex, index) });
|
|
218
|
+
}
|
|
219
|
+
tokens.push({
|
|
220
|
+
type: escapeControlString.type,
|
|
221
|
+
value: text.slice(index, controlStringTerminatorIndex),
|
|
222
|
+
});
|
|
223
|
+
index = controlStringTerminatorIndex;
|
|
224
|
+
textStartIndex = index;
|
|
225
|
+
continue;
|
|
226
|
+
}
|
|
227
|
+
const escapeSequence = readEscapeSequence(text, index + 1);
|
|
228
|
+
if (escapeSequence === undefined) {
|
|
229
|
+
// Incomplete escape sequences with intermediates are malformed control strings.
|
|
230
|
+
if (isEscapeIntermediateCharacter(followingCharacter)) {
|
|
231
|
+
return malformedFromIndex(tokens, text, textStartIndex, index);
|
|
232
|
+
}
|
|
233
|
+
if (index > textStartIndex) {
|
|
234
|
+
tokens.push({ type: 'text', value: text.slice(textStartIndex, index) });
|
|
235
|
+
}
|
|
236
|
+
// Ignore lone ESC and continue tokenizing the rest.
|
|
237
|
+
index++;
|
|
238
|
+
textStartIndex = index;
|
|
239
|
+
continue;
|
|
240
|
+
}
|
|
241
|
+
if (index > textStartIndex) {
|
|
242
|
+
tokens.push({ type: 'text', value: text.slice(textStartIndex, index) });
|
|
243
|
+
}
|
|
244
|
+
tokens.push({
|
|
245
|
+
type: 'esc',
|
|
246
|
+
value: text.slice(index, escapeSequence.endIndex),
|
|
247
|
+
intermediateString: escapeSequence.intermediateString,
|
|
248
|
+
finalCharacter: escapeSequence.finalCharacter,
|
|
249
|
+
});
|
|
250
|
+
index = escapeSequence.endIndex;
|
|
251
|
+
textStartIndex = index;
|
|
252
|
+
continue;
|
|
253
|
+
}
|
|
254
|
+
if (character === csiCharacter) {
|
|
255
|
+
const csiSequence = readCsiSequence(text, index + 1);
|
|
256
|
+
if (csiSequence === undefined) {
|
|
257
|
+
return malformedFromIndex(tokens, text, textStartIndex, index);
|
|
258
|
+
}
|
|
259
|
+
if (index > textStartIndex) {
|
|
260
|
+
tokens.push({ type: 'text', value: text.slice(textStartIndex, index) });
|
|
261
|
+
}
|
|
262
|
+
tokens.push({
|
|
263
|
+
type: 'csi',
|
|
264
|
+
value: text.slice(index, csiSequence.endIndex),
|
|
265
|
+
parameterString: csiSequence.parameterString,
|
|
266
|
+
intermediateString: csiSequence.intermediateString,
|
|
267
|
+
finalCharacter: csiSequence.finalCharacter,
|
|
268
|
+
});
|
|
269
|
+
index = csiSequence.endIndex;
|
|
270
|
+
textStartIndex = index;
|
|
271
|
+
continue;
|
|
272
|
+
}
|
|
273
|
+
const c1ControlString = getControlStringFromC1Introducer(character);
|
|
274
|
+
if (c1ControlString !== undefined) {
|
|
275
|
+
const controlStringTerminatorIndex = findControlStringTerminatorIndex(text, index + 1, c1ControlString.allowBellTerminator);
|
|
276
|
+
if (controlStringTerminatorIndex === undefined) {
|
|
277
|
+
return malformedFromIndex(tokens, text, textStartIndex, index);
|
|
278
|
+
}
|
|
279
|
+
if (index > textStartIndex) {
|
|
280
|
+
tokens.push({ type: 'text', value: text.slice(textStartIndex, index) });
|
|
281
|
+
}
|
|
282
|
+
tokens.push({
|
|
283
|
+
type: c1ControlString.type,
|
|
284
|
+
value: text.slice(index, controlStringTerminatorIndex),
|
|
285
|
+
});
|
|
286
|
+
index = controlStringTerminatorIndex;
|
|
287
|
+
textStartIndex = index;
|
|
288
|
+
continue;
|
|
289
|
+
}
|
|
290
|
+
if (character === stringTerminatorCharacter) {
|
|
291
|
+
if (index > textStartIndex) {
|
|
292
|
+
tokens.push({ type: 'text', value: text.slice(textStartIndex, index) });
|
|
293
|
+
}
|
|
294
|
+
tokens.push({ type: 'st', value: character });
|
|
295
|
+
index++;
|
|
296
|
+
textStartIndex = index;
|
|
297
|
+
continue;
|
|
298
|
+
}
|
|
299
|
+
// Strip remaining C1 controls as standalone functions.
|
|
300
|
+
if (isC1ControlCharacter(character)) {
|
|
301
|
+
if (index > textStartIndex) {
|
|
302
|
+
tokens.push({ type: 'text', value: text.slice(textStartIndex, index) });
|
|
303
|
+
}
|
|
304
|
+
tokens.push({ type: 'c1', value: character });
|
|
305
|
+
index++;
|
|
306
|
+
textStartIndex = index;
|
|
307
|
+
continue;
|
|
308
|
+
}
|
|
309
|
+
index++;
|
|
310
|
+
}
|
|
311
|
+
if (textStartIndex < text.length) {
|
|
312
|
+
tokens.push({ type: 'text', value: text.slice(textStartIndex) });
|
|
313
|
+
}
|
|
314
|
+
return tokens;
|
|
315
|
+
};
|
|
316
|
+
//# sourceMappingURL=ansi-tokenizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ansi-tokenizer.js","sourceRoot":"","sources":["../src/ansi-tokenizer.ts"],"names":[],"mappings":"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"}
|