@belonguniverseai/react-sdk 0.5.0 → 0.6.1

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.
Files changed (70) hide show
  1. package/dist/api/client.d.ts +93 -8
  2. package/dist/api/skills.d.ts +6 -1
  3. package/dist/component/{arc-CtyXH_sw.js → arc-BziuP1aB.js} +2 -2
  4. package/dist/component/{architectureDiagram-3BPJPVTR-C6NZifN6.js → architectureDiagram-3BPJPVTR-BVwa4QrX.js} +3 -3
  5. package/dist/component/{blockDiagram-GPEHLZMM-_-K66LP4.js → blockDiagram-GPEHLZMM-CKNImKL2.js} +4 -4
  6. package/dist/component/{c4Diagram-AAUBKEIU-DL-K-sZW.js → c4Diagram-AAUBKEIU-BcbjcMPA.js} +3 -3
  7. package/dist/component/{channel-scCA9sxi.js → channel-vtwXLQ1f.js} +2 -2
  8. package/dist/component/{chunk-2J33WTMH-Dkd9OyM1.js → chunk-2J33WTMH-C6wmoOIl.js} +2 -2
  9. package/dist/component/{chunk-4BX2VUAB-JbEXcQ3q.js → chunk-4BX2VUAB-DySNI9mv.js} +2 -2
  10. package/dist/component/{chunk-55IACEB6-Dg96dHvQ.js → chunk-55IACEB6-C4M2cG_c.js} +2 -2
  11. package/dist/component/{chunk-727SXJPM-Cu3-awqi.js → chunk-727SXJPM-BTqmmKKN.js} +6 -6
  12. package/dist/component/{chunk-AQP2D5EJ-DLX62MPh.js → chunk-AQP2D5EJ-DiS4043D.js} +4 -4
  13. package/dist/component/{chunk-FMBD7UC4-BxU0KQRK.js → chunk-FMBD7UC4-Bu05DXe4.js} +2 -2
  14. package/dist/component/{chunk-ND2GUHAM-CEQj3so6.js → chunk-ND2GUHAM-DfbE4oOG.js} +2 -2
  15. package/dist/component/{chunk-QZHKN3VN-BWgwT04-.js → chunk-QZHKN3VN-Y8mfHGtB.js} +2 -2
  16. package/dist/component/{classDiagram-4FO5ZUOK-Ton6m2pw.js → classDiagram-4FO5ZUOK-ChO_m1Vd.js} +3 -3
  17. package/dist/component/{classDiagram-v2-Q7XG4LA2-Ton6m2pw.js → classDiagram-v2-Q7XG4LA2-ChO_m1Vd.js} +3 -3
  18. package/dist/component/{cose-bilkent-S5V4N54A-Dja09hp6.js → cose-bilkent-S5V4N54A-B1DDE26M.js} +2 -2
  19. package/dist/component/{dagre-BM42HDAG-Ch6fODe-.js → dagre-BM42HDAG-BmujNepD.js} +2 -2
  20. package/dist/component/{diagram-2AECGRRQ-DdDr6tHi.js → diagram-2AECGRRQ-Cbck9DRQ.js} +3 -3
  21. package/dist/component/{diagram-5GNKFQAL-BT2qfjUH.js → diagram-5GNKFQAL-csRK5clZ.js} +4 -4
  22. package/dist/component/{diagram-KO2AKTUF-UcWrBVNK.js → diagram-KO2AKTUF-DD3KqnFb.js} +3 -3
  23. package/dist/component/{diagram-LMA3HP47-D-BCOeIt.js → diagram-LMA3HP47-D6-oakzD.js} +3 -3
  24. package/dist/component/{diagram-OG6HWLK6-CJDJgfQO.js → diagram-OG6HWLK6-DfxY1IE7.js} +4 -4
  25. package/dist/component/{erDiagram-TEJ5UH35-kY5sdKqg.js → erDiagram-TEJ5UH35-BDV1C23R.js} +5 -5
  26. package/dist/component/{flowDiagram-I6XJVG4X-9OddgRiE.js → flowDiagram-I6XJVG4X-mEwMtE2U.js} +7 -7
  27. package/dist/component/{ganttDiagram-6RSMTGT7-Dc9t8llA.js → ganttDiagram-6RSMTGT7-C_dcTMQX.js} +3 -3
  28. package/dist/component/{gitGraphDiagram-PVQCEYII-DYjn9Ff5.js → gitGraphDiagram-PVQCEYII-CIKPPQiC.js} +4 -4
  29. package/dist/component/{highlighted-body-OFNGDK62-D_TDzrFY.js → highlighted-body-OFNGDK62-DpP1DD9S.js} +2 -2
  30. package/dist/component/index.js +2 -2
  31. package/dist/component/{infoDiagram-5YYISTIA-CBPoKi7E.js → infoDiagram-5YYISTIA-DKTrvjCm.js} +2 -2
  32. package/dist/component/{ishikawaDiagram-YF4QCWOH-C3rChBg5.js → ishikawaDiagram-YF4QCWOH-BcuncMnU.js} +2 -2
  33. package/dist/component/{journeyDiagram-JHISSGLW-DVTybrGG.js → journeyDiagram-JHISSGLW-BTTgY3Of.js} +5 -5
  34. package/dist/component/{kanban-definition-UN3LZRKU-DNMLC4NQ.js → kanban-definition-UN3LZRKU-D9K5810E.js} +3 -3
  35. package/dist/component/{linear-B_oPUR6_.js → linear-DondfmT2.js} +2 -2
  36. package/dist/component/{mermaid-GHXKKRXX-CjZr9GWr.js → mermaid-GHXKKRXX-j_0KsvYs.js} +28535 -28932
  37. package/dist/component/{mindmap-definition-RKZ34NQL-CErhrdm3.js → mindmap-definition-RKZ34NQL-DMC3vCUq.js} +4 -4
  38. package/dist/component/{pieDiagram-4H26LBE5-Cno02n3_.js → pieDiagram-4H26LBE5-DmYi_D3l.js} +4 -4
  39. package/dist/component/{quadrantDiagram-W4KKPZXB-DQV7ytCz.js → quadrantDiagram-W4KKPZXB-DMos-d69.js} +3 -3
  40. package/dist/component/{requirementDiagram-4Y6WPE33-DBORDX5u.js → requirementDiagram-4Y6WPE33-BpgIfnhZ.js} +4 -4
  41. package/dist/component/{sankeyDiagram-5OEKKPKP-gNBaVNW1.js → sankeyDiagram-5OEKKPKP-xbJGp8Ms.js} +2 -2
  42. package/dist/component/{sequenceDiagram-3UESZ5HK-BlxJztMa.js → sequenceDiagram-3UESZ5HK-Bnlm4mVO.js} +4 -4
  43. package/dist/component/{stateDiagram-AJRCARHV-2ziF_Zes.js → stateDiagram-AJRCARHV-BIooqMYf.js} +3 -3
  44. package/dist/component/{stateDiagram-v2-BHNVJYJU-BWmzKTMS.js → stateDiagram-v2-BHNVJYJU-C6WAOCCe.js} +3 -3
  45. package/dist/component/{timeline-definition-PNZ67QCA-OcHhxXWM.js → timeline-definition-PNZ67QCA-lTe5jbcD.js} +3 -3
  46. package/dist/component/{vennDiagram-CIIHVFJN-Fl9VlPVe.js → vennDiagram-CIIHVFJN-5RYbksB1.js} +2 -2
  47. package/dist/component/{wardleyDiagram-YWT4CUSO-BNHUW0Ex.js → wardleyDiagram-YWT4CUSO-BSz_UDND.js} +3 -3
  48. package/dist/component/{xychartDiagram-2RQKCTM6-Bog3Ddue.js → xychartDiagram-2RQKCTM6-BmzhiB0a.js} +3 -3
  49. package/dist/components/embed/EmbedHeader.d.ts +11 -4
  50. package/dist/components/embed/rail-flags.d.ts +10 -0
  51. package/dist/components/ui/badge.d.ts +1 -1
  52. package/dist/embed/slash-commands.d.ts +24 -7
  53. package/dist/embed/voice/call-active-marker.d.ts +75 -19
  54. package/dist/embed/voice/line-dispatch.d.ts +22 -20
  55. package/dist/embed/voice/realtime-call.d.ts +12 -0
  56. package/dist/embed/voice/reconnect-offer.d.ts +14 -5
  57. package/dist/embed/voice-call-lines.d.ts +4 -25
  58. package/dist/embed/voice-call.d.ts +112 -73
  59. package/dist/i18n/messages/en.d.ts +27 -6
  60. package/dist/i18n/messages/surfaces/embedMisc.d.ts +0 -3
  61. package/dist/i18n/messages/surfaces/stream.d.ts +74 -0
  62. package/dist/stream/ai-sdk-part-renderers.d.ts +23 -6
  63. package/dist/stream/belong-chat-transport.d.ts +57 -0
  64. package/dist/stream/belong-data-parts.d.ts +44 -1
  65. package/dist/stream/run-line-progress.d.ts +6 -5
  66. package/dist/stream/tool-action-label.d.ts +16 -0
  67. package/package.json +1 -1
  68. package/dist/components/embed/PoweredByBelong.d.ts +0 -7
  69. package/dist/embed/voice/agent-queue.d.ts +0 -106
  70. package/dist/embed/voice/call-roster-store.d.ts +0 -110
@@ -1,6 +1,6 @@
1
- import { g as oe } from "./chunk-55IACEB6-Dg96dHvQ.js";
2
- import { s as ae } from "./chunk-2J33WTMH-Dkd9OyM1.js";
3
- import { _ as l, l as C, p as ce, r as le, G as he, K as G, c as B, i as F, b6 as de, af as ge, ag as ue, ah as pe } from "./mermaid-GHXKKRXX-CjZr9GWr.js";
1
+ import { g as oe } from "./chunk-55IACEB6-C4M2cG_c.js";
2
+ import { s as ae } from "./chunk-2J33WTMH-C6wmoOIl.js";
3
+ import { _ as l, l as C, p as ce, r as le, G as he, K as G, c as B, i as F, b6 as de, af as ge, ag as ue, ah as pe } from "./mermaid-GHXKKRXX-j_0KsvYs.js";
4
4
  globalThis.process = globalThis.process || { env: {} };
5
5
  globalThis.global = globalThis.global || globalThis;
6
6
  const b = [];
@@ -830,4 +830,4 @@ var _e = Y, ke = 12, N = {
830
830
  export {
831
831
  we as diagram
832
832
  };
833
- //# sourceMappingURL=mindmap-definition-RKZ34NQL-CErhrdm3.js.map
833
+ //# sourceMappingURL=mindmap-definition-RKZ34NQL-DMC3vCUq.js.map
@@ -1,7 +1,7 @@
1
- import { a0 as S, S as R, b5 as J, g as Q, s as Y, a as tt, b as et, t as at, q as nt, _ as g, l as W, c as rt, I as it, N as st, a7 as lt, e as ot, B as ct, K as ut } from "./mermaid-GHXKKRXX-CjZr9GWr.js";
2
- import { p as gt } from "./chunk-4BX2VUAB-JbEXcQ3q.js";
1
+ import { a0 as S, S as R, b5 as J, g as Q, s as Y, a as tt, b as et, t as at, q as nt, _ as g, l as W, c as rt, I as it, N as st, a7 as lt, e as ot, B as ct, K as ut } from "./mermaid-GHXKKRXX-j_0KsvYs.js";
2
+ import { p as gt } from "./chunk-4BX2VUAB-DySNI9mv.js";
3
3
  import { p as dt } from "./wardley-L42UT6IY-HA1eSIS_.js";
4
- import { d as P } from "./arc-CtyXH_sw.js";
4
+ import { d as P } from "./arc-BziuP1aB.js";
5
5
  import { o as pt } from "./ordinal-D0x7izaa.js";
6
6
  globalThis.process = globalThis.process || { env: {} };
7
7
  globalThis.global = globalThis.global || globalThis;
@@ -163,4 +163,4 @@ var vt = ut.pie, z = {
163
163
  export {
164
164
  Lt as diagram
165
165
  };
166
- //# sourceMappingURL=pieDiagram-4H26LBE5-Cno02n3_.js.map
166
+ //# sourceMappingURL=pieDiagram-4H26LBE5-DmYi_D3l.js.map
@@ -1,5 +1,5 @@
1
- import { s as Se, g as _e, t as ee, q as Ae, a as ke, b as Fe, _ as r, c as Et, l as qt, d as vt, e as Pe, B as ve, K as z, i as Ce, a4 as Le } from "./mermaid-GHXKKRXX-CjZr9GWr.js";
2
- import { l as te } from "./linear-B_oPUR6_.js";
1
+ import { s as Se, g as _e, t as ee, q as Ae, a as ke, b as Fe, _ as r, c as Et, l as qt, d as vt, e as Pe, B as ve, K as z, i as Ce, a4 as Le } from "./mermaid-GHXKKRXX-j_0KsvYs.js";
2
+ import { l as te } from "./linear-DondfmT2.js";
3
3
  globalThis.process = globalThis.process || { env: {} };
4
4
  globalThis.global = globalThis.global || globalThis;
5
5
  var Ct = (function() {
@@ -1030,4 +1030,4 @@ var Ve = /* @__PURE__ */ r(function() {
1030
1030
  export {
1031
1031
  We as diagram
1032
1032
  };
1033
- //# sourceMappingURL=quadrantDiagram-W4KKPZXB-DQV7ytCz.js.map
1033
+ //# sourceMappingURL=quadrantDiagram-W4KKPZXB-DMos-d69.js.map
@@ -1,6 +1,6 @@
1
- import { g as Ge } from "./chunk-55IACEB6-Dg96dHvQ.js";
2
- import { s as ze } from "./chunk-2J33WTMH-Dkd9OyM1.js";
3
- import { _ as h, G as Ye, b as Xe, a as Je, s as Ze, g as et, q as tt, t as st, c as ke, l as Ne, B as it, F as rt, p as nt, r as at, u as lt } from "./mermaid-GHXKKRXX-CjZr9GWr.js";
1
+ import { g as Ge } from "./chunk-55IACEB6-C4M2cG_c.js";
2
+ import { s as ze } from "./chunk-2J33WTMH-C6wmoOIl.js";
3
+ import { _ as h, G as Ye, b as Xe, a as Je, s as Ze, g as et, q as tt, t as st, c as ke, l as Ne, B as it, F as rt, p as nt, r as at, u as lt } from "./mermaid-GHXKKRXX-j_0KsvYs.js";
4
4
  globalThis.process = globalThis.process || { env: {} };
5
5
  globalThis.global = globalThis.global || globalThis;
6
6
  var qe = (function() {
@@ -885,4 +885,4 @@ var mt = /* @__PURE__ */ h(async function(e, u, o, n) {
885
885
  export {
886
886
  Rt as diagram
887
887
  };
888
- //# sourceMappingURL=requirementDiagram-4Y6WPE33-DBORDX5u.js.map
888
+ //# sourceMappingURL=requirementDiagram-4Y6WPE33-BpgIfnhZ.js.map
@@ -1,4 +1,4 @@
1
- import { q as kt, t as mt, s as xt, g as _t, b as vt, a as bt, _ as y, c as ot, C as St, d as G, ai as wt, B as Lt, k as Et } from "./mermaid-GHXKKRXX-CjZr9GWr.js";
1
+ import { q as kt, t as mt, s as xt, g as _t, b as vt, a as bt, _ as y, c as ot, C as St, d as G, ai as wt, B as Lt, k as Et } from "./mermaid-GHXKKRXX-j_0KsvYs.js";
2
2
  import { o as Tt } from "./ordinal-D0x7izaa.js";
3
3
  globalThis.process = globalThis.process || { env: {} };
4
4
  globalThis.global = globalThis.global || globalThis;
@@ -859,4 +859,4 @@ var ge = {
859
859
  export {
860
860
  ge as diagram
861
861
  };
862
- //# sourceMappingURL=sankeyDiagram-5OEKKPKP-gNBaVNW1.js.map
862
+ //# sourceMappingURL=sankeyDiagram-5OEKKPKP-xbJGp8Ms.js.map
@@ -1,6 +1,6 @@
1
- import { _ as g, o as tr, c as $, d as Mt, l as at, j as Ce, e as er, f as rr, k as P, b as ke, s as ar, q as sr, a as ir, g as nr, t as or, v as cr, J as lr, B as hr, i as Bt, u as Z, a5 as Q, a6 as wt, a7 as Me, a8 as dr, G as Yt, a9 as Tr, aa as Be } from "./mermaid-GHXKKRXX-CjZr9GWr.js";
2
- import { a as pr, b as ee, g as dt, d as Er, e as re, f as ae } from "./chunk-ND2GUHAM-CEQj3so6.js";
3
- import { I as ur } from "./chunk-QZHKN3VN-BWgwT04-.js";
1
+ import { _ as g, o as tr, c as $, d as Mt, l as at, j as Ce, e as er, f as rr, k as P, b as ke, s as ar, q as sr, a as ir, g as nr, t as or, v as cr, J as lr, B as hr, i as Bt, u as Z, a5 as Q, a6 as wt, a7 as Me, a8 as dr, G as Yt, a9 as Tr, aa as Be } from "./mermaid-GHXKKRXX-j_0KsvYs.js";
2
+ import { a as pr, b as ee, g as dt, d as Er, e as re, f as ae } from "./chunk-ND2GUHAM-DfbE4oOG.js";
3
+ import { I as ur } from "./chunk-QZHKN3VN-Y8mfHGtB.js";
4
4
  globalThis.process = globalThis.process || { env: {} };
5
5
  globalThis.global = globalThis.global || globalThis;
6
6
  var $t = (function() {
@@ -2894,4 +2894,4 @@ var ra = /* @__PURE__ */ g(async function(e, t, a) {
2894
2894
  export {
2895
2895
  Ta as diagram
2896
2896
  };
2897
- //# sourceMappingURL=sequenceDiagram-3UESZ5HK-BlxJztMa.js.map
2897
+ //# sourceMappingURL=sequenceDiagram-3UESZ5HK-Bnlm4mVO.js.map
@@ -1,5 +1,5 @@
1
- import { s as R, a as W, S as N } from "./chunk-AQP2D5EJ-DLX62MPh.js";
2
- import { _ as f, c as t, d as M, l as S, e as P, k as z, ac as _, ad as U, a9 as C, u as F } from "./mermaid-GHXKKRXX-CjZr9GWr.js";
1
+ import { s as R, a as W, S as N } from "./chunk-AQP2D5EJ-DiS4043D.js";
2
+ import { _ as f, c as t, d as M, l as S, e as P, k as z, ac as _, ad as U, a9 as C, u as F } from "./mermaid-GHXKKRXX-j_0KsvYs.js";
3
3
  import { G as O } from "./graph-BZLHvygk.js";
4
4
  import { l as J } from "./layout-Bu6nRdWm.js";
5
5
  globalThis.process = globalThis.process || { env: {} };
@@ -263,4 +263,4 @@ var X = /* @__PURE__ */ f((e) => e.append("circle").attr("class", "start-state")
263
263
  export {
264
264
  ot as diagram
265
265
  };
266
- //# sourceMappingURL=stateDiagram-AJRCARHV-2ziF_Zes.js.map
266
+ //# sourceMappingURL=stateDiagram-AJRCARHV-BIooqMYf.js.map
@@ -1,5 +1,5 @@
1
- import { s as e, b as r, a as s, S as t } from "./chunk-AQP2D5EJ-DLX62MPh.js";
2
- import { _ as l } from "./mermaid-GHXKKRXX-CjZr9GWr.js";
1
+ import { s as e, b as r, a as s, S as t } from "./chunk-AQP2D5EJ-DiS4043D.js";
2
+ import { _ as l } from "./mermaid-GHXKKRXX-j_0KsvYs.js";
3
3
  globalThis.process = globalThis.process || { env: {} };
4
4
  globalThis.global = globalThis.global || globalThis;
5
5
  var b = {
@@ -16,4 +16,4 @@ var b = {
16
16
  export {
17
17
  b as diagram
18
18
  };
19
- //# sourceMappingURL=stateDiagram-v2-BHNVJYJU-BWmzKTMS.js.map
19
+ //# sourceMappingURL=stateDiagram-v2-BHNVJYJU-C6WAOCCe.js.map
@@ -1,5 +1,5 @@
1
- import { _ as o, G as gt, af as Rt, ag as Ct, ah as Wt, c as pt, l as E, N as Pt, a7 as Bt, ai as ft, d as U, F as Vt, aj as Ft, B as zt } from "./mermaid-GHXKKRXX-CjZr9GWr.js";
2
- import { d as ot } from "./arc-CtyXH_sw.js";
1
+ import { _ as o, G as gt, af as Rt, ag as Ct, ah as Wt, c as pt, l as E, N as Pt, a7 as Bt, ai as ft, d as U, F as Vt, aj as Ft, B as zt } from "./mermaid-GHXKKRXX-j_0KsvYs.js";
2
+ import { d as ot } from "./arc-BziuP1aB.js";
3
3
  globalThis.process = globalThis.process || { env: {} };
4
4
  globalThis.global = globalThis.global || globalThis;
5
5
  var tt = (function() {
@@ -1055,4 +1055,4 @@ var Qt = /* @__PURE__ */ o(function(e, t, n, i, r, h = !1) {
1055
1055
  export {
1056
1056
  me as diagram
1057
1057
  };
1058
- //# sourceMappingURL=timeline-definition-PNZ67QCA-OcHhxXWM.js.map
1058
+ //# sourceMappingURL=timeline-definition-PNZ67QCA-lTe5jbcD.js.map
@@ -1,4 +1,4 @@
1
- import { aX as Gt, s as Wt, g as Kt, t as Ht, q as Xt, a as Yt, b as Zt, _ as w, G as wt, N as Jt, d as ot, ao as Qt, af as $t, ag as te, ah as ee, e as ne, B as se, I as ie, K as oe } from "./mermaid-GHXKKRXX-CjZr9GWr.js";
1
+ import { aX as Gt, s as Wt, g as Kt, t as Ht, q as Xt, a as Yt, b as Zt, _ as w, G as wt, N as Jt, d as ot, ao as Qt, af as $t, ag as te, ah as ee, e as ne, B as se, I as ie, K as oe } from "./mermaid-GHXKKRXX-j_0KsvYs.js";
2
2
  globalThis.process = globalThis.process || { env: {} };
3
3
  globalThis.global = globalThis.global || globalThis;
4
4
  const kt = (t, n) => Gt(t, "a", -n), _t = 1e-10;
@@ -1557,4 +1557,4 @@ var qe = { draw: Ve }, Ge = {
1557
1557
  export {
1558
1558
  Ge as diagram
1559
1559
  };
1560
- //# sourceMappingURL=vennDiagram-CIIHVFJN-Fl9VlPVe.js.map
1560
+ //# sourceMappingURL=vennDiagram-CIIHVFJN-5RYbksB1.js.map
@@ -1,5 +1,5 @@
1
- import { s as St, g as Mt, t as Nt, q as Tt, a as zt, b as Lt, _ as u, a4 as At, G as Xt, I as U, l as K, N as Et, e as Yt, B as It, c as j } from "./mermaid-GHXKKRXX-CjZr9GWr.js";
2
- import { p as Bt } from "./chunk-4BX2VUAB-JbEXcQ3q.js";
1
+ import { s as St, g as Mt, t as Nt, q as Tt, a as zt, b as Lt, _ as u, a4 as At, G as Xt, I as U, l as K, N as Et, e as Yt, B as It, c as j } from "./mermaid-GHXKKRXX-j_0KsvYs.js";
2
+ import { p as Bt } from "./chunk-4BX2VUAB-DySNI9mv.js";
3
3
  import { p as Ft } from "./wardley-L42UT6IY-HA1eSIS_.js";
4
4
  globalThis.process = globalThis.process || { env: {} };
5
5
  globalThis.global = globalThis.global || globalThis;
@@ -678,4 +678,4 @@ var Dt = {
678
678
  export {
679
679
  Qt as diagram
680
680
  };
681
- //# sourceMappingURL=wardleyDiagram-YWT4CUSO-BNHUW0Ex.js.map
681
+ //# sourceMappingURL=wardleyDiagram-YWT4CUSO-BSz_UDND.js.map
@@ -1,7 +1,7 @@
1
- import { s as ei, g as si, t as Lt, q as ni, a as ai, b as oi, _ as a, l as Et, N as ri, e as hi, B as li, G as dt, i as ci, I as It, K as ui, a4 as gi, ap as xi, ac as Rt } from "./mermaid-GHXKKRXX-CjZr9GWr.js";
1
+ import { s as ei, g as si, t as Lt, q as ni, a as ai, b as oi, _ as a, l as Et, N as ri, e as hi, B as li, G as dt, i as ci, I as It, K as ui, a4 as gi, ap as xi, ac as Rt } from "./mermaid-GHXKKRXX-j_0KsvYs.js";
2
2
  import { i as di } from "./init-BOu0eQYQ.js";
3
3
  import { o as fi } from "./ordinal-D0x7izaa.js";
4
- import { l as Dt } from "./linear-B_oPUR6_.js";
4
+ import { l as Dt } from "./linear-DondfmT2.js";
5
5
  globalThis.process = globalThis.process || { env: {} };
6
6
  globalThis.global = globalThis.global || globalThis;
7
7
  function pi(t, i, e) {
@@ -1372,4 +1372,4 @@ var Ti = /* @__PURE__ */ a(function() {
1372
1372
  export {
1373
1373
  Mi as diagram
1374
1374
  };
1375
- //# sourceMappingURL=xychartDiagram-2RQKCTM6-Bog3Ddue.js.map
1375
+ //# sourceMappingURL=xychartDiagram-2RQKCTM6-BmzhiB0a.js.map
@@ -1,8 +1,12 @@
1
1
  import { BelongThemeBrand, BelongThemePalette } from '../../types/public.ts';
2
2
  /**
3
- * Slim brand bar at the top of the chat: the mark + the brand/view title, with
4
- * a small "by Belong" tagline when a tenant brand is active. Action controls
5
- * live in the rail (EmbedRail), not here with TWO exceptions:
3
+ * Slim brand bar at the top of the chat: the mark + the brand/view title, and
4
+ * a small second line under it the name of the conversation on screen when
5
+ * the dock passes one (`subtitle`, chat view), otherwise the "by Belong"
6
+ * tagline when a tenant brand is active. Knowing WHICH chat is open beats the
7
+ * co-branding line on the one surface where both compete for the same slot.
8
+ * Action controls live in the rail (EmbedRail), not here — with TWO
9
+ * exceptions:
6
10
  * • `onExportChat` — download the current conversation as JSON. Stateful:
7
11
  * while the backend generates the export the button shows a spinner and
8
12
  * is disabled; the label (aria + hover title) carries the timestamp of
@@ -13,8 +17,11 @@ import { BelongThemeBrand, BelongThemePalette } from '../../types/public.ts';
13
17
  * is nothing to fall back to), so the single-chat header stays exactly as
14
18
  * it always was.
15
19
  */
16
- export declare function EmbedHeader({ title, palette, brand, onExportChat, exportState, exportChatLabel, onCloseChat, closeChatLabel, }: {
20
+ export declare function EmbedHeader({ title, subtitle, palette, brand, onExportChat, exportState, exportChatLabel, onCloseChat, closeChatLabel, }: {
17
21
  title: string;
22
+ /** Second header line — the current chat's name (chat view). Takes the slot
23
+ * the "by Belong" tagline occupies when absent. */
24
+ subtitle?: string;
18
25
  palette: BelongThemePalette;
19
26
  brand: BelongThemeBrand;
20
27
  /** Request a chat export (rendered only when provided — chat view with a
@@ -30,3 +30,13 @@
30
30
  * without touching anything else.
31
31
  */
32
32
  export declare const MULTI_AGENT_RAIL_ENABLED = true;
33
+ /**
34
+ * The dial button (`CallButton`) in the desktop rail and the mobile nav bar.
35
+ *
36
+ * Currently `false`: the button is HIDDEN, the voice stack is not. Everything
37
+ * behind it — `startCall`/`endCall`, the CallScreen, push-to-talk, the
38
+ * reload-survival reconnect offer, the rail voice cue — is untouched and still
39
+ * reachable; only this entry point is off. Flip to `true` to bring the button
40
+ * back with no other change.
41
+ */
42
+ export declare const VOICE_CALL_BUTTON_ENABLED = false;
@@ -1,7 +1,7 @@
1
1
  import { VariantProps } from 'class-variance-authority';
2
2
  import * as React from "react";
3
3
  declare const badgeVariants: (props?: ({
4
- variant?: "default" | "link" | "destructive" | "outline" | "secondary" | "ghost" | "notice" | null | undefined;
4
+ variant?: "default" | "link" | "destructive" | "notice" | "outline" | "secondary" | "ghost" | null | undefined;
5
5
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
6
  declare function Badge({ className, variant, asChild, ...props }: React.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
7
7
  asChild?: boolean;
@@ -1,12 +1,18 @@
1
1
  import { CommandSummary, SkillSummary } from '../api/skills.ts';
2
- /** The group label workspace-tree commands render under in the slash menu. */
2
+ /** Fallback group label for a workspace command the backend could not
3
+ * attribute to a plugin (flat project commands). Plugin-attributed commands
4
+ * render under their own section instead — see `cmd.group` below. */
3
5
  export declare const COMMAND_GROUP = "Commands";
4
6
  /**
5
7
  * Map a workspace-tree command onto the `SkillSummary` shape the picker
6
- * renders — display only. At submit time a command token is deliberately NOT
7
- * matched by {@link parseSlashSubmission} (commands aren't in the skills
8
- * list), so the draft falls through and posts as RAW text: the worker-side
9
- * Agent SDK parses the leading-slash message against its command registry.
8
+ * renders — display only. A command the backend attributed to a discovered
9
+ * plugin (`cmd.group` set e.g. "sk-data-lab", "implementation-playbook")
10
+ * renders under that plugin's own section; a flat command with no plugin
11
+ * falls back to the generic {@link COMMAND_GROUP}. At submit time a command
12
+ * token is deliberately NOT matched by {@link parseSlashSubmission} (commands
13
+ * aren't in the skills list), so the draft falls through and posts as RAW
14
+ * text: the worker-side Agent SDK parses the leading-slash message against
15
+ * its command registry.
10
16
  */
11
17
  export declare const commandOptions: (commands: readonly CommandSummary[]) => readonly SkillSummary[];
12
18
  /**
@@ -52,7 +58,10 @@ export declare const parseBuiltinCommand: (draft: string) => BuiltinCommand | nu
52
58
  /**
53
59
  * The slash menu's option list: built-ins merged ahead of the skills, ranked
54
60
  * by {@link filterSkills} (prefix matches first; input order — built-ins
55
- * before skills — breaks ties within each bucket).
61
+ * before skills — breaks ties within each bucket), then bucketed into
62
+ * contiguous per-group sections by {@link bucketByGroup} — see that
63
+ * function's comment for why grouping is a required SECOND pass over the
64
+ * ranked list, not something ranking alone gives you for free.
56
65
  *
57
66
  * Built-ins are offered for a token at ANY position (BEL-167). They used to be
58
67
  * withheld from a mid-message token because {@link parseBuiltinCommand} could
@@ -123,5 +132,13 @@ export declare const hoistCommandSubmission: (draft: string, commands: readonly
123
132
  * The argument-taking builtins ROTATE rather than splice — see below.
124
133
  */
125
134
  export declare const hoistBuiltinCommand: (draft: string) => string;
126
- /** Name-prefix matches first, then other name/description substring matches. */
135
+ /**
136
+ * Name-prefix matches first, then other name/description substring matches,
137
+ * then GROUP word-prefix matches (plugin-section search, ≥3 chars — see
138
+ * {@link GROUP_MATCH_MIN_QUERY_LENGTH}): typing "impl", "data", or a plugin's
139
+ * name (e.g. "sk-data-lab") surfaces every entry in that section even when
140
+ * the query hits neither the name nor the description. Ranked last so an
141
+ * entry actually named after the query still takes the top slot — a query
142
+ * that happens to also be a group name doesn't bump a direct name match down.
143
+ */
127
144
  export declare const filterSkills: (skills: readonly SkillSummary[], query: string) => readonly SkillSummary[];
@@ -2,33 +2,81 @@ import { z } from 'zod';
2
2
  declare const callActiveMarkerSchema: z.ZodObject<{
3
3
  active: z.ZodLiteral<true>;
4
4
  startedAtMs: z.ZodNumber;
5
+ /** Last proof-of-life heartbeat — see the module doc comment above. Required:
6
+ * a marker written by a build that predates this field cannot prove the call
7
+ * was recently alive, so it must parse as absent rather than as "fresh". */
8
+ updatedAtMs: z.ZodNumber;
9
+ /** Consecutive auto-redial attempts with no healthy call since. Required for
10
+ * the same pre-upgrade reason as `updatedAtMs`. */
11
+ redialCount: z.ZodNumber;
5
12
  /** Recap of the call so far, same shape/cap as `buildCallContextDigest()`.
6
13
  * Empty until the first user/agent timeline row lands. */
7
14
  contextDigest: z.ZodString;
8
15
  }, "strip", z.ZodTypeAny, {
9
16
  active: true;
10
17
  startedAtMs: number;
18
+ updatedAtMs: number;
19
+ redialCount: number;
11
20
  contextDigest: string;
12
21
  }, {
13
22
  active: true;
14
23
  startedAtMs: number;
24
+ updatedAtMs: number;
25
+ redialCount: number;
15
26
  contextDigest: string;
16
27
  }>;
17
28
  export type CallActiveMarker = z.infer<typeof callActiveMarkerSchema>;
18
29
  /** The tab's persisted call marker, or null when absent/malformed — a
19
30
  * corrupted or pre-this-feature record just means "nothing to redial". */
20
31
  export declare const readCallActiveMarker: () => CallActiveMarker | null;
21
- /** Mark the call live — called on the `in_call` transition. Starts with an
22
- * empty digest; {@link refreshCallActiveMarkerContext} fills it in as the
23
- * call progresses. */
24
- export declare const writeCallActiveMarker: () => void;
32
+ /**
33
+ * Why the call that just reached `in_call` was dialled.
34
+ *
35
+ * `"user"` a dial the user asked for outright, which is a fresh intent: it
36
+ * inherits nothing from an interrupted call, redial streak included.
37
+ * `"redial"` — a reconnect of an interrupted call, which CONTINUES that
38
+ * streak. `voice-call.ts` maps its `startCall({ isReconnect })` option
39
+ * straight onto this, so the rail's manual "Reconnect" click also continues
40
+ * the streak rather than resetting it: the count only ever gates the
41
+ * AUTOMATIC redial, so continuing it errs toward asking the user again rather
42
+ * than toward reopening the microphone on its own.
43
+ */
44
+ export type CallDialOrigin = "user" | "redial";
45
+ /** Mark the call live — called on the `in_call` transition. `updatedAtMs`
46
+ * starts equal to `startedAtMs` (no heartbeat has ticked yet). `redialCount`
47
+ * carries over from the interrupted call on a `"redial"` (see the module doc:
48
+ * reaching `in_call` is NOT proof a redial worked — only the 30s healthy-call
49
+ * timer's {@link resetRedialCount} is) and starts at zero on a `"user"` dial.
50
+ * Starts with an empty digest; {@link refreshCallActiveMarkerContext} fills it
51
+ * in as the call progresses. */
52
+ export declare const writeCallActiveMarker: (origin: CallDialOrigin) => void;
25
53
  /** Update the persisted digest of an already-active marker. No-op when no
26
54
  * marker is active — a digest has nothing to attach itself to once the call
27
55
  * has ended. */
28
56
  export declare const refreshCallActiveMarkerContext: (contextDigest: string) => void;
57
+ /** How often `voice-call.ts` re-stamps `updatedAtMs` while a call is
58
+ * `in_call` — the proof-of-life cadence a future reload's staleness check is
59
+ * accurate to. */
60
+ export declare const MARKER_HEARTBEAT_MS = 10000;
61
+ /** Refresh the marker's proof-of-life stamp. Called on a
62
+ * `MARKER_HEARTBEAT_MS` interval for as long as the call is live — see the
63
+ * module doc comment for why this can't just ride `refreshCallActiveMarkerContext`.
64
+ * No-op when no marker is active, mirroring `refreshCallActiveMarkerContext`:
65
+ * a heartbeat has nothing left to touch once the call has ended. */
66
+ export declare const touchCallActiveMarker: () => void;
67
+ /** Record one more auto-redial attempt against the persisted marker. No-op
68
+ * when no marker is active — mirrors `refreshCallActiveMarkerContext`. */
69
+ export declare const noteRedialAttempt: () => void;
70
+ /** Zero the redial counter — called once a (re)dialed call has stayed up long
71
+ * enough to call healthy, so it stops counting against the next drop. No-op
72
+ * when no marker is active — mirrors `refreshCallActiveMarkerContext`. */
73
+ export declare const resetRedialCount: () => void;
29
74
  /** Call ended (explicit hangup or terminal error) — no reload should redial. */
30
75
  export declare const clearCallActiveMarker: () => void;
31
- export type ReconnectOfferDecision = "offer" | "skip";
76
+ /** What the dock's boot effect should do about an interrupted call: dial it
77
+ * back automatically, put the one-click offer on the rail's call button, or
78
+ * leave the dock alone. */
79
+ export type ReconnectAction = "redial" | "offer" | "skip";
32
80
  /**
33
81
  * How long after the interrupted call started we still OFFER to reconnect. A
34
82
  * reload lands in seconds; a tab the browser restored from a much older session
@@ -37,29 +85,37 @@ export type ReconnectOfferDecision = "offer" | "skip";
37
85
  */
38
86
  export declare const RECONNECT_OFFER_MAX_AGE_MS = 600000;
39
87
  /**
40
- * Whether the dock's boot effect should OFFER to reconnect an interrupted call.
41
- *
42
- * This deliberately decides an offer, never a dial. Auto-dialing on load opens
43
- * the MICROPHONE with no user gesture: the origin already holds mic permission
44
- * (a call was live moments ago), so the browser does not re-prompt and the mic
45
- * would come back silently on the next page load — on hosts that receive the
46
- * SDK through an unpinnable bundle, with no opt-in of their own. Requiring one
47
- * click to redial is both the honest consent story and what browsers' autoplay/
48
- * gesture rules expect; the marker is kept either way so the redial can still
49
- * carry the interrupted call's `contextDigest`.
88
+ * How stale the marker may be and still earn an AUTOMATIC redial. A reload
89
+ * lands within a couple of seconds; a tab the browser restored from a much
90
+ * older session must not silently reopen the microphone. Read against
91
+ * `updatedAtMs` (the heartbeat), never `startedAtMs` a call that has been
92
+ * live for 20 minutes must still come back.
93
+ */
94
+ export declare const REDIAL_MAX_STALENESS_MS = 120000;
95
+ /** Consecutive automatic redials before falling back to the button. A host
96
+ * that crash-loops must not reopen the mic on every load. */
97
+ export declare const MAX_CONSECUTIVE_REDIALS = 2;
98
+ /**
99
+ * What the dock's boot effect should do about a call this tab was in when the
100
+ * page went away.
50
101
  *
51
102
  * Pure so the branching is unit-testable without React or WebRTC: a marker
52
103
  * means a call was live when the page went away; `tokenReady` mirrors the same
53
104
  * auth-readiness gate the login screen polls; `alreadyOffered` is the one-shot
54
- * guard (the offer is raised at most once per page load); and `startedAtMs` is
55
- * consumed against `nowMs` so a stale marker cannot offer forever.
105
+ * guard (the decision is acted on at most once per page load); and the
106
+ * marker's timestamps are consumed against `nowMs` so a stale marker can
107
+ * neither dial nor offer forever.
108
+ *
109
+ * The gates are what make an unattended `"redial"` acceptable — see the module
110
+ * doc. `"offer"` is the same one-click fallback this file has always decided,
111
+ * now reached only when a redial's gates say no.
56
112
  */
57
- export declare const decideReconnectOffer: (input: {
113
+ export declare const decideReconnectAction: (input: {
58
114
  readonly marker: CallActiveMarker | null;
59
115
  readonly tokenReady: boolean;
60
116
  readonly alreadyOffered: boolean;
61
117
  readonly nowMs: number;
62
- }) => ReconnectOfferDecision;
118
+ }) => ReconnectAction;
63
119
  export declare const peekReconnectOffered: () => boolean;
64
120
  export declare const markReconnectOffered: () => void;
65
121
  /** Test-only: forget the one-shot guard between test cases. */
@@ -17,14 +17,14 @@
17
17
  * a workspace must land in THAT workspace, not the shared legacy root — so the
18
18
  * create body carries the effective `workspaceExternalId` (absent when the host
19
19
  * runs unscoped). The line's registry label seeds the session title when one
20
- * exists; otherwise (U4 — the common case for a freshly materialized line,
21
- * since `dispatchToBackgroundLine` no longer seeds the registry label with the
22
- * agent's own name) the REQUEST itself does, so the sessions list still names
23
- * the background conversation by what it's actually about ("Reconcile the
24
- * July invoices"), not the agent that happened to run it.
20
+ * exists; otherwise (U4 — the common case, since nothing seeds a freshly
21
+ * materialized line's registry label any more) the REQUEST itself does, so the
22
+ * sessions list still names the background conversation by what it's actually
23
+ * about ("Reconcile the July invoices"), not the agent that happened to run
24
+ * it.
25
25
  *
26
26
  * BOOT RE-ATTACH (F3/R4): `attachLineReader` below is the ONE seam that wires
27
- * a VOICE-dispatched line-run reader onto a line, shared by a fresh dispatch
27
+ * a SLOT-tracked line-run reader onto a line, shared by a fresh dispatch
28
28
  * (this module, right after a POST accepts a run) and `reattachPendingLineRuns`
29
29
  * (called once at boot, after `initAgentLines()` rehydrates the registry)
30
30
  * resuming a run that was still going when the page reloaded. Both paths
@@ -32,26 +32,28 @@
32
32
  * navigate/artifact/finish/error callbacks — a reload must behave exactly like
33
33
  * the live dispatch it is standing in for, not a parallel, easier-to-drift copy.
34
34
  *
35
- * TWO READER KINDS (BEL-90). This module now attaches two, and which callback
36
- * set a caller gets is a correctness question, not a style one:
35
+ * TWO READER KINDS (BEL-90). This module attaches two, and which callback set
36
+ * a caller gets is a correctness question, not a style one. NEITHER speaks —
37
+ * a background line never reaches the call (see voice-call.ts's agent-line
38
+ * section) — but they write different things:
37
39
  *
38
- * - `attachLineReader` — the voice-NARRATION reader. Its callbacks are not
39
- * plain setters: `deliverLineReply`/`deliverLineFailure` push
40
- * `conversation.item.create` events into an active voice call and ask the
41
- * model to respond, `notifyLinePhase` appends timeline rows and nudges
42
- * spoken progress, `deliverLineArtifact` opens a preview panel. Correct
43
- * for a run the operator dispatched BY VOICE.
40
+ * - `attachLineReader` — the SLOT reader, for a run this module dispatched.
41
+ * It owns the durable slot runId (`persistSlotRun`, set on dispatch and
42
+ * cleared on terminal), writes the registry through
43
+ * `deliverLineReply`/`deliverLineFailure`/`notifyLinePhase`/
44
+ * `notifyLineApprovalNeeded`, and additionally opens an artifact preview
45
+ * and dispatches host route navigation.
44
46
  * - `attachLineProgressReader` — the plain-progress reader, for a run the
45
47
  * user started by TYPING that was still in flight at reload. It goes
46
- * through `reportRunLineProgress` and touches only the registry, so a
47
- * typed run can never make the agent start talking about background
48
- * progress mid-call.
48
+ * through `reportRunLineProgress`, touches only the registry, and — see
49
+ * its own doc deliberately writes no slot runId, opens no panel, and
50
+ * drives no navigation.
49
51
  */
50
52
  /** Abort every live line reader and invalidate their callbacks (call teardown).
51
53
  * Subscribed below to fire whenever a call leaves in_call/connecting. */
52
54
  export declare const abortAllLineReaders: () => void;
53
55
  /** Test-only: drop every plain-progress reader (and the active-session latch)
54
- * so a case never inherits either from the previous case. The narration
56
+ * so a case never inherits either from the previous case. The slot
55
57
  * readers have `abortAllLineReaders`; these deliberately do NOT ride on it — a
56
58
  * voice call ending has nothing to do with a typed run still streaming. */
57
59
  export declare const __detachLineProgressReadersForTest: () => void;
@@ -66,8 +68,8 @@ export declare const __detachLineProgressReadersForTest: () => void;
66
68
  * TWO paths, because the two dispatch kinds have genuinely different
67
69
  * contracts (BEL-90 / B1 — see `attachLineProgressReader`'s doc):
68
70
  *
69
- * - F3/R4, UNCHANGED — a line whose durable SLOT carries a runId was
70
- * dispatched by voice. It gets the narration reader, on every line that has
71
+ * - F3/R4, UNCHANGED — a line whose durable SLOT carries a runId went
72
+ * through `dispatchToLine`. It gets the slot reader, on every line that has
71
73
  * one, INCLUDING when its session is the one on screen. That last part is
72
74
  * load-bearing: `persistSlotRun(line, null)` in that reader's terminal
73
75
  * callbacks is the durable slot's clearer, and skipping the on-screen line
@@ -26,6 +26,12 @@ export type RealtimeCallHandle = {
26
26
  readonly sendEvent: (event: Record<string, unknown>) => void;
27
27
  /** Toggle the local mic track without renegotiating. */
28
28
  readonly setMuted: (muted: boolean) => void;
29
+ /** Ask the browser to play the agent's audio again after it refused (see
30
+ * {@link ConnectRealtimeCallInput.onAudioBlocked}). Resolves true only when
31
+ * playback actually started. Call it STRAIGHT from the user's tap handler:
32
+ * the `play()` inside runs before the first await, so the gesture the
33
+ * browser is holding out for is still on the stack. */
34
+ readonly resumeAudio: () => Promise<boolean>;
29
35
  /** Tear down mic, peer connection, and audio playback. Idempotent. */
30
36
  readonly close: () => void;
31
37
  };
@@ -52,5 +58,11 @@ export type ConnectRealtimeCallInput = {
52
58
  readonly local: MediaStream;
53
59
  readonly remote: MediaStream;
54
60
  }) => void;
61
+ /** Fired when the browser REFUSES to play the agent's audio. `autoplay` is
62
+ * a request, not a guarantee — a page that reloaded mid-call has no fresh
63
+ * user gesture behind it — and a refusal we never asked about is completely
64
+ * silent: the call looks connected and says nothing. The store turns this
65
+ * into a one-tap "Tap to hear" control (`resumeAudio` above). */
66
+ readonly onAudioBlocked?: () => void;
55
67
  };
56
68
  export declare const connectRealtimeCall: (input: ConnectRealtimeCallInput) => Promise<ConnectRealtimeCallResult>;
@@ -2,12 +2,19 @@
2
2
  * "A call was interrupted — tap to reconnect" — the one-bit store that turns a
3
3
  * surviving call marker (`call-active-marker.ts`) into a USER-DRIVEN redial.
4
4
  *
5
- * The dock's boot effect raises the offer; the rail's CallButton reads it and,
6
- * while it stands, dials with `{ isReconnect: true }` (carrying the interrupted
5
+ * This is the FALLBACK half of reload survival: the dock's boot effect dials
6
+ * an interrupted call back on its own when the marker clears
7
+ * `decideReconnectAction`'s gates, and raises this offer when it does not —
8
+ * a marker too stale to prove the call was live moments ago, or one already
9
+ * redialed up to the consecutive-redial cap. It raises the offer again when a
10
+ * redial the gates DID allow fails to connect, so a flaky call-token endpoint
11
+ * costs the user one automatic attempt rather than the whole call (see
12
+ * `watchRedialForFallback` in BelongDock.tsx). Whenever it stands, the rail's
13
+ * CallButton dials with `{ isReconnect: true }` (carrying the interrupted
7
14
  * call's context digest) and labels itself "Reconnect" instead of "Start voice
8
15
  * call". That is the whole mechanism: ONE user click, on a control that is
9
- * already always visible in the rail — no new surface, and crucially no
10
- * microphone access without a gesture.
16
+ * already always visible in the rail — no new surface, and no microphone
17
+ * access without a gesture on exactly the marker the gates declined to trust.
11
18
  *
12
19
  * Why a separate store rather than a field on `CallState`: the call state is
13
20
  * rebuilt from `IDLE` on every dial and every terminal error, which would wipe
@@ -18,7 +25,9 @@
18
25
  */
19
26
  export declare const peekReconnectOffer: () => boolean;
20
27
  export declare const subscribeReconnectOffer: (listener: () => void) => (() => void);
21
- /** Raise the offer (dock boot, when `decideReconnectOffer` says so). */
28
+ /** Raise the offer: at dock boot when `decideReconnectAction` says `"offer"`
29
+ * (a marker too stale, or too many redials deep, to dial back on its own), and
30
+ * when a redial it DID allow ends in `error` without ever reaching the call. */
22
31
  export declare const offerReconnect: () => void;
23
32
  /**
24
33
  * Take the offer down. Called when the user acts on it (the reconnect click),