@deepseek-insight/dsi 0.5.29 → 0.5.30

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.
Files changed (89) hide show
  1. package/README.md +10 -5
  2. package/build/client/_app/immutable/assets/0.Ckapanfk.css +2 -0
  3. package/build/client/_app/immutable/assets/{2.B2JMICOx.css → 2.DUjQJ-eX.css} +1 -1
  4. package/build/client/_app/immutable/chunks/BK9eh7ly.js +1 -0
  5. package/build/client/_app/immutable/chunks/C3BHN0de.js +16 -0
  6. package/build/client/_app/immutable/chunks/DFcmLsZu.js +1 -0
  7. package/build/client/_app/immutable/chunks/DIOBYJe3.js +1 -0
  8. package/build/client/_app/immutable/chunks/{D4yILG4p.js → DX_pn7Eg.js} +1 -1
  9. package/build/client/_app/immutable/chunks/{Ch00tocz.js → smd3Jq9O.js} +2 -2
  10. package/build/client/_app/immutable/entry/{app.CxAgK_V4.js → app.CIeDJy8c.js} +2 -2
  11. package/build/client/_app/immutable/entry/start.BdDgymYC.js +1 -0
  12. package/build/client/_app/immutable/nodes/{1.DJ0wIUro.js → 1.VxhMSm3s.js} +1 -1
  13. package/build/client/_app/immutable/nodes/2.xvwoCX2a.js +174 -0
  14. package/build/client/_app/version.json +1 -1
  15. package/build/handler.js +4 -4
  16. package/build/index.js +4 -4
  17. package/build/server/chunks/chunks/{app-config.svelte.js-F-U5xz0r.js → app-config.svelte.js-BBPHOX4N.js} +2 -2
  18. package/build/server/chunks/chunks/{config.js-BvW5LrfQ.js → config.js-B0w1-uCA.js} +10 -2
  19. package/build/server/chunks/chunks/{db.js-CSrMZzws.js → db.js-BTsRdpsi.js} +2 -2
  20. package/build/server/chunks/chunks/{db2.js-B9P1MuEl.js → db2.js-ou6Vlz7O.js} +2 -2
  21. package/build/server/chunks/chunks/{dsh-connection.js-DjwmUFoE.js → dsh-connection.js-DawPog_I.js} +3 -3
  22. package/build/server/chunks/chunks/{git-probe.js-BGOqAXVt.js → git-probe.js-D5q52JMr.js} +2 -2
  23. package/build/server/chunks/chunks/{insight-config.js-CmCFt2Kp.js → insight-config.js-DiF58x83.js} +22 -4
  24. package/build/server/chunks/chunks/{internal.js-D-70iBmc.js → internal.js-Cr424dfu.js} +3 -3
  25. package/build/server/chunks/chunks/registry.js-G1hzOje_.js +545 -0
  26. package/build/server/chunks/chunks/{settings-document.js-i5MkkSFH.js → settings-document.js-BRTO59Al.js} +2 -2
  27. package/build/server/chunks/chunks/{state.js-BKUnFOB4.js → state.js-BPfg8KK0.js} +3 -3
  28. package/build/server/chunks/chunks/{watcher.js-CuX0WU5B.js → watcher.js-BJlOJaBs.js} +4 -4
  29. package/build/server/chunks/entries/endpoints/api/a2a/_id_/{_server.ts.js-BGuC49gg.js → _server.ts.js-CDJ0OmUG.js} +5 -5
  30. package/build/server/chunks/entries/endpoints/api/a2a/{_server.ts.js-BVH1ToLe.js → _server.ts.js-BVFSRjvv.js} +7 -7
  31. package/build/server/chunks/entries/endpoints/api/a2a/register/{_server.ts.js-a85F1GOf.js → _server.ts.js-Bhou8F5X.js} +7 -7
  32. package/build/server/chunks/entries/endpoints/api/config/{_server.ts.js-CBq4bRig.js → _server.ts.js-BJIzdaiA.js} +5 -5
  33. package/build/server/chunks/entries/endpoints/api/dsh/directory/{_server.ts.js-BpQX_N7Q.js → _server.ts.js-C6n_idy7.js} +5 -5
  34. package/build/server/chunks/entries/endpoints/api/dsh/pick-directory/{_server.ts.js-eYQQnSgq.js → _server.ts.js-DADH8M-H.js} +5 -5
  35. package/build/server/chunks/entries/endpoints/api/dsh/presets/{_server.ts.js-vOFZ1siq.js → _server.ts.js-bC_NLj4U.js} +5 -5
  36. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/attachment/{_server.ts.js-D2tytVhM.js → _server.ts.js-CoScceI5.js} +5 -5
  37. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/cancel/{_server.ts.js-BEn9Ta_U.js → _server.ts.js-C1FgtncS.js} +5 -5
  38. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/catalog/{_server.ts.js-ZfOtq-D3.js → _server.ts.js-PIxDn234.js} +5 -5
  39. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/command/{_server.ts.js-BmJbICbR.js → _server.ts.js-B_CRf61I.js} +5 -5
  40. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/events/{_server.ts.js-gsaVQwiM.js → _server.ts.js-DGGUjpY9.js} +5 -5
  41. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/fork/{_server.ts.js-Dn0v3kPL.js → _server.ts.js-xEVeT3pb.js} +5 -5
  42. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/goal/{_server.ts.js-3y0ufVj_.js → _server.ts.js-Df8t4hkX.js} +5 -5
  43. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/history/{_server.ts.js-CLe_Yd9T.js → _server.ts.js-CH1L9p8z.js} +5 -5
  44. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/models/{_server.ts.js-Reg3sATn.js → _server.ts.js-BvG76FMN.js} +5 -5
  45. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/path/{_server.ts.js-Der7_1Gf.js → _server.ts.js-t8Oiyikl.js} +4 -4
  46. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/permission/{_server.ts.js-B0F4vS5A.js → _server.ts.js-C7fokwxa.js} +5 -5
  47. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/prompt/{_server.ts.js-DLlAJ59P.js → _server.ts.js-Cfm2eSa-.js} +5 -5
  48. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/rename/{_server.ts.js-cxdpHzTp.js → _server.ts.js-DJ3WSBOS.js} +5 -5
  49. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/respond/{_server.ts.js-Bdymup3B.js → _server.ts.js-B8lDX-zk.js} +5 -5
  50. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/select-model/{_server.ts.js-13DIGKaK.js → _server.ts.js-DCKvoONe.js} +5 -5
  51. package/build/server/chunks/entries/endpoints/api/dsh/sessions/{_server.ts.js-ChqfgswA.js → _server.ts.js-Bl4xBKoB.js} +5 -5
  52. package/build/server/chunks/entries/endpoints/api/dsh/workspace-file/{_server.ts.js-CT8DKYFX.js → _server.ts.js--FCZv4Np.js} +5 -5
  53. package/build/server/chunks/entries/endpoints/api/dsh/workspace-file-bytes/{_server.ts.js-DY-EoPi1.js → _server.ts.js-DEUnD1Mn.js} +5 -5
  54. package/build/server/chunks/entries/endpoints/api/dsh/workspace-tree/{_server.ts.js-D4tdFfjX.js → _server.ts.js-BiHVvbW-.js} +5 -5
  55. package/build/server/chunks/entries/endpoints/api/dsh/workspaces/{_server.ts.js-BUcBfYnX.js → _server.ts.js-CcDE1rk8.js} +5 -5
  56. package/build/server/chunks/entries/endpoints/api/dsh/workspaces/_workspaceId_/delete/{_server.ts.js-CunmEcMs.js → _server.ts.js-C8vdE5Jr.js} +5 -5
  57. package/build/server/chunks/entries/endpoints/api/dsh/workspaces/_workspaceId_/rename/{_server.ts.js-CmGqWlUy.js → _server.ts.js-C9cgB8t0.js} +5 -5
  58. package/build/server/chunks/entries/endpoints/api/prompts/_id_/{_server.ts.js-DMyDOvrX.js → _server.ts.js-oR6Qu-Wa.js} +5 -5
  59. package/build/server/chunks/entries/endpoints/api/prompts/{_server.ts.js-BS2wQOe7.js → _server.ts.js-j8TNOmk3.js} +5 -5
  60. package/build/server/chunks/entries/endpoints/api/prompts/use/{_server.ts.js-5-lf15sG.js → _server.ts.js-B6UZ2HZ5.js} +5 -5
  61. package/build/server/chunks/entries/endpoints/api/settings/{_server.ts.js-PDRzWcsI.js → _server.ts.js-BWE38_9X.js} +4 -4
  62. package/build/server/chunks/entries/endpoints/api/terminal/_id_/output/_server.ts.js-m6Cug5hN.js +31 -0
  63. package/build/server/chunks/entries/endpoints/api/terminal/_id_/send/_server.ts.js-CTc5xP72.js +60 -0
  64. package/build/server/chunks/entries/endpoints/api/terminal/_id_/stream/_server.ts.js-_-HKTzoH.js +95 -0
  65. package/build/server/chunks/entries/endpoints/api/terminal/_server.ts.js-CmM-ksLQ.js +73 -0
  66. package/build/server/chunks/entries/endpoints/api/workspace/file-write/{_server.ts.js-COt-HtL0.js → _server.ts.js-1pMekv7y.js} +6 -6
  67. package/build/server/chunks/entries/endpoints/api/workspace/git-events/{_server.ts.js-k7bgOO_c.js → _server.ts.js-Cwebkv8Y.js} +6 -6
  68. package/build/server/chunks/entries/endpoints/api/workspace/git-file-head/{_server.ts.js-H1HUbRif.js → _server.ts.js-4JF7UGE-.js} +6 -6
  69. package/build/server/chunks/entries/endpoints/api/workspace/git-map/{_server.ts.js-D7nqciP7.js → _server.ts.js-B5i8ziTR.js} +6 -6
  70. package/build/server/chunks/entries/endpoints/api/workspace/git-status/{_server.ts.js-D0HYWO9M.js → _server.ts.js-zYBj_jzG.js} +6 -6
  71. package/build/server/chunks/entries/endpoints/api/workspace/write-gate/{_server.ts.js-Boi1Sn8U.js → _server.ts.js-BbgR18Zo.js} +6 -6
  72. package/build/server/chunks/entries/{hooks.server.js-Bt6VP5fg.js → hooks.server.js-BSnc9oHw.js} +3 -3
  73. package/build/server/chunks/entries/pages/{_error.svelte.js-Bee5xNts.js → _error.svelte.js-izlnhqFW.js} +4 -4
  74. package/build/server/chunks/entries/pages/{_page.server.ts.js-DdzOMHcO.js → _page.server.ts.js-CNmIVlOY.js} +2 -2
  75. package/build/server/chunks/entries/pages/{_page.svelte.js-B2EA5ccE.js → _page.svelte.js-DOcEfh5K.js} +472 -50
  76. package/build/server/chunks/{handler-BVZR5A-R.js → handler-t4JeFn6X.js} +3 -3
  77. package/build/server/chunks/{index.js-Nwzp6b_k.js → index.js-DgUdoRMr.js} +2 -2
  78. package/build/server/chunks/{manifest.js-Bof9naPY.js → manifest.js-CuVIAGaj.js} +72 -44
  79. package/build/server/chunks/nodes/{0.js-iA5BIbe7.js → 0.js-DphETTOT.js} +3 -3
  80. package/build/server/chunks/nodes/1.js-3gG-llw5.js +9 -0
  81. package/build/server/chunks/nodes/{2.js-QPzVOzfX.js → 2.js-CmddEN1j.js} +9 -9
  82. package/package.json +4 -1
  83. package/build/client/_app/immutable/assets/0.BbBUj8Gs.css +0 -2
  84. package/build/client/_app/immutable/chunks/Zxb_bQ44.js +0 -1
  85. package/build/client/_app/immutable/chunks/muEkqSbS.js +0 -1
  86. package/build/client/_app/immutable/entry/start.CImCAUy1.js +0 -1
  87. package/build/client/_app/immutable/nodes/2.8eo5qS19.js +0 -171
  88. package/build/server/chunks/nodes/1.js-CxOuNsR_.js +0 -9
  89. /package/build/client/_app/immutable/nodes/{0.B3l2ZewD.js → 0.tkrxyU6K.js} +0 -0
@@ -1,13 +1,13 @@
1
- import { c as onDestroy, d as __exportAll } from '../../chunks/internal.js-D-70iBmc.js';
1
+ import { c as onDestroy, d as __exportAll } from '../../chunks/internal.js-Cr424dfu.js';
2
2
  import { V as head, y as derived, X as bind_props, W as escape_html, Y as attr, Z as attr_style, _ as attr_class, x as setContext, $ as spread_props, a0 as attributes, a1 as clsx, a2 as ensure_array_like, a3 as element, J as getContext, a4 as stringify, a5 as html, F as run, a6 as props_id } from '../../chunks/server.js-11-pxAWV.js';
3
- import { U as UI_LOCALES } from '../../chunks/config.js-BvW5LrfQ.js';
3
+ import { U as UI_LOCALES } from '../../chunks/config.js-B0w1-uCA.js';
4
4
  import { m as mergeEntries, c as collapseSystemPromptEntries, t as truncate } from '../../chunks/dsh-events.js-DEZgATm-.js';
5
5
  import { p as parseA2aSignature, m as mintA2aId, b as buildDeliveredText } from '../../chunks/a2a-protocol.js-C77mVg2Q.js';
6
6
  import { b as applyKnobEvent, E as EMPTY_KNOBS, r as resolvePermission, l as localPermission, c as presetLabel, d as presetDescription, C as CUSTOM_PRESET, F as FULL_ACCESS_PRESET } from '../../chunks/permission-state.js-B7UpAHBv.js';
7
7
  import { D as DEFAULT_IMAGE_LIMITS } from '../../chunks/image-limits.js-CUdJ0f7r.js';
8
- import { a as appConfig, t as triggerMode, g as getTrigger, p as previewSegments, i as isValidTagWord, b as textPreviewOf, s as searchKey, c as shouldRecordPrompt, d as parseTagWords } from '../../chunks/app-config.svelte.js-F-U5xz0r.js';
8
+ import { a as appConfig, t as triggerMode, g as getTrigger, p as previewSegments, i as isValidTagWord, b as textPreviewOf, s as searchKey, c as shouldRecordPrompt, d as parseTagWords } from '../../chunks/app-config.svelte.js-BBPHOX4N.js';
9
9
  import { c as getLocale } from '../../chunks/runtime.js-CCJi3XaY.js';
10
- import { p as page, a as afterNavigate, t, c as replaceState, e as currentLocale, u as unexpectederror1, s as sessionnotfound2, r as reapednote1, d as dshunreachable1, b as backtoworkspace2 } from '../../chunks/state.js-BKUnFOB4.js';
10
+ import { p as page, a as afterNavigate, t, c as replaceState, e as currentLocale, u as unexpectederror1, s as sessionnotfound2, r as reapednote1, d as dshunreachable1, b as backtoworkspace2 } from '../../chunks/state.js-BPfg8KK0.js';
11
11
  import 'yaml';
12
12
  import 'html-to-image';
13
13
  import hljs from 'highlight.js/lib/core';
@@ -10742,6 +10742,294 @@ var tags = ((inputs = {}, options = {}) => {
10742
10742
  return en_tags();
10743
10743
  });
10744
10744
  //#endregion
10745
+ //#region src/lib/paraglide/messages/terminalclose1.js
10746
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
10747
+ /** @typedef {{}} Terminalclose1Inputs */
10748
+ var en_terminalclose1 = () => {
10749
+ return `Close`;
10750
+ };
10751
+ var zh_terminalclose1 = () => {
10752
+ return `关闭`;
10753
+ };
10754
+ var id_terminalclose1 = () => {
10755
+ return `Tutup`;
10756
+ };
10757
+ var es_terminalclose1 = () => {
10758
+ return `Cerrar`;
10759
+ };
10760
+ /**
10761
+ * | output |
10762
+ * | --- |
10763
+ * | "Close" |
10764
+ *
10765
+ * @param {Terminalclose1Inputs} inputs
10766
+ * @param {{ locale?: "en" | "zh" | "id" | "es" }} options
10767
+ * @returns {LocalizedString}
10768
+ */
10769
+ var terminalclose1 = ((inputs = {}, options = {}) => {
10770
+ const locale = options.locale ?? getLocale();
10771
+ if (locale === "zh") return zh_terminalclose1();
10772
+ if (locale === "id") return id_terminalclose1();
10773
+ if (locale === "es") return es_terminalclose1();
10774
+ return en_terminalclose1();
10775
+ });
10776
+ //#endregion
10777
+ //#region src/lib/paraglide/messages/terminalclosed1.js
10778
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
10779
+ /** @typedef {{}} Terminalclosed1Inputs */
10780
+ var en_terminalclosed1 = () => {
10781
+ return `Terminal closed`;
10782
+ };
10783
+ var zh_terminalclosed1 = () => {
10784
+ return `终端已关闭`;
10785
+ };
10786
+ var id_terminalclosed1 = () => {
10787
+ return `Terminal ditutup`;
10788
+ };
10789
+ var es_terminalclosed1 = () => {
10790
+ return `Terminal cerrada`;
10791
+ };
10792
+ /**
10793
+ * | output |
10794
+ * | --- |
10795
+ * | "Terminal closed" |
10796
+ *
10797
+ * @param {Terminalclosed1Inputs} inputs
10798
+ * @param {{ locale?: "en" | "zh" | "id" | "es" }} options
10799
+ * @returns {LocalizedString}
10800
+ */
10801
+ var terminalclosed1 = ((inputs = {}, options = {}) => {
10802
+ const locale = options.locale ?? getLocale();
10803
+ if (locale === "zh") return zh_terminalclosed1();
10804
+ if (locale === "id") return id_terminalclosed1();
10805
+ if (locale === "es") return es_terminalclosed1();
10806
+ return en_terminalclosed1();
10807
+ });
10808
+ //#endregion
10809
+ //#region src/lib/paraglide/messages/terminaldisabled1.js
10810
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
10811
+ /** @typedef {{}} Terminaldisabled1Inputs */
10812
+ var en_terminaldisabled1 = () => {
10813
+ return `Terminal is disabled — enable it in settings (terminal.enabled).`;
10814
+ };
10815
+ var zh_terminaldisabled1 = () => {
10816
+ return `终端已禁用 — 请在设置中启用(terminal.enabled)。`;
10817
+ };
10818
+ var id_terminaldisabled1 = () => {
10819
+ return `Terminal dinonaktifkan — aktifkan di pengaturan (terminal.enabled).`;
10820
+ };
10821
+ var es_terminaldisabled1 = () => {
10822
+ return `Terminal deshabilitado — actívalo en ajustes (terminal.enabled).`;
10823
+ };
10824
+ /**
10825
+ * | output |
10826
+ * | --- |
10827
+ * | "Terminal is disabled — enable it in settings (terminal.enabled)." |
10828
+ *
10829
+ * @param {Terminaldisabled1Inputs} inputs
10830
+ * @param {{ locale?: "en" | "zh" | "id" | "es" }} options
10831
+ * @returns {LocalizedString}
10832
+ */
10833
+ var terminaldisabled1 = ((inputs = {}, options = {}) => {
10834
+ const locale = options.locale ?? getLocale();
10835
+ if (locale === "zh") return zh_terminaldisabled1();
10836
+ if (locale === "id") return id_terminaldisabled1();
10837
+ if (locale === "es") return es_terminaldisabled1();
10838
+ return en_terminaldisabled1();
10839
+ });
10840
+ //#endregion
10841
+ //#region src/lib/paraglide/messages/terminalopening1.js
10842
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
10843
+ /** @typedef {{}} Terminalopening1Inputs */
10844
+ var en_terminalopening1 = () => {
10845
+ return `Opening terminal…`;
10846
+ };
10847
+ var zh_terminalopening1 = () => {
10848
+ return `正在打开终端…`;
10849
+ };
10850
+ var id_terminalopening1 = () => {
10851
+ return `Membuka terminal…`;
10852
+ };
10853
+ var es_terminalopening1 = () => {
10854
+ return `Abriendo terminal…`;
10855
+ };
10856
+ /**
10857
+ * | output |
10858
+ * | --- |
10859
+ * | "Opening terminal…" |
10860
+ *
10861
+ * @param {Terminalopening1Inputs} inputs
10862
+ * @param {{ locale?: "en" | "zh" | "id" | "es" }} options
10863
+ * @returns {LocalizedString}
10864
+ */
10865
+ var terminalopening1 = ((inputs = {}, options = {}) => {
10866
+ const locale = options.locale ?? getLocale();
10867
+ if (locale === "zh") return zh_terminalopening1();
10868
+ if (locale === "id") return id_terminalopening1();
10869
+ if (locale === "es") return es_terminalopening1();
10870
+ return en_terminalopening1();
10871
+ });
10872
+ //#endregion
10873
+ //#region src/lib/paraglide/messages/terminalpaneltitle2.js
10874
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
10875
+ /** @typedef {{}} Terminalpaneltitle2Inputs */
10876
+ var en_terminalpaneltitle2 = () => {
10877
+ return `Terminal`;
10878
+ };
10879
+ var zh_terminalpaneltitle2 = () => {
10880
+ return `终端`;
10881
+ };
10882
+ var id_terminalpaneltitle2 = () => {
10883
+ return `Terminal`;
10884
+ };
10885
+ var es_terminalpaneltitle2 = () => {
10886
+ return `Terminal`;
10887
+ };
10888
+ /**
10889
+ * | output |
10890
+ * | --- |
10891
+ * | "Terminal" |
10892
+ *
10893
+ * @param {Terminalpaneltitle2Inputs} inputs
10894
+ * @param {{ locale?: "en" | "zh" | "id" | "es" }} options
10895
+ * @returns {LocalizedString}
10896
+ */
10897
+ var terminalpaneltitle2 = ((inputs = {}, options = {}) => {
10898
+ const locale = options.locale ?? getLocale();
10899
+ if (locale === "zh") return zh_terminalpaneltitle2();
10900
+ if (locale === "id") return id_terminalpaneltitle2();
10901
+ if (locale === "es") return es_terminalpaneltitle2();
10902
+ return en_terminalpaneltitle2();
10903
+ });
10904
+ //#endregion
10905
+ //#region src/lib/paraglide/messages/terminalsettleinferredidle3.js
10906
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
10907
+ /** @typedef {{}} Terminalsettleinferredidle3Inputs */
10908
+ var en_terminalsettleinferredidle3 = () => {
10909
+ return `output idle`;
10910
+ };
10911
+ var zh_terminalsettleinferredidle3 = () => {
10912
+ return `输出空闲`;
10913
+ };
10914
+ var id_terminalsettleinferredidle3 = () => {
10915
+ return `keluaran senggang`;
10916
+ };
10917
+ var es_terminalsettleinferredidle3 = () => {
10918
+ return `salida inactiva`;
10919
+ };
10920
+ /**
10921
+ * | output |
10922
+ * | --- |
10923
+ * | "output idle" |
10924
+ *
10925
+ * @param {Terminalsettleinferredidle3Inputs} inputs
10926
+ * @param {{ locale?: "en" | "zh" | "id" | "es" }} options
10927
+ * @returns {LocalizedString}
10928
+ */
10929
+ var terminalsettleinferredidle3 = ((inputs = {}, options = {}) => {
10930
+ const locale = options.locale ?? getLocale();
10931
+ if (locale === "zh") return zh_terminalsettleinferredidle3();
10932
+ if (locale === "id") return id_terminalsettleinferredidle3();
10933
+ if (locale === "es") return es_terminalsettleinferredidle3();
10934
+ return en_terminalsettleinferredidle3();
10935
+ });
10936
+ //#endregion
10937
+ //#region src/lib/paraglide/messages/terminalsettlesessionexit3.js
10938
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
10939
+ /** @typedef {{}} Terminalsettlesessionexit3Inputs */
10940
+ var en_terminalsettlesessionexit3 = () => {
10941
+ return `shell exited`;
10942
+ };
10943
+ var zh_terminalsettlesessionexit3 = () => {
10944
+ return `shell 已退出`;
10945
+ };
10946
+ var id_terminalsettlesessionexit3 = () => {
10947
+ return `shell keluar`;
10948
+ };
10949
+ var es_terminalsettlesessionexit3 = () => {
10950
+ return `shell terminada`;
10951
+ };
10952
+ /**
10953
+ * | output |
10954
+ * | --- |
10955
+ * | "shell exited" |
10956
+ *
10957
+ * @param {Terminalsettlesessionexit3Inputs} inputs
10958
+ * @param {{ locale?: "en" | "zh" | "id" | "es" }} options
10959
+ * @returns {LocalizedString}
10960
+ */
10961
+ var terminalsettlesessionexit3 = ((inputs = {}, options = {}) => {
10962
+ const locale = options.locale ?? getLocale();
10963
+ if (locale === "zh") return zh_terminalsettlesessionexit3();
10964
+ if (locale === "id") return id_terminalsettlesessionexit3();
10965
+ if (locale === "es") return es_terminalsettlesessionexit3();
10966
+ return en_terminalsettlesessionexit3();
10967
+ });
10968
+ //#endregion
10969
+ //#region src/lib/paraglide/messages/terminalsettlestdinread3.js
10970
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
10971
+ /** @typedef {{}} Terminalsettlestdinread3Inputs */
10972
+ var en_terminalsettlestdinread3 = () => {
10973
+ return `waiting for input`;
10974
+ };
10975
+ var zh_terminalsettlestdinread3 = () => {
10976
+ return `等待输入`;
10977
+ };
10978
+ var id_terminalsettlestdinread3 = () => {
10979
+ return `menunggu masukan`;
10980
+ };
10981
+ var es_terminalsettlestdinread3 = () => {
10982
+ return `esperando entrada`;
10983
+ };
10984
+ /**
10985
+ * | output |
10986
+ * | --- |
10987
+ * | "waiting for input" |
10988
+ *
10989
+ * @param {Terminalsettlestdinread3Inputs} inputs
10990
+ * @param {{ locale?: "en" | "zh" | "id" | "es" }} options
10991
+ * @returns {LocalizedString}
10992
+ */
10993
+ var terminalsettlestdinread3 = ((inputs = {}, options = {}) => {
10994
+ const locale = options.locale ?? getLocale();
10995
+ if (locale === "zh") return zh_terminalsettlestdinread3();
10996
+ if (locale === "id") return id_terminalsettlestdinread3();
10997
+ if (locale === "es") return es_terminalsettlestdinread3();
10998
+ return en_terminalsettlestdinread3();
10999
+ });
11000
+ //#endregion
11001
+ //#region src/lib/paraglide/messages/terminalsettletimeout2.js
11002
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
11003
+ /** @typedef {{}} Terminalsettletimeout2Inputs */
11004
+ var en_terminalsettletimeout2 = () => {
11005
+ return `timed out`;
11006
+ };
11007
+ var zh_terminalsettletimeout2 = () => {
11008
+ return `已超时`;
11009
+ };
11010
+ var id_terminalsettletimeout2 = () => {
11011
+ return `habis waktu`;
11012
+ };
11013
+ var es_terminalsettletimeout2 = () => {
11014
+ return `tiempo agotado`;
11015
+ };
11016
+ /**
11017
+ * | output |
11018
+ * | --- |
11019
+ * | "timed out" |
11020
+ *
11021
+ * @param {Terminalsettletimeout2Inputs} inputs
11022
+ * @param {{ locale?: "en" | "zh" | "id" | "es" }} options
11023
+ * @returns {LocalizedString}
11024
+ */
11025
+ var terminalsettletimeout2 = ((inputs = {}, options = {}) => {
11026
+ const locale = options.locale ?? getLocale();
11027
+ if (locale === "zh") return zh_terminalsettletimeout2();
11028
+ if (locale === "id") return id_terminalsettletimeout2();
11029
+ if (locale === "es") return es_terminalsettletimeout2();
11030
+ return en_terminalsettletimeout2();
11031
+ });
11032
+ //#endregion
10745
11033
  //#region src/lib/paraglide/messages/text.js
10746
11034
  /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
10747
11035
  /** @typedef {{}} TextInputs */
@@ -12299,6 +12587,15 @@ var _index_exports = /* @__PURE__ */ __exportAll({
12299
12587
  syncComposer: () => synccomposer1,
12300
12588
  systemPrompt: () => systemprompt1,
12301
12589
  tags: () => tags,
12590
+ terminalClose: () => terminalclose1,
12591
+ terminalClosed: () => terminalclosed1,
12592
+ terminalDisabled: () => terminaldisabled1,
12593
+ terminalOpening: () => terminalopening1,
12594
+ terminalPanelTitle: () => terminalpaneltitle2,
12595
+ terminalSettleInferredIdle: () => terminalsettleinferredidle3,
12596
+ terminalSettleSessionExit: () => terminalsettlesessionexit3,
12597
+ terminalSettleStdinRead: () => terminalsettlestdinread3,
12598
+ terminalSettleTimeout: () => terminalsettletimeout2,
12302
12599
  text: () => text,
12303
12600
  thinkLabel: () => thinklabel1,
12304
12601
  thinkingLabel: () => thinkinglabel1,
@@ -12682,6 +12979,15 @@ var messages_exports = /* @__PURE__ */ __exportAll({
12682
12979
  syncComposer: () => synccomposer1,
12683
12980
  systemPrompt: () => systemprompt1,
12684
12981
  tags: () => tags,
12982
+ terminalClose: () => terminalclose1,
12983
+ terminalClosed: () => terminalclosed1,
12984
+ terminalDisabled: () => terminaldisabled1,
12985
+ terminalOpening: () => terminalopening1,
12986
+ terminalPanelTitle: () => terminalpaneltitle2,
12987
+ terminalSettleInferredIdle: () => terminalsettleinferredidle3,
12988
+ terminalSettleSessionExit: () => terminalsettlesessionexit3,
12989
+ terminalSettleStdinRead: () => terminalsettlestdinread3,
12990
+ terminalSettleTimeout: () => terminalsettletimeout2,
12685
12991
  text: () => text,
12686
12992
  thinkLabel: () => thinklabel1,
12687
12993
  thinkingLabel: () => thinkinglabel1,
@@ -17451,6 +17757,7 @@ function workspaceFileTitle(path) {
17451
17757
  * @returns the variant title, or undefined for a conversation header.
17452
17758
  */
17453
17759
  function panelHeaderLabel(panel) {
17760
+ if (panel.kind === "terminal") return "Terminal";
17454
17761
  if (panel.kind === "prompt-manager") return MANAGER_ROW_TITLE;
17455
17762
  if (panel.kind === "skill-shelf") return "Skill Shelf";
17456
17763
  if (panel.kind === "settings-editor") return SETTINGS_ROW_TITLE[panel.target];
@@ -17478,9 +17785,9 @@ function panelRowsFor(input) {
17478
17785
  const { panels, spineRows, coldCache, deadSessions, edgeCache, lineageFacts, moveFacts } = input;
17479
17786
  const openSessionIds = openSessionIdsOf(panels);
17480
17787
  return panels.map((p, index) => {
17481
- if (p.kind === "prompt-manager" || p.kind === "settings-editor" || p.kind === "skill-shelf") return {
17788
+ if (p.kind === "terminal" || p.kind === "prompt-manager" || p.kind === "settings-editor" || p.kind === "skill-shelf") return {
17482
17789
  panel: p,
17483
- title: p.kind === "prompt-manager" ? MANAGER_ROW_TITLE : p.kind === "skill-shelf" ? "Skill Shelf" : SETTINGS_ROW_TITLE[p.target],
17790
+ title: p.kind === "terminal" ? "Terminal" : p.kind === "prompt-manager" ? MANAGER_ROW_TITLE : p.kind === "skill-shelf" ? "Skill Shelf" : SETTINGS_ROW_TITLE[p.target],
17484
17791
  workspace: null,
17485
17792
  dead: false,
17486
17793
  running: false,
@@ -17680,13 +17987,19 @@ function parseCommand(text) {
17680
17987
  args
17681
17988
  };
17682
17989
  }
17683
- case "/promptmanager":
17684
- case "/dsisettings":
17685
- case "/dshsettings": return {
17686
- type: token.slice(1),
17990
+ case "/dsi-prompts":
17991
+ case "/dsi-terminal":
17992
+ case "/dsi-settings":
17993
+ case "/dsh-settings": return {
17994
+ type: {
17995
+ "/dsi-prompts": "promptmanager",
17996
+ "/dsi-terminal": "terminal",
17997
+ "/dsi-settings": "dsisettings",
17998
+ "/dsh-settings": "dshsettings"
17999
+ }[token],
17687
18000
  args
17688
18001
  };
17689
- case "/dsi-skill-shelf":
18002
+ case "/dsi-skills":
17690
18003
  if (args === "") return {
17691
18004
  type: "skillshelf",
17692
18005
  args
@@ -17813,26 +18126,35 @@ var COMMAND_HELP = {
17813
18126
  }
17814
18127
  ]
17815
18128
  },
18129
+ terminal: {
18130
+ usage: "/dsi-terminal",
18131
+ summary: "Aims the operator terminal panel: the open terminal takes the focus; otherwise a NEW panel opens to the right of this conversation. Renders the disabled note unless terminal.enabled is set in settings.",
18132
+ params: [],
18133
+ examples: [{
18134
+ line: "/dsi-terminal",
18135
+ description: "The terminal panel comes forward — beside this conversation if it was closed."
18136
+ }]
18137
+ },
17816
18138
  promptmanager: {
17817
- usage: "/promptmanager",
18139
+ usage: "/dsi-prompts",
17818
18140
  summary: "Aims the prompts manager panel: if one is already open it takes the focus; otherwise it opens in a NEW panel to the right of this conversation — and takes the focus. Nothing you have open is ever replaced.",
17819
18141
  params: [],
17820
18142
  examples: [{
17821
- line: "/promptmanager",
18143
+ line: "/dsi-prompts",
17822
18144
  description: "The prompts manager panel comes forward — opened beside this conversation if it was closed."
17823
18145
  }]
17824
18146
  },
17825
18147
  dsisettings: {
17826
- usage: "/dsisettings",
18148
+ usage: "/dsi-settings",
17827
18149
  summary: "Aims the DSI settings home explorer (~/.dsi, titled “DSI - Settings”): the open explorer takes the focus; otherwise a NEW explorer opens to the right of this conversation, selected. settings.yaml opens as a tab and stays editable; saves are YAML-checked on read.",
17828
18150
  params: [],
17829
18151
  examples: [{
17830
- line: "/dsisettings",
18152
+ line: "/dsi-settings",
17831
18153
  description: "The DSI settings explorer comes forward — opened beside this conversation if it was closed."
17832
18154
  }]
17833
18155
  },
17834
18156
  skillshelf: {
17835
- usage: "/dsi-skill-shelf [--reload]",
18157
+ usage: "/dsi-skills [--reload]",
17836
18158
  get summary() {
17837
18159
  return t(commandhelpskillshelfsummary3);
17838
18160
  },
@@ -17844,19 +18166,19 @@ var COMMAND_HELP = {
17844
18166
  }],
17845
18167
  examples: [
17846
18168
  {
17847
- line: "/dsi-skill-shelf",
18169
+ line: "/dsi-skills",
17848
18170
  get description() {
17849
18171
  return t(commandhelpskillshelfexamplebare4);
17850
18172
  }
17851
18173
  },
17852
18174
  {
17853
- line: "/dsi-skill-shelf --reload",
18175
+ line: "/dsi-skills --reload",
17854
18176
  get description() {
17855
18177
  return t(commandhelpskillshelfexamplereload4);
17856
18178
  }
17857
18179
  },
17858
18180
  {
17859
- line: "/dsi-skill-shelf ?",
18181
+ line: "/dsi-skills ?",
17860
18182
  get description() {
17861
18183
  return t(commandhelpskillshelfexamplehelp4);
17862
18184
  }
@@ -17864,11 +18186,11 @@ var COMMAND_HELP = {
17864
18186
  ]
17865
18187
  },
17866
18188
  dshsettings: {
17867
- usage: "/dshsettings",
18189
+ usage: "/dsh-settings",
17868
18190
  summary: "Aims the harness settings home explorer (~/.dsh, titled “DSH - Settings”): the open explorer takes the focus; otherwise a NEW explorer opens to the right of this conversation, selected. settings.yaml opens as a tab and stays editable; the running harness picks edits up through its own file watcher.",
17869
18191
  params: [],
17870
18192
  examples: [{
17871
- line: "/dshsettings",
18193
+ line: "/dsh-settings",
17872
18194
  description: "The DSH settings explorer comes forward — opened beside this conversation if it was closed."
17873
18195
  }]
17874
18196
  },
@@ -17928,26 +18250,32 @@ var MENU_GESTURES = [
17928
18250
  },
17929
18251
  {
17930
18252
  name: "promptmanager",
17931
- display: "/promptmanager",
17932
- seed: "/promptmanager ",
18253
+ display: "/dsi-prompts",
18254
+ seed: "/dsi-prompts ",
17933
18255
  description: COMMAND_HELP.promptmanager.summary
17934
18256
  },
17935
18257
  {
17936
18258
  name: "dsisettings",
17937
- display: "/dsisettings",
17938
- seed: "/dsisettings ",
18259
+ display: "/dsi-settings",
18260
+ seed: "/dsi-settings ",
17939
18261
  description: COMMAND_HELP.dsisettings.summary
17940
18262
  },
17941
18263
  {
17942
18264
  name: "dshsettings",
17943
- display: "/dshsettings",
17944
- seed: "/dshsettings ",
18265
+ display: "/dsh-settings",
18266
+ seed: "/dsh-settings ",
17945
18267
  description: COMMAND_HELP.dshsettings.summary
17946
18268
  },
18269
+ {
18270
+ name: "terminal",
18271
+ display: "/dsi-terminal",
18272
+ seed: "/dsi-terminal ",
18273
+ description: COMMAND_HELP.terminal.summary
18274
+ },
17947
18275
  {
17948
18276
  name: "skillshelf",
17949
- display: "/dsi-skill-shelf",
17950
- seed: "/dsi-skill-shelf ",
18277
+ display: "/dsi-skills",
18278
+ seed: "/dsi-skills ",
17951
18279
  get description() {
17952
18280
  return t(commandhelpskillshelfsummary3);
17953
18281
  }
@@ -19947,7 +20275,7 @@ function ContextSnapshotBody($$renderer, $$props) {
19947
20275
  const sections = derived(() => snapshotSectionsOf(metaSource));
19948
20276
  if (sections()) {
19949
20277
  $$renderer.push("<!--[0-->");
19950
- $$renderer.push(`<p data-svelte="ContextSnapshotBody"${attr("data-csb", "s:" + (sections()?.length ?? "none") + ";src:" + JSON.stringify(metaSource ?? null))} data-testid="context-snapshot-supersedes" class="mb-1.5 flex items-center gap-1 text-[10px] font-medium uppercase tracking-wide text-accent-purple/80">${escape_html(t(ctxsnapshotsupersedes2))}</p> <div data-svelte="ContextSnapshotBody" data-testid="context-sections" class="flex flex-col gap-1.5"><!--[-->`);
20278
+ $$renderer.push(`<p data-svelte="ContextSnapshotBody"${attr("data-csb", "s:" + sections().length + ";src:" + JSON.stringify(metaSource))} data-testid="context-snapshot-supersedes" class="mb-1.5 flex items-center gap-1 text-[10px] font-medium uppercase tracking-wide text-accent-purple/80">${escape_html(t(ctxsnapshotsupersedes2))}</p> <div data-svelte="ContextSnapshotBody" data-testid="context-sections" class="flex flex-col gap-1.5"><!--[-->`);
19951
20279
  const each_array = ensure_array_like(sections());
19952
20280
  for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
19953
20281
  let section = each_array[$$index];
@@ -23236,8 +23564,9 @@ async function executeCommand(command, ctx, onNote) {
23236
23564
  if (command.type === "workspace") return runWorkspaceLine(command.wsPath, command.wsName, ctx, onNote);
23237
23565
  if (command.type === "mention") return runMention(command.sessionId ?? "", command.args, command.a2aId, ctx, onNote);
23238
23566
  if (command.type === "promptmanager") return runPromptManager(command.args, ctx, onNote);
23567
+ if (command.type === "terminal") return runTerminal(command.args, ctx, onNote);
23239
23568
  if (command.type === "skillshelf") return runSkillShelf(command.args, command.reload === true, ctx, onNote);
23240
- if (command.type === "dsisettings" || command.type === "dshsettings") return runSettingsEditor(command.type === "dsisettings" ? "dsi" : "dsh", "/" + command.type, command.args, ctx, onNote);
23569
+ if (command.type === "dsisettings" || command.type === "dshsettings") return runSettingsEditor(command.type === "dsisettings" ? "dsi" : "dsh", command.type === "dsisettings" ? "/dsi-settings" : "/dsh-settings", command.args, ctx, onNote);
23241
23570
  if (command.type === "loadinjected") return runLoadInjected(command.filename, command.addPanel === true, ctx, onNote);
23242
23571
  if (command.args !== "") {
23243
23572
  const usage = "usage: /new [@agent] [workspace] [--add]";
@@ -23352,16 +23681,61 @@ async function executeCommand(command, ctx, onNote) {
23352
23681
  }
23353
23682
  }
23354
23683
  /**
23355
- * /promptmanager (re-pointed 2026-09-17, ADR The Focus Command D1/D2): AIM
23684
+ * /dsi-prompts (re-pointed 2026-09-17, ADR The Focus Command D1/D2): AIM
23356
23685
  * the prompts manager panel from the composer — the floor's add path
23357
23686
  * FOCUSES the already-open manager (one live manager, D3) or opens a NEW
23358
23687
  * one right of this session's panel, selected. The bare successor-swap and
23359
23688
  * the --add flag are retired; the floor never replaces a panel for this
23360
23689
  * command. No wire call — the manager content talks to /api/prompts itself.
23361
23690
  */
23691
+ /**
23692
+ * /dsi-terminal (Web Terminal spec Wave 5, 2026-09-24): aim the operator
23693
+ * terminal panel — the manager-request grammar. The enabled gate lives
23694
+ * HERE (the composer gives honest feedback even before a panel exists):
23695
+ * a disabled flag notes the fact and opens nothing.
23696
+ */
23697
+ async function runTerminal(args, ctx, onNote) {
23698
+ if (args !== "") {
23699
+ const usage = "usage: /dsi-terminal";
23700
+ onNote?.(false, usage);
23701
+ return {
23702
+ ok: false,
23703
+ note: usage
23704
+ };
23705
+ }
23706
+ if (ctx.panelId == null) {
23707
+ const note = "/dsi-terminal needs a panel floor (open this session on the floor first)";
23708
+ onNote?.(false, note);
23709
+ return {
23710
+ ok: false,
23711
+ note
23712
+ };
23713
+ }
23714
+ try {
23715
+ if (!(await (await fetch("/api/terminal")).json()).enabled) {
23716
+ const note = "/dsi-terminal is disabled — set terminal.enabled in settings";
23717
+ onNote?.(false, note);
23718
+ return {
23719
+ ok: false,
23720
+ note
23721
+ };
23722
+ }
23723
+ } catch {}
23724
+ if (!addPanelFromSidebar({
23725
+ afterSessionId: ctx.sessionId
23726
+ })) {
23727
+ const note = "/dsi-terminal: the floor is not mounted";
23728
+ onNote?.(false, note);
23729
+ return {
23730
+ ok: false,
23731
+ note
23732
+ };
23733
+ }
23734
+ return { ok: true };
23735
+ }
23362
23736
  async function runPromptManager(args, ctx, onNote) {
23363
23737
  if (args !== "") {
23364
- const usage = "usage: /promptmanager";
23738
+ const usage = "usage: /dsi-prompts";
23365
23739
  onNote?.(false, usage);
23366
23740
  return {
23367
23741
  ok: false,
@@ -23369,7 +23743,7 @@ async function runPromptManager(args, ctx, onNote) {
23369
23743
  };
23370
23744
  }
23371
23745
  if (ctx.panelId == null) {
23372
- const note = "/promptmanager needs a panel floor (open this session on the floor first)";
23746
+ const note = "/dsi-prompts needs a panel floor (open this session on the floor first)";
23373
23747
  onNote?.(false, note);
23374
23748
  return {
23375
23749
  ok: false,
@@ -23379,7 +23753,7 @@ async function runPromptManager(args, ctx, onNote) {
23379
23753
  if (!addPanelFromSidebar({
23380
23754
  afterSessionId: ctx.sessionId
23381
23755
  })) {
23382
- const note = "/promptmanager: the floor is not mounted";
23756
+ const note = "/dsi-prompts: the floor is not mounted";
23383
23757
  onNote?.(false, note);
23384
23758
  return {
23385
23759
  ok: false,
@@ -23389,7 +23763,7 @@ async function runPromptManager(args, ctx, onNote) {
23389
23763
  return { ok: true };
23390
23764
  }
23391
23765
  /**
23392
- * /dsi-skill-shelf (The Skill Shelf ADR, 2026-09-20, D1/D3): aim the
23766
+ * /dsi-skills (The Skill Shelf ADR, 2026-09-20, D1/D3): aim the
23393
23767
  * SettingsSkillsPanel — the floor dedupes and FOCUSES the open shelf
23394
23768
  * (the manager-request grammar). Snapshot-first is the ROUTE's contract
23395
23769
  * (GET /api/skills/snapshot builds when absent, D3); the '--reload' flag
@@ -23398,7 +23772,7 @@ async function runPromptManager(args, ctx, onNote) {
23398
23772
  */
23399
23773
  async function runSkillShelf(args, reload, ctx, onNote) {
23400
23774
  if (args !== "") {
23401
- const usage = "usage: /dsi-skill-shelf [--reload]";
23775
+ const usage = "usage: /dsi-skills [--reload]";
23402
23776
  onNote?.(false, usage);
23403
23777
  return {
23404
23778
  ok: false,
@@ -23406,7 +23780,7 @@ async function runSkillShelf(args, reload, ctx, onNote) {
23406
23780
  };
23407
23781
  }
23408
23782
  if (ctx.panelId == null) {
23409
- const note = "/dsi-skill-shelf needs a panel floor (open this session on the floor first)";
23783
+ const note = "/dsi-skills needs a panel floor (open this session on the floor first)";
23410
23784
  onNote?.(false, note);
23411
23785
  return {
23412
23786
  ok: false,
@@ -23416,7 +23790,7 @@ async function runSkillShelf(args, reload, ctx, onNote) {
23416
23790
  if (reload) try {
23417
23791
  const res = await fetch("/api/skills/reload", { method: "POST" });
23418
23792
  if (!res.ok) {
23419
- const note = "/dsi-skill-shelf: snapshot rebuild failed (" + res.status + ")";
23793
+ const note = "/dsi-skills: snapshot rebuild failed (" + res.status + ")";
23420
23794
  onNote?.(false, note);
23421
23795
  return {
23422
23796
  ok: false,
@@ -23424,7 +23798,7 @@ async function runSkillShelf(args, reload, ctx, onNote) {
23424
23798
  };
23425
23799
  }
23426
23800
  } catch {
23427
- const note = "/dsi-skill-shelf: snapshot rebuild failed (network)";
23801
+ const note = "/dsi-skills: snapshot rebuild failed (network)";
23428
23802
  onNote?.(false, note);
23429
23803
  return {
23430
23804
  ok: false,
@@ -23434,7 +23808,7 @@ async function runSkillShelf(args, reload, ctx, onNote) {
23434
23808
  if (!addPanel({
23435
23809
  afterSessionId: ctx.sessionId
23436
23810
  })) {
23437
- const note = "/dsi-skill-shelf: the floor is not mounted";
23811
+ const note = "/dsi-skills: the floor is not mounted";
23438
23812
  onNote?.(false, note);
23439
23813
  return {
23440
23814
  ok: false,
@@ -23444,7 +23818,7 @@ async function runSkillShelf(args, reload, ctx, onNote) {
23444
23818
  return { ok: true };
23445
23819
  }
23446
23820
  /**
23447
- * /dsisettings and /dshsettings (re-pointed by The Settings Tree ADR,
23821
+ * /dsi-settings and /dsh-settings (re-pointed by The Settings Tree ADR,
23448
23822
  * 2026-09-18, D2; aimed 2026-09-17, The Focus Command ADR D1): open a
23449
23823
  * SESSION-LESS workspace-explorer over the settings HOME folder (~/.dsi |
23450
23824
  * ~/.dsh), titled — one runner for both commands; the command name carries
@@ -25419,6 +25793,49 @@ function ConversationPanel($$renderer, $$props) {
25419
25793
  });
25420
25794
  }
25421
25795
  //#endregion
25796
+ //#region src/lib/components/terminal/frame-state.ts
25797
+ var initialTerminalPanelState = {
25798
+ lastSettle: null,
25799
+ closed: false,
25800
+ quiescent: null,
25801
+ errored: false
25802
+ };
25803
+ //#endregion
25804
+ //#region src/lib/components/terminal/TerminalPanel.svelte
25805
+ function TerminalPanel($$renderer, $$props) {
25806
+ $$renderer.component(($$renderer) => {
25807
+ let panelState = { ...initialTerminalPanelState };
25808
+ Promise.resolve();
25809
+ function settleText(reason) {
25810
+ if (reason === "stdin_read") return t(terminalsettlestdinread3);
25811
+ if (reason === "inferred_idle") return t(terminalsettleinferredidle3);
25812
+ if (reason === "timeout") return t(terminalsettletimeout2);
25813
+ if (reason === "session_exit") return t(terminalsettlesessionexit3);
25814
+ return "";
25815
+ }
25816
+ $$renderer.push(`<div data-svelte="TerminalPanel" class="terminal-panel flex h-full min-h-80 flex-col rounded-lg bg-slate-900 p-1" data-testid="terminal-panel"><div class="mb-1 flex items-center gap-2 px-1 text-[10px] text-slate-400"><span class="font-medium text-slate-300">${escape_html(t(terminalpaneltitle2))}</span> `);
25817
+ if (panelState.lastSettle) {
25818
+ $$renderer.push("<!--[0-->");
25819
+ $$renderer.push(`<span data-testid="terminal-settle-badge" class="rounded bg-slate-700 px-1.5 py-0.5">${escape_html(settleText(panelState.lastSettle))}</span>`);
25820
+ } else $$renderer.push("<!--[-1-->");
25821
+ $$renderer.push(`<!--]--> <div class="grow"></div> `);
25822
+ $$renderer.push("<!--[-1-->");
25823
+ $$renderer.push(`<!--]--></div> `);
25824
+ $$renderer.push("<!--[-1-->");
25825
+ $$renderer.push(`<div class="relative min-h-72 grow overflow-hidden" data-testid="terminal-host" role="presentation"><div class="absolute inset-0"></div></div> `);
25826
+ $$renderer.push("<!--[-1-->");
25827
+ $$renderer.push(`<!--]--> `);
25828
+ $$renderer.push("<!--[-1-->");
25829
+ $$renderer.push(`<!--]-->`);
25830
+ $$renderer.push(`<!--]--> `);
25831
+ if (panelState.closed) {
25832
+ $$renderer.push("<!--[0-->");
25833
+ $$renderer.push(`<div class="px-2 pb-1 text-[10px] text-slate-500" data-testid="terminal-closed">${escape_html(t(terminalclosed1))}${escape_html(panelState.quiescent === false ? " (lingering)" : "")}</div>`);
25834
+ } else $$renderer.push("<!--[-1-->");
25835
+ $$renderer.push(`<!--]--></div>`);
25836
+ });
25837
+ }
25838
+ //#endregion
25422
25839
  //#region src/lib/components/settings-skills/SettingsSkillsToolbar.svelte
25423
25840
  function SettingsSkillsToolbar($$renderer, $$props) {
25424
25841
  $$renderer.component(($$renderer) => {
@@ -28322,8 +28739,13 @@ function _page($$renderer, $$props) {
28322
28739
  onToggleCollapse: toggleSidebar});
28323
28740
  }
28324
28741
  function panelBody($$renderer, panel, floorPanelId, hostClose) {
28325
- if (panel.kind === "prompt-manager") {
28742
+ if (panel.kind === "terminal") {
28326
28743
  $$renderer.push("<!--[0-->");
28744
+ $$renderer.push(`<div class="panel-manager-body svelte-1uha8ag" data-testid="panel-terminal">`);
28745
+ TerminalPanel($$renderer);
28746
+ $$renderer.push(`<!----></div>`);
28747
+ } else if (panel.kind === "prompt-manager") {
28748
+ $$renderer.push("<!--[1-->");
28327
28749
  $$renderer.push(`<div class="panel-manager-body svelte-1uha8ag" data-testid="panel-manager">`);
28328
28750
  PromptManagerPanel($$renderer, {
28329
28751
  onclose: hostClose ?? (() => removePanel(panel.id)),
@@ -28332,7 +28754,7 @@ function _page($$renderer, $$props) {
28332
28754
  });
28333
28755
  $$renderer.push(`<!----></div>`);
28334
28756
  } else if (panel.kind === "skill-shelf") {
28335
- $$renderer.push("<!--[1-->");
28757
+ $$renderer.push("<!--[2-->");
28336
28758
  $$renderer.push(`<div class="panel-manager-body svelte-1uha8ag" data-testid="panel-skills">`);
28337
28759
  SettingsSkillsPanel($$renderer, {
28338
28760
  initialTab: panel.tab ?? "install",
@@ -28341,13 +28763,13 @@ function _page($$renderer, $$props) {
28341
28763
  initialReload: panel.reload ?? null});
28342
28764
  $$renderer.push(`<!----></div>`);
28343
28765
  } else if (panel.kind === "settings-editor") {
28344
- $$renderer.push("<!--[2-->");
28766
+ $$renderer.push("<!--[3-->");
28345
28767
  $$renderer.push(`<div class="panel-manager-body svelte-1uha8ag" data-testid="panel-settings">`);
28346
28768
  SettingsEditorPanel($$renderer, {
28347
28769
  target: panel.target});
28348
28770
  $$renderer.push(`<!----></div>`);
28349
28771
  } else if (panel.kind === "injected-doc") {
28350
- $$renderer.push("<!--[3-->");
28772
+ $$renderer.push("<!--[4-->");
28351
28773
  $$renderer.push(`<div class="panel-manager-body svelte-1uha8ag">`);
28352
28774
  InjectedDocPanel($$renderer, {
28353
28775
  sourceSessionId: panel.sourceSessionId,
@@ -28355,7 +28777,7 @@ function _page($$renderer, $$props) {
28355
28777
  entries: coldCache[panel.sourceSessionId]?.entries ?? []});
28356
28778
  $$renderer.push(`<!----></div>`);
28357
28779
  } else if (panel.kind === "workspace-explorer") {
28358
- $$renderer.push("<!--[4-->");
28780
+ $$renderer.push("<!--[5-->");
28359
28781
  WorkspaceExplorerPanel($$renderer, {
28360
28782
  sessionId: panel.sessionId,
28361
28783
  root: panel.root,
@@ -28386,7 +28808,7 @@ function _page($$renderer, $$props) {
28386
28808
  onActivateTab: (path) => activateExplorerTab(panel.id, path)
28387
28809
  });
28388
28810
  } else if (panel.kind === "workspace-file") {
28389
- $$renderer.push("<!--[5-->");
28811
+ $$renderer.push("<!--[6-->");
28390
28812
  WorkspaceFilePanel($$renderer, {
28391
28813
  sessionId: panel.sessionId,
28392
28814
  path: panel.path,
@@ -28396,7 +28818,7 @@ function _page($$renderer, $$props) {
28396
28818
  onclose: () => removePanel(panel.id)
28397
28819
  });
28398
28820
  } else if (panel.kind === "conversation") {
28399
- $$renderer.push("<!--[6-->");
28821
+ $$renderer.push("<!--[7-->");
28400
28822
  const p = panel;
28401
28823
  $$renderer.push(`<!---->`);
28402
28824
  if (deadSessions[p.sessionId]) {
@@ -28556,4 +28978,4 @@ function _page($$renderer, $$props) {
28556
28978
  }
28557
28979
 
28558
28980
  export { _page as default };
28559
- //# sourceMappingURL=_page.svelte.js-B2EA5ccE.js.map
28981
+ //# sourceMappingURL=_page.svelte.js-DOcEfh5K.js.map