@deepseek-insight/dsi 0.6.20 → 0.7.0
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/bin/dsi.mjs +16 -8
- package/bin/lib/dev-mode.mjs +6 -2
- package/build/client/_app/immutable/assets/0.CrT3Lf0L.css +2 -0
- package/build/client/_app/immutable/assets/{2.BqRWIIgD.css → 2.ByYVysCj.css} +1 -1
- package/build/client/_app/immutable/chunks/{BbvYWcEs.js → CFofWD1C.js} +1 -1
- package/build/client/_app/immutable/chunks/CW7JStOk.js +1 -0
- package/build/client/_app/immutable/chunks/CzXb6qus.js +2 -0
- package/build/client/_app/immutable/chunks/DwWy6K0V.js +1 -0
- package/build/client/_app/immutable/entry/{app.BAD3jsui.js → app.DID8VW1I.js} +2 -2
- package/build/client/_app/immutable/entry/start.CkxDcwJy.js +1 -0
- package/build/client/_app/immutable/nodes/{1.COHJn6QL.js → 1.2U7ECroT.js} +1 -1
- package/build/client/_app/immutable/nodes/2.D1lz0hMu.js +337 -0
- package/build/client/_app/version.json +1 -1
- package/build/handler.js +4 -4
- package/build/index.js +4 -4
- package/build/server/chunks/chunks/{db.js-DRhjT6xK.js → db.js-BmnKaIBo.js} +2 -2
- package/build/server/chunks/chunks/{db2.js-DUta2B-n.js → db2.js-CpSDQEUB.js} +2 -2
- package/build/server/chunks/chunks/deliverables.js-Dg6XzNkW.js +46 -0
- package/build/server/chunks/chunks/{dsh-connection.js-DL5qjlq2.js → dsh-connection.js-CE6s1mIM.js} +2 -2
- package/build/server/chunks/chunks/{dsh-events.js-35seDLwL.js → dsh-events.js-CGuF_had.js} +2 -1
- package/build/server/chunks/chunks/{git-probe.js-D4DjBXSY.js → git-probe.js-DBbLffkp.js} +3 -3
- package/build/server/chunks/chunks/{insight-config.js-CA-iT3lB.js → insight-config.js-DZBwKFH9.js} +31 -2
- package/build/server/chunks/chunks/{internal2.js-BDzd2OUR.js → internal2.js-DgxNmZhS.js} +2 -2
- package/build/server/chunks/chunks/registry.js-D0ldrcNB.js +577 -0
- package/build/server/chunks/chunks/{registry.js-G1hzOje_.js → registry2.js-D3Pr1Rv9.js} +2 -2
- package/build/server/chunks/chunks/{state.js-Cb31UwpL.js → state.js-DPoVCoAg.js} +2 -2
- package/build/server/chunks/chunks/{watcher.js-CACduBB9.js → watcher.js-Ck2BsXQf.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/a2a/_id_/{_server.ts.js-CpeC2QLb.js → _server.ts.js-B7qOvtA5.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/a2a/{_server.ts.js-DHFHuGSm.js → _server.ts.js-DBLFNFXT.js} +6 -6
- package/build/server/chunks/entries/endpoints/api/a2a/register/{_server.ts.js-CUUfDBcc.js → _server.ts.js-COyQSOOR.js} +6 -6
- package/build/server/chunks/entries/endpoints/api/browser/_id_/close/_server.ts.js-CJjvHo1Z.js +32 -0
- package/build/server/chunks/entries/endpoints/api/browser/_id_/input/_server.ts.js-_XEUfVid.js +78 -0
- package/build/server/chunks/entries/endpoints/api/browser/_id_/mcp/_server.ts.js-e7j-kKSK.js +50 -0
- package/build/server/chunks/entries/endpoints/api/browser/_id_/navigate/_server.ts.js-BYiU0Wvv.js +62 -0
- package/build/server/chunks/entries/endpoints/api/browser/_id_/page/_server.ts.js-RL1-uaVR.js +33 -0
- package/build/server/chunks/entries/endpoints/api/browser/_id_/stream/_server.ts.js-Cxc2r0BD.js +74 -0
- package/build/server/chunks/entries/endpoints/api/browser/_id_/viewport/_server.ts.js-DQ1jgFuc.js +42 -0
- package/build/server/chunks/entries/endpoints/api/browser/_server.ts.js-DfbmPmUH.js +37 -0
- package/build/server/chunks/entries/endpoints/api/config/{_server.ts.js-BG78X__J.js → _server.ts.js-CfcgdS1G.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/dsh/directory/{_server.ts.js-Cae4x1c7.js → _server.ts.js-BOgNWE9k.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/dsh/jobs/{_server.ts.js-hGmoSsDv.js → _server.ts.js-DExfzwju.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/dsh/pick-directory/{_server.ts.js-BLb8o1cY.js → _server.ts.js-vuxSBOKD.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/dsh/presets/{_server.ts.js-BFeDKrPz.js → _server.ts.js-DYh0lUVR.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/attachment/{_server.ts.js-DmSTTfI5.js → _server.ts.js-CzmMoP9-.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/cancel/{_server.ts.js-Cus9XrC9.js → _server.ts.js-CXnfYfR4.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/catalog/{_server.ts.js-DcrNU0_y.js → _server.ts.js-CF2s7GwI.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/changes/{_server.ts.js-CpuEcp6p.js → _server.ts.js-DKw9ktIO.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/command/{_server.ts.js-CU9o8Tho.js → _server.ts.js-pT2AO2S0.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/events/{_server.ts.js-BiAJcPpb.js → _server.ts.js-D4H2h6fc.js} +9 -5
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/fork/{_server.ts.js-BMMZlvr7.js → _server.ts.js-iwuADbdv.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/goal/{_server.ts.js-DZ6qFrfm.js → _server.ts.js-C36DpiRX.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/history/{_server.ts.js-ecbtat_C.js → _server.ts.js-WApWfRu-.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/models/{_server.ts.js-CPZuvN-_.js → _server.ts.js-B8DQEsx6.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/path/{_server.ts.js-_SIiC8sn.js → _server.ts.js-B0ACEjPX.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/permission/{_server.ts.js-Dcfp7gSm.js → _server.ts.js-CmYfLvHD.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/prompt/{_server.ts.js-CmxqUwLT.js → _server.ts.js-DrZveeFq.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/rename/{_server.ts.js-DCNKXRwy.js → _server.ts.js-C-nVpTN7.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/respond/{_server.ts.js-AURyR2ll.js → _server.ts.js-C-cuYV40.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/select-model/{_server.ts.js-BVF36vTO.js → _server.ts.js-BoiybbwX.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/dsh/sessions/{_server.ts.js-LX3JZbRr.js → _server.ts.js-DDqjDxoc.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/dsh/workspace-file/{_server.ts.js-BJ0d199o.js → _server.ts.js-DG0MHUkj.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/dsh/workspace-tree/{_server.ts.js-BDy9jQXv.js → _server.ts.js-Cz4XSEfb.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/dsh/workspaces/{_server.ts.js-DoTpSXIc.js → _server.ts.js-DV4wF7XG.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/dsh/workspaces/_workspaceId_/delete/{_server.ts.js-BnfIobo7.js → _server.ts.js-X0mwkV_4.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/dsh/workspaces/_workspaceId_/rename/{_server.ts.js-KRyjIODB.js → _server.ts.js-D_AEj6qx.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/prompts/_id_/{_server.ts.js-bRLZ5TWI.js → _server.ts.js-Cj3S-2MC.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/prompts/{_server.ts.js-ChzWZoFk.js → _server.ts.js-DuuhbcTE.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/prompts/use/{_server.ts.js-DdH5QmPS.js → _server.ts.js-C72akYlH.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/settings/{_server.ts.js-DwGQj520.js → _server.ts.js-CEO2aw-C.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/terminal/_id_/output/{_server.ts.js-m6Cug5hN.js → _server.ts.js-BNBxebgG.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/terminal/_id_/reattach/{_server.ts.js-wSsMKLiw.js → _server.ts.js-DDRJBGIr.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/terminal/_id_/send/{_server.ts.js-CTc5xP72.js → _server.ts.js-CA0vc_Cm.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/terminal/_id_/stream/{_server.ts.js-C8PLMU0Y.js → _server.ts.js-D6L8Gd_f.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/terminal/{_server.ts.js-CwXC6Stk.js → _server.ts.js-BhR4Cblt.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/workspace/file-write/{_server.ts.js-Cb7X2G82.js → _server.ts.js-BFdpm_he.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/workspace/git-events/{_server.ts.js-DZ67v729.js → _server.ts.js-D5eW-2fL.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/workspace/git-file-head/{_server.ts.js-BuO5Stmm.js → _server.ts.js-iax8K9x8.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/workspace/git-map/{_server.ts.js-Bb_I5Ze7.js → _server.ts.js-CdfiRwgl.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/workspace/git-status/{_server.ts.js-cHWxh5VB.js → _server.ts.js-CBU0ug30.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/workspace/write-gate/{_server.ts.js-Blcfn0zm.js → _server.ts.js-CLozZQT3.js} +5 -5
- package/build/server/chunks/entries/pages/{_error.svelte.js-BqHQUTpg.js → _error.svelte.js-B9CGiiZy.js} +3 -3
- package/build/server/chunks/entries/pages/{_page.server.ts.js-C_ydvzuE.js → _page.server.ts.js-yB-zbLkm.js} +8 -3
- package/build/server/chunks/entries/pages/{_page.svelte.js-CWiGV7R5.js → _page.svelte.js-D3F2fiR4.js} +1047 -98
- package/build/server/chunks/{handler-CPdXYlKK.js → handler-CF16q5dY.js} +3 -3
- package/build/server/chunks/{index.js-CNYTOWSB.js → index.js-DsT3Sxoa.js} +2 -2
- package/build/server/chunks/{manifest.js-CQRa1JdF.js → manifest.js-CW2r9Rb1.js} +106 -50
- package/build/server/chunks/nodes/{0.js-zSkx80Fq.js → 0.js-gr8Z-ETs.js} +3 -3
- package/build/server/chunks/nodes/1.js-BrruRgxj.js +9 -0
- package/build/server/chunks/nodes/{2.js-CL8x9-EN.js → 2.js-Cif5vNvc.js} +9 -8
- package/package.json +4 -1
- package/template/.dsi/prompts.sqlite-shm +0 -0
- package/template/.dsi/prompts.sqlite-wal +0 -0
- package/build/client/_app/immutable/assets/0.KhAZv9mf.css +0 -2
- package/build/client/_app/immutable/chunks/BNsgelmQ.js +0 -1
- package/build/client/_app/immutable/chunks/C9uc32GW.js +0 -1
- package/build/client/_app/immutable/chunks/tw7vR7yM.js +0 -2
- package/build/client/_app/immutable/entry/start.CFzOCQr3.js +0 -1
- package/build/client/_app/immutable/nodes/2.CpHpu496.js +0 -337
- package/build/server/chunks/nodes/1.js-BQXeCZbQ.js +0 -9
- /package/build/client/_app/immutable/nodes/{0.Jl8y_yU6.js → 0.oyzYR3-4.js} +0 -0
|
@@ -8,7 +8,7 @@ import { D as DEFAULT_IMAGE_LIMITS } from '../../chunks/image-limits.js-CUdJ0f7r
|
|
|
8
8
|
import { s as sanitizeWorkspaceProfile, d as dsiKey, t as themePrefs } from '../../chunks/theme-prefs.svelte.js-8CaWz46g.js';
|
|
9
9
|
import { a as appConfig, p as previewSegments, b as parseTagWords, i as isValidTagWord, s as shouldRecordPrompt, g as getTrigger, t as triggerMode, c as searchKey, d as textPreviewOf } from '../../chunks/app-config.svelte.js-D7wkLUkK.js';
|
|
10
10
|
import { c as getLocale } from '../../chunks/runtime.js-CCJi3XaY.js';
|
|
11
|
-
import { p as page, a as afterNavigate, t, c as currentLocale, e as replaceState, u as unexpectederror1, s as sessionnotfound2, r as reapednote1, d as dshunreachable1, b as backtoworkspace2 } from '../../chunks/state.js-
|
|
11
|
+
import { p as page, a as afterNavigate, t, c as currentLocale, e as replaceState, u as unexpectederror1, s as sessionnotfound2, r as reapednote1, d as dshunreachable1, b as backtoworkspace2 } from '../../chunks/state.js-DPoVCoAg.js';
|
|
12
12
|
import 'yaml';
|
|
13
13
|
import 'html-to-image';
|
|
14
14
|
import hljs from 'highlight.js/lib/core';
|
|
@@ -20,7 +20,7 @@ import xml from 'highlight.js/lib/languages/xml';
|
|
|
20
20
|
import css from 'highlight.js/lib/languages/css';
|
|
21
21
|
import '../../chunks/uneval.js-BJ9Qq2SF.js';
|
|
22
22
|
import '../../chunks/shared.js-HQ0rfhm4.js';
|
|
23
|
-
import '../../chunks/internal2.js-
|
|
23
|
+
import '../../chunks/internal2.js-DgxNmZhS.js';
|
|
24
24
|
import '../../chunks/exports.js-DH_tjtdv.js';
|
|
25
25
|
import '../../chunks/utils.js-CAdNO8Tu.js';
|
|
26
26
|
|
|
@@ -888,6 +888,326 @@ var broadcastsyncedto2 = ((inputs, options = {}) => {
|
|
|
888
888
|
return en_broadcastsyncedto2(inputs);
|
|
889
889
|
});
|
|
890
890
|
//#endregion
|
|
891
|
+
//#region src/lib/paraglide/messages/browserback1.js
|
|
892
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
893
|
+
/** @typedef {{}} Browserback1Inputs */
|
|
894
|
+
var en_browserback1 = () => {
|
|
895
|
+
return `Back`;
|
|
896
|
+
};
|
|
897
|
+
var zh_browserback1 = () => {
|
|
898
|
+
return `后退`;
|
|
899
|
+
};
|
|
900
|
+
var id_browserback1 = () => {
|
|
901
|
+
return `Kembali`;
|
|
902
|
+
};
|
|
903
|
+
var es_browserback1 = () => {
|
|
904
|
+
return `Atrás`;
|
|
905
|
+
};
|
|
906
|
+
/**
|
|
907
|
+
* | output |
|
|
908
|
+
* | --- |
|
|
909
|
+
* | "Back" |
|
|
910
|
+
*
|
|
911
|
+
* @param {Browserback1Inputs} inputs
|
|
912
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
913
|
+
* @returns {LocalizedString}
|
|
914
|
+
*/
|
|
915
|
+
var browserback1 = ((inputs = {}, options = {}) => {
|
|
916
|
+
const locale = options.locale ?? getLocale();
|
|
917
|
+
if (locale === "zh") return zh_browserback1();
|
|
918
|
+
if (locale === "id") return id_browserback1();
|
|
919
|
+
if (locale === "es") return es_browserback1();
|
|
920
|
+
return en_browserback1();
|
|
921
|
+
});
|
|
922
|
+
//#endregion
|
|
923
|
+
//#region src/lib/paraglide/messages/browserchiplabel2.js
|
|
924
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
925
|
+
/** @typedef {{}} Browserchiplabel2Inputs */
|
|
926
|
+
var en_browserchiplabel2 = () => {
|
|
927
|
+
return `⌖ Browser`;
|
|
928
|
+
};
|
|
929
|
+
var zh_browserchiplabel2 = () => {
|
|
930
|
+
return `⌖ 浏览器`;
|
|
931
|
+
};
|
|
932
|
+
var id_browserchiplabel2 = () => {
|
|
933
|
+
return `⌖ Peramban`;
|
|
934
|
+
};
|
|
935
|
+
var es_browserchiplabel2 = () => {
|
|
936
|
+
return `⌖ Navegador`;
|
|
937
|
+
};
|
|
938
|
+
/**
|
|
939
|
+
* | output |
|
|
940
|
+
* | --- |
|
|
941
|
+
* | "⌖ Browser" |
|
|
942
|
+
*
|
|
943
|
+
* @param {Browserchiplabel2Inputs} inputs
|
|
944
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
945
|
+
* @returns {LocalizedString}
|
|
946
|
+
*/
|
|
947
|
+
var browserchiplabel2 = ((inputs = {}, options = {}) => {
|
|
948
|
+
const locale = options.locale ?? getLocale();
|
|
949
|
+
if (locale === "zh") return zh_browserchiplabel2();
|
|
950
|
+
if (locale === "id") return id_browserchiplabel2();
|
|
951
|
+
if (locale === "es") return es_browserchiplabel2();
|
|
952
|
+
return en_browserchiplabel2();
|
|
953
|
+
});
|
|
954
|
+
//#endregion
|
|
955
|
+
//#region src/lib/paraglide/messages/browserforward1.js
|
|
956
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
957
|
+
/** @typedef {{}} Browserforward1Inputs */
|
|
958
|
+
var en_browserforward1 = () => {
|
|
959
|
+
return `Forward`;
|
|
960
|
+
};
|
|
961
|
+
var zh_browserforward1 = () => {
|
|
962
|
+
return `前进`;
|
|
963
|
+
};
|
|
964
|
+
var id_browserforward1 = () => {
|
|
965
|
+
return `Maju`;
|
|
966
|
+
};
|
|
967
|
+
var es_browserforward1 = () => {
|
|
968
|
+
return `Adelante`;
|
|
969
|
+
};
|
|
970
|
+
/**
|
|
971
|
+
* | output |
|
|
972
|
+
* | --- |
|
|
973
|
+
* | "Forward" |
|
|
974
|
+
*
|
|
975
|
+
* @param {Browserforward1Inputs} inputs
|
|
976
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
977
|
+
* @returns {LocalizedString}
|
|
978
|
+
*/
|
|
979
|
+
var browserforward1 = ((inputs = {}, options = {}) => {
|
|
980
|
+
const locale = options.locale ?? getLocale();
|
|
981
|
+
if (locale === "zh") return zh_browserforward1();
|
|
982
|
+
if (locale === "id") return id_browserforward1();
|
|
983
|
+
if (locale === "es") return es_browserforward1();
|
|
984
|
+
return en_browserforward1();
|
|
985
|
+
});
|
|
986
|
+
//#endregion
|
|
987
|
+
//#region src/lib/paraglide/messages/browserlaunching1.js
|
|
988
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
989
|
+
/** @typedef {{}} Browserlaunching1Inputs */
|
|
990
|
+
var en_browserlaunching1 = () => {
|
|
991
|
+
return `launching browser…`;
|
|
992
|
+
};
|
|
993
|
+
var zh_browserlaunching1 = () => {
|
|
994
|
+
return `正在启动浏览器…`;
|
|
995
|
+
};
|
|
996
|
+
var id_browserlaunching1 = () => {
|
|
997
|
+
return `meluncurkan peramban…`;
|
|
998
|
+
};
|
|
999
|
+
var es_browserlaunching1 = () => {
|
|
1000
|
+
return `iniciando navegador…`;
|
|
1001
|
+
};
|
|
1002
|
+
/**
|
|
1003
|
+
* | output |
|
|
1004
|
+
* | --- |
|
|
1005
|
+
* | "launching browser…" |
|
|
1006
|
+
*
|
|
1007
|
+
* @param {Browserlaunching1Inputs} inputs
|
|
1008
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
1009
|
+
* @returns {LocalizedString}
|
|
1010
|
+
*/
|
|
1011
|
+
var browserlaunching1 = ((inputs = {}, options = {}) => {
|
|
1012
|
+
const locale = options.locale ?? getLocale();
|
|
1013
|
+
if (locale === "zh") return zh_browserlaunching1();
|
|
1014
|
+
if (locale === "id") return id_browserlaunching1();
|
|
1015
|
+
if (locale === "es") return es_browserlaunching1();
|
|
1016
|
+
return en_browserlaunching1();
|
|
1017
|
+
});
|
|
1018
|
+
//#endregion
|
|
1019
|
+
//#region src/lib/paraglide/messages/browseropentitle2.js
|
|
1020
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
1021
|
+
/** @typedef {{}} Browseropentitle2Inputs */
|
|
1022
|
+
var en_browseropentitle2 = () => {
|
|
1023
|
+
return `Open the glass browser`;
|
|
1024
|
+
};
|
|
1025
|
+
var zh_browseropentitle2 = () => {
|
|
1026
|
+
return `打开玻璃浏览器`;
|
|
1027
|
+
};
|
|
1028
|
+
var id_browseropentitle2 = () => {
|
|
1029
|
+
return `Buka peramban kaca`;
|
|
1030
|
+
};
|
|
1031
|
+
var es_browseropentitle2 = () => {
|
|
1032
|
+
return `Abrir el navegador de cristal`;
|
|
1033
|
+
};
|
|
1034
|
+
/**
|
|
1035
|
+
* | output |
|
|
1036
|
+
* | --- |
|
|
1037
|
+
* | "Open the glass browser" |
|
|
1038
|
+
*
|
|
1039
|
+
* @param {Browseropentitle2Inputs} inputs
|
|
1040
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
1041
|
+
* @returns {LocalizedString}
|
|
1042
|
+
*/
|
|
1043
|
+
var browseropentitle2 = ((inputs = {}, options = {}) => {
|
|
1044
|
+
const locale = options.locale ?? getLocale();
|
|
1045
|
+
if (locale === "zh") return zh_browseropentitle2();
|
|
1046
|
+
if (locale === "id") return id_browseropentitle2();
|
|
1047
|
+
if (locale === "es") return es_browseropentitle2();
|
|
1048
|
+
return en_browseropentitle2();
|
|
1049
|
+
});
|
|
1050
|
+
//#endregion
|
|
1051
|
+
//#region src/lib/paraglide/messages/browserpaneltitle2.js
|
|
1052
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
1053
|
+
/** @typedef {{}} Browserpaneltitle2Inputs */
|
|
1054
|
+
var en_browserpaneltitle2 = () => {
|
|
1055
|
+
return `Browser`;
|
|
1056
|
+
};
|
|
1057
|
+
var zh_browserpaneltitle2 = () => {
|
|
1058
|
+
return `浏览器`;
|
|
1059
|
+
};
|
|
1060
|
+
var id_browserpaneltitle2 = () => {
|
|
1061
|
+
return `Peramban`;
|
|
1062
|
+
};
|
|
1063
|
+
var es_browserpaneltitle2 = () => {
|
|
1064
|
+
return `Navegador`;
|
|
1065
|
+
};
|
|
1066
|
+
/**
|
|
1067
|
+
* | output |
|
|
1068
|
+
* | --- |
|
|
1069
|
+
* | "Browser" |
|
|
1070
|
+
*
|
|
1071
|
+
* @param {Browserpaneltitle2Inputs} inputs
|
|
1072
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
1073
|
+
* @returns {LocalizedString}
|
|
1074
|
+
*/
|
|
1075
|
+
var browserpaneltitle2 = ((inputs = {}, options = {}) => {
|
|
1076
|
+
const locale = options.locale ?? getLocale();
|
|
1077
|
+
if (locale === "zh") return zh_browserpaneltitle2();
|
|
1078
|
+
if (locale === "id") return id_browserpaneltitle2();
|
|
1079
|
+
if (locale === "es") return es_browserpaneltitle2();
|
|
1080
|
+
return en_browserpaneltitle2();
|
|
1081
|
+
});
|
|
1082
|
+
//#endregion
|
|
1083
|
+
//#region src/lib/paraglide/messages/browserreload1.js
|
|
1084
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
1085
|
+
/** @typedef {{}} Browserreload1Inputs */
|
|
1086
|
+
var en_browserreload1 = () => {
|
|
1087
|
+
return `Reload`;
|
|
1088
|
+
};
|
|
1089
|
+
var zh_browserreload1 = () => {
|
|
1090
|
+
return `重新加载`;
|
|
1091
|
+
};
|
|
1092
|
+
var id_browserreload1 = () => {
|
|
1093
|
+
return `Muat ulang`;
|
|
1094
|
+
};
|
|
1095
|
+
var es_browserreload1 = () => {
|
|
1096
|
+
return `Recargar`;
|
|
1097
|
+
};
|
|
1098
|
+
/**
|
|
1099
|
+
* | output |
|
|
1100
|
+
* | --- |
|
|
1101
|
+
* | "Reload" |
|
|
1102
|
+
*
|
|
1103
|
+
* @param {Browserreload1Inputs} inputs
|
|
1104
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
1105
|
+
* @returns {LocalizedString}
|
|
1106
|
+
*/
|
|
1107
|
+
var browserreload1 = ((inputs = {}, options = {}) => {
|
|
1108
|
+
const locale = options.locale ?? getLocale();
|
|
1109
|
+
if (locale === "zh") return zh_browserreload1();
|
|
1110
|
+
if (locale === "id") return id_browserreload1();
|
|
1111
|
+
if (locale === "es") return es_browserreload1();
|
|
1112
|
+
return en_browserreload1();
|
|
1113
|
+
});
|
|
1114
|
+
//#endregion
|
|
1115
|
+
//#region src/lib/paraglide/messages/browsersessionfailed2.js
|
|
1116
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
1117
|
+
/** @typedef {{ reason: NonNullable<unknown> }} Browsersessionfailed2Inputs */
|
|
1118
|
+
var en_browsersessionfailed2 = (i) => {
|
|
1119
|
+
return `browser session failed ${i?.reason} — close and reopen the panel`;
|
|
1120
|
+
};
|
|
1121
|
+
var zh_browsersessionfailed2 = (i) => {
|
|
1122
|
+
return `浏览器会话失败${i?.reason} — 请关闭并重新打开面板`;
|
|
1123
|
+
};
|
|
1124
|
+
var id_browsersessionfailed2 = (i) => {
|
|
1125
|
+
return `sesi peramban gagal ${i?.reason} — tutup dan buka kembali panel`;
|
|
1126
|
+
};
|
|
1127
|
+
var es_browsersessionfailed2 = (i) => {
|
|
1128
|
+
return `la sesión del navegador falló ${i?.reason} — cierra y reabre el panel`;
|
|
1129
|
+
};
|
|
1130
|
+
/**
|
|
1131
|
+
* | output |
|
|
1132
|
+
* | --- |
|
|
1133
|
+
* | "browser session failed {reason} — close and reopen the panel" |
|
|
1134
|
+
*
|
|
1135
|
+
* @param {Browsersessionfailed2Inputs} inputs
|
|
1136
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
1137
|
+
* @returns {LocalizedString}
|
|
1138
|
+
*/
|
|
1139
|
+
var browsersessionfailed2 = ((inputs, options = {}) => {
|
|
1140
|
+
const locale = options.locale ?? getLocale();
|
|
1141
|
+
if (locale === "zh") return zh_browsersessionfailed2(inputs);
|
|
1142
|
+
if (locale === "id") return id_browsersessionfailed2(inputs);
|
|
1143
|
+
if (locale === "es") return es_browsersessionfailed2(inputs);
|
|
1144
|
+
return en_browsersessionfailed2(inputs);
|
|
1145
|
+
});
|
|
1146
|
+
//#endregion
|
|
1147
|
+
//#region src/lib/paraglide/messages/browserurlplaceholder2.js
|
|
1148
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
1149
|
+
/** @typedef {{}} Browserurlplaceholder2Inputs */
|
|
1150
|
+
var en_browserurlplaceholder2 = () => {
|
|
1151
|
+
return `Search or type a URL`;
|
|
1152
|
+
};
|
|
1153
|
+
var zh_browserurlplaceholder2 = () => {
|
|
1154
|
+
return `搜索或输入网址`;
|
|
1155
|
+
};
|
|
1156
|
+
var id_browserurlplaceholder2 = () => {
|
|
1157
|
+
return `Cari atau ketik URL`;
|
|
1158
|
+
};
|
|
1159
|
+
var es_browserurlplaceholder2 = () => {
|
|
1160
|
+
return `Buscar o escribir una URL`;
|
|
1161
|
+
};
|
|
1162
|
+
/**
|
|
1163
|
+
* | output |
|
|
1164
|
+
* | --- |
|
|
1165
|
+
* | "Search or type a URL" |
|
|
1166
|
+
*
|
|
1167
|
+
* @param {Browserurlplaceholder2Inputs} inputs
|
|
1168
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
1169
|
+
* @returns {LocalizedString}
|
|
1170
|
+
*/
|
|
1171
|
+
var browserurlplaceholder2 = ((inputs = {}, options = {}) => {
|
|
1172
|
+
const locale = options.locale ?? getLocale();
|
|
1173
|
+
if (locale === "zh") return zh_browserurlplaceholder2();
|
|
1174
|
+
if (locale === "id") return id_browserurlplaceholder2();
|
|
1175
|
+
if (locale === "es") return es_browserurlplaceholder2();
|
|
1176
|
+
return en_browserurlplaceholder2();
|
|
1177
|
+
});
|
|
1178
|
+
//#endregion
|
|
1179
|
+
//#region src/lib/paraglide/messages/browserwaitingframes2.js
|
|
1180
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
1181
|
+
/** @typedef {{}} Browserwaitingframes2Inputs */
|
|
1182
|
+
var en_browserwaitingframes2 = () => {
|
|
1183
|
+
return `waiting for frames…`;
|
|
1184
|
+
};
|
|
1185
|
+
var zh_browserwaitingframes2 = () => {
|
|
1186
|
+
return `等待画面帧…`;
|
|
1187
|
+
};
|
|
1188
|
+
var id_browserwaitingframes2 = () => {
|
|
1189
|
+
return `menunggu frame…`;
|
|
1190
|
+
};
|
|
1191
|
+
var es_browserwaitingframes2 = () => {
|
|
1192
|
+
return `esperando fotogramas…`;
|
|
1193
|
+
};
|
|
1194
|
+
/**
|
|
1195
|
+
* | output |
|
|
1196
|
+
* | --- |
|
|
1197
|
+
* | "waiting for frames…" |
|
|
1198
|
+
*
|
|
1199
|
+
* @param {Browserwaitingframes2Inputs} inputs
|
|
1200
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
1201
|
+
* @returns {LocalizedString}
|
|
1202
|
+
*/
|
|
1203
|
+
var browserwaitingframes2 = ((inputs = {}, options = {}) => {
|
|
1204
|
+
const locale = options.locale ?? getLocale();
|
|
1205
|
+
if (locale === "zh") return zh_browserwaitingframes2();
|
|
1206
|
+
if (locale === "id") return id_browserwaitingframes2();
|
|
1207
|
+
if (locale === "es") return es_browserwaitingframes2();
|
|
1208
|
+
return en_browserwaitingframes2();
|
|
1209
|
+
});
|
|
1210
|
+
//#endregion
|
|
891
1211
|
//#region src/lib/paraglide/messages/cachehit1.js
|
|
892
1212
|
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
893
1213
|
/** @typedef {{}} Cachehit1Inputs */
|
|
@@ -3224,6 +3544,70 @@ var deleting = ((inputs = {}, options = {}) => {
|
|
|
3224
3544
|
return en_deleting();
|
|
3225
3545
|
});
|
|
3226
3546
|
//#endregion
|
|
3547
|
+
//#region src/lib/paraglide/messages/deliverablesfiles1.js
|
|
3548
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
3549
|
+
/** @typedef {{}} Deliverablesfiles1Inputs */
|
|
3550
|
+
var en_deliverablesfiles1 = () => {
|
|
3551
|
+
return ` files)`;
|
|
3552
|
+
};
|
|
3553
|
+
var zh_deliverablesfiles1 = () => {
|
|
3554
|
+
return ` 个文件)`;
|
|
3555
|
+
};
|
|
3556
|
+
var id_deliverablesfiles1 = () => {
|
|
3557
|
+
return ` berkas)`;
|
|
3558
|
+
};
|
|
3559
|
+
var es_deliverablesfiles1 = () => {
|
|
3560
|
+
return ` archivos)`;
|
|
3561
|
+
};
|
|
3562
|
+
/**
|
|
3563
|
+
* | output |
|
|
3564
|
+
* | --- |
|
|
3565
|
+
* | "files)" |
|
|
3566
|
+
*
|
|
3567
|
+
* @param {Deliverablesfiles1Inputs} inputs
|
|
3568
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
3569
|
+
* @returns {LocalizedString}
|
|
3570
|
+
*/
|
|
3571
|
+
var deliverablesfiles1 = ((inputs = {}, options = {}) => {
|
|
3572
|
+
const locale = options.locale ?? getLocale();
|
|
3573
|
+
if (locale === "zh") return zh_deliverablesfiles1();
|
|
3574
|
+
if (locale === "id") return id_deliverablesfiles1();
|
|
3575
|
+
if (locale === "es") return es_deliverablesfiles1();
|
|
3576
|
+
return en_deliverablesfiles1();
|
|
3577
|
+
});
|
|
3578
|
+
//#endregion
|
|
3579
|
+
//#region src/lib/paraglide/messages/deliverablestitle1.js
|
|
3580
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
3581
|
+
/** @typedef {{}} Deliverablestitle1Inputs */
|
|
3582
|
+
var en_deliverablestitle1 = () => {
|
|
3583
|
+
return `Deliverables (`;
|
|
3584
|
+
};
|
|
3585
|
+
var zh_deliverablestitle1 = () => {
|
|
3586
|
+
return `交付文件(`;
|
|
3587
|
+
};
|
|
3588
|
+
var id_deliverablestitle1 = () => {
|
|
3589
|
+
return `Hasil kerja (`;
|
|
3590
|
+
};
|
|
3591
|
+
var es_deliverablestitle1 = () => {
|
|
3592
|
+
return `Entregables (`;
|
|
3593
|
+
};
|
|
3594
|
+
/**
|
|
3595
|
+
* | output |
|
|
3596
|
+
* | --- |
|
|
3597
|
+
* | "Deliverables (" |
|
|
3598
|
+
*
|
|
3599
|
+
* @param {Deliverablestitle1Inputs} inputs
|
|
3600
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
3601
|
+
* @returns {LocalizedString}
|
|
3602
|
+
*/
|
|
3603
|
+
var deliverablestitle1 = ((inputs = {}, options = {}) => {
|
|
3604
|
+
const locale = options.locale ?? getLocale();
|
|
3605
|
+
if (locale === "zh") return zh_deliverablestitle1();
|
|
3606
|
+
if (locale === "id") return id_deliverablestitle1();
|
|
3607
|
+
if (locale === "es") return es_deliverablestitle1();
|
|
3608
|
+
return en_deliverablestitle1();
|
|
3609
|
+
});
|
|
3610
|
+
//#endregion
|
|
3227
3611
|
//#region src/lib/paraglide/messages/dirbreadcrumbs1.js
|
|
3228
3612
|
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
3229
3613
|
/** @typedef {{}} Dirbreadcrumbs1Inputs */
|
|
@@ -14422,6 +14806,16 @@ var _index_exports = /* @__PURE__ */ __exportAll({
|
|
|
14422
14806
|
backToWorkspace: () => backtoworkspace2,
|
|
14423
14807
|
broadcast: () => broadcast,
|
|
14424
14808
|
broadcastSyncedTo: () => broadcastsyncedto2,
|
|
14809
|
+
browserBack: () => browserback1,
|
|
14810
|
+
browserChipLabel: () => browserchiplabel2,
|
|
14811
|
+
browserForward: () => browserforward1,
|
|
14812
|
+
browserLaunching: () => browserlaunching1,
|
|
14813
|
+
browserOpenTitle: () => browseropentitle2,
|
|
14814
|
+
browserPanelTitle: () => browserpaneltitle2,
|
|
14815
|
+
browserReload: () => browserreload1,
|
|
14816
|
+
browserSessionFailed: () => browsersessionfailed2,
|
|
14817
|
+
browserUrlPlaceholder: () => browserurlplaceholder2,
|
|
14818
|
+
browserWaitingFrames: () => browserwaitingframes2,
|
|
14425
14819
|
cacheHit: () => cachehit1,
|
|
14426
14820
|
cachedInput: () => cachedinput1,
|
|
14427
14821
|
cancel: () => cancel,
|
|
@@ -14495,6 +14889,8 @@ var _index_exports = /* @__PURE__ */ __exportAll({
|
|
|
14495
14889
|
del: () => del,
|
|
14496
14890
|
delete: () => _delete,
|
|
14497
14891
|
deleting: () => deleting,
|
|
14892
|
+
deliverablesFiles: () => deliverablesfiles1,
|
|
14893
|
+
deliverablesTitle: () => deliverablestitle1,
|
|
14498
14894
|
dirBreadcrumbs: () => dirbreadcrumbs1,
|
|
14499
14895
|
discardBroadcast: () => discardbroadcast1,
|
|
14500
14896
|
discardBroadcastTitle: () => discardbroadcasttitle2,
|
|
@@ -14880,6 +15276,16 @@ var messages_exports = /* @__PURE__ */ __exportAll({
|
|
|
14880
15276
|
backToWorkspace: () => backtoworkspace2,
|
|
14881
15277
|
broadcast: () => broadcast,
|
|
14882
15278
|
broadcastSyncedTo: () => broadcastsyncedto2,
|
|
15279
|
+
browserBack: () => browserback1,
|
|
15280
|
+
browserChipLabel: () => browserchiplabel2,
|
|
15281
|
+
browserForward: () => browserforward1,
|
|
15282
|
+
browserLaunching: () => browserlaunching1,
|
|
15283
|
+
browserOpenTitle: () => browseropentitle2,
|
|
15284
|
+
browserPanelTitle: () => browserpaneltitle2,
|
|
15285
|
+
browserReload: () => browserreload1,
|
|
15286
|
+
browserSessionFailed: () => browsersessionfailed2,
|
|
15287
|
+
browserUrlPlaceholder: () => browserurlplaceholder2,
|
|
15288
|
+
browserWaitingFrames: () => browserwaitingframes2,
|
|
14883
15289
|
cacheHit: () => cachehit1,
|
|
14884
15290
|
cachedInput: () => cachedinput1,
|
|
14885
15291
|
cancel: () => cancel,
|
|
@@ -14953,6 +15359,8 @@ var messages_exports = /* @__PURE__ */ __exportAll({
|
|
|
14953
15359
|
del: () => del,
|
|
14954
15360
|
delete: () => _delete,
|
|
14955
15361
|
deleting: () => deleting,
|
|
15362
|
+
deliverablesFiles: () => deliverablesfiles1,
|
|
15363
|
+
deliverablesTitle: () => deliverablestitle1,
|
|
14956
15364
|
dirBreadcrumbs: () => dirbreadcrumbs1,
|
|
14957
15365
|
discardBroadcast: () => discardbroadcast1,
|
|
14958
15366
|
discardBroadcastTitle: () => discardbroadcasttitle2,
|
|
@@ -15461,6 +15869,29 @@ function Bookmark_plus($$renderer, $$props) {
|
|
|
15461
15869
|
]));
|
|
15462
15870
|
}
|
|
15463
15871
|
//#endregion
|
|
15872
|
+
//#region node_modules/.pnpm/@lucide+svelte@1.35.0_svelte@5.56.10/node_modules/@lucide/svelte/dist/icons/bot.svelte
|
|
15873
|
+
function Bot($$renderer, $$props) {
|
|
15874
|
+
let { $$slots, $$events, ...props } = $$props;
|
|
15875
|
+
Icon($$renderer, spread_props([
|
|
15876
|
+
{ name: "bot" },
|
|
15877
|
+
props,
|
|
15878
|
+
{ iconNode: [
|
|
15879
|
+
["path", { "d": "M12 8V4H8" }],
|
|
15880
|
+
["rect", {
|
|
15881
|
+
"width": "16",
|
|
15882
|
+
"height": "12",
|
|
15883
|
+
"x": "4",
|
|
15884
|
+
"y": "8",
|
|
15885
|
+
"rx": "2"
|
|
15886
|
+
}],
|
|
15887
|
+
["path", { "d": "M2 14h2" }],
|
|
15888
|
+
["path", { "d": "M20 14h2" }],
|
|
15889
|
+
["path", { "d": "M15 13v2" }],
|
|
15890
|
+
["path", { "d": "M9 13v2" }]
|
|
15891
|
+
] }
|
|
15892
|
+
]));
|
|
15893
|
+
}
|
|
15894
|
+
//#endregion
|
|
15464
15895
|
//#region node_modules/.pnpm/@lucide+svelte@1.35.0_svelte@5.56.10/node_modules/@lucide/svelte/dist/icons/camera.svelte
|
|
15465
15896
|
function Camera($$renderer, $$props) {
|
|
15466
15897
|
let { $$slots, $$events, ...props } = $$props;
|
|
@@ -15853,6 +16284,21 @@ function Moon($$renderer, $$props) {
|
|
|
15853
16284
|
]));
|
|
15854
16285
|
}
|
|
15855
16286
|
//#endregion
|
|
16287
|
+
//#region node_modules/.pnpm/@lucide+svelte@1.35.0_svelte@5.56.10/node_modules/@lucide/svelte/dist/icons/package.svelte
|
|
16288
|
+
function Package($$renderer, $$props) {
|
|
16289
|
+
let { $$slots, $$events, ...props } = $$props;
|
|
16290
|
+
Icon($$renderer, spread_props([
|
|
16291
|
+
{ name: "package" },
|
|
16292
|
+
props,
|
|
16293
|
+
{ iconNode: [
|
|
16294
|
+
["path", { "d": "M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z" }],
|
|
16295
|
+
["path", { "d": "M12 22V12" }],
|
|
16296
|
+
["polyline", { "points": "3.29 7 12 12 20.71 7" }],
|
|
16297
|
+
["path", { "d": "m7.5 4.27 9 5.15" }]
|
|
16298
|
+
] }
|
|
16299
|
+
]));
|
|
16300
|
+
}
|
|
16301
|
+
//#endregion
|
|
15856
16302
|
//#region node_modules/.pnpm/@lucide+svelte@1.35.0_svelte@5.56.10/node_modules/@lucide/svelte/dist/icons/panel-left-close.svelte
|
|
15857
16303
|
function Panel_left_close($$renderer, $$props) {
|
|
15858
16304
|
let { $$slots, $$events, ...props } = $$props;
|
|
@@ -18337,7 +18783,7 @@ function ThemeToggle($$renderer, $$props) {
|
|
|
18337
18783
|
}
|
|
18338
18784
|
//#endregion
|
|
18339
18785
|
//#region package.json
|
|
18340
|
-
var version = "0.
|
|
18786
|
+
var version = "0.7.0";
|
|
18341
18787
|
var dsh = { "webVersion": "0.2.1-rc.2" };
|
|
18342
18788
|
//#endregion
|
|
18343
18789
|
//#region src/lib/version.ts
|
|
@@ -19031,6 +19477,11 @@ function createConversationStore(sessionId) {
|
|
|
19031
19477
|
* server first delivers the pair (older host / projections not
|
|
19032
19478
|
* composed); the panel keeps its partial fold then. */
|
|
19033
19479
|
let ledgerStats = null;
|
|
19480
|
+
/** The session's presented-file inventory (ADR-0027f D1): raw-lane
|
|
19481
|
+
* deliveries, cold-seeded/resync-replaced wholesale, delta-appended by
|
|
19482
|
+
* callId (idempotent — at-least-once polls never duplicate). Empty =
|
|
19483
|
+
* no presents yet (the anchor button's render gate). */
|
|
19484
|
+
let deliverables = [];
|
|
19034
19485
|
/**
|
|
19035
19486
|
* Cold/resync seed (authoritative replace, the entries semantics): the
|
|
19036
19487
|
* projections baseline (null = the host ships none) and the window's
|
|
@@ -19146,6 +19597,25 @@ function createConversationStore(sessionId) {
|
|
|
19146
19597
|
if (poll.plan !== void 0) planMode = poll.plan;
|
|
19147
19598
|
if (poll.goal !== void 0) goal = poll.goal;
|
|
19148
19599
|
if (poll.ledgerStats !== void 0) ledgerStats = poll.ledgerStats;
|
|
19600
|
+
if (poll.deliverables !== void 0) applyDeliverables(poll.deliverables);
|
|
19601
|
+
}
|
|
19602
|
+
/**
|
|
19603
|
+
* Fold raw-lane deliveries in (ADR-0027f D1): append by callId — an
|
|
19604
|
+
* already-known callId is a re-delivered poll delta, skipped whole.
|
|
19605
|
+
*/
|
|
19606
|
+
function applyDeliverables(delta) {
|
|
19607
|
+
if (delta.length === 0) return;
|
|
19608
|
+
const known = new Set(deliverables.map((d) => d.callId));
|
|
19609
|
+
const fresh = delta.filter((d) => !known.has(d.callId));
|
|
19610
|
+
if (fresh.length === 0) return;
|
|
19611
|
+
deliverables = [...deliverables, ...fresh];
|
|
19612
|
+
}
|
|
19613
|
+
/**
|
|
19614
|
+
* Seed the inventory (cold load + resync — authoritative replace, the
|
|
19615
|
+
* ledger's append-only truth re-read whole; ADR-0027f D1).
|
|
19616
|
+
*/
|
|
19617
|
+
function seedDeliverables(next) {
|
|
19618
|
+
deliverables = [...next];
|
|
19149
19619
|
}
|
|
19150
19620
|
/**
|
|
19151
19621
|
* Seed the live imageLimits projection (resync path — the delta seed
|
|
@@ -19198,13 +19668,14 @@ function createConversationStore(sessionId) {
|
|
|
19198
19668
|
* SAME replace-by-rpcId rules as the delta path, so a page stuck
|
|
19199
19669
|
* resyncing still renders pending/settled cards.
|
|
19200
19670
|
*/
|
|
19201
|
-
function resyncFromLedgerEntries(next, lastSeq, running, permissionSeed, answers) {
|
|
19671
|
+
function resyncFromLedgerEntries(next, lastSeq, running, permissionSeed, answers, deliverablesSeed) {
|
|
19202
19672
|
const pendingOptimistic = entries.filter((e) => e.kind === "user-message" && "local" in e && e.local === true);
|
|
19203
19673
|
replaceAll(next);
|
|
19204
19674
|
if (pendingOptimistic.length > 0) entries = mergeEntries(entries, pendingOptimistic);
|
|
19205
19675
|
applyStatus(running, lastSeq);
|
|
19206
19676
|
dedupeOptimistic();
|
|
19207
19677
|
if (permissionSeed !== void 0) seedPermission(permissionSeed.permission, permissionSeed.knobEvents);
|
|
19678
|
+
if (deliverablesSeed !== void 0) seedDeliverables(deliverablesSeed);
|
|
19208
19679
|
applyAnswers(answers?.pendingAnswers, answers?.settledAnswers);
|
|
19209
19680
|
}
|
|
19210
19681
|
/** Acquire the per-rpcId in-flight lock (false = already locked). */
|
|
@@ -19312,7 +19783,13 @@ function createConversationStore(sessionId) {
|
|
|
19312
19783
|
get ledgerStats() {
|
|
19313
19784
|
return ledgerStats;
|
|
19314
19785
|
},
|
|
19786
|
+
/** The session's presented-file inventory (ADR-0027f); empty =
|
|
19787
|
+
* no presents (the DeliverablesButton gate). */
|
|
19788
|
+
get deliverables() {
|
|
19789
|
+
return deliverables;
|
|
19790
|
+
},
|
|
19315
19791
|
seedImageLimits,
|
|
19792
|
+
seedDeliverables,
|
|
19316
19793
|
seedTodos,
|
|
19317
19794
|
seedPlanMode,
|
|
19318
19795
|
seedGoal,
|
|
@@ -19427,7 +19904,7 @@ function createPollingOrchestrator(store, deps = {}) {
|
|
|
19427
19904
|
}, {
|
|
19428
19905
|
pendingAnswers: body.pendingAnswers,
|
|
19429
19906
|
settledAnswers: body.settledAnswers
|
|
19430
|
-
});
|
|
19907
|
+
}, body.deliverables ?? []);
|
|
19431
19908
|
store.applyLiveStream(body.liveStream);
|
|
19432
19909
|
store.seedImageLimits(body.imageLimits ?? null);
|
|
19433
19910
|
store.seedTodos(body.todos ?? null);
|
|
@@ -21371,6 +21848,7 @@ function workspaceFileTitle(path) {
|
|
|
21371
21848
|
*/
|
|
21372
21849
|
function panelHeaderLabel(panel) {
|
|
21373
21850
|
if (panel.kind === "terminal") return "Terminal";
|
|
21851
|
+
if (panel.kind === "browser") return "Browser";
|
|
21374
21852
|
if (panel.kind === "prompt-manager") return MANAGER_ROW_TITLE;
|
|
21375
21853
|
if (panel.kind === "skill-shelf") return "Skill Shelf";
|
|
21376
21854
|
if (panel.kind === "plugin-rack") return "Plugin Rack";
|
|
@@ -21399,9 +21877,9 @@ function panelRowsFor(input) {
|
|
|
21399
21877
|
const { panels, spineRows, coldCache, deadSessions, edgeCache, lineageFacts, moveFacts } = input;
|
|
21400
21878
|
const openSessionIds = openSessionIdsOf(panels);
|
|
21401
21879
|
return panels.map((p, index) => {
|
|
21402
|
-
if (p.kind === "terminal" || p.kind === "prompt-manager" || p.kind === "settings-editor" || p.kind === "skill-shelf" || p.kind === "plugin-rack") return {
|
|
21880
|
+
if (p.kind === "terminal" || p.kind === "browser" || p.kind === "prompt-manager" || p.kind === "settings-editor" || p.kind === "skill-shelf" || p.kind === "plugin-rack") return {
|
|
21403
21881
|
panel: p,
|
|
21404
|
-
title: p.kind === "terminal" ? "Terminal" : p.kind === "prompt-manager" ? MANAGER_ROW_TITLE : p.kind === "skill-shelf" ? "Skill Shelf" : p.kind === "plugin-rack" ? "Plugin Rack" : SETTINGS_ROW_TITLE[p.target],
|
|
21882
|
+
title: p.kind === "terminal" ? "Terminal" : p.kind === "browser" ? "Browser" : p.kind === "prompt-manager" ? MANAGER_ROW_TITLE : p.kind === "skill-shelf" ? "Skill Shelf" : p.kind === "plugin-rack" ? "Plugin Rack" : p.kind === "settings-editor" ? SETTINGS_ROW_TITLE[p.target] : "",
|
|
21405
21883
|
workspace: null,
|
|
21406
21884
|
dead: false,
|
|
21407
21885
|
running: false,
|
|
@@ -23457,20 +23935,26 @@ function ToolsAndStatusHeader($$renderer, $$props) {
|
|
|
23457
23935
|
$$renderer.push(`<div data-svelte="ToolsAndStatusHeader" class="ml-auto flex items-center gap-1">`);
|
|
23458
23936
|
OpenParentButton($$renderer, { parentSessionId });
|
|
23459
23937
|
$$renderer.push(`<!----> `);
|
|
23938
|
+
if (agentId) {
|
|
23939
|
+
$$renderer.push("<!--[0-->");
|
|
23940
|
+
$$renderer.push(`<button type="button" class="shrink-0 rounded-md p-1 text-text-muted hover:bg-surface-alt hover:text-text-secondary" data-testid="agent-chip-copy-id"${attr("aria-label", t(copyagentpresetid3))}${attr("title", agentId)}>`);
|
|
23941
|
+
$$renderer.push("<!--[-1-->");
|
|
23942
|
+
Copy($$renderer, {
|
|
23943
|
+
size: 12,
|
|
23944
|
+
"aria-hidden": "true"
|
|
23945
|
+
});
|
|
23946
|
+
$$renderer.push(`<!--]--></button>`);
|
|
23947
|
+
} else $$renderer.push("<!--[-1-->");
|
|
23948
|
+
$$renderer.push(`<!--]--> `);
|
|
23460
23949
|
if (agent) {
|
|
23461
23950
|
$$renderer.push("<!--[0-->");
|
|
23462
23951
|
$$renderer.push(`<span class="agent-chip svelte-1uiman" data-testid="agent-chip"${attr("title", agentId ? `agent preset — ${agentId}` : void 0)}>`);
|
|
23463
|
-
|
|
23464
|
-
|
|
23465
|
-
|
|
23466
|
-
|
|
23467
|
-
|
|
23468
|
-
|
|
23469
|
-
"aria-hidden": "true"
|
|
23470
|
-
});
|
|
23471
|
-
$$renderer.push(`<!--]--></button>`);
|
|
23472
|
-
} else $$renderer.push("<!--[-1-->");
|
|
23473
|
-
$$renderer.push(`<!--]--> ${escape_html(agent)}</span>`);
|
|
23952
|
+
Bot($$renderer, {
|
|
23953
|
+
size: 12,
|
|
23954
|
+
class: "shrink-0",
|
|
23955
|
+
"aria-hidden": "true"
|
|
23956
|
+
});
|
|
23957
|
+
$$renderer.push(`<!----> ${escape_html(agent)}</span>`);
|
|
23474
23958
|
} else $$renderer.push("<!--[-1-->");
|
|
23475
23959
|
$$renderer.push(`<!--]--> `);
|
|
23476
23960
|
PlanModeChip($$renderer, { plan });
|
|
@@ -23497,38 +23981,45 @@ function ToolsAndStatusHeader($$renderer, $$props) {
|
|
|
23497
23981
|
//#endregion
|
|
23498
23982
|
//#region src/lib/components/conversation/ConversationHeader.svelte
|
|
23499
23983
|
function ConversationHeader($$renderer, $$props) {
|
|
23500
|
-
|
|
23501
|
-
|
|
23502
|
-
|
|
23503
|
-
|
|
23504
|
-
|
|
23505
|
-
|
|
23506
|
-
|
|
23507
|
-
|
|
23508
|
-
|
|
23509
|
-
|
|
23510
|
-
|
|
23511
|
-
|
|
23512
|
-
|
|
23513
|
-
|
|
23514
|
-
|
|
23515
|
-
|
|
23516
|
-
|
|
23517
|
-
|
|
23518
|
-
|
|
23519
|
-
|
|
23520
|
-
|
|
23521
|
-
|
|
23522
|
-
|
|
23523
|
-
|
|
23524
|
-
|
|
23525
|
-
|
|
23526
|
-
|
|
23527
|
-
|
|
23528
|
-
|
|
23529
|
-
|
|
23984
|
+
$$renderer.component(($$renderer) => {
|
|
23985
|
+
/**
|
|
23986
|
+
* ConversationHeader — the conversation page's top bar (extracted
|
|
23987
|
+
* from the page, 2026-08-24): the identity cluster (SessionIdAndName:
|
|
23988
|
+
* copy-id prefix, workspace chip, title display, inline rename) on
|
|
23989
|
+
* the left; the agent chip, the running/idle status, the session
|
|
23990
|
+
* fork (2026-09-01), and the conversation capture on the right
|
|
23991
|
+
* (ToolsAndStatusHeader, extracted 2026-08-24). Purely presentational
|
|
23992
|
+
* — title state and the streaming flag arrive as props; writes report
|
|
23993
|
+
* upward.
|
|
23994
|
+
*/
|
|
23995
|
+
let { sessionId, title, workspace = null, workspaces = [], access = null, agent, agentId = null, isStreaming, transcript = null, subagent = false, plan = null, parentSessionId = null, focused = false, onOpenExplorer = void 0, onOpenBrowser = void 0 } = $$props;
|
|
23996
|
+
$$renderer.push(`<header data-svelte="ConversationHeader"${attr_class(`flex items-center gap-3 border-b border-surface-border px-2 py-1 ${focused ? "bg-header-wash" : "bg-surface-elevated"}`)} data-testid="conversation-header"${attr("data-focused", focused ? "true" : "false")}>`);
|
|
23997
|
+
SessionIdAndName($$renderer, {
|
|
23998
|
+
sessionId,
|
|
23999
|
+
title,
|
|
24000
|
+
workspace,
|
|
24001
|
+
workspaces,
|
|
24002
|
+
access,
|
|
24003
|
+
subagent,
|
|
24004
|
+
onOpenExplorer
|
|
24005
|
+
});
|
|
24006
|
+
$$renderer.push(`<!----> `);
|
|
24007
|
+
if (onOpenBrowser) {
|
|
24008
|
+
$$renderer.push("<!--[0-->");
|
|
24009
|
+
$$renderer.push(`<button class="rounded border border-surface-border px-1.5 py-0.5 text-xs hover:bg-surface-active" data-testid="open-browser"${attr("title", browseropentitle2())}>${escape_html(browserchiplabel2())}</button>`);
|
|
24010
|
+
} else $$renderer.push("<!--[-1-->");
|
|
24011
|
+
$$renderer.push(`<!--]--> `);
|
|
24012
|
+
ToolsAndStatusHeader($$renderer, {
|
|
24013
|
+
agent,
|
|
24014
|
+
agentId,
|
|
24015
|
+
isStreaming,
|
|
24016
|
+
transcript,
|
|
24017
|
+
plan,
|
|
24018
|
+
parentSessionId,
|
|
24019
|
+
subagent
|
|
24020
|
+
});
|
|
24021
|
+
$$renderer.push(`<!----></header>`);
|
|
23530
24022
|
});
|
|
23531
|
-
$$renderer.push(`<!----></header>`);
|
|
23532
24023
|
}
|
|
23533
24024
|
//#endregion
|
|
23534
24025
|
//#region src/lib/components/message/LoadOlderSentinel.svelte
|
|
@@ -27935,13 +28426,13 @@ function FloatingAnchorContainerPopup($$renderer, $$props) {
|
|
|
27935
28426
|
* `titleTestId` exists because the header's data-testid is part of
|
|
27936
28427
|
* each leaf's pinned surface (plan-popup-header, user-message-jumper-header).
|
|
27937
28428
|
*/
|
|
27938
|
-
let { open = false, triggerEl = void 0, title = void 0, titleTestId = void 0, popupTestId = "floating-anchor-popup", children } = $$props;
|
|
28429
|
+
let { open = false, triggerEl = void 0, title = void 0, titleTestId = void 0, popupTestId = "floating-anchor-popup", fitWidth = false, children } = $$props;
|
|
27939
28430
|
/** Focus the box — leaves call it through bind:this when an action
|
|
27940
28431
|
* must hand focus back (the jumper's stay-open jump). */
|
|
27941
28432
|
function focus() {}
|
|
27942
28433
|
if (open) {
|
|
27943
28434
|
$$renderer.push("<!--[0-->");
|
|
27944
|
-
$$renderer.push(`<div data-svelte="FloatingAnchorContainerPopup" tabindex="-1"
|
|
28435
|
+
$$renderer.push(`<div data-svelte="FloatingAnchorContainerPopup" tabindex="-1"${attr_class(`pointer-events-auto absolute right-full top-1/2 z-50 mr-2 max-h-[60vh] max-w-[80vw] -translate-y-1/2 overflow-y-auto rounded-lg border border-surface-border bg-surface-elevated py-1 shadow-xl outline-none focus:outline-none ${fitWidth ? "w-fit" : "w-96"}`)}${attr("data-testid", popupTestId)}>`);
|
|
27945
28436
|
if (title !== void 0) {
|
|
27946
28437
|
$$renderer.push("<!--[0-->");
|
|
27947
28438
|
$$renderer.push(`<div class="border-b border-surface-border px-2.5 py-1.5 text-[10px] font-medium uppercase tracking-wider text-text-muted"${attr("data-testid", titleTestId)}>${escape_html(title)}</div>`);
|
|
@@ -27958,7 +28449,7 @@ function FloatingAnchorContainerPopup($$renderer, $$props) {
|
|
|
27958
28449
|
});
|
|
27959
28450
|
}
|
|
27960
28451
|
//#endregion
|
|
27961
|
-
//#region src/lib/components/anchor/user-
|
|
28452
|
+
//#region src/lib/components/anchor/user-msg-anchor/UserMessageJumper.svelte
|
|
27962
28453
|
function UserMessageJumper($$renderer, $$props) {
|
|
27963
28454
|
$$renderer.component(($$renderer) => {
|
|
27964
28455
|
/**
|
|
@@ -28013,7 +28504,7 @@ function UserMessageJumper($$renderer, $$props) {
|
|
|
28013
28504
|
});
|
|
28014
28505
|
}
|
|
28015
28506
|
//#endregion
|
|
28016
|
-
//#region src/lib/components/anchor/user-
|
|
28507
|
+
//#region src/lib/components/anchor/user-msg-anchor/UserMessagesButton.svelte
|
|
28017
28508
|
function UserMessagesButton($$renderer, $$props) {
|
|
28018
28509
|
$$renderer.component(($$renderer) => {
|
|
28019
28510
|
/**
|
|
@@ -28045,7 +28536,7 @@ function UserMessagesButton($$renderer, $$props) {
|
|
|
28045
28536
|
function $$render_inner($$renderer) {
|
|
28046
28537
|
if (container !== void 0 && groups.some((g) => g.kind === "prompt")) {
|
|
28047
28538
|
$$renderer.push("<!--[0-->");
|
|
28048
|
-
$$renderer.push(`<div data-svelte="UserMessagesButton" class="relative"><button type="button"${attr_class("floating-anchor-btn tone-cyan svelte-
|
|
28539
|
+
$$renderer.push(`<div data-svelte="UserMessagesButton" class="relative"><button type="button"${attr_class("floating-anchor-btn tone-cyan svelte-7ykxqh", void 0, { "active": open })}${attr("title", t(usermessagestitle2))} data-testid="user-messages-button">`);
|
|
28049
28540
|
Message_square_text($$renderer, { size: 14 });
|
|
28050
28541
|
$$renderer.push(`<!----></button> `);
|
|
28051
28542
|
UserMessageJumper($$renderer, {
|
|
@@ -28081,7 +28572,7 @@ function BackToTheEdgeButton($$renderer, $$props) {
|
|
|
28081
28572
|
});
|
|
28082
28573
|
}
|
|
28083
28574
|
//#endregion
|
|
28084
|
-
//#region src/lib/components/anchor/plan/PlanPopup.svelte
|
|
28575
|
+
//#region src/lib/components/anchor/plan-anchor/PlanPopup.svelte
|
|
28085
28576
|
function PlanPopup($$renderer, $$props) {
|
|
28086
28577
|
$$renderer.component(($$renderer) => {
|
|
28087
28578
|
/**
|
|
@@ -28130,7 +28621,7 @@ function PlanPopup($$renderer, $$props) {
|
|
|
28130
28621
|
});
|
|
28131
28622
|
}
|
|
28132
28623
|
//#endregion
|
|
28133
|
-
//#region src/lib/components/anchor/plan/PlanButton.svelte
|
|
28624
|
+
//#region src/lib/components/anchor/plan-anchor/PlanButton.svelte
|
|
28134
28625
|
function PlanButton($$renderer, $$props) {
|
|
28135
28626
|
$$renderer.component(($$renderer) => {
|
|
28136
28627
|
/**
|
|
@@ -28164,7 +28655,7 @@ function PlanButton($$renderer, $$props) {
|
|
|
28164
28655
|
function $$render_inner($$renderer) {
|
|
28165
28656
|
if (items().length > 0) {
|
|
28166
28657
|
$$renderer.push("<!--[0-->");
|
|
28167
|
-
$$renderer.push(`<div data-svelte="PlanButton" class="relative"><button type="button"${attr_class("floating-anchor-btn tone-purple svelte-
|
|
28658
|
+
$$renderer.push(`<div data-svelte="PlanButton" class="relative"><button type="button"${attr_class("floating-anchor-btn tone-purple svelte-65h8xp", void 0, { "active": open })}${attr("title", t(currentplan1) + done() + "/" + items().length + t(donepart1))} data-testid="plan-button">`);
|
|
28168
28659
|
List_checks($$renderer, { size: 14 });
|
|
28169
28660
|
$$renderer.push(`<!----></button> `);
|
|
28170
28661
|
PlanPopup($$renderer, {
|
|
@@ -28191,7 +28682,127 @@ function PlanButton($$renderer, $$props) {
|
|
|
28191
28682
|
});
|
|
28192
28683
|
}
|
|
28193
28684
|
//#endregion
|
|
28194
|
-
//#region src/lib/components/anchor/
|
|
28685
|
+
//#region src/lib/components/anchor/deliverables-anchor/DeliverablesPopup.svelte
|
|
28686
|
+
function DeliverablesPopup($$renderer, $$props) {
|
|
28687
|
+
$$renderer.component(($$renderer) => {
|
|
28688
|
+
/**
|
|
28689
|
+
* DeliverablesPopup — the session's presented-file inventory
|
|
28690
|
+
* (ADR-0027f, D3, row format amended 2026-10-19): ONE line per file
|
|
28691
|
+
* across every present event, newest turn last — the description is
|
|
28692
|
+
* the label (active foreground), falling back to the bare filename
|
|
28693
|
+
* when the model supplied none; the full path rides the hover title
|
|
28694
|
+
* and the row's CopyButton, never the visible line. Extracted from
|
|
28695
|
+
* DeliverablesButton on
|
|
28696
|
+
* the PlanPopup pattern (content vs chrome): hosting lives in
|
|
28697
|
+
* FloatingAnchorContainerPopup (placement, width cap, close
|
|
28698
|
+
* contract); this leaf renders ONLY the rows. A row click opens the
|
|
28699
|
+
* file through the transcript's file-open seat — the popup is an
|
|
28700
|
+
* inventory with a jump, never a copy (the ledger's path is truth).
|
|
28701
|
+
*/
|
|
28702
|
+
let { deliveries, triggerEl, open = false, onopen } = $$props;
|
|
28703
|
+
const fileCount = derived(() => deliveries.reduce((n, d) => n + d.files.length, 0));
|
|
28704
|
+
/** The row's label: bare filename, extension stripped (ADR-0027f
|
|
28705
|
+
* D3 amendment 2026-10-19 — the full path rides the hover title
|
|
28706
|
+
* and the row's CopyButton, never the visible line). */
|
|
28707
|
+
function displayName(path) {
|
|
28708
|
+
const base = path.split("/").pop() ?? path;
|
|
28709
|
+
const dot = base.lastIndexOf(".");
|
|
28710
|
+
return dot > 0 ? base.slice(0, dot) : base;
|
|
28711
|
+
}
|
|
28712
|
+
FloatingAnchorContainerPopup($$renderer, {
|
|
28713
|
+
open,
|
|
28714
|
+
triggerEl,
|
|
28715
|
+
fitWidth: true,
|
|
28716
|
+
title: `${stringify(t(deliverablestitle1))}${stringify(fileCount())}${stringify(t(deliverablesfiles1))}`,
|
|
28717
|
+
titleTestId: "deliverables-popup-header",
|
|
28718
|
+
popupTestId: "deliverables-popup",
|
|
28719
|
+
children: ($$renderer) => {
|
|
28720
|
+
$$renderer.push(`<!--[-->`);
|
|
28721
|
+
const each_array = ensure_array_like(deliveries);
|
|
28722
|
+
for (let $$index_1 = 0, $$length = each_array.length; $$index_1 < $$length; $$index_1++) {
|
|
28723
|
+
let delivery = each_array[$$index_1];
|
|
28724
|
+
$$renderer.push(`<!--[-->`);
|
|
28725
|
+
const each_array_1 = ensure_array_like(delivery.files);
|
|
28726
|
+
for (let $$index = 0, $$length = each_array_1.length; $$index < $$length; $$index++) {
|
|
28727
|
+
let file = each_array_1[$$index];
|
|
28728
|
+
$$renderer.push(`<button type="button" class="flex w-full items-center gap-1.5 border-b border-surface-border/30 px-2 py-1 text-left text-xs last:border-b-0 hover:bg-surface-border/20" data-testid="deliverables-popup-row"${attr("data-turn", delivery.turn)}${attr("title", file.path)}>`);
|
|
28729
|
+
CopyButton($$renderer, {
|
|
28730
|
+
value: file.path,
|
|
28731
|
+
title: t(copyfullpath2),
|
|
28732
|
+
size: 10,
|
|
28733
|
+
class: "shrink-0 rounded p-0.5 text-text-muted hover:bg-surface-hover hover:text-text-secondary"
|
|
28734
|
+
});
|
|
28735
|
+
$$renderer.push(`<!----> <span class="min-w-0 flex-1 truncate text-text-primary">${escape_html(file.description ?? displayName(file.path))}</span></button>`);
|
|
28736
|
+
}
|
|
28737
|
+
$$renderer.push(`<!--]-->`);
|
|
28738
|
+
}
|
|
28739
|
+
$$renderer.push(`<!--]-->`);
|
|
28740
|
+
},
|
|
28741
|
+
$$slots: { default: true }
|
|
28742
|
+
});
|
|
28743
|
+
bind_props($$props, { open });
|
|
28744
|
+
});
|
|
28745
|
+
}
|
|
28746
|
+
//#endregion
|
|
28747
|
+
//#region src/lib/components/anchor/deliverables-anchor/DeliverablesButton.svelte
|
|
28748
|
+
function DeliverablesButton($$renderer, $$props) {
|
|
28749
|
+
$$renderer.component(($$renderer) => {
|
|
28750
|
+
/**
|
|
28751
|
+
* DeliverablesButton — the Deliverables leaf of the floating anchor
|
|
28752
|
+
* stack (ADR-0027f, D2): the session's presented-file inventory as
|
|
28753
|
+
* one click, beside the transcript. Behaves like PlanButton: the
|
|
28754
|
+
* button owns its popup's open state and the trigger element while
|
|
28755
|
+
* DeliverablesPopup renders the rows — the wrapper div is the
|
|
28756
|
+
* popup's triggerEl, and the opening click bubbles to the window
|
|
28757
|
+
* outside-click handler without closing what it just opened.
|
|
28758
|
+
*
|
|
28759
|
+
* Renders NOTHING while the inventory is empty (null/[] — no present
|
|
28760
|
+
* ever landed; omit, never approximate). Tone CSS is OCI's verbatim
|
|
28761
|
+
* pattern (scoped style, var + fallback) — teal marks the hand-off
|
|
28762
|
+
* family (files the agent gave you).
|
|
28763
|
+
*/
|
|
28764
|
+
let { deliveries, onfileopen } = $$props;
|
|
28765
|
+
/** Popup open state — the active tone mirrors it on the button. */
|
|
28766
|
+
let open = false;
|
|
28767
|
+
/** The popup's trigger exclusion element (the wrapper div). */
|
|
28768
|
+
let triggerEl = void 0;
|
|
28769
|
+
/** Null-safe list — the render gate reads this, never the raw prop. */
|
|
28770
|
+
const items = derived(() => deliveries ?? []);
|
|
28771
|
+
const fileCount = derived(() => items().reduce((n, d) => n + d.files.length, 0));
|
|
28772
|
+
let $$settled = true;
|
|
28773
|
+
let $$inner_renderer;
|
|
28774
|
+
function $$render_inner($$renderer) {
|
|
28775
|
+
if (items().length > 0) {
|
|
28776
|
+
$$renderer.push("<!--[0-->");
|
|
28777
|
+
$$renderer.push(`<div data-svelte="DeliverablesButton" class="relative"><button type="button"${attr_class("floating-anchor-btn tone-teal svelte-1mhticx", void 0, { "active": open })}${attr("title", t(deliverablestitle1) + fileCount() + t(deliverablesfiles1))} data-testid="deliverables-button">`);
|
|
28778
|
+
Package($$renderer, { size: 14 });
|
|
28779
|
+
$$renderer.push(`<!----></button> `);
|
|
28780
|
+
DeliverablesPopup($$renderer, {
|
|
28781
|
+
deliveries: items(),
|
|
28782
|
+
triggerEl,
|
|
28783
|
+
onopen: onfileopen,
|
|
28784
|
+
get open() {
|
|
28785
|
+
return open;
|
|
28786
|
+
},
|
|
28787
|
+
set open($$value) {
|
|
28788
|
+
open = $$value;
|
|
28789
|
+
$$settled = false;
|
|
28790
|
+
}
|
|
28791
|
+
});
|
|
28792
|
+
$$renderer.push(`<!----></div>`);
|
|
28793
|
+
} else $$renderer.push("<!--[-1-->");
|
|
28794
|
+
$$renderer.push(`<!--]-->`);
|
|
28795
|
+
}
|
|
28796
|
+
do {
|
|
28797
|
+
$$settled = true;
|
|
28798
|
+
$$inner_renderer = $$renderer.copy();
|
|
28799
|
+
$$render_inner($$inner_renderer);
|
|
28800
|
+
} while (!$$settled);
|
|
28801
|
+
$$renderer.subsume($$inner_renderer);
|
|
28802
|
+
});
|
|
28803
|
+
}
|
|
28804
|
+
//#endregion
|
|
28805
|
+
//#region src/lib/components/anchor/job-anchor/JobsPopup.svelte
|
|
28195
28806
|
function JobsPopup($$renderer, $$props) {
|
|
28196
28807
|
$$renderer.component(($$renderer) => {
|
|
28197
28808
|
/**
|
|
@@ -28233,7 +28844,7 @@ function JobsPopup($$renderer, $$props) {
|
|
|
28233
28844
|
});
|
|
28234
28845
|
}
|
|
28235
28846
|
//#endregion
|
|
28236
|
-
//#region src/lib/components/anchor/job/JobsButton.svelte
|
|
28847
|
+
//#region src/lib/components/anchor/job-anchor/JobsButton.svelte
|
|
28237
28848
|
function JobsButton($$renderer, $$props) {
|
|
28238
28849
|
$$renderer.component(($$renderer) => {
|
|
28239
28850
|
/**
|
|
@@ -28263,7 +28874,7 @@ function JobsButton($$renderer, $$props) {
|
|
|
28263
28874
|
function $$render_inner($$renderer) {
|
|
28264
28875
|
if (liveCount() > 0) {
|
|
28265
28876
|
$$renderer.push("<!--[0-->");
|
|
28266
|
-
$$renderer.push(`<div data-svelte="JobsButton" class="relative" data-testid="jobs-button"><button type="button"${attr_class("floating-anchor-btn tone-amber svelte-
|
|
28877
|
+
$$renderer.push(`<div data-svelte="JobsButton" class="relative" data-testid="jobs-button"><button type="button"${attr_class("floating-anchor-btn tone-amber svelte-1jfxn7m", void 0, { "active": open })}${attr("title", t(() => liveCount() === 1 ? jobslivetitle_one2({ n: liveCount() }) : jobslivetitle_other2({ n: liveCount() })))} data-testid="jobs-button-trigger"><span class="dot svelte-1jfxn7m"></span>${escape_html(liveCount())}</button> `);
|
|
28267
28878
|
JobsPopup($$renderer, {
|
|
28268
28879
|
triggerEl,
|
|
28269
28880
|
jobs: jobs(),
|
|
@@ -28289,7 +28900,7 @@ function JobsButton($$renderer, $$props) {
|
|
|
28289
28900
|
});
|
|
28290
28901
|
}
|
|
28291
28902
|
//#endregion
|
|
28292
|
-
//#region src/lib/components/anchor/inject/InjectedShelfPopup.svelte
|
|
28903
|
+
//#region src/lib/components/anchor/inject-anchor/InjectedShelfPopup.svelte
|
|
28293
28904
|
function InjectedShelfPopup($$renderer, $$props) {
|
|
28294
28905
|
$$renderer.component(($$renderer) => {
|
|
28295
28906
|
/**
|
|
@@ -28312,6 +28923,7 @@ function InjectedShelfPopup($$renderer, $$props) {
|
|
|
28312
28923
|
function $$render_inner($$renderer) {
|
|
28313
28924
|
FloatingAnchorContainerPopup($$renderer, {
|
|
28314
28925
|
triggerEl,
|
|
28926
|
+
fitWidth: true,
|
|
28315
28927
|
title: t(() => injectedfiles1({ n: members.length })),
|
|
28316
28928
|
titleTestId: "injected-shelf-popup-header",
|
|
28317
28929
|
popupTestId: "injected-shelf-popup",
|
|
@@ -28329,15 +28941,15 @@ function InjectedShelfPopup($$renderer, $$props) {
|
|
|
28329
28941
|
let m = each_array[i];
|
|
28330
28942
|
if (i > 0 && members[i - 1].firstLoad === true && m.firstLoad === false) {
|
|
28331
28943
|
$$renderer.push("<!--[0-->");
|
|
28332
|
-
$$renderer.push(`<hr class="shelf-divider svelte-
|
|
28944
|
+
$$renderer.push(`<hr class="shelf-divider svelte-f316d6" data-testid="shelf-first-load-divider"/>`);
|
|
28333
28945
|
} else $$renderer.push("<!--[-1-->");
|
|
28334
|
-
$$renderer.push(`<!--]--> <div class="shelf-item svelte-
|
|
28946
|
+
$$renderer.push(`<!--]--> <div class="shelf-item svelte-f316d6" data-testid="injected-shelf-item"${attr("data-display-path", m.displayPath)}>`);
|
|
28335
28947
|
CopyButton($$renderer, {
|
|
28336
28948
|
value: m.origin === "system-prompt" ? injectedRecordFor(entries, m.displayPath)?.text ?? m.displayPath : injectedFullPath(workspace, m.displayPath),
|
|
28337
28949
|
title: m.origin === "system-prompt" ? "Copy prompt text — a shelf name, not a file" : "Copy full path",
|
|
28338
28950
|
class: "shelf-copy"
|
|
28339
28951
|
});
|
|
28340
|
-
$$renderer.push(`<!----> <button type="button" role="menuitem" class="shelf-pick svelte-
|
|
28952
|
+
$$renderer.push(`<!----> <button type="button" role="menuitem" class="shelf-pick svelte-f316d6" data-testid="injected-shelf-pick"${attr("title", m.displayPath)}><span class="shelf-pick-path svelte-f316d6">${escape_html(m.displayPath)}</span></button></div>`);
|
|
28341
28953
|
}
|
|
28342
28954
|
$$renderer.push(`<!--]-->`);
|
|
28343
28955
|
},
|
|
@@ -29204,7 +29816,7 @@ async function executeHostCommand(line, ctx, onNote) {
|
|
|
29204
29816
|
}
|
|
29205
29817
|
}
|
|
29206
29818
|
//#endregion
|
|
29207
|
-
//#region src/lib/components/anchor/inject/InjectedShelfButton.svelte
|
|
29819
|
+
//#region src/lib/components/anchor/inject-anchor/InjectedShelfButton.svelte
|
|
29208
29820
|
function InjectedShelfButton($$renderer, $$props) {
|
|
29209
29821
|
$$renderer.component(($$renderer) => {
|
|
29210
29822
|
/**
|
|
@@ -29251,7 +29863,7 @@ function InjectedShelfButton($$renderer, $$props) {
|
|
|
29251
29863
|
function $$render_inner($$renderer) {
|
|
29252
29864
|
if (members().length > 0) {
|
|
29253
29865
|
$$renderer.push("<!--[0-->");
|
|
29254
|
-
$$renderer.push(`<div data-svelte="InjectedShelfButton" class="relative svelte-
|
|
29866
|
+
$$renderer.push(`<div data-svelte="InjectedShelfButton" class="relative svelte-145ip4c"><button type="button"${attr_class("floating-anchor-btn tone-maroon svelte-145ip4c", void 0, { "active": open })}${attr("title", t(injectedtitle1))} data-testid="injected-shelf-button">`);
|
|
29255
29867
|
File_text($$renderer, { size: 14 });
|
|
29256
29868
|
$$renderer.push(`<!----></button> `);
|
|
29257
29869
|
InjectedShelfPopup($$renderer, {
|
|
@@ -29292,13 +29904,18 @@ function ConversationFloatingAnchor($$renderer, $$props) {
|
|
|
29292
29904
|
* far-edge jump. Purely presentational — the viewport and turn groups
|
|
29293
29905
|
* arrive as props.
|
|
29294
29906
|
*/
|
|
29295
|
-
let { groups, container, todos = null, jobsessionid = "", shelfentries = void 0, shelfsessionid = "", shelfworkspace = null, shelfpanelid = null, onshelfnote } = $$props;
|
|
29907
|
+
let { groups, container, todos = null, deliverables = null, onfileopen = void 0, jobsessionid = "", shelfentries = void 0, shelfsessionid = "", shelfworkspace = null, shelfpanelid = null, onshelfnote } = $$props;
|
|
29296
29908
|
if (container !== void 0) {
|
|
29297
29909
|
$$renderer.push("<!--[0-->");
|
|
29298
29910
|
FloatingAnchor($$renderer, {
|
|
29299
29911
|
children: ($$renderer) => {
|
|
29300
29912
|
PlanButton($$renderer, { todos: todos ?? [] });
|
|
29301
29913
|
$$renderer.push(`<!----> `);
|
|
29914
|
+
DeliverablesButton($$renderer, {
|
|
29915
|
+
deliveries: deliverables,
|
|
29916
|
+
onfileopen
|
|
29917
|
+
});
|
|
29918
|
+
$$renderer.push(`<!----> `);
|
|
29302
29919
|
JobsButton($$renderer, { sessionId: jobsessionid });
|
|
29303
29920
|
$$renderer.push(`<!----> `);
|
|
29304
29921
|
if (shelfentries !== void 0) {
|
|
@@ -30204,7 +30821,7 @@ var Paging = class {
|
|
|
30204
30821
|
}
|
|
30205
30822
|
};
|
|
30206
30823
|
//#endregion
|
|
30207
|
-
//#region src/lib/components/
|
|
30824
|
+
//#region src/lib/components/bar/macro-bar/MacroChip.svelte
|
|
30208
30825
|
function MacroChip($$renderer, $$props) {
|
|
30209
30826
|
$$renderer.component(($$renderer) => {
|
|
30210
30827
|
/**
|
|
@@ -30255,21 +30872,21 @@ function MacroChip($$renderer, $$props) {
|
|
|
30255
30872
|
if (run.phase === "stopped") return `macro ⏹ stopped · ${run.note ?? ""}`;
|
|
30256
30873
|
return `macro ✕ failed · ${run.note ?? ""}`;
|
|
30257
30874
|
});
|
|
30258
|
-
$$renderer.push(`<div data-svelte="MacroChip" class="macro-chip svelte-
|
|
30875
|
+
$$renderer.push(`<div data-svelte="MacroChip" class="macro-chip svelte-8fijc3"${attr("data-phase", run.phase)} data-testid="macro-chip"><button type="button" class="macro-chip-label svelte-8fijc3"${attr("aria-expanded", expanded)}${attr("title", run.note ?? "Macro run")}><span class="macro-chip-text svelte-8fijc3">${escape_html(chipLabel())}</span> <span class="macro-chip-caret svelte-8fijc3">${escape_html(expanded ? "▾" : "▸")}</span></button> `);
|
|
30259
30876
|
if (canAbort() && onabort) {
|
|
30260
30877
|
$$renderer.push("<!--[0-->");
|
|
30261
|
-
$$renderer.push(`<button type="button" class="macro-stop svelte-
|
|
30878
|
+
$$renderer.push(`<button type="button" class="macro-stop svelte-8fijc3" data-testid="macro-stop"${attr("title", t(dropunsubmittedtitle2))}>${escape_html(t(stop))}</button>`);
|
|
30262
30879
|
} else $$renderer.push("<!--[-1-->");
|
|
30263
30880
|
$$renderer.push(`<!--]--> `);
|
|
30264
30881
|
if (ended() && onclose) {
|
|
30265
30882
|
$$renderer.push("<!--[0-->");
|
|
30266
|
-
$$renderer.push(`<button type="button" class="macro-close svelte-
|
|
30883
|
+
$$renderer.push(`<button type="button" class="macro-close svelte-8fijc3" data-testid="macro-close"${attr("aria-label", t(dismissrunsheet2))}${attr("title", t(dismiss))}>✕</button>`);
|
|
30267
30884
|
} else $$renderer.push("<!--[-1-->");
|
|
30268
30885
|
$$renderer.push(`<!--]--></div>`);
|
|
30269
30886
|
});
|
|
30270
30887
|
}
|
|
30271
30888
|
//#endregion
|
|
30272
|
-
//#region src/lib/components/
|
|
30889
|
+
//#region src/lib/components/bar/macro-bar/MacroBar.svelte
|
|
30273
30890
|
function MacroBar($$renderer, $$props) {
|
|
30274
30891
|
$$renderer.component(($$renderer) => {
|
|
30275
30892
|
/**
|
|
@@ -30291,7 +30908,7 @@ function MacroBar($$renderer, $$props) {
|
|
|
30291
30908
|
let expanded = false;
|
|
30292
30909
|
if (run.phase !== "idle") {
|
|
30293
30910
|
$$renderer.push("<!--[0-->");
|
|
30294
|
-
$$renderer.push(`<div data-svelte="MacroBar" class="macro-run svelte-
|
|
30911
|
+
$$renderer.push(`<div data-svelte="MacroBar" class="macro-run svelte-1xpxh82" data-testid="macro-run">`);
|
|
30295
30912
|
MacroChip($$renderer, {
|
|
30296
30913
|
run,
|
|
30297
30914
|
running,
|
|
@@ -30308,7 +30925,7 @@ function MacroBar($$renderer, $$props) {
|
|
|
30308
30925
|
});
|
|
30309
30926
|
}
|
|
30310
30927
|
//#endregion
|
|
30311
|
-
//#region src/lib/components/
|
|
30928
|
+
//#region src/lib/components/bar/goal-bar/GoalChip.svelte
|
|
30312
30929
|
function GoalChip($$renderer, $$props) {
|
|
30313
30930
|
$$renderer.component(($$renderer) => {
|
|
30314
30931
|
/**
|
|
@@ -30331,31 +30948,31 @@ function GoalChip($$renderer, $$props) {
|
|
|
30331
30948
|
/** Which phase action the chip offers: Pause on active, Resume on
|
|
30332
30949
|
* paused, none on blocked (the host demands a reason fix first). */
|
|
30333
30950
|
const phaseAction = derived(() => goal.phase === "active" ? "pause" : goal.phase === "paused" ? "resume" : void 0);
|
|
30334
|
-
$$renderer.push(`<div data-svelte="GoalChip" class="goal-chip svelte-
|
|
30951
|
+
$$renderer.push(`<div data-svelte="GoalChip" class="goal-chip svelte-ffx44v"${attr("data-phase", goal.phase)} data-testid="goal-chip"${attr("title", blockedTitle)}><button type="button" class="goal-chip-label svelte-ffx44v"${attr("aria-expanded", expanded)}${attr("title", blockedTitle ?? goal.objective)}><span class="goal-chip-glyph svelte-ffx44v" aria-hidden="true">${escape_html(glyph())}</span> <span class="goal-chip-text svelte-ffx44v">goal ${escape_html(goal.phase)} · ${escape_html(shortObjective())}</span> <span class="goal-chip-caret svelte-ffx44v">${escape_html(expanded ? "▾" : "▸")}</span></button> `);
|
|
30335
30952
|
if (phaseAction() === "pause" && onpause) {
|
|
30336
30953
|
$$renderer.push("<!--[0-->");
|
|
30337
|
-
$$renderer.push(`<button type="button" class="goal-action svelte-
|
|
30954
|
+
$$renderer.push(`<button type="button" class="goal-action svelte-ffx44v" data-testid="goal-pause"${attr("title", t(pausegoal1))}>${escape_html(t(pause))}</button>`);
|
|
30338
30955
|
} else $$renderer.push("<!--[-1-->");
|
|
30339
30956
|
$$renderer.push(`<!--]--> `);
|
|
30340
30957
|
if (phaseAction() === "resume" && onresume) {
|
|
30341
30958
|
$$renderer.push("<!--[0-->");
|
|
30342
|
-
$$renderer.push(`<button type="button" class="goal-action svelte-
|
|
30959
|
+
$$renderer.push(`<button type="button" class="goal-action svelte-ffx44v" data-testid="goal-resume"${attr("title", t(resumegoal1))}>${escape_html(t(resume))}</button>`);
|
|
30343
30960
|
} else $$renderer.push("<!--[-1-->");
|
|
30344
30961
|
$$renderer.push(`<!--]--> `);
|
|
30345
30962
|
if (onedit) {
|
|
30346
30963
|
$$renderer.push("<!--[0-->");
|
|
30347
|
-
$$renderer.push(`<button type="button" class="goal-action svelte-
|
|
30964
|
+
$$renderer.push(`<button type="button" class="goal-action svelte-ffx44v" data-testid="goal-edit"${attr("title", t(editobjectivetitle2))}>${escape_html(t(edit))}</button>`);
|
|
30348
30965
|
} else $$renderer.push("<!--[-1-->");
|
|
30349
30966
|
$$renderer.push(`<!--]--> `);
|
|
30350
30967
|
if (onclear) {
|
|
30351
30968
|
$$renderer.push("<!--[0-->");
|
|
30352
|
-
$$renderer.push(`<button type="button" class="goal-action goal-clear svelte-
|
|
30969
|
+
$$renderer.push(`<button type="button" class="goal-action goal-clear svelte-ffx44v" data-testid="goal-clear"${attr("aria-label", t(clearthegoal2))}${attr("title", t(clearbtn1))}>✕</button>`);
|
|
30353
30970
|
} else $$renderer.push("<!--[-1-->");
|
|
30354
30971
|
$$renderer.push(`<!--]--></div>`);
|
|
30355
30972
|
});
|
|
30356
30973
|
}
|
|
30357
30974
|
//#endregion
|
|
30358
|
-
//#region src/lib/components/
|
|
30975
|
+
//#region src/lib/components/bar/goal-bar/GoalEditor.svelte
|
|
30359
30976
|
function GoalEditor($$renderer, $$props) {
|
|
30360
30977
|
$$renderer.component(($$renderer) => {
|
|
30361
30978
|
/**
|
|
@@ -30366,14 +30983,14 @@ function GoalEditor($$renderer, $$props) {
|
|
|
30366
30983
|
* fields and emits callbacks only.
|
|
30367
30984
|
*/
|
|
30368
30985
|
let { editor} = $$props;
|
|
30369
|
-
$$renderer.push(`<div data-svelte="GoalEditor" class="goal-edit-form svelte-
|
|
30986
|
+
$$renderer.push(`<div data-svelte="GoalEditor" class="goal-edit-form svelte-c4750g" data-testid="goal-edit-form"><label class="goal-edit-label svelte-c4750g"><span>objective</span> <textarea data-testid="goal-edit-objective" rows="2" class="svelte-c4750g">`);
|
|
30370
30987
|
const $$body = escape_html(editor.objective);
|
|
30371
30988
|
if ($$body) $$renderer.push(`${$$body}`);
|
|
30372
|
-
$$renderer.push(`</textarea></label> <label class="goal-edit-label svelte-
|
|
30989
|
+
$$renderer.push(`</textarea></label> <label class="goal-edit-label svelte-c4750g"><span>${escape_html(t(maxrounds1))}</span> <input type="number" min="1" step="1" data-testid="goal-edit-rounds"${attr("value", editor.maxGoalRounds)} class="svelte-c4750g"/></label> <div class="goal-controls svelte-c4750g"><button type="button" data-testid="goal-edit-submit" class="svelte-c4750g">${escape_html(t(save))}</button> <button type="button" data-testid="goal-edit-cancel" class="svelte-c4750g">${escape_html(t(cancel))}</button></div></div>`);
|
|
30373
30990
|
});
|
|
30374
30991
|
}
|
|
30375
30992
|
//#endregion
|
|
30376
|
-
//#region src/lib/components/
|
|
30993
|
+
//#region src/lib/components/bar/goal-bar/GoalBar.svelte
|
|
30377
30994
|
function GoalBar($$renderer, $$props) {
|
|
30378
30995
|
$$renderer.component(($$renderer) => {
|
|
30379
30996
|
/**
|
|
@@ -30402,7 +31019,7 @@ function GoalBar($$renderer, $$props) {
|
|
|
30402
31019
|
const blockedTitle = derived(() => goal?.phase === "blocked" && goal.blockedReason ? "blocked: " + goal.blockedReason.code + " — " + goal.blockedReason.message : void 0);
|
|
30403
31020
|
if (goal && goal.phase !== "complete") {
|
|
30404
31021
|
$$renderer.push("<!--[0-->");
|
|
30405
|
-
$$renderer.push(`<div data-svelte="GoalBar" class="goal-bar svelte-
|
|
31022
|
+
$$renderer.push(`<div data-svelte="GoalBar" class="goal-bar svelte-fcoddu" data-testid="goal-bar">`);
|
|
30406
31023
|
GoalChip($$renderer, {
|
|
30407
31024
|
goal,
|
|
30408
31025
|
blockedTitle: blockedTitle(),
|
|
@@ -30541,7 +31158,7 @@ function ConversationPanel($$renderer, $$props) {
|
|
|
30541
31158
|
* existing command banner. Catalog reads fire on first menu open,
|
|
30542
31159
|
* never at mount (cold sessions stay cold).
|
|
30543
31160
|
*/
|
|
30544
|
-
let { panelId = null, sessionId, title: initialTitleProp = null, workspace = null, workspaces = [], agent, agentDisplay = null, subagent = false, depth = 0, parentSessionId = null, entries, lastSeq, running, hasMore = void 0, pendingAnswers = [], settledAnswers = [], permission = null, imageLimits = void 0, knobEvents = void 0, a2aRows = [], a2aTitles = {}, onNeedCold = void 0, onClose = void 0, focusComposer = false, oncomposerfocus = void 0, focused = false, onOpenExplorer = void 0, onFileLink = void 0, onFileOpen = void 0 } = $$props;
|
|
31161
|
+
let { panelId = null, sessionId, title: initialTitleProp = null, workspace = null, workspaces = [], agent, agentDisplay = null, subagent = false, depth = 0, parentSessionId = null, entries, lastSeq, running, hasMore = void 0, pendingAnswers = [], settledAnswers = [], permission = null, imageLimits = void 0, knobEvents = void 0, deliverables = void 0, a2aRows = [], a2aTitles = {}, onNeedCold = void 0, onClose = void 0, focusComposer = false, oncomposerfocus = void 0, focused = false, onOpenExplorer = void 0, onOpenBrowser = void 0, onFileLink = void 0, onFileOpen = void 0 } = $$props;
|
|
30545
31162
|
setPanelMode(true);
|
|
30546
31163
|
setConversationSession(sessionId);
|
|
30547
31164
|
const store = createConversationStore(sessionId);
|
|
@@ -30550,6 +31167,7 @@ function ConversationPanel($$renderer, $$props) {
|
|
|
30550
31167
|
store.applyStatus(running, lastSeq);
|
|
30551
31168
|
store.applyAnswers(pendingAnswers, settledAnswers);
|
|
30552
31169
|
store.seedPermission(permission, knobEvents);
|
|
31170
|
+
if (deliverables !== void 0) store.seedDeliverables(deliverables);
|
|
30553
31171
|
/** Chip popup state (2026-08-22, OCI pattern): ONE open chip at a time —
|
|
30554
31172
|
* the id of the expanded entry; detail renders AFTER the chip row.
|
|
30555
31173
|
* Per-panel by construction (moved here with the block). */
|
|
@@ -30769,7 +31387,8 @@ function ConversationPanel($$renderer, $$props) {
|
|
|
30769
31387
|
plan: store.planMode,
|
|
30770
31388
|
parentSessionId,
|
|
30771
31389
|
focused,
|
|
30772
|
-
onOpenExplorer
|
|
31390
|
+
onOpenExplorer,
|
|
31391
|
+
onOpenBrowser
|
|
30773
31392
|
});
|
|
30774
31393
|
$$renderer.push(`<!----> `);
|
|
30775
31394
|
ConversationError($$renderer, { error: topError() });
|
|
@@ -30817,6 +31436,8 @@ function ConversationPanel($$renderer, $$props) {
|
|
|
30817
31436
|
groups: groups(),
|
|
30818
31437
|
container: viewport,
|
|
30819
31438
|
todos: store.todos ?? null,
|
|
31439
|
+
deliverables: store.deliverables,
|
|
31440
|
+
onfileopen: onFileOpen,
|
|
30820
31441
|
jobsessionid: sessionId,
|
|
30821
31442
|
shelfentries: store.entries,
|
|
30822
31443
|
shelfsessionid: sessionId,
|
|
@@ -31186,6 +31807,262 @@ function TerminalDesk($$renderer, $$props) {
|
|
|
31186
31807
|
});
|
|
31187
31808
|
}
|
|
31188
31809
|
//#endregion
|
|
31810
|
+
//#region src/lib/components/browser/BrowserHeader.svelte
|
|
31811
|
+
function BrowserHeader($$renderer, $$props) {
|
|
31812
|
+
$$renderer.component(($$renderer) => {
|
|
31813
|
+
let { status, reBound = false, sessionId = null, closing = false, busy = false, canBack = false, canForward = false, onclose, onnavigate, onreload, onhistory } = $$props;
|
|
31814
|
+
/** Ephemeral intent, never state (D2): the panel clears it on the
|
|
31815
|
+
* route ANSWER via clearInput() — success or refusal both answer. */
|
|
31816
|
+
let urlText = "";
|
|
31817
|
+
/** The panel's handle: clears the box when the navigate route answers. */
|
|
31818
|
+
function clearInput() {
|
|
31819
|
+
urlText = "";
|
|
31820
|
+
}
|
|
31821
|
+
$$renderer.push(`<div data-svelte="BrowserHeader" class="flex items-center gap-2 border-b border-surface-border px-2 py-1 text-xs"><span class="flex min-w-0 flex-1 items-center gap-2"><button class="rounded px-1 hover:bg-surface-active disabled:opacity-40" data-testid="browser-back"${attr("aria-label", browserback1())}${attr("disabled", busy || !canBack, true)}>←</button> <button class="rounded px-1 hover:bg-surface-active disabled:opacity-40" data-testid="browser-forward"${attr("aria-label", browserforward1())}${attr("disabled", busy || !canForward, true)}>→</button> <button class="rounded px-1 hover:bg-surface-active disabled:opacity-40" data-testid="browser-reload"${attr("aria-label", browserreload1())}${attr("disabled", status !== "live" || busy, true)}>⟳</button> <input class="min-w-0 flex-1 rounded border border-surface-border bg-surface px-2 py-0.5" type="text" data-testid="browser-url-input"${attr("placeholder", browserurlplaceholder2())}${attr("disabled", status !== "live" || busy, true)}${attr("value", urlText)}/></span> <span class="flex items-center gap-2" data-testid="browser-status"${attr("data-status", status)}${attr("data-rebound", reBound)}><span${attr_class(`inline-block h-2 w-2 rounded-full ${status === "live" ? "bg-emerald-500" : status === "failed" || status === "closed" ? "bg-red-500" : "bg-amber-400"}`)}></span> `);
|
|
31822
|
+
if (sessionId) {
|
|
31823
|
+
$$renderer.push("<!--[0-->");
|
|
31824
|
+
$$renderer.push(`<span class="rounded-t-md border border-b-0 border-surface-border bg-surface-elevated px-2 py-0.5 font-mono text-[10px] opacity-80" data-testid="browser-session-tab">${escape_html(sessionId.slice(0, 8))}</span>`);
|
|
31825
|
+
} else $$renderer.push("<!--[-1-->");
|
|
31826
|
+
$$renderer.push(`<!--]--> <button class="rounded px-1 hover:bg-surface-active" data-testid="panel-close"${attr("disabled", closing, true)}>✕</button></span></div>`);
|
|
31827
|
+
bind_props($$props, { clearInput });
|
|
31828
|
+
});
|
|
31829
|
+
}
|
|
31830
|
+
//#endregion
|
|
31831
|
+
//#region src/lib/components/browser/BrowserContent.svelte
|
|
31832
|
+
function BrowserContent($$renderer, $$props) {
|
|
31833
|
+
$$renderer.component(($$renderer) => {
|
|
31834
|
+
let { status, failReason = null, wrap = null, canvas = null, ondown, onup, onmove, onwheel, onkey } = $$props;
|
|
31835
|
+
if (status === "failed") {
|
|
31836
|
+
$$renderer.push("<!--[0-->");
|
|
31837
|
+
$$renderer.push(`<div data-svelte="BrowserContent" class="p-3 text-xs text-red-500" data-testid="browser-failed">${escape_html(browsersessionfailed2({ reason: failReason ?? "" }))}</div>`);
|
|
31838
|
+
} else {
|
|
31839
|
+
$$renderer.push("<!--[-1-->");
|
|
31840
|
+
$$renderer.push(`<div data-svelte="BrowserContent" class="relative min-h-0 flex-1 overflow-hidden" data-testid="browser-glass"><canvas class="h-full w-full object-contain" tabindex="0"></canvas> `);
|
|
31841
|
+
if (status !== "live") {
|
|
31842
|
+
$$renderer.push("<!--[0-->");
|
|
31843
|
+
$$renderer.push(`<div class="absolute inset-0 grid place-items-center text-xs opacity-60" data-testid="browser-placeholder">${escape_html(status === "opening" ? browserlaunching1() : browserwaitingframes2())}</div>`);
|
|
31844
|
+
} else $$renderer.push("<!--[-1-->");
|
|
31845
|
+
$$renderer.push(`<!--]--></div>`);
|
|
31846
|
+
}
|
|
31847
|
+
$$renderer.push(`<!--]-->`);
|
|
31848
|
+
bind_props($$props, {
|
|
31849
|
+
wrap,
|
|
31850
|
+
canvas
|
|
31851
|
+
});
|
|
31852
|
+
});
|
|
31853
|
+
}
|
|
31854
|
+
//#endregion
|
|
31855
|
+
//#region src/lib/components/browser/mirror-input.ts
|
|
31856
|
+
/** The on-screen rect of the PAGE image inside its wrapper. The frame is
|
|
31857
|
+
* drawn aspect-true (canvas object-contain): when the frame is wider or
|
|
31858
|
+
* taller than the panel the image LETTERBOXES — clicks must map against
|
|
31859
|
+
* this contained rect, not the wrapper (bug 2026-10-19: width-only
|
|
31860
|
+
* scaling zoomed the cursor whenever the frame aspect ≠ panel aspect). */
|
|
31861
|
+
function containedRect(boundsLeft, boundsTop, boundsWidth, boundsHeight, viewportWidth, viewportHeight) {
|
|
31862
|
+
return null;
|
|
31863
|
+
}
|
|
31864
|
+
/** Map a click on the GLASS to viewport CSS pixels. Coordinates outside the
|
|
31865
|
+
* contained image return null — the panel must not dispatch clicks that
|
|
31866
|
+
* land on letterbox bars (they would miss the page). */
|
|
31867
|
+
function scalePoint(clientX, clientY, boundsLeft, boundsTop, boundsWidth, boundsHeight, viewportWidth, viewportHeight) {
|
|
31868
|
+
const rect = containedRect();
|
|
31869
|
+
if (rect === null) return null;
|
|
31870
|
+
if (clientX < rect.left || clientX > rect.left + rect.width) return null;
|
|
31871
|
+
if (clientY < rect.top || clientY > rect.top + rect.height) return null;
|
|
31872
|
+
return {
|
|
31873
|
+
x: Math.round((clientX - rect.left) / rect.scale),
|
|
31874
|
+
y: Math.round((clientY - rect.top) / rect.scale)
|
|
31875
|
+
};
|
|
31876
|
+
}
|
|
31877
|
+
/** At most ONE mouseMoved dispatch per animation frame — the flood guard.
|
|
31878
|
+
* The LAST move in a frame wins (the pointer's true position). */
|
|
31879
|
+
function createMoveCoalescer(raf, fire) {
|
|
31880
|
+
let pending = null;
|
|
31881
|
+
let scheduled = false;
|
|
31882
|
+
return { push(x, y) {
|
|
31883
|
+
pending = {
|
|
31884
|
+
x,
|
|
31885
|
+
y
|
|
31886
|
+
};
|
|
31887
|
+
if (scheduled) return;
|
|
31888
|
+
scheduled = true;
|
|
31889
|
+
raf(() => {
|
|
31890
|
+
scheduled = false;
|
|
31891
|
+
const m = pending;
|
|
31892
|
+
pending = null;
|
|
31893
|
+
if (m) fire(m.x, m.y);
|
|
31894
|
+
});
|
|
31895
|
+
} };
|
|
31896
|
+
}
|
|
31897
|
+
//#endregion
|
|
31898
|
+
//#region src/lib/services/panels/browser-session-resolver.ts
|
|
31899
|
+
/**
|
|
31900
|
+
* browser-session-resolver — the ONE re-bind-or-open seam (The Sticky Glass
|
|
31901
|
+
* spec Wave 2 task 2.1; ADR-0030 D1/D4). The chip, the floor placement, and
|
|
31902
|
+
* the panel's remount all ask here; none of them POSTs /api/browser open
|
|
31903
|
+
* directly. Policy: the persisted localStorage id wins if the registry still
|
|
31904
|
+
* lists it live (RE-BIND — reload survival); a dead id falls through to a
|
|
31905
|
+
* fresh open, never an error surface. The resolved id is persisted so the
|
|
31906
|
+
* NEXT reload re-binds too.
|
|
31907
|
+
*/
|
|
31908
|
+
var LS_KEY = "dsi.browser.sessionId";
|
|
31909
|
+
/** localStorage guarded — SSR and privacy modes have no window.localStorage. */
|
|
31910
|
+
function defaultStorage() {
|
|
31911
|
+
try {
|
|
31912
|
+
return typeof localStorage !== "undefined" ? localStorage : null;
|
|
31913
|
+
} catch {
|
|
31914
|
+
return null;
|
|
31915
|
+
}
|
|
31916
|
+
}
|
|
31917
|
+
function readPersistedId(storage = defaultStorage()) {
|
|
31918
|
+
try {
|
|
31919
|
+
return storage?.getItem(LS_KEY) ?? null;
|
|
31920
|
+
} catch {
|
|
31921
|
+
return null;
|
|
31922
|
+
}
|
|
31923
|
+
}
|
|
31924
|
+
var IDX_KEY = "dsi.browser.panelIndex";
|
|
31925
|
+
function readPersistedIndex(storage = defaultStorage()) {
|
|
31926
|
+
try {
|
|
31927
|
+
const raw = storage?.getItem(IDX_KEY);
|
|
31928
|
+
const n = raw === null || raw === void 0 ? NaN : Number(raw);
|
|
31929
|
+
return Number.isInteger(n) && n >= 0 ? n : null;
|
|
31930
|
+
} catch {
|
|
31931
|
+
return null;
|
|
31932
|
+
}
|
|
31933
|
+
}
|
|
31934
|
+
//#endregion
|
|
31935
|
+
//#region src/lib/components/browser/BrowserPanel.svelte
|
|
31936
|
+
function BrowserPanel($$renderer, $$props) {
|
|
31937
|
+
$$renderer.component(($$renderer) => {
|
|
31938
|
+
let sessionId = null;
|
|
31939
|
+
/** True when mount re-bound to a surviving session (ADR-0030 D1) —
|
|
31940
|
+
* surfaced in the status strip for the operator. */
|
|
31941
|
+
let reBound = false;
|
|
31942
|
+
let status = "opening";
|
|
31943
|
+
let failReason = null;
|
|
31944
|
+
let canvas = null;
|
|
31945
|
+
let wrap = null;
|
|
31946
|
+
let closing = false;
|
|
31947
|
+
/** Proxy verbs (ADR-0031 D1/D2): the panel ACTS on the header's
|
|
31948
|
+
* intent — one in-flight guard for the whole proxy row, history
|
|
31949
|
+
* bounds from the last navigate answer (the documented give-up). */
|
|
31950
|
+
let proxyBusy = false;
|
|
31951
|
+
let canBack = false;
|
|
31952
|
+
let canForward = false;
|
|
31953
|
+
const moves = createMoveCoalescer((cb) => requestAnimationFrame(cb), (x, y) => void post());
|
|
31954
|
+
async function post(input) {}
|
|
31955
|
+
function toViewportCx(e) {
|
|
31956
|
+
if (!wrap) return null;
|
|
31957
|
+
const r = wrap.getBoundingClientRect();
|
|
31958
|
+
return scalePoint(e.clientX, e.clientY, r.left, r.top, r.width, r.height);
|
|
31959
|
+
}
|
|
31960
|
+
function onPointerDown(e) {
|
|
31961
|
+
if (e.button !== 0) return;
|
|
31962
|
+
const p = toViewportCx(e);
|
|
31963
|
+
if (p) post({
|
|
31964
|
+
x: p.x,
|
|
31965
|
+
y: p.y});
|
|
31966
|
+
}
|
|
31967
|
+
function onPointerUp(e) {
|
|
31968
|
+
if (e.button !== 0) return;
|
|
31969
|
+
const p = toViewportCx(e);
|
|
31970
|
+
if (p) post({
|
|
31971
|
+
x: p.x,
|
|
31972
|
+
y: p.y});
|
|
31973
|
+
}
|
|
31974
|
+
function onPointerMove(e) {
|
|
31975
|
+
const p = toViewportCx(e);
|
|
31976
|
+
if (p) moves.push(p.x, p.y);
|
|
31977
|
+
}
|
|
31978
|
+
function onWheel(e) {
|
|
31979
|
+
const p = toViewportCx(e);
|
|
31980
|
+
if (!p) return;
|
|
31981
|
+
e.preventDefault();
|
|
31982
|
+
post({
|
|
31983
|
+
x: p.x,
|
|
31984
|
+
y: p.y,
|
|
31985
|
+
deltaX: e.deltaX,
|
|
31986
|
+
deltaY: e.deltaY
|
|
31987
|
+
});
|
|
31988
|
+
}
|
|
31989
|
+
function onKey(e) {
|
|
31990
|
+
post({
|
|
31991
|
+
type: e.type === "keydown" ? "keyDown" : "keyUp",
|
|
31992
|
+
key: e.key,
|
|
31993
|
+
code: e.code,
|
|
31994
|
+
windowsVirtualKeyCode: e.keyCode,
|
|
31995
|
+
text: e.type === "keydown" && e.key.length === 1 ? e.key : void 0
|
|
31996
|
+
});
|
|
31997
|
+
}
|
|
31998
|
+
/** One POST for every proxy verb; the ANSWER (success or refusal)
|
|
31999
|
+
* clears the input and refreshes the history bounds. A dead session
|
|
32000
|
+
* surfaces as the closed status, never a crash (404/409). */
|
|
32001
|
+
async function proxy(body) {}
|
|
32002
|
+
function submitUrl(text) {
|
|
32003
|
+
proxy();
|
|
32004
|
+
}
|
|
32005
|
+
function goHistory(dir) {
|
|
32006
|
+
proxy();
|
|
32007
|
+
}
|
|
32008
|
+
/** D8 owner-release: close the SERVER session first (kills the browser),
|
|
32009
|
+
* then report upward so the floor removes the panel. Exactly once —
|
|
32010
|
+
* the closing flag guards double-invocations (the single-close-post
|
|
32011
|
+
* unit contract). */
|
|
32012
|
+
async function closePanel() {}
|
|
32013
|
+
onDestroy(() => {});
|
|
32014
|
+
let $$settled = true;
|
|
32015
|
+
let $$inner_renderer;
|
|
32016
|
+
function $$render_inner($$renderer) {
|
|
32017
|
+
$$renderer.push(`<div data-svelte="BrowserPanel" class="flex h-full flex-col bg-surface-elevated" data-testid="panel-browser">`);
|
|
32018
|
+
BrowserHeader($$renderer, {
|
|
32019
|
+
status,
|
|
32020
|
+
reBound,
|
|
32021
|
+
sessionId,
|
|
32022
|
+
closing,
|
|
32023
|
+
busy: proxyBusy,
|
|
32024
|
+
canBack,
|
|
32025
|
+
canForward,
|
|
32026
|
+
onclose: () => void closePanel(),
|
|
32027
|
+
onnavigate: submitUrl,
|
|
32028
|
+
onreload: () => void proxy(),
|
|
32029
|
+
onhistory: goHistory
|
|
32030
|
+
});
|
|
32031
|
+
$$renderer.push(`<!----> `);
|
|
32032
|
+
BrowserContent($$renderer, {
|
|
32033
|
+
status,
|
|
32034
|
+
failReason,
|
|
32035
|
+
ondown: onPointerDown,
|
|
32036
|
+
onup: onPointerUp,
|
|
32037
|
+
onmove: onPointerMove,
|
|
32038
|
+
onwheel: onWheel,
|
|
32039
|
+
onkey: onKey,
|
|
32040
|
+
get wrap() {
|
|
32041
|
+
return wrap;
|
|
32042
|
+
},
|
|
32043
|
+
set wrap($$value) {
|
|
32044
|
+
wrap = $$value;
|
|
32045
|
+
$$settled = false;
|
|
32046
|
+
},
|
|
32047
|
+
get canvas() {
|
|
32048
|
+
return canvas;
|
|
32049
|
+
},
|
|
32050
|
+
set canvas($$value) {
|
|
32051
|
+
canvas = $$value;
|
|
32052
|
+
$$settled = false;
|
|
32053
|
+
}
|
|
32054
|
+
});
|
|
32055
|
+
$$renderer.push(`<!----></div>`);
|
|
32056
|
+
}
|
|
32057
|
+
do {
|
|
32058
|
+
$$settled = true;
|
|
32059
|
+
$$inner_renderer = $$renderer.copy();
|
|
32060
|
+
$$render_inner($$inner_renderer);
|
|
32061
|
+
} while (!$$settled);
|
|
32062
|
+
$$renderer.subsume($$inner_renderer);
|
|
32063
|
+
});
|
|
32064
|
+
}
|
|
32065
|
+
//#endregion
|
|
31189
32066
|
//#region src/lib/components/settings-skills/SettingsSkillsToolbar.svelte
|
|
31190
32067
|
function SettingsSkillsToolbar($$renderer, $$props) {
|
|
31191
32068
|
$$renderer.component(($$renderer) => {
|
|
@@ -33406,6 +34283,22 @@ function openWorkspaceExplorer(sessionId, workspace) {
|
|
|
33406
34283
|
}
|
|
33407
34284
|
insertPanel(makeWorkspaceExplorerPanel(sessionId, workspace), workspaceExplorerSlot(st.panels, selectedIndex_(), d$4().getMoveFacts()));
|
|
33408
34285
|
}
|
|
34286
|
+
/** Chip click action (The Glass Browser spec W2, ADR-0029 D4): ONE live
|
|
34287
|
+
* browser panel across the floor — the terminal singleton rule (Terminal
|
|
34288
|
+
* Desk ADR D2). A click on an open browser FOCUSES it; a miss inserts at
|
|
34289
|
+
* the focused slot. */
|
|
34290
|
+
function openBrowserPanel(index, keepSelection = false) {
|
|
34291
|
+
const open = st.panels.find((p) => p.kind === "browser");
|
|
34292
|
+
if (open) {
|
|
34293
|
+
st.selectedPanelId = open.id;
|
|
34294
|
+
return;
|
|
34295
|
+
}
|
|
34296
|
+
const prevSelected = st.selectedPanelId;
|
|
34297
|
+
insertPanel(makeBrowserPanel(), index === void 0 ? insertionSlot() : Math.max(0, Math.min(index, st.panels.length)));
|
|
34298
|
+
if (keepSelection && prevSelected !== null && prevSelected !== void 0) {
|
|
34299
|
+
if (st.panels.some((p) => p.id === prevSelected)) st.selectedPanelId = prevSelected;
|
|
34300
|
+
}
|
|
34301
|
+
}
|
|
33409
34302
|
/** The open explorer for a session's workspace (The Shared Tree D1):
|
|
33410
34303
|
* matched by ROOT across sessions — the panel's provenance sessionId
|
|
33411
34304
|
* is not the key. */
|
|
@@ -33642,7 +34535,8 @@ async function fetchColdFromWire(sessionId) {
|
|
|
33642
34535
|
settledAnswers: events.settledAnswers ?? [],
|
|
33643
34536
|
permission: events.permission ?? null,
|
|
33644
34537
|
imageLimits: events.imageLimits ?? null,
|
|
33645
|
-
knobEvents: events.knobEvents ?? []
|
|
34538
|
+
knobEvents: events.knobEvents ?? [],
|
|
34539
|
+
deliverables: events.deliverables ?? []
|
|
33646
34540
|
};
|
|
33647
34541
|
}
|
|
33648
34542
|
//#endregion
|
|
@@ -33667,6 +34561,13 @@ function makePanel(sessionId, agentPreset) {
|
|
|
33667
34561
|
width: clampPanelWidth(d$1().getPanelWidth())
|
|
33668
34562
|
};
|
|
33669
34563
|
}
|
|
34564
|
+
function makeBrowserPanel() {
|
|
34565
|
+
return {
|
|
34566
|
+
id: nextPanelId(),
|
|
34567
|
+
kind: "browser",
|
|
34568
|
+
width: clampPanelWidth(d$1().getPanelWidth())
|
|
34569
|
+
};
|
|
34570
|
+
}
|
|
33670
34571
|
function makeWorkspaceExplorerPanel(sessionId, root) {
|
|
33671
34572
|
return {
|
|
33672
34573
|
id: nextPanelId(),
|
|
@@ -33683,6 +34584,9 @@ function insertPanel(entry, index) {
|
|
|
33683
34584
|
st.panels = next;
|
|
33684
34585
|
st.selectedPanelId = entry.id;
|
|
33685
34586
|
}
|
|
34587
|
+
function insertionSlot() {
|
|
34588
|
+
return focusedInsertionSlot(st.panels, selectedIndex_(), d$1().getMoveFacts().parentOf);
|
|
34589
|
+
}
|
|
33686
34590
|
//#endregion
|
|
33687
34591
|
//#region src/lib/services/panels/floor-registry.svelte.ts
|
|
33688
34592
|
var deps = null;
|
|
@@ -33704,8 +34608,18 @@ var st = {
|
|
|
33704
34608
|
loupePanelId: null,
|
|
33705
34609
|
focusComposerId: null,
|
|
33706
34610
|
panelIdSeq: 0,
|
|
34611
|
+
terminalDeskMirrors: {},
|
|
33707
34612
|
pendingFileIntents: {},
|
|
33708
|
-
fileIntentSeq: 0
|
|
34613
|
+
fileIntentSeq: 0,
|
|
34614
|
+
drag: null,
|
|
34615
|
+
widthBadgeFading: false
|
|
34616
|
+
};
|
|
34617
|
+
/** Non-reactive gesture refs (drag start index, fade timer, badge ids) —
|
|
34618
|
+
* written by floor-registry/drag.svelte.ts; the ids set is a live
|
|
34619
|
+
* SvelteSet so badge visibility stays reactive. */
|
|
34620
|
+
var dragRefs = {
|
|
34621
|
+
ids: new SvelteSet()
|
|
34622
|
+
};
|
|
33709
34623
|
var floor = {
|
|
33710
34624
|
get panels() {
|
|
33711
34625
|
return st.panels;
|
|
@@ -33713,12 +34627,27 @@ var floor = {
|
|
|
33713
34627
|
get selectedPanelId() {
|
|
33714
34628
|
return st.selectedPanelId;
|
|
33715
34629
|
},
|
|
34630
|
+
get loupePanelId() {
|
|
34631
|
+
return st.loupePanelId;
|
|
34632
|
+
},
|
|
33716
34633
|
get focusComposerId() {
|
|
33717
34634
|
return st.focusComposerId;
|
|
33718
34635
|
},
|
|
34636
|
+
get terminalDeskMirrors() {
|
|
34637
|
+
return st.terminalDeskMirrors;
|
|
34638
|
+
},
|
|
33719
34639
|
get pendingFileIntents() {
|
|
33720
34640
|
return st.pendingFileIntents;
|
|
33721
34641
|
},
|
|
34642
|
+
get drag() {
|
|
34643
|
+
return st.drag;
|
|
34644
|
+
},
|
|
34645
|
+
get widthBadgeFading() {
|
|
34646
|
+
return st.widthBadgeFading;
|
|
34647
|
+
},
|
|
34648
|
+
get widthBadgeIds() {
|
|
34649
|
+
return dragRefs.ids;
|
|
34650
|
+
},
|
|
33722
34651
|
get selected() {
|
|
33723
34652
|
return st.panels.find((p) => p.id === st.selectedPanelId) ?? null;
|
|
33724
34653
|
},
|
|
@@ -33866,7 +34795,8 @@ function seedColdOf(data) {
|
|
|
33866
34795
|
settledAnswers: d.settledAnswers ?? [],
|
|
33867
34796
|
permission: d.permission ?? null,
|
|
33868
34797
|
imageLimits: d.imageLimits ?? null,
|
|
33869
|
-
knobEvents: d.knobEvents ?? []
|
|
34798
|
+
knobEvents: d.knobEvents ?? [],
|
|
34799
|
+
deliverables: d.deliverables ?? []
|
|
33870
34800
|
} : void 0;
|
|
33871
34801
|
}
|
|
33872
34802
|
//#endregion
|
|
@@ -33906,6 +34836,16 @@ function _page($$renderer, $$props) {
|
|
|
33906
34836
|
initFloor(seededInitially ? [makePanel(seedSessionId(), seedCold?.agentPreset ?? null)] : initialPrefs.panels, seededInitially ? null : initialPrefs.selectedPanelId);
|
|
33907
34837
|
if (seededInitially) selectPanel(floor.panels[0]?.id ?? null);
|
|
33908
34838
|
if (seededInitially && seedCold !== void 0) pageFeeds.primeSeed(seedSessionId(), seedCold);
|
|
34839
|
+
(async () => {
|
|
34840
|
+
try {
|
|
34841
|
+
const persisted = readPersistedId();
|
|
34842
|
+
if (!persisted) return;
|
|
34843
|
+
if (floor.panels.some((panel) => panel.kind === "browser")) return;
|
|
34844
|
+
const res = await fetch("/api/browser");
|
|
34845
|
+
if (!res.ok) return;
|
|
34846
|
+
if ((await res.json()).sessions?.some((s) => s.id === persisted)) openBrowserPanel(readPersistedIndex() ?? void 0, true);
|
|
34847
|
+
} catch {}
|
|
34848
|
+
})();
|
|
33909
34849
|
const panels = derived(() => floor.panels);
|
|
33910
34850
|
const selectedPanelId = derived(() => floor.selectedPanelId);
|
|
33911
34851
|
const selected = derived(() => floor.selected);
|
|
@@ -33958,8 +34898,14 @@ function _page($$renderer, $$props) {
|
|
|
33958
34898
|
onShellExit: () => removePanel(panel.id)
|
|
33959
34899
|
});
|
|
33960
34900
|
$$renderer.push(`<!----></div>`);
|
|
33961
|
-
} else if (panel.kind === "
|
|
34901
|
+
} else if (panel.kind === "browser") {
|
|
33962
34902
|
$$renderer.push("<!--[1-->");
|
|
34903
|
+
$$renderer.push(`<div class="panel-manager-body svelte-1uha8ag" data-testid="panel-browser-slot">`);
|
|
34904
|
+
BrowserPanel($$renderer, {
|
|
34905
|
+
browserSessionId: "browserSessionId" in panel ? panel.browserSessionId : void 0});
|
|
34906
|
+
$$renderer.push(`<!----></div>`);
|
|
34907
|
+
} else if (panel.kind === "prompt-manager") {
|
|
34908
|
+
$$renderer.push("<!--[2-->");
|
|
33963
34909
|
$$renderer.push(`<div class="panel-manager-body svelte-1uha8ag" data-testid="panel-manager">`);
|
|
33964
34910
|
PromptManagerPanel($$renderer, {
|
|
33965
34911
|
onclose: hostClose ?? (() => removePanel(panel.id)),
|
|
@@ -33968,14 +34914,14 @@ function _page($$renderer, $$props) {
|
|
|
33968
34914
|
});
|
|
33969
34915
|
$$renderer.push(`<!----></div>`);
|
|
33970
34916
|
} else if (panel.kind === "plugin-rack") {
|
|
33971
|
-
$$renderer.push("<!--[
|
|
34917
|
+
$$renderer.push("<!--[3-->");
|
|
33972
34918
|
$$renderer.push(`<div class="panel-manager-body svelte-1uha8ag" data-testid="panel-plugins">`);
|
|
33973
34919
|
PluginManagerPanel($$renderer, {
|
|
33974
34920
|
refreshToken: panel.refresh ?? 0,
|
|
33975
34921
|
initialTab: panel.tab ?? "install"});
|
|
33976
34922
|
$$renderer.push(`<!----></div>`);
|
|
33977
34923
|
} else if (panel.kind === "skill-shelf") {
|
|
33978
|
-
$$renderer.push("<!--[
|
|
34924
|
+
$$renderer.push("<!--[4-->");
|
|
33979
34925
|
$$renderer.push(`<div class="panel-manager-body svelte-1uha8ag" data-testid="panel-skills">`);
|
|
33980
34926
|
SettingsSkillsPanel($$renderer, {
|
|
33981
34927
|
refreshToken: panel.refresh ?? 0,
|
|
@@ -33985,13 +34931,13 @@ function _page($$renderer, $$props) {
|
|
|
33985
34931
|
initialReload: panel.reload ?? null});
|
|
33986
34932
|
$$renderer.push(`<!----></div>`);
|
|
33987
34933
|
} else if (panel.kind === "settings-editor") {
|
|
33988
|
-
$$renderer.push("<!--[
|
|
34934
|
+
$$renderer.push("<!--[5-->");
|
|
33989
34935
|
$$renderer.push(`<div class="panel-manager-body svelte-1uha8ag" data-testid="panel-settings">`);
|
|
33990
34936
|
SettingsEditorPanel($$renderer, {
|
|
33991
34937
|
target: panel.target});
|
|
33992
34938
|
$$renderer.push(`<!----></div>`);
|
|
33993
34939
|
} else if (panel.kind === "injected-doc") {
|
|
33994
|
-
$$renderer.push("<!--[
|
|
34940
|
+
$$renderer.push("<!--[6-->");
|
|
33995
34941
|
$$renderer.push(`<div class="panel-manager-body svelte-1uha8ag">`);
|
|
33996
34942
|
InjectedDocPanel($$renderer, {
|
|
33997
34943
|
sourceSessionId: panel.sourceSessionId,
|
|
@@ -33999,7 +34945,7 @@ function _page($$renderer, $$props) {
|
|
|
33999
34945
|
entries: pageFeeds.coldCache[panel.sourceSessionId]?.entries ?? []});
|
|
34000
34946
|
$$renderer.push(`<!----></div>`);
|
|
34001
34947
|
} else if (panel.kind === "workspace-explorer") {
|
|
34002
|
-
$$renderer.push("<!--[
|
|
34948
|
+
$$renderer.push("<!--[7-->");
|
|
34003
34949
|
WorkspaceExplorerPanel($$renderer, {
|
|
34004
34950
|
sessionId: panel.sessionId,
|
|
34005
34951
|
root: panel.root,
|
|
@@ -34030,7 +34976,7 @@ function _page($$renderer, $$props) {
|
|
|
34030
34976
|
onActivateTab: (path) => activateExplorerTab(panel.id, path)
|
|
34031
34977
|
});
|
|
34032
34978
|
} else if (panel.kind === "workspace-file") {
|
|
34033
|
-
$$renderer.push("<!--[
|
|
34979
|
+
$$renderer.push("<!--[8-->");
|
|
34034
34980
|
WorkspaceFilePanel($$renderer, {
|
|
34035
34981
|
sessionId: panel.sessionId,
|
|
34036
34982
|
path: panel.path,
|
|
@@ -34040,7 +34986,7 @@ function _page($$renderer, $$props) {
|
|
|
34040
34986
|
onclose: () => removePanel(panel.id)
|
|
34041
34987
|
});
|
|
34042
34988
|
} else if (panel.kind === "conversation") {
|
|
34043
|
-
$$renderer.push("<!--[
|
|
34989
|
+
$$renderer.push("<!--[9-->");
|
|
34044
34990
|
const p = panel;
|
|
34045
34991
|
$$renderer.push(`<!---->`);
|
|
34046
34992
|
if (pageFeeds.deadSessions[p.sessionId]) {
|
|
@@ -34071,9 +35017,11 @@ function _page($$renderer, $$props) {
|
|
|
34071
35017
|
permission: cold.permission,
|
|
34072
35018
|
imageLimits: cold.imageLimits ?? void 0,
|
|
34073
35019
|
knobEvents: cold.knobEvents,
|
|
35020
|
+
deliverables: cold.deliverables,
|
|
34074
35021
|
a2aRows: a2aRowsFor(p.sessionId),
|
|
34075
35022
|
a2aTitles: spineTitles(),
|
|
34076
35023
|
onOpenExplorer: openWorkspaceExplorer,
|
|
35024
|
+
onOpenBrowser: lineageFacts().subagentIds.has(p.sessionId) ? void 0 : () => openBrowserPanel(),
|
|
34077
35025
|
focusComposer: p.id === focusComposerId(),
|
|
34078
35026
|
oncomposerfocus: () => clearFocusComposer(),
|
|
34079
35027
|
focused: p.id === selectedPanelId()
|
|
@@ -34102,6 +35050,7 @@ function _page($$renderer, $$props) {
|
|
|
34102
35050
|
a2aTitles: spineTitles(),
|
|
34103
35051
|
onNeedCold: (sid) => void ensureCold(sid),
|
|
34104
35052
|
onOpenExplorer: openWorkspaceExplorer,
|
|
35053
|
+
onOpenBrowser: lineageFacts().subagentIds.has(p.sessionId) ? void 0 : () => openBrowserPanel(),
|
|
34105
35054
|
focusComposer: p.id === focusComposerId(),
|
|
34106
35055
|
oncomposerfocus: () => clearFocusComposer(),
|
|
34107
35056
|
focused: p.id === selectedPanelId()
|
|
@@ -34207,4 +35156,4 @@ function _page($$renderer, $$props) {
|
|
|
34207
35156
|
}
|
|
34208
35157
|
|
|
34209
35158
|
export { _page as default };
|
|
34210
|
-
//# sourceMappingURL=_page.svelte.js-
|
|
35159
|
+
//# sourceMappingURL=_page.svelte.js-D3F2fiR4.js.map
|