@belonguniverseai/react-sdk 0.6.23 → 0.6.25

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 (108) hide show
  1. package/dist/api/client.d.ts +363 -29
  2. package/dist/api/mutations.d.ts +9 -1
  3. package/dist/api/query-keys.d.ts +19 -0
  4. package/dist/api/skill-library.d.ts +81 -0
  5. package/dist/component/{abnfDiagram-N423BO3Z-bM1BoI0O.js → abnfDiagram-N423BO3Z-D7OrqwMe.js} +4 -4
  6. package/dist/component/{arc-DaSgre52.js → arc-CZN7i2F-.js} +2 -2
  7. package/dist/component/{architectureDiagram-T3A2C74G-avMCXzQw.js → architectureDiagram-T3A2C74G-CVX4aJSk.js} +3 -3
  8. package/dist/component/{blockDiagram-VBNYF7ZC-Cg6EDrdt.js → blockDiagram-VBNYF7ZC-DrT23ReK.js} +4 -4
  9. package/dist/component/{c4Diagram-5PPSVZJV-DhUs6wdK.js → c4Diagram-5PPSVZJV-yA6JuHOr.js} +3 -3
  10. package/dist/component/{channel-DlmuDpcv.js → channel-vZcyyovp.js} +2 -2
  11. package/dist/component/{chunk-2GRJ4B5K-Drdf-9Az.js → chunk-2GRJ4B5K-C5DL0bNM.js} +2 -2
  12. package/dist/component/{chunk-2Q5K7J3B-CG6mCJjr.js → chunk-2Q5K7J3B-B5BiYW__.js} +2 -2
  13. package/dist/component/{chunk-5RXB4S5H-DYJwqjr4.js → chunk-5RXB4S5H-wnHQNeJ5.js} +5 -5
  14. package/dist/component/{chunk-5VM5RSS4-B21XfkBj.js → chunk-5VM5RSS4-CdjvYb3M.js} +2 -2
  15. package/dist/component/{chunk-6Q2QTUOP-DZkWqf90.js → chunk-6Q2QTUOP-CNSvyjis.js} +2 -2
  16. package/dist/component/{chunk-GF5L2VYU-5hBEo1f5.js → chunk-GF5L2VYU-D7BI1tvK.js} +6 -6
  17. package/dist/component/{chunk-JWPE2WC7-DAn-TcDC.js → chunk-JWPE2WC7-CeLQPuLU.js} +2 -2
  18. package/dist/component/{chunk-KBJHAD2P-CEMDhN2A.js → chunk-KBJHAD2P-DgAf9tRz.js} +2 -2
  19. package/dist/component/{chunk-RYQCIY6F-BWL1otLK.js → chunk-RYQCIY6F-DjFej6-h.js} +2 -2
  20. package/dist/component/{chunk-XXDRQBXY-D0TWnqlD.js → chunk-XXDRQBXY-CkNxuLox.js} +2 -2
  21. package/dist/component/{classDiagram-JCYQIIEL-CjU-7xK0.js → classDiagram-JCYQIIEL-TyORp-Xl.js} +3 -3
  22. package/dist/component/{classDiagram-v2-OCEON4UE-CjU-7xK0.js → classDiagram-v2-OCEON4UE-TyORp-Xl.js} +3 -3
  23. package/dist/component/{cose-bilkent-JH36ORCC-MkPQhZKJ.js → cose-bilkent-JH36ORCC-C_lOBXUY.js} +2 -2
  24. package/dist/component/{cynefinDiagram-MW4NZA55-Wf-Eh_MR.js → cynefinDiagram-MW4NZA55-DqMIe0ZV.js} +3 -3
  25. package/dist/component/{dagre-VZM6K2ZE-D1ND11ws.js → dagre-VZM6K2ZE-B3HtBfbf.js} +3 -3
  26. package/dist/component/{diagram-7IWD3JNH-ChO63Ikp.js → diagram-7IWD3JNH-1uYIe-Fx.js} +4 -4
  27. package/dist/component/{diagram-B4RE2ZJO-CFVIZBxd.js → diagram-B4RE2ZJO-DLvDbgTV.js} +3 -3
  28. package/dist/component/{diagram-LBJQPF4R-BFErKt-H.js → diagram-LBJQPF4R-CdaGcjGt.js} +3 -3
  29. package/dist/component/{diagram-Q27KOJAE-3EA2fDKz.js → diagram-Q27KOJAE-u24QPtAZ.js} +4 -4
  30. package/dist/component/{diagram-UB23O5K3-D914yr1r.js → diagram-UB23O5K3-D0YnNMp3.js} +3 -3
  31. package/dist/component/{ebnfDiagram-BXEA7PRR-BlRDglJm.js → ebnfDiagram-BXEA7PRR-DdL9-qpf.js} +4 -4
  32. package/dist/component/{erDiagram-JOGREHBK-BgHUzm41.js → erDiagram-JOGREHBK-1mtJehIC.js} +5 -5
  33. package/dist/component/{flowDiagram-UKHOOZJN-Cf42sXVK.js → flowDiagram-UKHOOZJN-BPwuBLmT.js} +7 -7
  34. package/dist/component/{ganttDiagram-PKOTCBZU-Bqai8Nqw.js → ganttDiagram-PKOTCBZU-C0dhxKZn.js} +3 -3
  35. package/dist/component/{gitGraphDiagram-DS77QQ5N-M6yX_E4b.js → gitGraphDiagram-DS77QQ5N-9pn8I5Ww.js} +4 -4
  36. package/dist/component/{highlighted-body-OFNGDK62-C2rmuXAs.js → highlighted-body-OFNGDK62-BtE2oU8T.js} +2 -2
  37. package/dist/component/index.js +2 -2
  38. package/dist/component/{infoDiagram-6WML65LV-Bk4qDfY4.js → infoDiagram-6WML65LV-Un5rOho6.js} +2 -2
  39. package/dist/component/{ishikawaDiagram-WSZJBQD7-CQ0-i0XP.js → ishikawaDiagram-WSZJBQD7-B_Q76Ncg.js} +2 -2
  40. package/dist/component/{journeyDiagram-NVQOT4AX-CK9lX22d.js → journeyDiagram-NVQOT4AX-CvjCKkXJ.js} +5 -5
  41. package/dist/component/{kanban-definition-27J2QSJJ-CrIKfzfe.js → kanban-definition-27J2QSJJ-DTk-MzTa.js} +3 -3
  42. package/dist/component/{linear-CzN3Xd3g.js → linear-Bjkwtb4n.js} +2 -2
  43. package/dist/component/{mermaid-GHXKKRXX-B-ea5OKA.js → mermaid-GHXKKRXX-CUdhS07I.js} +51014 -48010
  44. package/dist/component/{mindmap-definition-FAOFIHXS-DUDsEObz.js → mindmap-definition-FAOFIHXS-NMNGkbeM.js} +4 -4
  45. package/dist/component/{pegDiagram-VL7TDLO6-DFJ-rOLH.js → pegDiagram-VL7TDLO6-DP8ndDG1.js} +4 -4
  46. package/dist/component/{pieDiagram-7S7Q4E2Y-OwliOUdN.js → pieDiagram-7S7Q4E2Y-CneShL4n.js} +4 -4
  47. package/dist/component/{quadrantDiagram-CIZ2JOQS-CLKxzqPi.js → quadrantDiagram-CIZ2JOQS-DwKlYHP_.js} +3 -3
  48. package/dist/component/{railroadDiagram-AXF67PYL-_jBOX7-D.js → railroadDiagram-AXF67PYL-D7hQRdO5.js} +4 -4
  49. package/dist/component/{requirementDiagram-LRYGKXZP-CxfMaDPH.js → requirementDiagram-LRYGKXZP-BLxtMc17.js} +4 -4
  50. package/dist/component/{sankeyDiagram-W5VNT64P-D-qOUzh7.js → sankeyDiagram-W5VNT64P-CXp6dM_4.js} +2 -2
  51. package/dist/component/{sequenceDiagram-SI44F4Z6-B57h29Ae.js → sequenceDiagram-SI44F4Z6-Ce7VH5G7.js} +4 -4
  52. package/dist/component/{sizeCapture-X5ZJPWSS-DlIoKfk1.js → sizeCapture-X5ZJPWSS-CUTOnfZv.js} +2 -2
  53. package/dist/component/{stateDiagram-OKZ733FA-CNNoDNwB.js → stateDiagram-OKZ733FA-Bu73CVSq.js} +3 -3
  54. package/dist/component/{stateDiagram-v2-UEYNNEHI-xYjW9R-s.js → stateDiagram-v2-UEYNNEHI-ktw3g3Qt.js} +3 -3
  55. package/dist/component/{swimlanes-SLNWSIFB-Chjr6NCU.js → swimlanes-SLNWSIFB-DBKvCdnJ.js} +4 -4
  56. package/dist/component/{swimlanesDiagram-ULZ7WXOC-A9mWwnCX.js → swimlanesDiagram-ULZ7WXOC-CEWTxRuN.js} +3 -3
  57. package/dist/component/{timeline-definition-Z64GVDOM-DldyCd1l.js → timeline-definition-Z64GVDOM-C3MMj2z6.js} +3 -3
  58. package/dist/component/{vennDiagram-T6HMQDX7-BGfiPWG2.js → vennDiagram-T6HMQDX7-BRuneBor.js} +2 -2
  59. package/dist/component/{wardleyDiagram-T6FBY63Y-Bzn9DJ27.js → wardleyDiagram-T6FBY63Y-Dyd4EEZv.js} +3 -3
  60. package/dist/component/{xychartDiagram-ELKLHX3M-nMaNgT12.js → xychartDiagram-ELKLHX3M-BDUULgvJ.js} +3 -3
  61. package/dist/components/ai-elements/markdown-repair-samples.d.ts +27 -0
  62. package/dist/components/ai-elements/terminal-task.d.ts +3 -1
  63. package/dist/components/embed/ChatTitleEditor.d.ts +17 -0
  64. package/dist/components/embed/ComposerContext.d.ts +7 -7
  65. package/dist/components/embed/EarlierMessages.d.ts +17 -0
  66. package/dist/components/embed/EmbedAvatar.d.ts +1 -3
  67. package/dist/components/embed/EmbedConversation.d.ts +6 -1
  68. package/dist/components/embed/EmbedHeader.d.ts +14 -2
  69. package/dist/components/embed/VirtualTranscript.d.ts +12 -0
  70. package/dist/components/embed/context-occupancy.d.ts +15 -0
  71. package/dist/components/embed/session-intent.d.ts +3 -0
  72. package/dist/components/embed/use-agent-identity.d.ts +1 -0
  73. package/dist/components/embed/virtual-transcript-settings.d.ts +15 -0
  74. package/dist/components/feedback/feedback-votes.d.ts +3 -0
  75. package/dist/components/feedback/message-feedback.d.ts +2 -2
  76. package/dist/components/skills/EditSkillDialog.d.ts +8 -0
  77. package/dist/components/skills/SkillsListSurface.d.ts +3 -2
  78. package/dist/components/skills/skill-refusal-copy.d.ts +8 -0
  79. package/dist/embed/conversation-scroll.d.ts +18 -0
  80. package/dist/embed/copy.d.ts +0 -1
  81. package/dist/embed/voice-call-lines.d.ts +14 -5
  82. package/dist/i18n/messages/en.d.ts +21 -12
  83. package/dist/i18n/messages/surfaces/skills.d.ts +71 -3
  84. package/dist/i18n/messages/surfaces/usage.d.ts +12 -44
  85. package/dist/i18n/messages/surfaces/workspace.d.ts +7 -5
  86. package/dist/lib/remembered-state.d.ts +9 -0
  87. package/dist/lib/use-remembered-disclosure.d.ts +2 -0
  88. package/dist/routes/chat/draft-updaters.d.ts +16 -0
  89. package/dist/routes/chat/history-cache.d.ts +47 -0
  90. package/dist/routes/chat/history-paging.d.ts +61 -0
  91. package/dist/routes/chat/kept-chats.d.ts +39 -0
  92. package/dist/routes/chat/live-chats.d.ts +14 -0
  93. package/dist/routes/chat/transcript-pins.d.ts +4 -0
  94. package/dist/routes/chat/transcript-row.d.ts +49 -0
  95. package/dist/routes/chat/use-session-goal.d.ts +6 -1
  96. package/dist/routes/chat.d.ts +8 -21
  97. package/dist/stream/activity-items.d.ts +2 -0
  98. package/dist/stream/agent-deliverable-path.d.ts +1 -0
  99. package/dist/stream/ai-sdk-part-renderers.d.ts +14 -1
  100. package/dist/stream/belong-chat-transport.d.ts +23 -1
  101. package/dist/stream/belong-data-parts.d.ts +13 -0
  102. package/dist/stream/dispatch-once.d.ts +12 -0
  103. package/dist/stream/sandbox-output-store.d.ts +14 -0
  104. package/dist/stream/sandbox-output.d.ts +8 -3
  105. package/dist/stream/select-session-usage.d.ts +15 -1
  106. package/dist/stream/tool-call-detail.d.ts +16 -0
  107. package/dist/types/public.d.ts +11 -0
  108. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
- import { g as oe } from "./chunk-XXDRQBXY-D0TWnqlD.js";
2
- import { s as ae } from "./chunk-KBJHAD2P-CEMDhN2A.js";
3
- import { _ as l, l as C, v as ce, x as le, z as he, E as G, c as B, i as F, b9 as de, ad as ge, ae as ue, af as pe } from "./mermaid-GHXKKRXX-B-ea5OKA.js";
1
+ import { g as oe } from "./chunk-XXDRQBXY-CkNxuLox.js";
2
+ import { s as ae } from "./chunk-KBJHAD2P-DgAf9tRz.js";
3
+ import { _ as l, l as C, v as ce, x as le, z as he, E as G, c as B, i as F, b9 as de, ad as ge, ae as ue, af as pe } from "./mermaid-GHXKKRXX-CUdhS07I.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-FAOFIHXS-DUDsEObz.js.map
833
+ //# sourceMappingURL=mindmap-definition-FAOFIHXS-NMNGkbeM.js.map
@@ -1,6 +1,6 @@
1
- import { g as i, r as m, d as a } from "./chunk-6Q2QTUOP-DZkWqf90.js";
2
- import { p } from "./chunk-JWPE2WC7-DAn-TcDC.js";
3
- import { _ as t, l as o } from "./mermaid-GHXKKRXX-B-ea5OKA.js";
1
+ import { g as i, r as m, d as a } from "./chunk-6Q2QTUOP-CNSvyjis.js";
2
+ import { p } from "./chunk-JWPE2WC7-CeLQPuLU.js";
3
+ import { _ as t, l as o } from "./mermaid-GHXKKRXX-CUdhS07I.js";
4
4
  import { M as u, d as c } from "./cynefin-VYW2F7L2-DAyxamLw.js";
5
5
  globalThis.process = globalThis.process || { env: {} };
6
6
  globalThis.global = globalThis.global || globalThis;
@@ -95,4 +95,4 @@ var f = c().RailroadPeg.parser.LangiumParser, l = /* @__PURE__ */ t((e) => {
95
95
  export {
96
96
  S as diagram
97
97
  };
98
- //# sourceMappingURL=pegDiagram-VL7TDLO6-DFJ-rOLH.js.map
98
+ //# sourceMappingURL=pegDiagram-VL7TDLO6-DP8ndDG1.js.map
@@ -1,7 +1,7 @@
1
- import { p as at } from "./chunk-JWPE2WC7-DAn-TcDC.js";
2
- import { V as D, K as P, b8 as rt, g as nt, s as it, a as ot, b as st, p as lt, o as ct, _ as d, l as B, c as gt, D as ut, G as dt, a4 as ht, e as pt, q as ft, E as mt } from "./mermaid-GHXKKRXX-B-ea5OKA.js";
1
+ import { p as at } from "./chunk-JWPE2WC7-CeLQPuLU.js";
2
+ import { V as D, K as P, b8 as rt, g as nt, s as it, a as ot, b as st, p as lt, o as ct, _ as d, l as B, c as gt, D as ut, G as dt, a4 as ht, e as pt, q as ft, E as mt } from "./mermaid-GHXKKRXX-CUdhS07I.js";
3
3
  import { p as vt } from "./cynefin-VYW2F7L2-DAyxamLw.js";
4
- import { d as X } from "./arc-DaSgre52.js";
4
+ import { d as X } from "./arc-CZN7i2F-.js";
5
5
  import { o as xt } from "./ordinal-D0x7izaa.js";
6
6
  globalThis.process = globalThis.process || { env: {} };
7
7
  globalThis.global = globalThis.global || globalThis;
@@ -207,4 +207,4 @@ var At = mt.pie, I = {
207
207
  export {
208
208
  It as diagram
209
209
  };
210
- //# sourceMappingURL=pieDiagram-7S7Q4E2Y-OwliOUdN.js.map
210
+ //# sourceMappingURL=pieDiagram-7S7Q4E2Y-CneShL4n.js.map
@@ -1,5 +1,5 @@
1
- import { s as Se, g as _e, p as ee, o as Ae, a as ke, b as Fe, _ as r, c as Et, l as qt, d as vt, e as Pe, q as ve, E as z, i as Ce, Z as Le } from "./mermaid-GHXKKRXX-B-ea5OKA.js";
2
- import { l as te } from "./linear-CzN3Xd3g.js";
1
+ import { s as Se, g as _e, p as ee, o as Ae, a as ke, b as Fe, _ as r, c as Et, l as qt, d as vt, e as Pe, q as ve, E as z, i as Ce, Z as Le } from "./mermaid-GHXKKRXX-CUdhS07I.js";
2
+ import { l as te } from "./linear-Bjkwtb4n.js";
3
3
  globalThis.process = globalThis.process || { env: {} };
4
4
  globalThis.global = globalThis.global || globalThis;
5
5
  var Ct = (function() {
@@ -1029,4 +1029,4 @@ var ze = /* @__PURE__ */ r(function() {
1029
1029
  export {
1030
1030
  Ne as diagram
1031
1031
  };
1032
- //# sourceMappingURL=quadrantDiagram-CIZ2JOQS-CLKxzqPi.js.map
1032
+ //# sourceMappingURL=quadrantDiagram-CIZ2JOQS-DwKlYHP_.js.map
@@ -1,6 +1,6 @@
1
- import { g as o, r as i, d as t } from "./chunk-6Q2QTUOP-DZkWqf90.js";
2
- import { p } from "./chunk-JWPE2WC7-DAn-TcDC.js";
3
- import { _ as l, l as n } from "./mermaid-GHXKKRXX-B-ea5OKA.js";
1
+ import { g as o, r as i, d as t } from "./chunk-6Q2QTUOP-CNSvyjis.js";
2
+ import { p } from "./chunk-JWPE2WC7-CeLQPuLU.js";
3
+ import { _ as l, l as n } from "./mermaid-GHXKKRXX-CUdhS07I.js";
4
4
  import { M as m, c as u } from "./cynefin-VYW2F7L2-DAyxamLw.js";
5
5
  globalThis.process = globalThis.process || { env: {} };
6
6
  globalThis.global = globalThis.global || globalThis;
@@ -77,4 +77,4 @@ var d = u().Railroad.parser.LangiumParser, a = /* @__PURE__ */ l((e) => {
77
77
  export {
78
78
  E as diagram
79
79
  };
80
- //# sourceMappingURL=railroadDiagram-AXF67PYL-_jBOX7-D.js.map
80
+ //# sourceMappingURL=railroadDiagram-AXF67PYL-D7hQRdO5.js.map
@@ -1,6 +1,6 @@
1
- import { g as ze } from "./chunk-XXDRQBXY-D0TWnqlD.js";
2
- import { s as Ge } from "./chunk-KBJHAD2P-CEMDhN2A.js";
3
- import { _ as h, z as Ye, b as Xe, a as Je, s as Ze, g as et, o as tt, p as st, c as ke, l as Ne, q as it, u as rt, v as nt, x as at, y as lt } from "./mermaid-GHXKKRXX-B-ea5OKA.js";
1
+ import { g as ze } from "./chunk-XXDRQBXY-CkNxuLox.js";
2
+ import { s as Ge } from "./chunk-KBJHAD2P-DgAf9tRz.js";
3
+ import { _ as h, z as Ye, b as Xe, a as Je, s as Ze, g as et, o as tt, p as st, c as ke, l as Ne, q as it, u as rt, v as nt, x as at, y as lt } from "./mermaid-GHXKKRXX-CUdhS07I.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-LRYGKXZP-CxfMaDPH.js.map
888
+ //# sourceMappingURL=requirementDiagram-LRYGKXZP-BLxtMc17.js.map
@@ -1,4 +1,4 @@
1
- import { o as kt, p as mt, s as xt, g as _t, b as vt, a as bt, _ as y, c as ot, bc as St, d as G, ag as wt, q as Lt, k as Et } from "./mermaid-GHXKKRXX-B-ea5OKA.js";
1
+ import { o as kt, p as mt, s as xt, g as _t, b as vt, a as bt, _ as y, c as ot, bc as St, d as G, ag as wt, q as Lt, k as Et } from "./mermaid-GHXKKRXX-CUdhS07I.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-W5VNT64P-D-qOUzh7.js.map
862
+ //# sourceMappingURL=sankeyDiagram-W5VNT64P-CXp6dM_4.js.map
@@ -1,6 +1,6 @@
1
- import { I as tr } from "./chunk-2Q5K7J3B-CG6mCJjr.js";
2
- import { _ as x, $ as er, c as $, d as Vt, l as at, j as Ce, e as rr, f as ar, k as N, b as ke, s as sr, o as ir, a as nr, g as or, p as cr, a0 as lr, a1 as hr, q as dr, i as Yt, y as Z, a2 as Q, a3 as Pt, a4 as Me, a5 as Tr, z as Kt, a6 as pr, a7 as Be } from "./mermaid-GHXKKRXX-B-ea5OKA.js";
3
- import { a as Er, b as ae, g as dt, d as ur, c as se, e as ie } from "./chunk-2GRJ4B5K-Drdf-9Az.js";
1
+ import { I as tr } from "./chunk-2Q5K7J3B-B5BiYW__.js";
2
+ import { _ as x, $ as er, c as $, d as Vt, l as at, j as Ce, e as rr, f as ar, k as N, b as ke, s as sr, o as ir, a as nr, g as or, p as cr, a0 as lr, a1 as hr, q as dr, i as Yt, y as Z, a2 as Q, a3 as Pt, a4 as Me, a5 as Tr, z as Kt, a6 as pr, a7 as Be } from "./mermaid-GHXKKRXX-CUdhS07I.js";
3
+ import { a as Er, b as ae, g as dt, d as ur, c as se, e as ie } from "./chunk-2GRJ4B5K-C5DL0bNM.js";
4
4
  globalThis.process = globalThis.process || { env: {} };
5
5
  globalThis.global = globalThis.global || globalThis;
6
6
  var te = (function() {
@@ -2891,4 +2891,4 @@ var ra = /* @__PURE__ */ x(async function(e, t, a) {
2891
2891
  export {
2892
2892
  Ta as diagram
2893
2893
  };
2894
- //# sourceMappingURL=sequenceDiagram-SI44F4Z6-B57h29Ae.js.map
2894
+ //# sourceMappingURL=sequenceDiagram-SI44F4Z6-Ce7VH5G7.js.map
@@ -1,4 +1,4 @@
1
- import { _ as t } from "./mermaid-GHXKKRXX-B-ea5OKA.js";
1
+ import { _ as t } from "./mermaid-GHXKKRXX-CUdhS07I.js";
2
2
  globalThis.process = globalThis.process || { env: {} };
3
3
  globalThis.global = globalThis.global || globalThis;
4
4
  var l = 1;
@@ -46,4 +46,4 @@ export {
46
46
  p as captureNodeSizes,
47
47
  c as shouldCaptureSizes
48
48
  };
49
- //# sourceMappingURL=sizeCapture-X5ZJPWSS-DlIoKfk1.js.map
49
+ //# sourceMappingURL=sizeCapture-X5ZJPWSS-CUTOnfZv.js.map
@@ -1,5 +1,5 @@
1
- import { s as R, a as W, S as N } from "./chunk-5RXB4S5H-DYJwqjr4.js";
2
- import { _ as f, c as t, d as M, l as S, e as P, k as z, aa as _, ab as U, a6 as C, y as F } from "./mermaid-GHXKKRXX-B-ea5OKA.js";
1
+ import { s as R, a as W, S as N } from "./chunk-5RXB4S5H-wnHQNeJ5.js";
2
+ import { _ as f, c as t, d as M, l as S, e as P, k as z, aa as _, ab as U, a6 as C, y as F } from "./mermaid-GHXKKRXX-CUdhS07I.js";
3
3
  import { G as O } from "./graph-CWpEkm4G.js";
4
4
  import { l as J } from "./layout-Br2UjHRU.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-OKZ733FA-CNNoDNwB.js.map
266
+ //# sourceMappingURL=stateDiagram-OKZ733FA-Bu73CVSq.js.map
@@ -1,5 +1,5 @@
1
- import { s as e, b as r, a as s, S as t } from "./chunk-5RXB4S5H-DYJwqjr4.js";
2
- import { _ as l } from "./mermaid-GHXKKRXX-B-ea5OKA.js";
1
+ import { s as e, b as r, a as s, S as t } from "./chunk-5RXB4S5H-wnHQNeJ5.js";
2
+ import { _ as l } from "./mermaid-GHXKKRXX-CUdhS07I.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-UEYNNEHI-xYjW9R-s.js.map
19
+ //# sourceMappingURL=stateDiagram-v2-UEYNNEHI-ktw3g3Qt.js.map
@@ -1,5 +1,5 @@
1
- import { c as Tr } from "./chunk-RYQCIY6F-BWL1otLK.js";
2
- import { ap as Er, aq as wr, ar as Ar, as as Rr, l as Ke, c as Nr, aj as Or, ai as Pr, ak as Br, aw as kr, ay as Fr, z as _r, av as Dr, az as Hr, y as Oe, aA as Ye, _ as d, aB as Ao } from "./mermaid-GHXKKRXX-B-ea5OKA.js";
1
+ import { c as Tr } from "./chunk-RYQCIY6F-DjFej6-h.js";
2
+ import { ap as Er, aq as wr, ar as Ar, as as Rr, l as Ke, c as Nr, aj as Or, ai as Pr, ak as Br, aw as kr, ay as Fr, z as _r, av as Dr, az as Hr, y as Oe, aA as Ye, _ as d, aB as Ao } from "./mermaid-GHXKKRXX-CUdhS07I.js";
3
3
  import { G as Xr } from "./graph-CWpEkm4G.js";
4
4
  globalThis.process = globalThis.process || { env: {} };
5
5
  globalThis.global = globalThis.global || globalThis;
@@ -24,7 +24,7 @@ async function Fo(t, e) {
24
24
  for (const I of o)
25
25
  n.setEdge(I.start, I.end, { ...I }, I.id), e.edges.some((p) => p.id === I.id) || e.edges.push(I);
26
26
  if (globalThis.mermaidCaptureSizes) {
27
- const { captureNodeSizes: I } = await import("./sizeCapture-X5ZJPWSS-DlIoKfk1.js");
27
+ const { captureNodeSizes: I } = await import("./sizeCapture-X5ZJPWSS-CUTOnfZv.js");
28
28
  I(t, e);
29
29
  }
30
30
  return {
@@ -5332,4 +5332,4 @@ d(Zr, "render");
5332
5332
  export {
5333
5333
  Zr as render
5334
5334
  };
5335
- //# sourceMappingURL=swimlanes-SLNWSIFB-Chjr6NCU.js.map
5335
+ //# sourceMappingURL=swimlanes-SLNWSIFB-DBKvCdnJ.js.map
@@ -1,5 +1,5 @@
1
- import { c as e, s as a } from "./flowDiagram-UKHOOZJN-Cf42sXVK.js";
2
- import { _ as s } from "./mermaid-GHXKKRXX-B-ea5OKA.js";
1
+ import { c as e, s as a } from "./flowDiagram-UKHOOZJN-BPwuBLmT.js";
2
+ import { _ as s } from "./mermaid-GHXKKRXX-CUdhS07I.js";
3
3
  globalThis.process = globalThis.process || { env: {} };
4
4
  globalThis.global = globalThis.global || globalThis;
5
5
  var t = /* @__PURE__ */ s((l) => `${a(l)}
@@ -13,4 +13,4 @@ var t = /* @__PURE__ */ s((l) => `${a(l)}
13
13
  export {
14
14
  g as diagram
15
15
  };
16
- //# sourceMappingURL=swimlanesDiagram-ULZ7WXOC-A9mWwnCX.js.map
16
+ //# sourceMappingURL=swimlanesDiagram-ULZ7WXOC-CEWTxRuN.js.map
@@ -1,5 +1,5 @@
1
- import { _ as o, z as gt, ad as Rt, ae as Ct, af as Wt, c as pt, l as E, G as Pt, a4 as Bt, ag as ft, d as U, u as Vt, ah as Ft, q as zt } from "./mermaid-GHXKKRXX-B-ea5OKA.js";
2
- import { d as ot } from "./arc-DaSgre52.js";
1
+ import { _ as o, z as gt, ad as Rt, ae as Ct, af as Wt, c as pt, l as E, G as Pt, a4 as Bt, ag as ft, d as U, u as Vt, ah as Ft, q as zt } from "./mermaid-GHXKKRXX-CUdhS07I.js";
2
+ import { d as ot } from "./arc-CZN7i2F-.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-Z64GVDOM-DldyCd1l.js.map
1058
+ //# sourceMappingURL=timeline-definition-Z64GVDOM-C3MMj2z6.js.map
@@ -1,4 +1,4 @@
1
- import { b7 as Wt, s as Kt, g as Ht, p as Yt, o as Xt, a as Zt, b as Jt, _ as w, z as wt, G as Qt, d as ot, ao as $t, ad as te, ae as ee, af as ne, e as se, q as ie, D as oe, E as re } from "./mermaid-GHXKKRXX-B-ea5OKA.js";
1
+ import { b7 as Wt, s as Kt, g as Ht, p as Yt, o as Xt, a as Zt, b as Jt, _ as w, z as wt, G as Qt, d as ot, ao as $t, ad as te, ae as ee, af as ne, e as se, q as ie, D as oe, E as re } from "./mermaid-GHXKKRXX-CUdhS07I.js";
2
2
  globalThis.process = globalThis.process || { env: {} };
3
3
  globalThis.global = globalThis.global || globalThis;
4
4
  const kt = (t, n) => Wt(t, "a", -n), _t = 1e-10;
@@ -1578,4 +1578,4 @@ var Ue = { draw: qe }, We = {
1578
1578
  export {
1579
1579
  We as diagram
1580
1580
  };
1581
- //# sourceMappingURL=vennDiagram-T6HMQDX7-BGfiPWG2.js.map
1581
+ //# sourceMappingURL=vennDiagram-T6HMQDX7-BRuneBor.js.map
@@ -1,5 +1,5 @@
1
- import { p as St } from "./chunk-JWPE2WC7-DAn-TcDC.js";
2
- import { s as Mt, g as Nt, p as Tt, o as zt, a as Lt, b as At, _ as u, Z as Xt, z as Et, D as U, l as K, G as Yt, e as It, q as Bt, c as j } from "./mermaid-GHXKKRXX-B-ea5OKA.js";
1
+ import { p as St } from "./chunk-JWPE2WC7-CeLQPuLU.js";
2
+ import { s as Mt, g as Nt, p as Tt, o as zt, a as Lt, b as At, _ as u, Z as Xt, z as Et, D as U, l as K, G as Yt, e as It, q as Bt, c as j } from "./mermaid-GHXKKRXX-CUdhS07I.js";
3
3
  import { p as Ft } from "./cynefin-VYW2F7L2-DAyxamLw.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-T6FBY63Y-Bzn9DJ27.js.map
681
+ //# sourceMappingURL=wardleyDiagram-T6FBY63Y-Dyd4EEZv.js.map
@@ -1,7 +1,7 @@
1
- import { s as si, g as ai, p as Et, o as ni, a as oi, b as ri, _ as n, l as It, G as hi, e as li, q as ci, z as pt, i as ui, D as Mt, E as gi, Z as xi, aC as di, aa as Dt } from "./mermaid-GHXKKRXX-B-ea5OKA.js";
1
+ import { s as si, g as ai, p as Et, o as ni, a as oi, b as ri, _ as n, l as It, G as hi, e as li, q as ci, z as pt, i as ui, D as Mt, E as gi, Z as xi, aC as di, aa as Dt } from "./mermaid-GHXKKRXX-CUdhS07I.js";
2
2
  import { i as fi } from "./init-BOu0eQYQ.js";
3
3
  import { o as pi } from "./ordinal-D0x7izaa.js";
4
- import { l as vt } from "./linear-CzN3Xd3g.js";
4
+ import { l as vt } from "./linear-Bjkwtb4n.js";
5
5
  globalThis.process = globalThis.process || { env: {} };
6
6
  globalThis.global = globalThis.global || globalThis;
7
7
  function mi(t, i, e) {
@@ -1418,4 +1418,4 @@ var Ti = /* @__PURE__ */ n(function() {
1418
1418
  export {
1419
1419
  zi as diagram
1420
1420
  };
1421
- //# sourceMappingURL=xychartDiagram-ELKLHX3M-nMaNgT12.js.map
1421
+ //# sourceMappingURL=xychartDiagram-ELKLHX3M-BDUULgvJ.js.map
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Agent-reply markdown that Streamdown's incomplete-markdown repair (remend)
3
+ * used to corrupt once the reply had FINISHED. Shared by
4
+ * `markdown-incomplete-repair.test.tsx` and `markdown-underscores.stories.tsx`
5
+ * so the canvas shows exactly what the tests pin.
6
+ *
7
+ * remend counts every `_` that is not between two word characters as an
8
+ * emphasis delimiter. An identifier with a word-boundary underscore
9
+ * (`ALEJANDRO_`) makes that count odd, so remend "closes" an italic that was
10
+ * never open. It appends a literal `_` to the end of the reply, or, when the
11
+ * reply ends in `**bold**`, inserts it inside the bold.
12
+ */
13
+ /** The five shapes from the stage report, each on its own. */
14
+ export declare const SNAKE_CASE_QUESTION = "Want me to check prueba_190626_recon_psp?";
15
+ export declare const SNAKE_CASE_TABLE: string;
16
+ export declare const ITALIC_QUESTION = "_Want me to drill into the matching rules, or check the match rates on the ones that have run?_";
17
+ export declare const BOLD_TRAILING_UNDERSCORE = "**ALEJANDRO_** has no matching rules";
18
+ export declare const INLINE_CODE_IDENTIFIER = "Use `task_brazilian_search_base_mock` next";
19
+ /**
20
+ * The same shapes the way stage produced them: an odd word-boundary underscore
21
+ * EARLIER in the reply, and the damaged markdown at its end.
22
+ */
23
+ export declare const STAGE_CLOSING_QUESTION = "**ALEJANDRO_** has no matching rules.\n\n_Want me to drill into the matching rules, or check the match rates on the ones that have run?_";
24
+ /** A table that ends the reply, its last row written without a closing pipe. */
25
+ export declare const STAGE_TABLE_LAST: string;
26
+ /** A reply that ends in bold: remend inserted the `_` INSIDE it (`**ALEJANDRO_**`). */
27
+ export declare const STAGE_BOLD_LAST = "**Owner** of the MATCH_ rows: **ALEJANDRO**";
@@ -1,6 +1,8 @@
1
1
  import { SandboxCommandData, ToolCallData } from '../../stream/belong-data-parts.ts';
2
- export declare const TerminalTask: ({ command, output, live, }: {
2
+ export declare const TerminalTask: ({ command, output, live, toolCallId, }: {
3
3
  readonly command: ToolCallData;
4
4
  readonly output: SandboxCommandData | null;
5
5
  readonly live?: boolean;
6
+ /** The call's part id: a summarized history card fetches its full output by it. */
7
+ readonly toolCallId?: string | undefined;
6
8
  }) => import("react").JSX.Element;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Inline edit of the on-screen chat's name, in the place the name is shown.
3
+ * Enter or leaving the field saves; Escape cancels. A blank or unchanged name
4
+ * saves nothing — the same rule as History's rename.
5
+ *
6
+ * `onClose` says HOW the edit ended, because that decides where focus goes:
7
+ * after Enter or Escape focus is still in the field and belongs back on the
8
+ * control that opened it; after a blur the user has already put it elsewhere.
9
+ */
10
+ export declare function ChatTitleEditor({ initialTitle, onSave, onClose, className, }: {
11
+ readonly initialTitle: string;
12
+ /** A trimmed, non-blank name that differs from `initialTitle`. */
13
+ readonly onSave: (title: string) => void;
14
+ /** Called exactly once per edit, after `onSave` when there was a save. */
15
+ readonly onClose: (endedBy: "keyboard" | "blur") => void;
16
+ readonly className?: string;
17
+ }): import("react").JSX.Element;
@@ -1,9 +1,9 @@
1
- import { FileUIPart } from 'ai';
2
- /** Current host page and real pending files, separate from past token telemetry. */
3
- export declare function ComposerContext({ files, onAttach, onRemove, }: {
4
- readonly files: readonly (FileUIPart & {
5
- readonly id: string;
6
- })[];
1
+ /**
2
+ * The host page this message is written against, plus a second route to
3
+ * "Attach files". Pending files are NOT listed here: the removable chips
4
+ * above the input are their one home (listing them in both places read as
5
+ * redundant), so with no page label there is nothing for this control to say.
6
+ */
7
+ export declare function ComposerContext({ onAttach }: {
7
8
  readonly onAttach: () => void;
8
- readonly onRemove: (id: string) => void;
9
9
  }): import("react").JSX.Element | null;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * The top edge of the transcript while older history is still on the server
3
+ * (`more`: the paged history has a page before the first loaded message).
4
+ * Nearing the top fetches it by itself; the button is the keyboard and
5
+ * screen-reader path. Renders INSIDE `<Conversation>` — it needs the
6
+ * stick-to-bottom scroller.
7
+ *
8
+ * Keeping the reader in place as the page lands is the virtualized list's job
9
+ * (`VirtualTranscript`, `anchorTo: "end"`), not this control's.
10
+ */
11
+ export declare function EarlierMessages({ more, loading, onShow, }: Readonly<{
12
+ /** Older messages exist on the server. */
13
+ more: boolean;
14
+ /** An older page is being fetched. */
15
+ loading?: boolean;
16
+ onShow: () => void;
17
+ }>): import("react").JSX.Element | null;
@@ -1,11 +1,9 @@
1
1
  import { SessionSummary } from './EmbedSessions.tsx';
2
2
  import { BelongTheme, BelongThemePalette, PresetName } from '../../types/public.ts';
3
3
  /** Profile access opens one settings surface; preferences never change the active conversation. */
4
- export declare function EmbedAvatar({ user, size, showBrandMark, presentation, readReplies, theme, palette, side, sessionId, voiceSupported, sessions, accent, cssVars, presets, activePreset, onToggleMode, onToggleSide, onAccentChange, onAccentReset, onCssVarsChange, onApplyPreset, onLogout, onNewSession, onSelectSession, onDeleteSession, onRenameSession, onSessionsOpen, onViewStats, sessionAgentLine, }: {
4
+ export declare function EmbedAvatar({ user, size, presentation, readReplies, theme, palette, side, sessionId, voiceSupported, sessions, accent, cssVars, presets, activePreset, onToggleMode, onToggleSide, onAccentChange, onAccentReset, onCssVarsChange, onApplyPreset, onLogout, onNewSession, onSelectSession, onDeleteSession, onRenameSession, onSessionsOpen, onViewStats, sessionAgentLine, }: {
5
5
  user: string | null;
6
6
  size?: number;
7
- /** Keep the agent identity visible while the dock is collapsed. */
8
- showBrandMark?: boolean;
9
7
  /** Fullscreen sidebar footer keeps the account and its settings discoverable. */
10
8
  presentation?: "icon" | "account-row";
11
9
  /** Reply playback is independent of microphone capture support. */
@@ -7,7 +7,7 @@
7
7
  * while generating) — no second Stop control here. Clearing the visible chat
8
8
  * is the `/clear` slash command — no toolbar button.
9
9
  */
10
- export declare function EmbedConversation({ streaming, agentName, scrollResize, centerContent, children, }: Readonly<{
10
+ export declare function EmbedConversation({ streaming, agentName, scrollResize, centerContent, hasOlderMessages, loadingEarlierMessages, onShowEarlierMessages, children, }: Readonly<{
11
11
  streaming: boolean;
12
12
  /**
13
13
  * Center the content vertically in the viewport — used by the first-run
@@ -27,5 +27,10 @@ export declare function EmbedConversation({ streaming, agentName, scrollResize,
27
27
  * glide), then settles it to "smooth" for live streaming growth.
28
28
  */
29
29
  scrollResize: "instant" | "smooth";
30
+ /** The paged history has older pages on the server (fetched from the top). */
31
+ hasOlderMessages?: boolean;
32
+ /** An older page is being fetched. */
33
+ loadingEarlierMessages?: boolean;
34
+ onShowEarlierMessages?: () => void;
30
35
  children: React.ReactNode;
31
36
  }>): import("react").JSX.Element;
@@ -1,8 +1,10 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { GoalBadgeProps } from './GoalBadge.tsx';
3
3
  import { BelongThemeBrand, BelongThemePalette } from '../../types/public.ts';
4
- /** Conversation title on desktop; mobile keeps the agent's direct logo control. */
5
- export declare function EmbedHeader({ title, subtitle, palette, brand, onExportChat, exportState, exportChatLabel, onCloseChat, closeChatLabel, onMinimize, onToggleFullscreen, fullscreen, layoutControl, goal, }: {
4
+ /** Conversation title on desktop; mobile keeps the agent's direct logo control.
5
+ * With `rename`, the chat is renamed in place: from the title on desktop, and
6
+ * from the ⋯ menu on every layout. */
7
+ export declare function EmbedHeader({ title, subtitle, palette, brand, onExportChat, exportState, exportChatLabel, onCloseChat, closeChatLabel, onMinimize, onToggleFullscreen, fullscreen, layoutControl, goal, rename, }: {
6
8
  title: string;
7
9
  subtitle?: string;
8
10
  palette: BelongThemePalette;
@@ -21,4 +23,14 @@ export declare function EmbedHeader({ title, subtitle, palette, brand, onExportC
21
23
  * is a DOOR: it says the status and opens the Goal rail view. Same place,
22
24
  * same tone rules, no panel of its own. */
23
25
  goal?: GoalBadgeProps;
26
+ /** The chat the header can rename — passed only for a server-bound session;
27
+ * the header owns the inline edit. `key` identifies the chat (its session
28
+ * id), so an edit never outlives a switch to another chat, even one showing
29
+ * the same words. `currentTitle` is its REAL title, "" when it has none:
30
+ * `subtitle` may be a placeholder ("Untitled chat") that is no name at all. */
31
+ readonly rename?: {
32
+ readonly key: string;
33
+ readonly currentTitle: string;
34
+ readonly onRename: (title: string) => void;
35
+ };
24
36
  }): import("react").JSX.Element;
@@ -0,0 +1,12 @@
1
+ import { ReactNode } from 'react';
2
+ export type VirtualTranscriptProps<T extends {
3
+ readonly id: string;
4
+ }> = {
5
+ readonly items: readonly T[];
6
+ readonly renderItem: (item: T, index: number) => ReactNode;
7
+ /** Rows that stay mounted while off screen: live or pending work. */
8
+ readonly pinnedIds: ReadonlySet<string>;
9
+ };
10
+ export declare function VirtualTranscript<T extends {
11
+ readonly id: string;
12
+ }>(props: VirtualTranscriptProps<T>): import("react").JSX.Element;
@@ -0,0 +1,15 @@
1
+ import { SessionUsageSummary } from '../../stream/select-session-usage.ts';
2
+ export type ContextOccupancy = {
3
+ readonly kind: "window";
4
+ readonly pct: number;
5
+ readonly usedTokens: number;
6
+ readonly windowTokens: number;
7
+ } | {
8
+ readonly kind: "compaction";
9
+ readonly pct: number;
10
+ readonly historyChars: number;
11
+ readonly thresholdChars: number;
12
+ };
13
+ /** `used / limit` as a whole percentage, clamped to [0, 100]; 0 for an empty limit. */
14
+ export declare const occupancyPct: (used: number, limit: number) => number;
15
+ export declare const contextOccupancy: (usage: SessionUsageSummary) => ContextOccupancy | null;
@@ -0,0 +1,3 @@
1
+ export declare const SessionIntentContext: import('react').Context<(sessionId: string) => void>;
2
+ /** How long the pointer or focus rests on a row before it counts as intent. */
3
+ export declare const SESSION_INTENT_DWELL_MS = 120;
@@ -0,0 +1 @@
1
+ export declare const useAgentIdentity: () => string;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Page-wide state of the virtualized transcript (`VirtualTranscript.tsx`), in
3
+ * a leaf module so the test setup can reach it without loading the list (and
4
+ * its scroll library) ahead of a test's mocks.
5
+ */
6
+ /**
7
+ * jsdom lays nothing out, so a virtualizer there mounts nothing. Unit tests of
8
+ * whole surfaces turn virtualization off and get every row (the test setup
9
+ * does); `VirtualTranscript`'s own tests turn it back on.
10
+ */
11
+ export declare const setTranscriptVirtualization: (enabled: boolean) => void;
12
+ export declare const isTranscriptVirtualized: () => boolean;
13
+ export declare const rememberRowHeight: (id: string, height: number) => void;
14
+ export declare const rememberedRowHeight: (id: string) => number | undefined;
15
+ export declare const __resetVirtualTranscriptForTest: () => void;
@@ -0,0 +1,3 @@
1
+ export type FeedbackSentiment = "up" | "down";
2
+ export declare const feedbackVotes: import('../../lib/remembered-state.ts').RememberedState<FeedbackSentiment | null>;
3
+ export declare const __resetFeedbackVotesForTest: () => void;
@@ -1,4 +1,5 @@
1
- export type FeedbackSentiment = "up" | "down";
1
+ import { FeedbackSentiment } from './feedback-votes.ts';
2
+ export type { FeedbackSentiment } from './feedback-votes.ts';
2
3
  type MessageFeedbackProps = {
3
4
  readonly sessionId: string;
4
5
  readonly taskId: string;
@@ -6,4 +7,3 @@ type MessageFeedbackProps = {
6
7
  readonly initialReason: string | null;
7
8
  };
8
9
  export declare const MessageFeedback: ({ sessionId, taskId, initialSentiment, initialReason, }: MessageFeedbackProps) => import("react").JSX.Element;
9
- export {};
@@ -0,0 +1,8 @@
1
+ import { SkillLibraryItem } from '../../api/skill-library.ts';
2
+ /** What the surface already knows about the row, so the header paints before the read lands. */
3
+ type EditableSkill = Pick<SkillLibraryItem, "userSkillId" | "name" | "hasScripts">;
4
+ export declare const EditSkillDialog: (props: {
5
+ readonly skill: EditableSkill | null;
6
+ readonly onOpenChange: (open: boolean) => void;
7
+ }) => import("react").JSX.Element;
8
+ export {};
@@ -16,8 +16,9 @@
16
16
  * the user is looking at instead of replacing it with an error.
17
17
  *
18
18
  * The on/off control is an inline SWITCH, not a menu item: turning a skill off
19
- * is the frequent action, and a row has only two others (Download, Delete). It
20
- * flips at once, locks while its own request runs, and snaps back on failure.
19
+ * is the frequent action, and a row has only three others (View and edit,
20
+ * Download, Delete). It flips at once, locks while its own request runs, and
21
+ * snaps back on failure.
21
22
  *
22
23
  * NOTHING HERE IS RED (§42). An outage, a failed toggle, download or delete is
23
24
  * an ordinary thing that happens to a working product, said in orange. The only
@@ -0,0 +1,8 @@
1
+ import { TFunction } from 'i18next';
2
+ import { SkillNameReservedBy } from '../../api/skill-library.ts';
3
+ export declare const isNameRuleReason: (reason: string) => boolean;
4
+ /** Why a name is not the user's to take, by what already owns it. */
5
+ export declare const reservedNameCopy: (t: TFunction, reserved: {
6
+ readonly name: string;
7
+ readonly reservedBy: SkillNameReservedBy;
8
+ }) => string;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * A 1-shot "bring the conversation to the bottom" signal, fired by the user's
3
+ * OWN send.
4
+ *
5
+ * The conversation frame (`EmbedConversation`) subscribes from inside its
6
+ * stick-to-bottom provider and answers with `scrollToBottom()`, which also
7
+ * re-engages the stick so the streamed reply stays in view. The senders (the
8
+ * composer submit, a plan decision) live outside that provider, hence the
9
+ * emitter instead of prop-drilling a ref through the dock. Same idiom as
10
+ * `composer-focus.ts`.
11
+ *
12
+ * Only user sends fire it. Incoming tokens never do: a reader who scrolled up
13
+ * on purpose stays where they are until they send something themselves.
14
+ */
15
+ /** Subscribe to scroll-to-bottom requests; returns an unsubscribe. */
16
+ export declare const subscribeConversationScrollToBottom: (listener: () => void) => (() => void);
17
+ /** Ask the mounted conversation to jump to its bottom (no-op when none is mounted). */
18
+ export declare const requestConversationScrollToBottom: () => void;
@@ -60,7 +60,6 @@ export type TourCopy = TourLabels & {
60
60
  };
61
61
  export type MenuCopy = {
62
62
  readonly signedInAs: (user: string) => string;
63
- readonly notSignedIn: string;
64
63
  readonly darkMode: string;
65
64
  readonly lightMode: string;
66
65
  readonly moveLeft: string;
@@ -119,13 +119,17 @@ export declare const lineBoundToSession: (sessionId: string) => AgentLine | unde
119
119
  * already holds must SWITCH to Agent 1, not adopt (duplicate) it onto whatever
120
120
  * background line the user happens to be viewing. */
121
121
  export declare const lineOwningSession: (sessionId: string) => AgentLine | undefined;
122
+ /** One selected owner for every surface, including defensive legacy snapshots.
123
+ * Match durable repair: background slots precede main; Agent 2 precedes 3.
124
+ * A pending background mint (null session) is never the selected blank chat. */
125
+ export declare const selectedAgentLineNumber: (sessionId: string | null, candidates: readonly AgentLine[]) => number | null;
122
126
  /**
123
127
  * EVERY line bound to `sessionId` — the plural form `markSessionSeen` and
124
128
  * `releaseLinesForSession` below already work in, for the same reason they do:
125
- * more than one line can hold one session (line 1 aliases whatever the chat is
126
- * showing, so a background line the user opened is held by both), and a legacy
127
- * `belong:voice-line-slots` bag written before the `isBoundToAnotherLine`
128
- * guards landed can rehydrate two background lines onto one session.
129
+ * older releases allowed several lines to alias one session. Restoration now
130
+ * repairs durable duplicates and adoption rejects new ones, but bulk cleanup
131
+ * and progress updates remain defensive when a legacy/test snapshot contains
132
+ * multiple holders.
129
133
  *
130
134
  * `lineOwningSession` answers a different question — "which ONE agent should a
131
135
  * History reopen switch to" — and stays singular. Anything that WRITES per-line
@@ -208,7 +212,12 @@ export declare const __bindLineSessionForTest: (line: number, sessionId: string)
208
212
  * while the in-memory line kept the old label, so the rail's chip and the
209
213
  * label that survives a reload disagreed until the next rehydration.
210
214
  */
211
- export declare const persistSlotBinding: (line: number, sessionId: string, label: string) => void;
215
+ export declare const persistSlotBinding: (line: number, sessionId: string, label: string) => {
216
+ readonly status: "bound" | "already_owned";
217
+ readonly line: number;
218
+ } | {
219
+ readonly status: "line_released";
220
+ };
212
221
  /** `stop_agent`'s target: bound by the line-run reader once a background
213
222
  * dispatch's POST returns a runId, and cleared to `null` when that run
214
223
  * reaches a confirmed terminal state — a stopped or finished run must not look