@buoy-gg/ask-buoy 7.0.38 → 7.0.40
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/lib/commonjs/blocks/AskBlocks.js +338 -1
- package/lib/commonjs/blocks/AskBlocks.js.map +1 -0
- package/lib/commonjs/blocks/BlockRenderer.js +262 -1
- package/lib/commonjs/blocks/BlockRenderer.js.map +1 -0
- package/lib/commonjs/blocks/ChromePrototypes.js +514 -1
- package/lib/commonjs/blocks/ChromePrototypes.js.map +1 -0
- package/lib/commonjs/blocks/DataBlocks.js +781 -1
- package/lib/commonjs/blocks/DataBlocks.js.map +1 -0
- package/lib/commonjs/blocks/ExtraBlocks.js +1860 -1
- package/lib/commonjs/blocks/ExtraBlocks.js.map +1 -0
- package/lib/commonjs/blocks/MediaBlocks.js +156 -1
- package/lib/commonjs/blocks/MediaBlocks.js.map +1 -0
- package/lib/commonjs/blocks/ReceiptBlocks.js +586 -1
- package/lib/commonjs/blocks/ReceiptBlocks.js.map +1 -0
- package/lib/commonjs/blocks/blockText.js +60 -1
- package/lib/commonjs/blocks/blockText.js.map +1 -0
- package/lib/commonjs/blocks/blockText.test.js +53 -1
- package/lib/commonjs/blocks/blockText.test.js.map +1 -0
- package/lib/commonjs/blocks/context.js +42 -1
- package/lib/commonjs/blocks/context.js.map +1 -0
- package/lib/commonjs/blocks/icons.js +96 -1
- package/lib/commonjs/blocks/icons.js.map +1 -0
- package/lib/commonjs/blocks/index.js +95 -1
- package/lib/commonjs/blocks/index.js.map +1 -0
- package/lib/commonjs/blocks/listRow.test.js +55 -1
- package/lib/commonjs/blocks/listRow.test.js.map +1 -0
- package/lib/commonjs/blocks/pageState.js +34 -1
- package/lib/commonjs/blocks/pageState.js.map +1 -0
- package/lib/commonjs/blocks/pageState.test.js +57 -1
- package/lib/commonjs/blocks/pageState.test.js.map +1 -0
- package/lib/commonjs/blocks/primitives.js +457 -1
- package/lib/commonjs/blocks/primitives.js.map +1 -0
- package/lib/commonjs/blocks/primitivesIndex.js +62 -1
- package/lib/commonjs/blocks/primitivesIndex.js.map +1 -0
- package/lib/commonjs/components/ApprovalCard.js +297 -1
- package/lib/commonjs/components/ApprovalCard.js.map +1 -0
- package/lib/commonjs/components/AskBuoyHeader.js +196 -1
- package/lib/commonjs/components/AskBuoyHeader.js.map +1 -0
- package/lib/commonjs/components/AskBuoyIcon.js +19 -1
- package/lib/commonjs/components/AskBuoyIcon.js.map +1 -0
- package/lib/commonjs/components/AskBuoyModal.js +479 -1
- package/lib/commonjs/components/AskBuoyModal.js.map +1 -0
- package/lib/commonjs/components/AskBuoySettings.js +181 -1
- package/lib/commonjs/components/AskBuoySettings.js.map +1 -0
- package/lib/commonjs/components/ChangesBar.js +211 -1
- package/lib/commonjs/components/ChangesBar.js.map +1 -0
- package/lib/commonjs/components/Composer.js +255 -1
- package/lib/commonjs/components/Composer.js.map +1 -0
- package/lib/commonjs/components/EmptyState.js +161 -1
- package/lib/commonjs/components/EmptyState.js.map +1 -0
- package/lib/commonjs/components/KeyboardPad.js +80 -1
- package/lib/commonjs/components/KeyboardPad.js.map +1 -0
- package/lib/commonjs/components/Markdown.js +310 -1
- package/lib/commonjs/components/Markdown.js.map +1 -0
- package/lib/commonjs/components/MessageList.js +970 -1
- package/lib/commonjs/components/MessageList.js.map +1 -0
- package/lib/commonjs/components/QueuedMessages.js +145 -1
- package/lib/commonjs/components/QueuedMessages.js.map +1 -0
- package/lib/commonjs/components/ThinkingStrip.js +223 -1
- package/lib/commonjs/components/ThinkingStrip.js.map +1 -0
- package/lib/commonjs/components/TypingDots.js +63 -1
- package/lib/commonjs/components/TypingDots.js.map +1 -0
- package/lib/commonjs/components/markdownParse.js +131 -1
- package/lib/commonjs/components/markdownParse.js.map +1 -0
- package/lib/commonjs/components/markdownParse.test.js +99 -1
- package/lib/commonjs/components/markdownParse.test.js.map +1 -0
- package/lib/commonjs/components/useCopyAction.js +50 -1
- package/lib/commonjs/components/useCopyAction.js.map +1 -0
- package/lib/commonjs/index.js +252 -1
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/preset.js +91 -1
- package/lib/commonjs/preset.js.map +1 -0
- package/lib/commonjs/store/activityGroups.js +110 -1
- package/lib/commonjs/store/activityGroups.js.map +1 -0
- package/lib/commonjs/store/activityGroups.test.js +78 -1
- package/lib/commonjs/store/activityGroups.test.js.map +1 -0
- package/lib/commonjs/store/askBuoySettings.js +72 -1
- package/lib/commonjs/store/askBuoySettings.js.map +1 -0
- package/lib/commonjs/store/askBuoyStore.js +589 -1
- package/lib/commonjs/store/askBuoyStore.js.map +1 -0
- package/lib/commonjs/store/blockPlacement.js +64 -1
- package/lib/commonjs/store/blockPlacement.js.map +1 -0
- package/lib/commonjs/store/blockPlacement.test.js +123 -1
- package/lib/commonjs/store/blockPlacement.test.js.map +1 -0
- package/lib/commonjs/store/queue.test.js +150 -1
- package/lib/commonjs/store/queue.test.js.map +1 -0
- package/lib/commonjs/store/resetConversation.js +77 -1
- package/lib/commonjs/store/resetConversation.js.map +1 -0
- package/lib/commonjs/store/restorePending.test.js +63 -1
- package/lib/commonjs/store/restorePending.test.js.map +1 -0
- package/lib/commonjs/store/restoredIds.test.js +47 -1
- package/lib/commonjs/store/restoredIds.test.js.map +1 -0
- package/lib/commonjs/store/suggestions.js +54 -1
- package/lib/commonjs/store/suggestions.js.map +1 -0
- package/lib/commonjs/store/suggestions.test.js +58 -1
- package/lib/commonjs/store/suggestions.test.js.map +1 -0
- package/lib/commonjs/store/systemLine.test.js +77 -1
- package/lib/commonjs/store/systemLine.test.js.map +1 -0
- package/lib/commonjs/store/ticketPrompt.js +17 -1
- package/lib/commonjs/store/ticketPrompt.js.map +1 -0
- package/lib/commonjs/store/traceText.js +81 -1
- package/lib/commonjs/store/traceText.js.map +1 -0
- package/lib/commonjs/store/traceText.test.js +112 -1
- package/lib/commonjs/store/traceText.test.js.map +1 -0
- package/lib/commonjs/store/transcriptPersistence.js +297 -1
- package/lib/commonjs/store/transcriptPersistence.js.map +1 -0
- package/lib/commonjs/store/transcriptPersistence.test.js +333 -1
- package/lib/commonjs/store/transcriptPersistence.test.js.map +1 -0
- package/lib/commonjs/store/turnRendering.test.js +151 -1
- package/lib/commonjs/store/turnRendering.test.js.map +1 -0
- package/lib/commonjs/store/useAskBuoy.js +651 -1
- package/lib/commonjs/store/useAskBuoy.js.map +1 -0
- package/lib/commonjs/store/useAskBuoySettings.js +14 -1
- package/lib/commonjs/store/useAskBuoySettings.js.map +1 -0
- package/lib/commonjs/sync/askBuoySyncAdapter.js +153 -1
- package/lib/commonjs/sync/askBuoySyncAdapter.js.map +1 -0
- package/lib/commonjs/sync/askBuoySyncAdapter.test.js +141 -1
- package/lib/commonjs/sync/askBuoySyncAdapter.test.js.map +1 -0
- package/lib/commonjs/sync/wire.js +58 -1
- package/lib/commonjs/sync/wire.js.map +1 -0
- package/lib/commonjs/types.js +6 -1
- package/lib/commonjs/types.js.map +1 -0
- package/lib/module/blocks/AskBlocks.js +331 -1
- package/lib/module/blocks/AskBlocks.js.map +1 -0
- package/lib/module/blocks/BlockRenderer.js +257 -1
- package/lib/module/blocks/BlockRenderer.js.map +1 -0
- package/lib/module/blocks/ChromePrototypes.js +503 -1
- package/lib/module/blocks/ChromePrototypes.js.map +1 -0
- package/lib/module/blocks/DataBlocks.js +767 -1
- package/lib/module/blocks/DataBlocks.js.map +1 -0
- package/lib/module/blocks/ExtraBlocks.js +1833 -1
- package/lib/module/blocks/ExtraBlocks.js.map +1 -0
- package/lib/module/blocks/MediaBlocks.js +151 -1
- package/lib/module/blocks/MediaBlocks.js.map +1 -0
- package/lib/module/blocks/ReceiptBlocks.js +574 -1
- package/lib/module/blocks/ReceiptBlocks.js.map +1 -0
- package/lib/module/blocks/blockText.js +55 -1
- package/lib/module/blocks/blockText.js.map +1 -0
- package/lib/module/blocks/blockText.test.js +53 -1
- package/lib/module/blocks/blockText.test.js.map +1 -0
- package/lib/module/blocks/context.js +35 -1
- package/lib/module/blocks/context.js.map +1 -0
- package/lib/module/blocks/icons.js +91 -1
- package/lib/module/blocks/icons.js.map +1 -0
- package/lib/module/blocks/index.js +8 -1
- package/lib/module/blocks/index.js.map +1 -0
- package/lib/module/blocks/listRow.test.js +56 -1
- package/lib/module/blocks/listRow.test.js.map +1 -0
- package/lib/module/blocks/pageState.js +30 -1
- package/lib/module/blocks/pageState.js.map +1 -0
- package/lib/module/blocks/pageState.test.js +56 -1
- package/lib/module/blocks/pageState.test.js.map +1 -0
- package/lib/module/blocks/primitives.js +445 -1
- package/lib/module/blocks/primitives.js.map +1 -0
- package/lib/module/blocks/primitivesIndex.js +5 -1
- package/lib/module/blocks/primitivesIndex.js.map +1 -0
- package/lib/module/components/ApprovalCard.js +292 -1
- package/lib/module/components/ApprovalCard.js.map +1 -0
- package/lib/module/components/AskBuoyHeader.js +193 -1
- package/lib/module/components/AskBuoyHeader.js.map +1 -0
- package/lib/module/components/AskBuoyIcon.js +8 -1
- package/lib/module/components/AskBuoyIcon.js.map +1 -0
- package/lib/module/components/AskBuoyModal.js +474 -1
- package/lib/module/components/AskBuoyModal.js.map +1 -0
- package/lib/module/components/AskBuoySettings.js +176 -1
- package/lib/module/components/AskBuoySettings.js.map +1 -0
- package/lib/module/components/ChangesBar.js +206 -1
- package/lib/module/components/ChangesBar.js.map +1 -0
- package/lib/module/components/Composer.js +250 -1
- package/lib/module/components/Composer.js.map +1 -0
- package/lib/module/components/EmptyState.js +156 -1
- package/lib/module/components/EmptyState.js.map +1 -0
- package/lib/module/components/KeyboardPad.js +75 -1
- package/lib/module/components/KeyboardPad.js.map +1 -0
- package/lib/module/components/Markdown.js +305 -1
- package/lib/module/components/Markdown.js.map +1 -0
- package/lib/module/components/MessageList.js +964 -1
- package/lib/module/components/MessageList.js.map +1 -0
- package/lib/module/components/QueuedMessages.js +140 -1
- package/lib/module/components/QueuedMessages.js.map +1 -0
- package/lib/module/components/ThinkingStrip.js +218 -1
- package/lib/module/components/ThinkingStrip.js.map +1 -0
- package/lib/module/components/TypingDots.js +58 -1
- package/lib/module/components/TypingDots.js.map +1 -0
- package/lib/module/components/markdownParse.js +125 -1
- package/lib/module/components/markdownParse.js.map +1 -0
- package/lib/module/components/markdownParse.test.js +98 -1
- package/lib/module/components/markdownParse.test.js.map +1 -0
- package/lib/module/components/useCopyAction.js +46 -1
- package/lib/module/components/useCopyAction.js.map +1 -0
- package/lib/module/index.js +34 -1
- package/lib/module/index.js.map +1 -0
- package/lib/module/preset.js +74 -1
- package/lib/module/preset.js.map +1 -0
- package/lib/module/store/activityGroups.js +103 -1
- package/lib/module/store/activityGroups.js.map +1 -0
- package/lib/module/store/activityGroups.test.js +77 -1
- package/lib/module/store/activityGroups.test.js.map +1 -0
- package/lib/module/store/askBuoySettings.js +67 -1
- package/lib/module/store/askBuoySettings.js.map +1 -0
- package/lib/module/store/askBuoyStore.js +583 -1
- package/lib/module/store/askBuoyStore.js.map +1 -0
- package/lib/module/store/blockPlacement.js +59 -1
- package/lib/module/store/blockPlacement.js.map +1 -0
- package/lib/module/store/blockPlacement.test.js +122 -1
- package/lib/module/store/blockPlacement.test.js.map +1 -0
- package/lib/module/store/queue.test.js +149 -1
- package/lib/module/store/queue.test.js.map +1 -0
- package/lib/module/store/resetConversation.js +72 -1
- package/lib/module/store/resetConversation.js.map +1 -0
- package/lib/module/store/restorePending.test.js +62 -1
- package/lib/module/store/restorePending.test.js.map +1 -0
- package/lib/module/store/restoredIds.test.js +46 -1
- package/lib/module/store/restoredIds.test.js.map +1 -0
- package/lib/module/store/suggestions.js +49 -1
- package/lib/module/store/suggestions.js.map +1 -0
- package/lib/module/store/suggestions.test.js +57 -1
- package/lib/module/store/suggestions.test.js.map +1 -0
- package/lib/module/store/systemLine.test.js +76 -1
- package/lib/module/store/systemLine.test.js.map +1 -0
- package/lib/module/store/ticketPrompt.js +13 -1
- package/lib/module/store/ticketPrompt.js.map +1 -0
- package/lib/module/store/traceText.js +75 -1
- package/lib/module/store/traceText.js.map +1 -0
- package/lib/module/store/traceText.test.js +111 -1
- package/lib/module/store/traceText.test.js.map +1 -0
- package/lib/module/store/transcriptPersistence.js +287 -1
- package/lib/module/store/transcriptPersistence.js.map +1 -0
- package/lib/module/store/transcriptPersistence.test.js +332 -1
- package/lib/module/store/transcriptPersistence.test.js.map +1 -0
- package/lib/module/store/turnRendering.test.js +150 -1
- package/lib/module/store/turnRendering.test.js.map +1 -0
- package/lib/module/store/useAskBuoy.js +646 -1
- package/lib/module/store/useAskBuoy.js.map +1 -0
- package/lib/module/store/useAskBuoySettings.js +9 -1
- package/lib/module/store/useAskBuoySettings.js.map +1 -0
- package/lib/module/sync/askBuoySyncAdapter.js +148 -1
- package/lib/module/sync/askBuoySyncAdapter.js.map +1 -0
- package/lib/module/sync/askBuoySyncAdapter.test.js +140 -1
- package/lib/module/sync/askBuoySyncAdapter.test.js.map +1 -0
- package/lib/module/sync/wire.js +47 -1
- package/lib/module/sync/wire.js.map +1 -0
- package/lib/module/types.js +4 -1
- package/lib/module/types.js.map +1 -0
- package/lib/typescript/blocks/AskBlocks.d.ts.map +1 -0
- package/lib/typescript/blocks/BlockRenderer.d.ts.map +1 -0
- package/lib/typescript/blocks/ChromePrototypes.d.ts.map +1 -0
- package/lib/typescript/blocks/DataBlocks.d.ts.map +1 -0
- package/lib/typescript/blocks/ExtraBlocks.d.ts.map +1 -0
- package/lib/typescript/blocks/MediaBlocks.d.ts.map +1 -0
- package/lib/typescript/blocks/ReceiptBlocks.d.ts.map +1 -0
- package/lib/typescript/blocks/blockText.d.ts.map +1 -0
- package/lib/typescript/blocks/blockText.test.d.ts.map +1 -0
- package/lib/typescript/blocks/context.d.ts.map +1 -0
- package/lib/typescript/blocks/icons.d.ts.map +1 -0
- package/lib/typescript/blocks/index.d.ts.map +1 -0
- package/lib/typescript/blocks/listRow.test.d.ts.map +1 -0
- package/lib/typescript/blocks/pageState.d.ts.map +1 -0
- package/lib/typescript/blocks/pageState.test.d.ts.map +1 -0
- package/lib/typescript/blocks/primitives.d.ts.map +1 -0
- package/lib/typescript/blocks/primitivesIndex.d.ts.map +1 -0
- package/lib/typescript/components/ApprovalCard.d.ts.map +1 -0
- package/lib/typescript/components/AskBuoyHeader.d.ts.map +1 -0
- package/lib/typescript/components/AskBuoyIcon.d.ts.map +1 -0
- package/lib/typescript/components/AskBuoyModal.d.ts.map +1 -0
- package/lib/typescript/components/AskBuoySettings.d.ts.map +1 -0
- package/lib/typescript/components/ChangesBar.d.ts.map +1 -0
- package/lib/typescript/components/Composer.d.ts.map +1 -0
- package/lib/typescript/components/EmptyState.d.ts.map +1 -0
- package/lib/typescript/components/KeyboardPad.d.ts.map +1 -0
- package/lib/typescript/components/Markdown.d.ts.map +1 -0
- package/lib/typescript/components/MessageList.d.ts.map +1 -0
- package/lib/typescript/components/QueuedMessages.d.ts.map +1 -0
- package/lib/typescript/components/ThinkingStrip.d.ts.map +1 -0
- package/lib/typescript/components/TypingDots.d.ts.map +1 -0
- package/lib/typescript/components/markdownParse.d.ts.map +1 -0
- package/lib/typescript/components/markdownParse.test.d.ts.map +1 -0
- package/lib/typescript/components/useCopyAction.d.ts.map +1 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/preset.d.ts.map +1 -0
- package/lib/typescript/store/activityGroups.d.ts.map +1 -0
- package/lib/typescript/store/activityGroups.test.d.ts.map +1 -0
- package/lib/typescript/store/askBuoySettings.d.ts.map +1 -0
- package/lib/typescript/store/askBuoyStore.d.ts.map +1 -0
- package/lib/typescript/store/blockPlacement.d.ts.map +1 -0
- package/lib/typescript/store/blockPlacement.test.d.ts.map +1 -0
- package/lib/typescript/store/queue.test.d.ts.map +1 -0
- package/lib/typescript/store/resetConversation.d.ts.map +1 -0
- package/lib/typescript/store/restorePending.test.d.ts.map +1 -0
- package/lib/typescript/store/restoredIds.test.d.ts.map +1 -0
- package/lib/typescript/store/suggestions.d.ts.map +1 -0
- package/lib/typescript/store/suggestions.test.d.ts.map +1 -0
- package/lib/typescript/store/systemLine.test.d.ts.map +1 -0
- package/lib/typescript/store/ticketPrompt.d.ts.map +1 -0
- package/lib/typescript/store/traceText.d.ts.map +1 -0
- package/lib/typescript/store/traceText.test.d.ts.map +1 -0
- package/lib/typescript/store/transcriptPersistence.d.ts.map +1 -0
- package/lib/typescript/store/transcriptPersistence.test.d.ts.map +1 -0
- package/lib/typescript/store/turnRendering.test.d.ts.map +1 -0
- package/lib/typescript/store/useAskBuoy.d.ts.map +1 -0
- package/lib/typescript/store/useAskBuoySettings.d.ts.map +1 -0
- package/lib/typescript/sync/askBuoySyncAdapter.d.ts.map +1 -0
- package/lib/typescript/sync/askBuoySyncAdapter.test.d.ts.map +1 -0
- package/lib/typescript/sync/wire.d.ts.map +1 -0
- package/lib/typescript/types.d.ts.map +1 -0
- package/package.json +8 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_sharedUi","require","_react","_reactNative","_agentCore","_askBuoyStore","_resetConversation","_transcriptPersistence","_useAskBuoySettings","isRelease","__DEV__","questionBehind","blockId","m","askBuoyStore","getState","messages","restored","placed","blocks","b","block","id","asked","question","label","title","trim","undefined","readAvailableActions","actions","listToolActions","toolId","listSnapshotToolIds","includes","SNAPSHOT_ACTION","SAVE_DEBOUNCE_MS","useAskBuoyState","useSyncExternalStore","subscribe","useAskBuoy","config","state","hasProAccess","getUseIsPro","proAccessRef","useRef","current","dispatchAgentAction","useCallback","args","hasAccountAccess","Promise","reject","Error","dispatchToolAction","sessionRef","restoredRef","abortRef","configRef","configured","endpoint","model","persist","persistTranscript","bypassApprovals","readOnly","useAskBuoySettings","bypassRef","readOnlyRef","effectivePolicy","policy","registryTick","setRegistryTick","useState","useEffect","cancelled","waitForToolRegistry","then","n","availableActions","useMemo","toolKey","Object","keys","sort","join","setConfigured","setMeta","protocol","appName","platform","Platform","OS","build","setNotice","apiKey","test","signature","held","getHeldSession","session","setAvailableActions","setApprovalBypass","setReadOnly","setLedger","ledger","createAskBuoySession","headers","maxTokens","anthropicVersion","requestOverrides","catalog","tools","length","CATALOG","dispatch","readSnapshot","readToolSnapshot","context","requestApproval","input","askApproval","holdSession","ready","prime","readTranscript","saved","hydrated","hydrate","answers","usage","queued","restore","history","pending","restorePending","busy","write","writeTranscript","buildPayload","getLedger","list","timer","setTimeout","clearTimeout","runTurn","text","beginTurn","messageId","startAssistant","controller","AbortController","onEvent","ev","send","signal","applyEvent","err","aborted","type","message","markStopped","finishAssistant","trimmed","enqueue","awaiting","awaitingBlockId","recordAnswer","kind","addUser","retry","lastUser","reverse","find","role","stop","requestStop","answerApproval","abort","off","subscribeAccountAccess","turnPhaseOf","queuePauseReason","next","shiftQueued","editQueued","takeQueuedToDraft","removeQueued","reset","clearConversation","undoThenReset","resetConversation","undoFirst","applyRestoredApproval","targetDigest","now","readTargetDigest","action","params","addNote","outcome","runGatedAction","ok","error","approve","answer","approved","a","answerToText","runAction","key","setActionState","toolCount","availableToolIds"],"sourceRoot":"../../../src","sources":["store/useAskBuoy.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1,14 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useAskBuoySettings = useAskBuoySettings;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _askBuoySettings = require("./askBuoySettings");
|
|
9
|
+
/** Subscribe the sheet to Ask Buoy's own preferences. */
|
|
10
|
+
|
|
11
|
+
function useAskBuoySettings() {
|
|
12
|
+
return (0, _react.useSyncExternalStore)(_askBuoySettings.askBuoySettings.subscribe, _askBuoySettings.askBuoySettings.get, _askBuoySettings.askBuoySettings.get);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=useAskBuoySettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_askBuoySettings","useAskBuoySettings","useSyncExternalStore","askBuoySettings","subscribe","get"],"sourceRoot":"../../../src","sources":["store/useAskBuoySettings.ts"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,gBAAA,GAAAD,OAAA;AAHA;;AAKO,SAASE,kBAAkBA,CAAA,EAAoB;EACpD,OAAO,IAAAC,2BAAoB,EAACC,gCAAe,CAACC,SAAS,EAAED,gCAAe,CAACE,GAAG,EAAEF,gCAAe,CAACE,GAAG,CAAC;AAClG","ignoreList":[]}
|
|
@@ -1 +1,153 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.askBuoySyncAdapter = exports.ASK_BUOY_ADAPTER_VERSION = void 0;
|
|
7
|
+
var _resetConversation = require("../store/resetConversation");
|
|
8
|
+
var _wire = require("./wire");
|
|
9
|
+
var _agentCore = require("@buoy-gg/agent-core");
|
|
10
|
+
var _askBuoyStore = require("../store/askBuoyStore");
|
|
11
|
+
/**
|
|
12
|
+
* The sync adapter, so Buoy Desktop and MCP can see what Ask Buoy is doing.
|
|
13
|
+
*
|
|
14
|
+
* Read-heavy on purpose. There is no `send` action: letting a remote client
|
|
15
|
+
* put words in the agent's mouth would mean anyone who can reach the broker —
|
|
16
|
+
* which has no authentication at all, binds 0.0.0.0, and accepts any client
|
|
17
|
+
* calling itself "Dashboard" — could drive a mutating agent on a tester's
|
|
18
|
+
* device. The chat is initiated on-device, by a person, full stop.
|
|
19
|
+
*
|
|
20
|
+
* `undoAll` IS exposed, because the asymmetry is deliberate: putting things
|
|
21
|
+
* back is the safe direction, and a dev watching from the desktop should be
|
|
22
|
+
* able to clean up a device without walking over to it.
|
|
23
|
+
*
|
|
24
|
+
* The transcript is redacted before it crosses the wire. Action results the
|
|
25
|
+
* agent read can contain storage values and response bodies, and this socket
|
|
26
|
+
* broadcasts to every connected dashboard — it already leaks license keys the
|
|
27
|
+
* same way.
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
const ASK_BUOY_ADAPTER_VERSION = exports.ASK_BUOY_ADAPTER_VERSION = 1;
|
|
31
|
+
const askBuoySyncAdapter = exports.askBuoySyncAdapter = {
|
|
32
|
+
version: ASK_BUOY_ADAPTER_VERSION,
|
|
33
|
+
async dispose(cleanup) {
|
|
34
|
+
const ledger = _askBuoyStore.askBuoyStore.getLedger();
|
|
35
|
+
for (const entry of ledger?.list() ?? []) {
|
|
36
|
+
if (entry.undoneAt) continue;
|
|
37
|
+
if (entry.effect.kind === "network-override") {
|
|
38
|
+
await cleanup("network", "deleteOverrideRule", {
|
|
39
|
+
id: entry.effect.ruleId
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
// Impersonation removes its own header without clearing host caches.
|
|
43
|
+
// Completed storage/query/state writes remain deliberate developer edits.
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
getSnapshot() {
|
|
47
|
+
const state = _askBuoyStore.askBuoyStore.getState();
|
|
48
|
+
const ledger = _askBuoyStore.askBuoyStore.getLedger();
|
|
49
|
+
const entries = ledger?.list() ?? [];
|
|
50
|
+
const outstanding = entries.filter(e => !e.undoneAt);
|
|
51
|
+
return {
|
|
52
|
+
version: ASK_BUOY_ADAPTER_VERSION,
|
|
53
|
+
busy: state.busy,
|
|
54
|
+
configured: state.configured,
|
|
55
|
+
notice: state.notice,
|
|
56
|
+
messageCount: state.messages.length,
|
|
57
|
+
// Only the shape of the conversation, never tool payloads.
|
|
58
|
+
messages: state.messages.map(m => ({
|
|
59
|
+
id: m.id,
|
|
60
|
+
role: m.role,
|
|
61
|
+
text: (0, _wire.redactForWire)(m.text),
|
|
62
|
+
streaming: !!m.streaming,
|
|
63
|
+
toolCalls: m.toolCalls.map(c => ({
|
|
64
|
+
toolId: c.toolId,
|
|
65
|
+
action: c.action,
|
|
66
|
+
status: c.status
|
|
67
|
+
}))
|
|
68
|
+
})),
|
|
69
|
+
// Session token totals, so a desktop/MCP observer can meter cost.
|
|
70
|
+
usage: state.usage,
|
|
71
|
+
pendingApproval: state.pending ? {
|
|
72
|
+
toolId: state.pending.toolId,
|
|
73
|
+
action: state.pending.action,
|
|
74
|
+
label: state.pending.label
|
|
75
|
+
} : null,
|
|
76
|
+
changes: {
|
|
77
|
+
// Transients (navigation, taps) are one-shot actions, not changes —
|
|
78
|
+
// same rule as the on-device bar, so desktop and device tell one story.
|
|
79
|
+
reversible: outstanding.filter(e => (0, _agentCore.isReversible)(e.effect)).length,
|
|
80
|
+
permanent: outstanding.filter(e => e.effect.kind !== "transient" && !(0, _agentCore.isReversible)(e.effect)).length,
|
|
81
|
+
transients: outstanding.filter(e => e.effect.kind === "transient").length,
|
|
82
|
+
items: outstanding.map(e => ({
|
|
83
|
+
kind: e.effect.kind,
|
|
84
|
+
label: e.effect.label
|
|
85
|
+
}))
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
},
|
|
89
|
+
subscribe(onChange) {
|
|
90
|
+
const offStore = _askBuoyStore.askBuoyStore.subscribe(onChange);
|
|
91
|
+
const offLedger = _askBuoyStore.askBuoyStore.getLedger()?.subscribe(onChange);
|
|
92
|
+
return () => {
|
|
93
|
+
offStore();
|
|
94
|
+
offLedger?.();
|
|
95
|
+
};
|
|
96
|
+
},
|
|
97
|
+
actions: {
|
|
98
|
+
/** What the agent changed, and whether it can be put back. */
|
|
99
|
+
listChanges: () => {
|
|
100
|
+
const entries = _askBuoyStore.askBuoyStore.getLedger()?.list() ?? [];
|
|
101
|
+
return entries.filter(e => !e.undoneAt).map(e => ({
|
|
102
|
+
id: e.id,
|
|
103
|
+
at: e.at,
|
|
104
|
+
toolId: e.toolId,
|
|
105
|
+
action: e.action,
|
|
106
|
+
kind: e.effect.kind,
|
|
107
|
+
label: e.effect.label,
|
|
108
|
+
reversible: (0, _agentCore.isReversible)(e.effect)
|
|
109
|
+
}));
|
|
110
|
+
},
|
|
111
|
+
/** Put back everything that can be put back. Safe direction only. */
|
|
112
|
+
undoAll: async () => {
|
|
113
|
+
const ledger = _askBuoyStore.askBuoyStore.getLedger();
|
|
114
|
+
if (!ledger) return {
|
|
115
|
+
ok: false,
|
|
116
|
+
error: "No Ask Buoy session on this device."
|
|
117
|
+
};
|
|
118
|
+
const outcome = await ledger.revertAll(_wire.dispatchToolAction);
|
|
119
|
+
return {
|
|
120
|
+
ok: true,
|
|
121
|
+
...outcome
|
|
122
|
+
};
|
|
123
|
+
},
|
|
124
|
+
/**
|
|
125
|
+
* Undo what can be undone, then clear the transcript and the ledger.
|
|
126
|
+
*
|
|
127
|
+
* The same path as the sheet's "New conversation" (resetConversation.ts).
|
|
128
|
+
* This action used to clear unconditionally — no question, no undo — so a
|
|
129
|
+
* desktop click could drop the only undo record for changes still live on
|
|
130
|
+
* the tester's phone. Now it refuses to clear when a revert fails and says
|
|
131
|
+
* what is still applied; the dashboard decides whether to clear anyway
|
|
132
|
+
* by calling `undoAll` first or accepting the kept conversation.
|
|
133
|
+
*/
|
|
134
|
+
reset: async () => {
|
|
135
|
+
const outcome = await (0, _resetConversation.resetConversation)({
|
|
136
|
+
dispatch: _wire.dispatchToolAction,
|
|
137
|
+
undoFirst: true
|
|
138
|
+
});
|
|
139
|
+
if (!outcome.cleared) {
|
|
140
|
+
return {
|
|
141
|
+
ok: false,
|
|
142
|
+
error: `Couldn't undo ${outcome.failed.length} change${outcome.failed.length === 1 ? "" : "s"} — conversation kept.`,
|
|
143
|
+
failed: outcome.failed
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
return {
|
|
147
|
+
ok: true,
|
|
148
|
+
reverted: outcome.reverted
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
//# sourceMappingURL=askBuoySyncAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_resetConversation","require","_wire","_agentCore","_askBuoyStore","ASK_BUOY_ADAPTER_VERSION","exports","askBuoySyncAdapter","version","dispose","cleanup","ledger","askBuoyStore","getLedger","entry","list","undoneAt","effect","kind","id","ruleId","getSnapshot","state","getState","entries","outstanding","filter","e","busy","configured","notice","messageCount","messages","length","map","m","role","text","redactForWire","streaming","toolCalls","c","toolId","action","status","usage","pendingApproval","pending","label","changes","reversible","isReversible","permanent","transients","items","subscribe","onChange","offStore","offLedger","actions","listChanges","at","undoAll","ok","error","outcome","revertAll","dispatchToolAction","reset","resetConversation","dispatch","undoFirst","cleared","failed","reverted"],"sourceRoot":"../../../src","sources":["sync/askBuoySyncAdapter.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1,141 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _vitest = require("vitest");
|
|
4
|
+
var _agentCore = require("@buoy-gg/agent-core");
|
|
5
|
+
var _askBuoySyncAdapter = require("./askBuoySyncAdapter");
|
|
6
|
+
var _wire = require("./wire");
|
|
7
|
+
var _askBuoyStore = require("../store/askBuoyStore");
|
|
8
|
+
/**
|
|
9
|
+
* What Ask Buoy is allowed to put on the broker wire, and what it refuses to
|
|
10
|
+
* accept from it.
|
|
11
|
+
*
|
|
12
|
+
* Both directions matter. The broker has no authentication, accepts any client
|
|
13
|
+
* that calls itself "Dashboard", and forwards to every connected dashboard — it
|
|
14
|
+
* already broadcasts license keys that way. So: no tool results go out, and no
|
|
15
|
+
* remote client can make the agent say anything.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
(0, _vitest.beforeEach)(() => {
|
|
19
|
+
_askBuoyStore.askBuoyStore.reset();
|
|
20
|
+
_askBuoyStore.askBuoyStore.setLedger(null);
|
|
21
|
+
});
|
|
22
|
+
(0, _vitest.describe)("the wire surface", () => {
|
|
23
|
+
(0, _vitest.it)("exposes no action that can make the agent talk", () => {
|
|
24
|
+
// A `send` here would let anyone on the LAN drive a mutating agent on a
|
|
25
|
+
// tester's phone. The conversation starts on-device, by a person.
|
|
26
|
+
const actions = Object.keys(_askBuoySyncAdapter.askBuoySyncAdapter.actions);
|
|
27
|
+
(0, _vitest.expect)(actions).not.toContain("send");
|
|
28
|
+
(0, _vitest.expect)(actions).not.toContain("ask");
|
|
29
|
+
(0, _vitest.expect)(actions).not.toContain("prompt");
|
|
30
|
+
(0, _vitest.expect)(actions.sort()).toEqual(["listChanges", "reset", "undoAll"]);
|
|
31
|
+
});
|
|
32
|
+
(0, _vitest.it)("puts the shape of the conversation on the wire, never tool payloads", () => {
|
|
33
|
+
_askBuoyStore.askBuoyStore.addUser("what is in storage");
|
|
34
|
+
const id = _askBuoyStore.askBuoyStore.startAssistant();
|
|
35
|
+
_askBuoyStore.askBuoyStore.applyEvent(id, {
|
|
36
|
+
type: "tool-start",
|
|
37
|
+
id: "c1",
|
|
38
|
+
toolId: "storage",
|
|
39
|
+
action: "async.getItem",
|
|
40
|
+
label: "Read session",
|
|
41
|
+
description: "Read one AsyncStorage key",
|
|
42
|
+
params: {
|
|
43
|
+
key: "session"
|
|
44
|
+
},
|
|
45
|
+
effect: "read"
|
|
46
|
+
});
|
|
47
|
+
_askBuoyStore.askBuoyStore.applyEvent(id, {
|
|
48
|
+
type: "tool-end",
|
|
49
|
+
id: "c1",
|
|
50
|
+
ok: true,
|
|
51
|
+
durationMs: 12,
|
|
52
|
+
summary: "eyJhbGciOiJIUzI1NiJ9.super.secret"
|
|
53
|
+
});
|
|
54
|
+
const snap = _askBuoySyncAdapter.askBuoySyncAdapter.getSnapshot();
|
|
55
|
+
const call = snap.messages[1].toolCalls[0];
|
|
56
|
+
(0, _vitest.expect)(call).toEqual({
|
|
57
|
+
toolId: "storage",
|
|
58
|
+
action: "async.getItem",
|
|
59
|
+
status: "ok"
|
|
60
|
+
});
|
|
61
|
+
// The result summary is not on the wire at all — there is no field for it.
|
|
62
|
+
(0, _vitest.expect)(JSON.stringify(snap)).not.toContain("super.secret");
|
|
63
|
+
});
|
|
64
|
+
(0, _vitest.it)("redacts credentials that made it into the assistant's prose", () => {
|
|
65
|
+
_askBuoyStore.askBuoyStore.addUser("show me the auth header");
|
|
66
|
+
const id = _askBuoyStore.askBuoyStore.startAssistant();
|
|
67
|
+
_askBuoyStore.askBuoyStore.applyEvent(id, {
|
|
68
|
+
type: "text",
|
|
69
|
+
delta: "It sends Authorization: Bearer abcdef0123456789ghijkl to the API."
|
|
70
|
+
});
|
|
71
|
+
const snap = _askBuoySyncAdapter.askBuoySyncAdapter.getSnapshot();
|
|
72
|
+
(0, _vitest.expect)(JSON.stringify(snap)).not.toContain("abcdef0123456789ghijkl");
|
|
73
|
+
});
|
|
74
|
+
(0, _vitest.it)("reports reversible and permanent changes separately", () => {
|
|
75
|
+
const ledger = new _agentCore.EffectLedger();
|
|
76
|
+
_askBuoyStore.askBuoyStore.setLedger(ledger);
|
|
77
|
+
ledger.record("storage", "async.setItem", {
|
|
78
|
+
kind: "storage-write",
|
|
79
|
+
toolId: "storage",
|
|
80
|
+
action: "async.setItem",
|
|
81
|
+
key: "points",
|
|
82
|
+
before: "240",
|
|
83
|
+
label: "Set points to 1500"
|
|
84
|
+
});
|
|
85
|
+
ledger.record("perf-monitor", "clearAll", {
|
|
86
|
+
kind: "transient",
|
|
87
|
+
label: "Cleared samples"
|
|
88
|
+
});
|
|
89
|
+
// A store write with no captured prior state: recorded, visible, and
|
|
90
|
+
// NOT something Undo can deliver — it must count as permanent.
|
|
91
|
+
ledger.record("zustand", "setState", {
|
|
92
|
+
kind: "state-write",
|
|
93
|
+
toolId: "zustand",
|
|
94
|
+
action: "setState",
|
|
95
|
+
label: "Update the cart store"
|
|
96
|
+
});
|
|
97
|
+
const snap = _askBuoySyncAdapter.askBuoySyncAdapter.getSnapshot();
|
|
98
|
+
(0, _vitest.expect)(snap.changes.reversible).toBe(1);
|
|
99
|
+
// The transient is an ACTION, not a change — it must not inflate
|
|
100
|
+
// "permanent" (that read "Changed this app · N permanent" after a
|
|
101
|
+
// read-only tour). It is still reported, in its own count.
|
|
102
|
+
(0, _vitest.expect)(snap.changes.permanent).toBe(1);
|
|
103
|
+
(0, _vitest.expect)(snap.changes.transients).toBe(1);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
(0, _vitest.describe)("redactForWire", () => {
|
|
107
|
+
(0, _vitest.it)("removes bearer tokens, JWTs, api keys and license keys", () => {
|
|
108
|
+
const cases = ["Authorization: Bearer abcdefghijklmnop123456", "token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9abcdefgh", "key sk-abcdefghijklmnop1234", "license BUOY-ABCD-1234-EFGH", 'the header is "x-api-key": "supersecretvalue"'];
|
|
109
|
+
for (const input of cases) {
|
|
110
|
+
(0, _vitest.expect)((0, _wire.redactForWire)(input)).toContain("removed]");
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
(0, _vitest.it)("leaves ordinary prose alone", () => {
|
|
114
|
+
const text = "The /menu call returned 200 with 12 items and the burger was in stock.";
|
|
115
|
+
(0, _vitest.expect)((0, _wire.redactForWire)(text)).toBe(text);
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
(0, _vitest.describe)("undo from the desktop", () => {
|
|
119
|
+
(0, _vitest.it)("is allowed, because putting things back is the safe direction", async () => {
|
|
120
|
+
const ledger = new _agentCore.EffectLedger();
|
|
121
|
+
_askBuoyStore.askBuoyStore.setLedger(ledger);
|
|
122
|
+
const store = new Map([["points", "1500"]]);
|
|
123
|
+
ledger.record("storage", "async.setItem", {
|
|
124
|
+
kind: "storage-write",
|
|
125
|
+
toolId: "storage",
|
|
126
|
+
action: "async.setItem",
|
|
127
|
+
key: "points",
|
|
128
|
+
before: "240",
|
|
129
|
+
label: "Set points to 1500"
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
// The adapter dispatches through the real seam; stub it at the ledger.
|
|
133
|
+
await ledger.revertAll(async (_t, action, params) => {
|
|
134
|
+
const p = params;
|
|
135
|
+
if (action === "async.setItem") store.set(p.key, p.value);
|
|
136
|
+
return undefined;
|
|
137
|
+
});
|
|
138
|
+
(0, _vitest.expect)(store.get("points")).toBe("240");
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
//# sourceMappingURL=askBuoySyncAdapter.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_vitest","require","_agentCore","_askBuoySyncAdapter","_wire","_askBuoyStore","beforeEach","askBuoyStore","reset","setLedger","describe","it","actions","Object","keys","askBuoySyncAdapter","expect","not","toContain","sort","toEqual","addUser","id","startAssistant","applyEvent","type","toolId","action","label","description","params","key","effect","ok","durationMs","summary","snap","getSnapshot","call","messages","toolCalls","status","JSON","stringify","delta","ledger","EffectLedger","record","kind","before","changes","reversible","toBe","permanent","transients","cases","input","redactForWire","text","store","Map","revertAll","_t","p","set","value","undefined","get"],"sourceRoot":"../../../src","sources":["sync/askBuoySyncAdapter.test.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1,58 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "dispatchToolAction", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _sharedUi.dispatchToolAction;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
exports.redactForWire = redactForWire;
|
|
13
|
+
var _sharedUi = require("@buoy-gg/shared-ui");
|
|
14
|
+
/**
|
|
15
|
+
* What the sync adapter is allowed to put on the broker wire.
|
|
16
|
+
*
|
|
17
|
+
* The broker has no authentication, `cors.origin: "*"`, binds every interface,
|
|
18
|
+
* and forwards to every connected dashboard — it already broadcasts each
|
|
19
|
+
* device's license key to every socket. A chat transcript is not a safe thing
|
|
20
|
+
* to add to that channel unfiltered: the agent reads storage values, network
|
|
21
|
+
* response bodies and user records, and any of it can end up quoted in an
|
|
22
|
+
* answer.
|
|
23
|
+
*
|
|
24
|
+
* So text crossing the wire is scrubbed for the shapes that are unambiguously
|
|
25
|
+
* credentials. This is a reduction in blast radius, not a guarantee — the real
|
|
26
|
+
* guarantee is that tool RESULTS never cross at all (see askBuoySyncAdapter).
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
const PATTERNS = [{
|
|
30
|
+
re: /\bBearer\s+[A-Za-z0-9._~+/-]{12,}=*/gi,
|
|
31
|
+
label: "[bearer token removed]"
|
|
32
|
+
}, {
|
|
33
|
+
re: /\beyJ[A-Za-z0-9._-]{20,}/g,
|
|
34
|
+
label: "[jwt removed]"
|
|
35
|
+
}, {
|
|
36
|
+
re: /\bsk-[A-Za-z0-9_-]{16,}/g,
|
|
37
|
+
label: "[api key removed]"
|
|
38
|
+
}, {
|
|
39
|
+
re: /\bBUOY-[A-Z0-9-]{8,}/g,
|
|
40
|
+
label: "[license key removed]"
|
|
41
|
+
},
|
|
42
|
+
// Common "key: value" credential shapes in a quoted payload.
|
|
43
|
+
{
|
|
44
|
+
re: /("|')?(authorization|x-api-key|api[_-]?key|password|secret|access_token|refresh_token)\1?\s*[:=]\s*("|')?[^\s"',}]{6,}/gi,
|
|
45
|
+
label: "[credential removed]"
|
|
46
|
+
}];
|
|
47
|
+
function redactForWire(text) {
|
|
48
|
+
if (!text) return text;
|
|
49
|
+
let out = text;
|
|
50
|
+
for (const {
|
|
51
|
+
re,
|
|
52
|
+
label
|
|
53
|
+
} of PATTERNS) {
|
|
54
|
+
out = out.replace(re, label);
|
|
55
|
+
}
|
|
56
|
+
return out;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=wire.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_sharedUi","require","PATTERNS","re","label","redactForWire","text","out","replace"],"sourceRoot":"../../../src","sources":["sync/wire.ts"],"mappings":";;;;;;;;;;;;AAcA,IAAAA,SAAA,GAAAC,OAAA;AAdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,MAAMC,QAAyC,GAAG,CAChD;EAAEC,EAAE,EAAE,uCAAuC;EAAEC,KAAK,EAAE;AAAyB,CAAC,EAChF;EAAED,EAAE,EAAE,2BAA2B;EAAEC,KAAK,EAAE;AAAgB,CAAC,EAC3D;EAAED,EAAE,EAAE,0BAA0B;EAAEC,KAAK,EAAE;AAAoB,CAAC,EAC9D;EAAED,EAAE,EAAE,uBAAuB;EAAEC,KAAK,EAAE;AAAwB,CAAC;AAC/D;AACA;EACED,EAAE,EAAE,0HAA0H;EAC9HC,KAAK,EAAE;AACT,CAAC,CACF;AAEM,SAASC,aAAaA,CAACC,IAAY,EAAU;EAClD,IAAI,CAACA,IAAI,EAAE,OAAOA,IAAI;EACtB,IAAIC,GAAG,GAAGD,IAAI;EACd,KAAK,MAAM;IAAEH,EAAE;IAAEC;EAAM,CAAC,IAAIF,QAAQ,EAAE;IACpCK,GAAG,GAAGA,GAAG,CAACC,OAAO,CAACL,EAAE,EAAEC,KAAK,CAAC;EAC9B;EACA,OAAOG,GAAG;AACZ","ignoreList":[]}
|
package/lib/commonjs/types.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["types.ts"],"mappings":"","ignoreList":[]}
|