@belonguniverseai/react-sdk 0.6.31 → 0.6.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/account-connectors.d.ts +2 -2
- package/dist/api/client.d.ts +1126 -63
- package/dist/api/goals.d.ts +4 -4
- package/dist/api/guide.d.ts +15 -0
- package/dist/api/query-keys.d.ts +6 -5
- package/dist/api/quota-refusal.d.ts +49 -0
- package/dist/api/secret-paste.d.ts +5 -0
- package/dist/api/suggestions.d.ts +18 -0
- package/dist/api/task-schedule-sharing.d.ts +13 -1
- package/dist/api/task-schedules.d.ts +33 -4
- package/dist/api/vault.d.ts +49 -0
- package/dist/app/dock-story-data.d.ts +6 -0
- package/dist/component/{abnfDiagram-N423BO3Z-C_vMQSL0.js → abnfDiagram-N423BO3Z-CK4wvzwz.js} +4 -4
- package/dist/component/{architectureDiagram-T3A2C74G-dvNbgSIj.js → architectureDiagram-T3A2C74G-DoljsqqO.js} +6 -6
- package/dist/component/{blockDiagram-VBNYF7ZC-CRm9PRRf.js → blockDiagram-VBNYF7ZC-Ie7SErpH.js} +8 -8
- package/dist/component/{c4Diagram-5PPSVZJV-B1PMAZEg.js → c4Diagram-5PPSVZJV-rfEof5mj.js} +4 -4
- package/dist/component/{channel-Boj1wmAa.js → channel-C5ABP6lE.js} +2 -2
- package/dist/component/{chunk-2GRJ4B5K-CBAw5kla.js → chunk-2GRJ4B5K-CWOCv67u.js} +2 -2
- package/dist/component/{chunk-3NCLNEKW-BuxgmuBS.js → chunk-3NCLNEKW-BJYANBvv.js} +2 -2
- package/dist/component/{chunk-4I5QYGJK-CDPqoPOq.js → chunk-4I5QYGJK-C29OfER5.js} +2 -2
- package/dist/component/{chunk-5RXB4S5H-fv_mFlec.js → chunk-5RXB4S5H-D__NH4Op.js} +6 -6
- package/dist/component/{chunk-6Q2QTUOP-RU5jVXsd.js → chunk-6Q2QTUOP-BgSQgII8.js} +3 -3
- package/dist/component/{chunk-7Z6QIM7H-BgV4nQ80.js → chunk-7Z6QIM7H-vNexNF_V.js} +8 -8
- package/dist/component/{chunk-GF5L2VYU-CSROQiBr.js → chunk-GF5L2VYU-D3vxqomE.js} +6 -6
- package/dist/component/{chunk-I66GZJ75-CGsmSAKB.js → chunk-I66GZJ75-Dkw1ISGd.js} +2 -2
- package/dist/component/{chunk-J7OUQ5F2-D0GPh9LA.js → chunk-J7OUQ5F2-dC67pJWg.js} +7 -7
- package/dist/component/{chunk-JQJVKLGR-D4zeU7rQ.js → chunk-JQJVKLGR-Djj9TdhH.js} +8 -8
- package/dist/component/{chunk-KBJHAD2P-_EJQ1rNN.js → chunk-KBJHAD2P-dwIA6Vmi.js} +2 -2
- package/dist/component/{chunk-NSK5VX7P-dusZw8pp.js → chunk-NSK5VX7P-thQxjtNK.js} +2 -2
- package/dist/component/{chunk-QR6OTTB3-Bb0pFQ-m.js → chunk-QR6OTTB3-OMd-rgNj.js} +7 -7
- package/dist/component/{chunk-UBXNYLIW-CJHU4Dfa.js → chunk-UBXNYLIW-D26S6zO6.js} +3 -3
- package/dist/component/{chunk-W5SLKNZC-CRG_NQXu.js → chunk-W5SLKNZC-DLV7M8by.js} +2 -2
- package/dist/component/{chunk-WRU74C26-D8hrtupL.js → chunk-WRU74C26-13bvIAgD.js} +4 -4
- package/dist/component/{classDiagram-JCYQIIEL-CIgvdG3B.js → classDiagram-JCYQIIEL-BFQ72AZA.js} +13 -13
- package/dist/component/{classDiagram-v2-OCEON4UE-CyMNFCrX.js → classDiagram-v2-OCEON4UE-UFfArXpP.js} +13 -13
- package/dist/component/{component-CtEw7QuU.js → component-Bhs6PFPY.js} +42587 -40222
- package/dist/component/{cynefinDiagram-MW4NZA55-M_mUz7fS.js → cynefinDiagram-MW4NZA55-Bgfw8c41.js} +4 -4
- package/dist/component/{dagre-VZM6K2ZE-Co5UZ6ZI.js → dagre-VZM6K2ZE-CQoUcF3S.js} +9 -9
- package/dist/component/{diagram-7IWD3JNH-Bfgrgw1x.js → diagram-7IWD3JNH-C8-mvAEv.js} +5 -5
- package/dist/component/{diagram-B4RE2ZJO-On8y3Dsu.js → diagram-B4RE2ZJO-BATqCIx3.js} +3 -3
- package/dist/component/{diagram-LBJQPF4R-CzDYf7jJ.js → diagram-LBJQPF4R-DwRMRXWz.js} +4 -4
- package/dist/component/{diagram-Q27KOJAE-D2MlvnqP.js → diagram-Q27KOJAE-D6gO0LTm.js} +6 -6
- package/dist/component/{diagram-UB23O5K3-Bl3kdzTb.js → diagram-UB23O5K3-4nOrWHql.js} +4 -4
- package/dist/component/{ebnfDiagram-BXEA7PRR-CyKWxoNI.js → ebnfDiagram-BXEA7PRR-DCO-Nj3k.js} +4 -4
- package/dist/component/{erDiagram-JOGREHBK-B2DjPQI6.js → erDiagram-JOGREHBK-hWtImhPN.js} +12 -12
- package/dist/component/flowDiagram-UKHOOZJN-8qLgX2Wv.js +19 -0
- package/dist/component/{ganttDiagram-PKOTCBZU-Do3-h4U7.js → ganttDiagram-PKOTCBZU-BE8Mqoej.js} +3 -3
- package/dist/component/{gitGraphDiagram-DS77QQ5N-CRyn9FyP.js → gitGraphDiagram-DS77QQ5N-DURS7rAN.js} +3 -3
- package/dist/component/index.js +2 -2
- package/dist/component/{infoDiagram-6WML65LV-BvRo6Umd.js → infoDiagram-6WML65LV-BqBxR6YB.js} +3 -3
- package/dist/component/{ishikawaDiagram-WSZJBQD7-DNxrL1bn.js → ishikawaDiagram-WSZJBQD7-CnYZd1Dq.js} +4 -4
- package/dist/component/{journeyDiagram-NVQOT4AX-Cvzr6jFA.js → journeyDiagram-NVQOT4AX-Cgkpx4Qx.js} +3 -3
- package/dist/component/{kanban-definition-27J2QSJJ-CWjHCc6Q.js → kanban-definition-27J2QSJJ-CJSdhT0i.js} +9 -9
- package/dist/component/{line-qLTHZib7.js → line-BBEHlpsV.js} +2 -2
- package/dist/component/{mindmap-definition-FAOFIHXS-CTrxLLMf.js → mindmap-definition-FAOFIHXS-DgHouLA-.js} +11 -11
- package/dist/component/{pegDiagram-VL7TDLO6-DKquwTLr.js → pegDiagram-VL7TDLO6-B_iGQ6sI.js} +4 -4
- package/dist/component/{pieDiagram-7S7Q4E2Y-B9mrWWER.js → pieDiagram-7S7Q4E2Y-g7GxM0JA.js} +4 -4
- package/dist/component/{quadrantDiagram-CIZ2JOQS-CLMlPfFg.js → quadrantDiagram-CIZ2JOQS-Bp7z4raq.js} +2 -2
- package/dist/component/{railroadDiagram-AXF67PYL-DBRxaZy0.js → railroadDiagram-AXF67PYL-CYx3PP5o.js} +4 -4
- package/dist/component/{requirementDiagram-LRYGKXZP-DFbNp-NQ.js → requirementDiagram-LRYGKXZP-BJNRJceo.js} +11 -11
- package/dist/component/{sankeyDiagram-W5VNT64P-Ba10c9Ya.js → sankeyDiagram-W5VNT64P-Cf0tVHbW.js} +2 -2
- package/dist/component/{sequenceDiagram-SI44F4Z6-CakxF9z5.js → sequenceDiagram-SI44F4Z6-BsAsKMRH.js} +4 -4
- package/dist/component/{stateDiagram-OKZ733FA-DpwaZHAD.js → stateDiagram-OKZ733FA-Bpk0vtTK.js} +14 -14
- package/dist/component/{stateDiagram-v2-UEYNNEHI-CXLHj_sq.js → stateDiagram-v2-UEYNNEHI-CJFoUvD2.js} +13 -13
- package/dist/component/{swimlanes-SLNWSIFB-CLLLQ7CI.js → swimlanes-SLNWSIFB-Be5A0lwq.js} +9 -9
- package/dist/component/{swimlanesDiagram-ULZ7WXOC-B1LbGSCS.js → swimlanesDiagram-ULZ7WXOC-J8VNaPhM.js} +13 -13
- package/dist/component/{timeline-definition-Z64GVDOM-BsifI4rA.js → timeline-definition-Z64GVDOM-CU9PEkPY.js} +4 -4
- package/dist/component/{vennDiagram-T6HMQDX7-zuVcjY9p.js → vennDiagram-T6HMQDX7-Cno78tFK.js} +4 -4
- package/dist/component/{wardleyDiagram-T6FBY63Y-B9DV6RwN.js → wardleyDiagram-T6FBY63Y-BEb1Rn5J.js} +4 -4
- package/dist/component/{xychartDiagram-ELKLHX3M-FyZaGaUV.js → xychartDiagram-ELKLHX3M-BwjMczCl.js} +7 -7
- package/dist/components/ai-elements/dock-link.d.ts +14 -1
- package/dist/components/ai-elements/message.d.ts +8 -1
- package/dist/components/embed/EmbedRail.d.ts +8 -1
- package/dist/components/embed/NextStepCard.d.ts +6 -0
- package/dist/components/embed/QuotaNoticeCard.d.ts +4 -0
- package/dist/components/embed/SessionSwitcher.d.ts +6 -1
- package/dist/components/embed/quota-notice-copy.d.ts +3 -0
- package/dist/components/guide/GuideArticleView.d.ts +7 -0
- package/dist/components/guide/GuideHub.d.ts +9 -0
- package/dist/components/guide/GuideSettings.d.ts +23 -0
- package/dist/components/guide/figures/ComposerIndicatorsFigure.d.ts +16 -0
- package/dist/components/guide/figures/SharedTaskCopiesFigure.d.ts +12 -0
- package/dist/components/guide/figures/index.d.ts +3 -0
- package/dist/components/guide/guide-fixtures.d.ts +3 -0
- package/dist/components/guide/guide-icons.d.ts +3 -0
- package/dist/components/guide/guide-link.d.ts +12 -0
- package/dist/components/guide/guide-search.d.ts +15 -0
- package/dist/components/scheduled/schedule-dialog-model.d.ts +2 -1
- package/dist/components/scheduled/schedule-format.d.ts +4 -1
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/ui/input-group.d.ts +1 -1
- package/dist/components/vault/SecretPasteFeedback.d.ts +6 -0
- package/dist/components/vault/SecretsPanel.d.ts +23 -0
- package/dist/components/vault/vault-open.d.ts +3 -0
- package/dist/embed/goal-edit-command.d.ts +6 -1
- package/dist/embed/quota-notice.d.ts +9 -0
- package/dist/embed/theme.d.ts +10 -0
- package/dist/embed/voice/agent-spawn.d.ts +12 -2
- package/dist/embed/voice-call.d.ts +4 -1
- package/dist/i18n/messages/en.d.ts +85 -0
- package/dist/i18n/messages/surfaces/guide.d.ts +131 -0
- package/dist/i18n/messages/surfaces/quota.d.ts +69 -0
- package/dist/i18n/messages/surfaces/scheduled.d.ts +32 -0
- package/dist/i18n/messages/surfaces/settings.d.ts +16 -0
- package/dist/i18n/messages/surfaces/stream.d.ts +4 -0
- package/dist/i18n/messages/surfaces/vault.d.ts +120 -0
- package/dist/lib/use-tab-leadership.d.ts +1 -0
- package/dist/routes/chat/history-cache.d.ts +5 -0
- package/dist/routes/chat/question-parts.d.ts +26 -0
- package/dist/routes/chat/queued-delivery.d.ts +20 -0
- package/dist/routes/chat/queued-messages.d.ts +15 -0
- package/dist/routes/chat/session-api.d.ts +52 -0
- package/dist/routes/chat/session-history-api.d.ts +9 -0
- package/dist/routes/chat/transcript-update.d.ts +45 -0
- package/dist/routes/chat/use-catch-up-on-return.d.ts +7 -0
- package/dist/routes/chat/use-next-step-suggestion.d.ts +38 -0
- package/dist/routes/chat/use-quota-notice.d.ts +29 -0
- package/dist/routes/chat/use-quota-stop-refresh.d.ts +27 -0
- package/dist/routes/chat/use-session-goal.d.ts +6 -0
- package/dist/routes/chat.d.ts +9 -15
- package/dist/stream/belong-chat-transport.d.ts +17 -2
- package/dist/stream/belong-data-parts.d.ts +31 -1
- package/dist/stream/provider-blocked.d.ts +16 -0
- package/package.json +1 -1
- package/dist/component/flowDiagram-UKHOOZJN-CjSeviPw.js +0 -19
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The monthly token quota's refusal notice (TS-DOCK-03, DE-QTA-10).
|
|
3
|
+
*
|
|
4
|
+
* The server renders the same four-locale table for the notice's fallback
|
|
5
|
+
* text (`quota-notice-copy.ts` in belong-cloud), and a root parity test
|
|
6
|
+
* compares the two key by key — change one, change both.
|
|
7
|
+
*
|
|
8
|
+
* Copy rules (plan 018, CLAUDE.md §42): the unit is "tokens", never
|
|
9
|
+
* "weighted" / "ponderados" / "ponderati"; the copy never names Belong; it
|
|
10
|
+
* names the tenant's product, or — when a notice carries none — no product at
|
|
11
|
+
* all ("your admin"), never a stand-in noun.
|
|
12
|
+
*
|
|
13
|
+
* The `NoDate` / `NoProduct` variants are for a notice whose `resetsAt` or
|
|
14
|
+
* `productName` is missing or unreadable (every field but `kind` is optional
|
|
15
|
+
* on the wire, SAD §9). The server always sends both with `exhausted`, so it
|
|
16
|
+
* renders only `exhausted`, `blocked`, and `scheduleSkipped` itself.
|
|
17
|
+
*/
|
|
18
|
+
export declare const quotaEn: {
|
|
19
|
+
readonly quota: {
|
|
20
|
+
readonly notice: {
|
|
21
|
+
readonly exhausted: "You've used this month's tokens for {{product}}. They reset on {{resetDate}}. Ask your {{product}} admin if you need more.";
|
|
22
|
+
readonly exhaustedNoDate: "You've used this month's tokens for {{product}}. Ask your {{product}} admin if you need more.";
|
|
23
|
+
readonly exhaustedNoProduct: "You've used this month's tokens. They reset on {{resetDate}}. Ask your admin if you need more.";
|
|
24
|
+
readonly exhaustedNoProductNoDate: "You've used this month's tokens. Ask your admin if you need more.";
|
|
25
|
+
readonly blocked: "Your access to the agent in {{product}} is paused. Ask your {{product}} admin to turn it back on.";
|
|
26
|
+
readonly blockedNoProduct: "Your access to the agent is paused. Ask your admin to turn it back on.";
|
|
27
|
+
readonly scheduleSkipped: "Skipped: this month's tokens are used up.";
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
export declare const quotaEs: {
|
|
32
|
+
readonly quota: {
|
|
33
|
+
readonly notice: {
|
|
34
|
+
readonly exhausted: "Usaste los tokens de este mes para {{product}}. Se restablecen el {{resetDate}}. Si necesitas más, pídeselo a tu administrador de {{product}}.";
|
|
35
|
+
readonly exhaustedNoDate: "Usaste los tokens de este mes para {{product}}. Si necesitas más, pídeselo a tu administrador de {{product}}.";
|
|
36
|
+
readonly exhaustedNoProduct: "Usaste los tokens de este mes. Se restablecen el {{resetDate}}. Si necesitas más, pídeselo a tu administrador.";
|
|
37
|
+
readonly exhaustedNoProductNoDate: "Usaste los tokens de este mes. Si necesitas más, pídeselo a tu administrador.";
|
|
38
|
+
readonly blocked: "Tu acceso al agente en {{product}} está en pausa. Pídele a tu administrador de {{product}} que lo reactive.";
|
|
39
|
+
readonly blockedNoProduct: "Tu acceso al agente está en pausa. Pídele a tu administrador que lo reactive.";
|
|
40
|
+
readonly scheduleSkipped: "Omitida: se agotaron los tokens de este mes.";
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
export declare const quotaPt: {
|
|
45
|
+
readonly quota: {
|
|
46
|
+
readonly notice: {
|
|
47
|
+
readonly exhausted: "Você usou os tokens deste mês para {{product}}. Eles são renovados em {{resetDate}}. Se precisar de mais, fale com o administrador do {{product}}.";
|
|
48
|
+
readonly exhaustedNoDate: "Você usou os tokens deste mês para {{product}}. Se precisar de mais, fale com o administrador do {{product}}.";
|
|
49
|
+
readonly exhaustedNoProduct: "Você usou os tokens deste mês. Eles são renovados em {{resetDate}}. Se precisar de mais, fale com o seu administrador.";
|
|
50
|
+
readonly exhaustedNoProductNoDate: "Você usou os tokens deste mês. Se precisar de mais, fale com o seu administrador.";
|
|
51
|
+
readonly blocked: "Seu acesso ao agente no {{product}} está pausado. Peça ao administrador do {{product}} para reativá-lo.";
|
|
52
|
+
readonly blockedNoProduct: "Seu acesso ao agente está pausado. Peça ao seu administrador para reativá-lo.";
|
|
53
|
+
readonly scheduleSkipped: "Ignorada: os tokens deste mês acabaram.";
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
export declare const quotaIt: {
|
|
58
|
+
readonly quota: {
|
|
59
|
+
readonly notice: {
|
|
60
|
+
readonly exhausted: "Hai usato i token di questo mese per {{product}}. Si azzerano il giorno {{resetDate}}. Se te ne servono altri, chiedi all'amministratore di {{product}}.";
|
|
61
|
+
readonly exhaustedNoDate: "Hai usato i token di questo mese per {{product}}. Se te ne servono altri, chiedi all'amministratore di {{product}}.";
|
|
62
|
+
readonly exhaustedNoProduct: "Hai usato i token di questo mese. Si azzerano il giorno {{resetDate}}. Se te ne servono altri, chiedi al tuo amministratore.";
|
|
63
|
+
readonly exhaustedNoProductNoDate: "Hai usato i token di questo mese. Se te ne servono altri, chiedi al tuo amministratore.";
|
|
64
|
+
readonly blocked: "Il tuo accesso all'agente in {{product}} è in pausa. Chiedi all'amministratore di {{product}} di riattivarlo.";
|
|
65
|
+
readonly blockedNoProduct: "Il tuo accesso all'agente è in pausa. Chiedi al tuo amministratore di riattivarlo.";
|
|
66
|
+
readonly scheduleSkipped: "Saltata: i token di questo mese sono esauriti.";
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
};
|
|
@@ -57,10 +57,12 @@ export declare const scheduledEn: {
|
|
|
57
57
|
readonly sharedConflict: "Someone updated this task while you were editing. Your text is still here. Copy any changes you want to keep, then reopen the editor to load the latest version.";
|
|
58
58
|
readonly sharedReadOnly: "You no longer have edit access. Your unsaved changes are still here.";
|
|
59
59
|
readonly templateUnavailable: "The linked HTML template could not be read. Ask the owner to restore it, then resume this task.";
|
|
60
|
+
readonly sharedOwnerUnavailable: "This shared task is unavailable right now. Resume it when its owner's workspace is back.";
|
|
60
61
|
readonly cliReconnectRequired: "Simetrik couldn't be reached during this run. It reconnects on its own the next time you open Simetrik.";
|
|
61
62
|
readonly deliveryFailed: "The task ran but couldn't send its result: every message or email it tried to send failed. Check that its Slack, Teams or email connection is still connected.";
|
|
62
63
|
readonly cliUnavailable: "Simetrik didn't respond during this run, so nothing could be checked and no email was sent.";
|
|
63
64
|
readonly emailNotPrepared: "This run ended before it finished its check, so no email was sent. Open the run to see what stopped it.";
|
|
65
|
+
readonly runIncomplete: "This run stopped before it finished, so its work may be partial. Open its conversation to see where it stopped.";
|
|
64
66
|
readonly viewTitle: "Scheduled";
|
|
65
67
|
readonly subtitle: "Run work automatically, even when you're away";
|
|
66
68
|
readonly newTask: "New task";
|
|
@@ -73,6 +75,7 @@ export declare const scheduledEn: {
|
|
|
73
75
|
readonly loading: "Loading scheduled tasks…";
|
|
74
76
|
readonly empty: "No scheduled tasks yet";
|
|
75
77
|
readonly emptyHint: "Create one to run a prompt later — once or on a repeating schedule.";
|
|
78
|
+
readonly emptyProjectHint: "Or start a project to share tasks and files with your team.";
|
|
76
79
|
readonly noResults: "No matches for “{{q}}”";
|
|
77
80
|
readonly loadError: "Couldn't load scheduled tasks.";
|
|
78
81
|
readonly loadMore: "Load more";
|
|
@@ -127,6 +130,10 @@ export declare const scheduledEn: {
|
|
|
127
130
|
readonly summaryDaily: "Daily at {{time}}";
|
|
128
131
|
readonly summaryWeekdays: "Weekdays at {{time}}";
|
|
129
132
|
readonly summaryWeekly: "Every {{day}} at {{time}}";
|
|
133
|
+
readonly recurrenceCustomWeekly: "Custom weekly";
|
|
134
|
+
readonly weekdaysLabel: "Days of the week";
|
|
135
|
+
readonly daysRequired: "Select at least one day.";
|
|
136
|
+
readonly summaryCustomWeekly: "Every {{day}} at {{time}}";
|
|
130
137
|
readonly summaryInterval: "Every {{minutes}} min";
|
|
131
138
|
readonly summaryManual: "Manual only";
|
|
132
139
|
readonly timezoneSuffix: "({{timezone}})";
|
|
@@ -185,6 +192,7 @@ export declare const scheduledEn: {
|
|
|
185
192
|
readonly runStatusNeedsAttention: "Needs attention";
|
|
186
193
|
readonly runStatusCompleted: "Completed";
|
|
187
194
|
readonly runStatusFailed: "Failed";
|
|
195
|
+
readonly runStatusStoppedEarly: "Stopped early";
|
|
188
196
|
readonly runNeedsAttentionHint: "Waiting for your input.";
|
|
189
197
|
readonly manualRun: "Manual run";
|
|
190
198
|
readonly manualRunPaused: "Manual run while paused";
|
|
@@ -334,10 +342,12 @@ export declare const scheduledEs: {
|
|
|
334
342
|
sharedConflict: string;
|
|
335
343
|
sharedReadOnly: string;
|
|
336
344
|
templateUnavailable: string;
|
|
345
|
+
sharedOwnerUnavailable: string;
|
|
337
346
|
cliReconnectRequired: string;
|
|
338
347
|
deliveryFailed: string;
|
|
339
348
|
cliUnavailable: string;
|
|
340
349
|
emailNotPrepared: string;
|
|
350
|
+
runIncomplete: string;
|
|
341
351
|
viewTitle: string;
|
|
342
352
|
subtitle: string;
|
|
343
353
|
newTask: string;
|
|
@@ -350,6 +360,7 @@ export declare const scheduledEs: {
|
|
|
350
360
|
loading: string;
|
|
351
361
|
empty: string;
|
|
352
362
|
emptyHint: string;
|
|
363
|
+
emptyProjectHint: string;
|
|
353
364
|
noResults: string;
|
|
354
365
|
loadError: string;
|
|
355
366
|
loadMore: string;
|
|
@@ -404,6 +415,10 @@ export declare const scheduledEs: {
|
|
|
404
415
|
summaryDaily: string;
|
|
405
416
|
summaryWeekdays: string;
|
|
406
417
|
summaryWeekly: string;
|
|
418
|
+
recurrenceCustomWeekly: string;
|
|
419
|
+
weekdaysLabel: string;
|
|
420
|
+
daysRequired: string;
|
|
421
|
+
summaryCustomWeekly: string;
|
|
407
422
|
summaryInterval: string;
|
|
408
423
|
summaryManual: string;
|
|
409
424
|
timezoneSuffix: string;
|
|
@@ -462,6 +477,7 @@ export declare const scheduledEs: {
|
|
|
462
477
|
runStatusNeedsAttention: string;
|
|
463
478
|
runStatusCompleted: string;
|
|
464
479
|
runStatusFailed: string;
|
|
480
|
+
runStatusStoppedEarly: string;
|
|
465
481
|
runNeedsAttentionHint: string;
|
|
466
482
|
manualRun: string;
|
|
467
483
|
manualRunPaused: string;
|
|
@@ -611,10 +627,12 @@ export declare const scheduledPt: {
|
|
|
611
627
|
sharedConflict: string;
|
|
612
628
|
sharedReadOnly: string;
|
|
613
629
|
templateUnavailable: string;
|
|
630
|
+
sharedOwnerUnavailable: string;
|
|
614
631
|
cliReconnectRequired: string;
|
|
615
632
|
deliveryFailed: string;
|
|
616
633
|
cliUnavailable: string;
|
|
617
634
|
emailNotPrepared: string;
|
|
635
|
+
runIncomplete: string;
|
|
618
636
|
viewTitle: string;
|
|
619
637
|
subtitle: string;
|
|
620
638
|
newTask: string;
|
|
@@ -627,6 +645,7 @@ export declare const scheduledPt: {
|
|
|
627
645
|
loading: string;
|
|
628
646
|
empty: string;
|
|
629
647
|
emptyHint: string;
|
|
648
|
+
emptyProjectHint: string;
|
|
630
649
|
noResults: string;
|
|
631
650
|
loadError: string;
|
|
632
651
|
loadMore: string;
|
|
@@ -681,6 +700,10 @@ export declare const scheduledPt: {
|
|
|
681
700
|
summaryDaily: string;
|
|
682
701
|
summaryWeekdays: string;
|
|
683
702
|
summaryWeekly: string;
|
|
703
|
+
recurrenceCustomWeekly: string;
|
|
704
|
+
weekdaysLabel: string;
|
|
705
|
+
daysRequired: string;
|
|
706
|
+
summaryCustomWeekly: string;
|
|
684
707
|
summaryInterval: string;
|
|
685
708
|
summaryManual: string;
|
|
686
709
|
timezoneSuffix: string;
|
|
@@ -739,6 +762,7 @@ export declare const scheduledPt: {
|
|
|
739
762
|
runStatusNeedsAttention: string;
|
|
740
763
|
runStatusCompleted: string;
|
|
741
764
|
runStatusFailed: string;
|
|
765
|
+
runStatusStoppedEarly: string;
|
|
742
766
|
runNeedsAttentionHint: string;
|
|
743
767
|
manualRun: string;
|
|
744
768
|
manualRunPaused: string;
|
|
@@ -888,10 +912,12 @@ export declare const scheduledIt: {
|
|
|
888
912
|
sharedConflict: string;
|
|
889
913
|
sharedReadOnly: string;
|
|
890
914
|
templateUnavailable: string;
|
|
915
|
+
sharedOwnerUnavailable: string;
|
|
891
916
|
cliReconnectRequired: string;
|
|
892
917
|
deliveryFailed: string;
|
|
893
918
|
cliUnavailable: string;
|
|
894
919
|
emailNotPrepared: string;
|
|
920
|
+
runIncomplete: string;
|
|
895
921
|
viewTitle: string;
|
|
896
922
|
subtitle: string;
|
|
897
923
|
newTask: string;
|
|
@@ -904,6 +930,7 @@ export declare const scheduledIt: {
|
|
|
904
930
|
loading: string;
|
|
905
931
|
empty: string;
|
|
906
932
|
emptyHint: string;
|
|
933
|
+
emptyProjectHint: string;
|
|
907
934
|
noResults: string;
|
|
908
935
|
loadError: string;
|
|
909
936
|
loadMore: string;
|
|
@@ -958,6 +985,10 @@ export declare const scheduledIt: {
|
|
|
958
985
|
summaryDaily: string;
|
|
959
986
|
summaryWeekdays: string;
|
|
960
987
|
summaryWeekly: string;
|
|
988
|
+
recurrenceCustomWeekly: string;
|
|
989
|
+
weekdaysLabel: string;
|
|
990
|
+
daysRequired: string;
|
|
991
|
+
summaryCustomWeekly: string;
|
|
961
992
|
summaryInterval: string;
|
|
962
993
|
summaryManual: string;
|
|
963
994
|
timezoneSuffix: string;
|
|
@@ -1016,6 +1047,7 @@ export declare const scheduledIt: {
|
|
|
1016
1047
|
runStatusNeedsAttention: string;
|
|
1017
1048
|
runStatusCompleted: string;
|
|
1018
1049
|
runStatusFailed: string;
|
|
1050
|
+
runStatusStoppedEarly: string;
|
|
1019
1051
|
runNeedsAttentionHint: string;
|
|
1020
1052
|
manualRun: string;
|
|
1021
1053
|
manualRunPaused: string;
|
|
@@ -18,8 +18,12 @@ export declare const settingsEn: {
|
|
|
18
18
|
usageDescription: string;
|
|
19
19
|
about: string;
|
|
20
20
|
aboutDescription: string;
|
|
21
|
+
secrets: string;
|
|
22
|
+
secretsDescription: string;
|
|
21
23
|
apiKeys: string;
|
|
22
24
|
apiKeysDescription: string;
|
|
25
|
+
guide: string;
|
|
26
|
+
guideDescription: string;
|
|
23
27
|
apiKeysName: string;
|
|
24
28
|
apiKeysCreate: string;
|
|
25
29
|
apiKeysRevoke: string;
|
|
@@ -82,8 +86,12 @@ export declare const settingsEs: {
|
|
|
82
86
|
usageDescription: string;
|
|
83
87
|
about: string;
|
|
84
88
|
aboutDescription: string;
|
|
89
|
+
secrets: string;
|
|
90
|
+
secretsDescription: string;
|
|
85
91
|
apiKeys: string;
|
|
86
92
|
apiKeysDescription: string;
|
|
93
|
+
guide: string;
|
|
94
|
+
guideDescription: string;
|
|
87
95
|
apiKeysName: string;
|
|
88
96
|
apiKeysCreate: string;
|
|
89
97
|
apiKeysRevoke: string;
|
|
@@ -146,8 +154,12 @@ export declare const settingsPt: {
|
|
|
146
154
|
usageDescription: string;
|
|
147
155
|
about: string;
|
|
148
156
|
aboutDescription: string;
|
|
157
|
+
secrets: string;
|
|
158
|
+
secretsDescription: string;
|
|
149
159
|
apiKeys: string;
|
|
150
160
|
apiKeysDescription: string;
|
|
161
|
+
guide: string;
|
|
162
|
+
guideDescription: string;
|
|
151
163
|
apiKeysName: string;
|
|
152
164
|
apiKeysCreate: string;
|
|
153
165
|
apiKeysRevoke: string;
|
|
@@ -210,8 +222,12 @@ export declare const settingsIt: {
|
|
|
210
222
|
usageDescription: string;
|
|
211
223
|
about: string;
|
|
212
224
|
aboutDescription: string;
|
|
225
|
+
secrets: string;
|
|
226
|
+
secretsDescription: string;
|
|
213
227
|
apiKeys: string;
|
|
214
228
|
apiKeysDescription: string;
|
|
229
|
+
guide: string;
|
|
230
|
+
guideDescription: string;
|
|
215
231
|
apiKeysName: string;
|
|
216
232
|
apiKeysCreate: string;
|
|
217
233
|
apiKeysRevoke: string;
|
|
@@ -208,6 +208,7 @@ export declare const streamEn: {
|
|
|
208
208
|
readonly reconnectingBadge: "reconnecting";
|
|
209
209
|
readonly incompleteTask: "Paused — unfinished";
|
|
210
210
|
readonly resumingAfterPause: "Taking longer than expected — picking it back up…";
|
|
211
|
+
readonly answerBlocked: "That answer was blocked before it finished. You can start a new conversation. If it keeps happening, contact support.";
|
|
211
212
|
readonly open: "Open";
|
|
212
213
|
readonly reconnectRateLimited: "{{provider}} is busy — trying again automatically in {{seconds}}s.";
|
|
213
214
|
readonly reconnectRateLimitedStill: "{{provider}} is still busy. We'll keep trying on our own.";
|
|
@@ -412,6 +413,7 @@ export declare const streamEs: {
|
|
|
412
413
|
reconnectingBadge: string;
|
|
413
414
|
incompleteTask: string;
|
|
414
415
|
resumingAfterPause: string;
|
|
416
|
+
answerBlocked: string;
|
|
415
417
|
open: string;
|
|
416
418
|
reconnectRateLimited: string;
|
|
417
419
|
reconnectRateLimitedStill: string;
|
|
@@ -616,6 +618,7 @@ export declare const streamPt: {
|
|
|
616
618
|
reconnectingBadge: string;
|
|
617
619
|
incompleteTask: string;
|
|
618
620
|
resumingAfterPause: string;
|
|
621
|
+
answerBlocked: string;
|
|
619
622
|
open: string;
|
|
620
623
|
reconnectRateLimited: string;
|
|
621
624
|
reconnectRateLimitedStill: string;
|
|
@@ -820,6 +823,7 @@ export declare const streamIt: {
|
|
|
820
823
|
reconnectingBadge: string;
|
|
821
824
|
incompleteTask: string;
|
|
822
825
|
resumingAfterPause: string;
|
|
826
|
+
answerBlocked: string;
|
|
823
827
|
open: string;
|
|
824
828
|
reconnectRateLimited: string;
|
|
825
829
|
reconnectRateLimitedStill: string;
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
export declare const vaultEn: {
|
|
2
|
+
readonly vault: {
|
|
3
|
+
readonly title: "Secrets";
|
|
4
|
+
readonly description: "Save credentials for your own use across workspaces. Only their names and references are shown to the agent.";
|
|
5
|
+
readonly add: "Add secret";
|
|
6
|
+
readonly empty: "No secrets saved.";
|
|
7
|
+
readonly loading: "Loading secrets…";
|
|
8
|
+
readonly unavailable: "Secrets are unavailable here. Remove credentials from your message before sending.";
|
|
9
|
+
readonly name: "Name";
|
|
10
|
+
readonly nameHint: "Use lowercase letters, numbers and hyphens. Names cannot be changed.";
|
|
11
|
+
readonly kind: "Kind";
|
|
12
|
+
readonly apiKey: "API key";
|
|
13
|
+
readonly pem: "PEM private key";
|
|
14
|
+
readonly value: "Secret value";
|
|
15
|
+
readonly save: "Save";
|
|
16
|
+
readonly saveSecret: "Save secret";
|
|
17
|
+
readonly captureHint: "Secret detected. Save it securely; only its reference will be included in your message.";
|
|
18
|
+
readonly saving: "Saving…";
|
|
19
|
+
readonly cancel: "Cancel";
|
|
20
|
+
readonly replace: "Replace value";
|
|
21
|
+
readonly delete: "Delete";
|
|
22
|
+
readonly deleteConfirm: "Delete {{name}}? Commands using this reference will no longer work.";
|
|
23
|
+
readonly nameTaken: "That name is already in use.";
|
|
24
|
+
readonly notFound: "This secret no longer exists. Refresh and try again.";
|
|
25
|
+
readonly invalidInput: "Check the name and secret value.";
|
|
26
|
+
readonly requestFailed: "Could not update secrets. Try again.";
|
|
27
|
+
readonly forbidden: "You do not have access to secrets.";
|
|
28
|
+
readonly pasteBlocked: "This text looks like a credential. Remove it from your message and save it as a secret.";
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
export declare const vaultEs: {
|
|
32
|
+
vault: {
|
|
33
|
+
title: string;
|
|
34
|
+
description: string;
|
|
35
|
+
add: string;
|
|
36
|
+
empty: string;
|
|
37
|
+
loading: string;
|
|
38
|
+
unavailable: string;
|
|
39
|
+
name: string;
|
|
40
|
+
nameHint: string;
|
|
41
|
+
kind: string;
|
|
42
|
+
apiKey: string;
|
|
43
|
+
pem: string;
|
|
44
|
+
value: string;
|
|
45
|
+
save: string;
|
|
46
|
+
saveSecret: string;
|
|
47
|
+
captureHint: string;
|
|
48
|
+
saving: string;
|
|
49
|
+
cancel: string;
|
|
50
|
+
replace: string;
|
|
51
|
+
delete: string;
|
|
52
|
+
deleteConfirm: string;
|
|
53
|
+
nameTaken: string;
|
|
54
|
+
notFound: string;
|
|
55
|
+
invalidInput: string;
|
|
56
|
+
requestFailed: string;
|
|
57
|
+
forbidden: string;
|
|
58
|
+
pasteBlocked: string;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
export declare const vaultPt: {
|
|
62
|
+
vault: {
|
|
63
|
+
title: string;
|
|
64
|
+
description: string;
|
|
65
|
+
add: string;
|
|
66
|
+
empty: string;
|
|
67
|
+
loading: string;
|
|
68
|
+
unavailable: string;
|
|
69
|
+
name: string;
|
|
70
|
+
nameHint: string;
|
|
71
|
+
kind: string;
|
|
72
|
+
apiKey: string;
|
|
73
|
+
pem: string;
|
|
74
|
+
value: string;
|
|
75
|
+
save: string;
|
|
76
|
+
saveSecret: string;
|
|
77
|
+
captureHint: string;
|
|
78
|
+
saving: string;
|
|
79
|
+
cancel: string;
|
|
80
|
+
replace: string;
|
|
81
|
+
delete: string;
|
|
82
|
+
deleteConfirm: string;
|
|
83
|
+
nameTaken: string;
|
|
84
|
+
notFound: string;
|
|
85
|
+
invalidInput: string;
|
|
86
|
+
requestFailed: string;
|
|
87
|
+
forbidden: string;
|
|
88
|
+
pasteBlocked: string;
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
export declare const vaultIt: {
|
|
92
|
+
vault: {
|
|
93
|
+
title: string;
|
|
94
|
+
description: string;
|
|
95
|
+
add: string;
|
|
96
|
+
empty: string;
|
|
97
|
+
loading: string;
|
|
98
|
+
unavailable: string;
|
|
99
|
+
name: string;
|
|
100
|
+
nameHint: string;
|
|
101
|
+
kind: string;
|
|
102
|
+
apiKey: string;
|
|
103
|
+
pem: string;
|
|
104
|
+
value: string;
|
|
105
|
+
save: string;
|
|
106
|
+
saveSecret: string;
|
|
107
|
+
captureHint: string;
|
|
108
|
+
saving: string;
|
|
109
|
+
cancel: string;
|
|
110
|
+
replace: string;
|
|
111
|
+
delete: string;
|
|
112
|
+
deleteConfirm: string;
|
|
113
|
+
nameTaken: string;
|
|
114
|
+
notFound: string;
|
|
115
|
+
invalidInput: string;
|
|
116
|
+
requestFailed: string;
|
|
117
|
+
forbidden: string;
|
|
118
|
+
pasteBlocked: string;
|
|
119
|
+
};
|
|
120
|
+
};
|
|
@@ -2,5 +2,6 @@ import { TabRole } from './tab-leadership.ts';
|
|
|
2
2
|
/** The persisted server id replaces a new Session's per-tab placeholder. */
|
|
3
3
|
export declare const useTabLeadership: (chatId: string) => {
|
|
4
4
|
readonly role: TabRole;
|
|
5
|
+
readonly ownedElsewhere: boolean;
|
|
5
6
|
readonly requestControl: () => void;
|
|
6
7
|
};
|
|
@@ -39,6 +39,11 @@ export declare const refreshNewestHistoryPage: (client: QueryClient, scope: Hist
|
|
|
39
39
|
* and not marked stale by a turn that finished since.
|
|
40
40
|
*/
|
|
41
41
|
export declare const peekNewestHistoryPage: (client: QueryClient, scope: HistoryScope) => LoadedHistoryPage | null;
|
|
42
|
+
/**
|
|
43
|
+
* A session this dock just created has no turns, so its newest page is known
|
|
44
|
+
* without asking. Opening it paints at once, with no spinner and no read.
|
|
45
|
+
*/
|
|
46
|
+
export declare const seedEmptyNewestHistoryPage: (client: QueryClient, scope: HistoryScope) => void;
|
|
42
47
|
/** A turn finished: the cached newest page no longer holds the chat's end. */
|
|
43
48
|
export declare const markNewestHistoryPageStale: (client: QueryClient, scope: HistoryScope) => void;
|
|
44
49
|
/** Drop every cached page of one chat (deleted), in any workspace. */
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { AnswerQuestionResult } from '../../api/questions.ts';
|
|
2
|
+
import { BelongUIMessage, ChoiceRequestData } from '../../stream/belong-data-parts.ts';
|
|
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).
|
|
9
|
+
*/
|
|
10
|
+
export declare const patchChoicePart: (messages: readonly BelongUIMessage[], resolved: ChoiceRequestData) => BelongUIMessage[];
|
|
11
|
+
/**
|
|
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).
|
|
17
|
+
*/
|
|
18
|
+
export declare const cancelPendingQuestion: (messages: readonly BelongUIMessage[]) => BelongUIMessage[];
|
|
19
|
+
/**
|
|
20
|
+
* Plan 013 — the part as the server's 409 says it settled: the row of record
|
|
21
|
+
* (another tab's answer / reply, a Stop's `cancelled`, a dismissal), which is
|
|
22
|
+
* what a reload would show — never an `answered` synthesised from nothing.
|
|
23
|
+
*/
|
|
24
|
+
export declare const rowOfRecord: (question: ChoiceRequestData, settled: Extract<AnswerQuestionResult, {
|
|
25
|
+
reason: "already_resolved";
|
|
26
|
+
}>) => ChoiceRequestData;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { BelongChatTransport } from '../../stream/belong-chat-transport.ts';
|
|
3
|
+
import { QuotaNoticeData } from '../../stream/belong-data-parts.ts';
|
|
4
|
+
import { QueuedMessageOutboxEntry } from '../../stream/queued-message-outbox.ts';
|
|
5
|
+
declare const postMessageResponseSchema: z.ZodObject<{
|
|
6
|
+
messageId: z.ZodString;
|
|
7
|
+
taskId: z.ZodString;
|
|
8
|
+
runId: z.ZodString;
|
|
9
|
+
idempotent: z.ZodBoolean;
|
|
10
|
+
}, z.core.$strip>;
|
|
11
|
+
type QueuedMessageAccepted = z.infer<typeof postMessageResponseSchema> & {
|
|
12
|
+
readonly kind: "accepted";
|
|
13
|
+
};
|
|
14
|
+
export type QueuedMessagePostOwner = {
|
|
15
|
+
readonly kind: "queued-message-post-owner";
|
|
16
|
+
};
|
|
17
|
+
export declare const releaseQueuedMessagePostOwner: (owner: QueuedMessagePostOwner) => void;
|
|
18
|
+
export declare const persistAndPostQueuedMessage: (apiBaseUrl: string, entry: QueuedMessageOutboxEntry, owner: QueuedMessagePostOwner, onFailure: () => void, onAccepted?: (result: QueuedMessageAccepted) => void, onQuotaRefused?: (notice: QuotaNoticeData) => void) => void;
|
|
19
|
+
export declare const persistNewQueuedMessage: (apiBaseUrl: string, entry: QueuedMessageOutboxEntry, owner: QueuedMessagePostOwner, replayedIds: Set<string>, onFailure: () => void, onQuotaRefused: (notice: QuotaNoticeData) => void, timingTransport?: BelongChatTransport) => void;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BelongUIMessage, QuotaNoticeData } from '../../stream/belong-data-parts.ts';
|
|
2
|
+
export type QueuedMessage = {
|
|
3
|
+
readonly clientId: string;
|
|
4
|
+
readonly text: string;
|
|
5
|
+
readonly submittedAt: number;
|
|
6
|
+
} & ({
|
|
7
|
+
readonly state: "queued" | "failed";
|
|
8
|
+
} | {
|
|
9
|
+
readonly state: "quota_refused";
|
|
10
|
+
readonly notice: QuotaNoticeData;
|
|
11
|
+
});
|
|
12
|
+
export declare const queuedTurnHasReply: (history: readonly BelongUIMessage[], text: string) => boolean;
|
|
13
|
+
export declare const dropQueuedLandedIn: (history: readonly BelongUIMessage[]) => (prev: readonly QueuedMessage[]) => readonly QueuedMessage[];
|
|
14
|
+
export declare const markQueuedFailed: (clientId: string) => (prev: readonly QueuedMessage[]) => readonly QueuedMessage[];
|
|
15
|
+
export declare const markQueuedQuotaRefused: (clientId: string, notice: QuotaNoticeData) => (prev: readonly QueuedMessage[]) => readonly QueuedMessage[];
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ActiveRunLookup } from './use-catch-up-on-return.ts';
|
|
3
|
+
import { BelongChatTransport, RecalledQueuedMessage } from '../../stream/belong-chat-transport.ts';
|
|
4
|
+
type SessionApiResult = {
|
|
5
|
+
readonly ok: true;
|
|
6
|
+
readonly body: unknown;
|
|
7
|
+
} | {
|
|
8
|
+
readonly ok: false;
|
|
9
|
+
readonly status: number | null;
|
|
10
|
+
readonly body: unknown;
|
|
11
|
+
};
|
|
12
|
+
export declare const sessionApiFetch: (apiBaseUrl: string, sessionId: string, path: "messages" | "compact" | "clear" | "active-run", init?: RequestInit, query?: URLSearchParams) => Promise<SessionApiResult>;
|
|
13
|
+
declare const activeRunResponseSchema: z.ZodUnion<readonly [z.ZodNull, z.ZodObject<{
|
|
14
|
+
runId: z.ZodString;
|
|
15
|
+
status: z.ZodEnum<{
|
|
16
|
+
queued: "queued";
|
|
17
|
+
waiting_for_approval: "waiting_for_approval";
|
|
18
|
+
running: "running";
|
|
19
|
+
waiting_for_user: "waiting_for_user";
|
|
20
|
+
waiting_for_ui_action: "waiting_for_ui_action";
|
|
21
|
+
recovering: "recovering";
|
|
22
|
+
cancelling: "cancelling";
|
|
23
|
+
}>;
|
|
24
|
+
}, z.core.$strip>]>;
|
|
25
|
+
type ActiveRunInfo = z.infer<typeof activeRunResponseSchema>;
|
|
26
|
+
export declare const loadActiveRun: (apiBaseUrl: string, sessionId: string) => Promise<ActiveRunInfo>;
|
|
27
|
+
export declare const lookUpActiveRun: (apiBaseUrl: string, sessionId: string) => Promise<ActiveRunLookup>;
|
|
28
|
+
export declare const cancelRunForStop: (input: {
|
|
29
|
+
readonly apiBaseUrl: string;
|
|
30
|
+
readonly transport: BelongChatTransport;
|
|
31
|
+
readonly runId: string | null;
|
|
32
|
+
readonly sessionId: string | null;
|
|
33
|
+
}) => Promise<readonly RecalledQueuedMessage[]>;
|
|
34
|
+
type CompactOutcome = {
|
|
35
|
+
readonly status: "compacted";
|
|
36
|
+
readonly messagesCompacted: number;
|
|
37
|
+
} | {
|
|
38
|
+
readonly status: "noop";
|
|
39
|
+
} | {
|
|
40
|
+
readonly status: "busy";
|
|
41
|
+
} | {
|
|
42
|
+
readonly status: "error";
|
|
43
|
+
};
|
|
44
|
+
export declare const compactSession: (apiBaseUrl: string, sessionId: string) => Promise<CompactOutcome>;
|
|
45
|
+
export declare const compactNoticeText: (outcome: CompactOutcome) => string;
|
|
46
|
+
type ClearOutcome = {
|
|
47
|
+
readonly status: "cleared";
|
|
48
|
+
} | {
|
|
49
|
+
readonly status: "error";
|
|
50
|
+
};
|
|
51
|
+
export declare const clearSession: (apiBaseUrl: string, sessionId: string) => Promise<ClearOutcome>;
|
|
52
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { QueryClient } from '@tanstack/react-query';
|
|
2
|
+
import { HistoryPageResult, HistoryScope } from './history-cache.ts';
|
|
3
|
+
export declare const loadSessionHistory: (apiBaseUrl: string, sessionId: string, before?: string) => Promise<HistoryPageResult>;
|
|
4
|
+
/**
|
|
5
|
+
* Read a chat's newest page ahead of opening it (the Chats list's
|
|
6
|
+
* `SessionIntentContext`), so it opens painted from the cache. A chat kept
|
|
7
|
+
* live needs no read; a page read in the last 30 s is not read again.
|
|
8
|
+
*/
|
|
9
|
+
export declare const prefetchChatHistory: (queryClient: QueryClient, apiBaseUrl: string, scope: HistoryScope) => void;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { BelongUIMessage } from '../../stream/belong-data-parts.ts';
|
|
2
|
+
import { LoadedHistoryPage } from './history-cache.ts';
|
|
3
|
+
import { HistoryPaging } from './history-paging.ts';
|
|
4
|
+
export type TranscriptEvent = {
|
|
5
|
+
readonly kind: "history_restored";
|
|
6
|
+
readonly page: LoadedHistoryPage;
|
|
7
|
+
readonly onScreen: readonly BelongUIMessage[];
|
|
8
|
+
} | {
|
|
9
|
+
readonly kind: "caught_up";
|
|
10
|
+
readonly page: LoadedHistoryPage;
|
|
11
|
+
readonly caughtUp: BelongUIMessage[];
|
|
12
|
+
} | {
|
|
13
|
+
readonly kind: "compacted";
|
|
14
|
+
readonly page: LoadedHistoryPage;
|
|
15
|
+
} | {
|
|
16
|
+
readonly kind: "quota_stopped";
|
|
17
|
+
readonly page: LoadedHistoryPage;
|
|
18
|
+
} | {
|
|
19
|
+
readonly kind: "queued_reply_landed";
|
|
20
|
+
readonly history: readonly BelongUIMessage[];
|
|
21
|
+
/** Asked when React applies the update: a Clear or a new turn may come first. */
|
|
22
|
+
readonly canApply: () => boolean;
|
|
23
|
+
} | {
|
|
24
|
+
readonly kind: "older_page_loaded";
|
|
25
|
+
readonly page: LoadedHistoryPage;
|
|
26
|
+
readonly expectedFirstId: string;
|
|
27
|
+
} | {
|
|
28
|
+
readonly kind: "cleared";
|
|
29
|
+
} | {
|
|
30
|
+
readonly kind: "unsaved_chat_cleared";
|
|
31
|
+
};
|
|
32
|
+
type CursorUpdate = {
|
|
33
|
+
readonly kind: "keep";
|
|
34
|
+
} | {
|
|
35
|
+
readonly kind: "set";
|
|
36
|
+
readonly id: string | null;
|
|
37
|
+
};
|
|
38
|
+
export type TranscriptUpdate = {
|
|
39
|
+
readonly messages: BelongUIMessage[] | ((current: BelongUIMessage[]) => BelongUIMessage[]);
|
|
40
|
+
readonly paging: HistoryPaging | ((paging: HistoryPaging) => HistoryPaging) | null;
|
|
41
|
+
readonly historyThrough: CursorUpdate;
|
|
42
|
+
readonly spokenThrough: CursorUpdate;
|
|
43
|
+
};
|
|
44
|
+
export declare const transcriptUpdateFor: (event: TranscriptEvent) => TranscriptUpdate;
|
|
45
|
+
export {};
|
|
@@ -66,5 +66,12 @@ export declare const useCatchUpOnReturn: (input: {
|
|
|
66
66
|
readonly controlRequestId?: number;
|
|
67
67
|
readonly prepareControl?: (sessionId: string) => Promise<void>;
|
|
68
68
|
readonly onControlReady?: (ready: boolean) => void;
|
|
69
|
+
/**
|
|
70
|
+
* This mount shows a session this tab created a moment ago. Its first
|
|
71
|
+
* promotion has nothing to catch up on, so writing is not held for the reads.
|
|
72
|
+
* Only the first: if control ever moves to another tab and back, this tab
|
|
73
|
+
* catches up like any other.
|
|
74
|
+
*/
|
|
75
|
+
readonly justCreated?: boolean;
|
|
69
76
|
readonly returnOptions?: Parameters<typeof useReturnToPage>[1];
|
|
70
77
|
}) => void;
|