@belonguniverseai/react-sdk 0.1.5 → 0.1.7

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 (109) hide show
  1. package/dist/api/agent-grants.d.ts +18 -23
  2. package/dist/api/client.d.ts +1215 -75
  3. package/dist/api/query-keys.d.ts +5 -0
  4. package/dist/api/task-schedules.d.ts +313 -0
  5. package/dist/app/dock-outlet.d.ts +18 -0
  6. package/dist/browser/control-channel.d.ts +9 -0
  7. package/dist/component/{arc-qZMtTEQp.js → arc-D26RO7cK.js} +2 -2
  8. package/dist/component/{architectureDiagram-3BPJPVTR-CtO601Ty.js → architectureDiagram-3BPJPVTR-uiXhyHDF.js} +3 -3
  9. package/dist/component/{blockDiagram-GPEHLZMM-fKkEUEDS.js → blockDiagram-GPEHLZMM-Bm1HEObg.js} +4 -4
  10. package/dist/component/{c4Diagram-AAUBKEIU-KqgmAa9H.js → c4Diagram-AAUBKEIU-BypAuFIJ.js} +3 -3
  11. package/dist/component/{channel-Cd6udgmU.js → channel-MvxNOfHS.js} +2 -2
  12. package/dist/component/{chunk-2J33WTMH-MaLtoDSx.js → chunk-2J33WTMH-MxAoh_Eu.js} +2 -2
  13. package/dist/component/{chunk-4BX2VUAB-DdDabPei.js → chunk-4BX2VUAB-BHpzlyda.js} +2 -2
  14. package/dist/component/{chunk-55IACEB6-DHQfY7ay.js → chunk-55IACEB6-igXCAYDB.js} +2 -2
  15. package/dist/component/{chunk-727SXJPM-DIUibY9s.js → chunk-727SXJPM-BPq4W66f.js} +6 -6
  16. package/dist/component/{chunk-AQP2D5EJ-Bohmsf7Z.js → chunk-AQP2D5EJ-Y9AksdXf.js} +4 -4
  17. package/dist/component/{chunk-FMBD7UC4-CiCh8Wxm.js → chunk-FMBD7UC4-DHrfutng.js} +2 -2
  18. package/dist/component/{chunk-ND2GUHAM-DLKe9Qxr.js → chunk-ND2GUHAM-Ch9c4OTL.js} +2 -2
  19. package/dist/component/{chunk-QZHKN3VN-BEosEHjT.js → chunk-QZHKN3VN-DCe5OD8b.js} +2 -2
  20. package/dist/component/{classDiagram-4FO5ZUOK-5yoauZso.js → classDiagram-4FO5ZUOK-wW5NdcaU.js} +3 -3
  21. package/dist/component/{classDiagram-v2-Q7XG4LA2-5yoauZso.js → classDiagram-v2-Q7XG4LA2-wW5NdcaU.js} +3 -3
  22. package/dist/component/{cose-bilkent-S5V4N54A-ZvjOc5yF.js → cose-bilkent-S5V4N54A-BkRr9q6q.js} +2 -2
  23. package/dist/component/{dagre-BM42HDAG-BirvIeWT.js → dagre-BM42HDAG-BaUecTLo.js} +2 -2
  24. package/dist/component/{diagram-2AECGRRQ-DbK75uYi.js → diagram-2AECGRRQ-BaAo02me.js} +3 -3
  25. package/dist/component/{diagram-5GNKFQAL-Xyau_WDx.js → diagram-5GNKFQAL-DKerYV9c.js} +4 -4
  26. package/dist/component/{diagram-KO2AKTUF-jGJhlVoS.js → diagram-KO2AKTUF-jeKVSHu1.js} +3 -3
  27. package/dist/component/{diagram-LMA3HP47-BIZKHEj8.js → diagram-LMA3HP47-wsR18sOb.js} +3 -3
  28. package/dist/component/{diagram-OG6HWLK6-SsKVgkRq.js → diagram-OG6HWLK6-D6kALGxL.js} +4 -4
  29. package/dist/component/{erDiagram-TEJ5UH35-CD_3Nxu_.js → erDiagram-TEJ5UH35-CQb_EY79.js} +5 -5
  30. package/dist/component/{flowDiagram-I6XJVG4X-Dim5dbSa.js → flowDiagram-I6XJVG4X-B52f9IhS.js} +7 -7
  31. package/dist/component/{ganttDiagram-6RSMTGT7-BHK-3XlP.js → ganttDiagram-6RSMTGT7-B6szKgV7.js} +3 -3
  32. package/dist/component/{gitGraphDiagram-PVQCEYII-Ckff9fHa.js → gitGraphDiagram-PVQCEYII-Cso6Oo6v.js} +4 -4
  33. package/dist/component/{highlighted-body-OFNGDK62-pHPkIg3d.js → highlighted-body-OFNGDK62-CD0QHket.js} +2 -2
  34. package/dist/component/index-Dips44uG.js +2208 -0
  35. package/dist/component/index.js +2 -2
  36. package/dist/component/{infoDiagram-5YYISTIA-Dp_rhKDP.js → infoDiagram-5YYISTIA-BGNkBFoP.js} +2 -2
  37. package/dist/component/{ishikawaDiagram-YF4QCWOH-Ch_zRlUM.js → ishikawaDiagram-YF4QCWOH-CDk8KSNE.js} +2 -2
  38. package/dist/component/{journeyDiagram-JHISSGLW-DLWP05FC.js → journeyDiagram-JHISSGLW-lPfVcAq5.js} +5 -5
  39. package/dist/component/{kanban-definition-UN3LZRKU-BRgTurbj.js → kanban-definition-UN3LZRKU-DN_BkNHr.js} +3 -3
  40. package/dist/component/{linear-b7BWY2Ku.js → linear-C9Fv-7qu.js} +2 -2
  41. package/dist/component/{mermaid-GHXKKRXX-BU0A6vGx.js → mermaid-GHXKKRXX-bJrxMXXe.js} +36152 -32029
  42. package/dist/component/{mindmap-definition-RKZ34NQL-BgBw2ubB.js → mindmap-definition-RKZ34NQL-Duh3XRoZ.js} +4 -4
  43. package/dist/component/{pieDiagram-4H26LBE5-Dr-5pVKk.js → pieDiagram-4H26LBE5-BkKLjdAW.js} +4 -4
  44. package/dist/component/{quadrantDiagram-W4KKPZXB-BG4QvalE.js → quadrantDiagram-W4KKPZXB-DAvb8fUN.js} +3 -3
  45. package/dist/component/{requirementDiagram-4Y6WPE33-BEJzZeiL.js → requirementDiagram-4Y6WPE33-BtRuiyP2.js} +4 -4
  46. package/dist/component/{sankeyDiagram-5OEKKPKP-0Oohwww8.js → sankeyDiagram-5OEKKPKP-N0AD4yPI.js} +2 -2
  47. package/dist/component/{sequenceDiagram-3UESZ5HK-D-GdC1ck.js → sequenceDiagram-3UESZ5HK-BHfCscqu.js} +4 -4
  48. package/dist/component/{stateDiagram-AJRCARHV-DhNmn4mf.js → stateDiagram-AJRCARHV-CogCGofy.js} +3 -3
  49. package/dist/component/{stateDiagram-v2-BHNVJYJU-XFoNYMc3.js → stateDiagram-v2-BHNVJYJU-B1mCX7fI.js} +3 -3
  50. package/dist/component/{timeline-definition-PNZ67QCA-CEOHBCWh.js → timeline-definition-PNZ67QCA-CCbxae4K.js} +3 -3
  51. package/dist/component/{vennDiagram-CIIHVFJN-BLCN_trc.js → vennDiagram-CIIHVFJN-4A3Z5NhT.js} +2 -2
  52. package/dist/component/{wardleyDiagram-YWT4CUSO-BbDSTDli.js → wardleyDiagram-YWT4CUSO-D2FUxcv8.js} +3 -3
  53. package/dist/component/{xychartDiagram-2RQKCTM6-BHKWkvbW.js → xychartDiagram-2RQKCTM6-DELqVNap.js} +3 -3
  54. package/dist/components/embed/AgentGrantAutoConnect.d.ts +1 -0
  55. package/dist/components/embed/CapabilityHints.d.ts +4 -1
  56. package/dist/components/embed/EmbedConversation.d.ts +11 -11
  57. package/dist/components/embed/EmbedRail.d.ts +1 -1
  58. package/dist/components/embed/FilePreview.d.ts +7 -2
  59. package/dist/components/embed/FilePreviewDialog.d.ts +6 -2
  60. package/dist/components/embed/HtmlPreviewFrame.d.ts +7 -0
  61. package/dist/components/embed/MentionInput.d.ts +8 -1
  62. package/dist/components/embed/PreviewContent.d.ts +9 -21
  63. package/dist/components/embed/WelcomeIntro.d.ts +5 -3
  64. package/dist/components/embed/WelcomeSkills.d.ts +7 -0
  65. package/dist/components/embed/file-preview-kind.d.ts +7 -3
  66. package/dist/components/embed/onboarding-story-dock.d.ts +5 -2
  67. package/dist/components/embed/preview-content-kind.d.ts +5 -7
  68. package/dist/components/embed/use-inline-preview-url.d.ts +20 -0
  69. package/dist/components/scheduled/ConfirmDeleteScheduleDialog.d.ts +7 -0
  70. package/dist/components/scheduled/ScheduleDialog.d.ts +13 -0
  71. package/dist/components/scheduled/ScheduledDetailSurface.d.ts +8 -0
  72. package/dist/components/scheduled/ScheduledListSurface.d.ts +7 -0
  73. package/dist/components/scheduled/TimezoneCombobox.d.ts +7 -0
  74. package/dist/components/scheduled/schedule-dialog-model.d.ts +11 -0
  75. package/dist/components/scheduled/schedule-format.d.ts +38 -0
  76. package/dist/embed/agent-grant-refresh.d.ts +7 -7
  77. package/dist/embed/composer-submit.d.ts +7 -0
  78. package/dist/embed/copy.d.ts +93 -15
  79. package/dist/embed/dock-state.d.ts +1 -1
  80. package/dist/embed/locale.d.ts +4 -0
  81. package/dist/embed/slash-commands.d.ts +20 -6
  82. package/dist/embed/tab-id.d.ts +33 -0
  83. package/dist/embed/task-schedule-command.d.ts +32 -0
  84. package/dist/embed/task-schedule-store.d.ts +29 -0
  85. package/dist/embed/theme-preview-params.d.ts +2 -0
  86. package/dist/embed/voice-narration.d.ts +15 -0
  87. package/dist/i18n/messages/en.d.ts +106 -22
  88. package/dist/i18n/messages/pt.d.ts +3 -0
  89. package/dist/i18n/messages/surfaces/aiElements.d.ts +50 -0
  90. package/dist/i18n/messages/surfaces/app.d.ts +15 -0
  91. package/dist/i18n/messages/surfaces/embedMisc.d.ts +45 -8
  92. package/dist/i18n/messages/surfaces/feedback.d.ts +9 -0
  93. package/dist/i18n/messages/surfaces/files.d.ts +37 -0
  94. package/dist/i18n/messages/surfaces/header.d.ts +24 -0
  95. package/dist/i18n/messages/surfaces/login.d.ts +8 -0
  96. package/dist/i18n/messages/surfaces/plan.d.ts +17 -0
  97. package/dist/i18n/messages/surfaces/scheduled.d.ts +253 -0
  98. package/dist/i18n/messages/surfaces/sessions.d.ts +21 -0
  99. package/dist/i18n/messages/surfaces/stream.d.ts +68 -0
  100. package/dist/i18n/messages/surfaces/usage.d.ts +10 -0
  101. package/dist/lib/use-debounced-value.d.ts +2 -0
  102. package/dist/routes/chat.d.ts +3 -2
  103. package/dist/routes/scheduled-detail.d.ts +2 -0
  104. package/dist/routes/scheduled.d.ts +2 -0
  105. package/dist/stream/stream-state-store.d.ts +36 -0
  106. package/dist/types/public.d.ts +45 -10
  107. package/package.json +1 -1
  108. package/dist/components/embed/AgentGrantCard.d.ts +0 -27
  109. package/dist/i18n/messages/surfaces/agentGrant.d.ts +0 -39
@@ -1,6 +1,6 @@
1
- import { g as oe } from "./chunk-55IACEB6-DHQfY7ay.js";
2
- import { s as ae } from "./chunk-2J33WTMH-MaLtoDSx.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-BU0A6vGx.js";
1
+ import { g as oe } from "./chunk-55IACEB6-igXCAYDB.js";
2
+ import { s as ae } from "./chunk-2J33WTMH-MxAoh_Eu.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-bJrxMXXe.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-BgBw2ubB.js.map
833
+ //# sourceMappingURL=mindmap-definition-RKZ34NQL-Duh3XRoZ.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-BU0A6vGx.js";
2
- import { p as gt } from "./chunk-4BX2VUAB-DdDabPei.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-bJrxMXXe.js";
2
+ import { p as gt } from "./chunk-4BX2VUAB-BHpzlyda.js";
3
3
  import { p as dt } from "./wardley-L42UT6IY-HA1eSIS_.js";
4
- import { d as P } from "./arc-qZMtTEQp.js";
4
+ import { d as P } from "./arc-D26RO7cK.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-Dr-5pVKk.js.map
166
+ //# sourceMappingURL=pieDiagram-4H26LBE5-BkKLjdAW.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-BU0A6vGx.js";
2
- import { l as te } from "./linear-b7BWY2Ku.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-bJrxMXXe.js";
2
+ import { l as te } from "./linear-C9Fv-7qu.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-BG4QvalE.js.map
1033
+ //# sourceMappingURL=quadrantDiagram-W4KKPZXB-DAvb8fUN.js.map
@@ -1,6 +1,6 @@
1
- import { g as Ge } from "./chunk-55IACEB6-DHQfY7ay.js";
2
- import { s as ze } from "./chunk-2J33WTMH-MaLtoDSx.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-BU0A6vGx.js";
1
+ import { g as Ge } from "./chunk-55IACEB6-igXCAYDB.js";
2
+ import { s as ze } from "./chunk-2J33WTMH-MxAoh_Eu.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-bJrxMXXe.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-BEJzZeiL.js.map
888
+ //# sourceMappingURL=requirementDiagram-4Y6WPE33-BtRuiyP2.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-BU0A6vGx.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-bJrxMXXe.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-0Oohwww8.js.map
862
+ //# sourceMappingURL=sankeyDiagram-5OEKKPKP-N0AD4yPI.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-BU0A6vGx.js";
2
- import { a as pr, b as ee, g as dt, d as Er, e as re, f as ae } from "./chunk-ND2GUHAM-DLKe9Qxr.js";
3
- import { I as ur } from "./chunk-QZHKN3VN-BEosEHjT.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-bJrxMXXe.js";
2
+ import { a as pr, b as ee, g as dt, d as Er, e as re, f as ae } from "./chunk-ND2GUHAM-Ch9c4OTL.js";
3
+ import { I as ur } from "./chunk-QZHKN3VN-DCe5OD8b.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-D-GdC1ck.js.map
2897
+ //# sourceMappingURL=sequenceDiagram-3UESZ5HK-BHfCscqu.js.map
@@ -1,5 +1,5 @@
1
- import { s as R, a as W, S as N } from "./chunk-AQP2D5EJ-Bohmsf7Z.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-BU0A6vGx.js";
1
+ import { s as R, a as W, S as N } from "./chunk-AQP2D5EJ-Y9AksdXf.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-bJrxMXXe.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-DhNmn4mf.js.map
266
+ //# sourceMappingURL=stateDiagram-AJRCARHV-CogCGofy.js.map
@@ -1,5 +1,5 @@
1
- import { s as e, b as r, a as s, S as t } from "./chunk-AQP2D5EJ-Bohmsf7Z.js";
2
- import { _ as l } from "./mermaid-GHXKKRXX-BU0A6vGx.js";
1
+ import { s as e, b as r, a as s, S as t } from "./chunk-AQP2D5EJ-Y9AksdXf.js";
2
+ import { _ as l } from "./mermaid-GHXKKRXX-bJrxMXXe.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-XFoNYMc3.js.map
19
+ //# sourceMappingURL=stateDiagram-v2-BHNVJYJU-B1mCX7fI.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-BU0A6vGx.js";
2
- import { d as ot } from "./arc-qZMtTEQp.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-bJrxMXXe.js";
2
+ import { d as ot } from "./arc-D26RO7cK.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-CEOHBCWh.js.map
1058
+ //# sourceMappingURL=timeline-definition-PNZ67QCA-CCbxae4K.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-BU0A6vGx.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-bJrxMXXe.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-BLCN_trc.js.map
1560
+ //# sourceMappingURL=vennDiagram-CIIHVFJN-4A3Z5NhT.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-BU0A6vGx.js";
2
- import { p as Bt } from "./chunk-4BX2VUAB-DdDabPei.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-bJrxMXXe.js";
2
+ import { p as Bt } from "./chunk-4BX2VUAB-BHpzlyda.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-BbDSTDli.js.map
681
+ //# sourceMappingURL=wardleyDiagram-YWT4CUSO-D2FUxcv8.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-BU0A6vGx.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-bJrxMXXe.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-b7BWY2Ku.js";
4
+ import { l as Dt } from "./linear-C9Fv-7qu.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-BHKWkvbW.js.map
1375
+ //# sourceMappingURL=xychartDiagram-2RQKCTM6-DELqVNap.js.map
@@ -0,0 +1 @@
1
+ export declare function AgentGrantAutoConnect(): null;
@@ -1 +1,4 @@
1
- export declare function CapabilityHints(): import("react").JSX.Element;
1
+ import { DockCopyVariant } from '../../embed/copy.ts';
2
+ export declare function CapabilityHints({ variant }: {
3
+ variant: DockCopyVariant;
4
+ }): import("react").JSX.Element;
@@ -1,12 +1,20 @@
1
1
  /**
2
2
  * Belong-styled conversation frame. The chat route passes the rendered message
3
3
  * list as children (keeping its useChat mapping + PartRenderer dispatch); this
4
- * wrapper adds the centered mic-status chip and the streaming "working…" + Stop
5
- * row.
4
+ * wrapper adds the centered mic-status chip and the streaming "working…" row.
5
+ * Stopping a run lives ONLY on the composer send button (it morphs into Stop
6
+ * while generating) — no second Stop control here. Clearing the visible chat
7
+ * is the `/clear` slash command — no toolbar button.
6
8
  */
7
- export declare function EmbedConversation({ micOn, streaming, agentName, scrollResize, onStop, onClear, clearDisabled, children, }: Readonly<{
9
+ export declare function EmbedConversation({ micOn, streaming, agentName, scrollResize, centerContent, children, }: Readonly<{
8
10
  micOn: boolean;
9
11
  streaming: boolean;
12
+ /**
13
+ * Center the content vertically in the viewport — used by the first-run
14
+ * empty state so the welcome block sits mid-chat instead of hugging the top.
15
+ * The scroller behaves normally the moment content outgrows the viewport.
16
+ */
17
+ centerContent?: boolean;
10
18
  /**
11
19
  * BEL-106 — the active agent's display name (the brand name shown in the
12
20
  * header, e.g. "Simetrik"). Drives the streaming "<name> is working…" line so
@@ -19,13 +27,5 @@ export declare function EmbedConversation({ micOn, streaming, agentName, scrollR
19
27
  * glide), then settles it to "smooth" for live streaming growth.
20
28
  */
21
29
  scrollResize: "instant" | "smooth";
22
- onStop: () => void;
23
- /**
24
- * BEL-62 — clear the VISIBLE chat (the agent keeps the full context). Renders
25
- * a small eraser button in the conversation toolbar; omitted when undefined.
26
- */
27
- onClear?: () => void;
28
- /** Disable the clear button while a clear request is in flight. */
29
- clearDisabled?: boolean;
30
30
  children: React.ReactNode;
31
31
  }>): import("react").JSX.Element;
@@ -3,7 +3,7 @@ import { VoiceStatus } from '../../embed/voice-bus.ts';
3
3
  import { SessionSummary } from './EmbedSessions';
4
4
  import { PlanProgress } from '../../stream/plan-progress.ts';
5
5
  import { BelongTheme, BelongThemePalette, PresetName } from '../../types/public.ts';
6
- export type EmbedView = "chat" | "files";
6
+ export type EmbedView = "chat" | "files" | "scheduled";
7
7
  /**
8
8
  * 52px rail. Top: user avatar (account + theme controls). Middle: Chat /
9
9
  * Files nav (active = Ocean primary fill, brand-driven). Bottom
@@ -3,10 +3,15 @@ export type FilePreviewProps = {
3
3
  readonly contentUrl: string;
4
4
  readonly filename: string;
5
5
  readonly mimeType: string;
6
- /** Heavy (pdf/office) preview needs the files-converter endpoints, keyed by
6
+ /** Heavy (office) preview needs the files-converter endpoints, keyed by
7
7
  * fileId. Absent → heavy kinds fall back to the download card. */
8
8
  readonly heavy?: {
9
9
  readonly fileId: string;
10
10
  } | undefined;
11
+ /** Framed html/pdf preview needs a mint target (uploaded files only).
12
+ * Absent → html/pdf fall back to the download card. */
13
+ readonly inlineRef?: {
14
+ readonly fileId: string;
15
+ } | undefined;
11
16
  };
12
- export declare const FilePreview: ({ contentUrl, filename, mimeType, heavy }: FilePreviewProps) => import("react").JSX.Element | null;
17
+ export declare const FilePreview: ({ contentUrl, filename, mimeType, heavy, inlineRef, }: FilePreviewProps) => import("react").JSX.Element | null;
@@ -10,10 +10,14 @@ type FilePreviewDialogProps = {
10
10
  readonly contentUrl: string;
11
11
  readonly filename: string;
12
12
  readonly mimeType: string;
13
- /** Heavy (pdf/office) preview — present only for files-converter sources. */
13
+ /** Heavy (office) preview — present only for files-converter sources. */
14
14
  readonly heavy?: {
15
15
  readonly fileId: string;
16
16
  } | undefined;
17
+ /** Framed html/pdf preview — the mint target (uploaded files only). */
18
+ readonly inlineRef?: {
19
+ readonly fileId: string;
20
+ } | undefined;
17
21
  };
18
- export declare const FilePreviewDialog: ({ open, onOpenChange, contentUrl, filename, mimeType, heavy, }: FilePreviewDialogProps) => import("react").JSX.Element;
22
+ export declare const FilePreviewDialog: ({ open, onOpenChange, contentUrl, filename, mimeType, heavy, inlineRef, }: FilePreviewDialogProps) => import("react").JSX.Element;
19
23
  export {};
@@ -0,0 +1,7 @@
1
+ import { InlinePreviewTarget } from './use-inline-preview-url.ts';
2
+ export type HtmlPreviewFrameProps = {
3
+ readonly target: InlinePreviewTarget;
4
+ readonly title: string;
5
+ readonly className?: string;
6
+ };
7
+ export declare const HtmlPreviewFrame: ({ target, title, className }: HtmlPreviewFrameProps) => import("react").JSX.Element;
@@ -17,7 +17,7 @@ export type MentionInputHandle = {
17
17
  setPendingCaret: (offset: number) => void;
18
18
  element: HTMLDivElement | null;
19
19
  };
20
- export declare function MentionInput({ value, palette, placeholder, disabled, className, ariaProps, onChange, onCaretChange, onKeyDown, handleRef, }: {
20
+ export declare function MentionInput({ value, palette, placeholder, disabled, className, ariaProps, onChange, onCaretChange, onKeyDown, onPasteFiles, handleRef, }: {
21
21
  value: string;
22
22
  palette: BelongThemePalette;
23
23
  placeholder: string;
@@ -29,5 +29,12 @@ export declare function MentionInput({ value, palette, placeholder, disabled, cl
29
29
  /** Fires on caret-only moves (selection change). */
30
30
  onCaretChange: (caret: number) => void;
31
31
  onKeyDown: (e: ReactKeyboardEvent<HTMLDivElement>) => void;
32
+ /**
33
+ * Fires when the clipboard paste carries FILES (screenshot / copied image)
34
+ * instead of text. The editor stays attachment-agnostic — the composer
35
+ * bridges this to the PromptInput attachments context (which validates
36
+ * accept/maxFiles). Omitted = files fall through to the text path.
37
+ */
38
+ onPasteFiles?: (files: readonly File[]) => void;
32
39
  handleRef?: Ref<MentionInputHandle>;
33
40
  }): import("react").JSX.Element;
@@ -1,26 +1,14 @@
1
- /**
2
- * PreviewContent — renders the bytes of a previewable target (a published
3
- * artifact OR a workspace file) inside the artifact preview panel, filling the
4
- * panel's height. The panel owns the chrome (header, fullscreen, resize); this
5
- * owns the render-by-media-type:
6
- *
7
- * - text/html → a sandboxed `<iframe srcdoc>` at full panel size.
8
- * `allow-scripts` (so an interactive deliverable runs)
9
- * WITHOUT `allow-same-origin`, so the frame gets an opaque
10
- * origin and can't reach the dock, the host page, or any
11
- * belong-cloud cookie.
12
- * - text/markdown → the dock's themed, sanitized Streamdown renderer.
13
- * - image/* → the decoded image, contained.
14
- * - json/csv/text → a scrollable Shiki code block.
15
- * - anything else → a download affordance.
16
- *
17
- * Bytes come from the caller-supplied auth'd URL via `usePreviewBytes` (shared
18
- * with the FilePreview dialog); the panel hands HTML in through `srcdoc`.
19
- */
1
+ import { InlinePreviewTarget } from './use-inline-preview-url.ts';
20
2
  export type PreviewContentProps = {
21
- /** Auth'd bytes URL (the dock adds the bearer header). */
3
+ /** Auth'd bytes URL (the dock adds the bearer header) — used for every kind
4
+ * except html/pdf, which load FRAMED from belong-cloud instead (see the
5
+ * module doc comment above). */
22
6
  readonly contentUrl: string;
23
7
  readonly title: string;
24
8
  readonly mimeType: string;
9
+ /** Mint target for the framed html/pdf preview. Null only when the panel
10
+ * target itself is null (the caller guards that case before rendering
11
+ * `PreviewContent` at all, so this is effectively always set for html/pdf). */
12
+ readonly inlineTarget: InlinePreviewTarget | null;
25
13
  };
26
- export declare const PreviewContent: ({ contentUrl, title, mimeType }: PreviewContentProps) => import("react").JSX.Element;
14
+ export declare const PreviewContent: ({ contentUrl, title, mimeType, inlineTarget, }: PreviewContentProps) => import("react").JSX.Element;
@@ -1,9 +1,11 @@
1
1
  import { BelongThemeBrand } from '../../types/public.ts';
2
2
  /**
3
3
  * The first thing the user sees in a brand-new session: the assistant
4
- * introducing itself and what it can help with, above the quick-start chips.
5
- * Reads `brand` (theme) + the active locale, so it's deterministic from theme +
6
- * language and survives a reload exactly like the empty-state chips do (§41).
4
+ * introducing itself and pitching skills as the highest-signal way to work
5
+ * (Simetrik brands get the reconciliation-flavored pitch; everyone else the
6
+ * generic one), above the skills table / quick-start chips. Reads `brand`
7
+ * (theme) + the active locale, so it's deterministic from theme + language and
8
+ * survives a reload exactly like the empty-state chips do (§41).
7
9
  */
8
10
  export declare function WelcomeIntro({ brand }: {
9
11
  brand: BelongThemeBrand;
@@ -0,0 +1,7 @@
1
+ import { SkillSummary } from '../../api/skills.ts';
2
+ import { SkillsPanelCopy } from '../../embed/copy.ts';
3
+ export declare function WelcomeSkills({ skills, copy, onPick, }: {
4
+ skills: readonly SkillSummary[];
5
+ copy: SkillsPanelCopy;
6
+ onPick: (name: string) => void;
7
+ }): import("react").JSX.Element | null;
@@ -1,6 +1,10 @@
1
- /** Pure mime → dock render kind. Mirrors the backend classifier
2
- * (apps/belong-cloud/src/features/files/preview.types.ts). */
3
- export type FilePreviewKind = "markdown" | "json" | "csv" | "text" | "image" | "heavy" | "download";
1
+ /** Pure mime → dock render kind. The backend classifier
2
+ * (apps/belong-cloud/src/features/files/preview.types.ts) mirrors the HEAVY
3
+ * set only: html/pdf render as FRAMED documents from belong-cloud
4
+ * (inline-preview routes — required under strict host CSPs) and sql renders
5
+ * inline from /content. Deliberate divergence: the dock no longer asks the
6
+ * converter for pdf. */
7
+ export type FilePreviewKind = "markdown" | "json" | "csv" | "text" | "sql" | "image" | "html" | "pdf" | "heavy" | "download";
4
8
  export declare const filePreviewKind: (mimeType: string) => FilePreviewKind;
5
9
  /** Best-effort mime for a workspace file PATH (which carries no mimeType).
6
10
  * Returns "" when the extension isn't in the previewable set. */
@@ -1,9 +1,12 @@
1
1
  import { ReactNode, RefObject } from 'react';
2
+ import { SkillSummary } from '../../api/skills.ts';
2
3
  import { Locale } from '../../embed/locale.ts';
3
4
  import { StoryMode } from './onboarding.fixtures.ts';
4
- /** The empty-state content (intro + chips + keystroke hints) for a locale. */
5
- export declare function MockEmptyState({ locale }: {
5
+ /** The empty-state content (intro + skills table + keystroke hints) for a
6
+ * locale. `skills: []` shows the fallback quick-start chips instead. */
7
+ export declare function MockEmptyState({ locale, skills, }: {
6
8
  locale: Locale;
9
+ skills?: readonly SkillSummary[];
7
10
  }): import("react").JSX.Element;
8
11
  /**
9
12
  * A mock Simetrik dock: header, a message area (`children`), the anchored
@@ -1,15 +1,13 @@
1
1
  /**
2
2
  * Pure media-type → preview-render decision for the artifact preview panel.
3
3
  *
4
- * It extends the shared `filePreviewKind` with an `html` arm (the panel renders
5
- * HTML deliverables in a sandboxed iframe a proper rendered preview, not a
6
- * download) and a `pdf` arm (browsers render `application/pdf` natively, so the
7
- * panel shows the fetched bytes in an `<iframe>` — no converter needed). The
8
- * panel has no document converter (no files-converter `fileId`), so the OTHER
9
- * `heavy` kinds (office: xlsx/docx/pptx) still collapse to `download` here.
4
+ * Delegates to `filePreviewKind` and maps `heavy` (office formats requiring
5
+ * the LibreOffice converter the panel lacks) to `download`. The panel renders
6
+ * html/pdf/markdown/code/images inline; sql renders as inline code;
7
+ * everything else is download-only.
10
8
  * Exported + unit tested because it's the part most likely to regress.
11
9
  */
12
- export type PreviewContentKind = "html" | "pdf" | "markdown" | "image" | "json" | "csv" | "text" | "download";
10
+ export type PreviewContentKind = "html" | "pdf" | "markdown" | "image" | "json" | "csv" | "sql" | "text" | "download";
13
11
  export declare const previewContentKind: (mimeType: string) => PreviewContentKind;
14
12
  /** Whether the panel can show an inline preview (vs. download-only). Pure. */
15
13
  export declare const isPreviewable: (mimeType: string) => boolean;
@@ -0,0 +1,20 @@
1
+ export type InlinePreviewTarget = {
2
+ readonly kind: "artifact";
3
+ readonly artifactId: string;
4
+ } | {
5
+ readonly kind: "file";
6
+ readonly fileId: string;
7
+ } | {
8
+ readonly kind: "workspace";
9
+ readonly path: string;
10
+ readonly workspaceExternalId: string | null;
11
+ };
12
+ export type InlinePreviewUrl = {
13
+ readonly status: "loading";
14
+ } | {
15
+ readonly status: "error";
16
+ } | {
17
+ readonly status: "ready";
18
+ readonly url: string;
19
+ };
20
+ export declare const useInlinePreviewUrl: (target: InlinePreviewTarget | null) => InlinePreviewUrl;
@@ -0,0 +1,7 @@
1
+ /** Shared delete confirmation for a schedule (list card menu + detail menu). */
2
+ export declare const ConfirmDeleteScheduleDialog: (props: {
3
+ readonly open: boolean;
4
+ readonly onOpenChange: (open: boolean) => void;
5
+ readonly busy: boolean;
6
+ readonly onConfirm: () => void;
7
+ }) => import("react").JSX.Element;
@@ -0,0 +1,13 @@
1
+ import { TaskScheduleDetail } from '../../api/task-schedules.ts';
2
+ export type ScheduleDialogMode = {
3
+ readonly kind: "create";
4
+ } | {
5
+ readonly kind: "edit";
6
+ readonly schedule: TaskScheduleDetail;
7
+ };
8
+ export declare const ScheduleDialog: (props: {
9
+ readonly open: boolean;
10
+ readonly onOpenChange: (open: boolean) => void;
11
+ readonly mode: ScheduleDialogMode;
12
+ readonly onSaved?: (taskScheduleId: string) => void;
13
+ }) => import("react").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { TaskScheduleRun } from '../../api/task-schedules.ts';
2
+ export declare const RunCard: (props: {
3
+ readonly run: TaskScheduleRun;
4
+ readonly scheduleTitle: string;
5
+ }) => import("react").JSX.Element;
6
+ export declare const ScheduledDetailSurface: (props: {
7
+ readonly taskScheduleId: string;
8
+ }) => import("react").JSX.Element;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Scheduled list: searchable, filterable (All / Upcoming / Completed) cards of
3
+ * the user's schedule definitions. A card navigates to the detail view; its
4
+ * overflow menu offers Run now / Delete in place. Internal UUIDs never appear
5
+ * in copy (they live only in the memory-router path).
6
+ */
7
+ export declare const ScheduledListSurface: () => import("react").JSX.Element;
@@ -0,0 +1,7 @@
1
+ /** Searchable IANA timezone picker (shadcn Command-in-Popover composition). */
2
+ export declare const TimezoneCombobox: (props: {
3
+ readonly value: string;
4
+ readonly onChange: (timezone: string) => void;
5
+ readonly disabled?: boolean;
6
+ readonly className?: string;
7
+ }) => import("react").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { RecurrenceKind, TaskScheduleDetail } from '../../api/task-schedules.ts';
2
+ export type ScheduleDialogInputs = {
3
+ readonly title: string;
4
+ readonly message: string;
5
+ readonly date: string;
6
+ readonly time: string;
7
+ readonly timezone: string;
8
+ readonly recurrence: RecurrenceKind;
9
+ };
10
+ export declare const scheduleDialogInputs: (schedule: TaskScheduleDetail) => ScheduleDialogInputs;
11
+ export declare const scheduleTimeShapeChanged: (schedule: TaskScheduleDetail, input: Pick<ScheduleDialogInputs, "date" | "time" | "timezone" | "recurrence">) => boolean;
@@ -0,0 +1,38 @@
1
+ import { Locale } from '../../embed/locale.ts';
2
+ import { RecurrenceKind } from '../../api/task-schedules.ts';
3
+ /** The cadence wall-clock time-of-day, rendered in the SCHEDULE's zone. */
4
+ export declare const timeOfDayIn: (timezone: string, iso: string, locale: Locale) => string;
5
+ /** The cadence weekday name, rendered in the SCHEDULE's zone. */
6
+ export declare const weekdayIn: (timezone: string, iso: string, locale: Locale) => string;
7
+ /** An absolute instant in the VIEWER's zone (run rows, "Next run …"). */
8
+ export declare const dateTimeLocal: (iso: string, locale: Locale) => string;
9
+ /** Non-null when the schedule's zone differs from the viewer's (shown as a suffix). */
10
+ export declare const foreignTimezone: (timezone: string) => string | null;
11
+ /** i18n params for the recurrence summary line, keyed by kind. */
12
+ export declare const recurrenceSummaryParams: (input: {
13
+ readonly kind: RecurrenceKind;
14
+ /** Any instant on the cadence (nextRunAt, else anchorAt). */
15
+ readonly referenceIso: string;
16
+ readonly timezone: string;
17
+ readonly locale: Locale;
18
+ }) => {
19
+ readonly key: `scheduled.summary${"Once" | "Daily" | "Weekdays" | "Weekly"}`;
20
+ readonly time: string;
21
+ readonly day: string;
22
+ };
23
+ /** Viewer-relative phrasing for an instant ("in 3 days", "tomorrow"). */
24
+ export declare const relativeToNow: (iso: string, locale: Locale, nowMs?: number) => string;
25
+ /**
26
+ * {day, time} pair the `scheduled.dayAtTime` message composes into
27
+ * "Tomorrow at 9:00 AM" / "Jul 11 at 4:00 PM". Viewer's zone; days within
28
+ * one of now become Today/Tomorrow/Yesterday words.
29
+ */
30
+ export declare const dayTimeParts: (iso: string, locale: Locale, nowMs?: number, timeZone?: string) => {
31
+ readonly day: string;
32
+ readonly time: string;
33
+ };
34
+ /** Local <input type="date|time"> values for a stored instant, in the schedule's zone. */
35
+ export declare const inputValuesIn: (timezone: string, iso: string) => {
36
+ readonly date: string;
37
+ readonly time: string;
38
+ };
@@ -1,5 +1,4 @@
1
1
  import { AgentGrantStatusView } from '../api/agent-grants.ts';
2
- import { ChatMode } from './chat-mode.ts';
3
2
  /**
4
3
  * Re-grant once an active grant has this long or less until expiry.
5
4
  * Deliberately larger than the status poll cadence (`grantStatusPollMs`,
@@ -18,18 +17,19 @@ export declare const grantRefreshWindowMs: () => number;
18
17
  * supplies `nowMs`, the last-attempted id, and the (possibly overridden)
19
18
  * `windowMs`.
20
19
  *
21
- * Only Auto ("bypass") mode auto-refreshes it is the unattended mode where a
22
- * silent re-grant matches the existing auto-consent (BEL-75); the other modes
23
- * have a human present who reconnects via the card. `none`/`expired` belong to
24
- * the consent effect (and a re-grant there would be a connect, not a refresh);
25
- * `revoked` is the explicit kill switch and must never auto-reconnect.
20
+ * Mode-agnostic: refreshes in EVERY execution mode. The banner that used to let
21
+ * a human reconnect in non-bypass modes is gone (removed with the consent
22
+ * card), so a silent re-grant is now the only way an active session survives
23
+ * expiry mid-run in any mode matching the mode-agnostic auto-consent
24
+ * (BEL-75). `none`/`expired` belong to the consent effect (and a re-grant there
25
+ * would be a connect, not a refresh); `revoked` is the kill switch and must
26
+ * never auto-reconnect.
26
27
  *
27
28
  * Returns the `grantId` so the caller can fire at most once per active grant:
28
29
  * a successful refresh yields a new grant id, which naturally re-arms the next
29
30
  * cycle (~once per grant lifetime — low churn).
30
31
  */
31
32
  export declare const grantIdToRefresh: (input: {
32
- readonly mode: ChatMode;
33
33
  readonly view: AgentGrantStatusView;
34
34
  readonly nowMs: number;
35
35
  readonly lastAttemptedGrantId: string | null;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * A turn is sendable when it carries caption text OR at least one attachment —
3
+ * an image pasted with no caption is a valid turn (the backend's
4
+ * postMessageSchema accepts text-or-files). Shared by the composer's
5
+ * send-button gate and ChatRoute's submit guard so the two can't drift.
6
+ */
7
+ export declare const hasSubmittableContent: (text: string, fileCount: number) => boolean;