@deepseek-insight/dsi 0.5.38 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/dsi-plugin-rack/SKILL.md +27 -0
- package/.agents/skills/dsi-plugin-rack/rack.mjs +237 -0
- package/README.md +27 -3
- package/bin/dsi.mjs +42 -1
- package/bin/lib/plugin-chain.mjs +62 -0
- package/build/client/_app/immutable/assets/{2.B3K-kE1m.css → 2.DLFRZPDf.css} +1 -1
- package/build/client/_app/immutable/chunks/BZW4nu4u.js +1 -0
- package/build/client/_app/immutable/chunks/CpgMZB3l.js +1 -0
- package/build/client/_app/immutable/chunks/DZixYQAd.js +2 -0
- package/build/client/_app/immutable/chunks/{8isMKkmK.js → DzZu8EY2.js} +1 -1
- package/build/client/_app/immutable/entry/{app.CpbSsqDG.js → app.Toc7d2RT.js} +2 -2
- package/build/client/_app/immutable/entry/start.CCaKY2bM.js +1 -0
- package/build/client/_app/immutable/nodes/{1.C4SBbU1i.js → 1.BMemLSP2.js} +1 -1
- package/build/client/_app/immutable/nodes/{2.C1u8HG5a.js → 2.BDUOgoKA.js} +195 -195
- package/build/client/_app/version.json +1 -1
- package/build/handler.js +4 -4
- package/build/index.js +4 -4
- package/build/server/chunks/chunks/engine.js-CrdWRSwf.js +97 -0
- package/build/server/chunks/chunks/{engine.js-BRoFbCnL.js → engine2.js-BRoFbCnL.js} +1 -1
- package/build/server/chunks/chunks/{internal.js-D0IzcQru.js → internal.js-Dhppl8VW.js} +2 -2
- package/build/server/chunks/chunks/{state.js-BeFSJ3AU.js → state.js--QbGDz9E.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/plugins/apply/_server.ts.js-BXwRN5sp.js +100 -0
- package/build/server/chunks/entries/endpoints/api/plugins/reload/_server.ts.js-U8vRgx7E.js +34 -0
- package/build/server/chunks/entries/endpoints/api/plugins/snapshot/_server.ts.js-9Ezy2OeQ.js +36 -0
- package/build/server/chunks/entries/endpoints/api/skills/install/{_server.ts.js-DijnCqgt.js → _server.ts.js-DyzPF_Z5.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/skills/reload/{_server.ts.js-Cqig6BdK.js → _server.ts.js-BUnCt45D.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/skills/reload/cancel/{_server.ts.js-CGlFnmuI.js → _server.ts.js-DT52g6_a.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/skills/snapshot/{_server.ts.js-p7P1CFjG.js → _server.ts.js-CaBD0w0v.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/skills/uninstall/{_server.ts.js-h5IfIfov.js → _server.ts.js-D_NXkZEr.js} +2 -2
- package/build/server/chunks/entries/pages/{_error.svelte.js-C5-GtTAX.js → _error.svelte.js-n2xOEPvp.js} +3 -3
- package/build/server/chunks/entries/pages/{_page.svelte.js-DoOQ17mk.js → _page.svelte.js-BJ7eKmkS.js} +1183 -105
- package/build/server/chunks/{handler-UO5maDaQ.js → handler-BJHxQwK-.js} +3 -3
- package/build/server/chunks/{index.js-sK5zTj9E.js → index.js-BXPH1Bno.js} +2 -2
- package/build/server/chunks/{manifest.js-DdUlckhQ.js → manifest.js-DjQqMW2U.js} +30 -9
- package/build/server/chunks/nodes/1.js-Cb5I-Dtm.js +9 -0
- package/build/server/chunks/nodes/{2.js-ClaC6DDN.js → 2.js-BnWybqO0.js} +4 -4
- package/package.json +1 -1
- package/template/.dsi/resources/plugins-reff.md +3 -0
- package/build/client/_app/immutable/chunks/DaJQaZs4.js +0 -1
- package/build/client/_app/immutable/chunks/vqHvFU33.js +0 -2
- package/build/client/_app/immutable/chunks/y7n0suOs.js +0 -1
- package/build/client/_app/immutable/entry/start.CNrTX-th.js +0 -1
- package/build/server/chunks/nodes/1.js-CKpJoUo-.js +0 -9
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as onDestroy, d as __exportAll } from '../../chunks/internal.js-
|
|
1
|
+
import { c as onDestroy, d as __exportAll } from '../../chunks/internal.js-Dhppl8VW.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
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-CyvSb4O3.js';
|
|
@@ -7,7 +7,7 @@ import { b as applyKnobEvent, E as EMPTY_KNOBS, r as resolvePermission, l as loc
|
|
|
7
7
|
import { D as DEFAULT_IMAGE_LIMITS } from '../../chunks/image-limits.js-CUdJ0f7r.js';
|
|
8
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
|
|
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--QbGDz9E.js';
|
|
11
11
|
import 'yaml';
|
|
12
12
|
import 'html-to-image';
|
|
13
13
|
import hljs from 'highlight.js/lib/core';
|
|
@@ -1750,6 +1750,166 @@ var commandhelp1 = ((inputs = {}, options = {}) => {
|
|
|
1750
1750
|
return en_commandhelp1();
|
|
1751
1751
|
});
|
|
1752
1752
|
//#endregion
|
|
1753
|
+
//#region src/lib/paraglide/messages/commandhelppluginrackexamplebare4.js
|
|
1754
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
1755
|
+
/** @typedef {{}} Commandhelppluginrackexamplebare4Inputs */
|
|
1756
|
+
var en_commandhelppluginrackexamplebare4 = () => {
|
|
1757
|
+
return `Opens the rack - install or uninstall with one click per row.`;
|
|
1758
|
+
};
|
|
1759
|
+
var zh_commandhelppluginrackexamplebare4 = () => {
|
|
1760
|
+
return `打开插件架 - 每行一键安装或卸载。`;
|
|
1761
|
+
};
|
|
1762
|
+
var id_commandhelppluginrackexamplebare4 = () => {
|
|
1763
|
+
return `Membuka rak - instal atau copot dengan satu klik per baris.`;
|
|
1764
|
+
};
|
|
1765
|
+
var es_commandhelppluginrackexamplebare4 = () => {
|
|
1766
|
+
return `Abre el rack: instala o desinstala con un clic por fila.`;
|
|
1767
|
+
};
|
|
1768
|
+
/**
|
|
1769
|
+
* | output |
|
|
1770
|
+
* | --- |
|
|
1771
|
+
* | "Opens the rack - install or uninstall with one click per row." |
|
|
1772
|
+
*
|
|
1773
|
+
* @param {Commandhelppluginrackexamplebare4Inputs} inputs
|
|
1774
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
1775
|
+
* @returns {LocalizedString}
|
|
1776
|
+
*/
|
|
1777
|
+
var commandhelppluginrackexamplebare4 = ((inputs = {}, options = {}) => {
|
|
1778
|
+
const locale = options.locale ?? getLocale();
|
|
1779
|
+
if (locale === "zh") return zh_commandhelppluginrackexamplebare4();
|
|
1780
|
+
if (locale === "id") return id_commandhelppluginrackexamplebare4();
|
|
1781
|
+
if (locale === "es") return es_commandhelppluginrackexamplebare4();
|
|
1782
|
+
return en_commandhelppluginrackexamplebare4();
|
|
1783
|
+
});
|
|
1784
|
+
//#endregion
|
|
1785
|
+
//#region src/lib/paraglide/messages/commandhelppluginrackexamplehelp4.js
|
|
1786
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
1787
|
+
/** @typedef {{}} Commandhelppluginrackexamplehelp4Inputs */
|
|
1788
|
+
var en_commandhelppluginrackexamplehelp4 = () => {
|
|
1789
|
+
return `Prints this help card.`;
|
|
1790
|
+
};
|
|
1791
|
+
var zh_commandhelppluginrackexamplehelp4 = () => {
|
|
1792
|
+
return `打印此帮助卡片。`;
|
|
1793
|
+
};
|
|
1794
|
+
var id_commandhelppluginrackexamplehelp4 = () => {
|
|
1795
|
+
return `Mencetak kartu bantuan ini.`;
|
|
1796
|
+
};
|
|
1797
|
+
var es_commandhelppluginrackexamplehelp4 = () => {
|
|
1798
|
+
return `Imprime esta tarjeta de ayuda.`;
|
|
1799
|
+
};
|
|
1800
|
+
/**
|
|
1801
|
+
* | output |
|
|
1802
|
+
* | --- |
|
|
1803
|
+
* | "Prints this help card." |
|
|
1804
|
+
*
|
|
1805
|
+
* @param {Commandhelppluginrackexamplehelp4Inputs} inputs
|
|
1806
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
1807
|
+
* @returns {LocalizedString}
|
|
1808
|
+
*/
|
|
1809
|
+
var commandhelppluginrackexamplehelp4 = ((inputs = {}, options = {}) => {
|
|
1810
|
+
const locale = options.locale ?? getLocale();
|
|
1811
|
+
if (locale === "zh") return zh_commandhelppluginrackexamplehelp4();
|
|
1812
|
+
if (locale === "id") return id_commandhelppluginrackexamplehelp4();
|
|
1813
|
+
if (locale === "es") return es_commandhelppluginrackexamplehelp4();
|
|
1814
|
+
return en_commandhelppluginrackexamplehelp4();
|
|
1815
|
+
});
|
|
1816
|
+
//#endregion
|
|
1817
|
+
//#region src/lib/paraglide/messages/commandhelppluginrackexamplereload4.js
|
|
1818
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
1819
|
+
/** @typedef {{}} Commandhelppluginrackexamplereload4Inputs */
|
|
1820
|
+
var en_commandhelppluginrackexamplereload4 = () => {
|
|
1821
|
+
return `Rebuilds the rack snapshot first (fresh numbering, fresh installed flags).`;
|
|
1822
|
+
};
|
|
1823
|
+
var zh_commandhelppluginrackexamplereload4 = () => {
|
|
1824
|
+
return `先重建插件架快照(全新编号、全新安装状态)。`;
|
|
1825
|
+
};
|
|
1826
|
+
var id_commandhelppluginrackexamplereload4 = () => {
|
|
1827
|
+
return `Membangun ulang snapshot rak lebih dulu (penomoran baru, status terpasang baru).`;
|
|
1828
|
+
};
|
|
1829
|
+
var es_commandhelppluginrackexamplereload4 = () => {
|
|
1830
|
+
return `Reconstruye primero el snapshot del rack (numeración y estados de instalación recientes).`;
|
|
1831
|
+
};
|
|
1832
|
+
/**
|
|
1833
|
+
* | output |
|
|
1834
|
+
* | --- |
|
|
1835
|
+
* | "Rebuilds the rack snapshot first (fresh numbering, fresh installed flags)." |
|
|
1836
|
+
*
|
|
1837
|
+
* @param {Commandhelppluginrackexamplereload4Inputs} inputs
|
|
1838
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
1839
|
+
* @returns {LocalizedString}
|
|
1840
|
+
*/
|
|
1841
|
+
var commandhelppluginrackexamplereload4 = ((inputs = {}, options = {}) => {
|
|
1842
|
+
const locale = options.locale ?? getLocale();
|
|
1843
|
+
if (locale === "zh") return zh_commandhelppluginrackexamplereload4();
|
|
1844
|
+
if (locale === "id") return id_commandhelppluginrackexamplereload4();
|
|
1845
|
+
if (locale === "es") return es_commandhelppluginrackexamplereload4();
|
|
1846
|
+
return en_commandhelppluginrackexamplereload4();
|
|
1847
|
+
});
|
|
1848
|
+
//#endregion
|
|
1849
|
+
//#region src/lib/paraglide/messages/commandhelppluginrackparamreload4.js
|
|
1850
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
1851
|
+
/** @typedef {{}} Commandhelppluginrackparamreload4Inputs */
|
|
1852
|
+
var en_commandhelppluginrackparamreload4 = () => {
|
|
1853
|
+
return `Force a snapshot rebuild from plugins-reff.md before the panel opens. Without it the cached rack snapshot is used as-is.`;
|
|
1854
|
+
};
|
|
1855
|
+
var zh_commandhelppluginrackparamreload4 = () => {
|
|
1856
|
+
return `在面板打开前从 plugins-reff.md 重建快照。不带它时按原样使用缓存的插件架快照。`;
|
|
1857
|
+
};
|
|
1858
|
+
var id_commandhelppluginrackparamreload4 = () => {
|
|
1859
|
+
return `Bangun ulang snapshot dari plugins-reff.md sebelum panel terbuka. Tanpa itu, snapshot rak yang tersimpan dipakai apa adanya.`;
|
|
1860
|
+
};
|
|
1861
|
+
var es_commandhelppluginrackparamreload4 = () => {
|
|
1862
|
+
return `Fuerza a reconstruir el snapshot desde plugins-reff.md antes de abrir el panel. Sin ella se usa el snapshot en caché tal cual.`;
|
|
1863
|
+
};
|
|
1864
|
+
/**
|
|
1865
|
+
* | output |
|
|
1866
|
+
* | --- |
|
|
1867
|
+
* | "Force a snapshot rebuild from plugins-reff.md before the panel opens. Without it the cached rack snapshot is used as-is." |
|
|
1868
|
+
*
|
|
1869
|
+
* @param {Commandhelppluginrackparamreload4Inputs} inputs
|
|
1870
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
1871
|
+
* @returns {LocalizedString}
|
|
1872
|
+
*/
|
|
1873
|
+
var commandhelppluginrackparamreload4 = ((inputs = {}, options = {}) => {
|
|
1874
|
+
const locale = options.locale ?? getLocale();
|
|
1875
|
+
if (locale === "zh") return zh_commandhelppluginrackparamreload4();
|
|
1876
|
+
if (locale === "id") return id_commandhelppluginrackparamreload4();
|
|
1877
|
+
if (locale === "es") return es_commandhelppluginrackparamreload4();
|
|
1878
|
+
return en_commandhelppluginrackparamreload4();
|
|
1879
|
+
});
|
|
1880
|
+
//#endregion
|
|
1881
|
+
//#region src/lib/paraglide/messages/commandhelppluginracksummary3.js
|
|
1882
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
1883
|
+
/** @typedef {{}} Commandhelppluginracksummary3Inputs */
|
|
1884
|
+
var en_commandhelppluginracksummary3 = () => {
|
|
1885
|
+
return `Opens the Plugin Rack panel (The Plugin Rack ADR, 2026-09-27): install and uninstall dsh plugins from the plugins reference. Every apply ends with the DSH restart chain - the floor bounces and the page re-attaches.`;
|
|
1886
|
+
};
|
|
1887
|
+
var zh_commandhelppluginracksummary3 = () => {
|
|
1888
|
+
return `打开插件架面板(The Plugin Rack ADR,2026-09-27):从插件参考安装/卸载 dsh 插件。每次应用都会触发 DSH 重启链 - 页面会短暂离开并自动恢复。`;
|
|
1889
|
+
};
|
|
1890
|
+
var id_commandhelppluginracksummary3 = () => {
|
|
1891
|
+
return `Membuka panel Rak Plugin (ADR The Plugin Rack, 2026-09-27): instal dan copot plugin dsh dari referensi plugin. Setiap penerapan diakhiri rantai restart DSH - lantai turun sejenak lalu halaman pulih sendiri.`;
|
|
1892
|
+
};
|
|
1893
|
+
var es_commandhelppluginracksummary3 = () => {
|
|
1894
|
+
return `Abre el panel Rack de plugins (ADR The Plugin Rack, 2026-09-27): instala y desinstala plugins de dsh desde la referencia de plugins. Cada aplicación termina con la cadena de reinicio de DSH: la página se va un momento y vuelve sola.`;
|
|
1895
|
+
};
|
|
1896
|
+
/**
|
|
1897
|
+
* | output |
|
|
1898
|
+
* | --- |
|
|
1899
|
+
* | "Opens the Plugin Rack panel (The Plugin Rack ADR, 2026-09-27): install and uninstall dsh plugins from the plugins reference. Every apply ends with the DSH re..." |
|
|
1900
|
+
*
|
|
1901
|
+
* @param {Commandhelppluginracksummary3Inputs} inputs
|
|
1902
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
1903
|
+
* @returns {LocalizedString}
|
|
1904
|
+
*/
|
|
1905
|
+
var commandhelppluginracksummary3 = ((inputs = {}, options = {}) => {
|
|
1906
|
+
const locale = options.locale ?? getLocale();
|
|
1907
|
+
if (locale === "zh") return zh_commandhelppluginracksummary3();
|
|
1908
|
+
if (locale === "id") return id_commandhelppluginracksummary3();
|
|
1909
|
+
if (locale === "es") return es_commandhelppluginracksummary3();
|
|
1910
|
+
return en_commandhelppluginracksummary3();
|
|
1911
|
+
});
|
|
1912
|
+
//#endregion
|
|
1753
1913
|
//#region src/lib/paraglide/messages/commandhelpskillshelfexamplebare4.js
|
|
1754
1914
|
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
1755
1915
|
/** @typedef {{}} Commandhelpskillshelfexamplebare4Inputs */
|
|
@@ -7464,50 +7624,594 @@ var es_picksession1 = () => {
|
|
|
7464
7624
|
/**
|
|
7465
7625
|
* | output |
|
|
7466
7626
|
* | --- |
|
|
7467
|
-
* | "Pick a session from the sidebar, or start one with + New chat." |
|
|
7627
|
+
* | "Pick a session from the sidebar, or start one with + New chat." |
|
|
7628
|
+
*
|
|
7629
|
+
* @param {Picksession1Inputs} inputs
|
|
7630
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
7631
|
+
* @returns {LocalizedString}
|
|
7632
|
+
*/
|
|
7633
|
+
var picksession1 = ((inputs = {}, options = {}) => {
|
|
7634
|
+
const locale = options.locale ?? getLocale();
|
|
7635
|
+
if (locale === "zh") return zh_picksession1();
|
|
7636
|
+
if (locale === "id") return id_picksession1();
|
|
7637
|
+
if (locale === "es") return es_picksession1();
|
|
7638
|
+
return en_picksession1();
|
|
7639
|
+
});
|
|
7640
|
+
//#endregion
|
|
7641
|
+
//#region src/lib/paraglide/messages/planmode1.js
|
|
7642
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
7643
|
+
/** @typedef {{}} Planmode1Inputs */
|
|
7644
|
+
var en_planmode1 = () => {
|
|
7645
|
+
return `plan mode`;
|
|
7646
|
+
};
|
|
7647
|
+
var zh_planmode1 = () => {
|
|
7648
|
+
return `计划模式`;
|
|
7649
|
+
};
|
|
7650
|
+
var id_planmode1 = () => {
|
|
7651
|
+
return `mode rencana`;
|
|
7652
|
+
};
|
|
7653
|
+
var es_planmode1 = () => {
|
|
7654
|
+
return `modo plan`;
|
|
7655
|
+
};
|
|
7656
|
+
/**
|
|
7657
|
+
* | output |
|
|
7658
|
+
* | --- |
|
|
7659
|
+
* | "plan mode" |
|
|
7660
|
+
*
|
|
7661
|
+
* @param {Planmode1Inputs} inputs
|
|
7662
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
7663
|
+
* @returns {LocalizedString}
|
|
7664
|
+
*/
|
|
7665
|
+
var planmode1 = ((inputs = {}, options = {}) => {
|
|
7666
|
+
const locale = options.locale ?? getLocale();
|
|
7667
|
+
if (locale === "zh") return zh_planmode1();
|
|
7668
|
+
if (locale === "id") return id_planmode1();
|
|
7669
|
+
if (locale === "es") return es_planmode1();
|
|
7670
|
+
return en_planmode1();
|
|
7671
|
+
});
|
|
7672
|
+
//#endregion
|
|
7673
|
+
//#region src/lib/paraglide/messages/pluginrackapplying2.js
|
|
7674
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
7675
|
+
/** @typedef {{}} Pluginrackapplying2Inputs */
|
|
7676
|
+
var en_pluginrackapplying2 = () => {
|
|
7677
|
+
return `Applying — the floor will come back shortly.`;
|
|
7678
|
+
};
|
|
7679
|
+
var zh_pluginrackapplying2 = () => {
|
|
7680
|
+
return `正在应用 — 页面稍后会自动恢复。`;
|
|
7681
|
+
};
|
|
7682
|
+
var id_pluginrackapplying2 = () => {
|
|
7683
|
+
return `Menerapkan — lantai akan kembali sebentar lagi.`;
|
|
7684
|
+
};
|
|
7685
|
+
var es_pluginrackapplying2 = () => {
|
|
7686
|
+
return `Aplicando — la página volverá enseguida.`;
|
|
7687
|
+
};
|
|
7688
|
+
/**
|
|
7689
|
+
* | output |
|
|
7690
|
+
* | --- |
|
|
7691
|
+
* | "Applying — the floor will come back shortly." |
|
|
7692
|
+
*
|
|
7693
|
+
* @param {Pluginrackapplying2Inputs} inputs
|
|
7694
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
7695
|
+
* @returns {LocalizedString}
|
|
7696
|
+
*/
|
|
7697
|
+
var pluginrackapplying2 = ((inputs = {}, options = {}) => {
|
|
7698
|
+
const locale = options.locale ?? getLocale();
|
|
7699
|
+
if (locale === "zh") return zh_pluginrackapplying2();
|
|
7700
|
+
if (locale === "id") return id_pluginrackapplying2();
|
|
7701
|
+
if (locale === "es") return es_pluginrackapplying2();
|
|
7702
|
+
return en_pluginrackapplying2();
|
|
7703
|
+
});
|
|
7704
|
+
//#endregion
|
|
7705
|
+
//#region src/lib/paraglide/messages/pluginrackby2.js
|
|
7706
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
7707
|
+
/** @typedef {{}} Pluginrackby2Inputs */
|
|
7708
|
+
var en_pluginrackby2 = () => {
|
|
7709
|
+
return `by`;
|
|
7710
|
+
};
|
|
7711
|
+
var zh_pluginrackby2 = () => {
|
|
7712
|
+
return `作者:`;
|
|
7713
|
+
};
|
|
7714
|
+
var id_pluginrackby2 = () => {
|
|
7715
|
+
return `oleh`;
|
|
7716
|
+
};
|
|
7717
|
+
var es_pluginrackby2 = () => {
|
|
7718
|
+
return `por`;
|
|
7719
|
+
};
|
|
7720
|
+
/**
|
|
7721
|
+
* | output |
|
|
7722
|
+
* | --- |
|
|
7723
|
+
* | "by" |
|
|
7724
|
+
*
|
|
7725
|
+
* @param {Pluginrackby2Inputs} inputs
|
|
7726
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
7727
|
+
* @returns {LocalizedString}
|
|
7728
|
+
*/
|
|
7729
|
+
var pluginrackby2 = ((inputs = {}, options = {}) => {
|
|
7730
|
+
const locale = options.locale ?? getLocale();
|
|
7731
|
+
if (locale === "zh") return zh_pluginrackby2();
|
|
7732
|
+
if (locale === "id") return id_pluginrackby2();
|
|
7733
|
+
if (locale === "es") return es_pluginrackby2();
|
|
7734
|
+
return en_pluginrackby2();
|
|
7735
|
+
});
|
|
7736
|
+
//#endregion
|
|
7737
|
+
//#region src/lib/paraglide/messages/pluginrackempty2.js
|
|
7738
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
7739
|
+
/** @typedef {{}} Pluginrackempty2Inputs */
|
|
7740
|
+
var en_pluginrackempty2 = () => {
|
|
7741
|
+
return `No plugins on the rack yet — add a line to plugins-reff.md.`;
|
|
7742
|
+
};
|
|
7743
|
+
var zh_pluginrackempty2 = () => {
|
|
7744
|
+
return `插件架暂无插件 — 在 plugins-reff.md 中添加一行。`;
|
|
7745
|
+
};
|
|
7746
|
+
var id_pluginrackempty2 = () => {
|
|
7747
|
+
return `Belum ada plugin di rak — tambahkan satu baris di plugins-reff.md.`;
|
|
7748
|
+
};
|
|
7749
|
+
var es_pluginrackempty2 = () => {
|
|
7750
|
+
return `Aún no hay plugins en el rack — añade una línea a plugins-reff.md.`;
|
|
7751
|
+
};
|
|
7752
|
+
/**
|
|
7753
|
+
* | output |
|
|
7754
|
+
* | --- |
|
|
7755
|
+
* | "No plugins on the rack yet — add a line to plugins-reff.md." |
|
|
7756
|
+
*
|
|
7757
|
+
* @param {Pluginrackempty2Inputs} inputs
|
|
7758
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
7759
|
+
* @returns {LocalizedString}
|
|
7760
|
+
*/
|
|
7761
|
+
var pluginrackempty2 = ((inputs = {}, options = {}) => {
|
|
7762
|
+
const locale = options.locale ?? getLocale();
|
|
7763
|
+
if (locale === "zh") return zh_pluginrackempty2();
|
|
7764
|
+
if (locale === "id") return id_pluginrackempty2();
|
|
7765
|
+
if (locale === "es") return es_pluginrackempty2();
|
|
7766
|
+
return en_pluginrackempty2();
|
|
7767
|
+
});
|
|
7768
|
+
//#endregion
|
|
7769
|
+
//#region src/lib/paraglide/messages/pluginrackinstall2.js
|
|
7770
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
7771
|
+
/** @typedef {{}} Pluginrackinstall2Inputs */
|
|
7772
|
+
var en_pluginrackinstall2 = () => {
|
|
7773
|
+
return `Install`;
|
|
7774
|
+
};
|
|
7775
|
+
var zh_pluginrackinstall2 = () => {
|
|
7776
|
+
return `安装`;
|
|
7777
|
+
};
|
|
7778
|
+
var id_pluginrackinstall2 = () => {
|
|
7779
|
+
return `Instal`;
|
|
7780
|
+
};
|
|
7781
|
+
var es_pluginrackinstall2 = () => {
|
|
7782
|
+
return `Instalar`;
|
|
7783
|
+
};
|
|
7784
|
+
/**
|
|
7785
|
+
* | output |
|
|
7786
|
+
* | --- |
|
|
7787
|
+
* | "Install" |
|
|
7788
|
+
*
|
|
7789
|
+
* @param {Pluginrackinstall2Inputs} inputs
|
|
7790
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
7791
|
+
* @returns {LocalizedString}
|
|
7792
|
+
*/
|
|
7793
|
+
var pluginrackinstall2 = ((inputs = {}, options = {}) => {
|
|
7794
|
+
const locale = options.locale ?? getLocale();
|
|
7795
|
+
if (locale === "zh") return zh_pluginrackinstall2();
|
|
7796
|
+
if (locale === "id") return id_pluginrackinstall2();
|
|
7797
|
+
if (locale === "es") return es_pluginrackinstall2();
|
|
7798
|
+
return en_pluginrackinstall2();
|
|
7799
|
+
});
|
|
7800
|
+
//#endregion
|
|
7801
|
+
//#region src/lib/paraglide/messages/pluginrackinstallempty3.js
|
|
7802
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
7803
|
+
/** @typedef {{}} Pluginrackinstallempty3Inputs */
|
|
7804
|
+
var en_pluginrackinstallempty3 = () => {
|
|
7805
|
+
return `Everything on the rack is installed.`;
|
|
7806
|
+
};
|
|
7807
|
+
var zh_pluginrackinstallempty3 = () => {
|
|
7808
|
+
return `插件架上的插件都已安装。`;
|
|
7809
|
+
};
|
|
7810
|
+
var id_pluginrackinstallempty3 = () => {
|
|
7811
|
+
return `Semua plugin di rak sudah terpasang.`;
|
|
7812
|
+
};
|
|
7813
|
+
var es_pluginrackinstallempty3 = () => {
|
|
7814
|
+
return `Todo en el rack está instalado.`;
|
|
7815
|
+
};
|
|
7816
|
+
/**
|
|
7817
|
+
* | output |
|
|
7818
|
+
* | --- |
|
|
7819
|
+
* | "Everything on the rack is installed." |
|
|
7820
|
+
*
|
|
7821
|
+
* @param {Pluginrackinstallempty3Inputs} inputs
|
|
7822
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
7823
|
+
* @returns {LocalizedString}
|
|
7824
|
+
*/
|
|
7825
|
+
var pluginrackinstallempty3 = ((inputs = {}, options = {}) => {
|
|
7826
|
+
const locale = options.locale ?? getLocale();
|
|
7827
|
+
if (locale === "zh") return zh_pluginrackinstallempty3();
|
|
7828
|
+
if (locale === "id") return id_pluginrackinstallempty3();
|
|
7829
|
+
if (locale === "es") return es_pluginrackinstallempty3();
|
|
7830
|
+
return en_pluginrackinstallempty3();
|
|
7831
|
+
});
|
|
7832
|
+
//#endregion
|
|
7833
|
+
//#region src/lib/paraglide/messages/pluginrackinstalled2.js
|
|
7834
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
7835
|
+
/** @typedef {{}} Pluginrackinstalled2Inputs */
|
|
7836
|
+
var en_pluginrackinstalled2 = () => {
|
|
7837
|
+
return `Installed`;
|
|
7838
|
+
};
|
|
7839
|
+
var zh_pluginrackinstalled2 = () => {
|
|
7840
|
+
return `已安装`;
|
|
7841
|
+
};
|
|
7842
|
+
var id_pluginrackinstalled2 = () => {
|
|
7843
|
+
return `Terpasang`;
|
|
7844
|
+
};
|
|
7845
|
+
var es_pluginrackinstalled2 = () => {
|
|
7846
|
+
return `Instalado`;
|
|
7847
|
+
};
|
|
7848
|
+
/**
|
|
7849
|
+
* | output |
|
|
7850
|
+
* | --- |
|
|
7851
|
+
* | "Installed" |
|
|
7852
|
+
*
|
|
7853
|
+
* @param {Pluginrackinstalled2Inputs} inputs
|
|
7854
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
7855
|
+
* @returns {LocalizedString}
|
|
7856
|
+
*/
|
|
7857
|
+
var pluginrackinstalled2 = ((inputs = {}, options = {}) => {
|
|
7858
|
+
const locale = options.locale ?? getLocale();
|
|
7859
|
+
if (locale === "zh") return zh_pluginrackinstalled2();
|
|
7860
|
+
if (locale === "id") return id_pluginrackinstalled2();
|
|
7861
|
+
if (locale === "es") return es_pluginrackinstalled2();
|
|
7862
|
+
return en_pluginrackinstalled2();
|
|
7863
|
+
});
|
|
7864
|
+
//#endregion
|
|
7865
|
+
//#region src/lib/paraglide/messages/pluginrackinstalling2.js
|
|
7866
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
7867
|
+
/** @typedef {{}} Pluginrackinstalling2Inputs */
|
|
7868
|
+
var en_pluginrackinstalling2 = () => {
|
|
7869
|
+
return `Installing…`;
|
|
7870
|
+
};
|
|
7871
|
+
var zh_pluginrackinstalling2 = () => {
|
|
7872
|
+
return `安装中…`;
|
|
7873
|
+
};
|
|
7874
|
+
var id_pluginrackinstalling2 = () => {
|
|
7875
|
+
return `Menginstal…`;
|
|
7876
|
+
};
|
|
7877
|
+
var es_pluginrackinstalling2 = () => {
|
|
7878
|
+
return `Instalando…`;
|
|
7879
|
+
};
|
|
7880
|
+
/**
|
|
7881
|
+
* | output |
|
|
7882
|
+
* | --- |
|
|
7883
|
+
* | "Installing…" |
|
|
7884
|
+
*
|
|
7885
|
+
* @param {Pluginrackinstalling2Inputs} inputs
|
|
7886
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
7887
|
+
* @returns {LocalizedString}
|
|
7888
|
+
*/
|
|
7889
|
+
var pluginrackinstalling2 = ((inputs = {}, options = {}) => {
|
|
7890
|
+
const locale = options.locale ?? getLocale();
|
|
7891
|
+
if (locale === "zh") return zh_pluginrackinstalling2();
|
|
7892
|
+
if (locale === "id") return id_pluginrackinstalling2();
|
|
7893
|
+
if (locale === "es") return es_pluginrackinstalling2();
|
|
7894
|
+
return en_pluginrackinstalling2();
|
|
7895
|
+
});
|
|
7896
|
+
//#endregion
|
|
7897
|
+
//#region src/lib/paraglide/messages/pluginrackloadfailed3.js
|
|
7898
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
7899
|
+
/** @typedef {{}} Pluginrackloadfailed3Inputs */
|
|
7900
|
+
var en_pluginrackloadfailed3 = () => {
|
|
7901
|
+
return `Could not load the rack.`;
|
|
7902
|
+
};
|
|
7903
|
+
var zh_pluginrackloadfailed3 = () => {
|
|
7904
|
+
return `无法加载插件架。`;
|
|
7905
|
+
};
|
|
7906
|
+
var id_pluginrackloadfailed3 = () => {
|
|
7907
|
+
return `Tidak dapat memuat rak plugin.`;
|
|
7908
|
+
};
|
|
7909
|
+
var es_pluginrackloadfailed3 = () => {
|
|
7910
|
+
return `No se pudo cargar el rack de plugins.`;
|
|
7911
|
+
};
|
|
7912
|
+
/**
|
|
7913
|
+
* | output |
|
|
7914
|
+
* | --- |
|
|
7915
|
+
* | "Could not load the rack." |
|
|
7916
|
+
*
|
|
7917
|
+
* @param {Pluginrackloadfailed3Inputs} inputs
|
|
7918
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
7919
|
+
* @returns {LocalizedString}
|
|
7920
|
+
*/
|
|
7921
|
+
var pluginrackloadfailed3 = ((inputs = {}, options = {}) => {
|
|
7922
|
+
const locale = options.locale ?? getLocale();
|
|
7923
|
+
if (locale === "zh") return zh_pluginrackloadfailed3();
|
|
7924
|
+
if (locale === "id") return id_pluginrackloadfailed3();
|
|
7925
|
+
if (locale === "es") return es_pluginrackloadfailed3();
|
|
7926
|
+
return en_pluginrackloadfailed3();
|
|
7927
|
+
});
|
|
7928
|
+
//#endregion
|
|
7929
|
+
//#region src/lib/paraglide/messages/pluginrackopenauthor3.js
|
|
7930
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
7931
|
+
/** @typedef {{}} Pluginrackopenauthor3Inputs */
|
|
7932
|
+
var en_pluginrackopenauthor3 = () => {
|
|
7933
|
+
return `Open the creator's profile`;
|
|
7934
|
+
};
|
|
7935
|
+
var zh_pluginrackopenauthor3 = () => {
|
|
7936
|
+
return `打开作者主页`;
|
|
7937
|
+
};
|
|
7938
|
+
var id_pluginrackopenauthor3 = () => {
|
|
7939
|
+
return `Buka profil pembuat`;
|
|
7940
|
+
};
|
|
7941
|
+
var es_pluginrackopenauthor3 = () => {
|
|
7942
|
+
return `Abrir el perfil del creador`;
|
|
7943
|
+
};
|
|
7944
|
+
/**
|
|
7945
|
+
* | output |
|
|
7946
|
+
* | --- |
|
|
7947
|
+
* | "Open the creator's profile" |
|
|
7948
|
+
*
|
|
7949
|
+
* @param {Pluginrackopenauthor3Inputs} inputs
|
|
7950
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
7951
|
+
* @returns {LocalizedString}
|
|
7952
|
+
*/
|
|
7953
|
+
var pluginrackopenauthor3 = ((inputs = {}, options = {}) => {
|
|
7954
|
+
const locale = options.locale ?? getLocale();
|
|
7955
|
+
if (locale === "zh") return zh_pluginrackopenauthor3();
|
|
7956
|
+
if (locale === "id") return id_pluginrackopenauthor3();
|
|
7957
|
+
if (locale === "es") return es_pluginrackopenauthor3();
|
|
7958
|
+
return en_pluginrackopenauthor3();
|
|
7959
|
+
});
|
|
7960
|
+
//#endregion
|
|
7961
|
+
//#region src/lib/paraglide/messages/pluginrackopenrepo3.js
|
|
7962
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
7963
|
+
/** @typedef {{}} Pluginrackopenrepo3Inputs */
|
|
7964
|
+
var en_pluginrackopenrepo3 = () => {
|
|
7965
|
+
return `Open the plugin repo`;
|
|
7966
|
+
};
|
|
7967
|
+
var zh_pluginrackopenrepo3 = () => {
|
|
7968
|
+
return `打开插件仓库`;
|
|
7969
|
+
};
|
|
7970
|
+
var id_pluginrackopenrepo3 = () => {
|
|
7971
|
+
return `Buka repo plugin`;
|
|
7972
|
+
};
|
|
7973
|
+
var es_pluginrackopenrepo3 = () => {
|
|
7974
|
+
return `Abrir el repositorio del plugin`;
|
|
7975
|
+
};
|
|
7976
|
+
/**
|
|
7977
|
+
* | output |
|
|
7978
|
+
* | --- |
|
|
7979
|
+
* | "Open the plugin repo" |
|
|
7980
|
+
*
|
|
7981
|
+
* @param {Pluginrackopenrepo3Inputs} inputs
|
|
7982
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
7983
|
+
* @returns {LocalizedString}
|
|
7984
|
+
*/
|
|
7985
|
+
var pluginrackopenrepo3 = ((inputs = {}, options = {}) => {
|
|
7986
|
+
const locale = options.locale ?? getLocale();
|
|
7987
|
+
if (locale === "zh") return zh_pluginrackopenrepo3();
|
|
7988
|
+
if (locale === "id") return id_pluginrackopenrepo3();
|
|
7989
|
+
if (locale === "es") return es_pluginrackopenrepo3();
|
|
7990
|
+
return en_pluginrackopenrepo3();
|
|
7991
|
+
});
|
|
7992
|
+
//#endregion
|
|
7993
|
+
//#region src/lib/paraglide/messages/pluginrackreload2.js
|
|
7994
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
7995
|
+
/** @typedef {{}} Pluginrackreload2Inputs */
|
|
7996
|
+
var en_pluginrackreload2 = () => {
|
|
7997
|
+
return `Reload`;
|
|
7998
|
+
};
|
|
7999
|
+
var zh_pluginrackreload2 = () => {
|
|
8000
|
+
return `重新加载`;
|
|
8001
|
+
};
|
|
8002
|
+
var id_pluginrackreload2 = () => {
|
|
8003
|
+
return `Muat ulang`;
|
|
8004
|
+
};
|
|
8005
|
+
var es_pluginrackreload2 = () => {
|
|
8006
|
+
return `Recargar`;
|
|
8007
|
+
};
|
|
8008
|
+
/**
|
|
8009
|
+
* | output |
|
|
8010
|
+
* | --- |
|
|
8011
|
+
* | "Reload" |
|
|
8012
|
+
*
|
|
8013
|
+
* @param {Pluginrackreload2Inputs} inputs
|
|
8014
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
8015
|
+
* @returns {LocalizedString}
|
|
8016
|
+
*/
|
|
8017
|
+
var pluginrackreload2 = ((inputs = {}, options = {}) => {
|
|
8018
|
+
const locale = options.locale ?? getLocale();
|
|
8019
|
+
if (locale === "zh") return zh_pluginrackreload2();
|
|
8020
|
+
if (locale === "id") return id_pluginrackreload2();
|
|
8021
|
+
if (locale === "es") return es_pluginrackreload2();
|
|
8022
|
+
return en_pluginrackreload2();
|
|
8023
|
+
});
|
|
8024
|
+
//#endregion
|
|
8025
|
+
//#region src/lib/paraglide/messages/pluginrackretry2.js
|
|
8026
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
8027
|
+
/** @typedef {{}} Pluginrackretry2Inputs */
|
|
8028
|
+
var en_pluginrackretry2 = () => {
|
|
8029
|
+
return `Retry`;
|
|
8030
|
+
};
|
|
8031
|
+
var zh_pluginrackretry2 = () => {
|
|
8032
|
+
return `重试`;
|
|
8033
|
+
};
|
|
8034
|
+
var id_pluginrackretry2 = () => {
|
|
8035
|
+
return `Coba lagi`;
|
|
8036
|
+
};
|
|
8037
|
+
var es_pluginrackretry2 = () => {
|
|
8038
|
+
return `Reintentar`;
|
|
8039
|
+
};
|
|
8040
|
+
/**
|
|
8041
|
+
* | output |
|
|
8042
|
+
* | --- |
|
|
8043
|
+
* | "Retry" |
|
|
8044
|
+
*
|
|
8045
|
+
* @param {Pluginrackretry2Inputs} inputs
|
|
8046
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
8047
|
+
* @returns {LocalizedString}
|
|
8048
|
+
*/
|
|
8049
|
+
var pluginrackretry2 = ((inputs = {}, options = {}) => {
|
|
8050
|
+
const locale = options.locale ?? getLocale();
|
|
8051
|
+
if (locale === "zh") return zh_pluginrackretry2();
|
|
8052
|
+
if (locale === "id") return id_pluginrackretry2();
|
|
8053
|
+
if (locale === "es") return es_pluginrackretry2();
|
|
8054
|
+
return en_pluginrackretry2();
|
|
8055
|
+
});
|
|
8056
|
+
//#endregion
|
|
8057
|
+
//#region src/lib/paraglide/messages/pluginracksearch2.js
|
|
8058
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
8059
|
+
/** @typedef {{}} Pluginracksearch2Inputs */
|
|
8060
|
+
var en_pluginracksearch2 = () => {
|
|
8061
|
+
return `Search plugins`;
|
|
8062
|
+
};
|
|
8063
|
+
var zh_pluginracksearch2 = () => {
|
|
8064
|
+
return `搜索插件`;
|
|
8065
|
+
};
|
|
8066
|
+
var id_pluginracksearch2 = () => {
|
|
8067
|
+
return `Cari plugin`;
|
|
8068
|
+
};
|
|
8069
|
+
var es_pluginracksearch2 = () => {
|
|
8070
|
+
return `Buscar plugins`;
|
|
8071
|
+
};
|
|
8072
|
+
/**
|
|
8073
|
+
* | output |
|
|
8074
|
+
* | --- |
|
|
8075
|
+
* | "Search plugins" |
|
|
8076
|
+
*
|
|
8077
|
+
* @param {Pluginracksearch2Inputs} inputs
|
|
8078
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
8079
|
+
* @returns {LocalizedString}
|
|
8080
|
+
*/
|
|
8081
|
+
var pluginracksearch2 = ((inputs = {}, options = {}) => {
|
|
8082
|
+
const locale = options.locale ?? getLocale();
|
|
8083
|
+
if (locale === "zh") return zh_pluginracksearch2();
|
|
8084
|
+
if (locale === "id") return id_pluginracksearch2();
|
|
8085
|
+
if (locale === "es") return es_pluginracksearch2();
|
|
8086
|
+
return en_pluginracksearch2();
|
|
8087
|
+
});
|
|
8088
|
+
//#endregion
|
|
8089
|
+
//#region src/lib/paraglide/messages/pluginracktitle2.js
|
|
8090
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
8091
|
+
/** @typedef {{}} Pluginracktitle2Inputs */
|
|
8092
|
+
var en_pluginracktitle2 = () => {
|
|
8093
|
+
return `Plugin Rack`;
|
|
8094
|
+
};
|
|
8095
|
+
var zh_pluginracktitle2 = () => {
|
|
8096
|
+
return `插件架`;
|
|
8097
|
+
};
|
|
8098
|
+
var id_pluginracktitle2 = () => {
|
|
8099
|
+
return `Rak Plugin`;
|
|
8100
|
+
};
|
|
8101
|
+
var es_pluginracktitle2 = () => {
|
|
8102
|
+
return `Rack de plugins`;
|
|
8103
|
+
};
|
|
8104
|
+
/**
|
|
8105
|
+
* | output |
|
|
8106
|
+
* | --- |
|
|
8107
|
+
* | "Plugin Rack" |
|
|
8108
|
+
*
|
|
8109
|
+
* @param {Pluginracktitle2Inputs} inputs
|
|
8110
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
8111
|
+
* @returns {LocalizedString}
|
|
8112
|
+
*/
|
|
8113
|
+
var pluginracktitle2 = ((inputs = {}, options = {}) => {
|
|
8114
|
+
const locale = options.locale ?? getLocale();
|
|
8115
|
+
if (locale === "zh") return zh_pluginracktitle2();
|
|
8116
|
+
if (locale === "id") return id_pluginracktitle2();
|
|
8117
|
+
if (locale === "es") return es_pluginracktitle2();
|
|
8118
|
+
return en_pluginracktitle2();
|
|
8119
|
+
});
|
|
8120
|
+
//#endregion
|
|
8121
|
+
//#region src/lib/paraglide/messages/pluginrackuninstall2.js
|
|
8122
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
8123
|
+
/** @typedef {{}} Pluginrackuninstall2Inputs */
|
|
8124
|
+
var en_pluginrackuninstall2 = () => {
|
|
8125
|
+
return `Uninstall`;
|
|
8126
|
+
};
|
|
8127
|
+
var zh_pluginrackuninstall2 = () => {
|
|
8128
|
+
return `卸载`;
|
|
8129
|
+
};
|
|
8130
|
+
var id_pluginrackuninstall2 = () => {
|
|
8131
|
+
return `Copot`;
|
|
8132
|
+
};
|
|
8133
|
+
var es_pluginrackuninstall2 = () => {
|
|
8134
|
+
return `Desinstalar`;
|
|
8135
|
+
};
|
|
8136
|
+
/**
|
|
8137
|
+
* | output |
|
|
8138
|
+
* | --- |
|
|
8139
|
+
* | "Uninstall" |
|
|
8140
|
+
*
|
|
8141
|
+
* @param {Pluginrackuninstall2Inputs} inputs
|
|
8142
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
8143
|
+
* @returns {LocalizedString}
|
|
8144
|
+
*/
|
|
8145
|
+
var pluginrackuninstall2 = ((inputs = {}, options = {}) => {
|
|
8146
|
+
const locale = options.locale ?? getLocale();
|
|
8147
|
+
if (locale === "zh") return zh_pluginrackuninstall2();
|
|
8148
|
+
if (locale === "id") return id_pluginrackuninstall2();
|
|
8149
|
+
if (locale === "es") return es_pluginrackuninstall2();
|
|
8150
|
+
return en_pluginrackuninstall2();
|
|
8151
|
+
});
|
|
8152
|
+
//#endregion
|
|
8153
|
+
//#region src/lib/paraglide/messages/pluginrackuninstallempty3.js
|
|
8154
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
8155
|
+
/** @typedef {{}} Pluginrackuninstallempty3Inputs */
|
|
8156
|
+
var en_pluginrackuninstallempty3 = () => {
|
|
8157
|
+
return `Nothing installed yet - install a plugin from the install tab.`;
|
|
8158
|
+
};
|
|
8159
|
+
var zh_pluginrackuninstallempty3 = () => {
|
|
8160
|
+
return `尚未安装任何插件 - 请在安装标签页中安装。`;
|
|
8161
|
+
};
|
|
8162
|
+
var id_pluginrackuninstallempty3 = () => {
|
|
8163
|
+
return `Belum ada yang terpasang - instal plugin dari tab instal.`;
|
|
8164
|
+
};
|
|
8165
|
+
var es_pluginrackuninstallempty3 = () => {
|
|
8166
|
+
return `Nada instalado todavía: instala un plugin desde la pestaña de instalación.`;
|
|
8167
|
+
};
|
|
8168
|
+
/**
|
|
8169
|
+
* | output |
|
|
8170
|
+
* | --- |
|
|
8171
|
+
* | "Nothing installed yet - install a plugin from the install tab." |
|
|
7468
8172
|
*
|
|
7469
|
-
* @param {
|
|
8173
|
+
* @param {Pluginrackuninstallempty3Inputs} inputs
|
|
7470
8174
|
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
7471
8175
|
* @returns {LocalizedString}
|
|
7472
8176
|
*/
|
|
7473
|
-
var
|
|
8177
|
+
var pluginrackuninstallempty3 = ((inputs = {}, options = {}) => {
|
|
7474
8178
|
const locale = options.locale ?? getLocale();
|
|
7475
|
-
if (locale === "zh") return
|
|
7476
|
-
if (locale === "id") return
|
|
7477
|
-
if (locale === "es") return
|
|
7478
|
-
return
|
|
8179
|
+
if (locale === "zh") return zh_pluginrackuninstallempty3();
|
|
8180
|
+
if (locale === "id") return id_pluginrackuninstallempty3();
|
|
8181
|
+
if (locale === "es") return es_pluginrackuninstallempty3();
|
|
8182
|
+
return en_pluginrackuninstallempty3();
|
|
7479
8183
|
});
|
|
7480
8184
|
//#endregion
|
|
7481
|
-
//#region src/lib/paraglide/messages/
|
|
8185
|
+
//#region src/lib/paraglide/messages/pluginrackuninstalling2.js
|
|
7482
8186
|
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
7483
|
-
/** @typedef {{}}
|
|
7484
|
-
var
|
|
7485
|
-
return `
|
|
8187
|
+
/** @typedef {{}} Pluginrackuninstalling2Inputs */
|
|
8188
|
+
var en_pluginrackuninstalling2 = () => {
|
|
8189
|
+
return `Removing…`;
|
|
7486
8190
|
};
|
|
7487
|
-
var
|
|
7488
|
-
return
|
|
8191
|
+
var zh_pluginrackuninstalling2 = () => {
|
|
8192
|
+
return `卸载中…`;
|
|
7489
8193
|
};
|
|
7490
|
-
var
|
|
7491
|
-
return `
|
|
8194
|
+
var id_pluginrackuninstalling2 = () => {
|
|
8195
|
+
return `Mencopot…`;
|
|
7492
8196
|
};
|
|
7493
|
-
var
|
|
7494
|
-
return `
|
|
8197
|
+
var es_pluginrackuninstalling2 = () => {
|
|
8198
|
+
return `Desinstalando…`;
|
|
7495
8199
|
};
|
|
7496
8200
|
/**
|
|
7497
8201
|
* | output |
|
|
7498
8202
|
* | --- |
|
|
7499
|
-
* | "
|
|
8203
|
+
* | "Removing…" |
|
|
7500
8204
|
*
|
|
7501
|
-
* @param {
|
|
8205
|
+
* @param {Pluginrackuninstalling2Inputs} inputs
|
|
7502
8206
|
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
7503
8207
|
* @returns {LocalizedString}
|
|
7504
8208
|
*/
|
|
7505
|
-
var
|
|
8209
|
+
var pluginrackuninstalling2 = ((inputs = {}, options = {}) => {
|
|
7506
8210
|
const locale = options.locale ?? getLocale();
|
|
7507
|
-
if (locale === "zh") return
|
|
7508
|
-
if (locale === "id") return
|
|
7509
|
-
if (locale === "es") return
|
|
7510
|
-
return
|
|
8211
|
+
if (locale === "zh") return zh_pluginrackuninstalling2();
|
|
8212
|
+
if (locale === "id") return id_pluginrackuninstalling2();
|
|
8213
|
+
if (locale === "es") return es_pluginrackuninstalling2();
|
|
8214
|
+
return en_pluginrackuninstalling2();
|
|
7511
8215
|
});
|
|
7512
8216
|
//#endregion
|
|
7513
8217
|
//#region src/lib/paraglide/messages/plusadd1.js
|
|
@@ -12623,6 +13327,11 @@ var _index_exports = /* @__PURE__ */ __exportAll({
|
|
|
12623
13327
|
collapseLineage: () => collapselineage1,
|
|
12624
13328
|
collapseSidebar: () => collapsesidebar1,
|
|
12625
13329
|
commandHelp: () => commandhelp1,
|
|
13330
|
+
commandHelpPluginrackExampleBare: () => commandhelppluginrackexamplebare4,
|
|
13331
|
+
commandHelpPluginrackExampleHelp: () => commandhelppluginrackexamplehelp4,
|
|
13332
|
+
commandHelpPluginrackExampleReload: () => commandhelppluginrackexamplereload4,
|
|
13333
|
+
commandHelpPluginrackParamReload: () => commandhelppluginrackparamreload4,
|
|
13334
|
+
commandHelpPluginrackSummary: () => commandhelppluginracksummary3,
|
|
12626
13335
|
commandHelpSkillshelfExampleBare: () => commandhelpskillshelfexamplebare4,
|
|
12627
13336
|
commandHelpSkillshelfExampleHelp: () => commandhelpskillshelfexamplehelp4,
|
|
12628
13337
|
commandHelpSkillshelfExampleReload: () => commandhelpskillshelfexamplereload4,
|
|
@@ -12804,6 +13513,23 @@ var _index_exports = /* @__PURE__ */ __exportAll({
|
|
|
12804
13513
|
pendingAttachments: () => pendingattachments1,
|
|
12805
13514
|
pickSession: () => picksession1,
|
|
12806
13515
|
planMode: () => planmode1,
|
|
13516
|
+
pluginRackApplying: () => pluginrackapplying2,
|
|
13517
|
+
pluginRackBy: () => pluginrackby2,
|
|
13518
|
+
pluginRackEmpty: () => pluginrackempty2,
|
|
13519
|
+
pluginRackInstall: () => pluginrackinstall2,
|
|
13520
|
+
pluginRackInstallEmpty: () => pluginrackinstallempty3,
|
|
13521
|
+
pluginRackInstalled: () => pluginrackinstalled2,
|
|
13522
|
+
pluginRackInstalling: () => pluginrackinstalling2,
|
|
13523
|
+
pluginRackLoadFailed: () => pluginrackloadfailed3,
|
|
13524
|
+
pluginRackOpenAuthor: () => pluginrackopenauthor3,
|
|
13525
|
+
pluginRackOpenRepo: () => pluginrackopenrepo3,
|
|
13526
|
+
pluginRackReload: () => pluginrackreload2,
|
|
13527
|
+
pluginRackRetry: () => pluginrackretry2,
|
|
13528
|
+
pluginRackSearch: () => pluginracksearch2,
|
|
13529
|
+
pluginRackTitle: () => pluginracktitle2,
|
|
13530
|
+
pluginRackUninstall: () => pluginrackuninstall2,
|
|
13531
|
+
pluginRackUninstallEmpty: () => pluginrackuninstallempty3,
|
|
13532
|
+
pluginRackUninstalling: () => pluginrackuninstalling2,
|
|
12807
13533
|
plusAdd: () => plusadd1,
|
|
12808
13534
|
presetCustom: () => presetcustom1,
|
|
12809
13535
|
presetFullAccess: () => presetfullaccess2,
|
|
@@ -13024,6 +13750,11 @@ var messages_exports = /* @__PURE__ */ __exportAll({
|
|
|
13024
13750
|
collapseLineage: () => collapselineage1,
|
|
13025
13751
|
collapseSidebar: () => collapsesidebar1,
|
|
13026
13752
|
commandHelp: () => commandhelp1,
|
|
13753
|
+
commandHelpPluginrackExampleBare: () => commandhelppluginrackexamplebare4,
|
|
13754
|
+
commandHelpPluginrackExampleHelp: () => commandhelppluginrackexamplehelp4,
|
|
13755
|
+
commandHelpPluginrackExampleReload: () => commandhelppluginrackexamplereload4,
|
|
13756
|
+
commandHelpPluginrackParamReload: () => commandhelppluginrackparamreload4,
|
|
13757
|
+
commandHelpPluginrackSummary: () => commandhelppluginracksummary3,
|
|
13027
13758
|
commandHelpSkillshelfExampleBare: () => commandhelpskillshelfexamplebare4,
|
|
13028
13759
|
commandHelpSkillshelfExampleHelp: () => commandhelpskillshelfexamplehelp4,
|
|
13029
13760
|
commandHelpSkillshelfExampleReload: () => commandhelpskillshelfexamplereload4,
|
|
@@ -13206,6 +13937,23 @@ var messages_exports = /* @__PURE__ */ __exportAll({
|
|
|
13206
13937
|
pendingAttachments: () => pendingattachments1,
|
|
13207
13938
|
pickSession: () => picksession1,
|
|
13208
13939
|
planMode: () => planmode1,
|
|
13940
|
+
pluginRackApplying: () => pluginrackapplying2,
|
|
13941
|
+
pluginRackBy: () => pluginrackby2,
|
|
13942
|
+
pluginRackEmpty: () => pluginrackempty2,
|
|
13943
|
+
pluginRackInstall: () => pluginrackinstall2,
|
|
13944
|
+
pluginRackInstallEmpty: () => pluginrackinstallempty3,
|
|
13945
|
+
pluginRackInstalled: () => pluginrackinstalled2,
|
|
13946
|
+
pluginRackInstalling: () => pluginrackinstalling2,
|
|
13947
|
+
pluginRackLoadFailed: () => pluginrackloadfailed3,
|
|
13948
|
+
pluginRackOpenAuthor: () => pluginrackopenauthor3,
|
|
13949
|
+
pluginRackOpenRepo: () => pluginrackopenrepo3,
|
|
13950
|
+
pluginRackReload: () => pluginrackreload2,
|
|
13951
|
+
pluginRackRetry: () => pluginrackretry2,
|
|
13952
|
+
pluginRackSearch: () => pluginracksearch2,
|
|
13953
|
+
pluginRackTitle: () => pluginracktitle2,
|
|
13954
|
+
pluginRackUninstall: () => pluginrackuninstall2,
|
|
13955
|
+
pluginRackUninstallEmpty: () => pluginrackuninstallempty3,
|
|
13956
|
+
pluginRackUninstalling: () => pluginrackuninstalling2,
|
|
13209
13957
|
plusAdd: () => plusadd1,
|
|
13210
13958
|
presetCustom: () => presetcustom1,
|
|
13211
13959
|
presetFullAccess: () => presetfullaccess2,
|
|
@@ -15163,13 +15911,46 @@ function renderMarkdown(text) {
|
|
|
15163
15911
|
function renderInline(text) {
|
|
15164
15912
|
const codeSpans = [];
|
|
15165
15913
|
let rest = text.replace(/`([^`\n]+)`/g, (_m, body) => {
|
|
15166
|
-
|
|
15914
|
+
const raw = unescapeEntities(body);
|
|
15915
|
+
if (/^https?:\/\/\S+$/i.test(raw)) codeSpans.push(externalAnchor(raw));
|
|
15916
|
+
else codeSpans.push(`<code>${body}</code>`);
|
|
15167
15917
|
return `\u0000${codeSpans.length - 1}\u0000`;
|
|
15168
15918
|
});
|
|
15169
15919
|
rest = emphasis(rest);
|
|
15170
15920
|
rest = links(rest);
|
|
15921
|
+
rest = autolinkBareUrls(rest);
|
|
15171
15922
|
return rest.replace(/\u0000(\d+)\u0000/g, (_m, idx) => codeSpans[Number(idx)] ?? "");
|
|
15172
15923
|
}
|
|
15924
|
+
/** One hardened external anchor from a RAW url — display is origin+path
|
|
15925
|
+
* (query/fragment stripped), href keeps everything (BC-12 attributes). */
|
|
15926
|
+
function externalAnchor(rawUrl) {
|
|
15927
|
+
let cut = rawUrl.length;
|
|
15928
|
+
for (const c of ["?", "#"]) {
|
|
15929
|
+
const i = rawUrl.indexOf(c);
|
|
15930
|
+
if (i !== -1 && i < cut) cut = i;
|
|
15931
|
+
}
|
|
15932
|
+
return `<a href="${rawUrl.replaceAll("\"", """)}" rel="noopener noreferrer" target="_blank">${rawUrl.slice(0, cut)}</a>`;
|
|
15933
|
+
}
|
|
15934
|
+
/**
|
|
15935
|
+
* Bare-URL autolink (2026-09-27): an http(s) URL in plain text becomes an
|
|
15936
|
+
* anchor whose DISPLAY TEXT is the origin+path with the query/hash stripped
|
|
15937
|
+
* (transcript URLs like …new?merge_request[source_branch]=… render short)
|
|
15938
|
+
* while the HREF keeps the FULL URL. Runs after [label](href) parsing and
|
|
15939
|
+
* skips text inside existing anchors/code placeholders (\u0000N\u0000 markers).
|
|
15940
|
+
* Trailing punctuation ),.,;:!?'"] and matching surrounding parens stay
|
|
15941
|
+
* outside the link (CommonMark's autolink tail rule).
|
|
15942
|
+
*/
|
|
15943
|
+
function autolinkBareUrls(text) {
|
|
15944
|
+
return text.replace(/https?:\/\/[^\s<>"'\u0000]+/gi, (whole, offset, full) => {
|
|
15945
|
+
const before = full.slice(Math.max(0, offset - 2e3), offset);
|
|
15946
|
+
if (/<a\s[^>]*$/i.test(before) || /<code>[^<]*$/i.test(before)) return whole;
|
|
15947
|
+
let url = whole;
|
|
15948
|
+
while (url.endsWith(")") && (url.match(/\(/g)?.length ?? 0) < (url.match(/\)/g)?.length ?? 0)) url = url.slice(0, -1);
|
|
15949
|
+
url = url.replace(/[.,;:!?]+$/, "");
|
|
15950
|
+
const tail = whole.slice(url.length);
|
|
15951
|
+
return `${externalAnchor(url)}${tail}`;
|
|
15952
|
+
});
|
|
15953
|
+
}
|
|
15173
15954
|
/** ***bold-italic***, **bold**, *italic*, _italic_, ~~strike~~. */
|
|
15174
15955
|
function emphasis(text) {
|
|
15175
15956
|
return text.replace(/\*\*\*(.+?)\*\*\*/g, "<strong><em>$1</em></strong>").replace(/\*\*(.+?)\*\*/g, "<strong>$1</strong>").replace(/\*(.+?)\*/g, "<em>$1</em>").replace(/(?<![\w])_(.+?)_(?![\w])/g, "<em>$1</em>").replace(/~~(.+?)~~/g, "<del>$1</del>");
|
|
@@ -15182,10 +15963,10 @@ function emphasis(text) {
|
|
|
15182
15963
|
*/
|
|
15183
15964
|
function links(text) {
|
|
15184
15965
|
return text.replace(/\[([^\]]+)\]\(([^)\s]+)\)/g, (whole, label, href) => {
|
|
15185
|
-
const
|
|
15186
|
-
if (/^https?:\/\//i.test(
|
|
15187
|
-
if (/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(
|
|
15188
|
-
return `<a href="${
|
|
15966
|
+
const bare = href.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll(""", "\"").replaceAll("'", "'").replace(/^<(.+)>$/, "$1");
|
|
15967
|
+
if (/^https?:\/\//i.test(bare)) return `<a href="${bare.replaceAll("\"", """)}" rel="noopener noreferrer" target="_blank">${label}</a>`;
|
|
15968
|
+
if (/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(bare) || bare.startsWith("//")) return whole;
|
|
15969
|
+
return `<a href="${bare.replaceAll("\"", """)}">${label}</a>`;
|
|
15189
15970
|
});
|
|
15190
15971
|
}
|
|
15191
15972
|
//#endregion
|
|
@@ -18108,6 +18889,7 @@ function panelHeaderLabel(panel) {
|
|
|
18108
18889
|
if (panel.kind === "terminal") return "Terminal";
|
|
18109
18890
|
if (panel.kind === "prompt-manager") return MANAGER_ROW_TITLE;
|
|
18110
18891
|
if (panel.kind === "skill-shelf") return "Skill Shelf";
|
|
18892
|
+
if (panel.kind === "plugin-rack") return "Plugin Rack";
|
|
18111
18893
|
if (panel.kind === "settings-editor") return SETTINGS_ROW_TITLE[panel.target];
|
|
18112
18894
|
if (panel.kind === "injected-doc") return injectedDocTitle(panel.displayPath);
|
|
18113
18895
|
if (panel.kind === "workspace-explorer") return panel.title ?? workspaceExplorerTitle(panel.root);
|
|
@@ -18133,9 +18915,9 @@ function panelRowsFor(input) {
|
|
|
18133
18915
|
const { panels, spineRows, coldCache, deadSessions, edgeCache, lineageFacts, moveFacts } = input;
|
|
18134
18916
|
const openSessionIds = openSessionIdsOf(panels);
|
|
18135
18917
|
return panels.map((p, index) => {
|
|
18136
|
-
if (p.kind === "terminal" || p.kind === "prompt-manager" || p.kind === "settings-editor" || p.kind === "skill-shelf") return {
|
|
18918
|
+
if (p.kind === "terminal" || p.kind === "prompt-manager" || p.kind === "settings-editor" || p.kind === "skill-shelf" || p.kind === "plugin-rack") return {
|
|
18137
18919
|
panel: p,
|
|
18138
|
-
title: p.kind === "terminal" ? "Terminal" : p.kind === "prompt-manager" ? MANAGER_ROW_TITLE : p.kind === "skill-shelf" ? "Skill Shelf" : SETTINGS_ROW_TITLE[p.target],
|
|
18920
|
+
title: p.kind === "terminal" ? "Terminal" : p.kind === "prompt-manager" ? MANAGER_ROW_TITLE : p.kind === "skill-shelf" ? "Skill Shelf" : p.kind === "plugin-rack" ? "Plugin Rack" : SETTINGS_ROW_TITLE[p.target],
|
|
18139
18921
|
workspace: null,
|
|
18140
18922
|
dead: false,
|
|
18141
18923
|
running: false,
|
|
@@ -18355,6 +19137,20 @@ function parseCommand(text) {
|
|
|
18355
19137
|
}[token],
|
|
18356
19138
|
args
|
|
18357
19139
|
};
|
|
19140
|
+
case "/dsi-plugins":
|
|
19141
|
+
if (args === "") return {
|
|
19142
|
+
type: "pluginrack",
|
|
19143
|
+
args
|
|
19144
|
+
};
|
|
19145
|
+
if (args === "--reload") return {
|
|
19146
|
+
type: "pluginrack",
|
|
19147
|
+
args: "",
|
|
19148
|
+
reload: true
|
|
19149
|
+
};
|
|
19150
|
+
return {
|
|
19151
|
+
type: "pluginrack",
|
|
19152
|
+
args
|
|
19153
|
+
};
|
|
18358
19154
|
case "/dsi-skills":
|
|
18359
19155
|
if (args === "") return {
|
|
18360
19156
|
type: "skillshelf",
|
|
@@ -18551,6 +19347,38 @@ var COMMAND_HELP = {
|
|
|
18551
19347
|
}
|
|
18552
19348
|
]
|
|
18553
19349
|
},
|
|
19350
|
+
pluginrack: {
|
|
19351
|
+
usage: "/dsi-plugins [--reload]",
|
|
19352
|
+
get summary() {
|
|
19353
|
+
return t(commandhelppluginracksummary3);
|
|
19354
|
+
},
|
|
19355
|
+
params: [{
|
|
19356
|
+
name: "--reload",
|
|
19357
|
+
get description() {
|
|
19358
|
+
return t(commandhelppluginrackparamreload4);
|
|
19359
|
+
}
|
|
19360
|
+
}],
|
|
19361
|
+
examples: [
|
|
19362
|
+
{
|
|
19363
|
+
line: "/dsi-plugins",
|
|
19364
|
+
get description() {
|
|
19365
|
+
return t(commandhelppluginrackexamplebare4);
|
|
19366
|
+
}
|
|
19367
|
+
},
|
|
19368
|
+
{
|
|
19369
|
+
line: "/dsi-plugins --reload",
|
|
19370
|
+
get description() {
|
|
19371
|
+
return t(commandhelppluginrackexamplereload4);
|
|
19372
|
+
}
|
|
19373
|
+
},
|
|
19374
|
+
{
|
|
19375
|
+
line: "/dsi-plugins ?",
|
|
19376
|
+
get description() {
|
|
19377
|
+
return t(commandhelppluginrackexamplehelp4);
|
|
19378
|
+
}
|
|
19379
|
+
}
|
|
19380
|
+
]
|
|
19381
|
+
},
|
|
18554
19382
|
dshsettings: {
|
|
18555
19383
|
usage: "/dsh-settings",
|
|
18556
19384
|
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.",
|
|
@@ -18634,6 +19462,14 @@ var MENU_GESTURES = [
|
|
|
18634
19462
|
return t(commandhelpskillshelfsummary3);
|
|
18635
19463
|
}
|
|
18636
19464
|
},
|
|
19465
|
+
{
|
|
19466
|
+
name: "pluginrack",
|
|
19467
|
+
display: "/dsi-plugins",
|
|
19468
|
+
seed: "/dsi-plugins ",
|
|
19469
|
+
get description() {
|
|
19470
|
+
return t(commandhelppluginracksummary3);
|
|
19471
|
+
}
|
|
19472
|
+
},
|
|
18637
19473
|
{
|
|
18638
19474
|
name: "dsisettings",
|
|
18639
19475
|
display: "/dsi-settings",
|
|
@@ -20054,7 +20890,7 @@ function hasDotDotSegment(path) {
|
|
|
20054
20890
|
* it never breaks the open).
|
|
20055
20891
|
*/
|
|
20056
20892
|
function parseFileLinkHref(href) {
|
|
20057
|
-
const value = href.trim();
|
|
20893
|
+
const value = stripAngleWrapper(href.trim());
|
|
20058
20894
|
const hash = value.indexOf("#");
|
|
20059
20895
|
const raw = hash === -1 ? value : value.slice(0, hash);
|
|
20060
20896
|
const anchor = hash === -1 ? "" : value.slice(hash + 1);
|
|
@@ -20080,8 +20916,14 @@ function parseFileLinkHref(href) {
|
|
|
20080
20916
|
lines
|
|
20081
20917
|
};
|
|
20082
20918
|
}
|
|
20919
|
+
/** CommonMark angle-bracket destinations (<path> and their %3C/%3E
|
|
20920
|
+
* encodings) are destination syntax, never path bytes - renderers that
|
|
20921
|
+
* hand the wrapper through must not have it reach the host read. */
|
|
20922
|
+
function stripAngleWrapper(value) {
|
|
20923
|
+
return value.replace(/^(?:%3C|<)/i, "").replace(/(?:%3E|>)$/i, "");
|
|
20924
|
+
}
|
|
20083
20925
|
function normalizeFileLinkPath(href) {
|
|
20084
|
-
let value = href.trim().replace(/^\.\//, "").replace(/\/{2,}/g, "/");
|
|
20926
|
+
let value = stripAngleWrapper(href.trim()).replace(/^\.\//, "").replace(/\/{2,}/g, "/");
|
|
20085
20927
|
const hash = value.indexOf("#");
|
|
20086
20928
|
if (hash !== -1) value = value.slice(0, hash);
|
|
20087
20929
|
if (value.startsWith("/")) value = value.slice(1);
|
|
@@ -24594,6 +25436,7 @@ async function executeCommand(command, ctx, onNote) {
|
|
|
24594
25436
|
if (command.type === "promptmanager") return runPromptManager(command.args, ctx, onNote);
|
|
24595
25437
|
if (command.type === "terminal") return runTerminal(command.args, command.terminalAction, ctx, onNote);
|
|
24596
25438
|
if (command.type === "skillshelf") return runSkillShelf(command.args, command.reload === true, ctx, onNote);
|
|
25439
|
+
if (command.type === "pluginrack") return runPluginRack(command.args, command.reload === true, ctx, onNote);
|
|
24597
25440
|
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);
|
|
24598
25441
|
if (command.type === "loadinjected") return runLoadInjected(command.filename, command.addPanel === true, ctx, onNote);
|
|
24599
25442
|
if (command.args !== "") {
|
|
@@ -24801,6 +25644,61 @@ async function runPromptManager(args, ctx, onNote) {
|
|
|
24801
25644
|
* forces the rebuild HERE so the panel's first fetch already carries the
|
|
24802
25645
|
* fresh snapshot. No note on success — the focused panel IS the feedback.
|
|
24803
25646
|
*/
|
|
25647
|
+
/**
|
|
25648
|
+
* /dsi-plugins (The Plugin Rack ADR, 2026-09-27, D1): aim the
|
|
25649
|
+
* PluginManagerPanel — the floor dedupes and FOCUSES the open rack (the
|
|
25650
|
+
* manager-request grammar). Snapshot-first is the ROUTE's contract
|
|
25651
|
+
* (GET /api/plugins/snapshot builds when absent, D2); the '--reload' flag
|
|
25652
|
+
* forces the rebuild HERE so the panel's first fetch already carries the
|
|
25653
|
+
* fresh snapshot. No note on success — the focused panel IS the feedback.
|
|
25654
|
+
*/
|
|
25655
|
+
async function runPluginRack(args, reload, ctx, onNote) {
|
|
25656
|
+
if (args !== "") {
|
|
25657
|
+
const usage = "usage: /dsi-plugins [--reload]";
|
|
25658
|
+
onNote?.(false, usage);
|
|
25659
|
+
return {
|
|
25660
|
+
ok: false,
|
|
25661
|
+
note: usage
|
|
25662
|
+
};
|
|
25663
|
+
}
|
|
25664
|
+
if (ctx.panelId == null) {
|
|
25665
|
+
const note = "/dsi-plugins needs a panel floor (open this session on the floor first)";
|
|
25666
|
+
onNote?.(false, note);
|
|
25667
|
+
return {
|
|
25668
|
+
ok: false,
|
|
25669
|
+
note
|
|
25670
|
+
};
|
|
25671
|
+
}
|
|
25672
|
+
if (reload) try {
|
|
25673
|
+
const res = await fetch("/api/plugins/reload", { method: "POST" });
|
|
25674
|
+
if (!res.ok) {
|
|
25675
|
+
const note = "/dsi-plugins: snapshot rebuild failed (" + res.status + ")";
|
|
25676
|
+
onNote?.(false, note);
|
|
25677
|
+
return {
|
|
25678
|
+
ok: false,
|
|
25679
|
+
note
|
|
25680
|
+
};
|
|
25681
|
+
}
|
|
25682
|
+
} catch {
|
|
25683
|
+
const note = "/dsi-plugins: snapshot rebuild failed (network)";
|
|
25684
|
+
onNote?.(false, note);
|
|
25685
|
+
return {
|
|
25686
|
+
ok: false,
|
|
25687
|
+
note
|
|
25688
|
+
};
|
|
25689
|
+
}
|
|
25690
|
+
if (!addPanel({
|
|
25691
|
+
afterSessionId: ctx.sessionId
|
|
25692
|
+
})) {
|
|
25693
|
+
const note = "/dsi-plugins: the floor is not mounted";
|
|
25694
|
+
onNote?.(false, note);
|
|
25695
|
+
return {
|
|
25696
|
+
ok: false,
|
|
25697
|
+
note
|
|
25698
|
+
};
|
|
25699
|
+
}
|
|
25700
|
+
return { ok: true };
|
|
25701
|
+
}
|
|
24804
25702
|
async function runSkillShelf(args, reload, ctx, onNote) {
|
|
24805
25703
|
if (args !== "") {
|
|
24806
25704
|
const usage = "usage: /dsi-skills [--reload]";
|
|
@@ -27126,11 +28024,11 @@ function SettingsSkillsToolbar($$renderer, $$props) {
|
|
|
27126
28024
|
});
|
|
27127
28025
|
}
|
|
27128
28026
|
//#endregion
|
|
27129
|
-
//#region src/lib/components/settings-skills/
|
|
27130
|
-
function
|
|
28027
|
+
//#region src/lib/components/settings-skills/SettingsSkillsHeaderTabs.svelte
|
|
28028
|
+
function SettingsSkillsHeaderTabs($$renderer, $$props) {
|
|
27131
28029
|
$$renderer.component(($$renderer) => {
|
|
27132
28030
|
/**
|
|
27133
|
-
*
|
|
28031
|
+
* SettingsSkillsHeaderTabs — the shelf's own tab pill (The Shelf
|
|
27134
28032
|
* Chrome, D3): the joined-pill segmented grammar (class:on,
|
|
27135
28033
|
* aria-pressed) speaking the shelf's native tab names directly —
|
|
27136
28034
|
* install / uninstall, plain labels, no counts. Install is the
|
|
@@ -27138,11 +28036,95 @@ function SettingsSkillsTabgroup($$renderer, $$props) {
|
|
|
27138
28036
|
* renders the two segments and reports picks.
|
|
27139
28037
|
*/
|
|
27140
28038
|
let { tab = "install"} = $$props;
|
|
27141
|
-
$$renderer.push(`<div data-svelte="
|
|
28039
|
+
$$renderer.push(`<div data-svelte="SettingsSkillsHeaderTabs" class="seg-group svelte-34npwv" role="group"${attr("aria-label", t(skillsshelftitle2))} data-testid="shelf-tab-group"><button type="button"${attr_class("seg left svelte-34npwv", void 0, { "on": tab === "install" })}${attr("aria-pressed", tab === "install")} data-testid="shelf-tab-install">${escape_html(t(skillsshelftabinstall3))}</button> <button type="button"${attr_class("seg right svelte-34npwv", void 0, { "on": tab === "uninstall" })}${attr("aria-pressed", tab === "uninstall")} data-testid="shelf-tab-uninstall">${escape_html(t(skillsshelftabuninstall3))}</button></div>`);
|
|
28040
|
+
});
|
|
28041
|
+
}
|
|
28042
|
+
//#endregion
|
|
28043
|
+
//#region src/lib/components/settings-skills/SettingsSkillsHeaderActions.svelte
|
|
28044
|
+
function SettingsSkillsHeaderActions($$renderer, $$props) {
|
|
28045
|
+
$$renderer.component(($$renderer) => {
|
|
28046
|
+
/**
|
|
28047
|
+
* SettingsSkillsHeaderActions - the shelf header's action cluster
|
|
28048
|
+
* (The Shelf Chrome ADR): the reload verb + progress/cancel
|
|
28049
|
+
* (install tab only) and the lineage-fold pill (cross-tab by
|
|
28050
|
+
* contract, ADR D2). Presentational: every verb and all state are
|
|
28051
|
+
* owned by SettingsSkillsPanel.
|
|
28052
|
+
*/
|
|
28053
|
+
let { tab, reloadState, busy} = $$props;
|
|
28054
|
+
$$renderer.push(`<div data-svelte="SettingsSkillsHeaderActions" class="shelf-header-actions svelte-1c0ydto">`);
|
|
28055
|
+
if (tab === "install") {
|
|
28056
|
+
$$renderer.push("<!--[0-->");
|
|
28057
|
+
$$renderer.push(`<button type="button"${attr_class("shelf-reload svelte-1c0ydto", void 0, {
|
|
28058
|
+
"reloading": reloadState === "loading",
|
|
28059
|
+
"reloaded": reloadState === "done"
|
|
28060
|
+
})} data-testid="shelf-reload"${attr("data-reload-state", reloadState)}${attr("title", reloadState === "loading" ? t(skillsshelfreloading2) : reloadState === "done" ? t(skillsshelfreloaded2) : t(skillsshelfreload2))}${attr("aria-label", reloadState === "loading" ? t(skillsshelfreloading2) : reloadState === "done" ? t(skillsshelfreloaded2) : t(skillsshelfreload2))}${attr("disabled", busy, true)}>`);
|
|
28061
|
+
if (reloadState === "loading") {
|
|
28062
|
+
$$renderer.push("<!--[0-->");
|
|
28063
|
+
Loader_circle($$renderer, {
|
|
28064
|
+
size: 13,
|
|
28065
|
+
"aria-hidden": "true"
|
|
28066
|
+
});
|
|
28067
|
+
} else if (reloadState === "done") {
|
|
28068
|
+
$$renderer.push("<!--[1-->");
|
|
28069
|
+
Check($$renderer, {
|
|
28070
|
+
size: 13,
|
|
28071
|
+
"aria-hidden": "true"
|
|
28072
|
+
});
|
|
28073
|
+
} else {
|
|
28074
|
+
$$renderer.push("<!--[-1-->");
|
|
28075
|
+
Rotate_cw($$renderer, {
|
|
28076
|
+
size: 13,
|
|
28077
|
+
"aria-hidden": "true"
|
|
28078
|
+
});
|
|
28079
|
+
}
|
|
28080
|
+
$$renderer.push(`<!--]--> `);
|
|
28081
|
+
$$renderer.push("<!--[-1-->");
|
|
28082
|
+
$$renderer.push(`<!--]--></button> `);
|
|
28083
|
+
if (tab === "install" && reloadState === "loading") {
|
|
28084
|
+
$$renderer.push("<!--[0-->");
|
|
28085
|
+
$$renderer.push(`<button type="button" class="shelf-reload-cancel svelte-1c0ydto" data-testid="shelf-reload-cancel"${attr("title", t(skillsshelfreloadcancel3))}${attr("aria-label", t(skillsshelfreloadcancel3))}>`);
|
|
28086
|
+
X($$renderer, {
|
|
28087
|
+
size: 13,
|
|
28088
|
+
"aria-hidden": "true"
|
|
28089
|
+
});
|
|
28090
|
+
$$renderer.push(`<!----></button>`);
|
|
28091
|
+
} else $$renderer.push("<!--[-1-->");
|
|
28092
|
+
$$renderer.push(`<!--]-->`);
|
|
28093
|
+
} else $$renderer.push("<!--[-1-->");
|
|
28094
|
+
$$renderer.push(`<!--]--> <div class="seg-group svelte-1c0ydto" role="group"${attr("aria-label", t(skillsshelftitle2))} data-testid="shelf-fold-toggle"><button type="button" class="seg left svelte-1c0ydto"${attr("aria-label", t(skillsshelfcollapseall3))}${attr("title", t(skillsshelfcollapseall3))} data-testid="shelf-collapse-all">`);
|
|
28095
|
+
Chevrons_down_up($$renderer, {
|
|
28096
|
+
size: 12,
|
|
28097
|
+
"aria-hidden": "true"
|
|
28098
|
+
});
|
|
28099
|
+
$$renderer.push(`<!----></button> <button type="button" class="seg right svelte-1c0ydto"${attr("aria-label", t(skillsshelfexpandall3))}${attr("title", t(skillsshelfexpandall3))} data-testid="shelf-expand-all">`);
|
|
28100
|
+
Chevrons_up_down($$renderer, {
|
|
28101
|
+
size: 12,
|
|
28102
|
+
"aria-hidden": "true"
|
|
28103
|
+
});
|
|
28104
|
+
$$renderer.push(`<!----></button></div></div>`);
|
|
27142
28105
|
});
|
|
27143
28106
|
}
|
|
27144
28107
|
//#endregion
|
|
27145
|
-
//#region src/lib/
|
|
28108
|
+
//#region src/lib/components/settings-skills/SettingsSkillsHeader.svelte
|
|
28109
|
+
function SettingsSkillsHeader($$renderer, $$props) {
|
|
28110
|
+
/**
|
|
28111
|
+
* SettingsSkillsHeader - the shelf chrome's header row (The Shelf
|
|
28112
|
+
* Chrome ADR): tab group on the left, action cluster on the right —
|
|
28113
|
+
* the reload verb + progress/cancel (install tab only) and the
|
|
28114
|
+
* lineage-fold pill (cross-tab by contract, ADR D2). Presentational:
|
|
28115
|
+
* every verb and all state are owned by SettingsSkillsPanel.
|
|
28116
|
+
*/
|
|
28117
|
+
let { tab, reloadState, busy} = $$props;
|
|
28118
|
+
$$renderer.push(`<div data-svelte="SettingsSkillsHeader" class="shelf-header svelte-17gmpcz" data-testid="shelf-header">`);
|
|
28119
|
+
SettingsSkillsHeaderTabs($$renderer, {
|
|
28120
|
+
tab});
|
|
28121
|
+
$$renderer.push(`<!----> `);
|
|
28122
|
+
SettingsSkillsHeaderActions($$renderer, {
|
|
28123
|
+
tab,
|
|
28124
|
+
reloadState,
|
|
28125
|
+
busy});
|
|
28126
|
+
$$renderer.push(`<!----></div>`);
|
|
28127
|
+
}
|
|
27146
28128
|
/**
|
|
27147
28129
|
* What the button should show RIGHT NOW. The deadline, not the mount moment,
|
|
27148
28130
|
* is the contract: a done blob past its doneAt reads idle even before the
|
|
@@ -27156,7 +28138,6 @@ function visiblePhase(state, now) {
|
|
|
27156
28138
|
function SettingsSkillsPanel($$renderer, $$props) {
|
|
27157
28139
|
$$renderer.component(($$renderer) => {
|
|
27158
28140
|
let busy = false;
|
|
27159
|
-
let progress = null;
|
|
27160
28141
|
const reloadState = derived(() => visiblePhase());
|
|
27161
28142
|
/** Persisted reload feedback (hard-reload survival): a restored
|
|
27162
28143
|
* 'done' lives out its remaining 5s window; a restored 'loading'
|
|
@@ -27181,64 +28162,149 @@ function SettingsSkillsPanel($$renderer, $$props) {
|
|
|
27181
28162
|
$$settled = false;
|
|
27182
28163
|
}
|
|
27183
28164
|
});
|
|
27184
|
-
$$renderer.push(`<!---->
|
|
27185
|
-
|
|
27186
|
-
tab
|
|
27187
|
-
|
|
27188
|
-
|
|
28165
|
+
$$renderer.push(`<!----> `);
|
|
28166
|
+
SettingsSkillsHeader($$renderer, {
|
|
28167
|
+
tab,
|
|
28168
|
+
reloadState: reloadState(),
|
|
28169
|
+
busy});
|
|
28170
|
+
$$renderer.push(`<!----> `);
|
|
28171
|
+
{
|
|
27189
28172
|
$$renderer.push("<!--[0-->");
|
|
27190
|
-
$$renderer.push(`<
|
|
27191
|
-
|
|
27192
|
-
|
|
27193
|
-
|
|
27194
|
-
|
|
27195
|
-
|
|
27196
|
-
|
|
27197
|
-
|
|
27198
|
-
|
|
27199
|
-
|
|
27200
|
-
|
|
27201
|
-
|
|
27202
|
-
|
|
27203
|
-
|
|
27204
|
-
|
|
27205
|
-
|
|
27206
|
-
|
|
27207
|
-
|
|
27208
|
-
|
|
27209
|
-
|
|
27210
|
-
|
|
27211
|
-
|
|
28173
|
+
$$renderer.push(`<p class="shelf-note svelte-lnunga" data-testid="shelf-loading">${escape_html(t(skillsshelfloading2))}</p>`);
|
|
28174
|
+
}
|
|
28175
|
+
$$renderer.push(`<!--]--></div>`);
|
|
28176
|
+
}
|
|
28177
|
+
do {
|
|
28178
|
+
$$settled = true;
|
|
28179
|
+
$$inner_renderer = $$renderer.copy();
|
|
28180
|
+
$$render_inner($$inner_renderer);
|
|
28181
|
+
} while (!$$settled);
|
|
28182
|
+
$$renderer.subsume($$inner_renderer);
|
|
28183
|
+
});
|
|
28184
|
+
}
|
|
28185
|
+
//#endregion
|
|
28186
|
+
//#region src/lib/components/settings-plugins/PluginManagerHeaderTabs.svelte
|
|
28187
|
+
function PluginManagerHeaderTabs($$renderer, $$props) {
|
|
28188
|
+
$$renderer.component(($$renderer) => {
|
|
28189
|
+
/**
|
|
28190
|
+
* PluginManagerHeaderTabs - the rack's install/uninstall tab pill
|
|
28191
|
+
* (The Plugin Rack ADR, 2026-09-27, D1), the shelf HeaderTabs'
|
|
28192
|
+
* joined-pill segmented grammar (SettingsSkillsHeaderTabs, D3):
|
|
28193
|
+
* presentational - tab state lives in PluginManagerPanel, this only
|
|
28194
|
+
* renders the two segments and reports picks.
|
|
28195
|
+
*/
|
|
28196
|
+
let { tab} = $$props;
|
|
28197
|
+
$$renderer.push(`<div data-svelte="PluginManagerHeaderTabs" class="seg-group svelte-srf628" role="group"${attr("aria-label", t(pluginracktitle2))} data-testid="rack-tabs"><button type="button"${attr_class("seg left svelte-srf628", void 0, { "on": tab === "install" })}${attr("aria-pressed", tab === "install")} data-testid="rack-tab-install">${escape_html(t(pluginrackinstall2))}</button> <button type="button"${attr_class("seg right svelte-srf628", void 0, { "on": tab === "uninstall" })}${attr("aria-pressed", tab === "uninstall")} data-testid="rack-tab-uninstall">${escape_html(t(pluginrackuninstall2))}</button></div>`);
|
|
28198
|
+
});
|
|
28199
|
+
}
|
|
28200
|
+
//#endregion
|
|
28201
|
+
//#region src/lib/components/settings-plugins/PluginManagerHeaderActions.svelte
|
|
28202
|
+
function PluginManagerHeaderActions($$renderer, $$props) {
|
|
28203
|
+
$$renderer.component(($$renderer) => {
|
|
28204
|
+
/**
|
|
28205
|
+
* PluginManagerHeaderActions - the rack header's action cluster,
|
|
28206
|
+
* the shelf HeaderActions' grammar (SettingsSkillsHeaderActions,
|
|
28207
|
+
* The Shelf Chrome ADR): the reload verb. Presentational: every
|
|
28208
|
+
* verb and all state are owned by PluginManagerPanel.
|
|
28209
|
+
*/
|
|
28210
|
+
let { loading, floorBounce} = $$props;
|
|
28211
|
+
$$renderer.push(`<div data-svelte="PluginManagerHeaderActions" class="rack-header-actions svelte-1g0idp7"><button class="rack-reload svelte-1g0idp7" type="button"${attr("title", t(pluginrackreload2))}${attr("aria-label", t(pluginrackreload2))} data-testid="rack-reload"${attr("disabled", loading || floorBounce, true)}>`);
|
|
28212
|
+
Rotate_cw($$renderer, { size: 14 });
|
|
28213
|
+
$$renderer.push(`<!----></button></div>`);
|
|
28214
|
+
});
|
|
28215
|
+
}
|
|
28216
|
+
//#endregion
|
|
28217
|
+
//#region src/lib/components/settings-plugins/PluginManagerHeader.svelte
|
|
28218
|
+
function PluginManagerHeader($$renderer, $$props) {
|
|
28219
|
+
/**
|
|
28220
|
+
* PluginManagerHeader - the rack chrome's header row (The Plugin Rack
|
|
28221
|
+
* ADR, 2026-09-27, D1), the shelf Header's grammar: the tab group on
|
|
28222
|
+
* the left, the action cluster on the right.
|
|
28223
|
+
* Presentational: every verb and all state are owned by
|
|
28224
|
+
* PluginManagerPanel.
|
|
28225
|
+
*/
|
|
28226
|
+
let { tab, loading, floorBounce} = $$props;
|
|
28227
|
+
$$renderer.push(`<div data-svelte="PluginManagerHeader" class="rack-head svelte-1lc924" data-testid="rack-header">`);
|
|
28228
|
+
PluginManagerHeaderTabs($$renderer, {
|
|
28229
|
+
tab});
|
|
28230
|
+
$$renderer.push(`<!----> `);
|
|
28231
|
+
PluginManagerHeaderActions($$renderer, {
|
|
28232
|
+
loading,
|
|
28233
|
+
floorBounce});
|
|
28234
|
+
$$renderer.push(`<!----></div>`);
|
|
28235
|
+
}
|
|
28236
|
+
//#endregion
|
|
28237
|
+
//#region src/lib/components/settings-plugins/PluginManagerToolbar.svelte
|
|
28238
|
+
function PluginManagerToolbar($$renderer, $$props) {
|
|
28239
|
+
$$renderer.component(($$renderer) => {
|
|
28240
|
+
/**
|
|
28241
|
+
* PluginManagerToolbar — the rack's first chrome row, the shelf
|
|
28242
|
+
* Toolbar's grammar (SettingsSkillsToolbar, The Shelf Chrome ADR D2):
|
|
28243
|
+
* LEFT the snapshot timestamp; RIGHT the search input and the panel
|
|
28244
|
+
* capture. Presentational: the panel owns searchQ ($bindable — the
|
|
28245
|
+
* box owns keystrokes, the panel owns the value); this renders the row.
|
|
28246
|
+
*/
|
|
28247
|
+
let { generatedAt, searchQ = "", container } = $$props;
|
|
28248
|
+
$$renderer.push(`<div data-svelte="PluginManagerToolbar" class="rack-toolbar svelte-m789m0" data-testid="rack-toolbar"><span class="rack-generated-label svelte-m789m0" data-testid="rack-generated">${escape_html(t(skillsshelfgeneratedat3))}: ${escape_html(generatedAt)}</span> <div class="rack-toolbar-actions svelte-m789m0"><input class="rack-search svelte-m789m0" type="search"${attr("placeholder", t(pluginracksearch2))}${attr("aria-label", t(pluginracksearch2))}${attr("value", searchQ)} data-testid="rack-search"/> <span class="copy-slot svelte-m789m0">`);
|
|
28249
|
+
CanvasCopyButton($$renderer, {
|
|
28250
|
+
container,
|
|
28251
|
+
mode: "visible",
|
|
28252
|
+
title: t(copypanelasimage3),
|
|
28253
|
+
size: 12
|
|
28254
|
+
});
|
|
28255
|
+
$$renderer.push(`<!----></span></div></div>`);
|
|
28256
|
+
bind_props($$props, { searchQ });
|
|
28257
|
+
});
|
|
28258
|
+
}
|
|
28259
|
+
//#endregion
|
|
28260
|
+
//#region src/lib/components/settings-plugins/PluginManagerPanel.svelte
|
|
28261
|
+
function PluginManagerPanel($$renderer, $$props) {
|
|
28262
|
+
$$renderer.component(($$renderer) => {
|
|
28263
|
+
/**
|
|
28264
|
+
* PluginManagerPanel — The Plugin Rack (ADR 2026-09-27, D1): the
|
|
28265
|
+
* panel is the STATE OWNER and owns its fetches (/api/plugins/*);
|
|
28266
|
+
* it never touches the engine or dsh. One list, per-row verb: an
|
|
28267
|
+
* uninstalled row offers install, an installed row offers uninstall
|
|
28268
|
+
* (the manifest is the uninstall authority, D4 — the snapshot's
|
|
28269
|
+
* installed flag is the API's derived copy). A successful apply ends
|
|
28270
|
+
* with the DSH restart chain: the floor goes down and re-attaches on
|
|
28271
|
+
* the same URL (D5) — the banner says so BEFORE the fetch storms.
|
|
28272
|
+
*/
|
|
28273
|
+
/** Persisted chrome (the explorer-tab pattern): the active pill tab.
|
|
28274
|
+
* Junk sanitizes to 'install'. */
|
|
28275
|
+
/** Reports the active tab up to the panel entry (hard-reload survival). */
|
|
28276
|
+
let { initialTab = "install"} = $$props;
|
|
28277
|
+
let loading = true;
|
|
28278
|
+
let floorBounce = false;
|
|
28279
|
+
let tab = initialTab === "uninstall" ? "uninstall" : "install";
|
|
28280
|
+
let searchQ = "";
|
|
28281
|
+
let rootEl = null;
|
|
28282
|
+
let $$settled = true;
|
|
28283
|
+
let $$inner_renderer;
|
|
28284
|
+
function $$render_inner($$renderer) {
|
|
28285
|
+
$$renderer.push(`<div data-svelte="PluginManagerPanel" class="rack svelte-z3jis1" data-testid="rack-body">`);
|
|
28286
|
+
PluginManagerToolbar($$renderer, {
|
|
28287
|
+
generatedAt: "",
|
|
28288
|
+
container: rootEl,
|
|
28289
|
+
get searchQ() {
|
|
28290
|
+
return searchQ;
|
|
28291
|
+
},
|
|
28292
|
+
set searchQ($$value) {
|
|
28293
|
+
searchQ = $$value;
|
|
28294
|
+
$$settled = false;
|
|
27212
28295
|
}
|
|
27213
|
-
$$renderer.push(`<!--]--> `);
|
|
27214
|
-
if (reloadState() === "loading" && progress);
|
|
27215
|
-
else $$renderer.push("<!--[-1-->");
|
|
27216
|
-
$$renderer.push(`<!--]--></button> `);
|
|
27217
|
-
if (tab === "install" && reloadState() === "loading") {
|
|
27218
|
-
$$renderer.push("<!--[0-->");
|
|
27219
|
-
$$renderer.push(`<button type="button" class="shelf-reload-cancel svelte-lnunga" data-testid="shelf-reload-cancel"${attr("title", t(skillsshelfreloadcancel3))}${attr("aria-label", t(skillsshelfreloadcancel3))}>`);
|
|
27220
|
-
X($$renderer, {
|
|
27221
|
-
size: 13,
|
|
27222
|
-
"aria-hidden": "true"
|
|
27223
|
-
});
|
|
27224
|
-
$$renderer.push(`<!----></button>`);
|
|
27225
|
-
} else $$renderer.push("<!--[-1-->");
|
|
27226
|
-
$$renderer.push(`<!--]-->`);
|
|
27227
|
-
} else $$renderer.push("<!--[-1-->");
|
|
27228
|
-
$$renderer.push(`<!--]--> <div class="seg-group svelte-lnunga" role="group"${attr("aria-label", t(skillsshelftitle2))} data-testid="shelf-fold-toggle"><button type="button" class="seg left svelte-lnunga"${attr("aria-label", t(skillsshelfcollapseall3))}${attr("title", t(skillsshelfcollapseall3))} data-testid="shelf-collapse-all">`);
|
|
27229
|
-
Chevrons_down_up($$renderer, {
|
|
27230
|
-
size: 12,
|
|
27231
|
-
"aria-hidden": "true"
|
|
27232
|
-
});
|
|
27233
|
-
$$renderer.push(`<!----></button> <button type="button" class="seg right svelte-lnunga"${attr("aria-label", t(skillsshelfexpandall3))}${attr("title", t(skillsshelfexpandall3))} data-testid="shelf-expand-all">`);
|
|
27234
|
-
Chevrons_up_down($$renderer, {
|
|
27235
|
-
size: 12,
|
|
27236
|
-
"aria-hidden": "true"
|
|
27237
28296
|
});
|
|
27238
|
-
$$renderer.push(
|
|
28297
|
+
$$renderer.push(`<!----> `);
|
|
28298
|
+
PluginManagerHeader($$renderer, {
|
|
28299
|
+
tab,
|
|
28300
|
+
loading,
|
|
28301
|
+
floorBounce});
|
|
28302
|
+
$$renderer.push(`<!----> `);
|
|
27239
28303
|
{
|
|
27240
|
-
$$renderer.push("<!--[
|
|
27241
|
-
$$renderer.push(`<
|
|
28304
|
+
$$renderer.push("<!--[1-->");
|
|
28305
|
+
$$renderer.push(`<div class="rack-note svelte-z3jis1"><span class="spin svelte-z3jis1">`);
|
|
28306
|
+
Loader_circle($$renderer, { size: 14 });
|
|
28307
|
+
$$renderer.push(`<!----></span></div>`);
|
|
27242
28308
|
}
|
|
27243
28309
|
$$renderer.push(`<!--]--></div>`);
|
|
27244
28310
|
}
|
|
@@ -28330,7 +29396,7 @@ function isPanelEntry(value) {
|
|
|
28330
29396
|
if (value === null || typeof value !== "object") return false;
|
|
28331
29397
|
const entry = value;
|
|
28332
29398
|
if (typeof entry.id !== "string" || entry.id.length === 0) return false;
|
|
28333
|
-
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;
|
|
29399
|
+
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 !== "plugin-rack" && entry.kind !== "workspace-explorer" && entry.kind !== "workspace-file" && entry.kind !== "terminal") return false;
|
|
28334
29400
|
if (entry.kind === "settings-editor" && entry.target !== "dsi" && entry.target !== "dsh") return false;
|
|
28335
29401
|
if (entry.kind === "workspace-explorer") {
|
|
28336
29402
|
if (entry.sessionId !== null && (typeof entry.sessionId !== "string" || entry.sessionId.length === 0)) return false;
|
|
@@ -28347,7 +29413,7 @@ function isPanelEntry(value) {
|
|
|
28347
29413
|
if (typeof entry.sourceSessionId !== "string" || entry.sourceSessionId.length === 0) return false;
|
|
28348
29414
|
if (typeof entry.displayPath !== "string" || entry.displayPath.length === 0) return false;
|
|
28349
29415
|
}
|
|
28350
|
-
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") {
|
|
29416
|
+
if (entry.kind !== "prompt-manager" && entry.kind !== "settings-editor" && entry.kind !== "skill-shelf" && entry.kind !== "plugin-rack" && entry.kind !== "injected-doc" && entry.kind !== "workspace-explorer" && entry.kind !== "workspace-file" && entry.kind !== "terminal") {
|
|
28351
29417
|
if (typeof entry.sessionId !== "string" || entry.sessionId.length === 0) return false;
|
|
28352
29418
|
if (entry.agentPreset !== void 0 && typeof entry.agentPreset !== "string" && entry.agentPreset !== null) return false;
|
|
28353
29419
|
}
|
|
@@ -28367,7 +29433,7 @@ function sanitizePanels(raw) {
|
|
|
28367
29433
|
if (!Array.isArray(raw)) return [];
|
|
28368
29434
|
const seen = /* @__PURE__ */ new Set();
|
|
28369
29435
|
return raw.filter((entry) => isPanelEntry(entry)).map((entry) => {
|
|
28370
|
-
const kindDefault = entry.kind === "skill-shelf" ? shelfPanelWidth() : entry.kind === "workspace-explorer" ? 850 : entry.kind === "workspace-file" ? 850 : defaultPanelWidth();
|
|
29436
|
+
const kindDefault = entry.kind === "skill-shelf" ? shelfPanelWidth() : entry.kind === "plugin-rack" ? shelfPanelWidth() : entry.kind === "workspace-explorer" ? 850 : entry.kind === "workspace-file" ? 850 : defaultPanelWidth();
|
|
28371
29437
|
const width = clampPanelWidth(typeof entry.width === "number" && Number.isFinite(entry.width) ? entry.width : kindDefault, entry.kind);
|
|
28372
29438
|
if (entry.kind === "prompt-manager") return {
|
|
28373
29439
|
id: entry.id,
|
|
@@ -28411,6 +29477,12 @@ function sanitizePanels(raw) {
|
|
|
28411
29477
|
width
|
|
28412
29478
|
};
|
|
28413
29479
|
}
|
|
29480
|
+
if (entry.kind === "plugin-rack") return {
|
|
29481
|
+
id: entry.id,
|
|
29482
|
+
kind: "plugin-rack",
|
|
29483
|
+
tab: entry.tab === "uninstall" ? "uninstall" : "install",
|
|
29484
|
+
width
|
|
29485
|
+
};
|
|
28414
29486
|
if (entry.kind === "injected-doc") return {
|
|
28415
29487
|
id: entry.id,
|
|
28416
29488
|
kind: "injected-doc",
|
|
@@ -29671,8 +30743,14 @@ function _page($$renderer, $$props) {
|
|
|
29671
30743
|
host: "panel"
|
|
29672
30744
|
});
|
|
29673
30745
|
$$renderer.push(`<!----></div>`);
|
|
29674
|
-
} else if (panel.kind === "
|
|
30746
|
+
} else if (panel.kind === "plugin-rack") {
|
|
29675
30747
|
$$renderer.push("<!--[2-->");
|
|
30748
|
+
$$renderer.push(`<div class="panel-manager-body svelte-1uha8ag" data-testid="panel-plugins">`);
|
|
30749
|
+
PluginManagerPanel($$renderer, {
|
|
30750
|
+
initialTab: panel.tab ?? "install"});
|
|
30751
|
+
$$renderer.push(`<!----></div>`);
|
|
30752
|
+
} else if (panel.kind === "skill-shelf") {
|
|
30753
|
+
$$renderer.push("<!--[3-->");
|
|
29676
30754
|
$$renderer.push(`<div class="panel-manager-body svelte-1uha8ag" data-testid="panel-skills">`);
|
|
29677
30755
|
SettingsSkillsPanel($$renderer, {
|
|
29678
30756
|
initialTab: panel.tab ?? "install",
|
|
@@ -29681,13 +30759,13 @@ function _page($$renderer, $$props) {
|
|
|
29681
30759
|
initialReload: panel.reload ?? null});
|
|
29682
30760
|
$$renderer.push(`<!----></div>`);
|
|
29683
30761
|
} else if (panel.kind === "settings-editor") {
|
|
29684
|
-
$$renderer.push("<!--[
|
|
30762
|
+
$$renderer.push("<!--[4-->");
|
|
29685
30763
|
$$renderer.push(`<div class="panel-manager-body svelte-1uha8ag" data-testid="panel-settings">`);
|
|
29686
30764
|
SettingsEditorPanel($$renderer, {
|
|
29687
30765
|
target: panel.target});
|
|
29688
30766
|
$$renderer.push(`<!----></div>`);
|
|
29689
30767
|
} else if (panel.kind === "injected-doc") {
|
|
29690
|
-
$$renderer.push("<!--[
|
|
30768
|
+
$$renderer.push("<!--[5-->");
|
|
29691
30769
|
$$renderer.push(`<div class="panel-manager-body svelte-1uha8ag">`);
|
|
29692
30770
|
InjectedDocPanel($$renderer, {
|
|
29693
30771
|
sourceSessionId: panel.sourceSessionId,
|
|
@@ -29695,7 +30773,7 @@ function _page($$renderer, $$props) {
|
|
|
29695
30773
|
entries: coldCache[panel.sourceSessionId]?.entries ?? []});
|
|
29696
30774
|
$$renderer.push(`<!----></div>`);
|
|
29697
30775
|
} else if (panel.kind === "workspace-explorer") {
|
|
29698
|
-
$$renderer.push("<!--[
|
|
30776
|
+
$$renderer.push("<!--[6-->");
|
|
29699
30777
|
WorkspaceExplorerPanel($$renderer, {
|
|
29700
30778
|
sessionId: panel.sessionId,
|
|
29701
30779
|
root: panel.root,
|
|
@@ -29726,7 +30804,7 @@ function _page($$renderer, $$props) {
|
|
|
29726
30804
|
onActivateTab: (path) => activateExplorerTab(panel.id, path)
|
|
29727
30805
|
});
|
|
29728
30806
|
} else if (panel.kind === "workspace-file") {
|
|
29729
|
-
$$renderer.push("<!--[
|
|
30807
|
+
$$renderer.push("<!--[7-->");
|
|
29730
30808
|
WorkspaceFilePanel($$renderer, {
|
|
29731
30809
|
sessionId: panel.sessionId,
|
|
29732
30810
|
path: panel.path,
|
|
@@ -29736,7 +30814,7 @@ function _page($$renderer, $$props) {
|
|
|
29736
30814
|
onclose: () => removePanel(panel.id)
|
|
29737
30815
|
});
|
|
29738
30816
|
} else if (panel.kind === "conversation") {
|
|
29739
|
-
$$renderer.push("<!--[
|
|
30817
|
+
$$renderer.push("<!--[8-->");
|
|
29740
30818
|
const p = panel;
|
|
29741
30819
|
$$renderer.push(`<!---->`);
|
|
29742
30820
|
if (deadSessions[p.sessionId]) {
|
|
@@ -29898,4 +30976,4 @@ function _page($$renderer, $$props) {
|
|
|
29898
30976
|
}
|
|
29899
30977
|
|
|
29900
30978
|
export { _page as default };
|
|
29901
|
-
//# sourceMappingURL=_page.svelte.js-
|
|
30979
|
+
//# sourceMappingURL=_page.svelte.js-BJ7eKmkS.js.map
|