@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_agentCore","require","foldable","c","effect","status","groupCalls","calls","out","run","flush","length","push","kind","call","titles","Set","map","toolTitle","toolId","id","join","label","joinNatural","count","items","slice","turnFooter","message","parts","startedAt","undefined","endedAt","formatElapsed","n","toolCalls","s","filter","failed","refused","declined","stopped","ms","total","Math","max","floor","m","String","padStart","h"],"sourceRoot":"../../../src","sources":["store/activityGroups.ts"],"mappings":";;;;;;;;AAcA,IAAAA,UAAA,GAAAC,OAAA;AAdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AASA,MAAMC,QAAQ,GAAIC,CAAe,IAAKA,CAAC,CAACC,MAAM,KAAK,MAAM,IAAID,CAAC,CAACE,MAAM,KAAK,IAAI;AAEvE,SAASC,UAAUA,CAACC,KAAqB,EAAkB;EAChE,MAAMC,GAAmB,GAAG,EAAE;EAC9B,IAAIC,GAAmB,GAAG,EAAE;EAC5B,MAAMC,KAAK,GAAGA,CAAA,KAAM;IAClB,IAAID,GAAG,CAACE,MAAM,KAAK,CAAC,EAAE;IACtB,IAAIF,GAAG,CAACE,MAAM,KAAK,CAAC,EAAE;MACpBH,GAAG,CAACI,IAAI,CAAC;QAAEC,IAAI,EAAE,MAAM;QAAEC,IAAI,EAAEL,GAAG,CAAC,CAAC;MAAG,CAAC,CAAC;IAC3C,CAAC,MAAM;MACL,MAAMM,MAAM,GAAG,CAAC,GAAG,IAAIC,GAAG,CAACP,GAAG,CAACQ,GAAG,CAAEd,CAAC,IAAK,IAAAe,oBAAS,EAACf,CAAC,CAACgB,MAAM,CAAC,CAAC,CAAC,CAAC;MAChEX,GAAG,CAACI,IAAI,CAAC;QACPC,IAAI,EAAE,OAAO;QACbO,EAAE,EAAEX,GAAG,CAACQ,GAAG,CAAEd,CAAC,IAAKA,CAAC,CAACiB,EAAE,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;QAClCd,KAAK,EAAEE,GAAG;QACVa,KAAK,EAAE,aAAaC,WAAW,CAACR,MAAM,CAAC,EAAE;QACzCS,KAAK,EAAEf,GAAG,CAACE;MACb,CAAC,CAAC;IACJ;IACAF,GAAG,GAAG,EAAE;EACV,CAAC;EACD,KAAK,MAAMK,IAAI,IAAIP,KAAK,EAAE;IACxB,IAAIL,QAAQ,CAACY,IAAI,CAAC,EAAE;MAClBL,GAAG,CAACG,IAAI,CAACE,IAAI,CAAC;MACd;IACF;IACAJ,KAAK,CAAC,CAAC;IACPF,GAAG,CAACI,IAAI,CAAC;MAAEC,IAAI,EAAE,MAAM;MAAEC;IAAK,CAAC,CAAC;EAClC;EACAJ,KAAK,CAAC,CAAC;EACP,OAAOF,GAAG;AACZ;;AAEA;AACA,SAASe,WAAWA,CAACE,KAAe,EAAU;EAC5C,IAAIA,KAAK,CAACd,MAAM,IAAI,CAAC,EAAE,OAAOc,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;EAC5C,IAAIA,KAAK,CAACd,MAAM,KAAK,CAAC,EAAE,OAAO,GAAGc,KAAK,CAAC,CAAC,CAAC,QAAQA,KAAK,CAAC,CAAC,CAAC,EAAE;EAC5D,OAAO,GAAGA,KAAK,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAACL,IAAI,CAAC,IAAI,CAAC,QAAQI,KAAK,CAACA,KAAK,CAACd,MAAM,GAAG,CAAC,CAAC,EAAE;AAC1E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASgB,UAAUA,CAACC,OAI1B,EAAiB;EAChB,MAAMC,KAAe,GAAG,EAAE;EAC1B,IAAID,OAAO,CAACE,SAAS,KAAKC,SAAS,IAAIH,OAAO,CAACI,OAAO,KAAKD,SAAS,IAAIH,OAAO,CAACI,OAAO,IAAIJ,OAAO,CAACE,SAAS,EAAE;IAC5GD,KAAK,CAACjB,IAAI,CAACqB,aAAa,CAACL,OAAO,CAACI,OAAO,GAAGJ,OAAO,CAACE,SAAS,CAAC,CAAC;EAChE;EACA,MAAMI,CAAC,GAAGN,OAAO,CAACO,SAAS,CAACxB,MAAM;EAClC,IAAIuB,CAAC,GAAG,CAAC,EAAE;IACTL,KAAK,CAACjB,IAAI,CAAC,GAAGsB,CAAC,UAAUA,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;IAC9C,MAAMV,KAAK,GAAIY,CAAyB,IAAKR,OAAO,CAACO,SAAS,CAACE,MAAM,CAAElC,CAAC,IAAKA,CAAC,CAACE,MAAM,KAAK+B,CAAC,CAAC,CAACzB,MAAM;IACnG,MAAM2B,MAAM,GAAGd,KAAK,CAAC,QAAQ,CAAC;IAC9B,MAAMe,OAAO,GAAGf,KAAK,CAAC,SAAS,CAAC;IAChC,MAAMgB,QAAQ,GAAGhB,KAAK,CAAC,UAAU,CAAC;IAClC,MAAMiB,OAAO,GAAGjB,KAAK,CAAC,SAAS,CAAC;IAChC,IAAIc,MAAM,EAAET,KAAK,CAACjB,IAAI,CAAC,GAAG0B,MAAM,SAAS,CAAC;IAC1C,IAAIC,OAAO,EAAEV,KAAK,CAACjB,IAAI,CAAC,GAAG2B,OAAO,UAAU,CAAC;IAC7C,IAAIC,QAAQ,EAAEX,KAAK,CAACjB,IAAI,CAAC,GAAG4B,QAAQ,WAAW,CAAC;IAChD,IAAIC,OAAO,EAAEZ,KAAK,CAACjB,IAAI,CAAC,GAAG6B,OAAO,UAAU,CAAC;EAC/C;EACA,OAAOZ,KAAK,CAAClB,MAAM,GAAGkB,KAAK,CAACR,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI;AAChD;;AAEA;AACO,SAASY,aAAaA,CAACS,EAAU,EAAU;EAChD,MAAMC,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,KAAK,CAACJ,EAAE,GAAG,IAAI,CAAC,CAAC;EAChD,IAAIC,KAAK,GAAG,EAAE,EAAE,OAAO,GAAGA,KAAK,GAAG;EAClC,MAAMI,CAAC,GAAGH,IAAI,CAACE,KAAK,CAACH,KAAK,GAAG,EAAE,CAAC;EAChC,MAAMP,CAAC,GAAGO,KAAK,GAAG,EAAE;EACpB,IAAII,CAAC,GAAG,EAAE,EAAE,OAAO,GAAGA,CAAC,KAAKC,MAAM,CAACZ,CAAC,CAAC,CAACa,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG;EACzD,MAAMC,CAAC,GAAGN,IAAI,CAACE,KAAK,CAACC,CAAC,GAAG,EAAE,CAAC;EAC5B,OAAO,GAAGG,CAAC,KAAKF,MAAM,CAACD,CAAC,GAAG,EAAE,CAAC,CAACE,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG;AACpD","ignoreList":[]}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _vitest = require("vitest");
|
|
4
|
+
var _activityGroups = require("./activityGroups");
|
|
5
|
+
/**
|
|
6
|
+
* The fold rule: consecutive successful reads fold, nothing else ever does,
|
|
7
|
+
* and a group never crosses a write.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
const call = (id, toolId, effect, status = "ok") => ({
|
|
11
|
+
id,
|
|
12
|
+
toolId,
|
|
13
|
+
action: "x",
|
|
14
|
+
label: `${toolId} ${id}`,
|
|
15
|
+
status,
|
|
16
|
+
effect
|
|
17
|
+
});
|
|
18
|
+
(0, _vitest.describe)("groupCalls", () => {
|
|
19
|
+
(0, _vitest.it)("leaves a single read as an ordinary row", () => {
|
|
20
|
+
const items = (0, _activityGroups.groupCalls)([call("a", "console", "read")]);
|
|
21
|
+
(0, _vitest.expect)(items).toEqual([{
|
|
22
|
+
kind: "call",
|
|
23
|
+
call: _vitest.expect.objectContaining({
|
|
24
|
+
id: "a"
|
|
25
|
+
})
|
|
26
|
+
}]);
|
|
27
|
+
});
|
|
28
|
+
(0, _vitest.it)("folds consecutive successful reads and names the tools once each", () => {
|
|
29
|
+
const items = (0, _activityGroups.groupCalls)([call("a", "network", "read"), call("b", "storage", "read"), call("c", "storage", "read")]);
|
|
30
|
+
(0, _vitest.expect)(items).toHaveLength(1);
|
|
31
|
+
const g = items[0];
|
|
32
|
+
(0, _vitest.expect)(g.kind).toBe("reads");
|
|
33
|
+
(0, _vitest.expect)(g.kind === "reads" && g.count).toBe(3);
|
|
34
|
+
(0, _vitest.expect)(g.kind === "reads" && g.label).toBe("Looked at Network and Storage");
|
|
35
|
+
});
|
|
36
|
+
(0, _vitest.it)("never folds a write, and never folds reads across one", () => {
|
|
37
|
+
const items = (0, _activityGroups.groupCalls)([call("a", "network", "read"), call("b", "storage", "read"), call("w", "zustand", "write"), call("c", "storage", "read"), call("d", "console", "read")]);
|
|
38
|
+
(0, _vitest.expect)(items.map(i => i.kind === "reads" ? `reads:${i.count}` : `call:${i.call.id}`)).toEqual(["reads:2", "call:w", "reads:2"]);
|
|
39
|
+
});
|
|
40
|
+
(0, _vitest.it)("keeps failed, refused, declined, stopped and running reads as their own rows", () => {
|
|
41
|
+
const items = (0, _activityGroups.groupCalls)([call("a", "network", "read"), call("f", "storage", "read", "failed"), call("b", "storage", "read"), call("r", "storage", "read", "running")]);
|
|
42
|
+
(0, _vitest.expect)(items.map(i => i.kind)).toEqual(["call", "call", "call", "call"]);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
(0, _vitest.describe)("turnFooter", () => {
|
|
46
|
+
(0, _vitest.it)("reports duration and action count", () => {
|
|
47
|
+
(0, _vitest.expect)((0, _activityGroups.turnFooter)({
|
|
48
|
+
startedAt: 1_000,
|
|
49
|
+
endedAt: 13_000,
|
|
50
|
+
toolCalls: [call("a", "network", "read"), call("b", "zustand", "write")]
|
|
51
|
+
})).toBe("12s · 2 actions");
|
|
52
|
+
});
|
|
53
|
+
(0, _vitest.it)("separates the outcomes that were not plain successes", () => {
|
|
54
|
+
(0, _vitest.expect)((0, _activityGroups.turnFooter)({
|
|
55
|
+
startedAt: 0,
|
|
56
|
+
endedAt: 48_000,
|
|
57
|
+
toolCalls: [call("a", "network", "read"), call("b", "storage", "write", "failed"), call("c", "storage", "destructive", "declined"), call("d", "storage", "write", "stopped")]
|
|
58
|
+
})).toBe("48s · 4 actions · 1 failed · 1 declined · 1 not run");
|
|
59
|
+
});
|
|
60
|
+
(0, _vitest.it)("invents no duration for a note with no start time", () => {
|
|
61
|
+
(0, _vitest.expect)((0, _activityGroups.turnFooter)({
|
|
62
|
+
endedAt: 5_000,
|
|
63
|
+
toolCalls: []
|
|
64
|
+
})).toBeNull();
|
|
65
|
+
(0, _vitest.expect)((0, _activityGroups.turnFooter)({
|
|
66
|
+
endedAt: 5_000,
|
|
67
|
+
toolCalls: [call("a", "network", "read")]
|
|
68
|
+
})).toBe("1 action");
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
(0, _vitest.describe)("formatElapsed", () => {
|
|
72
|
+
(0, _vitest.it)("is compact", () => {
|
|
73
|
+
(0, _vitest.expect)((0, _activityGroups.formatElapsed)(4_200)).toBe("4s");
|
|
74
|
+
(0, _vitest.expect)((0, _activityGroups.formatElapsed)(64_000)).toBe("1m 04s");
|
|
75
|
+
(0, _vitest.expect)((0, _activityGroups.formatElapsed)(3_720_000)).toBe("1h 02m");
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
//# sourceMappingURL=activityGroups.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_vitest","require","_activityGroups","call","id","toolId","effect","status","action","label","describe","it","items","groupCalls","expect","toEqual","kind","objectContaining","toHaveLength","g","toBe","count","map","i","turnFooter","startedAt","endedAt","toolCalls","toBeNull","formatElapsed"],"sourceRoot":"../../../src","sources":["store/activityGroups.test.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,11 +15,16 @@ var _sharedUi = require("@buoy-gg/shared-ui");
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
const DEFAULT_SETTINGS = exports.DEFAULT_SETTINGS = {
|
|
18
|
-
showThinking: false
|
|
18
|
+
showThinking: false,
|
|
19
|
+
bypassApprovals: false,
|
|
20
|
+
readOnly: false
|
|
19
21
|
};
|
|
20
22
|
const store = (0, _sharedUi.definePersistedSetting)(`${_sharedUi.devToolsStorageKeys.base}_ask_buoy_settings`, DEFAULT_SETTINGS, {
|
|
21
23
|
sanitize: merged => ({
|
|
22
|
-
showThinking: merged.showThinking === true
|
|
24
|
+
showThinking: merged.showThinking === true,
|
|
25
|
+
// Fails closed: anything but a literal `true` on disk means "ask me".
|
|
26
|
+
bypassApprovals: merged.bypassApprovals === true,
|
|
27
|
+
readOnly: merged.readOnly === true
|
|
23
28
|
})
|
|
24
29
|
});
|
|
25
30
|
let current = DEFAULT_SETTINGS;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_sharedUi","require","DEFAULT_SETTINGS","exports","showThinking","store","definePersistedSetting","devToolsStorageKeys","base","sanitize","merged","current","loaded","listeners","Set","emit","fn","askBuoySettings","get","subscribe","add","load","then","value","delete","set","key","save","reset","clear"],"sourceRoot":"../../../src","sources":["store/askBuoySettings.ts"],"mappings":";;;;;;AAQA,IAAAA,SAAA,GAAAC,OAAA;AARA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;
|
|
1
|
+
{"version":3,"names":["_sharedUi","require","DEFAULT_SETTINGS","exports","showThinking","bypassApprovals","readOnly","store","definePersistedSetting","devToolsStorageKeys","base","sanitize","merged","current","loaded","listeners","Set","emit","fn","askBuoySettings","get","subscribe","add","load","then","value","delete","set","key","save","reset","clear"],"sourceRoot":"../../../src","sources":["store/askBuoySettings.ts"],"mappings":";;;;;;AAQA,IAAAA,SAAA,GAAAC,OAAA;AARA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAyCO,MAAMC,gBAAiC,GAAAC,OAAA,CAAAD,gBAAA,GAAG;EAC/CE,YAAY,EAAE,KAAK;EACnBC,eAAe,EAAE,KAAK;EACtBC,QAAQ,EAAE;AACZ,CAAC;AAED,MAAMC,KAAK,GAAG,IAAAC,gCAAsB,EAClC,GAAGC,6BAAmB,CAACC,IAAI,oBAAoB,EAC/CR,gBAAgB,EAChB;EACES,QAAQ,EAAGC,MAAM,KAAM;IACrBR,YAAY,EAAEQ,MAAM,CAACR,YAAY,KAAK,IAAI;IAC1C;IACAC,eAAe,EAAEO,MAAM,CAACP,eAAe,KAAK,IAAI;IAChDC,QAAQ,EAAEM,MAAM,CAACN,QAAQ,KAAK;EAChC,CAAC;AACH,CACF,CAAC;AAED,IAAIO,OAAwB,GAAGX,gBAAgB;AAC/C,IAAIY,MAAM,GAAG,KAAK;AAClB,MAAMC,SAAS,GAAG,IAAIC,GAAG,CAAa,CAAC;AAEvC,SAASC,IAAIA,CAAA,EAAS;EACpB,KAAK,MAAMC,EAAE,IAAIH,SAAS,EAAE;IAC1B,IAAI;MACFG,EAAE,CAAC,CAAC;IACN,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ;AACF;AAEO,MAAMC,eAAe,GAAAhB,OAAA,CAAAgB,eAAA,GAAG;EAC7BC,GAAG,EAAEA,CAAA,KAAuBP,OAAO;EAEnCQ,SAASA,CAACH,EAAc,EAAc;IACpCH,SAAS,CAACO,GAAG,CAACJ,EAAE,CAAC;IACjB;IACA,IAAI,CAACJ,MAAM,EAAE;MACXA,MAAM,GAAG,IAAI;MACb,KAAKP,KAAK,CAACgB,IAAI,CAAC,CAAC,CAACC,IAAI,CAAEC,KAAK,IAAK;QAChCZ,OAAO,GAAGY,KAAK;QACfR,IAAI,CAAC,CAAC;MACR,CAAC,CAAC;IACJ;IACA,OAAO,MAAMF,SAAS,CAACW,MAAM,CAACR,EAAE,CAAC;EACnC,CAAC;EAEDS,GAAGA,CAAkCC,GAAM,EAAEH,KAAyB,EAAQ;IAC5E,IAAIZ,OAAO,CAACe,GAAG,CAAC,KAAKH,KAAK,EAAE;IAC5BZ,OAAO,GAAG;MAAE,GAAGA,OAAO;MAAE,CAACe,GAAG,GAAGH;IAAM,CAAC;IACtCR,IAAI,CAAC,CAAC;IACN,KAAKV,KAAK,CAACsB,IAAI,CAAChB,OAAO,CAAC;EAC1B,CAAC;EAED;EACAiB,KAAKA,CAAA,EAAS;IACZjB,OAAO,GAAGX,gBAAgB;IAC1BY,MAAM,GAAG,KAAK;IACd,KAAKP,KAAK,CAACwB,KAAK,CAAC,CAAC;EACpB;AACF,CAAC","ignoreList":[]}
|
|
@@ -4,6 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.askBuoyStore = void 0;
|
|
7
|
+
exports.queuePauseReason = queuePauseReason;
|
|
8
|
+
exports.turnPhaseOf = turnPhaseOf;
|
|
7
9
|
var _agentCore = require("@buoy-gg/agent-core");
|
|
8
10
|
/**
|
|
9
11
|
* Conversation state for the sheet.
|
|
@@ -31,6 +33,25 @@ var _agentCore = require("@buoy-gg/agent-core");
|
|
|
31
33
|
* all the thoughts in a lump at the top would misreport it.
|
|
32
34
|
*/
|
|
33
35
|
|
|
36
|
+
/**
|
|
37
|
+
* A message typed while a turn was running.
|
|
38
|
+
*
|
|
39
|
+
* A list with ids, not a string: the single slot it replaced OVERWROTE — type
|
|
40
|
+
* two things mid-turn and the first vanished, which is precisely the loss the
|
|
41
|
+
* queue exists to prevent. Ids so two identical requests stay distinguishable
|
|
42
|
+
* and the list can be edited by row.
|
|
43
|
+
*/
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* The one word every component reads to know what the chat is doing.
|
|
47
|
+
*
|
|
48
|
+
* Presentation state (minimised, settings open) is NOT in here on purpose —
|
|
49
|
+
* it sits on top. This exists because the header, the composer, the queue
|
|
50
|
+
* flush and the modal each used to derive their own answer from five
|
|
51
|
+
* overlapping booleans, and disagreed: the queue fired after an error because
|
|
52
|
+
* "not busy" looked like "idle" to it.
|
|
53
|
+
*/
|
|
54
|
+
|
|
34
55
|
/**
|
|
35
56
|
* Message ids carry this run's token — see agent-core's `runId`. A plain `m1`
|
|
36
57
|
* collided head-on with the `m1` in a restored transcript, and the message
|
|
@@ -53,16 +74,21 @@ function encodeParams(params) {
|
|
|
53
74
|
return undefined;
|
|
54
75
|
}
|
|
55
76
|
}
|
|
77
|
+
|
|
78
|
+
/** Queue ids carry the run token too — a restored queue keys on them. */
|
|
79
|
+
const nextQueuedId = (0, _agentCore.idFactory)("q");
|
|
56
80
|
let state = {
|
|
57
81
|
messages: [],
|
|
58
82
|
busy: false,
|
|
83
|
+
stopping: false,
|
|
59
84
|
pending: null,
|
|
60
85
|
notice: null,
|
|
61
86
|
configured: false,
|
|
62
87
|
answers: {},
|
|
63
88
|
awaitingBlockId: null,
|
|
64
89
|
actionState: {},
|
|
65
|
-
queued:
|
|
90
|
+
queued: [],
|
|
91
|
+
draft: null,
|
|
66
92
|
usage: {
|
|
67
93
|
input: 0,
|
|
68
94
|
output: 0,
|
|
@@ -153,10 +179,58 @@ const askBuoyStore = exports.askBuoyStore = {
|
|
|
153
179
|
busy: true
|
|
154
180
|
});
|
|
155
181
|
},
|
|
156
|
-
/** Park a message typed mid-turn
|
|
157
|
-
|
|
182
|
+
/** Park a message typed mid-turn, behind whatever is already parked. */
|
|
183
|
+
enqueue(text) {
|
|
184
|
+
const item = {
|
|
185
|
+
id: nextQueuedId(),
|
|
186
|
+
text
|
|
187
|
+
};
|
|
188
|
+
set({
|
|
189
|
+
queued: [...state.queued, item]
|
|
190
|
+
});
|
|
191
|
+
return item;
|
|
192
|
+
},
|
|
193
|
+
/** Drop one parked message — the ✕ on its row. */
|
|
194
|
+
removeQueued(id) {
|
|
195
|
+
if (!state.queued.some(q => q.id === id)) return;
|
|
196
|
+
set({
|
|
197
|
+
queued: state.queued.filter(q => q.id !== id)
|
|
198
|
+
});
|
|
199
|
+
},
|
|
200
|
+
/** Take the FIRST parked message off the queue — the flush path. */
|
|
201
|
+
shiftQueued() {
|
|
202
|
+
const [next, ...rest] = state.queued;
|
|
203
|
+
if (!next) return undefined;
|
|
204
|
+
set({
|
|
205
|
+
queued: rest
|
|
206
|
+
});
|
|
207
|
+
return next;
|
|
208
|
+
},
|
|
209
|
+
/** Hand one parked message back to the composer to edit. See `draft`. */
|
|
210
|
+
takeQueuedToDraft(id) {
|
|
211
|
+
const item = state.queued.find(q => q.id === id);
|
|
212
|
+
if (!item) return;
|
|
213
|
+
set({
|
|
214
|
+
queued: state.queued.filter(q => q.id !== id),
|
|
215
|
+
draft: item.text
|
|
216
|
+
});
|
|
217
|
+
},
|
|
218
|
+
/**
|
|
219
|
+
* The user pressed Stop. The turn is still winding down — the abort is only
|
|
220
|
+
* read between calls — so the phase is `stopping`, not `idle`, until
|
|
221
|
+
* `finishAssistant` lands.
|
|
222
|
+
*/
|
|
223
|
+
requestStop() {
|
|
224
|
+
if (!state.busy || state.stopping) return;
|
|
225
|
+
set({
|
|
226
|
+
stopping: true
|
|
227
|
+
});
|
|
228
|
+
},
|
|
229
|
+
/** The composer has taken the draft into its input. */
|
|
230
|
+
clearDraft() {
|
|
231
|
+
if (state.draft === null) return;
|
|
158
232
|
set({
|
|
159
|
-
|
|
233
|
+
draft: null
|
|
160
234
|
});
|
|
161
235
|
},
|
|
162
236
|
/** Drop one message — the failed assistant bubble a retry replaces. */
|
|
@@ -208,13 +282,33 @@ const askBuoyStore = exports.askBuoyStore = {
|
|
|
208
282
|
* only form a non-developer can actually check.
|
|
209
283
|
*/
|
|
210
284
|
applyEvent(messageId, ev) {
|
|
285
|
+
if (ev.type === "history-trimmed") {
|
|
286
|
+
// Before the answer it affects, so it reads as a caption on the gap
|
|
287
|
+
// rather than as part of the reply.
|
|
288
|
+
const at = state.messages.findIndex(m => m.id === messageId);
|
|
289
|
+
const line = {
|
|
290
|
+
id: nextId(),
|
|
291
|
+
role: "assistant",
|
|
292
|
+
system: true,
|
|
293
|
+
text: `Older messages were trimmed from the agent's memory (${ev.droppedRounds} exchange${ev.droppedRounds === 1 ? "" : "s"}). It may not recall setup from earlier in this chat — the changes bar still lists what is applied.`,
|
|
294
|
+
toolCalls: [],
|
|
295
|
+
blocks: [],
|
|
296
|
+
endedAt: Date.now()
|
|
297
|
+
};
|
|
298
|
+
const next = [...state.messages];
|
|
299
|
+
next.splice(at < 0 ? next.length : at, 0, line);
|
|
300
|
+
set({
|
|
301
|
+
messages: next
|
|
302
|
+
});
|
|
303
|
+
return;
|
|
304
|
+
}
|
|
211
305
|
const messages = state.messages.map(m => {
|
|
212
306
|
if (m.id !== messageId) return m;
|
|
213
307
|
switch (ev.type) {
|
|
214
308
|
case "text":
|
|
215
309
|
return {
|
|
216
310
|
...m,
|
|
217
|
-
text: m.breakBeforeNextText && m.text ? `${m.text.trimEnd()}\n\n${ev.delta}` : m.text + ev.delta,
|
|
311
|
+
text: (m.breakBeforeNextText || ev.breakBefore) && m.text ? `${m.text.trimEnd()}\n\n${ev.delta}` : m.text + ev.delta,
|
|
218
312
|
breakBeforeNextText: false
|
|
219
313
|
};
|
|
220
314
|
case "reasoning":
|
|
@@ -247,7 +341,7 @@ const askBuoyStore = exports.askBuoyStore = {
|
|
|
247
341
|
breakBeforeNextText: true,
|
|
248
342
|
toolCalls: m.toolCalls.map(c => c.id === ev.id ? {
|
|
249
343
|
...c,
|
|
250
|
-
status: !ev.ok && ev.summary === "refused" ? "refused" : ev.ok ? "ok" : "failed",
|
|
344
|
+
status: !ev.ok && ev.summary === "refused" ? "refused" : !ev.ok && ev.summary === "declined" ? "declined" : !ev.ok && ev.summary === "stopped" ? "stopped" : ev.ok ? "ok" : "failed",
|
|
251
345
|
summary: ev.summary,
|
|
252
346
|
durationMs: ev.durationMs,
|
|
253
347
|
result: ev.result
|
|
@@ -297,6 +391,15 @@ const askBuoyStore = exports.askBuoyStore = {
|
|
|
297
391
|
} : {})
|
|
298
392
|
});
|
|
299
393
|
},
|
|
394
|
+
/** The user pressed Stop on this turn. See `ChatMessage.stopped`. */
|
|
395
|
+
markStopped(messageId) {
|
|
396
|
+
set({
|
|
397
|
+
messages: state.messages.map(m => m.id === messageId ? {
|
|
398
|
+
...m,
|
|
399
|
+
stopped: true
|
|
400
|
+
} : m)
|
|
401
|
+
});
|
|
402
|
+
},
|
|
300
403
|
finishAssistant(messageId) {
|
|
301
404
|
set({
|
|
302
405
|
messages: state.messages.map(m => m.id === messageId ? {
|
|
@@ -304,7 +407,8 @@ const askBuoyStore = exports.askBuoyStore = {
|
|
|
304
407
|
streaming: false,
|
|
305
408
|
endedAt: Date.now()
|
|
306
409
|
} : m),
|
|
307
|
-
busy: false
|
|
410
|
+
busy: false,
|
|
411
|
+
stopping: false
|
|
308
412
|
});
|
|
309
413
|
},
|
|
310
414
|
askApproval(input) {
|
|
@@ -324,6 +428,49 @@ const askBuoyStore = exports.askBuoyStore = {
|
|
|
324
428
|
});
|
|
325
429
|
pending?.resolve(approved);
|
|
326
430
|
},
|
|
431
|
+
/**
|
|
432
|
+
* Put an unanswered approval back after a restart.
|
|
433
|
+
*
|
|
434
|
+
* A question the app asked and then forgot is worse than not asking: the
|
|
435
|
+
* user tapped nothing, so as far as they are concerned the change is still
|
|
436
|
+
* waiting for them. `resolve` is a no-op because nothing is waiting on this
|
|
437
|
+
* one any more; `restored` is what tells the sheet to run the call rather
|
|
438
|
+
* than answer a dead promise.
|
|
439
|
+
*
|
|
440
|
+
* Refused once a turn is under way, for the same reason `hydrate` is: a slow
|
|
441
|
+
* disk read must not shove an old question in front of a live conversation.
|
|
442
|
+
*/
|
|
443
|
+
restorePending(input) {
|
|
444
|
+
if (state.pending || state.busy) return false;
|
|
445
|
+
set({
|
|
446
|
+
pending: {
|
|
447
|
+
...input,
|
|
448
|
+
restored: true,
|
|
449
|
+
resolve: () => {}
|
|
450
|
+
}
|
|
451
|
+
});
|
|
452
|
+
return true;
|
|
453
|
+
},
|
|
454
|
+
/**
|
|
455
|
+
* A line in the transcript from Buoy itself rather than from the model.
|
|
456
|
+
*
|
|
457
|
+
* It wears the assistant's bubble because that is the only shape the list
|
|
458
|
+
* renders, but nothing is sent to the model and nothing lands in its
|
|
459
|
+
* history — it exists so an approval answered after a restart leaves a
|
|
460
|
+
* trace, instead of the card silently vanishing a second time.
|
|
461
|
+
*/
|
|
462
|
+
addNote(text) {
|
|
463
|
+
set({
|
|
464
|
+
messages: [...state.messages, {
|
|
465
|
+
id: nextId(),
|
|
466
|
+
role: "assistant",
|
|
467
|
+
text,
|
|
468
|
+
toolCalls: [],
|
|
469
|
+
blocks: [],
|
|
470
|
+
endedAt: Date.now()
|
|
471
|
+
}]
|
|
472
|
+
});
|
|
473
|
+
},
|
|
327
474
|
/**
|
|
328
475
|
* Put a saved conversation back, once, at open.
|
|
329
476
|
*
|
|
@@ -333,9 +480,13 @@ const askBuoyStore = exports.askBuoyStore = {
|
|
|
333
480
|
hydrate(input) {
|
|
334
481
|
if (state.messages.length > 0 || state.busy) return false;
|
|
335
482
|
set({
|
|
336
|
-
messages: input.messages
|
|
483
|
+
messages: input.messages.map(m => ({
|
|
484
|
+
...m,
|
|
485
|
+
restored: true
|
|
486
|
+
})),
|
|
337
487
|
answers: input.answers,
|
|
338
|
-
usage: input.usage
|
|
488
|
+
usage: input.usage,
|
|
489
|
+
queued: input.queued ?? []
|
|
339
490
|
});
|
|
340
491
|
return true;
|
|
341
492
|
},
|
|
@@ -346,12 +497,14 @@ const askBuoyStore = exports.askBuoyStore = {
|
|
|
346
497
|
set({
|
|
347
498
|
messages: [],
|
|
348
499
|
busy: false,
|
|
500
|
+
stopping: false,
|
|
349
501
|
pending: null,
|
|
350
502
|
notice: null,
|
|
351
503
|
answers: {},
|
|
352
504
|
awaitingBlockId: null,
|
|
353
505
|
actionState: {},
|
|
354
|
-
queued:
|
|
506
|
+
queued: [],
|
|
507
|
+
draft: null,
|
|
355
508
|
usage: {
|
|
356
509
|
input: 0,
|
|
357
510
|
output: 0,
|
|
@@ -362,4 +515,33 @@ const askBuoyStore = exports.askBuoyStore = {
|
|
|
362
515
|
});
|
|
363
516
|
}
|
|
364
517
|
};
|
|
518
|
+
|
|
519
|
+
/** See TurnPhase. Pure, so every component and the flush effect agree. */
|
|
520
|
+
function turnPhaseOf(s) {
|
|
521
|
+
if (s.pending) return "awaitingApproval";
|
|
522
|
+
if (s.busy) return s.stopping ? "stopping" : "running";
|
|
523
|
+
if (s.awaitingBlockId) return "awaitingAnswer";
|
|
524
|
+
return "idle";
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
/**
|
|
528
|
+
* Why parked messages are NOT being sent right now, in the user's words — or
|
|
529
|
+
* null when the queue may deliver.
|
|
530
|
+
*
|
|
531
|
+
* A queued message is a next TASK, not an answer. It used to go the moment
|
|
532
|
+
* `busy` dropped: after an error it fired into the same dead connection, and
|
|
533
|
+
* with a choice block open it was sent as the reply to the question. So the
|
|
534
|
+
* queue holds on error, Stop, an approval and an unanswered Ask block, and
|
|
535
|
+
* says which.
|
|
536
|
+
*/
|
|
537
|
+
function queuePauseReason(s) {
|
|
538
|
+
const phase = turnPhaseOf(s);
|
|
539
|
+
if (phase === "running" || phase === "stopping") return null;
|
|
540
|
+
if (phase === "awaitingApproval") return "Paused — answer the approval above first.";
|
|
541
|
+
if (phase === "awaitingAnswer") return "Paused — answer the question above first.";
|
|
542
|
+
const last = s.messages[s.messages.length - 1];
|
|
543
|
+
if (last?.role === "assistant" && last.error) return "Paused — the last turn failed.";
|
|
544
|
+
if (last?.role === "assistant" && last.stopped) return "Paused — you stopped the last turn.";
|
|
545
|
+
return null;
|
|
546
|
+
}
|
|
365
547
|
//# sourceMappingURL=askBuoyStore.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_agentCore","require","nextId","idFactory","MAX_PARAM_CHARS","encodeParams","params","Object","keys","length","undefined","json","JSON","stringify","slice","state","messages","busy","pending","notice","configured","answers","awaitingBlockId","actionState","queued","usage","input","output","requests","meta","listeners","Set","ledgerRef","heldSession","set","next","fn","askBuoyStore","exports","getState","subscribe","add","delete","setLedger","ledger","getLedger","holdSession","session","signature","getHeldSession","setNotice","setConfigured","setMeta","same","every","k","addUser","text","id","role","toolCalls","blocks","beginTurn","setQueued","removeMessage","filter","m","recordAnswer","answer","blockId","setActionState","key","value","startAssistant","streaming","startedAt","Date","now","applyEvent","messageId","ev","map","type","breakBeforeNextText","trimEnd","delta","reasoning","afterCalls","toolId","action","label","description","status","effect","c","ok","summary","durationMs","result","block","forToolCallId","error","message","finishAssistant","endedAt","askApproval","Promise","resolve","answerApproval","approved","hydrate","reset"],"sourceRoot":"../../../src","sources":["store/askBuoyStore.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_agentCore","require","nextId","idFactory","MAX_PARAM_CHARS","encodeParams","params","Object","keys","length","undefined","json","JSON","stringify","slice","nextQueuedId","state","messages","busy","stopping","pending","notice","configured","answers","awaitingBlockId","actionState","queued","draft","usage","input","output","requests","meta","listeners","Set","ledgerRef","heldSession","set","next","fn","askBuoyStore","exports","getState","subscribe","add","delete","setLedger","ledger","getLedger","holdSession","session","signature","getHeldSession","setNotice","setConfigured","setMeta","same","every","k","addUser","text","id","role","toolCalls","blocks","beginTurn","enqueue","item","removeQueued","some","q","filter","shiftQueued","rest","takeQueuedToDraft","find","requestStop","clearDraft","removeMessage","m","recordAnswer","answer","blockId","setActionState","key","value","startAssistant","streaming","startedAt","Date","now","applyEvent","messageId","ev","type","at","findIndex","line","system","droppedRounds","endedAt","splice","map","breakBeforeNextText","breakBefore","trimEnd","delta","reasoning","afterCalls","toolId","action","label","description","status","effect","c","ok","summary","durationMs","result","block","forToolCallId","error","message","markStopped","stopped","finishAssistant","askApproval","Promise","resolve","answerApproval","approved","restorePending","restored","addNote","hydrate","reset","turnPhaseOf","s","queuePauseReason","phase","last"],"sourceRoot":"../../../src","sources":["store/askBuoyStore.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.placeBlocks = placeBlocks;
|
|
7
|
+
var _agentCore = require("@buoy-gg/agent-core");
|
|
8
|
+
/**
|
|
9
|
+
* Where each block of a turn is drawn: inside a step row, after the prose as
|
|
10
|
+
* the answer itself, or last of all as the thing being asked.
|
|
11
|
+
*
|
|
12
|
+
* Pure and separate from MessageList because the rule is subtle and the cost
|
|
13
|
+
* of getting it wrong is silent — a block that lands in no bucket renders
|
|
14
|
+
* nowhere at all, and nothing in the UI says so. That is exactly what
|
|
15
|
+
* happened: "show me the shop as pictures" built its imageGrid, the engine
|
|
16
|
+
* accepted it, and the sheet dropped it on the floor twice while the model
|
|
17
|
+
* narrated the artwork in prose.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* A receipt that belongs inside its step row rather than in the answer: it
|
|
22
|
+
* came from a tool call, and it reports what was READ, not what was changed.
|
|
23
|
+
*
|
|
24
|
+
* ONLY a receipt nests, which is why this tests for the receipt provenances
|
|
25
|
+
* rather than for "not changed". A model-authored block (`buoy_ui`, source
|
|
26
|
+
* "model") also carries the id of the call that produced it — but `buoy_ui`
|
|
27
|
+
* emits no activity row, so there was no step for it to nest under.
|
|
28
|
+
*/
|
|
29
|
+
function nestsUnderStep({
|
|
30
|
+
block,
|
|
31
|
+
forToolCallId
|
|
32
|
+
}) {
|
|
33
|
+
if (!forToolCallId) return false;
|
|
34
|
+
const source = "source" in block ? block.source : undefined;
|
|
35
|
+
return source === "live" || source === "mocked";
|
|
36
|
+
}
|
|
37
|
+
function placeBlocks(blocks, stepIds) {
|
|
38
|
+
const steps = new Set(stepIds);
|
|
39
|
+
const nested = new Map();
|
|
40
|
+
const afterText = [];
|
|
41
|
+
const ask = [];
|
|
42
|
+
for (const placed of blocks) {
|
|
43
|
+
if ((0, _agentCore.isAskBlock)(placed.block)) {
|
|
44
|
+
ask.push(placed);
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
// A block may only nest under a step that actually has a row. Anything
|
|
48
|
+
// pointing at a call the activity list never drew renders with the answer
|
|
49
|
+
// — never nowhere.
|
|
50
|
+
if (nestsUnderStep(placed) && steps.has(placed.forToolCallId)) {
|
|
51
|
+
const list = nested.get(placed.forToolCallId) ?? [];
|
|
52
|
+
list.push(placed.block);
|
|
53
|
+
nested.set(placed.forToolCallId, list);
|
|
54
|
+
} else {
|
|
55
|
+
afterText.push(placed);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return {
|
|
59
|
+
nested,
|
|
60
|
+
afterText,
|
|
61
|
+
ask
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=blockPlacement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_agentCore","require","nestsUnderStep","block","forToolCallId","source","undefined","placeBlocks","blocks","stepIds","steps","Set","nested","Map","afterText","ask","placed","isAskBlock","push","has","list","get","set"],"sourceRoot":"../../../src","sources":["store/blockPlacement.ts"],"mappings":";;;;;;AAWA,IAAAA,UAAA,GAAAC,OAAA;AAXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAqBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,cAAcA,CAAC;EAAEC,KAAK;EAAEC;AAA2B,CAAC,EAAW;EACtE,IAAI,CAACA,aAAa,EAAE,OAAO,KAAK;EAChC,MAAMC,MAAM,GAAG,QAAQ,IAAIF,KAAK,GAAGA,KAAK,CAACE,MAAM,GAAGC,SAAS;EAC3D,OAAOD,MAAM,KAAK,MAAM,IAAIA,MAAM,KAAK,QAAQ;AACjD;AAEO,SAASE,WAAWA,CAACC,MAAqB,EAAEC,OAAyB,EAAkB;EAC5F,MAAMC,KAAK,GAAG,IAAIC,GAAG,CAACF,OAAO,CAAC;EAC9B,MAAMG,MAAM,GAAG,IAAIC,GAAG,CAAkB,CAAC;EACzC,MAAMC,SAAwB,GAAG,EAAE;EACnC,MAAMC,GAAkB,GAAG,EAAE;EAE7B,KAAK,MAAMC,MAAM,IAAIR,MAAM,EAAE;IAC3B,IAAI,IAAAS,qBAAU,EAACD,MAAM,CAACb,KAAK,CAAC,EAAE;MAC5BY,GAAG,CAACG,IAAI,CAACF,MAAM,CAAC;MAChB;IACF;IACA;IACA;IACA;IACA,IAAId,cAAc,CAACc,MAAM,CAAC,IAAIN,KAAK,CAACS,GAAG,CAACH,MAAM,CAACZ,aAAc,CAAC,EAAE;MAC9D,MAAMgB,IAAI,GAAGR,MAAM,CAACS,GAAG,CAACL,MAAM,CAACZ,aAAc,CAAC,IAAI,EAAE;MACpDgB,IAAI,CAACF,IAAI,CAACF,MAAM,CAACb,KAAK,CAAC;MACvBS,MAAM,CAACU,GAAG,CAACN,MAAM,CAACZ,aAAa,EAAGgB,IAAI,CAAC;IACzC,CAAC,MAAM;MACLN,SAAS,CAACI,IAAI,CAACF,MAAM,CAAC;IACxB;EACF;EAEA,OAAO;IAAEJ,MAAM;IAAEE,SAAS;IAAEC;EAAI,CAAC;AACnC","ignoreList":[]}
|