@buoy-gg/ask-buoy 7.0.35 → 7.0.36
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/README.md +35 -8
- package/lib/commonjs/blocks/BlockRenderer.js +13 -1
- package/lib/commonjs/blocks/BlockRenderer.js.map +1 -1
- package/lib/commonjs/blocks/DataBlocks.js +126 -33
- package/lib/commonjs/blocks/DataBlocks.js.map +1 -1
- package/lib/commonjs/blocks/ExtraBlocks.js +12 -6
- package/lib/commonjs/blocks/ExtraBlocks.js.map +1 -1
- package/lib/commonjs/blocks/MediaBlocks.js +22 -6
- package/lib/commonjs/blocks/MediaBlocks.js.map +1 -1
- package/lib/commonjs/blocks/blockText.js +60 -0
- package/lib/commonjs/blocks/blockText.js.map +1 -0
- package/lib/commonjs/blocks/blockText.test.js +53 -0
- package/lib/commonjs/blocks/blockText.test.js.map +1 -0
- package/lib/commonjs/blocks/primitives.js +58 -2
- package/lib/commonjs/blocks/primitives.js.map +1 -1
- package/lib/commonjs/components/ApprovalCard.js +111 -7
- package/lib/commonjs/components/ApprovalCard.js.map +1 -1
- package/lib/commonjs/components/AskBuoyHeader.js +36 -4
- package/lib/commonjs/components/AskBuoyHeader.js.map +1 -1
- package/lib/commonjs/components/AskBuoyModal.js +160 -34
- package/lib/commonjs/components/AskBuoyModal.js.map +1 -1
- package/lib/commonjs/components/AskBuoySettings.js +50 -0
- package/lib/commonjs/components/AskBuoySettings.js.map +1 -1
- package/lib/commonjs/components/Composer.js +94 -14
- package/lib/commonjs/components/Composer.js.map +1 -1
- package/lib/commonjs/components/EmptyState.js +12 -5
- package/lib/commonjs/components/EmptyState.js.map +1 -1
- package/lib/commonjs/components/KeyboardPad.js +80 -0
- package/lib/commonjs/components/KeyboardPad.js.map +1 -0
- package/lib/commonjs/components/Markdown.js +148 -90
- package/lib/commonjs/components/Markdown.js.map +1 -1
- package/lib/commonjs/components/MessageList.js +339 -92
- package/lib/commonjs/components/MessageList.js.map +1 -1
- package/lib/commonjs/components/QueuedMessages.js +145 -0
- package/lib/commonjs/components/QueuedMessages.js.map +1 -0
- package/lib/commonjs/components/markdownParse.js +131 -0
- package/lib/commonjs/components/markdownParse.js.map +1 -0
- package/lib/commonjs/components/markdownParse.test.js +99 -0
- package/lib/commonjs/components/markdownParse.test.js.map +1 -0
- package/lib/commonjs/store/activityGroups.js +110 -0
- package/lib/commonjs/store/activityGroups.js.map +1 -0
- package/lib/commonjs/store/activityGroups.test.js +78 -0
- package/lib/commonjs/store/activityGroups.test.js.map +1 -0
- package/lib/commonjs/store/askBuoySettings.js +7 -2
- package/lib/commonjs/store/askBuoySettings.js.map +1 -1
- package/lib/commonjs/store/askBuoyStore.js +192 -10
- package/lib/commonjs/store/askBuoyStore.js.map +1 -1
- package/lib/commonjs/store/blockPlacement.js +64 -0
- package/lib/commonjs/store/blockPlacement.js.map +1 -0
- package/lib/commonjs/store/blockPlacement.test.js +123 -0
- package/lib/commonjs/store/blockPlacement.test.js.map +1 -0
- package/lib/commonjs/store/queue.test.js +150 -0
- package/lib/commonjs/store/queue.test.js.map +1 -0
- package/lib/commonjs/store/resetConversation.js +77 -0
- package/lib/commonjs/store/resetConversation.js.map +1 -0
- package/lib/commonjs/store/restorePending.test.js +63 -0
- package/lib/commonjs/store/restorePending.test.js.map +1 -0
- package/lib/commonjs/store/suggestions.js +54 -0
- package/lib/commonjs/store/suggestions.js.map +1 -0
- package/lib/commonjs/store/suggestions.test.js +58 -0
- package/lib/commonjs/store/suggestions.test.js.map +1 -0
- package/lib/commonjs/store/systemLine.test.js +77 -0
- package/lib/commonjs/store/systemLine.test.js.map +1 -0
- package/lib/commonjs/store/ticketPrompt.js +17 -0
- package/lib/commonjs/store/ticketPrompt.js.map +1 -0
- package/lib/commonjs/store/transcriptPersistence.js +92 -3
- package/lib/commonjs/store/transcriptPersistence.js.map +1 -1
- package/lib/commonjs/store/transcriptPersistence.test.js +148 -0
- package/lib/commonjs/store/transcriptPersistence.test.js.map +1 -1
- package/lib/commonjs/store/turnRendering.test.js +151 -0
- package/lib/commonjs/store/turnRendering.test.js.map +1 -0
- package/lib/commonjs/store/useAskBuoy.js +271 -49
- package/lib/commonjs/store/useAskBuoy.js.map +1 -1
- package/lib/commonjs/sync/askBuoySyncAdapter.js +25 -4
- package/lib/commonjs/sync/askBuoySyncAdapter.js.map +1 -1
- package/lib/module/blocks/BlockRenderer.js +13 -1
- package/lib/module/blocks/BlockRenderer.js.map +1 -1
- package/lib/module/blocks/DataBlocks.js +128 -35
- package/lib/module/blocks/DataBlocks.js.map +1 -1
- package/lib/module/blocks/ExtraBlocks.js +12 -6
- package/lib/module/blocks/ExtraBlocks.js.map +1 -1
- package/lib/module/blocks/MediaBlocks.js +22 -6
- package/lib/module/blocks/MediaBlocks.js.map +1 -1
- package/lib/module/blocks/blockText.js +55 -0
- package/lib/module/blocks/blockText.js.map +1 -0
- package/lib/module/blocks/blockText.test.js +53 -0
- package/lib/module/blocks/blockText.test.js.map +1 -0
- package/lib/module/blocks/primitives.js +58 -2
- package/lib/module/blocks/primitives.js.map +1 -1
- package/lib/module/components/ApprovalCard.js +113 -9
- package/lib/module/components/ApprovalCard.js.map +1 -1
- package/lib/module/components/AskBuoyHeader.js +37 -5
- package/lib/module/components/AskBuoyHeader.js.map +1 -1
- package/lib/module/components/AskBuoyModal.js +163 -37
- package/lib/module/components/AskBuoyModal.js.map +1 -1
- package/lib/module/components/AskBuoySettings.js +52 -2
- package/lib/module/components/AskBuoySettings.js.map +1 -1
- package/lib/module/components/Composer.js +95 -15
- package/lib/module/components/Composer.js.map +1 -1
- package/lib/module/components/EmptyState.js +12 -5
- package/lib/module/components/EmptyState.js.map +1 -1
- package/lib/module/components/KeyboardPad.js +75 -0
- package/lib/module/components/KeyboardPad.js.map +1 -0
- package/lib/module/components/Markdown.js +149 -90
- package/lib/module/components/Markdown.js.map +1 -1
- package/lib/module/components/MessageList.js +341 -94
- package/lib/module/components/MessageList.js.map +1 -1
- package/lib/module/components/QueuedMessages.js +140 -0
- package/lib/module/components/QueuedMessages.js.map +1 -0
- package/lib/module/components/markdownParse.js +125 -0
- package/lib/module/components/markdownParse.js.map +1 -0
- package/lib/module/components/markdownParse.test.js +98 -0
- package/lib/module/components/markdownParse.test.js.map +1 -0
- package/lib/module/store/activityGroups.js +103 -0
- package/lib/module/store/activityGroups.js.map +1 -0
- package/lib/module/store/activityGroups.test.js +77 -0
- package/lib/module/store/activityGroups.test.js.map +1 -0
- package/lib/module/store/askBuoySettings.js +7 -2
- package/lib/module/store/askBuoySettings.js.map +1 -1
- package/lib/module/store/askBuoyStore.js +190 -10
- package/lib/module/store/askBuoyStore.js.map +1 -1
- package/lib/module/store/blockPlacement.js +59 -0
- package/lib/module/store/blockPlacement.js.map +1 -0
- package/lib/module/store/blockPlacement.test.js +122 -0
- package/lib/module/store/blockPlacement.test.js.map +1 -0
- package/lib/module/store/queue.test.js +149 -0
- package/lib/module/store/queue.test.js.map +1 -0
- package/lib/module/store/resetConversation.js +72 -0
- package/lib/module/store/resetConversation.js.map +1 -0
- package/lib/module/store/restorePending.test.js +62 -0
- package/lib/module/store/restorePending.test.js.map +1 -0
- package/lib/module/store/suggestions.js +49 -0
- package/lib/module/store/suggestions.js.map +1 -0
- package/lib/module/store/suggestions.test.js +57 -0
- package/lib/module/store/suggestions.test.js.map +1 -0
- package/lib/module/store/systemLine.test.js +76 -0
- package/lib/module/store/systemLine.test.js.map +1 -0
- package/lib/module/store/ticketPrompt.js +13 -0
- package/lib/module/store/ticketPrompt.js.map +1 -0
- package/lib/module/store/transcriptPersistence.js +92 -3
- package/lib/module/store/transcriptPersistence.js.map +1 -1
- package/lib/module/store/transcriptPersistence.test.js +148 -0
- package/lib/module/store/transcriptPersistence.test.js.map +1 -1
- package/lib/module/store/turnRendering.test.js +150 -0
- package/lib/module/store/turnRendering.test.js.map +1 -0
- package/lib/module/store/useAskBuoy.js +275 -53
- package/lib/module/store/useAskBuoy.js.map +1 -1
- package/lib/module/sync/askBuoySyncAdapter.js +25 -4
- package/lib/module/sync/askBuoySyncAdapter.js.map +1 -1
- package/lib/typescript/blocks/BlockRenderer.d.ts.map +1 -1
- package/lib/typescript/blocks/DataBlocks.d.ts +11 -0
- package/lib/typescript/blocks/DataBlocks.d.ts.map +1 -1
- package/lib/typescript/blocks/ExtraBlocks.d.ts +18 -2
- package/lib/typescript/blocks/ExtraBlocks.d.ts.map +1 -1
- package/lib/typescript/blocks/MediaBlocks.d.ts.map +1 -1
- package/lib/typescript/blocks/blockText.d.ts +14 -0
- package/lib/typescript/blocks/blockText.d.ts.map +1 -0
- package/lib/typescript/blocks/blockText.test.d.ts +2 -0
- package/lib/typescript/blocks/blockText.test.d.ts.map +1 -0
- package/lib/typescript/blocks/primitives.d.ts +16 -1
- package/lib/typescript/blocks/primitives.d.ts.map +1 -1
- package/lib/typescript/components/ApprovalCard.d.ts.map +1 -1
- package/lib/typescript/components/AskBuoyHeader.d.ts +31 -1
- package/lib/typescript/components/AskBuoyHeader.d.ts.map +1 -1
- package/lib/typescript/components/AskBuoyModal.d.ts.map +1 -1
- package/lib/typescript/components/AskBuoySettings.d.ts.map +1 -1
- package/lib/typescript/components/Composer.d.ts +16 -1
- package/lib/typescript/components/Composer.d.ts.map +1 -1
- package/lib/typescript/components/EmptyState.d.ts +5 -1
- package/lib/typescript/components/EmptyState.d.ts.map +1 -1
- package/lib/typescript/components/KeyboardPad.d.ts +33 -0
- package/lib/typescript/components/KeyboardPad.d.ts.map +1 -0
- package/lib/typescript/components/Markdown.d.ts +0 -10
- package/lib/typescript/components/Markdown.d.ts.map +1 -1
- package/lib/typescript/components/MessageList.d.ts +7 -2
- package/lib/typescript/components/MessageList.d.ts.map +1 -1
- package/lib/typescript/components/QueuedMessages.d.ts +10 -0
- package/lib/typescript/components/QueuedMessages.d.ts.map +1 -0
- package/lib/typescript/components/markdownParse.d.ts +49 -0
- package/lib/typescript/components/markdownParse.d.ts.map +1 -0
- package/lib/typescript/components/markdownParse.test.d.ts +2 -0
- package/lib/typescript/components/markdownParse.test.d.ts.map +1 -0
- package/lib/typescript/store/activityGroups.d.ts +29 -0
- package/lib/typescript/store/activityGroups.d.ts.map +1 -0
- package/lib/typescript/store/activityGroups.test.d.ts +2 -0
- package/lib/typescript/store/activityGroups.test.d.ts.map +1 -0
- package/lib/typescript/store/askBuoySettings.d.ts +22 -0
- package/lib/typescript/store/askBuoySettings.d.ts.map +1 -1
- package/lib/typescript/store/askBuoyStore.d.ts +142 -5
- package/lib/typescript/store/askBuoyStore.d.ts.map +1 -1
- package/lib/typescript/store/blockPlacement.d.ts +30 -0
- package/lib/typescript/store/blockPlacement.d.ts.map +1 -0
- package/lib/typescript/store/blockPlacement.test.d.ts +2 -0
- package/lib/typescript/store/blockPlacement.test.d.ts.map +1 -0
- package/lib/typescript/store/queue.test.d.ts +2 -0
- package/lib/typescript/store/queue.test.d.ts.map +1 -0
- package/lib/typescript/store/resetConversation.d.ts +38 -0
- package/lib/typescript/store/resetConversation.d.ts.map +1 -0
- package/lib/typescript/store/restorePending.test.d.ts +2 -0
- package/lib/typescript/store/restorePending.test.d.ts.map +1 -0
- package/lib/typescript/store/suggestions.d.ts +32 -0
- package/lib/typescript/store/suggestions.d.ts.map +1 -0
- package/lib/typescript/store/suggestions.test.d.ts +2 -0
- package/lib/typescript/store/suggestions.test.d.ts.map +1 -0
- package/lib/typescript/store/systemLine.test.d.ts +2 -0
- package/lib/typescript/store/systemLine.test.d.ts.map +1 -0
- package/lib/typescript/store/ticketPrompt.d.ts +11 -0
- package/lib/typescript/store/ticketPrompt.d.ts.map +1 -0
- package/lib/typescript/store/transcriptPersistence.d.ts +41 -2
- package/lib/typescript/store/transcriptPersistence.d.ts.map +1 -1
- package/lib/typescript/store/turnRendering.test.d.ts +2 -0
- package/lib/typescript/store/turnRendering.test.d.ts.map +1 -0
- package/lib/typescript/store/useAskBuoy.d.ts +23 -1
- package/lib/typescript/store/useAskBuoy.d.ts.map +1 -1
- package/lib/typescript/sync/askBuoySyncAdapter.d.ts +26 -6
- package/lib/typescript/sync/askBuoySyncAdapter.d.ts.map +1 -1
- package/package.json +9 -9
|
@@ -14,14 +14,69 @@
|
|
|
14
14
|
* render, never a constant. A session that cached the tool list at open
|
|
15
15
|
* would offer the model tools that are no longer there.
|
|
16
16
|
*/
|
|
17
|
-
import { useCallback, useEffect, useMemo, useRef, useSyncExternalStore } from "react";
|
|
17
|
+
import { useCallback, useEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
|
|
18
18
|
import { Platform } from "react-native";
|
|
19
19
|
import { dispatchToolAction, listSnapshotToolIds, listToolActions, readToolSnapshot, waitForToolRegistry } from "@buoy-gg/shared-ui";
|
|
20
|
-
import { answerToText, CATALOG, createAskBuoySession, runGatedAction, SNAPSHOT_ACTION } from "@buoy-gg/agent-core";
|
|
21
|
-
import { askBuoyStore } from "./askBuoyStore";
|
|
22
|
-
import {
|
|
20
|
+
import { answerToText, CATALOG, createAskBuoySession, readTargetDigest, runGatedAction, SNAPSHOT_ACTION } from "@buoy-gg/agent-core";
|
|
21
|
+
import { askBuoyStore, queuePauseReason, turnPhaseOf } from "./askBuoyStore";
|
|
22
|
+
import { clearConversation, resetConversation } from "./resetConversation";
|
|
23
|
+
import { buildPayload, readTranscript, writeTranscript } from "./transcriptPersistence";
|
|
24
|
+
import { useAskBuoySettings } from "./useAskBuoySettings";
|
|
23
25
|
const isRelease = typeof __DEV__ !== "undefined" && !__DEV__;
|
|
24
26
|
|
|
27
|
+
/**
|
|
28
|
+
* What this device can dispatch, right now.
|
|
29
|
+
*
|
|
30
|
+
* `getSnapshot` is folded in because half of Buoy's read surface is not an
|
|
31
|
+
* action at all — console entries, network events, routes and env live only in
|
|
32
|
+
* the adapter's snapshot. Without it the model is offered a console tool whose
|
|
33
|
+
* sole action wipes the logs, and no way to read them.
|
|
34
|
+
*
|
|
35
|
+
* READ FRESH, never cached. Packages register over the first frames, and some
|
|
36
|
+
* only once the thing they wrap exists — route-events publishes its actions
|
|
37
|
+
* when the navigation container is up, long after this hook first runs. A
|
|
38
|
+
* snapshot taken at mount froze that: the agent was handed a route tool that
|
|
39
|
+
* could only `getSnapshot`, so asked to navigate it guessed three tool names
|
|
40
|
+
* that do not exist, spent 41 seconds, and told the user this build cannot
|
|
41
|
+
* move between screens. It can.
|
|
42
|
+
*/
|
|
43
|
+
/**
|
|
44
|
+
* The question a block asked, but ONLY when the model can no longer remember
|
|
45
|
+
* asking it — i.e. the bubble came back from disk. In a live conversation the
|
|
46
|
+
* model has the question in its own history and repeating it would put the
|
|
47
|
+
* words in the user's mouth twice.
|
|
48
|
+
*
|
|
49
|
+
* The wording field differs by block kind: `question` on choice and
|
|
50
|
+
* multiSelect, `label` on input / select / slider / dateTime, `title` on
|
|
51
|
+
* confirm and form.
|
|
52
|
+
*/
|
|
53
|
+
function questionBehind(blockId) {
|
|
54
|
+
for (const m of askBuoyStore.getState().messages) {
|
|
55
|
+
if (!m.restored) continue;
|
|
56
|
+
for (const placed of m.blocks) {
|
|
57
|
+
const b = placed.block;
|
|
58
|
+
if (b?.id !== blockId) continue;
|
|
59
|
+
const asked = b.question ?? b.label ?? b.title;
|
|
60
|
+
return typeof asked === "string" && asked.trim() ? asked.trim() : undefined;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
function readAvailableActions() {
|
|
66
|
+
try {
|
|
67
|
+
const actions = listToolActions();
|
|
68
|
+
for (const toolId of listSnapshotToolIds()) {
|
|
69
|
+
if (!actions[toolId]) actions[toolId] = [];
|
|
70
|
+
if (!actions[toolId].includes(SNAPSHOT_ACTION)) {
|
|
71
|
+
actions[toolId] = [SNAPSHOT_ACTION, ...actions[toolId]];
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return actions;
|
|
75
|
+
} catch {
|
|
76
|
+
return {};
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
25
80
|
/** Long enough to coalesce a streaming answer's deltas, short enough to beat a crash. */
|
|
26
81
|
const SAVE_DEBOUNCE_MS = 600;
|
|
27
82
|
export function useAskBuoyState() {
|
|
@@ -44,27 +99,53 @@ export function useAskBuoy(config) {
|
|
|
44
99
|
* but it puts the chat on disk, so a host handling regulated data can say no.
|
|
45
100
|
*/
|
|
46
101
|
const persist = config?.persistTranscript !== false;
|
|
102
|
+
/**
|
|
103
|
+
* The device's "don't ask me" toggle, read here rather than only in the
|
|
104
|
+
* settings view so it is loaded off disk before the first turn — a
|
|
105
|
+
* preference that only took effect once you had opened Settings would ask
|
|
106
|
+
* once, every launch, which is the thing it exists to stop.
|
|
107
|
+
*/
|
|
108
|
+
const {
|
|
109
|
+
bypassApprovals,
|
|
110
|
+
readOnly
|
|
111
|
+
} = useAskBuoySettings();
|
|
112
|
+
// Through refs where the session is BUILT: the flags are not session
|
|
113
|
+
// identity, and putting them in that effect's deps would rebuild the
|
|
114
|
+
// conversation on a toggle. The effects below push changes instead.
|
|
115
|
+
const bypassRef = useRef(bypassApprovals);
|
|
116
|
+
bypassRef.current = bypassApprovals;
|
|
117
|
+
const readOnlyRef = useRef(readOnly);
|
|
118
|
+
readOnlyRef.current = readOnly;
|
|
47
119
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
120
|
+
/**
|
|
121
|
+
* The policy a human-initiated dispatch runs under — block buttons and a
|
|
122
|
+
* restored approval. The session applies the device toggles itself; these
|
|
123
|
+
* two paths take `config.policy` directly, so without this the Read only
|
|
124
|
+
* toggle governed the model's calls and not the buttons the model drew.
|
|
125
|
+
* App OR device: the toggle narrows, never widens.
|
|
126
|
+
*/
|
|
127
|
+
const effectivePolicy = useCallback(() => readOnlyRef.current ? {
|
|
128
|
+
...(config?.policy ?? {}),
|
|
129
|
+
readOnly: true
|
|
130
|
+
} : config?.policy ?? {}, [config]);
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Re-read once the registry says it is up. This is what the surrounding code
|
|
134
|
+
* has always assumed happens — the session effect's note about `toolKey`
|
|
135
|
+
* changing "a frame or two after open" was describing a recomputation that,
|
|
136
|
+
* with an empty dependency list, never actually ran.
|
|
137
|
+
*/
|
|
138
|
+
const [registryTick, setRegistryTick] = useState(0);
|
|
139
|
+
useEffect(() => {
|
|
140
|
+
let cancelled = false;
|
|
141
|
+
void waitForToolRegistry().then(() => {
|
|
142
|
+
if (!cancelled) setRegistryTick(n => n + 1);
|
|
143
|
+
});
|
|
144
|
+
return () => {
|
|
145
|
+
cancelled = true;
|
|
146
|
+
};
|
|
67
147
|
}, []);
|
|
148
|
+
const availableActions = useMemo(() => readAvailableActions(), [registryTick]);
|
|
68
149
|
const toolKey = Object.keys(availableActions).sort().join(",");
|
|
69
150
|
useEffect(() => {
|
|
70
151
|
askBuoyStore.setConfigured(configured);
|
|
@@ -115,6 +196,8 @@ export function useAskBuoy(config) {
|
|
|
115
196
|
if (held && held.signature === signature) {
|
|
116
197
|
sessionRef.current = held.session;
|
|
117
198
|
held.session.setAvailableActions(availableActions);
|
|
199
|
+
held.session.setApprovalBypass(bypassRef.current);
|
|
200
|
+
held.session.setReadOnly(readOnlyRef.current);
|
|
118
201
|
askBuoyStore.setLedger(held.session.ledger);
|
|
119
202
|
return;
|
|
120
203
|
}
|
|
@@ -142,6 +225,8 @@ export function useAskBuoy(config) {
|
|
|
142
225
|
requestApproval: input => askBuoyStore.askApproval(input)
|
|
143
226
|
});
|
|
144
227
|
sessionRef.current = session;
|
|
228
|
+
session.setApprovalBypass(bypassRef.current);
|
|
229
|
+
session.setReadOnly(readOnlyRef.current);
|
|
145
230
|
askBuoyStore.holdSession(session, signature);
|
|
146
231
|
askBuoyStore.setLedger(session.ledger);
|
|
147
232
|
|
|
@@ -186,9 +271,17 @@ export function useAskBuoy(config) {
|
|
|
186
271
|
const hydrated = askBuoyStore.hydrate({
|
|
187
272
|
messages: saved.messages,
|
|
188
273
|
answers: saved.answers,
|
|
189
|
-
usage: saved.usage
|
|
274
|
+
usage: saved.usage,
|
|
275
|
+
queued: saved.queued
|
|
190
276
|
});
|
|
191
|
-
if (hydrated)
|
|
277
|
+
if (!hydrated) return;
|
|
278
|
+
sessionRef.current?.restore(saved.history);
|
|
279
|
+
// The undo bar, back with the transcript that promised it.
|
|
280
|
+
if (saved.ledger?.length) sessionRef.current?.ledger.restore(saved.ledger);
|
|
281
|
+
// A question the user never answered comes back with the conversation.
|
|
282
|
+
// Losing it silently reads as consent they never gave: nothing was
|
|
283
|
+
// tapped, so the change is still waiting as far as they know.
|
|
284
|
+
if (saved.pending) askBuoyStore.restorePending(saved.pending);
|
|
192
285
|
});
|
|
193
286
|
}
|
|
194
287
|
return () => {
|
|
@@ -196,6 +289,18 @@ export function useAskBuoy(config) {
|
|
|
196
289
|
};
|
|
197
290
|
}, [configured, config, availableActions, toolKey, persist]);
|
|
198
291
|
|
|
292
|
+
/**
|
|
293
|
+
* Push a toggle made mid-conversation. Declared after the effect that builds
|
|
294
|
+
* the session, so on mount it lands on a session that already exists, and on
|
|
295
|
+
* a later flip it reaches the held one without disturbing the transcript.
|
|
296
|
+
*/
|
|
297
|
+
useEffect(() => {
|
|
298
|
+
sessionRef.current?.setApprovalBypass(bypassApprovals);
|
|
299
|
+
}, [bypassApprovals]);
|
|
300
|
+
useEffect(() => {
|
|
301
|
+
sessionRef.current?.setReadOnly(readOnly);
|
|
302
|
+
}, [readOnly]);
|
|
303
|
+
|
|
199
304
|
/**
|
|
200
305
|
* Save on change: coalesced while a turn streams, immediate the moment it ends.
|
|
201
306
|
*
|
|
@@ -215,6 +320,14 @@ export function useAskBuoy(config) {
|
|
|
215
320
|
const answers = state.answers;
|
|
216
321
|
const usage = state.usage;
|
|
217
322
|
const busy = state.busy;
|
|
323
|
+
/**
|
|
324
|
+
* In the deps because an approval is the one thing that changes nothing
|
|
325
|
+
* else. `approval-required` adds no bubble and no tool row — the engine
|
|
326
|
+
* yields it and then parks — so without this the save that carries the card
|
|
327
|
+
* to disk never fires, and the reload it is meant to survive loses it.
|
|
328
|
+
*/
|
|
329
|
+
const pending = state.pending;
|
|
330
|
+
const queued = state.queued;
|
|
218
331
|
useEffect(() => {
|
|
219
332
|
if (!persist) return;
|
|
220
333
|
if (messages.length === 0) return;
|
|
@@ -223,7 +336,10 @@ export function useAskBuoy(config) {
|
|
|
223
336
|
messages,
|
|
224
337
|
history: sessionRef.current?.messages ?? [],
|
|
225
338
|
answers,
|
|
226
|
-
usage
|
|
339
|
+
usage,
|
|
340
|
+
pending,
|
|
341
|
+
ledger: askBuoyStore.getLedger()?.list(),
|
|
342
|
+
queued
|
|
227
343
|
}));
|
|
228
344
|
};
|
|
229
345
|
if (!busy) {
|
|
@@ -232,7 +348,7 @@ export function useAskBuoy(config) {
|
|
|
232
348
|
}
|
|
233
349
|
const timer = setTimeout(write, SAVE_DEBOUNCE_MS);
|
|
234
350
|
return () => clearTimeout(timer);
|
|
235
|
-
}, [persist, busy, messages, answers, usage]);
|
|
351
|
+
}, [persist, busy, messages, answers, usage, pending, queued]);
|
|
236
352
|
|
|
237
353
|
/** Stream one turn into a fresh assistant bubble. Callers set up the user side. */
|
|
238
354
|
const runTurn = useCallback(text => {
|
|
@@ -242,6 +358,11 @@ export function useAskBuoy(config) {
|
|
|
242
358
|
const messageId = askBuoyStore.startAssistant();
|
|
243
359
|
const controller = new AbortController();
|
|
244
360
|
abortRef.current = controller;
|
|
361
|
+
|
|
362
|
+
// The truth about this device, re-read at the top of every turn. A tool
|
|
363
|
+
// that registered since the sheet opened is dispatchable NOW, and the
|
|
364
|
+
// model is only offered what this list says it has.
|
|
365
|
+
session.setAvailableActions(readAvailableActions());
|
|
245
366
|
const onEvent = configRef.current?.onEvent;
|
|
246
367
|
void (async () => {
|
|
247
368
|
try {
|
|
@@ -256,11 +377,22 @@ export function useAskBuoy(config) {
|
|
|
256
377
|
}
|
|
257
378
|
}
|
|
258
379
|
} catch (err) {
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
380
|
+
// Stop is not a failure. The abort comes back as a cancelled fetch,
|
|
381
|
+
// and reporting that as an error told the user "couldn't reach your AI
|
|
382
|
+
// endpoint, check the connection" about the thing they had just asked
|
|
383
|
+
// for — with `FetchRequestCanceledException` printed underneath.
|
|
384
|
+
if (!controller.signal.aborted) {
|
|
385
|
+
askBuoyStore.applyEvent(messageId, {
|
|
386
|
+
type: "error",
|
|
387
|
+
message: err instanceof Error ? err.message : "Something went wrong talking to your AI endpoint."
|
|
388
|
+
});
|
|
389
|
+
}
|
|
263
390
|
} finally {
|
|
391
|
+
// Marked HERE, not only in the catch. The engine now reads the abort
|
|
392
|
+
// between calls and returns cleanly, so most stops never throw — and
|
|
393
|
+
// a turn that ended because the user pressed Stop must say so either
|
|
394
|
+
// way, or the bubble just trails off as if the model ran out of words.
|
|
395
|
+
if (controller.signal.aborted) askBuoyStore.markStopped(messageId);
|
|
264
396
|
askBuoyStore.finishAssistant(messageId);
|
|
265
397
|
abortRef.current = null;
|
|
266
398
|
}
|
|
@@ -270,10 +402,12 @@ export function useAskBuoy(config) {
|
|
|
270
402
|
const trimmed = text.trim();
|
|
271
403
|
if (!sessionRef.current || !trimmed) return;
|
|
272
404
|
|
|
273
|
-
// Typed mid-turn: park it
|
|
274
|
-
//
|
|
405
|
+
// Typed mid-turn: park it behind whatever is already parked. The
|
|
406
|
+
// composer already cleared the field, and silently dropping the words
|
|
407
|
+
// was the worst of all outcomes — the single slot this replaced did
|
|
408
|
+
// exactly that to every message but the last.
|
|
275
409
|
if (askBuoyStore.getState().busy) {
|
|
276
|
-
askBuoyStore.
|
|
410
|
+
askBuoyStore.enqueue(trimmed);
|
|
277
411
|
return;
|
|
278
412
|
}
|
|
279
413
|
|
|
@@ -296,43 +430,127 @@ export function useAskBuoy(config) {
|
|
|
296
430
|
if (busy || !sessionRef.current) return;
|
|
297
431
|
const lastUser = [...messages].reverse().find(m => m.role === "user");
|
|
298
432
|
if (!lastUser) return;
|
|
299
|
-
//
|
|
300
|
-
const last = messages[messages.length - 1];
|
|
301
|
-
if (last && last.role === "assistant" && last.error) askBuoyStore.removeMessage(last.id);
|
|
433
|
+
// The failed bubble is kept — see the note on `retry` in the interface.
|
|
302
434
|
runTurn(lastUser.text);
|
|
303
435
|
}, [runTurn]);
|
|
304
436
|
const stop = useCallback(() => {
|
|
437
|
+
askBuoyStore.requestStop();
|
|
305
438
|
// A pending approval parks an unresolved promise inside the engine; the
|
|
306
|
-
// abort signal is only read between
|
|
439
|
+
// abort signal is only read between calls, so Stop must also answer the
|
|
307
440
|
// approval (as declined) or the generator hangs forever.
|
|
308
441
|
if (askBuoyStore.getState().pending) askBuoyStore.answerApproval(false);
|
|
442
|
+
// Parked messages stay parked. The queue holds after a stop (see
|
|
443
|
+
// `queuePauseReason`), so ending the turn no longer flushes them — and
|
|
444
|
+
// they are not dumped into the composer either: three 4,000-character
|
|
445
|
+
// requests concatenated into one input lose their boundaries.
|
|
309
446
|
abortRef.current?.abort();
|
|
310
447
|
abortRef.current = null;
|
|
311
448
|
}, []);
|
|
312
449
|
|
|
313
|
-
|
|
314
|
-
|
|
450
|
+
/**
|
|
451
|
+
* Deliver the next parked message — only when the chat is genuinely idle.
|
|
452
|
+
*
|
|
453
|
+
* `turnPhaseOf` + `queuePauseReason` decide, not `!busy`: the old check
|
|
454
|
+
* fired after an error (into the same dead connection), after Stop, and into
|
|
455
|
+
* an open Ask block as the answer to a question. See the store for the
|
|
456
|
+
* rules; this effect just obeys them.
|
|
457
|
+
*/
|
|
315
458
|
useEffect(() => {
|
|
316
|
-
if (
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
459
|
+
if (state.queued.length === 0) return;
|
|
460
|
+
if (turnPhaseOf(state) !== "idle") return;
|
|
461
|
+
if (queuePauseReason(state) !== null) return;
|
|
462
|
+
const next = askBuoyStore.shiftQueued();
|
|
463
|
+
if (next) send(next.text);
|
|
464
|
+
}, [state, send]);
|
|
465
|
+
const editQueued = useCallback(id => askBuoyStore.takeQueuedToDraft(id), []);
|
|
466
|
+
const removeQueued = useCallback(id => askBuoyStore.removeQueued(id), []);
|
|
321
467
|
const reset = useCallback(() => {
|
|
322
468
|
abortRef.current?.abort();
|
|
323
|
-
|
|
324
|
-
askBuoyStore.reset();
|
|
469
|
+
abortRef.current = null;
|
|
325
470
|
// "New conversation" means gone, not hidden. Leaving the last chat on disk
|
|
326
471
|
// after the user asked for a clean one is the opposite of what they said.
|
|
327
|
-
|
|
472
|
+
clearConversation();
|
|
328
473
|
}, []);
|
|
474
|
+
const undoThenReset = useCallback(() => resetConversation({
|
|
475
|
+
dispatch: dispatchToolAction,
|
|
476
|
+
undoFirst: true
|
|
477
|
+
}), []);
|
|
478
|
+
|
|
479
|
+
/**
|
|
480
|
+
* Run a call whose approval outlived its turn.
|
|
481
|
+
*
|
|
482
|
+
* Through `runGatedAction` — the same gate a block button uses, where the
|
|
483
|
+
* human's tap IS the approval — rather than `dispatchToolAction` raw, so the
|
|
484
|
+
* deny list, read-only mode, the release refusals and the effect ledger all
|
|
485
|
+
* still apply to a change made this way. Undo works on it afterwards for
|
|
486
|
+
* exactly the same reason.
|
|
487
|
+
*/
|
|
488
|
+
const applyRestoredApproval = useCallback(async pending => {
|
|
489
|
+
const ledger = askBuoyStore.getLedger();
|
|
490
|
+
if (!ledger) {
|
|
491
|
+
askBuoyStore.setNotice(`${pending.label} couldn't run — no active Ask Buoy session.`);
|
|
492
|
+
return;
|
|
493
|
+
}
|
|
494
|
+
const catalog = config?.tools?.length ? [...CATALOG, ...config.tools] : undefined;
|
|
495
|
+
// Freshness before action. The card was asked in a run of the app that
|
|
496
|
+
// no longer exists; if what it would overwrite has moved since, writing
|
|
497
|
+
// the saved params is a change nobody approved. Re-read, compare, refuse.
|
|
498
|
+
if (pending.targetDigest) {
|
|
499
|
+
const now = await readTargetDigest({
|
|
500
|
+
toolId: pending.toolId,
|
|
501
|
+
action: pending.action,
|
|
502
|
+
params: pending.params ?? {},
|
|
503
|
+
dispatch: dispatchToolAction,
|
|
504
|
+
catalog
|
|
505
|
+
});
|
|
506
|
+
if (now !== undefined && now !== pending.targetDigest) {
|
|
507
|
+
askBuoyStore.addNote(`“${pending.label}” wasn't applied — what it would change has moved on since the app restarted. Nothing was written. Ask again if you still want it.`);
|
|
508
|
+
return;
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
const outcome = await runGatedAction({
|
|
512
|
+
toolId: pending.toolId,
|
|
513
|
+
action: pending.action,
|
|
514
|
+
params: pending.params ?? {},
|
|
515
|
+
dispatch: dispatchToolAction,
|
|
516
|
+
ledger,
|
|
517
|
+
policy: effectivePolicy(),
|
|
518
|
+
isRelease,
|
|
519
|
+
catalog
|
|
520
|
+
});
|
|
521
|
+
if (outcome.ok) {
|
|
522
|
+
askBuoyStore.addNote(`Applied “${pending.label}”, which was still waiting when the app restarted. Whatever else that answer was going to do is gone — ask again if there was more to it.`);
|
|
523
|
+
} else {
|
|
524
|
+
askBuoyStore.setNotice(`${pending.label} failed — ${outcome.error}`);
|
|
525
|
+
}
|
|
526
|
+
}, [config, effectivePolicy]);
|
|
329
527
|
const approve = useCallback(approved => {
|
|
528
|
+
const pending = askBuoyStore.getState().pending;
|
|
529
|
+
// Clear the card first either way: the tap is answered, and the dispatch
|
|
530
|
+
// below is slow enough to leave it sitting there looking unanswered.
|
|
330
531
|
askBuoyStore.answerApproval(approved);
|
|
331
|
-
|
|
532
|
+
// A live card resolves the promise the engine is parked on, and the turn
|
|
533
|
+
// carries on from there. A RESTORED one has no turn behind it — that
|
|
534
|
+
// generator died with the process — so Allow has to run the call itself.
|
|
535
|
+
if (!pending?.restored) return;
|
|
536
|
+
if (!approved) {
|
|
537
|
+
askBuoyStore.addNote(`Skipped “${pending.label}”. Nothing was changed.`);
|
|
538
|
+
return;
|
|
539
|
+
}
|
|
540
|
+
void applyRestoredApproval(pending);
|
|
541
|
+
}, [applyRestoredApproval]);
|
|
332
542
|
const answer = useCallback(a => {
|
|
333
543
|
askBuoyStore.recordAnswer(a);
|
|
334
544
|
// Plain words to the model, never JSON: "Business checkout", "Yes, go ahead."
|
|
335
|
-
|
|
545
|
+
//
|
|
546
|
+
// Unless the question came back from disk. A restored history is rewound
|
|
547
|
+
// to the last COMPLETE round, and an Ask block ends its turn with a
|
|
548
|
+
// `buoy_ui` call — so the turn that asked is always rewound out of the
|
|
549
|
+
// model's memory while its buttons stay tappable. A bare "Quantity" then
|
|
550
|
+
// arrives with nothing behind it, and the model answers "that could mean
|
|
551
|
+
// a couple of different things". Carry the question with the answer.
|
|
552
|
+
const asked = questionBehind(a.blockId);
|
|
553
|
+
send(asked ? `${asked} — ${answerToText(a)}` : answerToText(a));
|
|
336
554
|
}, [send]);
|
|
337
555
|
|
|
338
556
|
/**
|
|
@@ -365,7 +583,7 @@ export function useAskBuoy(config) {
|
|
|
365
583
|
params: action.dispatch.params ?? {},
|
|
366
584
|
dispatch: dispatchToolAction,
|
|
367
585
|
ledger,
|
|
368
|
-
policy:
|
|
586
|
+
policy: effectivePolicy(),
|
|
369
587
|
isRelease,
|
|
370
588
|
// Same merged catalog the session offers, so a button on a custom
|
|
371
589
|
// tool's block is not refused as unknown.
|
|
@@ -377,18 +595,22 @@ export function useAskBuoy(config) {
|
|
|
377
595
|
askBuoyStore.setActionState(key, "failed");
|
|
378
596
|
askBuoyStore.setNotice(`${action.label} failed — ${outcome.error}`);
|
|
379
597
|
}
|
|
380
|
-
}, [send, config]);
|
|
598
|
+
}, [send, config, effectivePolicy]);
|
|
381
599
|
return {
|
|
382
600
|
state,
|
|
383
601
|
send,
|
|
384
602
|
stop,
|
|
385
603
|
reset,
|
|
604
|
+
undoThenReset,
|
|
386
605
|
approve,
|
|
387
606
|
retry,
|
|
388
607
|
answer,
|
|
389
608
|
runAction,
|
|
609
|
+
editQueued,
|
|
610
|
+
removeQueued,
|
|
390
611
|
configured,
|
|
391
|
-
toolCount: Object.keys(availableActions).length
|
|
612
|
+
toolCount: Object.keys(availableActions).length,
|
|
613
|
+
availableToolIds: Object.keys(availableActions)
|
|
392
614
|
};
|
|
393
615
|
}
|
|
394
616
|
//# sourceMappingURL=useAskBuoy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","useSyncExternalStore","Platform","dispatchToolAction","listSnapshotToolIds","listToolActions","readToolSnapshot","waitForToolRegistry","answerToText","CATALOG","createAskBuoySession","runGatedAction","SNAPSHOT_ACTION","askBuoyStore","buildPayload","clearTranscript","readTranscript","writeTranscript","isRelease","__DEV__","SAVE_DEBOUNCE_MS","useAskBuoyState","subscribe","getState","useAskBuoy","config","state","sessionRef","restoredRef","abortRef","configRef","current","configured","endpoint","model","persist","persistTranscript","availableActions","actions","toolId","includes","toolKey","Object","keys","sort","join","setConfigured","setMeta","protocol","undefined","appName","platform","OS","build","setNotice","apiKey","test","signature","held","getHeldSession","session","setAvailableActions","setLedger","ledger","headers","maxTokens","anthropicVersion","requestOverrides","catalog","tools","length","dispatch","readSnapshot","policy","context","requestApproval","input","askApproval","holdSession","cancelled","then","ready","prime","saved","hydrated","hydrate","messages","answers","usage","restore","history","busy","write","timer","setTimeout","clearTimeout","runTurn","text","beginTurn","messageId","startAssistant","controller","AbortController","onEvent","ev","send","signal","applyEvent","err","type","message","Error","finishAssistant","trimmed","trim","setQueued","awaiting","awaitingBlockId","recordAnswer","blockId","kind","addUser","retry","lastUser","reverse","find","m","role","last","error","removeMessage","id","stop","pending","answerApproval","abort","queued","reset","approve","approved","answer","a","runAction","action","key","label","getLedger","setActionState","outcome","params","ok","toolCount"],"sourceRoot":"../../../src","sources":["store/useAskBuoy.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","useSyncExternalStore","Platform","dispatchToolAction","listSnapshotToolIds","listToolActions","readToolSnapshot","waitForToolRegistry","answerToText","CATALOG","createAskBuoySession","readTargetDigest","runGatedAction","SNAPSHOT_ACTION","askBuoyStore","queuePauseReason","turnPhaseOf","clearConversation","resetConversation","buildPayload","readTranscript","writeTranscript","useAskBuoySettings","isRelease","__DEV__","questionBehind","blockId","m","getState","messages","restored","placed","blocks","b","block","id","asked","question","label","title","trim","undefined","readAvailableActions","actions","toolId","includes","SAVE_DEBOUNCE_MS","useAskBuoyState","subscribe","useAskBuoy","config","state","sessionRef","restoredRef","abortRef","configRef","current","configured","endpoint","model","persist","persistTranscript","bypassApprovals","readOnly","bypassRef","readOnlyRef","effectivePolicy","policy","registryTick","setRegistryTick","cancelled","then","n","availableActions","toolKey","Object","keys","sort","join","setConfigured","setMeta","protocol","appName","platform","OS","build","setNotice","apiKey","test","signature","held","getHeldSession","session","setAvailableActions","setApprovalBypass","setReadOnly","setLedger","ledger","headers","maxTokens","anthropicVersion","requestOverrides","catalog","tools","length","dispatch","readSnapshot","context","requestApproval","input","askApproval","holdSession","ready","prime","saved","hydrated","hydrate","answers","usage","queued","restore","history","pending","restorePending","busy","write","getLedger","list","timer","setTimeout","clearTimeout","runTurn","text","beginTurn","messageId","startAssistant","controller","AbortController","onEvent","ev","send","signal","applyEvent","err","aborted","type","message","Error","markStopped","finishAssistant","trimmed","enqueue","awaiting","awaitingBlockId","recordAnswer","kind","addUser","retry","lastUser","reverse","find","role","stop","requestStop","answerApproval","abort","next","shiftQueued","editQueued","takeQueuedToDraft","removeQueued","reset","undoThenReset","undoFirst","applyRestoredApproval","targetDigest","now","action","params","addNote","outcome","ok","error","approve","approved","answer","a","runAction","key","setActionState","toolCount","availableToolIds"],"sourceRoot":"../../../src","sources":["store/useAskBuoy.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
* broadcasts to every connected dashboard — it already leaks license keys the
|
|
19
19
|
* same way.
|
|
20
20
|
*/
|
|
21
|
+
import { resetConversation } from "../store/resetConversation";
|
|
21
22
|
import { dispatchToolAction, redactForWire } from "./wire";
|
|
22
23
|
import { isReversible } from "@buoy-gg/agent-core";
|
|
23
24
|
import { askBuoyStore } from "../store/askBuoyStore";
|
|
@@ -102,11 +103,31 @@ export const askBuoySyncAdapter = {
|
|
|
102
103
|
...outcome
|
|
103
104
|
};
|
|
104
105
|
},
|
|
105
|
-
/**
|
|
106
|
-
|
|
107
|
-
|
|
106
|
+
/**
|
|
107
|
+
* Undo what can be undone, then clear the transcript and the ledger.
|
|
108
|
+
*
|
|
109
|
+
* The same path as the sheet's "New conversation" (resetConversation.ts).
|
|
110
|
+
* This action used to clear unconditionally — no question, no undo — so a
|
|
111
|
+
* desktop click could drop the only undo record for changes still live on
|
|
112
|
+
* the tester's phone. Now it refuses to clear when a revert fails and says
|
|
113
|
+
* what is still applied; the dashboard decides whether to clear anyway
|
|
114
|
+
* by calling `undoAll` first or accepting the kept conversation.
|
|
115
|
+
*/
|
|
116
|
+
reset: async () => {
|
|
117
|
+
const outcome = await resetConversation({
|
|
118
|
+
dispatch: dispatchToolAction,
|
|
119
|
+
undoFirst: true
|
|
120
|
+
});
|
|
121
|
+
if (!outcome.cleared) {
|
|
122
|
+
return {
|
|
123
|
+
ok: false,
|
|
124
|
+
error: `Couldn't undo ${outcome.failed.length} change${outcome.failed.length === 1 ? "" : "s"} — conversation kept.`,
|
|
125
|
+
failed: outcome.failed
|
|
126
|
+
};
|
|
127
|
+
}
|
|
108
128
|
return {
|
|
109
|
-
ok: true
|
|
129
|
+
ok: true,
|
|
130
|
+
reverted: outcome.reverted
|
|
110
131
|
};
|
|
111
132
|
}
|
|
112
133
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["dispatchToolAction","redactForWire","isReversible","askBuoyStore","ASK_BUOY_ADAPTER_VERSION","askBuoySyncAdapter","version","getSnapshot","state","getState","ledger","getLedger","entries","list","outstanding","filter","e","undoneAt","busy","configured","notice","messageCount","messages","length","map","m","id","role","text","streaming","toolCalls","c","toolId","action","status","usage","pendingApproval","pending","label","changes","reversible","effect","permanent","kind","transients","items","subscribe","onChange","offStore","offLedger","actions","listChanges","at","undoAll","ok","error","outcome","revertAll","reset"],"sourceRoot":"../../../src","sources":["sync/askBuoySyncAdapter.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["resetConversation","dispatchToolAction","redactForWire","isReversible","askBuoyStore","ASK_BUOY_ADAPTER_VERSION","askBuoySyncAdapter","version","getSnapshot","state","getState","ledger","getLedger","entries","list","outstanding","filter","e","undoneAt","busy","configured","notice","messageCount","messages","length","map","m","id","role","text","streaming","toolCalls","c","toolId","action","status","usage","pendingApproval","pending","label","changes","reversible","effect","permanent","kind","transients","items","subscribe","onChange","offStore","offLedger","actions","listChanges","at","undoAll","ok","error","outcome","revertAll","reset","dispatch","undoFirst","cleared","failed","reverted"],"sourceRoot":"../../../src","sources":["sync/askBuoySyncAdapter.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockRenderer.d.ts","sourceRoot":"","sources":["../../../src/blocks/BlockRenderer.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"BlockRenderer.d.ts","sourceRoot":"","sources":["../../../src/blocks/BlockRenderer.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AA+CjD,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,+BAMxD"}
|
|
@@ -34,6 +34,17 @@ export declare function listRowBehaviour(item: Pick<ListBlock["items"][number],
|
|
|
34
34
|
export declare function List({ block }: {
|
|
35
35
|
block: ListBlock;
|
|
36
36
|
}): import("react").JSX.Element;
|
|
37
|
+
/**
|
|
38
|
+
* What a write changed. Folded by default (see `Card`), and drilled into
|
|
39
|
+
* rather than dumped.
|
|
40
|
+
*
|
|
41
|
+
* A changed field is rendered by the same tree diff viewer the Zustand and
|
|
42
|
+
* Storage tools use, with unchanged branches hidden — so editing one line of a
|
|
43
|
+
* bag shows `qty 4 => 14` and not both copies of a fifty-key array serialised
|
|
44
|
+
* to JSON, which is what the reader was given before and could not read. Only
|
|
45
|
+
* a scalar keeps the plain −/+ pair: a tree of one root node says less than
|
|
46
|
+
* the two values side by side.
|
|
47
|
+
*/
|
|
37
48
|
export declare function Diff({ block }: {
|
|
38
49
|
block: DiffBlock;
|
|
39
50
|
}): import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataBlocks.d.ts","sourceRoot":"","sources":["../../../src/blocks/DataBlocks.tsx"],"names":[],"mappings":"AAQA,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,UAAU,EAChB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"DataBlocks.d.ts","sourceRoot":"","sources":["../../../src/blocks/DataBlocks.tsx"],"names":[],"mappings":"AAQA,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,UAAU,EAChB,MAAM,qBAAqB,CAAC;AAqB7B,wBAAgB,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,+BA4BrD;AAED,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,aAAa,CAAA;CAAE,+BAqB3D;AAED;;;;;;;;GAQG;AACH;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC,GAAG;IAC5F,iDAAiD;IACjD,SAAS,EAAE,OAAO,CAAC;IACnB,4EAA4E;IAC5E,aAAa,EAAE,OAAO,CAAC;IACvB,sDAAsD;IACtD,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAOA;AAED,wBAAgB,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,+BAoFnD;AAmBD;;;;;;;;;;GAUG;AACH,wBAAgB,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,+BA+CnD;AAED,wBAAgB,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,+BAoBrD;AAED,wBAAgB,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,+BAarD;AAsDD;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,+BAInD;AAED,wBAAgB,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,+BAYvD;AAED,wBAAgB,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,YAAY,CAAA;CAAE,+BA6BzD"}
|