@belonguniverseai/react-sdk 0.6.35 → 0.6.37

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 (93) hide show
  1. package/dist/api/client.d.ts +120 -32
  2. package/dist/api/connectors.d.ts +11 -0
  3. package/dist/api/proactive.d.ts +12 -0
  4. package/dist/api/questions.d.ts +1 -1
  5. package/dist/api/task-schedules.d.ts +9 -9
  6. package/dist/app/dock-story-data.d.ts +2 -2
  7. package/dist/component/BelongWidget.d.ts +2 -2
  8. package/dist/component/{abnfDiagram-N423BO3Z-CRZoFiVH.js → abnfDiagram-N423BO3Z-rK11gCuw.js} +4 -4
  9. package/dist/component/{architectureDiagram-T3A2C74G-CaRtqw4X.js → architectureDiagram-T3A2C74G-C1fDFU4x.js} +6 -6
  10. package/dist/component/{blockDiagram-VBNYF7ZC-BK04msnb.js → blockDiagram-VBNYF7ZC-CIIYxs7W.js} +8 -8
  11. package/dist/component/{c4Diagram-5PPSVZJV-BMDcb-rm.js → c4Diagram-5PPSVZJV-D0xe0LhD.js} +4 -4
  12. package/dist/component/{channel-Da7DEnT8.js → channel-DHf95WkB.js} +2 -2
  13. package/dist/component/{chunk-2GRJ4B5K-CxwwCtK7.js → chunk-2GRJ4B5K-DJk-FbzK.js} +2 -2
  14. package/dist/component/{chunk-3NCLNEKW-C6R8qHlR.js → chunk-3NCLNEKW-_C9hD1ul.js} +2 -2
  15. package/dist/component/{chunk-4I5QYGJK-Ccf8L2Bk.js → chunk-4I5QYGJK-B_3nmgHd.js} +2 -2
  16. package/dist/component/{chunk-5RXB4S5H-V2z-LyAY.js → chunk-5RXB4S5H-DziHhBp7.js} +6 -6
  17. package/dist/component/{chunk-6Q2QTUOP-C6GL9-4r.js → chunk-6Q2QTUOP-CyeRnoqL.js} +3 -3
  18. package/dist/component/{chunk-7Z6QIM7H-BV6R4sWE.js → chunk-7Z6QIM7H-BvEk7IjN.js} +8 -8
  19. package/dist/component/{chunk-GF5L2VYU-DAD1p6ak.js → chunk-GF5L2VYU-DFdrfj8S.js} +6 -6
  20. package/dist/component/{chunk-I66GZJ75-DEykrnbu.js → chunk-I66GZJ75-BVlp1JJ3.js} +2 -2
  21. package/dist/component/{chunk-J7OUQ5F2-CEWcOukY.js → chunk-J7OUQ5F2-R59lQHxP.js} +7 -7
  22. package/dist/component/{chunk-JQJVKLGR-DCAX80x3.js → chunk-JQJVKLGR-BjFxgfuL.js} +8 -8
  23. package/dist/component/{chunk-KBJHAD2P-Bk8hJC_U.js → chunk-KBJHAD2P-D1ocoB1a.js} +2 -2
  24. package/dist/component/{chunk-NSK5VX7P-D-saWvpt.js → chunk-NSK5VX7P-CmvUkGFa.js} +2 -2
  25. package/dist/component/{chunk-QR6OTTB3-CMv_Vw9A.js → chunk-QR6OTTB3-6ofCyHE2.js} +7 -7
  26. package/dist/component/{chunk-UBXNYLIW-BfXPFCA1.js → chunk-UBXNYLIW-DgQyKHNe.js} +3 -3
  27. package/dist/component/{chunk-W5SLKNZC-BL-VPYuH.js → chunk-W5SLKNZC-DSgs5pb1.js} +2 -2
  28. package/dist/component/{chunk-WRU74C26-BXxIvhYq.js → chunk-WRU74C26-DzxU7J7M.js} +4 -4
  29. package/dist/component/{classDiagram-JCYQIIEL-CRKRQjr4.js → classDiagram-JCYQIIEL-BknOsFu3.js} +13 -13
  30. package/dist/component/{classDiagram-v2-OCEON4UE-ltwXlVlU.js → classDiagram-v2-OCEON4UE-CDIs8Rvl.js} +13 -13
  31. package/dist/component/{component-BNq6d1iV.js → component-DHNI8DmD.js} +17521 -17193
  32. package/dist/component/{cynefinDiagram-MW4NZA55-Bju0bDR1.js → cynefinDiagram-MW4NZA55-DRk2rLVG.js} +4 -4
  33. package/dist/component/{dagre-VZM6K2ZE-fMS2g5Lt.js → dagre-VZM6K2ZE-6dDo8vcv.js} +9 -9
  34. package/dist/component/{diagram-7IWD3JNH-CoDJAyv-.js → diagram-7IWD3JNH-CZkXMjIH.js} +5 -5
  35. package/dist/component/{diagram-B4RE2ZJO-nioVFGn5.js → diagram-B4RE2ZJO-DIoO4x6J.js} +3 -3
  36. package/dist/component/{diagram-LBJQPF4R-BuBX2Dz0.js → diagram-LBJQPF4R-o7HLLGFz.js} +4 -4
  37. package/dist/component/{diagram-Q27KOJAE-D6amwUDE.js → diagram-Q27KOJAE-BY-hokjN.js} +6 -6
  38. package/dist/component/{diagram-UB23O5K3-BfBhBu7Y.js → diagram-UB23O5K3-D9_7IpwX.js} +4 -4
  39. package/dist/component/{ebnfDiagram-BXEA7PRR-Cy3CaiTX.js → ebnfDiagram-BXEA7PRR-CA6DgX-J.js} +4 -4
  40. package/dist/component/{erDiagram-JOGREHBK-BUomkKWY.js → erDiagram-JOGREHBK-B2e6ieJI.js} +12 -12
  41. package/dist/component/flowDiagram-UKHOOZJN-KAoNtclS.js +19 -0
  42. package/dist/component/{ganttDiagram-PKOTCBZU-BWWeGylo.js → ganttDiagram-PKOTCBZU-CXWlDKZD.js} +3 -3
  43. package/dist/component/{gitGraphDiagram-DS77QQ5N-BFNi8KrJ.js → gitGraphDiagram-DS77QQ5N-ChosGXFO.js} +3 -3
  44. package/dist/component/index.d.ts +1 -1
  45. package/dist/component/index.js +2 -2
  46. package/dist/component/{infoDiagram-6WML65LV-Ba4nVdwJ.js → infoDiagram-6WML65LV-CWzYdOA_.js} +3 -3
  47. package/dist/component/{ishikawaDiagram-WSZJBQD7-JBSR3acP.js → ishikawaDiagram-WSZJBQD7-DCePzZHH.js} +4 -4
  48. package/dist/component/{journeyDiagram-NVQOT4AX-BAGUQhvd.js → journeyDiagram-NVQOT4AX-izcwbeeP.js} +3 -3
  49. package/dist/component/{kanban-definition-27J2QSJJ-CIBw8XVT.js → kanban-definition-27J2QSJJ-DR73dp4V.js} +9 -9
  50. package/dist/component/{line-BPXxX2mb.js → line-BZtHRQ5-.js} +2 -2
  51. package/dist/component/{mindmap-definition-FAOFIHXS-ZwmeO9Ju.js → mindmap-definition-FAOFIHXS-DLE_Fj51.js} +11 -11
  52. package/dist/component/{pegDiagram-VL7TDLO6-g6cHkKXH.js → pegDiagram-VL7TDLO6-DO3t9HIS.js} +4 -4
  53. package/dist/component/{pieDiagram-7S7Q4E2Y-6if4UZeA.js → pieDiagram-7S7Q4E2Y-BbwvXWvD.js} +4 -4
  54. package/dist/component/{quadrantDiagram-CIZ2JOQS-DW9Wi1_3.js → quadrantDiagram-CIZ2JOQS-UFgMo21N.js} +2 -2
  55. package/dist/component/{railroadDiagram-AXF67PYL-DRKsvNWu.js → railroadDiagram-AXF67PYL-BDh1A2ex.js} +4 -4
  56. package/dist/component/{requirementDiagram-LRYGKXZP-CKtakT6g.js → requirementDiagram-LRYGKXZP-MZZT3yVT.js} +11 -11
  57. package/dist/component/{sankeyDiagram-W5VNT64P-B-oejkos.js → sankeyDiagram-W5VNT64P-C0b2-i0q.js} +2 -2
  58. package/dist/component/{sequenceDiagram-SI44F4Z6-3RmdhrrK.js → sequenceDiagram-SI44F4Z6-BwL_YUO5.js} +4 -4
  59. package/dist/component/{stateDiagram-OKZ733FA-ChwQeLFK.js → stateDiagram-OKZ733FA-DEZXsS8t.js} +14 -14
  60. package/dist/component/{stateDiagram-v2-UEYNNEHI-Cu0mGIbX.js → stateDiagram-v2-UEYNNEHI-2MgNefm0.js} +13 -13
  61. package/dist/component/{swimlanes-SLNWSIFB-B1f2ZxW_.js → swimlanes-SLNWSIFB-X67Rhw2Q.js} +9 -9
  62. package/dist/component/{swimlanesDiagram-ULZ7WXOC-CspwK4RG.js → swimlanesDiagram-ULZ7WXOC-DZOs4i8X.js} +13 -13
  63. package/dist/component/{timeline-definition-Z64GVDOM-Bg9gKcBJ.js → timeline-definition-Z64GVDOM-7nBVxaU9.js} +4 -4
  64. package/dist/component/{vennDiagram-T6HMQDX7-BS7jr5XD.js → vennDiagram-T6HMQDX7-DiCHf_z0.js} +4 -4
  65. package/dist/component/{wardleyDiagram-T6FBY63Y-DVm3XZBO.js → wardleyDiagram-T6FBY63Y-ChtSGywV.js} +4 -4
  66. package/dist/component/{xychartDiagram-ELKLHX3M-Cg8qYbc9.js → xychartDiagram-ELKLHX3M-E-EkjY4L.js} +7 -7
  67. package/dist/components/embed/QuestionCard.d.ts +5 -5
  68. package/dist/components/embed/WorkspaceChip.d.ts +1 -0
  69. package/dist/components/pinned/profile/ProfileActivityTab.d.ts +2 -0
  70. package/dist/components/pinned/profile/ProfileSourcesTab.d.ts +9 -1
  71. package/dist/components/ui/dialog.d.ts +2 -1
  72. package/dist/embed/issue-report-bus.d.ts +2 -0
  73. package/dist/embed/presets.d.ts +2 -2
  74. package/dist/embed/screen-capture.d.ts +1 -2
  75. package/dist/embed/voice/session-create.d.ts +0 -18
  76. package/dist/embed/workspace-path-availability.d.ts +12 -0
  77. package/dist/embed/workspace-scope.d.ts +7 -1
  78. package/dist/i18n/messages/en.d.ts +17 -1
  79. package/dist/i18n/messages/surfaces/connectors.d.ts +8 -0
  80. package/dist/i18n/messages/surfaces/feedback.d.ts +12 -0
  81. package/dist/i18n/messages/surfaces/header.d.ts +4 -0
  82. package/dist/i18n/messages/surfaces/pinned.d.ts +36 -0
  83. package/dist/i18n/messages/surfaces/settings.d.ts +4 -0
  84. package/dist/i18n/messages/surfaces/stream.d.ts +1 -1
  85. package/dist/public-api.d.ts +1 -1
  86. package/dist/routes/chat/question-parts.d.ts +9 -12
  87. package/dist/routes/chat/queued-messages.d.ts +1 -0
  88. package/dist/stream/belong-chat-transport.d.ts +8 -7
  89. package/dist/stream/belong-data-parts.d.ts +5 -0
  90. package/dist/stream/pending-question-store.d.ts +7 -3
  91. package/dist/types/public.d.ts +14 -1
  92. package/package.json +1 -1
  93. package/dist/component/flowDiagram-UKHOOZJN-C0aiK5kF.js +0 -19
@@ -5,6 +5,8 @@ export type IssueReportRequest = {
5
5
  readonly sessionId: string | null;
6
6
  readonly taskId: string | null;
7
7
  readonly screenshot: CapturedScreenshot | null;
8
+ /** Deferred collection: absent on already-collected reports. Never serialized to the API. */
9
+ readonly captureScreenshot?: () => Promise<CapturedScreenshot | null>;
8
10
  readonly context: IssueReportClientContext;
9
11
  readonly clientErrors: readonly ClientErrorEntry[];
10
12
  };
@@ -3,10 +3,10 @@ import { BelongThemeBrand, BelongThemePalette, PartialBelongTheme, PresetName }
3
3
  /** Zod validator for a preset name at perimeters (localStorage, host API).
4
4
  * MUST list the same members as `PresetName` in `@sdk/types/public.ts`. */
5
5
  export declare const PRESET_NAME_SCHEMA: z.ZodEnum<{
6
- custom: "custom";
6
+ tenant: "tenant";
7
7
  belong: "belong";
8
8
  simetrik: "simetrik";
9
- tenant: "tenant";
9
+ custom: "custom";
10
10
  }>;
11
11
  export declare const BELONG_LIGHT_PALETTE: BelongThemePalette;
12
12
  export declare const BELONG_DARK_PALETTE: BelongThemePalette;
@@ -12,8 +12,7 @@
12
12
  * • cross-origin images and cross-origin iframes come out blank;
13
13
  * • this is a re-render of the DOM, not a photograph of pixels — a canvas
14
14
  * element or an unusual CSS feature can differ from what the user saw;
15
- * • it costs a beat on a large page, which is why capture runs on the click
16
- * and the dialog opens after it.
15
+ * • it costs a beat on a large page, so capture runs on Send, after the progress indicator paints.
17
16
  *
18
17
  * DEVICE PIXEL RATIO: snapdom's `toCanvas` defaults `dpr` to
19
18
  * `window.devicePixelRatio || 1` and multiplies the OUTPUT canvas dimensions
@@ -1,21 +1,3 @@
1
- /**
2
- * The ONE place that mints a Belong session over plain HTTP for the voice
3
- * call surface — shared by `line-dispatch.ts` (background lines 2/3, which
4
- * additionally persist the slot) and `voice-call.ts` (the foreground line 1
5
- * eager-bind at call start). Both need "create a session, same endpoint the
6
- * chat transport uses" with no message attached yet; this is that seam, so
7
- * neither call site hand-rolls its own `POST /v1/sessions` fetch.
8
- *
9
- * Workspace isolation (§28) mirrors the chat transport's semantics
10
- * (`#createSession` in belong-chat-transport.ts): a `scoped` host stamps the
11
- * effective `workspaceExternalId` on the create body so a background OR
12
- * foreground line opened while the host is inside a workspace lands in THAT
13
- * workspace; an `unconfigured` host (no workspace concept at all) omits the
14
- * field and keeps full legacy behavior; and a `missing` scope — tracking
15
- * configured but no workspace resolves right now — REFUSES to mint (BEL-241):
16
- * a session created in that window lands in the shared legacy root, where its
17
- * runs execute with no workspace binding at all.
18
- */
19
1
  export type CreateSessionOutcome = {
20
2
  readonly status: "created";
21
3
  readonly sessionId: string;
@@ -0,0 +1,12 @@
1
+ import { WorkspaceScope } from './workspace-scope.ts';
2
+ /** Public feature probe, once per API base; every failure and a two-second deadline mean off. */
3
+ export declare const askWorkspacePathsAvailability: (apiBaseUrl: string, fetchFn?: typeof fetch) => Promise<boolean>;
4
+ type SessionWorkspaceFields = {
5
+ readonly workspaceExternalId?: string;
6
+ readonly workspacePath?: string;
7
+ readonly workspaceName?: string;
8
+ };
9
+ /** String scopes retain their exact request shape; the cell already records id as path. */
10
+ export declare const workspaceSessionFields: (apiBaseUrl: string, scope: WorkspaceScope, fetchFn?: typeof fetch) => Promise<SessionWorkspaceFields>;
11
+ export declare const __resetWorkspacePathsForTest: () => void;
12
+ export {};
@@ -1,12 +1,17 @@
1
+ import { BelongWorkspace } from '../types/public.ts';
1
2
  export declare const isWorkspaceExternalId: (value: string) => boolean;
2
3
  export type WorkspaceScope = {
3
4
  readonly kind: "unconfigured";
4
5
  } | {
5
6
  readonly kind: "scoped";
6
7
  readonly id: string;
8
+ readonly path: string;
9
+ readonly name: string | null;
7
10
  } | {
8
11
  readonly kind: "missing";
9
12
  };
13
+ /** Same independent attribution-path grammar as the cell; ids still stay flat. */
14
+ export declare const isWorkspacePath: (value: string) => boolean;
10
15
  /** Poll cadence for URL-param tracking (the grant card's historical 2s). */
11
16
  export declare const WORKSPACE_SCOPE_POLL_MS = 2000;
12
17
  /** Resolve the scope LIVE (fresh URL read). See the header for precedence. */
@@ -32,6 +37,7 @@ export declare const useWorkspaceScope: () => WorkspaceScope;
32
37
  export declare const configureWorkspaceScope: (input: {
33
38
  readonly urlParam?: string | null;
34
39
  readonly staticId?: string | null;
40
+ readonly workspace?: BelongWorkspace | null;
35
41
  }) => void;
36
42
  /**
37
43
  * Imperative host switch (`belong.setWorkspace` / the widget's `workspace`
@@ -43,7 +49,7 @@ export declare const configureWorkspaceScope: (input: {
43
49
  * never silently break the dock. Use {@link clearHostWorkspace} to fully
44
50
  * disengage (component unmount).
45
51
  */
46
- export declare const setHostWorkspace: (id: string | null) => void;
52
+ export declare const setHostWorkspace: (input: string | BelongWorkspace | null) => void;
47
53
  /**
48
54
  * Fully disengage imperative workspace control (component unmount, or a host
49
55
  * that stopped passing the `workspace` prop): drop the override AND stop
@@ -90,7 +90,7 @@ export declare const en: {
90
90
  readonly selectedCount_other: "{{count}} selected";
91
91
  readonly answer: "Answer";
92
92
  readonly next: "Next";
93
- readonly questionDetachedHint: "Belong moved on — your answer will be sent as a new message";
93
+ readonly questionDetachedHint: "Answer whenever you're ready. Work that doesn't need this carries on.";
94
94
  readonly toolActivityLabel: "Tool activity";
95
95
  readonly toolShellRunning: "Running a command";
96
96
  readonly toolShellDone: "Ran a command";
@@ -460,6 +460,7 @@ export declare const en: {
460
460
  proactiveCheckNow: string;
461
461
  proactiveChecking: string;
462
462
  proactiveNothingNew: string;
463
+ proactiveCheckError: string;
463
464
  proactiveEmailTitle: string;
464
465
  proactiveEmailBody: string;
465
466
  proactiveEmailSaveError: string;
@@ -957,6 +958,15 @@ export declare const en: {
957
958
  readonly sourceListening: "Listening";
958
959
  readonly sourceConnect: "Connect";
959
960
  readonly sourceNotConnected: "Not connected";
961
+ readonly sourceCantRead: "Can't read";
962
+ readonly sourceFailingSince: "Failing since {{since}}";
963
+ readonly sourceLastWorked: "last read {{time}}";
964
+ readonly sourceNeverWorked: "no read has worked yet";
965
+ readonly sourceLastRead: "Last read {{time}}";
966
+ readonly sourceWhyNeedsRefresh: "{{app}} changed its tools. Press Refresh on it in Connectors to start reading it again.";
967
+ readonly sourceWhyNeedsSignIn: "The connection to {{app}} needs signing in again, in Connectors.";
968
+ readonly sourceWhyUnavailable: "{{app}} isn't answering. It's tried again on every check.";
969
+ readonly sourceOpenConnectors: "Open Connectors";
960
970
  readonly sourceGmail: "Unread email sent to you, leaving out marketing and mailing lists";
961
971
  readonly sourceSlack: "Direct messages, mentions and channel messages you haven't answered";
962
972
  readonly sourceCalendar: "Invitations for the next 24 hours you haven't answered";
@@ -1013,6 +1023,7 @@ export declare const en: {
1013
1023
  };
1014
1024
  readonly header: {
1015
1025
  readonly byBelong: "by Belong";
1026
+ readonly workspaceChip: "Workspace: {{workspace}}";
1016
1027
  readonly navChat: "Chat";
1017
1028
  readonly navGoal: "Goal";
1018
1029
  readonly navGoalNeedsYou: "Goal — it needs you";
@@ -1133,6 +1144,9 @@ export declare const en: {
1133
1144
  readonly cancel: "Cancel";
1134
1145
  readonly send: "Send";
1135
1146
  readonly sending: "Sending…";
1147
+ readonly capturing: "Taking screenshot…";
1148
+ readonly collecting: "Collecting session details…";
1149
+ readonly captureOnSend: "Include a screenshot (captured when you send)";
1136
1150
  readonly failed: "Couldn't send the report. Try again.";
1137
1151
  readonly failedScreenshot: "Couldn't send the report — the screenshot didn't go through. Try again without it.";
1138
1152
  readonly reportThis: "Report this with a screenshot";
@@ -1284,6 +1298,8 @@ export declare const en: {
1284
1298
  readonly statusConnected: "Connected";
1285
1299
  readonly needsAttention: "Needs attention";
1286
1300
  readonly statusError: "Couldn't connect";
1301
+ readonly statusNeedsRefresh: "Needs a refresh";
1302
+ readonly statusNewTools: "New tools available";
1287
1303
  readonly statusOff: "Off";
1288
1304
  readonly enabledLabel: "Available to the agent";
1289
1305
  readonly addTitle: "Add custom connector";
@@ -126,6 +126,8 @@ export declare const connectorsEn: {
126
126
  readonly statusConnected: "Connected";
127
127
  readonly needsAttention: "Needs attention";
128
128
  readonly statusError: "Couldn't connect";
129
+ readonly statusNeedsRefresh: "Needs a refresh";
130
+ readonly statusNewTools: "New tools available";
129
131
  readonly statusOff: "Off";
130
132
  readonly enabledLabel: "Available to the agent";
131
133
  readonly addTitle: "Add custom connector";
@@ -362,6 +364,8 @@ export declare const connectorsEs: {
362
364
  statusConnected: string;
363
365
  needsAttention: string;
364
366
  statusError: string;
367
+ statusNeedsRefresh: string;
368
+ statusNewTools: string;
365
369
  statusOff: string;
366
370
  enabledLabel: string;
367
371
  addTitle: string;
@@ -597,6 +601,8 @@ export declare const connectorsPt: {
597
601
  statusConnected: string;
598
602
  needsAttention: string;
599
603
  statusError: string;
604
+ statusNeedsRefresh: string;
605
+ statusNewTools: string;
600
606
  statusOff: string;
601
607
  enabledLabel: string;
602
608
  addTitle: string;
@@ -832,6 +838,8 @@ export declare const connectorsIt: {
832
838
  statusConnected: string;
833
839
  needsAttention: string;
834
840
  statusError: string;
841
+ statusNeedsRefresh: string;
842
+ statusNewTools: string;
835
843
  statusOff: string;
836
844
  enabledLabel: string;
837
845
  addTitle: string;
@@ -26,6 +26,9 @@ export declare const feedbackEn: {
26
26
  readonly cancel: "Cancel";
27
27
  readonly send: "Send";
28
28
  readonly sending: "Sending…";
29
+ readonly capturing: "Taking screenshot…";
30
+ readonly collecting: "Collecting session details…";
31
+ readonly captureOnSend: "Include a screenshot (captured when you send)";
29
32
  readonly failed: "Couldn't send the report. Try again.";
30
33
  readonly failedScreenshot: "Couldn't send the report — the screenshot didn't go through. Try again without it.";
31
34
  readonly reportThis: "Report this with a screenshot";
@@ -59,6 +62,9 @@ export declare const feedbackEs: {
59
62
  cancel: string;
60
63
  send: string;
61
64
  sending: string;
65
+ capturing: string;
66
+ collecting: string;
67
+ captureOnSend: string;
62
68
  failed: string;
63
69
  failedScreenshot: string;
64
70
  reportThis: string;
@@ -92,6 +98,9 @@ export declare const feedbackPt: {
92
98
  cancel: string;
93
99
  send: string;
94
100
  sending: string;
101
+ capturing: string;
102
+ collecting: string;
103
+ captureOnSend: string;
95
104
  failed: string;
96
105
  failedScreenshot: string;
97
106
  reportThis: string;
@@ -125,6 +134,9 @@ export declare const feedbackIt: {
125
134
  cancel: string;
126
135
  send: string;
127
136
  sending: string;
137
+ capturing: string;
138
+ collecting: string;
139
+ captureOnSend: string;
128
140
  failed: string;
129
141
  failedScreenshot: string;
130
142
  reportThis: string;
@@ -2,6 +2,7 @@
2
2
  export declare const headerEn: {
3
3
  readonly header: {
4
4
  readonly byBelong: "by Belong";
5
+ readonly workspaceChip: "Workspace: {{workspace}}";
5
6
  readonly navChat: "Chat";
6
7
  readonly navGoal: "Goal";
7
8
  readonly navGoalNeedsYou: "Goal — it needs you";
@@ -36,6 +37,7 @@ export declare const headerEn: {
36
37
  export declare const headerEs: {
37
38
  header: {
38
39
  byBelong: string;
40
+ workspaceChip: string;
39
41
  navChat: string;
40
42
  navGoal: string;
41
43
  navGoalNeedsYou: string;
@@ -70,6 +72,7 @@ export declare const headerEs: {
70
72
  export declare const headerPt: {
71
73
  header: {
72
74
  byBelong: string;
75
+ workspaceChip: string;
73
76
  navChat: string;
74
77
  navGoal: string;
75
78
  navGoalNeedsYou: string;
@@ -104,6 +107,7 @@ export declare const headerPt: {
104
107
  export declare const headerIt: {
105
108
  header: {
106
109
  byBelong: string;
110
+ workspaceChip: string;
107
111
  navChat: string;
108
112
  navGoal: string;
109
113
  navGoalNeedsYou: string;
@@ -63,6 +63,15 @@ export declare const pinnedEn: {
63
63
  readonly sourceListening: "Listening";
64
64
  readonly sourceConnect: "Connect";
65
65
  readonly sourceNotConnected: "Not connected";
66
+ readonly sourceCantRead: "Can't read";
67
+ readonly sourceFailingSince: "Failing since {{since}}";
68
+ readonly sourceLastWorked: "last read {{time}}";
69
+ readonly sourceNeverWorked: "no read has worked yet";
70
+ readonly sourceLastRead: "Last read {{time}}";
71
+ readonly sourceWhyNeedsRefresh: "{{app}} changed its tools. Press Refresh on it in Connectors to start reading it again.";
72
+ readonly sourceWhyNeedsSignIn: "The connection to {{app}} needs signing in again, in Connectors.";
73
+ readonly sourceWhyUnavailable: "{{app}} isn't answering. It's tried again on every check.";
74
+ readonly sourceOpenConnectors: "Open Connectors";
66
75
  readonly sourceGmail: "Unread email sent to you, leaving out marketing and mailing lists";
67
76
  readonly sourceSlack: "Direct messages, mentions and channel messages you haven't answered";
68
77
  readonly sourceCalendar: "Invitations for the next 24 hours you haven't answered";
@@ -144,6 +153,15 @@ export declare const pinnedEs: {
144
153
  readonly sourceListening: "Escuchando";
145
154
  readonly sourceConnect: "Conectar";
146
155
  readonly sourceNotConnected: "Sin conectar";
156
+ readonly sourceCantRead: "No se puede leer";
157
+ readonly sourceFailingSince: "Falla desde {{since}}";
158
+ readonly sourceLastWorked: "última lectura {{time}}";
159
+ readonly sourceNeverWorked: "ninguna lectura ha funcionado aún";
160
+ readonly sourceLastRead: "Última lectura {{time}}";
161
+ readonly sourceWhyNeedsRefresh: "{{app}} cambió sus herramientas. Pulsa Actualizar en {{app}}, en Conectores, para que vuelva a leerlo.";
162
+ readonly sourceWhyNeedsSignIn: "La conexión con {{app}} necesita que vuelvas a iniciar sesión, en Conectores.";
163
+ readonly sourceWhyUnavailable: "{{app}} no responde. Se vuelve a intentar en cada revisión.";
164
+ readonly sourceOpenConnectors: "Abrir Conectores";
147
165
  readonly sourceGmail: "Correos sin leer enviados a ti, sin marketing ni listas de correo";
148
166
  readonly sourceSlack: "Mensajes directos, menciones y mensajes de canales que no has respondido";
149
167
  readonly sourceCalendar: "Invitaciones de las próximas 24 horas que no has respondido";
@@ -225,6 +243,15 @@ export declare const pinnedPt: {
225
243
  readonly sourceListening: "Acompanhando";
226
244
  readonly sourceConnect: "Conectar";
227
245
  readonly sourceNotConnected: "Não conectado";
246
+ readonly sourceCantRead: "Não consegue ler";
247
+ readonly sourceFailingSince: "Falhando desde {{since}}";
248
+ readonly sourceLastWorked: "última leitura {{time}}";
249
+ readonly sourceNeverWorked: "nenhuma leitura funcionou ainda";
250
+ readonly sourceLastRead: "Última leitura {{time}}";
251
+ readonly sourceWhyNeedsRefresh: "O {{app}} mudou suas ferramentas. Toque em Atualizar no {{app}}, em Conectores, para voltar a lê-lo.";
252
+ readonly sourceWhyNeedsSignIn: "A conexão com o {{app}} precisa de um novo login, em Conectores.";
253
+ readonly sourceWhyUnavailable: "O {{app}} não está respondendo. Ele tenta de novo a cada verificação.";
254
+ readonly sourceOpenConnectors: "Abrir Conectores";
228
255
  readonly sourceGmail: "E-mails não lidos enviados a você, sem marketing nem listas de e-mail";
229
256
  readonly sourceSlack: "Mensagens diretas, menções e mensagens de canais que você não respondeu";
230
257
  readonly sourceCalendar: "Convites das próximas 24 horas que você não respondeu";
@@ -306,6 +333,15 @@ export declare const pinnedIt: {
306
333
  readonly sourceListening: "In ascolto";
307
334
  readonly sourceConnect: "Collega";
308
335
  readonly sourceNotConnected: "Non collegato";
336
+ readonly sourceCantRead: "Non riesce a leggere";
337
+ readonly sourceFailingSince: "Non funziona da {{since}}";
338
+ readonly sourceLastWorked: "ultima lettura {{time}}";
339
+ readonly sourceNeverWorked: "nessuna lettura è ancora riuscita";
340
+ readonly sourceLastRead: "Ultima lettura {{time}}";
341
+ readonly sourceWhyNeedsRefresh: "{{app}} ha cambiato i suoi strumenti. Premi Aggiorna su {{app}}, in Connettori, per tornare a leggerlo.";
342
+ readonly sourceWhyNeedsSignIn: "Il collegamento con {{app}} richiede un nuovo accesso, in Connettori.";
343
+ readonly sourceWhyUnavailable: "{{app}} non risponde. Si riprova a ogni controllo.";
344
+ readonly sourceOpenConnectors: "Apri Connettori";
309
345
  readonly sourceGmail: "Email non lette inviate a te, escluse marketing e mailing list";
310
346
  readonly sourceSlack: "Messaggi diretti, menzioni e messaggi nei canali a cui non hai risposto";
311
347
  readonly sourceCalendar: "Inviti delle prossime 24 ore a cui non hai risposto";
@@ -79,6 +79,7 @@ export declare const settingsEn: {
79
79
  proactiveCheckNow: string;
80
80
  proactiveChecking: string;
81
81
  proactiveNothingNew: string;
82
+ proactiveCheckError: string;
82
83
  proactiveEmailTitle: string;
83
84
  proactiveEmailBody: string;
84
85
  proactiveEmailSaveError: string;
@@ -185,6 +186,7 @@ export declare const settingsEs: {
185
186
  proactiveCheckNow: string;
186
187
  proactiveChecking: string;
187
188
  proactiveNothingNew: string;
189
+ proactiveCheckError: string;
188
190
  proactiveEmailTitle: string;
189
191
  proactiveEmailBody: string;
190
192
  proactiveEmailSaveError: string;
@@ -291,6 +293,7 @@ export declare const settingsPt: {
291
293
  proactiveCheckNow: string;
292
294
  proactiveChecking: string;
293
295
  proactiveNothingNew: string;
296
+ proactiveCheckError: string;
294
297
  proactiveEmailTitle: string;
295
298
  proactiveEmailBody: string;
296
299
  proactiveEmailSaveError: string;
@@ -397,6 +400,7 @@ export declare const settingsIt: {
397
400
  proactiveCheckNow: string;
398
401
  proactiveChecking: string;
399
402
  proactiveNothingNew: string;
403
+ proactiveCheckError: string;
400
404
  proactiveEmailTitle: string;
401
405
  proactiveEmailBody: string;
402
406
  proactiveEmailSaveError: string;
@@ -56,7 +56,7 @@ export declare const streamEn: {
56
56
  readonly selectedCount_other: "{{count}} selected";
57
57
  readonly answer: "Answer";
58
58
  readonly next: "Next";
59
- readonly questionDetachedHint: "Belong moved on — your answer will be sent as a new message";
59
+ readonly questionDetachedHint: "Answer whenever you're ready. Work that doesn't need this carries on.";
60
60
  readonly toolActivityLabel: "Tool activity";
61
61
  readonly toolShellRunning: "Running a command";
62
62
  readonly toolShellDone: "Ran a command";
@@ -1,3 +1,3 @@
1
- export type { BelongBrowserControlConfig, BelongBrowserOpName, BelongGlobal, BelongHostMcpConfig, BelongInitInput, BelongOpenOptions, BelongTheme, BelongThemeBrand, BelongThemeDensity, BelongThemeMode, BelongThemePalette, BelongThemeSide, PartialBelongTheme, RouteHandler, RouteHandlerResult, UiActionHandler, UiActionResult, } from './types/public.ts';
1
+ export type { BelongBrowserControlConfig, BelongBrowserOpName, BelongGlobal, BelongHostMcpConfig, BelongInitInput, BelongOpenOptions, BelongWorkspace, BelongTheme, BelongThemeBrand, BelongThemeDensity, BelongThemeMode, BelongThemePalette, BelongThemeSide, PartialBelongTheme, RouteHandler, RouteHandlerResult, UiActionHandler, UiActionResult, } from './types/public.ts';
2
2
  export { SdkProviders } from './app/providers.tsx';
3
3
  export { createApiClient, setBelongToken } from './api/client.ts';
@@ -1,21 +1,18 @@
1
1
  import { AnswerQuestionResult } from '../../api/questions.ts';
2
2
  import { BelongUIMessage, ChoiceRequestData } from '../../stream/belong-data-parts.ts';
3
3
  /**
4
- * Plan 013 — rewrite the transcript's `data-choice-request` part for one
5
- * question with its resolved shape, so the record reads exactly as it will
6
- * after a reload (the history patch) without waiting for the wire; the live
7
- * same-id part that follows overwrites it with the identical state. Every
8
- * other message keeps its identity (no churn for the renderers).
4
+ * A question's answer travels as a user message whose text opens by telling the
5
+ * model which card it answers (`renderLateAnswerText`, question.service.ts).
6
+ * The person who answered reads only what they said. Display only: the stored
7
+ * text is what the queued-reply reconcile matches against.
9
8
  */
10
- export declare const patchChoicePart: (messages: readonly BelongUIMessage[], resolved: ChoiceRequestData) => BelongUIMessage[];
9
+ export declare const answerMessageDisplayText: (text: string) => string;
11
10
  /**
12
- * Plan 013 — Stop's local un-arm: the newest `pending` question flips to
13
- * `cancelled`, exactly as the server's abort path flips its row. Walks the
14
- * transcript itself rather than the derived card: X only HIDES a card in
15
- * this tab, and a question hidden here is still cancelled by Stop — the
16
- * record must read the same as it will after a reload (§41).
11
+ * A reload between an answer and the end of the turn that was running reads the
12
+ * answer's row above that turn's live reply, where nothing would move it. True
13
+ * when the screen reads that way, so the run's end can read the order back.
17
14
  */
18
- export declare const cancelPendingQuestion: (messages: readonly BelongUIMessage[]) => BelongUIMessage[];
15
+ export declare const answerRowAboveLiveReply: (messages: readonly BelongUIMessage[]) => boolean;
19
16
  /**
20
17
  * Plan 013 — the part as the server's 409 says it settled: the row of record
21
18
  * (another tab's answer / reply, a Stop's `cancelled`, a dismissal), which is
@@ -11,5 +11,6 @@ export type QueuedMessage = {
11
11
  });
12
12
  export declare const queuedTurnHasReply: (history: readonly BelongUIMessage[], text: string) => boolean;
13
13
  export declare const dropQueuedLandedIn: (history: readonly BelongUIMessage[]) => (prev: readonly QueuedMessage[]) => readonly QueuedMessage[];
14
+ export declare const dropQueuedRead: (clientId: string) => (prev: readonly QueuedMessage[]) => readonly QueuedMessage[];
14
15
  export declare const markQueuedFailed: (clientId: string) => (prev: readonly QueuedMessage[]) => readonly QueuedMessage[];
15
16
  export declare const markQueuedQuotaRefused: (clientId: string, notice: QuotaNoticeData) => (prev: readonly QueuedMessage[]) => readonly QueuedMessage[];
@@ -65,9 +65,9 @@ export declare const wireStreamPartSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
65
65
  title: z.ZodString;
66
66
  kind: z.ZodString;
67
67
  status: z.ZodOptional<z.ZodEnum<{
68
+ failed: "failed";
68
69
  pending: "pending";
69
70
  completed: "completed";
70
- failed: "failed";
71
71
  in_progress: "in_progress";
72
72
  }>>;
73
73
  }, z.core.$strip>>;
@@ -110,8 +110,8 @@ export declare const wireStreamPartSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
110
110
  data: z.ZodObject<{
111
111
  toolName: z.ZodString;
112
112
  state: z.ZodEnum<{
113
- completed: "completed";
114
113
  failed: "failed";
114
+ completed: "completed";
115
115
  started: "started";
116
116
  }>;
117
117
  input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
@@ -134,8 +134,8 @@ export declare const wireStreamPartSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
134
134
  name: z.ZodString;
135
135
  description: z.ZodString;
136
136
  state: z.ZodEnum<{
137
- running: "running";
138
137
  failed: "failed";
138
+ running: "running";
139
139
  finished: "finished";
140
140
  }>;
141
141
  stepsUsed: z.ZodOptional<z.ZodNumber>;
@@ -163,9 +163,9 @@ export declare const wireStreamPartSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
163
163
  id: z.ZodString;
164
164
  data: z.ZodObject<{
165
165
  state: z.ZodEnum<{
166
+ failed: "failed";
166
167
  output: "output";
167
168
  completed: "completed";
168
- failed: "failed";
169
169
  started: "started";
170
170
  }>;
171
171
  stream: z.ZodOptional<z.ZodEnum<{
@@ -185,8 +185,8 @@ export declare const wireStreamPartSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
185
185
  uiActionRequestId: z.ZodString;
186
186
  actionName: z.ZodString;
187
187
  state: z.ZodEnum<{
188
- completed: "completed";
189
188
  failed: "failed";
189
+ completed: "completed";
190
190
  requested: "requested";
191
191
  }>;
192
192
  args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
@@ -219,8 +219,8 @@ export declare const wireStreamPartSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
219
219
  id: z.ZodString;
220
220
  data: z.ZodObject<{
221
221
  state: z.ZodEnum<{
222
- waiting: "waiting";
223
222
  idle: "idle";
223
+ waiting: "waiting";
224
224
  }>;
225
225
  stepIndex: z.ZodNumber;
226
226
  elapsedMs: z.ZodNumber;
@@ -230,8 +230,8 @@ export declare const wireStreamPartSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
230
230
  id: z.ZodString;
231
231
  data: z.ZodObject<{
232
232
  status: z.ZodEnum<{
233
- completed: "completed";
234
233
  failed: "failed";
234
+ completed: "completed";
235
235
  cancelled: "cancelled";
236
236
  continuing: "continuing";
237
237
  throttled: "throttled";
@@ -301,6 +301,7 @@ export declare const wireStreamPartSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
301
301
  kind: z.ZodLiteral<"skipped">;
302
302
  }, z.core.$strip>], "kind">>>;
303
303
  reply: z.ZodOptional<z.ZodString>;
304
+ answerMessageId: z.ZodOptional<z.ZodString>;
304
305
  }, z.core.$strip>;
305
306
  }, z.core.$strip>, z.ZodObject<{
306
307
  type: z.ZodLiteral<"data-goal">;
@@ -116,6 +116,11 @@ export type ChoiceRequestData = {
116
116
  readonly answers?: Readonly<Record<string, ChoiceAnswer>> | undefined;
117
117
  /** The composer text when the user replied in chat instead of choosing. */
118
118
  readonly reply?: string | undefined;
119
+ /**
120
+ * The message the answer travelled as, when the running turn read it at its
121
+ * next step (steering). Its "Queued" chip goes: the card shows the answer.
122
+ */
123
+ readonly answerMessageId?: string | undefined;
119
124
  };
120
125
  /**
121
126
  * Optional fields declared with explicit `| undefined` so Zod's
@@ -1,7 +1,11 @@
1
1
  import { BelongUIMessage, ChoiceRequestData } from './belong-data-parts.ts';
2
2
  /** Snapshot — identity is stable until the set changes (useSyncExternalStore). */
3
3
  export declare const peekHiddenQuestions: () => ReadonlySet<string>;
4
- export declare const subscribeHiddenQuestions: (listener: () => void) => (() => void);
4
+ /** Snapshot — identity is stable until an answer settles a card. */
5
+ export declare const peekSettledQuestions: () => ReadonlyMap<string, ChoiceRequestData>;
6
+ /** The card as the server says it now reads: this tab's answer, or the 409's row of record. */
7
+ export declare const settleQuestion: (resolved: ChoiceRequestData) => void;
8
+ export declare const subscribeQuestionCards: (listener: () => void) => (() => void);
5
9
  export declare const isQuestionHidden: (questionRequestId: string) => boolean;
6
10
  export declare const hideQuestion: (questionRequestId: string) => void;
7
11
  export declare const unhideQuestion: (questionRequestId: string) => void;
@@ -17,6 +21,6 @@ export declare const __resetPendingQuestionStoreForTest: () => void;
17
21
  * The LAST occurrence of each question id wins before "newest" is decided: a
18
22
  * restored history part and a resumed stream's re-emit of the same question
19
23
  * (§40 re-attach) can sit in different messages, and only the later one
20
- * carries the current state.
24
+ * carries the current state, unless this tab has settled it since.
21
25
  */
22
- export declare const selectActiveQuestion: (messages: readonly BelongUIMessage[], hiddenIds: ReadonlySet<string>) => ChoiceRequestData | null;
26
+ export declare const selectActiveQuestion: (messages: readonly BelongUIMessage[], hiddenIds: ReadonlySet<string>, settledById?: ReadonlyMap<string, ChoiceRequestData>) => ChoiceRequestData | null;
@@ -9,6 +9,15 @@ export type BelongTokenRequest = {
9
9
  readonly forceRefresh?: boolean;
10
10
  };
11
11
  export type BelongTokenGetter = (request?: BelongTokenRequest) => Promise<string>;
12
+ /** Host workspace identity and the label/path recorded for a new conversation. */
13
+ export type BelongWorkspace = {
14
+ /** Flat provider id; defaults to the path only for a single segment. */
15
+ readonly id?: string;
16
+ /** Up to eight slash-separated segments, at most 256 characters. */
17
+ readonly path: string;
18
+ /** Host-provided display name; shown in the header. */
19
+ readonly name?: string;
20
+ };
12
21
  /**
13
22
  * Public types the host embedding the SDK reads — keep this surface
14
23
  * small and stable.
@@ -132,6 +141,8 @@ export type BelongLocale = "en" | "es" | "pt" | "it";
132
141
  export type BelongInitInput = {
133
142
  /** Belong cloud base URL, e.g. `https://api.belong.host` or `http://localhost:8787`. */
134
143
  readonly apiBaseUrl: string;
144
+ /** Optional host workspace declaration; the provider id keeps its flat grammar. */
145
+ readonly workspace?: BelongWorkspace;
135
146
  /**
136
147
  * Public tenant ID or slug (multi-tenant deployments). Used for
137
148
  * boot-time, unauthenticated surfaces only — the theme fetch adds
@@ -274,6 +285,8 @@ export type BelongHostMcpConfig = {
274
285
  * segment). At most 8.
275
286
  */
276
287
  readonly allowedPaths: readonly string[];
288
+ /** Host-owned same-origin X-headers (for example a session CSRF token); never agent arguments. */
289
+ readonly headers?: Readonly<Record<string, string>>;
277
290
  };
278
291
  /** A browser-control op the dock can run on the host page. */
279
292
  export type BelongBrowserOpName = "snapshot" | "read" | "click" | "type" | "select" | "press" | "navigate" | "eval" | "mcp_call";
@@ -331,7 +344,7 @@ export type BelongGlobal = {
331
344
  * console warning. Hosts can use this standalone (no `scopeUrlParam`) or
332
345
  * alongside URL tracking for instant switches.
333
346
  */
334
- readonly setWorkspace: (id: string | null) => void;
347
+ readonly setWorkspace: (workspace: string | BelongWorkspace | null) => void;
335
348
  /**
336
349
  * Set the signed-in user at runtime (wins over `init({ user })`).
337
350
  * `setUser(null)` drops the override back to the init value;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@belonguniverseai/react-sdk",
3
- "version": "0.6.35",
3
+ "version": "0.6.37",
4
4
  "description": "Belong — embeddable React AI assistant dock. Mount <BelongWidget> in your app tree with getToken dependency-injection auth.",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",
@@ -1,19 +0,0 @@
1
- globalThis.process = globalThis.process || { env: {} }, globalThis.global = globalThis.global || globalThis;
2
- import "./chunk-Y2CYZVJY-CiUSrfaV.js";
3
- import "./src-CKo8cHWB.js";
4
- import "./chunk-I66GZJ75-DEykrnbu.js";
5
- import "./chunk-NSK5VX7P-D-saWvpt.js";
6
- import "./chunk-ZIRB5QZD-DmX0SXRC.js";
7
- import "./chunk-W5SLKNZC-BL-VPYuH.js";
8
- import "./chunk-UBXNYLIW-BfXPFCA1.js";
9
- import "./chunk-4I5QYGJK-Ccf8L2Bk.js";
10
- import "./chunk-WRU74C26-BXxIvhYq.js";
11
- import "./chunk-QR6OTTB3-CMv_Vw9A.js";
12
- import "./chunk-7BUUIJ7U-DJJ8ycYS.js";
13
- import "./chunk-7Z6QIM7H-BV6R4sWE.js";
14
- import "./chunk-J7OUQ5F2-CEWcOukY.js";
15
- import "./chunk-5VM5RSS4-BuOiQaWo.js";
16
- import "./chunk-2GRJ4B5K-CxwwCtK7.js";
17
- import "./chunk-XXDRQBXY-BP7ld7ls.js";
18
- import "./chunk-KBJHAD2P-Bk8hJC_U.js";
19
- export { n as diagram } from "./chunk-JQJVKLGR-DCAX80x3.js";