@belonguniverseai/react-sdk 0.1.0
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/README.md +47 -0
- package/dist/api/agent-grants.d.ts +61 -0
- package/dist/api/api-context.d.ts +9 -0
- package/dist/api/client.d.ts +2053 -0
- package/dist/api/mutations.d.ts +3 -0
- package/dist/api/queries.d.ts +21 -0
- package/dist/api/query-keys.d.ts +13 -0
- package/dist/api/report-client-error.d.ts +23 -0
- package/dist/api/skills.d.ts +23 -0
- package/dist/api/workspace-files.d.ts +9 -0
- package/dist/app/BelongDock.d.ts +29 -0
- package/dist/app/VoiceOverlay.d.ts +18 -0
- package/dist/app/providers.d.ts +12 -0
- package/dist/app/router.d.ts +2 -0
- package/dist/browser/control-channel.d.ts +29 -0
- package/dist/browser/dom-bridge.d.ts +6 -0
- package/dist/browser/spa-navigate.d.ts +87 -0
- package/dist/component/BelongWidget.d.ts +27 -0
- package/dist/component/abap-BqLfTM3_.js +9 -0
- package/dist/component/abap-Dosx9LfS.js +9 -0
- package/dist/component/actionscript-3-CFt6EqSB.js +9 -0
- package/dist/component/actionscript-3-CShGOdtT.js +9 -0
- package/dist/component/ada-8tCnwMXx.js +9 -0
- package/dist/component/ada-DaqFF2jd.js +9 -0
- package/dist/component/andromeeda-BxBtQ0rC.js +7 -0
- package/dist/component/andromeeda-Dx5fm3r-.js +7 -0
- package/dist/component/angular-html-CAoRrq6i.js +35 -0
- package/dist/component/angular-html-DG52iVg8.js +35 -0
- package/dist/component/angular-ts-BvOrReBc.js +24 -0
- package/dist/component/angular-ts-LQyiJZqb.js +24 -0
- package/dist/component/apache-HdVsAIQf.js +9 -0
- package/dist/component/apache-c3M5d5MN.js +9 -0
- package/dist/component/apex-B-y6HhVC.js +9 -0
- package/dist/component/apex-DXDfZUnb.js +9 -0
- package/dist/component/apl-BnXq3ZtQ.js +19 -0
- package/dist/component/apl-D7VFrOyT.js +19 -0
- package/dist/component/applescript-BZbrjHcY.js +9 -0
- package/dist/component/applescript-Bo1adDet.js +9 -0
- package/dist/component/ara-C1QNxHcU.js +9 -0
- package/dist/component/ara-ZjRpP-93.js +9 -0
- package/dist/component/arc-DGQIe3ON.js +86 -0
- package/dist/component/architectureDiagram-3BPJPVTR-C3uLEfb1.js +4697 -0
- package/dist/component/asciidoc-2fV_Cv2j.js +9 -0
- package/dist/component/asciidoc-D7PshqvO.js +9 -0
- package/dist/component/asm-ClEowkZP.js +9 -0
- package/dist/component/asm-DmyJawQj.js +9 -0
- package/dist/component/astro-9MHfKoOi.js +21 -0
- package/dist/component/astro-Bi3QRBCO.js +21 -0
- package/dist/component/aurora-x-BGO53J2I.js +7 -0
- package/dist/component/aurora-x-C98he-36.js +7 -0
- package/dist/component/awk-CIiDOfUC.js +9 -0
- package/dist/component/awk-DnzYQYUx.js +9 -0
- package/dist/component/ayu-dark-CK1VRikm.js +7 -0
- package/dist/component/ayu-dark-J6FX8oSr.js +7 -0
- package/dist/component/ayu-light-DIKBJiwH.js +7 -0
- package/dist/component/ayu-light-x4Q5N51d.js +7 -0
- package/dist/component/ayu-mirage-C5_fPLwf.js +7 -0
- package/dist/component/ayu-mirage-DhPHVcGJ.js +7 -0
- package/dist/component/ballerina-CeqVHW9D.js +9 -0
- package/dist/component/ballerina-epCf0_WV.js +9 -0
- package/dist/component/bat-Cuej7k1C.js +9 -0
- package/dist/component/bat-Dai7pznF.js +9 -0
- package/dist/component/beancount-CpREEZMl.js +9 -0
- package/dist/component/beancount-CwiYx9PE.js +9 -0
- package/dist/component/berry-BoYGiG42.js +9 -0
- package/dist/component/berry-DFo_i8CN.js +9 -0
- package/dist/component/bibtex-2bgmGv5w.js +9 -0
- package/dist/component/bibtex-BkTrlnvh.js +9 -0
- package/dist/component/bicep-C80YQkEm.js +9 -0
- package/dist/component/bicep-DYkQKpr8.js +9 -0
- package/dist/component/bird2-5AxdId5f.js +9 -0
- package/dist/component/bird2-CjcgWn0f.js +9 -0
- package/dist/component/blade-BdUlKesy.js +23 -0
- package/dist/component/blade-DNMMxdfa.js +23 -0
- package/dist/component/blockDiagram-GPEHLZMM-YerYvLm_.js +2421 -0
- package/dist/component/bsl-CYB_gPZn.js +11 -0
- package/dist/component/bsl-DJ4bR5oi.js +11 -0
- package/dist/component/c-C4AMyX3G.js +9 -0
- package/dist/component/c-C7DfT4H8.js +9 -0
- package/dist/component/c3-DDixCt0K.js +9 -0
- package/dist/component/c3-xeavH2G2.js +9 -0
- package/dist/component/c4Diagram-AAUBKEIU-p8UR34Zq.js +1586 -0
- package/dist/component/cadence-Cy8toSoU.js +9 -0
- package/dist/component/cadence-xq71MyIp.js +9 -0
- package/dist/component/cairo-B1qo5_uz.js +11 -0
- package/dist/component/cairo-CZSJv_Y_.js +11 -0
- package/dist/component/catppuccin-frappe-BGDzipYl.js +7 -0
- package/dist/component/catppuccin-frappe-DZ2VPnzg.js +7 -0
- package/dist/component/catppuccin-latte-9zQ0xneh.js +7 -0
- package/dist/component/catppuccin-latte-CK4XjBXq.js +7 -0
- package/dist/component/catppuccin-macchiato-CIKuiG5O.js +7 -0
- package/dist/component/catppuccin-macchiato-D1xBlgUI.js +7 -0
- package/dist/component/catppuccin-mocha-CQk3ku6b.js +7 -0
- package/dist/component/catppuccin-mocha-Dr22M_MR.js +7 -0
- package/dist/component/channel-ahmILYyG.js +8 -0
- package/dist/component/chunk-2J33WTMH-CGaAxoSO.js +22 -0
- package/dist/component/chunk-4BX2VUAB-gRTK7Di9.js +11 -0
- package/dist/component/chunk-55IACEB6-XfJuuv6Y.js +11 -0
- package/dist/component/chunk-727SXJPM-Cy0hXMuO.js +1537 -0
- package/dist/component/chunk-AQP2D5EJ-CZHGw4se.js +1396 -0
- package/dist/component/chunk-FMBD7UC4-CyqtPCO0.js +22 -0
- package/dist/component/chunk-ND2GUHAM-CzTviSBV.js +71 -0
- package/dist/component/chunk-QZHKN3VN-CHDEerWv.js +21 -0
- package/dist/component/clarity-Dmd3VcKv.js +9 -0
- package/dist/component/clarity-FR-MQPIo.js +9 -0
- package/dist/component/classDiagram-4FO5ZUOK-BDzl1OcC.js +19 -0
- package/dist/component/classDiagram-v2-Q7XG4LA2-BDzl1OcC.js +19 -0
- package/dist/component/clojure-CZ5pqCKI.js +9 -0
- package/dist/component/clojure-DUXXPerS.js +9 -0
- package/dist/component/cmake-DeSLuBit.js +9 -0
- package/dist/component/cmake-Dh5RXd_q.js +9 -0
- package/dist/component/cobol-B0R9veOS.js +13 -0
- package/dist/component/cobol-DayClXiO.js +13 -0
- package/dist/component/codeowners-C5Gg1qBb.js +9 -0
- package/dist/component/codeowners-RGJbf4XS.js +9 -0
- package/dist/component/codeql-1OtYEVEY.js +9 -0
- package/dist/component/codeql-CoCy8yp4.js +9 -0
- package/dist/component/coffee-kdLRO3eV.js +11 -0
- package/dist/component/coffee-tRjJZw7o.js +11 -0
- package/dist/component/common-lisp-BeJe0ab6.js +9 -0
- package/dist/component/common-lisp-GbfS1OBj.js +9 -0
- package/dist/component/coq-B0RJLsKz.js +9 -0
- package/dist/component/coq-DMlFNAl3.js +9 -0
- package/dist/component/cose-bilkent-S5V4N54A-4R0ErgrZ.js +2611 -0
- package/dist/component/cpp-BpiKH-9I.js +21 -0
- package/dist/component/cpp-BwGJQL2p.js +21 -0
- package/dist/component/crystal-Bb_LifhW.js +21 -0
- package/dist/component/crystal-D0cTXans.js +21 -0
- package/dist/component/csharp-5kMbpBNi.js +9 -0
- package/dist/component/csharp-UFMQzTVu.js +9 -0
- package/dist/component/css-B2ckPEoZ.js +9 -0
- package/dist/component/css-MDiv-Xmm.js +9 -0
- package/dist/component/csv-Ba1T94jM.js +9 -0
- package/dist/component/csv-DZ-mzuKa.js +9 -0
- package/dist/component/cue-CtGb6f31.js +9 -0
- package/dist/component/cue-DbYr629m.js +9 -0
- package/dist/component/cypher-7eGqJtNJ.js +9 -0
- package/dist/component/cypher-pD9MnYc_.js +9 -0
- package/dist/component/cytoscape.esm-C31R6JOv.js +18772 -0
- package/dist/component/d-BefBLeap.js +9 -0
- package/dist/component/d-Dij3nCx4.js +9 -0
- package/dist/component/dagre-BM42HDAG-BcJQXGn3.js +448 -0
- package/dist/component/dark-plus-C9nS7rhq.js +7 -0
- package/dist/component/dark-plus-L3JON0ir.js +7 -0
- package/dist/component/dart-BWNSliXX.js +9 -0
- package/dist/component/dart-DCRAsZQK.js +9 -0
- package/dist/component/dax-CWdGoxkM.js +9 -0
- package/dist/component/dax-pykceZLM.js +9 -0
- package/dist/component/defaultLocale-BXpxsZAK.js +174 -0
- package/dist/component/desktop-4j8jFU02.js +9 -0
- package/dist/component/desktop-B3AeStqn.js +9 -0
- package/dist/component/diagram-2AECGRRQ-Cld7-k7F.js +220 -0
- package/dist/component/diagram-5GNKFQAL-d7JtHVRK.js +126 -0
- package/dist/component/diagram-KO2AKTUF-Avxzz4xw.js +464 -0
- package/dist/component/diagram-LMA3HP47-Cy_E5-rU.js +148 -0
- package/dist/component/diagram-OG6HWLK6-DUsJK7Js.js +534 -0
- package/dist/component/diff-DuoPSmgL.js +9 -0
- package/dist/component/diff-IyCSM08A.js +9 -0
- package/dist/component/docker-BSrvy0o9.js +9 -0
- package/dist/component/docker-Ca4vT6OJ.js +9 -0
- package/dist/component/dotenv-CUP-PB19.js +9 -0
- package/dist/component/dotenv-aA3GGxJM.js +9 -0
- package/dist/component/dracula-2BaSCSav.js +7 -0
- package/dist/component/dracula-Lg7_DbOD.js +7 -0
- package/dist/component/dracula-soft-AsPqNBvZ.js +7 -0
- package/dist/component/dracula-soft-n6R-sBGM.js +7 -0
- package/dist/component/dream-maker-B2xERNvR.js +9 -0
- package/dist/component/dream-maker-Jadq_Ln7.js +9 -0
- package/dist/component/edge-B-amp2rn.js +15 -0
- package/dist/component/edge-Bol1lNG-.js +15 -0
- package/dist/component/elixir-DSzpv_bE.js +11 -0
- package/dist/component/elixir-t5YY_ese.js +11 -0
- package/dist/component/elm-DNaka8RZ.js +11 -0
- package/dist/component/elm-JLsvCHy1.js +11 -0
- package/dist/component/emacs-lisp-C6XZT609.js +9 -0
- package/dist/component/emacs-lisp-DWDtb5kD.js +9 -0
- package/dist/component/erDiagram-TEJ5UH35-DEdqrWqp.js +905 -0
- package/dist/component/erb-BJ95qgrJ.js +13 -0
- package/dist/component/erb-rGIYAeIa.js +13 -0
- package/dist/component/erlang-By5grfmz.js +11 -0
- package/dist/component/erlang-rAClsghX.js +11 -0
- package/dist/component/everforest-dark-DBhTz0Lt.js +7 -0
- package/dist/component/everforest-dark-_A43rkLf.js +7 -0
- package/dist/component/everforest-light-Bep_XOgu.js +7 -0
- package/dist/component/everforest-light-DHbrW2te.js +7 -0
- package/dist/component/fennel-CeQPNUU9.js +9 -0
- package/dist/component/fennel-QllfYze1.js +9 -0
- package/dist/component/fish-BXP1eRyz.js +9 -0
- package/dist/component/fish-DkfR0DRL.js +9 -0
- package/dist/component/flowDiagram-I6XJVG4X-BWzYDsjP.js +1634 -0
- package/dist/component/fluent-Ih0R99Ix.js +9 -0
- package/dist/component/fluent-RduSrzCZ.js +9 -0
- package/dist/component/fortran-fixed-form-C3I8YlEU.js +11 -0
- package/dist/component/fortran-fixed-form-D7OlW0lw.js +11 -0
- package/dist/component/fortran-free-form-CXj2ku4f.js +9 -0
- package/dist/component/fortran-free-form-DifCDW_P.js +9 -0
- package/dist/component/fsharp-65O4P3S5.js +11 -0
- package/dist/component/fsharp-CXzwUWsC.js +11 -0
- package/dist/component/ganttDiagram-6RSMTGT7-DzfeVIgF.js +2709 -0
- package/dist/component/gdresource-Bn5VhPaI.js +13 -0
- package/dist/component/gdresource-kUFIn9eK.js +13 -0
- package/dist/component/gdscript-BNGA6E65.js +9 -0
- package/dist/component/gdscript-LjKsfw3O.js +9 -0
- package/dist/component/gdshader-C-Gp5-Ot.js +9 -0
- package/dist/component/gdshader-C1lRZRQz.js +9 -0
- package/dist/component/genie-B8viIUNC.js +9 -0
- package/dist/component/genie-eR37RVXX.js +9 -0
- package/dist/component/gherkin-BVA-IOor.js +9 -0
- package/dist/component/gherkin-CuORnKvF.js +9 -0
- package/dist/component/git-commit-BNPqpLhi.js +11 -0
- package/dist/component/git-commit-Dh7BfmB9.js +11 -0
- package/dist/component/git-rebase-B5TXZutB.js +11 -0
- package/dist/component/git-rebase-DhwWS8MC.js +11 -0
- package/dist/component/gitGraphDiagram-PVQCEYII-CKzbGWcQ.js +818 -0
- package/dist/component/github-dark-5b4g_bOp.js +7 -0
- package/dist/component/github-dark-default-6zDGR7DJ.js +7 -0
- package/dist/component/github-dark-default-H56pGX_M.js +7 -0
- package/dist/component/github-dark-dimmed-B1iXBBmo.js +7 -0
- package/dist/component/github-dark-dimmed-DjYa1rhk.js +7 -0
- package/dist/component/github-dark-high-contrast-BuNi_Wj5.js +7 -0
- package/dist/component/github-dark-high-contrast-DvpYRI-4.js +7 -0
- package/dist/component/github-dark-mxHsWyJ4.js +7 -0
- package/dist/component/github-light-CTdjTVPf.js +7 -0
- package/dist/component/github-light-KqdY1rAV.js +7 -0
- package/dist/component/github-light-default-BlRYTBRQ.js +7 -0
- package/dist/component/github-light-default-Drw5Jl_p.js +7 -0
- package/dist/component/github-light-high-contrast-9d8ktz0h.js +7 -0
- package/dist/component/github-light-high-contrast-ColFVC7A.js +7 -0
- package/dist/component/gleam-BXQHq2ZT.js +9 -0
- package/dist/component/gleam-RfA2dpfH.js +9 -0
- package/dist/component/glimmer-js-BHZ1FuRp.js +17 -0
- package/dist/component/glimmer-js-Gdq_UYVf.js +17 -0
- package/dist/component/glimmer-ts-D6H7q5ls.js +17 -0
- package/dist/component/glimmer-ts-DdmgeZua.js +17 -0
- package/dist/component/glsl-D1RRylbk.js +11 -0
- package/dist/component/glsl-MDSU_3-y.js +11 -0
- package/dist/component/gn-D8VPrt1o.js +9 -0
- package/dist/component/gn-DJpTAp5e.js +9 -0
- package/dist/component/gnuplot-BNzwvBx5.js +9 -0
- package/dist/component/gnuplot-Iqvzplz-.js +9 -0
- package/dist/component/go-D-G7cxeA.js +9 -0
- package/dist/component/go-TNOI7pQc.js +9 -0
- package/dist/component/graph-BZLHvygk.js +1548 -0
- package/dist/component/graphql-CW6tYk7X.js +17 -0
- package/dist/component/graphql-DGugpl40.js +17 -0
- package/dist/component/groovy-5_UI-q3N.js +9 -0
- package/dist/component/groovy-D7GH48W8.js +9 -0
- package/dist/component/gruvbox-dark-hard-Ch2GYDcJ.js +7 -0
- package/dist/component/gruvbox-dark-hard-Dpxv_Il6.js +7 -0
- package/dist/component/gruvbox-dark-medium-DqoxKYPx.js +7 -0
- package/dist/component/gruvbox-dark-medium-eGVEUM8W.js +7 -0
- package/dist/component/gruvbox-dark-soft-BA9DdijB.js +7 -0
- package/dist/component/gruvbox-dark-soft-DRaJAZcW.js +7 -0
- package/dist/component/gruvbox-light-hard-BJXIrqpz.js +7 -0
- package/dist/component/gruvbox-light-hard-_qNpoYJy.js +7 -0
- package/dist/component/gruvbox-light-medium-39dkJwxv.js +7 -0
- package/dist/component/gruvbox-light-medium-IkDFQhcB.js +7 -0
- package/dist/component/gruvbox-light-soft-DWPQo7Dn.js +7 -0
- package/dist/component/gruvbox-light-soft-Dpz5D6wP.js +7 -0
- package/dist/component/hack-BSrzyV-l.js +13 -0
- package/dist/component/hack-CJNnfXZh.js +13 -0
- package/dist/component/haml-DL-NAYVg.js +13 -0
- package/dist/component/haml-DYkTKupK.js +13 -0
- package/dist/component/handlebars-B2Z6CWhc.js +17 -0
- package/dist/component/handlebars-Cwj0qzUo.js +17 -0
- package/dist/component/haskell-Cj3J4fKD.js +9 -0
- package/dist/component/haskell-h36TjJLk.js +9 -0
- package/dist/component/haxe-CcifGI6O.js +9 -0
- package/dist/component/haxe-Coqw0Tt8.js +9 -0
- package/dist/component/hcl-BPVqiZDb.js +9 -0
- package/dist/component/hcl-DaPl6lOC.js +9 -0
- package/dist/component/highlighted-body-OFNGDK62-BkGwwkHo.js +22 -0
- package/dist/component/hjson-CfcQXz3-.js +9 -0
- package/dist/component/hjson-DsTgWNxt.js +9 -0
- package/dist/component/hlsl-CLzjZIQL.js +9 -0
- package/dist/component/hlsl-DVyuzW8h.js +9 -0
- package/dist/component/horizon-DaNatiIz.js +7 -0
- package/dist/component/horizon-bright-CthJh1Qp.js +7 -0
- package/dist/component/horizon-bright-DMKA6ab6.js +7 -0
- package/dist/component/horizon-q20CuJTh.js +7 -0
- package/dist/component/houston-CjpgGYwZ.js +7 -0
- package/dist/component/houston-DnIZxOiF.js +7 -0
- package/dist/component/html-DSjghx6n.js +13 -0
- package/dist/component/html-derivative-CxizaS1Z.js +11 -0
- package/dist/component/html-derivative-DDrVhQXu.js +11 -0
- package/dist/component/html-tY6fNMOn.js +13 -0
- package/dist/component/http-CLvA54iU.js +17 -0
- package/dist/component/http-CPkD6MSf.js +17 -0
- package/dist/component/hurl-CuuCK9Id.js +15 -0
- package/dist/component/hurl-LcD0R7wh.js +15 -0
- package/dist/component/hxml-CJz9SfqN.js +11 -0
- package/dist/component/hxml-DLsAgg8X.js +11 -0
- package/dist/component/hy-CAEey4h7.js +9 -0
- package/dist/component/hy-Dm2IGIb-.js +9 -0
- package/dist/component/imba-5G9Fs_nr.js +9 -0
- package/dist/component/imba-CH2D1ce9.js +9 -0
- package/dist/component/index.d.ts +3 -0
- package/dist/component/index.js +8 -0
- package/dist/component/infoDiagram-5YYISTIA-D9xN-Pqc.js +27 -0
- package/dist/component/ini-Dt2l3RWi.js +9 -0
- package/dist/component/ini-kgvXisvj.js +9 -0
- package/dist/component/init-BOu0eQYQ.js +19 -0
- package/dist/component/ishikawaDiagram-YF4QCWOH--YDYWDwv.js +627 -0
- package/dist/component/java-BKLcvtEM.js +9 -0
- package/dist/component/java-oSN7P0Od.js +9 -0
- package/dist/component/javascript-CyaMmpOO.js +9 -0
- package/dist/component/javascript-DFm3DOoX.js +9 -0
- package/dist/component/jinja-Ch28RrFG.js +14 -0
- package/dist/component/jinja-CsTh8Ahj.js +14 -0
- package/dist/component/jison-Bu0o8a1Z.js +11 -0
- package/dist/component/jison-DLgrOJpy.js +11 -0
- package/dist/component/journeyDiagram-JHISSGLW-B9-CHfSv.js +837 -0
- package/dist/component/json-D-WsbO45.js +9 -0
- package/dist/component/json-rmrBoeO_.js +9 -0
- package/dist/component/json5-B1J6XVPd.js +9 -0
- package/dist/component/json5-B3-n7IrD.js +9 -0
- package/dist/component/jsonc-BgfI3zjg.js +9 -0
- package/dist/component/jsonc-HFvGREK8.js +9 -0
- package/dist/component/jsonl-DHttz8sH.js +9 -0
- package/dist/component/jsonl-l_eIcPip.js +9 -0
- package/dist/component/jsonnet-D6SNIhw0.js +9 -0
- package/dist/component/jsonnet-DO8Zfk6p.js +9 -0
- package/dist/component/jssm-CKRLojKZ.js +9 -0
- package/dist/component/jssm-Dy1zjXNg.js +9 -0
- package/dist/component/jsx-CpVvoVGp.js +9 -0
- package/dist/component/jsx-si2wS7pt.js +9 -0
- package/dist/component/julia-BPzvBJ4R.js +19 -0
- package/dist/component/julia-CfyFig21.js +19 -0
- package/dist/component/just-D5rIv9U4.js +21 -0
- package/dist/component/just-fRm_weEQ.js +21 -0
- package/dist/component/kanagawa-dragon-BOBo9JLg.js +7 -0
- package/dist/component/kanagawa-dragon-BWPCHB_7.js +7 -0
- package/dist/component/kanagawa-lotus-8m_3LhhF.js +7 -0
- package/dist/component/kanagawa-lotus-B5o1JCNj.js +7 -0
- package/dist/component/kanagawa-wave-BSP7z6KH.js +7 -0
- package/dist/component/kanagawa-wave-ClYLx7ql.js +7 -0
- package/dist/component/kanban-definition-UN3LZRKU-Cmh8twbq.js +727 -0
- package/dist/component/kdl-GafIF83C.js +9 -0
- package/dist/component/kdl-_X6wsgV0.js +9 -0
- package/dist/component/kotlin-B3jfEOcv.js +9 -0
- package/dist/component/kotlin-BWMoZeA3.js +9 -0
- package/dist/component/kusto-Bkz9eBch.js +9 -0
- package/dist/component/kusto-ohiqZ64l.js +9 -0
- package/dist/component/laserwave-BmajecBZ.js +7 -0
- package/dist/component/laserwave-Bp21zlIO.js +7 -0
- package/dist/component/latex-BYzveWoN.js +11 -0
- package/dist/component/latex-Bi4Lg68B.js +11 -0
- package/dist/component/layout-Bu6nRdWm.js +1731 -0
- package/dist/component/lean-BBkk0btj.js +9 -0
- package/dist/component/lean-DFmhzmny.js +9 -0
- package/dist/component/less-ChX34X5W.js +9 -0
- package/dist/component/less-kqPRXL1K.js +9 -0
- package/dist/component/light-plus-DFxAowZg.js +7 -0
- package/dist/component/light-plus-_t1yKirF.js +7 -0
- package/dist/component/linear-BDyEUcVD.js +262 -0
- package/dist/component/liquid-Bri_C9oi.js +17 -0
- package/dist/component/liquid-f2WMwCDi.js +17 -0
- package/dist/component/llvm-COuD10ql.js +9 -0
- package/dist/component/llvm-dub2631B.js +9 -0
- package/dist/component/log-A8St-vyh.js +9 -0
- package/dist/component/log-g58LFxM8.js +9 -0
- package/dist/component/logo-DZmThwvl.js +9 -0
- package/dist/component/logo-x6YxnKST.js +9 -0
- package/dist/component/lua-Bj2G8q-Z.js +11 -0
- package/dist/component/lua-CyXCKT0u.js +11 -0
- package/dist/component/luau-B8fyn01D.js +9 -0
- package/dist/component/luau-C5q2C4N6.js +9 -0
- package/dist/component/make-DOTJ8IeI.js +9 -0
- package/dist/component/make-DTiRnfNf.js +9 -0
- package/dist/component/markdown-D3u32LKS.js +9 -0
- package/dist/component/markdown-DHm1k_6p.js +9 -0
- package/dist/component/marko-CUgdvzuR.js +17 -0
- package/dist/component/marko-SwZmWzIv.js +17 -0
- package/dist/component/material-theme-BIfRQKI0.js +7 -0
- package/dist/component/material-theme-CxS7GniW.js +7 -0
- package/dist/component/material-theme-darker-DKP5DIOi.js +7 -0
- package/dist/component/material-theme-darker-DkNB3xjL.js +7 -0
- package/dist/component/material-theme-lighter-3I4JYnlq.js +7 -0
- package/dist/component/material-theme-lighter-D5xivCfx.js +7 -0
- package/dist/component/material-theme-ocean-B31yuEXO.js +7 -0
- package/dist/component/material-theme-ocean-rw0kJPZg.js +7 -0
- package/dist/component/material-theme-palenight-BfunK0Uo.js +7 -0
- package/dist/component/material-theme-palenight-COTbh91p.js +7 -0
- package/dist/component/matlab-CkKSQcnX.js +9 -0
- package/dist/component/matlab-DCF6d5YL.js +9 -0
- package/dist/component/mdc-D92XwdT9.js +15 -0
- package/dist/component/mdc-gb_v49HI.js +15 -0
- package/dist/component/mdx-C6kH9TSz.js +9 -0
- package/dist/component/mdx-Dqb5H0t-.js +9 -0
- package/dist/component/mermaid-0bkYzXfL.js +9 -0
- package/dist/component/mermaid-GHXKKRXX-C5Y3BZXR.js +107122 -0
- package/dist/component/mermaid-N7-yWHiu.js +9 -0
- package/dist/component/min-dark-CqEfelDe.js +7 -0
- package/dist/component/min-dark-FAglrjWz.js +7 -0
- package/dist/component/min-light-BmdYN58_.js +7 -0
- package/dist/component/min-light-CcJCxfWw.js +7 -0
- package/dist/component/mindmap-definition-RKZ34NQL-CnFpVFpl.js +833 -0
- package/dist/component/mipsasm-BYNReuUT.js +9 -0
- package/dist/component/mipsasm-CKzkMNWr.js +9 -0
- package/dist/component/mojo-0URGVph7.js +9 -0
- package/dist/component/mojo-C563AncR.js +9 -0
- package/dist/component/monokai-D3_c3OUm.js +7 -0
- package/dist/component/monokai-ugSJFofr.js +7 -0
- package/dist/component/moonbit-BkJk2kyS.js +9 -0
- package/dist/component/moonbit-DlIX78rk.js +9 -0
- package/dist/component/move-BQAHOJb2.js +9 -0
- package/dist/component/move-eiW4QYDW.js +9 -0
- package/dist/component/narrat-2oVindvn.js +9 -0
- package/dist/component/narrat-Dc4cTFeW.js +9 -0
- package/dist/component/nextflow-B4caLl5A.js +11 -0
- package/dist/component/nextflow-Bk0ryO1R.js +11 -0
- package/dist/component/nextflow-groovy-BnXf2WiC.js +9 -0
- package/dist/component/nextflow-groovy-DIMIAEOy.js +9 -0
- package/dist/component/nginx-BaGEfT9r.js +11 -0
- package/dist/component/nginx-Dprlne5J.js +11 -0
- package/dist/component/night-owl-B6L5FL5v.js +7 -0
- package/dist/component/night-owl-CB_IXuNH.js +7 -0
- package/dist/component/night-owl-light-BZxeyl5X.js +7 -0
- package/dist/component/night-owl-light-CoPr05P4.js +7 -0
- package/dist/component/nim-BKvvFCe_.js +23 -0
- package/dist/component/nim-CQZqLxeE.js +23 -0
- package/dist/component/nix-Cp8a0vy5.js +12 -0
- package/dist/component/nix-DEY1zukk.js +12 -0
- package/dist/component/nord-D3PAEvHH.js +7 -0
- package/dist/component/nord-DPPgRakM.js +7 -0
- package/dist/component/nushell-BdsblUId.js +9 -0
- package/dist/component/nushell-DUUbmBaO.js +9 -0
- package/dist/component/objective-c-CNN3tl1v.js +9 -0
- package/dist/component/objective-c-D_6I2dsG.js +9 -0
- package/dist/component/objective-cpp-BjicYcS7.js +9 -0
- package/dist/component/objective-cpp-z4LTaUcg.js +9 -0
- package/dist/component/ocaml-BnD9haV8.js +9 -0
- package/dist/component/ocaml-DZseEUty.js +9 -0
- package/dist/component/odin-CnsCKboc.js +9 -0
- package/dist/component/odin-P2WSXO4H.js +9 -0
- package/dist/component/one-dark-pro-C_eaQ16k.js +7 -0
- package/dist/component/one-dark-pro-OimEv0Ou.js +7 -0
- package/dist/component/one-light-B0ti6b9S.js +7 -0
- package/dist/component/one-light-j3UfPQB3.js +7 -0
- package/dist/component/openscad-2vaKslxR.js +9 -0
- package/dist/component/openscad-jE6oRbDv.js +9 -0
- package/dist/component/ordinal-D0x7izaa.js +64 -0
- package/dist/component/pascal-8jl8irAj.js +9 -0
- package/dist/component/pascal-d7SASCGO.js +9 -0
- package/dist/component/perl-DHC1BZ_5.js +19 -0
- package/dist/component/perl-DVm7Pq-D.js +19 -0
- package/dist/component/php-BF_l-EgM.js +21 -0
- package/dist/component/php-BtpW2-DO.js +21 -0
- package/dist/component/pieDiagram-4H26LBE5-u-blLkni.js +166 -0
- package/dist/component/pkl-CoBnC_8G.js +9 -0
- package/dist/component/pkl-DZdA2Trc.js +9 -0
- package/dist/component/plastic-3IjBbwNP.js +7 -0
- package/dist/component/plastic-CixB-AlW.js +7 -0
- package/dist/component/plsql-Cv-ZxhCL.js +9 -0
- package/dist/component/plsql-CzeGyK0m.js +9 -0
- package/dist/component/po-eb_Amfj2.js +9 -0
- package/dist/component/po-moSB12fi.js +9 -0
- package/dist/component/poimandres-C03Jy3KZ.js +7 -0
- package/dist/component/poimandres-CKZ3f48N.js +7 -0
- package/dist/component/polar-BKFAKBSA.js +9 -0
- package/dist/component/polar-CsPCUbKt.js +9 -0
- package/dist/component/postcss-CytNqPC0.js +9 -0
- package/dist/component/postcss-D3_LY2LH.js +9 -0
- package/dist/component/powerquery-CpTndMW_.js +9 -0
- package/dist/component/powerquery-f-cemdrG.js +9 -0
- package/dist/component/powershell-B-JkstDq.js +9 -0
- package/dist/component/powershell-BkDB3ZO9.js +9 -0
- package/dist/component/prisma-B4mlcaEB.js +9 -0
- package/dist/component/prisma-BX88wNNq.js +9 -0
- package/dist/component/prolog-ZYcjPjsY.js +9 -0
- package/dist/component/prolog-ftPRGVaT.js +9 -0
- package/dist/component/proto-B5SG7zCc.js +9 -0
- package/dist/component/proto-DpTcjJFH.js +9 -0
- package/dist/component/pug-BziTjzcZ.js +15 -0
- package/dist/component/pug-XUdLuJ2s.js +15 -0
- package/dist/component/puppet-BeyD5DhV.js +9 -0
- package/dist/component/puppet-DjFvC8zy.js +9 -0
- package/dist/component/purescript-BBRU0YyZ.js +9 -0
- package/dist/component/purescript-Bf3WPYAV.js +9 -0
- package/dist/component/python-C7yusFoO.js +9 -0
- package/dist/component/python-CuNbg5wx.js +9 -0
- package/dist/component/qml-Cu9RjXOs.js +11 -0
- package/dist/component/qml-Z-uvElxQ.js +11 -0
- package/dist/component/qmldir-BHp2usxt.js +9 -0
- package/dist/component/qmldir-C6P--W6X.js +9 -0
- package/dist/component/qss-CgcBaeYL.js +9 -0
- package/dist/component/qss-iWzt-Nzy.js +9 -0
- package/dist/component/quadrantDiagram-W4KKPZXB-Bpq-EoMM.js +1033 -0
- package/dist/component/r-8lH98zbN.js +9 -0
- package/dist/component/r-CyFkAlMF.js +9 -0
- package/dist/component/racket-DaWPCRlQ.js +9 -0
- package/dist/component/racket-effgGH8q.js +9 -0
- package/dist/component/raku-DXM7wT4g.js +9 -0
- package/dist/component/raku-GZVvT-nH.js +9 -0
- package/dist/component/razor-CYq4jbLW.js +13 -0
- package/dist/component/razor-DQFDiXM1.js +13 -0
- package/dist/component/red-B9TgEgRC.js +7 -0
- package/dist/component/red-BNC90Lxb.js +7 -0
- package/dist/component/reg-C62uOG3A.js +9 -0
- package/dist/component/reg-CQgRgzkw.js +9 -0
- package/dist/component/regexp-D8jeZrvm.js +9 -0
- package/dist/component/regexp-UNvxOND4.js +9 -0
- package/dist/component/rel-BRyuNjQD.js +9 -0
- package/dist/component/rel-Cyzm_Cno.js +9 -0
- package/dist/component/requirementDiagram-4Y6WPE33-B8V7mLRY.js +888 -0
- package/dist/component/riscv-BHdC-Wfh.js +9 -0
- package/dist/component/riscv-BZ9l50bA.js +9 -0
- package/dist/component/ron--0kZyCV0.js +9 -0
- package/dist/component/ron-CJx-eqt3.js +9 -0
- package/dist/component/rose-pine-XHcBRH-D.js +7 -0
- package/dist/component/rose-pine-dawn-Bz77Igqs.js +7 -0
- package/dist/component/rose-pine-dawn-RL42yTas.js +7 -0
- package/dist/component/rose-pine-ksWn8nuO.js +7 -0
- package/dist/component/rose-pine-moon-BtSW__9n.js +7 -0
- package/dist/component/rose-pine-moon-QJS0aJgR.js +7 -0
- package/dist/component/rosmsg-BPUqDEe2.js +9 -0
- package/dist/component/rosmsg-CM65NRE0.js +9 -0
- package/dist/component/rst-CqXkCW5F.js +25 -0
- package/dist/component/rst-DQATMrFw.js +25 -0
- package/dist/component/ruby-B09XKrLg.js +33 -0
- package/dist/component/ruby-BJtrPIFQ.js +33 -0
- package/dist/component/rust-3aEF0O7t.js +9 -0
- package/dist/component/rust-XKBJng8W.js +9 -0
- package/dist/component/sankeyDiagram-5OEKKPKP-C-TbMbsr.js +862 -0
- package/dist/component/sas-COkwgxe_.js +11 -0
- package/dist/component/sas-DDLczODn.js +11 -0
- package/dist/component/sass-BIT8Mghp.js +9 -0
- package/dist/component/sass-CbXM5obh.js +9 -0
- package/dist/component/scala-CWyCExvl.js +9 -0
- package/dist/component/scala-DmAjX8OM.js +9 -0
- package/dist/component/scheme-BLXiZF3M.js +9 -0
- package/dist/component/scheme-ERi8vGmO.js +9 -0
- package/dist/component/scss-BX4eQ0c3.js +11 -0
- package/dist/component/scss-Biq-xkEY.js +11 -0
- package/dist/component/sdbl-B4TEJKGi.js +9 -0
- package/dist/component/sdbl-tnLxE-ur.js +9 -0
- package/dist/component/sequenceDiagram-3UESZ5HK-UHhixLbD.js +2897 -0
- package/dist/component/shaderlab-DMYXUCqo.js +11 -0
- package/dist/component/shaderlab-DqcfJRqk.js +11 -0
- package/dist/component/shellscript-B533aeAq.js +9 -0
- package/dist/component/shellscript-B8M9FK6Q.js +9 -0
- package/dist/component/shellsession-CvrLJEnp.js +11 -0
- package/dist/component/shellsession-Cy0cdv3D.js +11 -0
- package/dist/component/slack-dark-9TBiD8mL.js +7 -0
- package/dist/component/slack-dark-DN-r2Kgp.js +7 -0
- package/dist/component/slack-ochin-9pgdwMdj.js +7 -0
- package/dist/component/slack-ochin-DoqPjNJD.js +7 -0
- package/dist/component/smalltalk-Bbm0pJzJ.js +9 -0
- package/dist/component/smalltalk-BgwWJ0LQ.js +9 -0
- package/dist/component/snazzy-light-CRiZMLw1.js +7 -0
- package/dist/component/snazzy-light-D2QxPpzI.js +7 -0
- package/dist/component/solarized-dark-CpiZBbF-.js +7 -0
- package/dist/component/solarized-dark-DrZ258Kz.js +7 -0
- package/dist/component/solarized-light-940Q0ET-.js +7 -0
- package/dist/component/solarized-light-CZjXGjG0.js +7 -0
- package/dist/component/solidity-BiVIJAyo.js +9 -0
- package/dist/component/solidity-DsGO0zKs.js +9 -0
- package/dist/component/soy-B8d9iNux.js +11 -0
- package/dist/component/soy-CrWxFFIL.js +11 -0
- package/dist/component/sparql-C9-sbVPb.js +11 -0
- package/dist/component/sparql-D4y9QLpW.js +11 -0
- package/dist/component/splunk-8ZGt17T1.js +9 -0
- package/dist/component/splunk-CoLR9YoS.js +9 -0
- package/dist/component/sql-kcHmCqqm.js +9 -0
- package/dist/component/sql-vg8sPfqQ.js +9 -0
- package/dist/component/ssh-config-CaXR5cZI.js +9 -0
- package/dist/component/ssh-config-DIPB8nWv.js +9 -0
- package/dist/component/stata-DTwlvRC-.js +11 -0
- package/dist/component/stata-wXDnjjLv.js +11 -0
- package/dist/component/stateDiagram-AJRCARHV-DBGVr_mf.js +266 -0
- package/dist/component/stateDiagram-v2-BHNVJYJU-BasSd11t.js +19 -0
- package/dist/component/stylus-BVi_fesw.js +9 -0
- package/dist/component/stylus-WAexVQ6f.js +9 -0
- package/dist/component/surrealql-BMPoOZ16.js +11 -0
- package/dist/component/surrealql-CoR3cmJl.js +11 -0
- package/dist/component/svelte-BXoajfvD.js +17 -0
- package/dist/component/svelte-CSNEH6tH.js +17 -0
- package/dist/component/swift-C1L5BrdG.js +9 -0
- package/dist/component/swift-DvqRLmJa.js +9 -0
- package/dist/component/synthwave-84-CjU0tbaA.js +7 -0
- package/dist/component/synthwave-84-D0HCetP1.js +7 -0
- package/dist/component/system-verilog-BlCQhLvC.js +9 -0
- package/dist/component/system-verilog-NfYSOS9X.js +9 -0
- package/dist/component/systemd-C-VULMOV.js +9 -0
- package/dist/component/systemd-DPQeba_a.js +9 -0
- package/dist/component/talonscript-0iKTliWA.js +9 -0
- package/dist/component/talonscript-Dcq0YJ69.js +9 -0
- package/dist/component/tasl-CBnjmw_u.js +9 -0
- package/dist/component/tasl-DPTcRLbU.js +9 -0
- package/dist/component/tcl-B8YZq0wg.js +9 -0
- package/dist/component/tcl-D3IfUIUn.js +9 -0
- package/dist/component/templ-BWrZoBOl.js +15 -0
- package/dist/component/templ-CNKcDxHw.js +15 -0
- package/dist/component/terraform-BBGJbbOd.js +9 -0
- package/dist/component/terraform-CpHfbII0.js +9 -0
- package/dist/component/tex-Do7cxq2n.js +11 -0
- package/dist/component/tex-DotwMf2L.js +11 -0
- package/dist/component/timeline-definition-PNZ67QCA-BTzUH3cf.js +1058 -0
- package/dist/component/tokyo-night-50KL4qXP.js +7 -0
- package/dist/component/tokyo-night-CFdInRHE.js +7 -0
- package/dist/component/toml-BgG8u2uy.js +9 -0
- package/dist/component/toml-Cdrl1XDU.js +9 -0
- package/dist/component/ts-tags-CZ_-X2Or.js +44 -0
- package/dist/component/ts-tags-JQGxDVZd.js +44 -0
- package/dist/component/tsv-CH-Gpfzn.js +9 -0
- package/dist/component/tsv-DXq61Z_y.js +9 -0
- package/dist/component/tsx-B6WYiHjH.js +9 -0
- package/dist/component/tsx-BI2vzHzF.js +9 -0
- package/dist/component/turtle-BLh3UAZ1.js +9 -0
- package/dist/component/turtle-DuS0HQ9p.js +9 -0
- package/dist/component/twig-BA9yPOhQ.js +21 -0
- package/dist/component/twig-F0j_PXgJ.js +21 -0
- package/dist/component/typescript-Bt_Em9TU.js +9 -0
- package/dist/component/typescript-BxspRrVw.js +9 -0
- package/dist/component/typespec-CBQfkfKg.js +9 -0
- package/dist/component/typespec-ChsG4DJP.js +9 -0
- package/dist/component/typst-CLNdxZpy.js +9 -0
- package/dist/component/typst-rCvFF3Ml.js +9 -0
- package/dist/component/v-Bc8b7HcA.js +9 -0
- package/dist/component/v-DkBTCxRz.js +9 -0
- package/dist/component/vala-Bf6duLsN.js +9 -0
- package/dist/component/vala-D3NFAJvZ.js +9 -0
- package/dist/component/vb-CbCKaE0V.js +9 -0
- package/dist/component/vb-DoG_86dU.js +9 -0
- package/dist/component/vennDiagram-CIIHVFJN-CVh3weJ2.js +1560 -0
- package/dist/component/verilog-BsnhA3AJ.js +9 -0
- package/dist/component/verilog-nZodAh2g.js +9 -0
- package/dist/component/vesper-C9xEuBGK.js +7 -0
- package/dist/component/vesper-DGjNIaCs.js +7 -0
- package/dist/component/vhdl-D19XVLHt.js +9 -0
- package/dist/component/vhdl-mXcQB2Fg.js +9 -0
- package/dist/component/viml-8k_5DKNK.js +9 -0
- package/dist/component/viml-COJbZm0U.js +9 -0
- package/dist/component/vitesse-black-Bct4R3m4.js +7 -0
- package/dist/component/vitesse-black-heVxAgDf.js +7 -0
- package/dist/component/vitesse-dark-DdWh6SFL.js +7 -0
- package/dist/component/vitesse-dark-DiXBkaTo.js +7 -0
- package/dist/component/vitesse-light-CerMU32A.js +7 -0
- package/dist/component/vitesse-light-Eee3KZAP.js +7 -0
- package/dist/component/vue-DjB6jmJ7.js +34 -0
- package/dist/component/vue-YqIdEku3.js +34 -0
- package/dist/component/vue-html-BkvRG1qx.js +11 -0
- package/dist/component/vue-html-CXFz0iVx.js +11 -0
- package/dist/component/vue-vine-CFD4nsF4.js +21 -0
- package/dist/component/vue-vine-lE-jUeB6.js +21 -0
- package/dist/component/vyper-DTCkLS2f.js +9 -0
- package/dist/component/vyper-_vSvOdCD.js +9 -0
- package/dist/component/wardley-L42UT6IY-HA1eSIS_.js +23141 -0
- package/dist/component/wardleyDiagram-YWT4CUSO-Uu5KXQum.js +681 -0
- package/dist/component/wasm-BEUtLzBq.js +10 -0
- package/dist/component/wasm-Bw9k5bmy.js +9 -0
- package/dist/component/wasm-NiufRxKC.js +9 -0
- package/dist/component/wasm-rA9i46L9.js +10 -0
- package/dist/component/wenyan-BAnK6VvJ.js +9 -0
- package/dist/component/wenyan-EBJbIPqf.js +9 -0
- package/dist/component/wgsl-B9MSpOv3.js +9 -0
- package/dist/component/wgsl-Dlg8zdV4.js +9 -0
- package/dist/component/wikitext-C8AvgBS7.js +9 -0
- package/dist/component/wikitext-sNd9wc1e.js +9 -0
- package/dist/component/wit-BM4EHoLb.js +9 -0
- package/dist/component/wit-BUXWAgVD.js +9 -0
- package/dist/component/wolfram-Ba-Qm5eW.js +9 -0
- package/dist/component/wolfram-CKRVXwGa.js +9 -0
- package/dist/component/xml-CE4MTCb-.js +11 -0
- package/dist/component/xml-DXvCmeFI.js +11 -0
- package/dist/component/xsl-BrFD-9o5.js +11 -0
- package/dist/component/xsl-CHBQO4kd.js +11 -0
- package/dist/component/xychartDiagram-2RQKCTM6-IkxwUbCF.js +1375 -0
- package/dist/component/yaml-CF4mYNnF.js +9 -0
- package/dist/component/yaml-XzfbPk1C.js +9 -0
- package/dist/component/zenscript-C0pvNsdh.js +9 -0
- package/dist/component/zenscript-xkkNgCqg.js +9 -0
- package/dist/component/zig-Bz6GLPWH.js +9 -0
- package/dist/component/zig-oixaTxav.js +9 -0
- package/dist/components/ai-elements/attachments.d.ts +54 -0
- package/dist/components/ai-elements/code-block.d.ts +46 -0
- package/dist/components/ai-elements/conversation.d.ts +23 -0
- package/dist/components/ai-elements/copy-button.d.ts +6 -0
- package/dist/components/ai-elements/file-tree.d.ts +26 -0
- package/dist/components/ai-elements/link-safety-modal.d.ts +8 -0
- package/dist/components/ai-elements/message.d.ts +38 -0
- package/dist/components/ai-elements/plan.d.ts +25 -0
- package/dist/components/ai-elements/prompt-input.d.ts +158 -0
- package/dist/components/ai-elements/reasoning.d.ts +26 -0
- package/dist/components/ai-elements/shell-highlight.d.ts +3 -0
- package/dist/components/ai-elements/shimmer.d.ts +9 -0
- package/dist/components/ai-elements/suggestion.d.ts +10 -0
- package/dist/components/ai-elements/task.d.ts +14 -0
- package/dist/components/ai-elements/terminal-task.d.ts +5 -0
- package/dist/components/ai-elements/tool.d.ts +31 -0
- package/dist/components/embed/AgentGrantCard.d.ts +25 -0
- package/dist/components/embed/AtMentionMenu.d.ts +13 -0
- package/dist/components/embed/BelongMark.d.ts +4 -0
- package/dist/components/embed/BrandMark.d.ts +11 -0
- package/dist/components/embed/CapabilityHints.d.ts +1 -0
- package/dist/components/embed/ComposerMenu.d.ts +36 -0
- package/dist/components/embed/CsvTable.d.ts +10 -0
- package/dist/components/embed/EmbedAvatar.d.ts +35 -0
- package/dist/components/embed/EmbedComposer.d.ts +31 -0
- package/dist/components/embed/EmbedConversation.d.ts +31 -0
- package/dist/components/embed/EmbedFiles.d.ts +28 -0
- package/dist/components/embed/EmbedHeader.d.ts +11 -0
- package/dist/components/embed/EmbedLogin.d.ts +11 -0
- package/dist/components/embed/EmbedRail.d.ts +49 -0
- package/dist/components/embed/EmbedSessions.d.ts +23 -0
- package/dist/components/embed/FilePreview.d.ts +12 -0
- package/dist/components/embed/FilePreviewDialog.d.ts +19 -0
- package/dist/components/embed/MentionInput.d.ts +23 -0
- package/dist/components/embed/MentionPill.d.ts +25 -0
- package/dist/components/embed/OnboardingOverlay.d.ts +21 -0
- package/dist/components/embed/OnboardingTour.d.ts +24 -0
- package/dist/components/embed/OnboardingWelcome.d.ts +23 -0
- package/dist/components/embed/PlanCue.d.ts +9 -0
- package/dist/components/embed/PlanPanel.d.ts +13 -0
- package/dist/components/embed/PlanView.d.ts +16 -0
- package/dist/components/embed/PoweredByBelong.d.ts +7 -0
- package/dist/components/embed/PreviewContent.d.ts +26 -0
- package/dist/components/embed/PreviewPanel.d.ts +17 -0
- package/dist/components/embed/ProgressRing.d.ts +13 -0
- package/dist/components/embed/SlashCommandMenu.d.ts +13 -0
- package/dist/components/embed/UploadedFiles.d.ts +9 -0
- package/dist/components/embed/UsageMeter.d.ts +9 -0
- package/dist/components/embed/WelcomeIntro.d.ts +10 -0
- package/dist/components/embed/WorkspaceTree.d.ts +22 -0
- package/dist/components/embed/__plan-test-utils__.d.ts +13 -0
- package/dist/components/embed/dev-runtime-bar.d.ts +21 -0
- package/dist/components/embed/embed-composer.fixtures.d.ts +3 -0
- package/dist/components/embed/embed-rail.fixtures.d.ts +3 -0
- package/dist/components/embed/file-preview-kind.d.ts +7 -0
- package/dist/components/embed/onboarding-story-dock.d.ts +20 -0
- package/dist/components/embed/onboarding.fixtures.d.ts +9 -0
- package/dist/components/embed/parse-csv.d.ts +10 -0
- package/dist/components/embed/preview-content-kind.d.ts +15 -0
- package/dist/components/embed/use-panel-resize.d.ts +4 -0
- package/dist/components/embed/use-preview-bytes.d.ts +39 -0
- package/dist/components/feedback/feedback-metadata.d.ts +37 -0
- package/dist/components/feedback/message-feedback.d.ts +9 -0
- package/dist/components/ui/accordion.d.ts +7 -0
- package/dist/components/ui/alert.d.ts +9 -0
- package/dist/components/ui/avatar.d.ts +11 -0
- package/dist/components/ui/badge.d.ts +9 -0
- package/dist/components/ui/button-group.d.ts +11 -0
- package/dist/components/ui/button.d.ts +10 -0
- package/dist/components/ui/card.d.ts +9 -0
- package/dist/components/ui/carousel.d.ts +19 -0
- package/dist/components/ui/checkbox.d.ts +4 -0
- package/dist/components/ui/collapsible.d.ts +5 -0
- package/dist/components/ui/command.d.ts +18 -0
- package/dist/components/ui/dialog.d.ts +17 -0
- package/dist/components/ui/dropdown-menu.d.ts +25 -0
- package/dist/components/ui/hover-card.d.ts +6 -0
- package/dist/components/ui/input-group.d.ts +16 -0
- package/dist/components/ui/input.d.ts +3 -0
- package/dist/components/ui/popover.d.ts +10 -0
- package/dist/components/ui/progress.d.ts +4 -0
- package/dist/components/ui/radio-group.d.ts +5 -0
- package/dist/components/ui/scroll-area.d.ts +5 -0
- package/dist/components/ui/select.d.ts +15 -0
- package/dist/components/ui/separator.d.ts +4 -0
- package/dist/components/ui/spinner.d.ts +2 -0
- package/dist/components/ui/switch.d.ts +6 -0
- package/dist/components/ui/tabs.d.ts +11 -0
- package/dist/components/ui/textarea.d.ts +3 -0
- package/dist/components/ui/tooltip.d.ts +7 -0
- package/dist/dev-main.d.ts +0 -0
- package/dist/embed/agent-grant-refresh.d.ts +37 -0
- package/dist/embed/at-mentions.d.ts +80 -0
- package/dist/embed/auth0-refresh.d.ts +78 -0
- package/dist/embed/auto-embed.d.ts +19 -0
- package/dist/embed/bootstrap.d.ts +10 -0
- package/dist/embed/brand-marks.d.ts +11 -0
- package/dist/embed/build-info.d.ts +30 -0
- package/dist/embed/build-version.d.ts +28 -0
- package/dist/embed/chat-mode.d.ts +46 -0
- package/dist/embed/composer-focus.d.ts +14 -0
- package/dist/embed/copy.d.ts +84 -0
- package/dist/embed/custom-css.d.ts +2 -0
- package/dist/embed/debug-overrides.d.ts +11 -0
- package/dist/embed/dev-mode.d.ts +56 -0
- package/dist/embed/dock-layout.d.ts +30 -0
- package/dist/embed/dock-state.d.ts +32 -0
- package/dist/embed/download-url.d.ts +9 -0
- package/dist/embed/file-type-icon.d.ts +29 -0
- package/dist/embed/format-bytes.d.ts +2 -0
- package/dist/embed/global.d.ts +79 -0
- package/dist/embed/locale.d.ts +18 -0
- package/dist/embed/logo.d.ts +1 -0
- package/dist/embed/mic-press.d.ts +27 -0
- package/dist/embed/onboarding-prefs.d.ts +52 -0
- package/dist/embed/onboarding-steps.d.ts +27 -0
- package/dist/embed/onboarding-store.d.ts +39 -0
- package/dist/embed/plan-auto-open.d.ts +8 -0
- package/dist/embed/plan-decision.d.ts +10 -0
- package/dist/embed/plan-intent.d.ts +17 -0
- package/dist/embed/portal-container.d.ts +23 -0
- package/dist/embed/presets.d.ts +29 -0
- package/dist/embed/session-record.d.ts +16 -0
- package/dist/embed/shadow-mount.d.ts +37 -0
- package/dist/embed/slash-commands.d.ts +49 -0
- package/dist/embed/theme.d.ts +40 -0
- package/dist/embed/universe-origin.d.ts +24 -0
- package/dist/embed/use-workspace-file-download.d.ts +16 -0
- package/dist/embed/voice/audio-forwarder.worklet.d.ts +22 -0
- package/dist/embed/voice/audio-utils.d.ts +38 -0
- package/dist/embed/voice/deepgram-stt.d.ts +69 -0
- package/dist/embed/voice/mic-capture.d.ts +34 -0
- package/dist/embed/voice/sentence-split.d.ts +11 -0
- package/dist/embed/voice/voice-http.d.ts +8 -0
- package/dist/embed/voice/voice-token.d.ts +40 -0
- package/dist/embed/voice-bus.d.ts +75 -0
- package/dist/embed/voice-config.d.ts +52 -0
- package/dist/embed/voice-fillers.d.ts +2 -0
- package/dist/embed/voice-prefs.d.ts +55 -0
- package/dist/embed/voice-tts.d.ts +101 -0
- package/dist/embed/workspace-paths.d.ts +9 -0
- package/dist/infrastructure/telemetry/session-span-processor.d.ts +11 -0
- package/dist/infrastructure/telemetry/web-sdk.d.ts +29 -0
- package/dist/lib/belong.d.ts +12 -0
- package/dist/lib/tab-leadership.d.ts +46 -0
- package/dist/lib/use-tab-leadership.d.ts +8 -0
- package/dist/lib/utils.d.ts +9 -0
- package/dist/public-api.d.ts +3 -0
- package/dist/routes/chat-attachment-chip.d.ts +9 -0
- package/dist/routes/chat.d.ts +29 -0
- package/dist/routes/documents.d.ts +16 -0
- package/dist/routes/files.d.ts +14 -0
- package/dist/routes/sample-artifact.d.ts +7 -0
- package/dist/routes/sessions.d.ts +4 -0
- package/dist/routes/static-chat-fixture.d.ts +26 -0
- package/dist/stream/ai-sdk-part-renderers.d.ts +66 -0
- package/dist/stream/belong-chat-transport.d.ts +679 -0
- package/dist/stream/belong-data-parts.d.ts +207 -0
- package/dist/stream/chat-upload.d.ts +35 -0
- package/dist/stream/plan-panel-store.d.ts +11 -0
- package/dist/stream/plan-progress-store.d.ts +4 -0
- package/dist/stream/plan-progress.d.ts +25 -0
- package/dist/stream/plan-store.d.ts +16 -0
- package/dist/stream/preview-panel-store.d.ts +50 -0
- package/dist/stream/sandbox-output.d.ts +32 -0
- package/dist/stream/select-latest-plan.d.ts +17 -0
- package/dist/stream/select-session-usage.d.ts +23 -0
- package/dist/stream/session-title.d.ts +15 -0
- package/dist/stream/stream-state-store.d.ts +67 -0
- package/dist/stream/tool-io.d.ts +7 -0
- package/dist/test/render.d.ts +23 -0
- package/dist/test-setup.d.ts +1 -0
- package/dist/types/public.d.ts +189 -0
- package/package.json +38 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Audio utility functions for the voice call system.
|
|
3
|
+
*
|
|
4
|
+
* PCM16 / Float32 conversion and base64 <-> ArrayBuffer helpers, ported from
|
|
5
|
+
* belong-sdk-old/src/voice/audio-utils.ts under strict TS (no any/as/!).
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Converts Float32 audio samples to little-endian PCM16.
|
|
9
|
+
*
|
|
10
|
+
* Each sample is clamped to [-1, 1] then scaled to the signed 16-bit range
|
|
11
|
+
* (negative samples by 0x8000, non-negative by 0x7fff) and written
|
|
12
|
+
* little-endian into a fresh buffer.
|
|
13
|
+
*
|
|
14
|
+
* @param input - Float32 audio samples, typically in [-1, 1].
|
|
15
|
+
* @returns An ArrayBuffer of little-endian Int16 PCM samples.
|
|
16
|
+
*/
|
|
17
|
+
export declare function floatTo16BitPcm(input: Float32Array): ArrayBuffer;
|
|
18
|
+
/**
|
|
19
|
+
* Converts PCM16 samples back to Float32 in the [-1, 1) range.
|
|
20
|
+
*
|
|
21
|
+
* @param input - Int16 PCM samples.
|
|
22
|
+
* @returns A Float32Array where each sample is divided by 32768.
|
|
23
|
+
*/
|
|
24
|
+
export declare function int16ToFloat32(input: Int16Array): Float32Array;
|
|
25
|
+
/**
|
|
26
|
+
* Encodes the bytes of an ArrayBuffer as a base64 string.
|
|
27
|
+
*
|
|
28
|
+
* @param buf - The ArrayBuffer to encode.
|
|
29
|
+
* @returns The base64 representation of the buffer's bytes.
|
|
30
|
+
*/
|
|
31
|
+
export declare function arrayBufferToBase64(buf: ArrayBuffer): string;
|
|
32
|
+
/**
|
|
33
|
+
* Decodes a base64 string into an ArrayBuffer.
|
|
34
|
+
*
|
|
35
|
+
* @param b64 - The base64 string to decode.
|
|
36
|
+
* @returns An ArrayBuffer containing the decoded bytes.
|
|
37
|
+
*/
|
|
38
|
+
export declare function base64ToArrayBuffer(b64: string): ArrayBuffer;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deepgram Nova-3 streaming STT WebSocket client.
|
|
3
|
+
*
|
|
4
|
+
* PCM16 (16 kHz mono) ──▶ WebSocket(wss, ["bearer", token]) ──▶ Deepgram
|
|
5
|
+
* ◀── Results frames (interim / is_final / speech_final)
|
|
6
|
+
*
|
|
7
|
+
* Three-level transcript accumulation (mirrors the legacy belong-sdk-old
|
|
8
|
+
* client):
|
|
9
|
+
*
|
|
10
|
+
* 1. interim — `is_final === false`: emitted live via `onInterim`.
|
|
11
|
+
* 2. segment — `is_final === true && speech_final === false`:
|
|
12
|
+
* a within-utterance boundary; pushed to a buffer.
|
|
13
|
+
* 3. utterance flush — `is_final === true && speech_final === true`:
|
|
14
|
+
* the segment is buffered, then a `flushMs` debounce
|
|
15
|
+
* timer is (re)armed. When it fires the buffered
|
|
16
|
+
* segments are joined and emitted via `onFinal`.
|
|
17
|
+
*
|
|
18
|
+
* The debounce keeps a short pause from splitting one spoken request into
|
|
19
|
+
* multiple backend calls. `finalize()` is the push-to-talk release path: it
|
|
20
|
+
* sends Deepgram a `Finalize` so the still-buffered trailing audio (the last
|
|
21
|
+
* word or two) is transcribed and returned, then emits the COMPLETE utterance
|
|
22
|
+
* after a short grace — so a release never clips the end of speech.
|
|
23
|
+
* `forceFlush()` emits whatever is already buffered immediately (no Finalize
|
|
24
|
+
* round-trip); `discard()` drops the buffer without emitting (it is stale
|
|
25
|
+
* because the backend already consumed it).
|
|
26
|
+
*
|
|
27
|
+
* A 3 s keepalive frame is sent while the socket is open so Deepgram does not
|
|
28
|
+
* close an idle stream.
|
|
29
|
+
*/
|
|
30
|
+
/**
|
|
31
|
+
* After `finalize()` sends Deepgram a `Finalize` request, the trailing words
|
|
32
|
+
* the user just spoke arrive as one or more `is_final` frames a moment later.
|
|
33
|
+
* We wait this grace (re-armed on each finalize-induced final, so multiple
|
|
34
|
+
* frames coalesce) before emitting, so the last word is never dropped. Kept
|
|
35
|
+
* well under the bus-level anti-hang fallback so the grace always wins.
|
|
36
|
+
*/
|
|
37
|
+
export declare const FINALIZE_GRACE_MS = 400;
|
|
38
|
+
export type SttCallbacks = {
|
|
39
|
+
readonly onInterim: (text: string) => void;
|
|
40
|
+
readonly onFinal: (text: string) => void;
|
|
41
|
+
readonly onOpen: () => void;
|
|
42
|
+
readonly onError: (e: Error) => void;
|
|
43
|
+
readonly onClose: () => void;
|
|
44
|
+
};
|
|
45
|
+
export type DeepgramStt = {
|
|
46
|
+
readonly sendAudio: (pcm: ArrayBuffer) => void;
|
|
47
|
+
readonly forceFlush: () => void;
|
|
48
|
+
readonly finalize: () => void;
|
|
49
|
+
readonly discard: () => void;
|
|
50
|
+
readonly close: () => void;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Create a Deepgram streaming STT client.
|
|
54
|
+
*
|
|
55
|
+
* @param opts.token - Bearer token for the `["bearer", token]` subprotocol.
|
|
56
|
+
* @param opts.wssUrl - Fully-formed Deepgram listen URL (model + params).
|
|
57
|
+
* @param opts.flushMs - Debounce window after a `speech_final` before the
|
|
58
|
+
* buffered utterance is emitted via `onFinal`.
|
|
59
|
+
* @param opts.wsFactory - WebSocket constructor (injectable for tests).
|
|
60
|
+
* Defaults to `(u, p) => new WebSocket(u, p)`.
|
|
61
|
+
* @returns A `DeepgramStt` handle: `sendAudio` / `forceFlush` / `discard` /
|
|
62
|
+
* `close`.
|
|
63
|
+
*/
|
|
64
|
+
export declare function createDeepgramStt(opts: {
|
|
65
|
+
token: string;
|
|
66
|
+
wssUrl: string;
|
|
67
|
+
flushMs: number;
|
|
68
|
+
wsFactory?: (url: string, protocols?: string[]) => WebSocket;
|
|
69
|
+
} & SttCallbacks): DeepgramStt;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Microphone capture → PCM16 frames.
|
|
3
|
+
*
|
|
4
|
+
* getUserMedia (mono) ──▶ AudioContext({ sampleRate: 16000 })
|
|
5
|
+
* ──▶ AudioWorklet "audio-forwarder" (preferred)
|
|
6
|
+
* ──▶ ScriptProcessorNode (fallback)
|
|
7
|
+
* ──▶ floatTo16BitPcm(...) ──▶ onPcm(ArrayBuffer)
|
|
8
|
+
*
|
|
9
|
+
* The capture is a small handle with `start()` / `stop()`. `start()` opens
|
|
10
|
+
* the mic at 16 kHz mono and streams little-endian PCM16 frames to `onPcm`;
|
|
11
|
+
* any setup failure is delivered to `onError`. `stop()` tears every handle
|
|
12
|
+
* down and is idempotent — safe before `start()` and after a failed start.
|
|
13
|
+
*
|
|
14
|
+
* Browser globals are optional-narrowed with explicit `=== undefined` /
|
|
15
|
+
* `!== undefined` checks so this module imports cleanly in a non-browser
|
|
16
|
+
* (test) context; nothing browser-bound is touched until `start()`.
|
|
17
|
+
*/
|
|
18
|
+
export type MicCapture = {
|
|
19
|
+
readonly start: () => Promise<void>;
|
|
20
|
+
readonly stop: () => void;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Create a microphone capture handle.
|
|
24
|
+
*
|
|
25
|
+
* @param opts.onPcm - Called with each little-endian PCM16 frame (one mic
|
|
26
|
+
* render quantum) as an `ArrayBuffer`.
|
|
27
|
+
* @param opts.onError - Called with an `Error` if the mic is unavailable or
|
|
28
|
+
* `start()` fails. `"mic_unavailable"` means `getUserMedia` is missing.
|
|
29
|
+
* @returns A `MicCapture` with `start()` / `stop()`.
|
|
30
|
+
*/
|
|
31
|
+
export declare function createMicCapture(opts: {
|
|
32
|
+
onPcm: (pcm: ArrayBuffer) => void;
|
|
33
|
+
onError: (e: Error) => void;
|
|
34
|
+
}): MicCapture;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Split text into sentences for chunked TTS playback.
|
|
2
|
+
*
|
|
3
|
+
* Boundary rule: a run of terminators (`.`/`!`/`?`) ends a sentence only when
|
|
4
|
+
* it is at end-of-string, OR is followed by whitespace whose next non-space
|
|
5
|
+
* char looks like a sentence start (uppercase / digit / quote / open-bracket —
|
|
6
|
+
* NOT lowercase or a comma), AND the word ending at the terminator is not a
|
|
7
|
+
* known abbreviation. This intentionally under-splits (e.g. "Node.js now."
|
|
8
|
+
* stays whole) — perfect NLP is out of scope; this only feeds TTS chunking,
|
|
9
|
+
* where slight over/under-split is fine as long as no empty chunks are emitted
|
|
10
|
+
* and listed abbreviations never break a sentence. */
|
|
11
|
+
export declare function splitSentences(text: string): string[];
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON content-type + the standard auth/telemetry headers for voice endpoints.
|
|
3
|
+
* Async because the component DI token getter is awaited per request (see
|
|
4
|
+
* `authHeaders`). The Bearer header is included only when a token resolves.
|
|
5
|
+
*/
|
|
6
|
+
export declare function voiceJsonHeaders(): Promise<Record<string, string>>;
|
|
7
|
+
/** Absolute URL for a voice endpoint path (e.g. "/v1/voice/tts"). */
|
|
8
|
+
export declare function voiceUrl(path: string): string;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Mirrors the belong-cloud `/v1/voice/token` 200 body. `deepgramToken` /
|
|
4
|
+
* `elevenlabsToken` may be empty (per-provider mint — see header), so they are
|
|
5
|
+
* not `.min(1)`; `voiceId` is likewise empty when ElevenLabs is unconfigured.
|
|
6
|
+
*/
|
|
7
|
+
declare const voiceTokensSchema: z.ZodObject<{
|
|
8
|
+
deepgramToken: z.ZodString;
|
|
9
|
+
deepgramWssUrl: z.ZodString;
|
|
10
|
+
elevenlabsToken: z.ZodString;
|
|
11
|
+
voiceId: z.ZodString;
|
|
12
|
+
}, "strip", z.ZodTypeAny, {
|
|
13
|
+
deepgramToken: string;
|
|
14
|
+
deepgramWssUrl: string;
|
|
15
|
+
elevenlabsToken: string;
|
|
16
|
+
voiceId: string;
|
|
17
|
+
}, {
|
|
18
|
+
deepgramToken: string;
|
|
19
|
+
deepgramWssUrl: string;
|
|
20
|
+
elevenlabsToken: string;
|
|
21
|
+
voiceId: string;
|
|
22
|
+
}>;
|
|
23
|
+
export type VoiceTokens = z.infer<typeof voiceTokensSchema>;
|
|
24
|
+
export type VoiceTokenResult = {
|
|
25
|
+
ok: true;
|
|
26
|
+
tokens: VoiceTokens;
|
|
27
|
+
} | {
|
|
28
|
+
ok: false;
|
|
29
|
+
reason: "unconfigured" | "error";
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Fetch the voice-token bundle, reusing a cached success within its TTL.
|
|
33
|
+
*
|
|
34
|
+
* Only successes are cached — `unconfigured` / `error` are returned without
|
|
35
|
+
* caching so a transient failure does not pin a bad state for 20 s.
|
|
36
|
+
*/
|
|
37
|
+
export declare const fetchVoiceTokens: () => Promise<VoiceTokenResult>;
|
|
38
|
+
/** Test hook — clears the cached bundle. */
|
|
39
|
+
export declare const __resetVoiceTokenCache: () => void;
|
|
40
|
+
export {};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { fetchVoiceTokens } from './voice/voice-token.ts';
|
|
2
|
+
import { createDeepgramStt } from './voice/deepgram-stt.ts';
|
|
3
|
+
import { createMicCapture } from './voice/mic-capture.ts';
|
|
4
|
+
export type VoiceStatus = "idle" | "requesting" | "listening" | "transcribing" | "error";
|
|
5
|
+
/**
|
|
6
|
+
* Capture state. `status` is the single source of truth; `interim` is the live
|
|
7
|
+
* (non-final) transcript surfaced to the overlay so the user sees their words
|
|
8
|
+
* appear while speaking. `interim` is `""` when there is no live transcript.
|
|
9
|
+
*/
|
|
10
|
+
export type VoiceState = {
|
|
11
|
+
readonly status: VoiceStatus;
|
|
12
|
+
readonly interim: string;
|
|
13
|
+
readonly errorMessage?: string;
|
|
14
|
+
};
|
|
15
|
+
export declare const peekVoiceState: () => VoiceState;
|
|
16
|
+
export declare const subscribeVoiceState: (listener: () => void) => (() => void);
|
|
17
|
+
export declare const peekVoiceConfigured: () => boolean;
|
|
18
|
+
export declare const subscribeTranscript: (listener: (text: string) => void) => (() => void);
|
|
19
|
+
/**
|
|
20
|
+
* Push a final transcript to subscribers. Exposed for the test hook
|
|
21
|
+
* (window.belong.__pushVoiceTranscript) AND used by the engine after a
|
|
22
|
+
* successful transcription.
|
|
23
|
+
*/
|
|
24
|
+
export declare const pushTranscript: (text: string) => void;
|
|
25
|
+
export declare const isVoiceSupported: () => boolean;
|
|
26
|
+
/**
|
|
27
|
+
* The engine builders, behind overridable references so unit tests can inject
|
|
28
|
+
* fakes WITHOUT a real WebSocket or AudioContext (`__setVoiceEngineFactories`).
|
|
29
|
+
* Production code only ever reads `engine.*`.
|
|
30
|
+
*/
|
|
31
|
+
type VoiceEngineFactories = {
|
|
32
|
+
fetchTokens: typeof fetchVoiceTokens;
|
|
33
|
+
createStt: typeof createDeepgramStt;
|
|
34
|
+
createMic: typeof createMicCapture;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Test-only: override one or more engine factories. Pass `null` to restore the
|
|
38
|
+
* real builders. Production code never calls this.
|
|
39
|
+
*/
|
|
40
|
+
export declare const __setVoiceEngineFactories: (overrides: Partial<VoiceEngineFactories> | null) => void;
|
|
41
|
+
/**
|
|
42
|
+
* Read the latest live (non-final) interim transcript, "" when none. Sourced
|
|
43
|
+
* from the reactive state so it stays consistent with `peekVoiceState().interim`.
|
|
44
|
+
*/
|
|
45
|
+
export declare const peekVoiceInterim: () => string;
|
|
46
|
+
/**
|
|
47
|
+
* Begin a push-to-talk capture: mint a voice token, open the streaming STT,
|
|
48
|
+
* then start the mic. No-op unless idle/error (a re-entrant start while
|
|
49
|
+
* requesting/listening is ignored).
|
|
50
|
+
*/
|
|
51
|
+
export declare const startCapture: () => void;
|
|
52
|
+
/**
|
|
53
|
+
* Stop the mic and finalize the utterance. No-op unless listening. Rather than
|
|
54
|
+
* emitting whatever is buffered the instant the key is released (which clips
|
|
55
|
+
* the last word or two still being processed by Deepgram), `finalize()` asks
|
|
56
|
+
* Deepgram to transcribe its remaining buffered audio and return it; the
|
|
57
|
+
* complete final then arrives via the STT's `onFinal` (→ pushTranscript →
|
|
58
|
+
* idle). A fallback timer guarantees we never hang in `transcribing`.
|
|
59
|
+
*/
|
|
60
|
+
export declare const stopCapture: () => void;
|
|
61
|
+
/** Abandon the current capture without transcribing. */
|
|
62
|
+
export declare const cancelCapture: () => void;
|
|
63
|
+
/**
|
|
64
|
+
* Back-compat toggle for callers that drive a single mic button: flip
|
|
65
|
+
* between start and stop based on the current status. Idle/error → start;
|
|
66
|
+
* listening → stop; transcribing/requesting → no-op.
|
|
67
|
+
*/
|
|
68
|
+
export declare const toggleVoiceCapture: () => void;
|
|
69
|
+
/**
|
|
70
|
+
* Test-only: tear down every side effect (live stt/mic, pending timers) and
|
|
71
|
+
* reset to a clean idle store with no listeners. The engine is a module
|
|
72
|
+
* singleton, so unit tests must reset it in `beforeEach` to stay isolated.
|
|
73
|
+
*/
|
|
74
|
+
export declare const __resetVoiceForTest: () => void;
|
|
75
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Voice configuration — module-level knobs shared by the capture engine
|
|
3
|
+
* (`voice-bus.ts`) and the TTS player (`voice-tts.ts`).
|
|
4
|
+
*
|
|
5
|
+
* The host sets these once at init (or via the public API):
|
|
6
|
+
*
|
|
7
|
+
* • `apiBaseUrl` — where `/v1/voice/*` lives (same origin as the rest
|
|
8
|
+
* of the backend RPC client). Default "" → same-origin
|
|
9
|
+
* relative fetch.
|
|
10
|
+
* • `pushToTalkKey` — a `KeyboardEvent.code` (default "ControlLeft") the
|
|
11
|
+
* dock binds for hold-to-talk. This is the HOST default;
|
|
12
|
+
* the end user may override it per browser via
|
|
13
|
+
* `voice-prefs.ts` (the dock binds the EFFECTIVE key
|
|
14
|
+
* from `getEffectivePushToTalkKey()`).
|
|
15
|
+
* • `autoplayTts` — whether assistant replies are spoken aloud by default.
|
|
16
|
+
* • `voiceId` — TTS voice id; "" means "let the backend default apply".
|
|
17
|
+
* • `utteranceFlushMs` — how long (ms) to wait before flushing a buffered
|
|
18
|
+
* partial utterance to the backend. Default 1000.
|
|
19
|
+
* • `callSilenceMs` — silence window (ms) after which a live call turn ends.
|
|
20
|
+
* Default 3000.
|
|
21
|
+
* • `ttsPlaybackRate` — client-side playback speed for spoken audio (filler +
|
|
22
|
+
* reply). Gemini's batch TTS has no rate knob, so we slow
|
|
23
|
+
* it on the element (pitch preserved). Default 0.9 (10%
|
|
24
|
+
* slower); sane range 0.5–1.5.
|
|
25
|
+
* • `ttsChunkGapMs` — minimum pause (ms) between sentence chunks in
|
|
26
|
+
* conversational playback, so consecutive sentences
|
|
27
|
+
* breathe like natural speech instead of running
|
|
28
|
+
* back-to-back. Default 350; 0 disables the pause.
|
|
29
|
+
*
|
|
30
|
+
* Plain module state mirrors `theme.ts`: no class, no DI — these are global
|
|
31
|
+
* UX preferences for the embedded dock, not domain state.
|
|
32
|
+
*/
|
|
33
|
+
export type VoiceConfigInput = {
|
|
34
|
+
readonly apiBaseUrl?: string;
|
|
35
|
+
readonly pushToTalkKey?: string;
|
|
36
|
+
readonly autoplayTts?: boolean;
|
|
37
|
+
readonly voiceId?: string;
|
|
38
|
+
readonly utteranceFlushMs?: number;
|
|
39
|
+
readonly callSilenceMs?: number;
|
|
40
|
+
readonly ttsPlaybackRate?: number;
|
|
41
|
+
readonly ttsChunkGapMs?: number;
|
|
42
|
+
};
|
|
43
|
+
/** Merge host-provided config; `undefined` fields leave the current value intact. */
|
|
44
|
+
export declare const configureVoice: (input: VoiceConfigInput) => void;
|
|
45
|
+
export declare const getVoiceApiBaseUrl: () => string;
|
|
46
|
+
export declare const getPushToTalkKey: () => string;
|
|
47
|
+
export declare const getAutoplayTtsDefault: () => boolean;
|
|
48
|
+
export declare const getVoiceId: () => string;
|
|
49
|
+
export declare const getUtteranceFlushMs: () => number;
|
|
50
|
+
export declare const getCallSilenceMs: () => number;
|
|
51
|
+
export declare const getTtsPlaybackRate: () => number;
|
|
52
|
+
export declare const getTtsChunkGapMs: () => number;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* User voice preferences — the per-browser push-to-talk key override and the
|
|
3
|
+
* first-conversation voice hint flag.
|
|
4
|
+
*
|
|
5
|
+
* Host default (voice-config `pushToTalkKey`) ◀ user pref (localStorage)
|
|
6
|
+
*
|
|
7
|
+
* `voice-config.ts` carries the HOST's deployment-wide knobs (set once via
|
|
8
|
+
* `configureVoice`); this module layers the END USER's own choice on top, the
|
|
9
|
+
* same way `theme.ts` layers user prefs over the host theme. Components read
|
|
10
|
+
* the EFFECTIVE key (user pref if set, else host default) through a tiny
|
|
11
|
+
* external store (`subscribePushToTalkKey` / `peekPushToTalkKey`) so the
|
|
12
|
+
* settings UI, the composer tooltip, and the dock's key handler all rebind
|
|
13
|
+
* live when the user picks a new key.
|
|
14
|
+
*
|
|
15
|
+
* localStorage is a perimeter: the prefs bag is zod-validated on read and any
|
|
16
|
+
* junk (corrupted JSON, wrong shape, storage disabled) degrades to "no pref".
|
|
17
|
+
*/
|
|
18
|
+
/** `useSyncExternalStore` subscribe — fires on set/clear of the user key. */
|
|
19
|
+
export declare const subscribePushToTalkKey: (listener: () => void) => (() => void);
|
|
20
|
+
/** The user's own override, or `null` when the host default applies. */
|
|
21
|
+
export declare const peekUserPushToTalkKey: () => string | null;
|
|
22
|
+
/** The key the dock actually binds: user pref if set, else the host default. */
|
|
23
|
+
export declare const getEffectivePushToTalkKey: () => string;
|
|
24
|
+
/** `useSyncExternalStore` snapshot — the effective key (string, so stable). */
|
|
25
|
+
export declare const peekPushToTalkKey: () => string;
|
|
26
|
+
/** Persist a user-chosen `KeyboardEvent.code` and notify subscribers. */
|
|
27
|
+
export declare const setUserPushToTalkKey: (code: string) => void;
|
|
28
|
+
/** Drop the user override (back to the host default) and notify subscribers. */
|
|
29
|
+
export declare const clearUserPushToTalkKey: () => void;
|
|
30
|
+
/** True once the push-to-talk hint chip was dismissed (X or first capture). */
|
|
31
|
+
export declare const readVoiceHintDismissed: () => boolean;
|
|
32
|
+
/** Persist the hint dismissal so it never shows again in this browser. */
|
|
33
|
+
export declare const dismissVoiceHint: () => void;
|
|
34
|
+
/**
|
|
35
|
+
* The user's explicit speaker choice — `true`/`false` once they've toggled it,
|
|
36
|
+
* or `null` when they never have (the host `autoplayTts` default then applies).
|
|
37
|
+
* localStorage is a perimeter: only the two known string markers read as a
|
|
38
|
+
* decision; anything else (junk, storage disabled) degrades to "no choice".
|
|
39
|
+
*/
|
|
40
|
+
export declare const readPersistedTtsEnabled: () => boolean | null;
|
|
41
|
+
/** Persist the user's speaker choice so it survives a reload. */
|
|
42
|
+
export declare const setPersistedTtsEnabled: (enabled: boolean) => void;
|
|
43
|
+
/** Drop the persisted speaker choice (back to the host default). Test-only. */
|
|
44
|
+
export declare const clearPersistedTtsEnabled: () => void;
|
|
45
|
+
/**
|
|
46
|
+
* Human label for a `KeyboardEvent.code`: "ControlLeft" → "Left Ctrl",
|
|
47
|
+
* "KeyA" → "A", "Digit7" → "7". Codes with no friendlier reading ("Space",
|
|
48
|
+
* "F1", unknown codes) pass through unchanged.
|
|
49
|
+
*/
|
|
50
|
+
export declare const formatKeyCode: (code: string) => string;
|
|
51
|
+
/**
|
|
52
|
+
* Test-only: clear listeners and re-seed the user key from localStorage. The
|
|
53
|
+
* store is a module singleton, so unit tests reset it in `beforeEach`.
|
|
54
|
+
*/
|
|
55
|
+
export declare const __resetVoicePrefsForTest: () => void;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Voice TTS player — autoplay of assistant replies via the BATCH `/v1/voice/tts`
|
|
3
|
+
* endpoint, played through an `HTMLAudioElement`, with barge-in cancel.
|
|
4
|
+
*
|
|
5
|
+
* speak(text) ──▶ POST /v1/voice/tts ──▶ audio Blob (e.g. audio/wav)
|
|
6
|
+
* ──▶ new Audio(objectURL).play()
|
|
7
|
+
*
|
|
8
|
+
* This is the BATCH path: the backend's working provider is Gemini, which is a
|
|
9
|
+
* single REST `:generateContent` call returning the whole clip — not a token
|
|
10
|
+
* stream — so the SDK fetches the full audio body and plays it as one clip
|
|
11
|
+
* rather than scheduling PCM chunks over a WebSocket. The public store API is
|
|
12
|
+
* unchanged (speak / stopSpeaking / toggle / setEnabled / isEnabled / peek /
|
|
13
|
+
* subscribe + the lazy `enabled` default).
|
|
14
|
+
*
|
|
15
|
+
* The player owns at most one in-flight clip: a fresh `speak()` cancels whatever
|
|
16
|
+
* is playing first (single active clip). `enabled` gates autoplay (the dock's
|
|
17
|
+
* speaker toggle); turning it off mid-clip cancels the current clip.
|
|
18
|
+
*
|
|
19
|
+
* Generation guard: each `speak()` bumps a monotonic `speakGeneration` and binds
|
|
20
|
+
* the fetch + audio-element lifecycle to the value it captured. A later `speak()`
|
|
21
|
+
* (or `stopSpeaking()`) bumps the generation again, so a superseded or cancelled
|
|
22
|
+
* clip's late events (a fetch that resolves after cancel, a stale `onended`)
|
|
23
|
+
* become no-ops and cannot flip the new clip's status.
|
|
24
|
+
*
|
|
25
|
+
* Failure is silent: a non-ok response (503 unconfigured / 502 provider error),
|
|
26
|
+
* a network error, or a blocked autoplay lands the player back in idle with no
|
|
27
|
+
* thrown error — voice simply does not play, exactly like a missing key today.
|
|
28
|
+
*/
|
|
29
|
+
export type TtsStatus = "idle" | "loading" | "speaking";
|
|
30
|
+
export type TtsState = {
|
|
31
|
+
readonly status: TtsStatus;
|
|
32
|
+
readonly enabled: boolean;
|
|
33
|
+
};
|
|
34
|
+
export declare const peekTtsState: () => TtsState;
|
|
35
|
+
export declare const subscribeTtsState: (listener: () => void) => (() => void);
|
|
36
|
+
export declare const isTtsEnabled: () => boolean;
|
|
37
|
+
export declare const setTtsEnabled: (value: boolean) => void;
|
|
38
|
+
export declare const toggleTtsEnabled: () => void;
|
|
39
|
+
/** Minimal player surface (kept stable so the chunk queue + tests don't change). */
|
|
40
|
+
export type TtsAudio = {
|
|
41
|
+
play: () => Promise<void>;
|
|
42
|
+
pause: () => void;
|
|
43
|
+
onplay: (() => void) | null;
|
|
44
|
+
onended: (() => void) | null;
|
|
45
|
+
onerror: (() => void) | null;
|
|
46
|
+
currentTime: number;
|
|
47
|
+
/** Playback speed multiplier (Web Audio also shifts pitch); set before play(). */
|
|
48
|
+
playbackRate: number;
|
|
49
|
+
};
|
|
50
|
+
/** Seam for the network call so tests never hit the wire. */
|
|
51
|
+
type FetchLike = typeof fetch;
|
|
52
|
+
/** Seam for audio construction so tests never touch real Web Audio. */
|
|
53
|
+
type AudioFactory = (data: ArrayBuffer) => TtsAudio;
|
|
54
|
+
/** The slice of `AudioContext` the player needs — narrowed so tests inject a fake. */
|
|
55
|
+
export type TtsAudioContext = {
|
|
56
|
+
readonly state: AudioContextState;
|
|
57
|
+
readonly destination: AudioNode;
|
|
58
|
+
resume: () => Promise<void>;
|
|
59
|
+
decodeAudioData: (data: ArrayBuffer) => Promise<AudioBuffer>;
|
|
60
|
+
createBufferSource: () => AudioBufferSourceNode;
|
|
61
|
+
};
|
|
62
|
+
type AudioContextFactory = () => TtsAudioContext | null;
|
|
63
|
+
/**
|
|
64
|
+
* Resume the shared AudioContext from a user gesture (mic press / send) so the
|
|
65
|
+
* later, async TTS reply is allowed to play under the browser's autoplay
|
|
66
|
+
* policy. Safe + idempotent: a no-op when Web Audio is unavailable or the
|
|
67
|
+
* context is already running.
|
|
68
|
+
*/
|
|
69
|
+
export declare const unlockTtsPlayback: () => void;
|
|
70
|
+
/** Cancel any in-flight clip (barge-in) and reset to idle. */
|
|
71
|
+
export declare const stopSpeaking: () => void;
|
|
72
|
+
/**
|
|
73
|
+
* Fetch TTS audio for `text` from the batch endpoint and play it. No-op when
|
|
74
|
+
* disabled or when the text is empty/whitespace. Never throws — any failure
|
|
75
|
+
* (unconfigured 503, provider 502, network, decode, blocked autoplay) lands the
|
|
76
|
+
* player back in idle.
|
|
77
|
+
*/
|
|
78
|
+
export declare const speak: (text: string) => void;
|
|
79
|
+
/**
|
|
80
|
+
* Speak a long assistant reply conversationally: first condense it via
|
|
81
|
+
* `/v1/voice/spoken-summary`, then synthesize + play the result one sentence
|
|
82
|
+
* chunk at a time with one-ahead prefetch so the next chunk's audio is ready
|
|
83
|
+
* before the current one ends. No-op when disabled or empty. Never throws —
|
|
84
|
+
* a failed first chunk falls back to a single `speak()`; failed later chunks
|
|
85
|
+
* are skipped. Superseded by `stopSpeaking()` or a later speak via the shared
|
|
86
|
+
* generation guard (remaining chunks stop fetching/playing).
|
|
87
|
+
*/
|
|
88
|
+
export declare const speakConversational: (fullText: string) => Promise<void>;
|
|
89
|
+
/**
|
|
90
|
+
* Test-only: inject a fake `fetch` and audio factory so unit tests exercise the
|
|
91
|
+
* store's status machine without a real network or `Audio` element. Pass `null`
|
|
92
|
+
* to reset to the real implementations.
|
|
93
|
+
*/
|
|
94
|
+
export declare const __setTtsFetch: (fake: FetchLike | null) => void;
|
|
95
|
+
export declare const __setTtsAudioFactory: (fake: AudioFactory | null) => void;
|
|
96
|
+
/** Test-only: inject a fake AudioContext (drives `unlockTtsPlayback` + the real
|
|
97
|
+
* default factory's decode/play path). Pass `null` to restore the real one. */
|
|
98
|
+
export declare const __setTtsAudioContextFactory: (fake: AudioContextFactory | null) => void;
|
|
99
|
+
/** Test-only: cancel playback, reset the seed flag + store, drop listeners. */
|
|
100
|
+
export declare const __resetTtsForTest: () => void;
|
|
101
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tiny pure helpers for splitting a workspace-relative path (`a/b/c.csv`) into
|
|
3
|
+
* its parts. Shared by the `@`-mention picker + chip and the at-mention parser
|
|
4
|
+
* so the "filename is everything after the last slash" rule lives in one place.
|
|
5
|
+
*/
|
|
6
|
+
/** The path segment after the last `/` (the filename). */
|
|
7
|
+
export declare const basename: (path: string) => string;
|
|
8
|
+
/** The directory portion before the last `/` (empty for a top-level file). */
|
|
9
|
+
export declare const dirname: (path: string) => string;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Span, SpanProcessor } from '@opentelemetry/sdk-trace-web';
|
|
2
|
+
/** Span-attribute key; mirrors the `session.id` belong-cloud stamps server-side. */
|
|
3
|
+
export declare const SESSION_ID_ATTRIBUTE = "session.id";
|
|
4
|
+
export declare class SessionSpanProcessor implements SpanProcessor {
|
|
5
|
+
#private;
|
|
6
|
+
constructor(getActiveSessionId: () => string | null);
|
|
7
|
+
onStart(span: Span): void;
|
|
8
|
+
onEnd(): void;
|
|
9
|
+
forceFlush(): Promise<void>;
|
|
10
|
+
shutdown(): Promise<void>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser-side OpenTelemetry bootstrap. Called once from `embed/bootstrap.ts`
|
|
3
|
+
* (the single SDK init point shared by the dev server and the production embed)
|
|
4
|
+
* BEFORE any user code, so:
|
|
5
|
+
* • document-load instrumentation captures paint timings
|
|
6
|
+
* • fetch instrumentation patches window.fetch before React makes calls
|
|
7
|
+
* • W3C traceparent gets injected on outbound requests
|
|
8
|
+
* • every span is stamped with the active `session.id` (see options below)
|
|
9
|
+
*
|
|
10
|
+
* Exporter selection: with VITE_OTEL_EXPORTER_OTLP_ENDPOINT set, spans ship
|
|
11
|
+
* there (point it at the local Collector in docker-compose.otel.yml to reach
|
|
12
|
+
* Jaeger). With it unset we use a console exporter IN DEV ONLY — a production
|
|
13
|
+
* embed with no endpoint stays silent rather than spamming the host's console.
|
|
14
|
+
*
|
|
15
|
+
* The Collector MUST have CORS enabled for the browser to POST OTLP/HTTP
|
|
16
|
+
* (the included otel-collector-config.yaml does this).
|
|
17
|
+
*/
|
|
18
|
+
/** Options for {@link startWebTelemetry}. */
|
|
19
|
+
type WebTelemetryOptions = {
|
|
20
|
+
/**
|
|
21
|
+
* Reads the current chat session id (or null). When supplied, every span is
|
|
22
|
+
* stamped with `session.id` so browser traces correlate with belong-cloud's
|
|
23
|
+
* server-side `session.id` spans + logs. Injected (not imported) to keep this
|
|
24
|
+
* module free of a `stream/` dependency — see {@link SessionSpanProcessor}.
|
|
25
|
+
*/
|
|
26
|
+
getActiveSessionId?: () => string | null;
|
|
27
|
+
};
|
|
28
|
+
export declare function startWebTelemetry(options?: WebTelemetryOptions): void;
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Belong brand palette (from the Belong brand kit). Ocean is the one accent. */
|
|
2
|
+
export declare const BELONG: {
|
|
3
|
+
readonly deepSea: "#0F1B2E";
|
|
4
|
+
readonly ocean: "#2D6F66";
|
|
5
|
+
readonly coral: "#E06A4F";
|
|
6
|
+
readonly sun: "#D9A441";
|
|
7
|
+
readonly sand: "#F1E7D6";
|
|
8
|
+
readonly heather: "#6D5B8C";
|
|
9
|
+
readonly ink: "#1C2330";
|
|
10
|
+
};
|
|
11
|
+
/** First letter for an avatar, from a username (falls back to '?'). */
|
|
12
|
+
export declare const avatarInitial: (name: string | null | undefined) => string;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-tab same-session guard (plan 007 §C5).
|
|
3
|
+
*
|
|
4
|
+
* Two dock tabs open on ONE session can double-send and clobber the persisted
|
|
5
|
+
* `{ runId, lastEventId }` stream state. This module elects a single LEADER
|
|
6
|
+
* tab per session over a `BroadcastChannel` (`belong:session:<sessionId>`);
|
|
7
|
+
* follower tabs banner "open in another tab" and disable the composer.
|
|
8
|
+
*
|
|
9
|
+
* Protocol (all messages Zod-parsed at the perimeter — §4):
|
|
10
|
+
* - on start every tab broadcasts a `claim` carrying `{ tabId, claimedAtMs }`
|
|
11
|
+
* - seniority = the EARLIER claim; equal timestamps tie-break on tabId
|
|
12
|
+
* - the leader heartbeats every ~5 s and re-asserts when a junior claims
|
|
13
|
+
* - a tab that hears a senior claim/heartbeat becomes follower
|
|
14
|
+
* - a follower takes over when no senior beat lands for ~12 s, or
|
|
15
|
+
* immediately on the leader's `release` (stop / pagehide)
|
|
16
|
+
*
|
|
17
|
+
* Feature detection: no `BroadcastChannel` (older WebKit, jsdom) → guard
|
|
18
|
+
* disabled, the tab stays leader, zero behavior change.
|
|
19
|
+
*/
|
|
20
|
+
export type TabRole = "leader" | "follower";
|
|
21
|
+
export declare const HEARTBEAT_INTERVAL_MS = 5000;
|
|
22
|
+
export declare const TAKEOVER_TIMEOUT_MS = 12000;
|
|
23
|
+
/** The narrow `BroadcastChannel` surface the guard uses (injectable for tests). */
|
|
24
|
+
export type LeadershipChannel = {
|
|
25
|
+
postMessage: (message: unknown) => void;
|
|
26
|
+
close: () => void;
|
|
27
|
+
onmessage: ((event: {
|
|
28
|
+
data: unknown;
|
|
29
|
+
}) => void) | null;
|
|
30
|
+
};
|
|
31
|
+
export type TabLeadershipOptions = {
|
|
32
|
+
readonly sessionId: string;
|
|
33
|
+
/** Fired on every role CHANGE (the caller assumes "leader" until told). */
|
|
34
|
+
readonly onRoleChange: (role: TabRole) => void;
|
|
35
|
+
readonly heartbeatIntervalMs?: number;
|
|
36
|
+
readonly takeoverTimeoutMs?: number;
|
|
37
|
+
/** Channel seam; return `null` for "unsupported" (guard disabled). */
|
|
38
|
+
readonly createChannel?: (name: string) => LeadershipChannel | null;
|
|
39
|
+
/** Clock seam (§25). */
|
|
40
|
+
readonly nowMs?: () => number;
|
|
41
|
+
};
|
|
42
|
+
export type TabLeadershipHandle = {
|
|
43
|
+
readonly stop: () => void;
|
|
44
|
+
};
|
|
45
|
+
export declare const tabLeadershipChannelName: (sessionId: string) => string;
|
|
46
|
+
export declare const startTabLeadership: (options: TabLeadershipOptions) => TabLeadershipHandle;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { TabRole } from './tab-leadership.ts';
|
|
2
|
+
/**
|
|
3
|
+
* @param chatId The mount-time chat id — the persisted server session if one
|
|
4
|
+
* was already known at mount, else a per-tab `belong-chat-<nanoid>`
|
|
5
|
+
* placeholder. Used only as the channel key until the real server session id
|
|
6
|
+
* is persisted.
|
|
7
|
+
*/
|
|
8
|
+
export declare const useTabLeadership: (chatId: string) => TabRole;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ClassValue } from 'clsx';
|
|
2
|
+
export declare const cn: (...inputs: ClassValue[]) => string;
|
|
3
|
+
/**
|
|
4
|
+
* Compact "time ago" label for switcher / list rows — "just now", "5m ago",
|
|
5
|
+
* "3h ago", "2d ago", else a locale date. `nowMs` is injectable so the pure
|
|
6
|
+
* formatting is deterministic under test. Best-effort: an unparseable input
|
|
7
|
+
* yields "" (the row simply shows no timestamp).
|
|
8
|
+
*/
|
|
9
|
+
export declare const formatRelativeTime: (iso: string, nowMs?: number) => string;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export type { BelongGlobal, BelongInitInput, BelongTheme, BelongThemeBrand, BelongThemeDensity, BelongThemeMode, BelongThemePalette, BelongThemeSide, PartialBelongTheme, RouteHandler, RouteHandlerResult, UiActionHandler, UiActionResult, } from './types/public.ts';
|
|
2
|
+
export { SdkProviders } from './app/providers.tsx';
|
|
3
|
+
export { createApiClient, setBelongToken } from './api/client.ts';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FileUIPart } from 'ai';
|
|
2
|
+
export type AttachmentChipProps = {
|
|
3
|
+
readonly part: FileUIPart;
|
|
4
|
+
readonly renderKey: string;
|
|
5
|
+
readonly fileId: string | null;
|
|
6
|
+
};
|
|
7
|
+
export declare const AttachmentChip: ({ part, renderKey, fileId }: AttachmentChipProps) => import("react").JSX.Element;
|
|
8
|
+
/** Read the server fileId threaded onto the part by uploadFilesWithParts. */
|
|
9
|
+
export declare const fileIdFromPart: (part: FileUIPart) => string | null;
|