@belonguniverseai/react-sdk 0.6.32 → 0.6.34
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 +1722 -125
- package/dist/api/computer.d.ts +60 -0
- package/dist/api/goals.d.ts +4 -4
- package/dist/api/proactive.d.ts +36 -0
- package/dist/api/query-keys.d.ts +3 -0
- 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-folders.d.ts +3 -3
- package/dist/api/task-schedule-projects.d.ts +5 -5
- package/dist/api/task-schedule-sharing.d.ts +13 -1
- package/dist/api/task-schedules.d.ts +60 -8
- package/dist/api/vault.d.ts +49 -0
- package/dist/app/dock-story-data.d.ts +7 -1
- package/dist/component/{abnfDiagram-N423BO3Z-Cs6vuzym.js → abnfDiagram-N423BO3Z-K52-wOfg.js} +4 -4
- package/dist/component/{architectureDiagram-T3A2C74G-BdBpK2d_.js → architectureDiagram-T3A2C74G-B64SrMLF.js} +6 -6
- package/dist/component/{blockDiagram-VBNYF7ZC-Cf6dsn1j.js → blockDiagram-VBNYF7ZC-B7Di5R1s.js} +8 -8
- package/dist/component/{c4Diagram-5PPSVZJV-Cxt2hfnn.js → c4Diagram-5PPSVZJV-ClDtA2m4.js} +4 -4
- package/dist/component/{channel-COtJQ6CP.js → channel-C6_lLEWW.js} +2 -2
- package/dist/component/{chunk-2GRJ4B5K-C14K2lKj.js → chunk-2GRJ4B5K-B07moQal.js} +2 -2
- package/dist/component/{chunk-3NCLNEKW-oHacP_OI.js → chunk-3NCLNEKW-TUF1Wrf6.js} +2 -2
- package/dist/component/{chunk-4I5QYGJK-CGOVqmKQ.js → chunk-4I5QYGJK-qY-_sgVE.js} +2 -2
- package/dist/component/{chunk-5RXB4S5H-CMJnmUzX.js → chunk-5RXB4S5H-BU0H_zl3.js} +6 -6
- package/dist/component/{chunk-6Q2QTUOP-B5ACmZa2.js → chunk-6Q2QTUOP-nIHNEMhm.js} +3 -3
- package/dist/component/{chunk-7Z6QIM7H-CSfSb_Xc.js → chunk-7Z6QIM7H-D7mHGFzt.js} +8 -8
- package/dist/component/{chunk-GF5L2VYU-xi_oDTd2.js → chunk-GF5L2VYU-uM1RliIa.js} +6 -6
- package/dist/component/{chunk-I66GZJ75-DB1sFGc-.js → chunk-I66GZJ75-oDyTlx3R.js} +2 -2
- package/dist/component/{chunk-J7OUQ5F2-DB9d7Gt_.js → chunk-J7OUQ5F2-c7iD4Gpa.js} +7 -7
- package/dist/component/{chunk-JQJVKLGR-De7zUJDv.js → chunk-JQJVKLGR-JeqFPv2A.js} +8 -8
- package/dist/component/{chunk-KBJHAD2P-CVoxmRa8.js → chunk-KBJHAD2P-DjQd-FIs.js} +2 -2
- package/dist/component/{chunk-NSK5VX7P-ur_ZGcVX.js → chunk-NSK5VX7P-Bq0sOWgd.js} +2 -2
- package/dist/component/{chunk-QR6OTTB3-Bl3Z_jKC.js → chunk-QR6OTTB3-DctDLVWm.js} +7 -7
- package/dist/component/{chunk-UBXNYLIW-CDKeQUnO.js → chunk-UBXNYLIW-Ka1R3omP.js} +3 -3
- package/dist/component/{chunk-W5SLKNZC-Dq8uD14N.js → chunk-W5SLKNZC-CI_OqVnD.js} +2 -2
- package/dist/component/{chunk-WRU74C26-BwQb4DnE.js → chunk-WRU74C26-BMkh1mHN.js} +4 -4
- package/dist/component/{classDiagram-JCYQIIEL-yl7JabGO.js → classDiagram-JCYQIIEL-C1E0BQye.js} +13 -13
- package/dist/component/{classDiagram-v2-OCEON4UE-ozBAEvyC.js → classDiagram-v2-OCEON4UE-hQKKIbDF.js} +13 -13
- package/dist/component/{component-DnTvWVQQ.js → component-B44aZ-1Z.js} +24455 -21767
- package/dist/component/{cynefinDiagram-MW4NZA55-fdKo3DVx.js → cynefinDiagram-MW4NZA55-0yefvDKM.js} +4 -4
- package/dist/component/{dagre-VZM6K2ZE-C7nAehQV.js → dagre-VZM6K2ZE-CBlt7UUF.js} +9 -9
- package/dist/component/{diagram-7IWD3JNH-DRM3Hv3P.js → diagram-7IWD3JNH-D0zEzayZ.js} +5 -5
- package/dist/component/{diagram-B4RE2ZJO-DXqATSZd.js → diagram-B4RE2ZJO-Dm2FX5kh.js} +3 -3
- package/dist/component/{diagram-LBJQPF4R-DJRJfBnF.js → diagram-LBJQPF4R-nQGWQGIp.js} +4 -4
- package/dist/component/{diagram-Q27KOJAE-B4cTzsYZ.js → diagram-Q27KOJAE-Co-Dq4kd.js} +6 -6
- package/dist/component/{diagram-UB23O5K3-CyUjYCbX.js → diagram-UB23O5K3-ClWS8vTp.js} +4 -4
- package/dist/component/{ebnfDiagram-BXEA7PRR-C6GS4eTe.js → ebnfDiagram-BXEA7PRR-Cq6K_q0O.js} +4 -4
- package/dist/component/{erDiagram-JOGREHBK-D8qt0_mW.js → erDiagram-JOGREHBK-DvPI-BqP.js} +12 -12
- package/dist/component/flowDiagram-UKHOOZJN-2MBQiA4G.js +19 -0
- package/dist/component/{ganttDiagram-PKOTCBZU-D6o-gloU.js → ganttDiagram-PKOTCBZU-DXzfT7Q5.js} +3 -3
- package/dist/component/{gitGraphDiagram-DS77QQ5N-Cz3kf7xj.js → gitGraphDiagram-DS77QQ5N-CMKpJJJ_.js} +3 -3
- package/dist/component/index.js +2 -2
- package/dist/component/{infoDiagram-6WML65LV-sdz8qoTE.js → infoDiagram-6WML65LV-Ck5rB_GF.js} +3 -3
- package/dist/component/{ishikawaDiagram-WSZJBQD7--tUiPVAr.js → ishikawaDiagram-WSZJBQD7-CHQxwGjK.js} +4 -4
- package/dist/component/{journeyDiagram-NVQOT4AX-_-TjqBid.js → journeyDiagram-NVQOT4AX-CnPVgyHk.js} +3 -3
- package/dist/component/{kanban-definition-27J2QSJJ-BXBySx2U.js → kanban-definition-27J2QSJJ-CC8oOHrI.js} +9 -9
- package/dist/component/{line-C2WkjBlg.js → line-AtEledwJ.js} +2 -2
- package/dist/component/{mindmap-definition-FAOFIHXS-CbpSDN_k.js → mindmap-definition-FAOFIHXS-WWI6yyUJ.js} +11 -11
- package/dist/component/{pegDiagram-VL7TDLO6-Cp_Wn0PS.js → pegDiagram-VL7TDLO6-D5NeC_IJ.js} +4 -4
- package/dist/component/{pieDiagram-7S7Q4E2Y-D6KGBWSF.js → pieDiagram-7S7Q4E2Y-M4MUAitH.js} +4 -4
- package/dist/component/{quadrantDiagram-CIZ2JOQS-BWjdUg-z.js → quadrantDiagram-CIZ2JOQS-viErJFsV.js} +2 -2
- package/dist/component/{railroadDiagram-AXF67PYL-B5iYZXm-.js → railroadDiagram-AXF67PYL-C8IhZ-59.js} +4 -4
- package/dist/component/{requirementDiagram-LRYGKXZP-CewRkYfE.js → requirementDiagram-LRYGKXZP-D1vdZzCs.js} +11 -11
- package/dist/component/{sankeyDiagram-W5VNT64P-D3Zb5dQ6.js → sankeyDiagram-W5VNT64P-Bl52MqzW.js} +2 -2
- package/dist/component/{sequenceDiagram-SI44F4Z6-BfxhjyrN.js → sequenceDiagram-SI44F4Z6-Cx-Aio7P.js} +4 -4
- package/dist/component/{stateDiagram-OKZ733FA-DLd9YI1A.js → stateDiagram-OKZ733FA-CHqMp3xm.js} +14 -14
- package/dist/component/{stateDiagram-v2-UEYNNEHI-Dd_FaBaY.js → stateDiagram-v2-UEYNNEHI-DqTLHDUB.js} +13 -13
- package/dist/component/{swimlanes-SLNWSIFB-C56sHJuV.js → swimlanes-SLNWSIFB-BkaXpBe5.js} +9 -9
- package/dist/component/{swimlanesDiagram-ULZ7WXOC-nHtka4qn.js → swimlanesDiagram-ULZ7WXOC-DyMFUKdr.js} +13 -13
- package/dist/component/{timeline-definition-Z64GVDOM-JYR_6zGi.js → timeline-definition-Z64GVDOM-Ba3A3s-L.js} +4 -4
- package/dist/component/{vennDiagram-T6HMQDX7-CEGGwXxv.js → vennDiagram-T6HMQDX7-4W_JJhIz.js} +4 -4
- package/dist/component/{wardleyDiagram-T6FBY63Y-zZGm618Q.js → wardleyDiagram-T6FBY63Y-CllyyQYm.js} +4 -4
- package/dist/component/{xychartDiagram-ELKLHX3M-BYbnWmqD.js → xychartDiagram-ELKLHX3M-DS3MPPul.js} +7 -7
- package/dist/components/embed/ComputerSettings.d.ts +7 -0
- package/dist/components/embed/EmbedRail.d.ts +15 -2
- package/dist/components/embed/EmbedSessions.d.ts +15 -2
- package/dist/components/embed/MobileNavBar.d.ts +4 -2
- package/dist/components/embed/NextStepCard.d.ts +6 -0
- package/dist/components/embed/ProactiveChecksSetting.d.ts +7 -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/embed/use-settings-owner-key.d.ts +15 -0
- package/dist/components/pinned/PinnedChatHeader.d.ts +9 -0
- package/dist/components/pinned/use-agent-name.d.ts +2 -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/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-cap-notice.d.ts +0 -9
- package/dist/embed/goal-edit-command.d.ts +6 -1
- package/dist/embed/pinned-chat.d.ts +34 -0
- 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/line-run-reader.d.ts +1 -1
- package/dist/embed/voice-call.d.ts +10 -1
- package/dist/i18n/messages/en.d.ts +135 -8
- package/dist/i18n/messages/surfaces/pinned.d.ts +76 -0
- package/dist/i18n/messages/surfaces/quota.d.ts +69 -0
- package/dist/i18n/messages/surfaces/scheduled.d.ts +69 -5
- package/dist/i18n/messages/surfaces/settings.d.ts +148 -0
- package/dist/i18n/messages/surfaces/stream.d.ts +56 -4
- 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/history-merge.d.ts +4 -1
- 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 +23 -11
- package/dist/stream/belong-data-parts.d.ts +31 -1
- package/dist/stream/pause-notice-copy.d.ts +3 -0
- package/dist/stream/provider-blocked.d.ts +16 -0
- package/dist/stream/reconnect-backoff.d.ts +39 -0
- package/dist/stream/run-error-copy.d.ts +25 -0
- package/dist/stream/stream-notice.d.ts +9 -0
- package/package.json +1 -1
- package/dist/component/flowDiagram-UKHOOZJN-U55NEBew.js +0 -19
|
@@ -206,8 +206,21 @@ export declare const streamEn: {
|
|
|
206
206
|
readonly reconnecting: "Reconnecting to Simetrik…";
|
|
207
207
|
};
|
|
208
208
|
readonly reconnectingBadge: "reconnecting";
|
|
209
|
-
readonly
|
|
209
|
+
readonly pauseOutputLimit: "Paused — this answer reached its length limit. Reply to continue.";
|
|
210
|
+
readonly pauseStepLimit: "Paused — this task reached its automatic work limit. Reply to continue.";
|
|
211
|
+
readonly pauseWatchdog: "Paused — a step stopped responding or ran out of time. Reply to continue.";
|
|
212
|
+
readonly pauseRepeatedFailure: "Paused — the same step kept failing. Reply with what to change.";
|
|
213
|
+
readonly pauseQuotaExceeded: "Paused — unfinished";
|
|
214
|
+
readonly pauseGeneric: "Paused before finishing. Reply to continue.";
|
|
210
215
|
readonly resumingAfterPause: "Taking longer than expected — picking it back up…";
|
|
216
|
+
readonly answerBlocked: "That answer was blocked before it finished. You can start a new conversation. If it keeps happening, contact support.";
|
|
217
|
+
readonly runErrorStoppedShort: "That answer stopped before it was finished. Ask again and it will pick up where it left off.";
|
|
218
|
+
readonly runErrorContextFull: "That answer stopped because this conversation has grown too long. Start a new chat to carry the work on there.";
|
|
219
|
+
readonly runErrorStepTooLong: "That step took too long, so it was stopped. Ask again to carry on.";
|
|
220
|
+
readonly runErrorConnectionRevoked: "A connection was turned off, so this stopped. Connect it again to continue.";
|
|
221
|
+
readonly runErrorGeneric: "Something went wrong and that answer couldn't finish. Ask again in a moment.";
|
|
222
|
+
readonly runCancelled: "Stopped";
|
|
223
|
+
readonly runThrottled: "Paused";
|
|
211
224
|
readonly open: "Open";
|
|
212
225
|
readonly reconnectRateLimited: "{{provider}} is busy — trying again automatically in {{seconds}}s.";
|
|
213
226
|
readonly reconnectRateLimitedStill: "{{provider}} is still busy. We'll keep trying on our own.";
|
|
@@ -410,8 +423,21 @@ export declare const streamEs: {
|
|
|
410
423
|
reconnecting: string;
|
|
411
424
|
};
|
|
412
425
|
reconnectingBadge: string;
|
|
413
|
-
|
|
426
|
+
pauseOutputLimit: string;
|
|
427
|
+
pauseStepLimit: string;
|
|
428
|
+
pauseWatchdog: string;
|
|
429
|
+
pauseRepeatedFailure: string;
|
|
430
|
+
pauseQuotaExceeded: string;
|
|
431
|
+
pauseGeneric: string;
|
|
414
432
|
resumingAfterPause: string;
|
|
433
|
+
answerBlocked: string;
|
|
434
|
+
runErrorStoppedShort: string;
|
|
435
|
+
runErrorContextFull: string;
|
|
436
|
+
runErrorStepTooLong: string;
|
|
437
|
+
runErrorConnectionRevoked: string;
|
|
438
|
+
runErrorGeneric: string;
|
|
439
|
+
runCancelled: string;
|
|
440
|
+
runThrottled: string;
|
|
415
441
|
open: string;
|
|
416
442
|
reconnectRateLimited: string;
|
|
417
443
|
reconnectRateLimitedStill: string;
|
|
@@ -614,8 +640,21 @@ export declare const streamPt: {
|
|
|
614
640
|
reconnecting: string;
|
|
615
641
|
};
|
|
616
642
|
reconnectingBadge: string;
|
|
617
|
-
|
|
643
|
+
pauseOutputLimit: string;
|
|
644
|
+
pauseStepLimit: string;
|
|
645
|
+
pauseWatchdog: string;
|
|
646
|
+
pauseRepeatedFailure: string;
|
|
647
|
+
pauseQuotaExceeded: string;
|
|
648
|
+
pauseGeneric: string;
|
|
618
649
|
resumingAfterPause: string;
|
|
650
|
+
answerBlocked: string;
|
|
651
|
+
runErrorStoppedShort: string;
|
|
652
|
+
runErrorContextFull: string;
|
|
653
|
+
runErrorStepTooLong: string;
|
|
654
|
+
runErrorConnectionRevoked: string;
|
|
655
|
+
runErrorGeneric: string;
|
|
656
|
+
runCancelled: string;
|
|
657
|
+
runThrottled: string;
|
|
619
658
|
open: string;
|
|
620
659
|
reconnectRateLimited: string;
|
|
621
660
|
reconnectRateLimitedStill: string;
|
|
@@ -818,8 +857,21 @@ export declare const streamIt: {
|
|
|
818
857
|
reconnecting: string;
|
|
819
858
|
};
|
|
820
859
|
reconnectingBadge: string;
|
|
821
|
-
|
|
860
|
+
pauseOutputLimit: string;
|
|
861
|
+
pauseStepLimit: string;
|
|
862
|
+
pauseWatchdog: string;
|
|
863
|
+
pauseRepeatedFailure: string;
|
|
864
|
+
pauseQuotaExceeded: string;
|
|
865
|
+
pauseGeneric: string;
|
|
822
866
|
resumingAfterPause: string;
|
|
867
|
+
answerBlocked: string;
|
|
868
|
+
runErrorStoppedShort: string;
|
|
869
|
+
runErrorContextFull: string;
|
|
870
|
+
runErrorStepTooLong: string;
|
|
871
|
+
runErrorConnectionRevoked: string;
|
|
872
|
+
runErrorGeneric: string;
|
|
873
|
+
runCancelled: string;
|
|
874
|
+
runThrottled: string;
|
|
823
875
|
open: string;
|
|
824
876
|
reconnectRateLimited: string;
|
|
825
877
|
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, token or password";
|
|
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. */
|
|
@@ -12,7 +12,10 @@ import { BelongUIMessage } from '../../stream/belong-data-parts.ts';
|
|
|
12
12
|
* live lines up too), then back over the earlier rows of the page.
|
|
13
13
|
*
|
|
14
14
|
* Dedupe prefers the row id, then the client id the row was sent with. A
|
|
15
|
-
* message with no id match yet falls back to `(role, flattened text)
|
|
15
|
+
* message with no id match yet falls back to `(role, flattened text)`; a live
|
|
16
|
+
* reply of a task whose rows nothing on screen lines up with folds into them
|
|
17
|
+
* when their text covers its own, and takes their place when it says more
|
|
18
|
+
* (`replyStanding`). Only
|
|
16
19
|
* the suffix AFTER the last server-known on-screen message can be local-only.
|
|
17
20
|
* Within that suffix, an assistant at the same next position as a durable
|
|
18
21
|
* assistant is the same historical turn with stream-vs-folded whitespace/part
|
|
@@ -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;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { UseChatHelpers } from '@ai-sdk/react';
|
|
2
|
+
import { NextStepSuggestion } from '../../api/suggestions.ts';
|
|
3
|
+
import { GoalStatus } from '../../api/goals.ts';
|
|
4
|
+
import { BelongUIMessage } from '../../stream/belong-data-parts.ts';
|
|
5
|
+
type ChatStatus = UseChatHelpers<BelongUIMessage>["status"];
|
|
6
|
+
export type UseNextStepSuggestionInput = {
|
|
7
|
+
readonly apiBaseUrl: string;
|
|
8
|
+
readonly sessionId: string | null;
|
|
9
|
+
readonly locale: string;
|
|
10
|
+
readonly status: ChatStatus;
|
|
11
|
+
readonly lastMessage: {
|
|
12
|
+
readonly role: string;
|
|
13
|
+
} | null;
|
|
14
|
+
readonly draftEmpty: boolean;
|
|
15
|
+
/** False when this tab cannot act on the session (follower tab, read-only run). */
|
|
16
|
+
readonly enabled: boolean;
|
|
17
|
+
};
|
|
18
|
+
export type UseNextStepSuggestion = {
|
|
19
|
+
readonly suggestion: NextStepSuggestion | null;
|
|
20
|
+
readonly dismiss: () => void;
|
|
21
|
+
/** Call before Stop: the turn about to end was cut short, so nothing is suggested for it. */
|
|
22
|
+
readonly suppressNextFinish: () => void;
|
|
23
|
+
};
|
|
24
|
+
export declare const useNextStepSuggestion: (input: UseNextStepSuggestionInput) => UseNextStepSuggestion;
|
|
25
|
+
/**
|
|
26
|
+
* The suggestion as the screen shows it: the card and the composer ghost read
|
|
27
|
+
* this one value, so they always agree. It yields to the two rows that already
|
|
28
|
+
* sit above the composer — an open question card is the agent's own ask, and a
|
|
29
|
+
* live goal's row is where the hand already is. A finished or cleared goal has
|
|
30
|
+
* no row, so it hides nothing.
|
|
31
|
+
*/
|
|
32
|
+
export declare const nextStepOnScreen: (suggestion: NextStepSuggestion | null, context: {
|
|
33
|
+
readonly questionOpen: boolean;
|
|
34
|
+
readonly goalStatus: GoalStatus | null;
|
|
35
|
+
}) => NextStepSuggestion | null;
|
|
36
|
+
/** The composer's ghost: the welcome question on a new chat, else the recommended reply. */
|
|
37
|
+
export declare const composerGhost: (welcome: string | null, nextStep: NextStepSuggestion | null) => string | null;
|
|
38
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { TFunction } from 'i18next';
|
|
2
|
+
import { QuotaRefusal } from '../../api/quota-refusal.ts';
|
|
3
|
+
import { BelongUIMessage } from '../../stream/belong-data-parts.ts';
|
|
4
|
+
/**
|
|
5
|
+
* Re-key the refused message's optimistic bubble to the server's id and
|
|
6
|
+
* append the notice. Pure and idempotent: a second application (a duplicate
|
|
7
|
+
* `onError`, a replayed refusal) changes nothing further.
|
|
8
|
+
*/
|
|
9
|
+
export declare const applyQuotaRefusal: (messages: readonly BelongUIMessage[], refusal: QuotaRefusal) => BelongUIMessage[];
|
|
10
|
+
/**
|
|
11
|
+
* What a finished assistant message says out loud (the live call and the
|
|
12
|
+
* speaker's batch TTS). A quota notice says the card's words: live it has no
|
|
13
|
+
* text part, and its history row's fallback text is never shown, so both
|
|
14
|
+
* renders speak the same sentence under the same id — spoken once, on time.
|
|
15
|
+
*/
|
|
16
|
+
export declare const assistantSpokenText: (message: BelongUIMessage, t: TFunction, locale: string) => string;
|
|
17
|
+
/**
|
|
18
|
+
* `handleQuotaError(error)` answers a quota refusal and reports `true`, or
|
|
19
|
+
* reports `false` and leaves the error to the caller's other paths. The
|
|
20
|
+
* chat's error state is cleared on a microtask: `useChat` calls `onError`
|
|
21
|
+
* BEFORE it parks `status: "error"`, and `clearError` is a no-op until then
|
|
22
|
+
* (the same deferral the goal refusal uses).
|
|
23
|
+
*/
|
|
24
|
+
export declare const useQuotaNotice: ({ setMessages, clearError, }: {
|
|
25
|
+
readonly setMessages: (update: (messages: BelongUIMessage[]) => BelongUIMessage[]) => void;
|
|
26
|
+
readonly clearError: () => void;
|
|
27
|
+
}) => {
|
|
28
|
+
readonly handleQuotaError: (error: unknown) => boolean;
|
|
29
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { BelongUIMessage } from '../../stream/belong-data-parts.ts';
|
|
2
|
+
import { HistoryPageResult } from './history-cache.ts';
|
|
3
|
+
export declare const signalQuotaStop: (sessionId: string) => void;
|
|
4
|
+
/**
|
|
5
|
+
* The newest quota-stop signal of the turn on screen, as a stable key, or
|
|
6
|
+
* `null`. Restored history is never a signal (it already carries its card),
|
|
7
|
+
* and the scan stops at the turn's user message.
|
|
8
|
+
*/
|
|
9
|
+
export declare const quotaStopSignalKey: (messages: readonly BelongUIMessage[]) => string | null;
|
|
10
|
+
export declare const useQuotaStopRefresh: ({ messages, idle, isBusy, resolveSessionId, refreshNewestHistory, applyHistoryPage, sleepMs, }: {
|
|
11
|
+
readonly messages: readonly BelongUIMessage[];
|
|
12
|
+
/** No turn is streaming into the chat right now (reactive; re-runs the hook). */
|
|
13
|
+
readonly idle: boolean;
|
|
14
|
+
/** Read at apply time: a turn is in flight or the transport holds a live stream. */
|
|
15
|
+
readonly isBusy: () => boolean;
|
|
16
|
+
/** The chat's session, read when a refresh starts and between attempts. */
|
|
17
|
+
readonly resolveSessionId: () => string | null;
|
|
18
|
+
readonly refreshNewestHistory: (sessionId: string) => Promise<HistoryPageResult>;
|
|
19
|
+
/** Merge the page into the conversation (the `/compact` merge). */
|
|
20
|
+
readonly applyHistoryPage: (page: Extract<HistoryPageResult, {
|
|
21
|
+
ok: true;
|
|
22
|
+
}>) => void;
|
|
23
|
+
/** Injectable delay (§25). */
|
|
24
|
+
readonly sleepMs?: (ms: number) => Promise<void>;
|
|
25
|
+
}) => {
|
|
26
|
+
readonly refreshForQuotaStop: () => void;
|
|
27
|
+
};
|
|
@@ -227,6 +227,12 @@ export type SessionGoalInput = {
|
|
|
227
227
|
* objective back to the composer through the SAME door
|
|
228
228
|
* `useGoalReceipt`'s follow-ups already use. */
|
|
229
229
|
readonly setDraft: (value: string) => void;
|
|
230
|
+
/**
|
|
231
|
+
* Console P1 — a resume or edit answered `budget_limited`: the monthly
|
|
232
|
+
* token quota may have stopped it, and the cell persisted an orange notice
|
|
233
|
+
* the chat reads from history (`use-quota-stop-refresh.ts`).
|
|
234
|
+
*/
|
|
235
|
+
readonly onGoalQuotaStop?: (() => void) | undefined;
|
|
230
236
|
};
|
|
231
237
|
export declare const useSessionGoal: (input: SessionGoalInput) => SessionGoalApi;
|
|
232
238
|
export {};
|
package/dist/routes/chat.d.ts
CHANGED
|
@@ -1,21 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
import { HistoryScope } from './chat/history-cache.ts';
|
|
3
|
-
export type QueuedMessage = {
|
|
4
|
-
readonly clientId: string;
|
|
5
|
-
readonly text: string;
|
|
6
|
-
readonly submittedAt: number;
|
|
7
|
-
readonly state: "queued" | "failed";
|
|
8
|
-
};
|
|
9
|
-
/**
|
|
10
|
-
* Read a chat's newest page ahead of opening it (the Chats list's
|
|
11
|
-
* `SessionIntentContext`), so it opens painted from the cache. A chat kept
|
|
12
|
-
* live needs no read; a page read in the last 30 s is not read again.
|
|
13
|
-
*/
|
|
14
|
-
export declare const prefetchChatHistory: (queryClient: QueryClient, apiBaseUrl: string, scope: HistoryScope) => void;
|
|
15
|
-
export declare const ChatRoute: ({ sessionId, draftId, reconcileBackgroundRun, onOpenGoalView, onOpenFilesView, projectRunReadOnly, }?: {
|
|
1
|
+
export declare const ChatRoute: ({ sessionId, draftId, reconcileBackgroundRun, sessionPending, justCreated, onOpenGoalView, onOpenFilesView, projectRunReadOnly, }?: {
|
|
16
2
|
readonly sessionId?: string;
|
|
17
3
|
readonly draftId?: string;
|
|
18
4
|
readonly reconcileBackgroundRun?: boolean;
|
|
5
|
+
/**
|
|
6
|
+
* The rail's "+" shows this new chat while its session is still being created
|
|
7
|
+
* (BelongDock remounts onto that session when it exists). Nothing may be
|
|
8
|
+
* written here until then: it would land outside the new agent.
|
|
9
|
+
*/
|
|
10
|
+
readonly sessionPending?: boolean;
|
|
11
|
+
/** This tab created the session a moment ago: it opens with nothing to catch up on. */
|
|
12
|
+
readonly justCreated?: boolean;
|
|
19
13
|
/** Put the Goal view on screen (the dock owns navigation — same path the
|
|
20
14
|
* header pill takes). Omitted in tests and stories, where the row's
|
|
21
15
|
* Details simply does nothing. */
|