@deepseek-insight/dsi 0.5.29 → 0.5.31

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 (91) hide show
  1. package/README.md +10 -5
  2. package/build/client/_app/immutable/assets/0.CeQisprJ.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/{D4yILG4p.js → 2on6iyc3.js} +1 -1
  5. package/build/client/_app/immutable/chunks/3oS6cDzS.js +1 -0
  6. package/build/client/_app/immutable/chunks/BG5jnpAS.js +1 -0
  7. package/build/client/_app/immutable/chunks/C3BHN0de.js +16 -0
  8. package/build/client/_app/immutable/chunks/{Ch00tocz.js → CgNCitGK.js} +2 -2
  9. package/build/client/_app/immutable/chunks/DIOBYJe3.js +1 -0
  10. package/build/client/_app/immutable/entry/{app.CxAgK_V4.js → app.CQmyDBAG.js} +2 -2
  11. package/build/client/_app/immutable/entry/start.CX9hkEBk.js +1 -0
  12. package/build/client/_app/immutable/nodes/{1.DJ0wIUro.js → 1.BZc7zU_C.js} +1 -1
  13. package/build/client/_app/immutable/nodes/2.Bl8zOReA.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-BtKbXGxV.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-DO4TvfeY.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_/reattach/_server.ts.js-wSsMKLiw.js +34 -0
  64. package/build/server/chunks/entries/endpoints/api/terminal/_id_/send/_server.ts.js-CTc5xP72.js +60 -0
  65. package/build/server/chunks/entries/endpoints/api/terminal/_id_/stream/_server.ts.js-C8PLMU0Y.js +116 -0
  66. package/build/server/chunks/entries/endpoints/api/terminal/_server.ts.js-CmM-ksLQ.js +73 -0
  67. package/build/server/chunks/entries/endpoints/api/workspace/file-write/{_server.ts.js-COt-HtL0.js → _server.ts.js-1pMekv7y.js} +6 -6
  68. package/build/server/chunks/entries/endpoints/api/workspace/git-events/{_server.ts.js-k7bgOO_c.js → _server.ts.js-Cwebkv8Y.js} +6 -6
  69. package/build/server/chunks/entries/endpoints/api/workspace/git-file-head/{_server.ts.js-H1HUbRif.js → _server.ts.js-4JF7UGE-.js} +6 -6
  70. package/build/server/chunks/entries/endpoints/api/workspace/git-map/{_server.ts.js-D7nqciP7.js → _server.ts.js-B5i8ziTR.js} +6 -6
  71. package/build/server/chunks/entries/endpoints/api/workspace/git-status/{_server.ts.js-D0HYWO9M.js → _server.ts.js-zYBj_jzG.js} +6 -6
  72. package/build/server/chunks/entries/endpoints/api/workspace/write-gate/{_server.ts.js-Boi1Sn8U.js → _server.ts.js-BbgR18Zo.js} +6 -6
  73. package/build/server/chunks/entries/{hooks.server.js-Bt6VP5fg.js → hooks.server.js-BSnc9oHw.js} +3 -3
  74. package/build/server/chunks/entries/pages/{_error.svelte.js-Bee5xNts.js → _error.svelte.js-BppCLlQz.js} +4 -4
  75. package/build/server/chunks/entries/pages/{_page.server.ts.js-DdzOMHcO.js → _page.server.ts.js-CNmIVlOY.js} +2 -2
  76. package/build/server/chunks/entries/pages/{_page.svelte.js-B2EA5ccE.js → _page.svelte.js-B26jgDy0.js} +443 -52
  77. package/build/server/chunks/{handler-BVZR5A-R.js → handler-H035jucs.js} +3 -3
  78. package/build/server/chunks/{index.js-Nwzp6b_k.js → index.js-BwOnKfpd.js} +2 -2
  79. package/build/server/chunks/{manifest.js-Bof9naPY.js → manifest.js-DSGtd5rA.js} +79 -44
  80. package/build/server/chunks/nodes/{0.js-iA5BIbe7.js → 0.js--kZVi_Mf.js} +3 -3
  81. package/build/server/chunks/nodes/1.js-CyCPH90h.js +9 -0
  82. package/build/server/chunks/nodes/{2.js-QPzVOzfX.js → 2.js-Bws89uBE.js} +9 -9
  83. package/package.json +4 -1
  84. package/template/.dsi/resources/skills-reff.md +1 -1
  85. package/build/client/_app/immutable/assets/0.BbBUj8Gs.css +0 -2
  86. package/build/client/_app/immutable/chunks/Zxb_bQ44.js +0 -1
  87. package/build/client/_app/immutable/chunks/muEkqSbS.js +0 -1
  88. package/build/client/_app/immutable/entry/start.CImCAUy1.js +0 -1
  89. package/build/client/_app/immutable/nodes/2.8eo5qS19.js +0 -171
  90. package/build/server/chunks/nodes/1.js-CxOuNsR_.js +0 -9
  91. /package/build/client/_app/immutable/nodes/{0.B3l2ZewD.js → 0.CioJu6OT.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-BtKbXGxV.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-DO4TvfeY.js';
11
11
  import 'yaml';
12
12
  import 'html-to-image';
13
13
  import hljs from 'highlight.js/lib/core';
@@ -10742,6 +10742,262 @@ var tags = ((inputs = {}, options = {}) => {
10742
10742
  return en_tags();
10743
10743
  });
10744
10744
  //#endregion
10745
+ //#region src/lib/paraglide/messages/terminalclosed1.js
10746
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
10747
+ /** @typedef {{}} Terminalclosed1Inputs */
10748
+ var en_terminalclosed1 = () => {
10749
+ return `Terminal closed`;
10750
+ };
10751
+ var zh_terminalclosed1 = () => {
10752
+ return `终端已关闭`;
10753
+ };
10754
+ var id_terminalclosed1 = () => {
10755
+ return `Terminal ditutup`;
10756
+ };
10757
+ var es_terminalclosed1 = () => {
10758
+ return `Terminal cerrada`;
10759
+ };
10760
+ /**
10761
+ * | output |
10762
+ * | --- |
10763
+ * | "Terminal closed" |
10764
+ *
10765
+ * @param {Terminalclosed1Inputs} inputs
10766
+ * @param {{ locale?: "en" | "zh" | "id" | "es" }} options
10767
+ * @returns {LocalizedString}
10768
+ */
10769
+ var terminalclosed1 = ((inputs = {}, options = {}) => {
10770
+ const locale = options.locale ?? getLocale();
10771
+ if (locale === "zh") return zh_terminalclosed1();
10772
+ if (locale === "id") return id_terminalclosed1();
10773
+ if (locale === "es") return es_terminalclosed1();
10774
+ return en_terminalclosed1();
10775
+ });
10776
+ //#endregion
10777
+ //#region src/lib/paraglide/messages/terminaldisabled1.js
10778
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
10779
+ /** @typedef {{}} Terminaldisabled1Inputs */
10780
+ var en_terminaldisabled1 = () => {
10781
+ return `Terminal is disabled — enable it in settings (terminal.enabled).`;
10782
+ };
10783
+ var zh_terminaldisabled1 = () => {
10784
+ return `终端已禁用 — 请在设置中启用(terminal.enabled)。`;
10785
+ };
10786
+ var id_terminaldisabled1 = () => {
10787
+ return `Terminal dinonaktifkan — aktifkan di pengaturan (terminal.enabled).`;
10788
+ };
10789
+ var es_terminaldisabled1 = () => {
10790
+ return `Terminal deshabilitado — actívalo en ajustes (terminal.enabled).`;
10791
+ };
10792
+ /**
10793
+ * | output |
10794
+ * | --- |
10795
+ * | "Terminal is disabled — enable it in settings (terminal.enabled)." |
10796
+ *
10797
+ * @param {Terminaldisabled1Inputs} inputs
10798
+ * @param {{ locale?: "en" | "zh" | "id" | "es" }} options
10799
+ * @returns {LocalizedString}
10800
+ */
10801
+ var terminaldisabled1 = ((inputs = {}, options = {}) => {
10802
+ const locale = options.locale ?? getLocale();
10803
+ if (locale === "zh") return zh_terminaldisabled1();
10804
+ if (locale === "id") return id_terminaldisabled1();
10805
+ if (locale === "es") return es_terminaldisabled1();
10806
+ return en_terminaldisabled1();
10807
+ });
10808
+ //#endregion
10809
+ //#region src/lib/paraglide/messages/terminalopening1.js
10810
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
10811
+ /** @typedef {{}} Terminalopening1Inputs */
10812
+ var en_terminalopening1 = () => {
10813
+ return `Opening terminal…`;
10814
+ };
10815
+ var zh_terminalopening1 = () => {
10816
+ return `正在打开终端…`;
10817
+ };
10818
+ var id_terminalopening1 = () => {
10819
+ return `Membuka terminal…`;
10820
+ };
10821
+ var es_terminalopening1 = () => {
10822
+ return `Abriendo terminal…`;
10823
+ };
10824
+ /**
10825
+ * | output |
10826
+ * | --- |
10827
+ * | "Opening terminal…" |
10828
+ *
10829
+ * @param {Terminalopening1Inputs} inputs
10830
+ * @param {{ locale?: "en" | "zh" | "id" | "es" }} options
10831
+ * @returns {LocalizedString}
10832
+ */
10833
+ var terminalopening1 = ((inputs = {}, options = {}) => {
10834
+ const locale = options.locale ?? getLocale();
10835
+ if (locale === "zh") return zh_terminalopening1();
10836
+ if (locale === "id") return id_terminalopening1();
10837
+ if (locale === "es") return es_terminalopening1();
10838
+ return en_terminalopening1();
10839
+ });
10840
+ //#endregion
10841
+ //#region src/lib/paraglide/messages/terminalpaneltitle2.js
10842
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
10843
+ /** @typedef {{}} Terminalpaneltitle2Inputs */
10844
+ var en_terminalpaneltitle2 = () => {
10845
+ return `Terminal`;
10846
+ };
10847
+ var zh_terminalpaneltitle2 = () => {
10848
+ return `终端`;
10849
+ };
10850
+ var id_terminalpaneltitle2 = () => {
10851
+ return `Terminal`;
10852
+ };
10853
+ var es_terminalpaneltitle2 = () => {
10854
+ return `Terminal`;
10855
+ };
10856
+ /**
10857
+ * | output |
10858
+ * | --- |
10859
+ * | "Terminal" |
10860
+ *
10861
+ * @param {Terminalpaneltitle2Inputs} inputs
10862
+ * @param {{ locale?: "en" | "zh" | "id" | "es" }} options
10863
+ * @returns {LocalizedString}
10864
+ */
10865
+ var terminalpaneltitle2 = ((inputs = {}, options = {}) => {
10866
+ const locale = options.locale ?? getLocale();
10867
+ if (locale === "zh") return zh_terminalpaneltitle2();
10868
+ if (locale === "id") return id_terminalpaneltitle2();
10869
+ if (locale === "es") return es_terminalpaneltitle2();
10870
+ return en_terminalpaneltitle2();
10871
+ });
10872
+ //#endregion
10873
+ //#region src/lib/paraglide/messages/terminalsettleinferredidle3.js
10874
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
10875
+ /** @typedef {{}} Terminalsettleinferredidle3Inputs */
10876
+ var en_terminalsettleinferredidle3 = () => {
10877
+ return `output idle`;
10878
+ };
10879
+ var zh_terminalsettleinferredidle3 = () => {
10880
+ return `输出空闲`;
10881
+ };
10882
+ var id_terminalsettleinferredidle3 = () => {
10883
+ return `keluaran senggang`;
10884
+ };
10885
+ var es_terminalsettleinferredidle3 = () => {
10886
+ return `salida inactiva`;
10887
+ };
10888
+ /**
10889
+ * | output |
10890
+ * | --- |
10891
+ * | "output idle" |
10892
+ *
10893
+ * @param {Terminalsettleinferredidle3Inputs} inputs
10894
+ * @param {{ locale?: "en" | "zh" | "id" | "es" }} options
10895
+ * @returns {LocalizedString}
10896
+ */
10897
+ var terminalsettleinferredidle3 = ((inputs = {}, options = {}) => {
10898
+ const locale = options.locale ?? getLocale();
10899
+ if (locale === "zh") return zh_terminalsettleinferredidle3();
10900
+ if (locale === "id") return id_terminalsettleinferredidle3();
10901
+ if (locale === "es") return es_terminalsettleinferredidle3();
10902
+ return en_terminalsettleinferredidle3();
10903
+ });
10904
+ //#endregion
10905
+ //#region src/lib/paraglide/messages/terminalsettlesessionexit3.js
10906
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
10907
+ /** @typedef {{}} Terminalsettlesessionexit3Inputs */
10908
+ var en_terminalsettlesessionexit3 = () => {
10909
+ return `shell exited`;
10910
+ };
10911
+ var zh_terminalsettlesessionexit3 = () => {
10912
+ return `shell 已退出`;
10913
+ };
10914
+ var id_terminalsettlesessionexit3 = () => {
10915
+ return `shell keluar`;
10916
+ };
10917
+ var es_terminalsettlesessionexit3 = () => {
10918
+ return `shell terminada`;
10919
+ };
10920
+ /**
10921
+ * | output |
10922
+ * | --- |
10923
+ * | "shell exited" |
10924
+ *
10925
+ * @param {Terminalsettlesessionexit3Inputs} inputs
10926
+ * @param {{ locale?: "en" | "zh" | "id" | "es" }} options
10927
+ * @returns {LocalizedString}
10928
+ */
10929
+ var terminalsettlesessionexit3 = ((inputs = {}, options = {}) => {
10930
+ const locale = options.locale ?? getLocale();
10931
+ if (locale === "zh") return zh_terminalsettlesessionexit3();
10932
+ if (locale === "id") return id_terminalsettlesessionexit3();
10933
+ if (locale === "es") return es_terminalsettlesessionexit3();
10934
+ return en_terminalsettlesessionexit3();
10935
+ });
10936
+ //#endregion
10937
+ //#region src/lib/paraglide/messages/terminalsettlestdinread3.js
10938
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
10939
+ /** @typedef {{}} Terminalsettlestdinread3Inputs */
10940
+ var en_terminalsettlestdinread3 = () => {
10941
+ return `waiting for input`;
10942
+ };
10943
+ var zh_terminalsettlestdinread3 = () => {
10944
+ return `等待输入`;
10945
+ };
10946
+ var id_terminalsettlestdinread3 = () => {
10947
+ return `menunggu masukan`;
10948
+ };
10949
+ var es_terminalsettlestdinread3 = () => {
10950
+ return `esperando entrada`;
10951
+ };
10952
+ /**
10953
+ * | output |
10954
+ * | --- |
10955
+ * | "waiting for input" |
10956
+ *
10957
+ * @param {Terminalsettlestdinread3Inputs} inputs
10958
+ * @param {{ locale?: "en" | "zh" | "id" | "es" }} options
10959
+ * @returns {LocalizedString}
10960
+ */
10961
+ var terminalsettlestdinread3 = ((inputs = {}, options = {}) => {
10962
+ const locale = options.locale ?? getLocale();
10963
+ if (locale === "zh") return zh_terminalsettlestdinread3();
10964
+ if (locale === "id") return id_terminalsettlestdinread3();
10965
+ if (locale === "es") return es_terminalsettlestdinread3();
10966
+ return en_terminalsettlestdinread3();
10967
+ });
10968
+ //#endregion
10969
+ //#region src/lib/paraglide/messages/terminalsettletimeout2.js
10970
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
10971
+ /** @typedef {{}} Terminalsettletimeout2Inputs */
10972
+ var en_terminalsettletimeout2 = () => {
10973
+ return `timed out`;
10974
+ };
10975
+ var zh_terminalsettletimeout2 = () => {
10976
+ return `已超时`;
10977
+ };
10978
+ var id_terminalsettletimeout2 = () => {
10979
+ return `habis waktu`;
10980
+ };
10981
+ var es_terminalsettletimeout2 = () => {
10982
+ return `tiempo agotado`;
10983
+ };
10984
+ /**
10985
+ * | output |
10986
+ * | --- |
10987
+ * | "timed out" |
10988
+ *
10989
+ * @param {Terminalsettletimeout2Inputs} inputs
10990
+ * @param {{ locale?: "en" | "zh" | "id" | "es" }} options
10991
+ * @returns {LocalizedString}
10992
+ */
10993
+ var terminalsettletimeout2 = ((inputs = {}, options = {}) => {
10994
+ const locale = options.locale ?? getLocale();
10995
+ if (locale === "zh") return zh_terminalsettletimeout2();
10996
+ if (locale === "id") return id_terminalsettletimeout2();
10997
+ if (locale === "es") return es_terminalsettletimeout2();
10998
+ return en_terminalsettletimeout2();
10999
+ });
11000
+ //#endregion
10745
11001
  //#region src/lib/paraglide/messages/text.js
10746
11002
  /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
10747
11003
  /** @typedef {{}} TextInputs */
@@ -12299,6 +12555,14 @@ var _index_exports = /* @__PURE__ */ __exportAll({
12299
12555
  syncComposer: () => synccomposer1,
12300
12556
  systemPrompt: () => systemprompt1,
12301
12557
  tags: () => tags,
12558
+ terminalClosed: () => terminalclosed1,
12559
+ terminalDisabled: () => terminaldisabled1,
12560
+ terminalOpening: () => terminalopening1,
12561
+ terminalPanelTitle: () => terminalpaneltitle2,
12562
+ terminalSettleInferredIdle: () => terminalsettleinferredidle3,
12563
+ terminalSettleSessionExit: () => terminalsettlesessionexit3,
12564
+ terminalSettleStdinRead: () => terminalsettlestdinread3,
12565
+ terminalSettleTimeout: () => terminalsettletimeout2,
12302
12566
  text: () => text,
12303
12567
  thinkLabel: () => thinklabel1,
12304
12568
  thinkingLabel: () => thinkinglabel1,
@@ -12682,6 +12946,14 @@ var messages_exports = /* @__PURE__ */ __exportAll({
12682
12946
  syncComposer: () => synccomposer1,
12683
12947
  systemPrompt: () => systemprompt1,
12684
12948
  tags: () => tags,
12949
+ terminalClosed: () => terminalclosed1,
12950
+ terminalDisabled: () => terminaldisabled1,
12951
+ terminalOpening: () => terminalopening1,
12952
+ terminalPanelTitle: () => terminalpaneltitle2,
12953
+ terminalSettleInferredIdle: () => terminalsettleinferredidle3,
12954
+ terminalSettleSessionExit: () => terminalsettlesessionexit3,
12955
+ terminalSettleStdinRead: () => terminalsettlestdinread3,
12956
+ terminalSettleTimeout: () => terminalsettletimeout2,
12685
12957
  text: () => text,
12686
12958
  thinkLabel: () => thinklabel1,
12687
12959
  thinkingLabel: () => thinkinglabel1,
@@ -17451,6 +17723,7 @@ function workspaceFileTitle(path) {
17451
17723
  * @returns the variant title, or undefined for a conversation header.
17452
17724
  */
17453
17725
  function panelHeaderLabel(panel) {
17726
+ if (panel.kind === "terminal") return "Terminal";
17454
17727
  if (panel.kind === "prompt-manager") return MANAGER_ROW_TITLE;
17455
17728
  if (panel.kind === "skill-shelf") return "Skill Shelf";
17456
17729
  if (panel.kind === "settings-editor") return SETTINGS_ROW_TITLE[panel.target];
@@ -17478,9 +17751,9 @@ function panelRowsFor(input) {
17478
17751
  const { panels, spineRows, coldCache, deadSessions, edgeCache, lineageFacts, moveFacts } = input;
17479
17752
  const openSessionIds = openSessionIdsOf(panels);
17480
17753
  return panels.map((p, index) => {
17481
- if (p.kind === "prompt-manager" || p.kind === "settings-editor" || p.kind === "skill-shelf") return {
17754
+ if (p.kind === "terminal" || p.kind === "prompt-manager" || p.kind === "settings-editor" || p.kind === "skill-shelf") return {
17482
17755
  panel: p,
17483
- title: p.kind === "prompt-manager" ? MANAGER_ROW_TITLE : p.kind === "skill-shelf" ? "Skill Shelf" : SETTINGS_ROW_TITLE[p.target],
17756
+ title: p.kind === "terminal" ? "Terminal" : p.kind === "prompt-manager" ? MANAGER_ROW_TITLE : p.kind === "skill-shelf" ? "Skill Shelf" : SETTINGS_ROW_TITLE[p.target],
17484
17757
  workspace: null,
17485
17758
  dead: false,
17486
17759
  running: false,
@@ -17680,13 +17953,19 @@ function parseCommand(text) {
17680
17953
  args
17681
17954
  };
17682
17955
  }
17683
- case "/promptmanager":
17684
- case "/dsisettings":
17685
- case "/dshsettings": return {
17686
- type: token.slice(1),
17956
+ case "/dsi-prompts":
17957
+ case "/dsi-terminal":
17958
+ case "/dsi-settings":
17959
+ case "/dsh-settings": return {
17960
+ type: {
17961
+ "/dsi-prompts": "promptmanager",
17962
+ "/dsi-terminal": "terminal",
17963
+ "/dsi-settings": "dsisettings",
17964
+ "/dsh-settings": "dshsettings"
17965
+ }[token],
17687
17966
  args
17688
17967
  };
17689
- case "/dsi-skill-shelf":
17968
+ case "/dsi-skills":
17690
17969
  if (args === "") return {
17691
17970
  type: "skillshelf",
17692
17971
  args
@@ -17813,26 +18092,35 @@ var COMMAND_HELP = {
17813
18092
  }
17814
18093
  ]
17815
18094
  },
18095
+ terminal: {
18096
+ usage: "/dsi-terminal",
18097
+ 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.",
18098
+ params: [],
18099
+ examples: [{
18100
+ line: "/dsi-terminal",
18101
+ description: "The terminal panel comes forward — beside this conversation if it was closed."
18102
+ }]
18103
+ },
17816
18104
  promptmanager: {
17817
- usage: "/promptmanager",
18105
+ usage: "/dsi-prompts",
17818
18106
  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
18107
  params: [],
17820
18108
  examples: [{
17821
- line: "/promptmanager",
18109
+ line: "/dsi-prompts",
17822
18110
  description: "The prompts manager panel comes forward — opened beside this conversation if it was closed."
17823
18111
  }]
17824
18112
  },
17825
18113
  dsisettings: {
17826
- usage: "/dsisettings",
18114
+ usage: "/dsi-settings",
17827
18115
  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
18116
  params: [],
17829
18117
  examples: [{
17830
- line: "/dsisettings",
18118
+ line: "/dsi-settings",
17831
18119
  description: "The DSI settings explorer comes forward — opened beside this conversation if it was closed."
17832
18120
  }]
17833
18121
  },
17834
18122
  skillshelf: {
17835
- usage: "/dsi-skill-shelf [--reload]",
18123
+ usage: "/dsi-skills [--reload]",
17836
18124
  get summary() {
17837
18125
  return t(commandhelpskillshelfsummary3);
17838
18126
  },
@@ -17844,19 +18132,19 @@ var COMMAND_HELP = {
17844
18132
  }],
17845
18133
  examples: [
17846
18134
  {
17847
- line: "/dsi-skill-shelf",
18135
+ line: "/dsi-skills",
17848
18136
  get description() {
17849
18137
  return t(commandhelpskillshelfexamplebare4);
17850
18138
  }
17851
18139
  },
17852
18140
  {
17853
- line: "/dsi-skill-shelf --reload",
18141
+ line: "/dsi-skills --reload",
17854
18142
  get description() {
17855
18143
  return t(commandhelpskillshelfexamplereload4);
17856
18144
  }
17857
18145
  },
17858
18146
  {
17859
- line: "/dsi-skill-shelf ?",
18147
+ line: "/dsi-skills ?",
17860
18148
  get description() {
17861
18149
  return t(commandhelpskillshelfexamplehelp4);
17862
18150
  }
@@ -17864,11 +18152,11 @@ var COMMAND_HELP = {
17864
18152
  ]
17865
18153
  },
17866
18154
  dshsettings: {
17867
- usage: "/dshsettings",
18155
+ usage: "/dsh-settings",
17868
18156
  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
18157
  params: [],
17870
18158
  examples: [{
17871
- line: "/dshsettings",
18159
+ line: "/dsh-settings",
17872
18160
  description: "The DSH settings explorer comes forward — opened beside this conversation if it was closed."
17873
18161
  }]
17874
18162
  },
@@ -17928,26 +18216,32 @@ var MENU_GESTURES = [
17928
18216
  },
17929
18217
  {
17930
18218
  name: "promptmanager",
17931
- display: "/promptmanager",
17932
- seed: "/promptmanager ",
18219
+ display: "/dsi-prompts",
18220
+ seed: "/dsi-prompts ",
17933
18221
  description: COMMAND_HELP.promptmanager.summary
17934
18222
  },
17935
18223
  {
17936
18224
  name: "dsisettings",
17937
- display: "/dsisettings",
17938
- seed: "/dsisettings ",
18225
+ display: "/dsi-settings",
18226
+ seed: "/dsi-settings ",
17939
18227
  description: COMMAND_HELP.dsisettings.summary
17940
18228
  },
17941
18229
  {
17942
18230
  name: "dshsettings",
17943
- display: "/dshsettings",
17944
- seed: "/dshsettings ",
18231
+ display: "/dsh-settings",
18232
+ seed: "/dsh-settings ",
17945
18233
  description: COMMAND_HELP.dshsettings.summary
17946
18234
  },
18235
+ {
18236
+ name: "terminal",
18237
+ display: "/dsi-terminal",
18238
+ seed: "/dsi-terminal ",
18239
+ description: COMMAND_HELP.terminal.summary
18240
+ },
17947
18241
  {
17948
18242
  name: "skillshelf",
17949
- display: "/dsi-skill-shelf",
17950
- seed: "/dsi-skill-shelf ",
18243
+ display: "/dsi-skills",
18244
+ seed: "/dsi-skills ",
17951
18245
  get description() {
17952
18246
  return t(commandhelpskillshelfsummary3);
17953
18247
  }
@@ -19947,7 +20241,7 @@ function ContextSnapshotBody($$renderer, $$props) {
19947
20241
  const sections = derived(() => snapshotSectionsOf(metaSource));
19948
20242
  if (sections()) {
19949
20243
  $$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"><!--[-->`);
20244
+ $$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
20245
  const each_array = ensure_array_like(sections());
19952
20246
  for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
19953
20247
  let section = each_array[$$index];
@@ -23236,8 +23530,9 @@ async function executeCommand(command, ctx, onNote) {
23236
23530
  if (command.type === "workspace") return runWorkspaceLine(command.wsPath, command.wsName, ctx, onNote);
23237
23531
  if (command.type === "mention") return runMention(command.sessionId ?? "", command.args, command.a2aId, ctx, onNote);
23238
23532
  if (command.type === "promptmanager") return runPromptManager(command.args, ctx, onNote);
23533
+ if (command.type === "terminal") return runTerminal(command.args, ctx, onNote);
23239
23534
  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);
23535
+ 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
23536
  if (command.type === "loadinjected") return runLoadInjected(command.filename, command.addPanel === true, ctx, onNote);
23242
23537
  if (command.args !== "") {
23243
23538
  const usage = "usage: /new [@agent] [workspace] [--add]";
@@ -23352,16 +23647,61 @@ async function executeCommand(command, ctx, onNote) {
23352
23647
  }
23353
23648
  }
23354
23649
  /**
23355
- * /promptmanager (re-pointed 2026-09-17, ADR The Focus Command D1/D2): AIM
23650
+ * /dsi-prompts (re-pointed 2026-09-17, ADR The Focus Command D1/D2): AIM
23356
23651
  * the prompts manager panel from the composer — the floor's add path
23357
23652
  * FOCUSES the already-open manager (one live manager, D3) or opens a NEW
23358
23653
  * one right of this session's panel, selected. The bare successor-swap and
23359
23654
  * the --add flag are retired; the floor never replaces a panel for this
23360
23655
  * command. No wire call — the manager content talks to /api/prompts itself.
23361
23656
  */
23657
+ /**
23658
+ * /dsi-terminal (Web Terminal spec Wave 5, 2026-09-24): aim the operator
23659
+ * terminal panel — the manager-request grammar. The enabled gate lives
23660
+ * HERE (the composer gives honest feedback even before a panel exists):
23661
+ * a disabled flag notes the fact and opens nothing.
23662
+ */
23663
+ async function runTerminal(args, ctx, onNote) {
23664
+ if (args !== "") {
23665
+ const usage = "usage: /dsi-terminal";
23666
+ onNote?.(false, usage);
23667
+ return {
23668
+ ok: false,
23669
+ note: usage
23670
+ };
23671
+ }
23672
+ if (ctx.panelId == null) {
23673
+ const note = "/dsi-terminal needs a panel floor (open this session on the floor first)";
23674
+ onNote?.(false, note);
23675
+ return {
23676
+ ok: false,
23677
+ note
23678
+ };
23679
+ }
23680
+ try {
23681
+ if (!(await (await fetch("/api/terminal")).json()).enabled) {
23682
+ const note = "/dsi-terminal is disabled — set terminal.enabled in settings";
23683
+ onNote?.(false, note);
23684
+ return {
23685
+ ok: false,
23686
+ note
23687
+ };
23688
+ }
23689
+ } catch {}
23690
+ if (!addPanelFromSidebar({
23691
+ afterSessionId: ctx.sessionId
23692
+ })) {
23693
+ const note = "/dsi-terminal: the floor is not mounted";
23694
+ onNote?.(false, note);
23695
+ return {
23696
+ ok: false,
23697
+ note
23698
+ };
23699
+ }
23700
+ return { ok: true };
23701
+ }
23362
23702
  async function runPromptManager(args, ctx, onNote) {
23363
23703
  if (args !== "") {
23364
- const usage = "usage: /promptmanager";
23704
+ const usage = "usage: /dsi-prompts";
23365
23705
  onNote?.(false, usage);
23366
23706
  return {
23367
23707
  ok: false,
@@ -23369,7 +23709,7 @@ async function runPromptManager(args, ctx, onNote) {
23369
23709
  };
23370
23710
  }
23371
23711
  if (ctx.panelId == null) {
23372
- const note = "/promptmanager needs a panel floor (open this session on the floor first)";
23712
+ const note = "/dsi-prompts needs a panel floor (open this session on the floor first)";
23373
23713
  onNote?.(false, note);
23374
23714
  return {
23375
23715
  ok: false,
@@ -23379,7 +23719,7 @@ async function runPromptManager(args, ctx, onNote) {
23379
23719
  if (!addPanelFromSidebar({
23380
23720
  afterSessionId: ctx.sessionId
23381
23721
  })) {
23382
- const note = "/promptmanager: the floor is not mounted";
23722
+ const note = "/dsi-prompts: the floor is not mounted";
23383
23723
  onNote?.(false, note);
23384
23724
  return {
23385
23725
  ok: false,
@@ -23389,7 +23729,7 @@ async function runPromptManager(args, ctx, onNote) {
23389
23729
  return { ok: true };
23390
23730
  }
23391
23731
  /**
23392
- * /dsi-skill-shelf (The Skill Shelf ADR, 2026-09-20, D1/D3): aim the
23732
+ * /dsi-skills (The Skill Shelf ADR, 2026-09-20, D1/D3): aim the
23393
23733
  * SettingsSkillsPanel — the floor dedupes and FOCUSES the open shelf
23394
23734
  * (the manager-request grammar). Snapshot-first is the ROUTE's contract
23395
23735
  * (GET /api/skills/snapshot builds when absent, D3); the '--reload' flag
@@ -23398,7 +23738,7 @@ async function runPromptManager(args, ctx, onNote) {
23398
23738
  */
23399
23739
  async function runSkillShelf(args, reload, ctx, onNote) {
23400
23740
  if (args !== "") {
23401
- const usage = "usage: /dsi-skill-shelf [--reload]";
23741
+ const usage = "usage: /dsi-skills [--reload]";
23402
23742
  onNote?.(false, usage);
23403
23743
  return {
23404
23744
  ok: false,
@@ -23406,7 +23746,7 @@ async function runSkillShelf(args, reload, ctx, onNote) {
23406
23746
  };
23407
23747
  }
23408
23748
  if (ctx.panelId == null) {
23409
- const note = "/dsi-skill-shelf needs a panel floor (open this session on the floor first)";
23749
+ const note = "/dsi-skills needs a panel floor (open this session on the floor first)";
23410
23750
  onNote?.(false, note);
23411
23751
  return {
23412
23752
  ok: false,
@@ -23416,7 +23756,7 @@ async function runSkillShelf(args, reload, ctx, onNote) {
23416
23756
  if (reload) try {
23417
23757
  const res = await fetch("/api/skills/reload", { method: "POST" });
23418
23758
  if (!res.ok) {
23419
- const note = "/dsi-skill-shelf: snapshot rebuild failed (" + res.status + ")";
23759
+ const note = "/dsi-skills: snapshot rebuild failed (" + res.status + ")";
23420
23760
  onNote?.(false, note);
23421
23761
  return {
23422
23762
  ok: false,
@@ -23424,7 +23764,7 @@ async function runSkillShelf(args, reload, ctx, onNote) {
23424
23764
  };
23425
23765
  }
23426
23766
  } catch {
23427
- const note = "/dsi-skill-shelf: snapshot rebuild failed (network)";
23767
+ const note = "/dsi-skills: snapshot rebuild failed (network)";
23428
23768
  onNote?.(false, note);
23429
23769
  return {
23430
23770
  ok: false,
@@ -23434,7 +23774,7 @@ async function runSkillShelf(args, reload, ctx, onNote) {
23434
23774
  if (!addPanel({
23435
23775
  afterSessionId: ctx.sessionId
23436
23776
  })) {
23437
- const note = "/dsi-skill-shelf: the floor is not mounted";
23777
+ const note = "/dsi-skills: the floor is not mounted";
23438
23778
  onNote?.(false, note);
23439
23779
  return {
23440
23780
  ok: false,
@@ -23444,7 +23784,7 @@ async function runSkillShelf(args, reload, ctx, onNote) {
23444
23784
  return { ok: true };
23445
23785
  }
23446
23786
  /**
23447
- * /dsisettings and /dshsettings (re-pointed by The Settings Tree ADR,
23787
+ * /dsi-settings and /dsh-settings (re-pointed by The Settings Tree ADR,
23448
23788
  * 2026-09-18, D2; aimed 2026-09-17, The Focus Command ADR D1): open a
23449
23789
  * SESSION-LESS workspace-explorer over the settings HOME folder (~/.dsi |
23450
23790
  * ~/.dsh), titled — one runner for both commands; the command name carries
@@ -25419,6 +25759,47 @@ function ConversationPanel($$renderer, $$props) {
25419
25759
  });
25420
25760
  }
25421
25761
  //#endregion
25762
+ //#region src/lib/components/terminal/frame-state.ts
25763
+ var initialTerminalPanelState = {
25764
+ lastSettle: null,
25765
+ closed: false,
25766
+ quiescent: null,
25767
+ errored: false
25768
+ };
25769
+ //#endregion
25770
+ //#region src/lib/components/terminal/TerminalPanel.svelte
25771
+ function TerminalPanel($$renderer, $$props) {
25772
+ $$renderer.component(($$renderer) => {
25773
+ let panelState = { ...initialTerminalPanelState };
25774
+ Promise.resolve();
25775
+ function settleText(reason) {
25776
+ if (reason === "stdin_read") return t(terminalsettlestdinread3);
25777
+ if (reason === "inferred_idle") return t(terminalsettleinferredidle3);
25778
+ if (reason === "timeout") return t(terminalsettletimeout2);
25779
+ if (reason === "session_exit") return t(terminalsettlesessionexit3);
25780
+ return "";
25781
+ }
25782
+ $$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> `);
25783
+ if (panelState.lastSettle) {
25784
+ $$renderer.push("<!--[0-->");
25785
+ $$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>`);
25786
+ } else $$renderer.push("<!--[-1-->");
25787
+ $$renderer.push(`<!--]--> <div class="grow"></div></div> `);
25788
+ $$renderer.push("<!--[-1-->");
25789
+ $$renderer.push(`<div class="relative min-h-72 grow overflow-hidden" data-testid="terminal-host" role="presentation"><div class="absolute inset-0"></div></div> `);
25790
+ $$renderer.push("<!--[-1-->");
25791
+ $$renderer.push(`<!--]--> `);
25792
+ $$renderer.push("<!--[-1-->");
25793
+ $$renderer.push(`<!--]-->`);
25794
+ $$renderer.push(`<!--]--> `);
25795
+ if (panelState.closed) {
25796
+ $$renderer.push("<!--[0-->");
25797
+ $$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>`);
25798
+ } else $$renderer.push("<!--[-1-->");
25799
+ $$renderer.push(`<!--]--></div>`);
25800
+ });
25801
+ }
25802
+ //#endregion
25422
25803
  //#region src/lib/components/settings-skills/SettingsSkillsToolbar.svelte
25423
25804
  function SettingsSkillsToolbar($$renderer, $$props) {
25424
25805
  $$renderer.component(($$renderer) => {
@@ -27041,7 +27422,7 @@ function isPanelEntry(value) {
27041
27422
  if (value === null || typeof value !== "object") return false;
27042
27423
  const entry = value;
27043
27424
  if (typeof entry.id !== "string" || entry.id.length === 0) return false;
27044
- if (entry.kind !== void 0 && entry.kind !== "conversation" && entry.kind !== "prompt-manager" && entry.kind !== "settings-editor" && entry.kind !== "injected-doc" && entry.kind !== "skill-shelf" && entry.kind !== "workspace-explorer" && entry.kind !== "workspace-file") return false;
27425
+ if (entry.kind !== void 0 && entry.kind !== "conversation" && entry.kind !== "prompt-manager" && entry.kind !== "settings-editor" && entry.kind !== "injected-doc" && entry.kind !== "skill-shelf" && entry.kind !== "workspace-explorer" && entry.kind !== "workspace-file" && entry.kind !== "terminal") return false;
27045
27426
  if (entry.kind === "settings-editor" && entry.target !== "dsi" && entry.target !== "dsh") return false;
27046
27427
  if (entry.kind === "workspace-explorer") {
27047
27428
  if (entry.sessionId !== null && (typeof entry.sessionId !== "string" || entry.sessionId.length === 0)) return false;
@@ -27058,7 +27439,7 @@ function isPanelEntry(value) {
27058
27439
  if (typeof entry.sourceSessionId !== "string" || entry.sourceSessionId.length === 0) return false;
27059
27440
  if (typeof entry.displayPath !== "string" || entry.displayPath.length === 0) return false;
27060
27441
  }
27061
- if (entry.kind !== "prompt-manager" && entry.kind !== "settings-editor" && entry.kind !== "skill-shelf" && entry.kind !== "injected-doc" && entry.kind !== "workspace-explorer" && entry.kind !== "workspace-file") {
27442
+ if (entry.kind !== "prompt-manager" && entry.kind !== "settings-editor" && entry.kind !== "skill-shelf" && entry.kind !== "injected-doc" && entry.kind !== "workspace-explorer" && entry.kind !== "workspace-file" && entry.kind !== "terminal") {
27062
27443
  if (typeof entry.sessionId !== "string" || entry.sessionId.length === 0) return false;
27063
27444
  if (entry.agentPreset !== void 0 && typeof entry.agentPreset !== "string" && entry.agentPreset !== null) return false;
27064
27445
  }
@@ -27085,6 +27466,11 @@ function sanitizePanels(raw) {
27085
27466
  kind: "prompt-manager",
27086
27467
  width
27087
27468
  };
27469
+ if (entry.kind === "terminal") return {
27470
+ id: entry.id,
27471
+ kind: "terminal",
27472
+ width
27473
+ };
27088
27474
  if (entry.kind === "settings-editor") return {
27089
27475
  id: entry.id,
27090
27476
  kind: "settings-editor",
@@ -28322,8 +28708,13 @@ function _page($$renderer, $$props) {
28322
28708
  onToggleCollapse: toggleSidebar});
28323
28709
  }
28324
28710
  function panelBody($$renderer, panel, floorPanelId, hostClose) {
28325
- if (panel.kind === "prompt-manager") {
28711
+ if (panel.kind === "terminal") {
28326
28712
  $$renderer.push("<!--[0-->");
28713
+ $$renderer.push(`<div class="panel-manager-body svelte-1uha8ag" data-testid="panel-terminal">`);
28714
+ TerminalPanel($$renderer);
28715
+ $$renderer.push(`<!----></div>`);
28716
+ } else if (panel.kind === "prompt-manager") {
28717
+ $$renderer.push("<!--[1-->");
28327
28718
  $$renderer.push(`<div class="panel-manager-body svelte-1uha8ag" data-testid="panel-manager">`);
28328
28719
  PromptManagerPanel($$renderer, {
28329
28720
  onclose: hostClose ?? (() => removePanel(panel.id)),
@@ -28332,7 +28723,7 @@ function _page($$renderer, $$props) {
28332
28723
  });
28333
28724
  $$renderer.push(`<!----></div>`);
28334
28725
  } else if (panel.kind === "skill-shelf") {
28335
- $$renderer.push("<!--[1-->");
28726
+ $$renderer.push("<!--[2-->");
28336
28727
  $$renderer.push(`<div class="panel-manager-body svelte-1uha8ag" data-testid="panel-skills">`);
28337
28728
  SettingsSkillsPanel($$renderer, {
28338
28729
  initialTab: panel.tab ?? "install",
@@ -28341,13 +28732,13 @@ function _page($$renderer, $$props) {
28341
28732
  initialReload: panel.reload ?? null});
28342
28733
  $$renderer.push(`<!----></div>`);
28343
28734
  } else if (panel.kind === "settings-editor") {
28344
- $$renderer.push("<!--[2-->");
28735
+ $$renderer.push("<!--[3-->");
28345
28736
  $$renderer.push(`<div class="panel-manager-body svelte-1uha8ag" data-testid="panel-settings">`);
28346
28737
  SettingsEditorPanel($$renderer, {
28347
28738
  target: panel.target});
28348
28739
  $$renderer.push(`<!----></div>`);
28349
28740
  } else if (panel.kind === "injected-doc") {
28350
- $$renderer.push("<!--[3-->");
28741
+ $$renderer.push("<!--[4-->");
28351
28742
  $$renderer.push(`<div class="panel-manager-body svelte-1uha8ag">`);
28352
28743
  InjectedDocPanel($$renderer, {
28353
28744
  sourceSessionId: panel.sourceSessionId,
@@ -28355,7 +28746,7 @@ function _page($$renderer, $$props) {
28355
28746
  entries: coldCache[panel.sourceSessionId]?.entries ?? []});
28356
28747
  $$renderer.push(`<!----></div>`);
28357
28748
  } else if (panel.kind === "workspace-explorer") {
28358
- $$renderer.push("<!--[4-->");
28749
+ $$renderer.push("<!--[5-->");
28359
28750
  WorkspaceExplorerPanel($$renderer, {
28360
28751
  sessionId: panel.sessionId,
28361
28752
  root: panel.root,
@@ -28386,7 +28777,7 @@ function _page($$renderer, $$props) {
28386
28777
  onActivateTab: (path) => activateExplorerTab(panel.id, path)
28387
28778
  });
28388
28779
  } else if (panel.kind === "workspace-file") {
28389
- $$renderer.push("<!--[5-->");
28780
+ $$renderer.push("<!--[6-->");
28390
28781
  WorkspaceFilePanel($$renderer, {
28391
28782
  sessionId: panel.sessionId,
28392
28783
  path: panel.path,
@@ -28396,7 +28787,7 @@ function _page($$renderer, $$props) {
28396
28787
  onclose: () => removePanel(panel.id)
28397
28788
  });
28398
28789
  } else if (panel.kind === "conversation") {
28399
- $$renderer.push("<!--[6-->");
28790
+ $$renderer.push("<!--[7-->");
28400
28791
  const p = panel;
28401
28792
  $$renderer.push(`<!---->`);
28402
28793
  if (deadSessions[p.sessionId]) {
@@ -28556,4 +28947,4 @@ function _page($$renderer, $$props) {
28556
28947
  }
28557
28948
 
28558
28949
  export { _page as default };
28559
- //# sourceMappingURL=_page.svelte.js-B2EA5ccE.js.map
28950
+ //# sourceMappingURL=_page.svelte.js-B26jgDy0.js.map