@deepseek-insight/dsi 0.9.0 → 0.10.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.
Files changed (36) hide show
  1. package/bin/dsi.mjs +25 -0
  2. package/build/client/_app/immutable/assets/0.uhYTRapi.css +2 -0
  3. package/build/client/_app/immutable/chunks/0Uk2rkmL.js +1 -0
  4. package/build/client/_app/immutable/chunks/{0ruuBBbh.js → BaH6C3xD.js} +2 -2
  5. package/build/client/_app/immutable/chunks/{ChmmHPdM.js → Bu2owQS4.js} +1 -1
  6. package/build/client/_app/immutable/chunks/DXba8Dom.js +1 -0
  7. package/build/client/_app/immutable/entry/{app.D4oc_iez.js → app.DjLAWmJH.js} +2 -2
  8. package/build/client/_app/immutable/entry/start.D-t6KuoK.js +1 -0
  9. package/build/client/_app/immutable/nodes/{1.3F37GwcO.js → 1.w6Hz6-dJ.js} +1 -1
  10. package/build/client/_app/immutable/nodes/{2.DsWNNw0K.js → 2.CFmqEODJ.js} +107 -107
  11. package/build/client/_app/version.json +1 -1
  12. package/build/handler.js +4 -4
  13. package/build/index.js +4 -4
  14. package/build/server/chunks/chunks/{internal2.js-DbC8VGqD.js → internal2.js-DRFhzPda.js} +2 -2
  15. package/build/server/chunks/chunks/{state.js-DR4xiIVw.js → state.js-kZHonU4N.js} +2 -2
  16. package/build/server/chunks/entries/pages/{_error.svelte.js-e018KpwE.js → _error.svelte.js-BKhpJygh.js} +3 -3
  17. package/build/server/chunks/entries/pages/{_page.svelte.js-DQWBiRk1.js → _page.svelte.js-BlbGdGej.js} +70 -10
  18. package/build/server/chunks/{handler-DsD7I1_u.js → handler-BtG6aVza.js} +3 -3
  19. package/build/server/chunks/{index.js-C_WAkwJs.js → index.js-rGfUdWOY.js} +2 -2
  20. package/build/server/chunks/{manifest.js-DUy52VaP.js → manifest.js-DwQ7BEt1.js} +5 -5
  21. package/build/server/chunks/nodes/{0.js-CuV3dXVD.js → 0.js-Cum-Y-us.js} +3 -3
  22. package/build/server/chunks/nodes/1.js-D0EwPqp_.js +9 -0
  23. package/build/server/chunks/nodes/{2.js-PwcF4_kT.js → 2.js-ButkUErW.js} +3 -3
  24. package/package.json +2 -2
  25. package/scripts/dsh-web-synced.sh +21 -5
  26. package/skills/dsi-drive-terminal/SKILL.md +219 -0
  27. package/skills/dsi-publish/SKILL.md +67 -0
  28. package/template/.dsi/prompts.sqlite-shm +0 -0
  29. package/template/.dsi/prompts.sqlite-wal +0 -0
  30. package/template/.dsi/settings.yaml +1 -2
  31. package/build/client/_app/immutable/assets/0.Ch5VtsKp.css +0 -2
  32. package/build/client/_app/immutable/chunks/CWk5gmU2.js +0 -1
  33. package/build/client/_app/immutable/chunks/vpNeypNM.js +0 -1
  34. package/build/client/_app/immutable/entry/start.Xkr2MCWg.js +0 -1
  35. package/build/server/chunks/nodes/1.js-Dc5QC-NJ.js +0 -9
  36. /package/build/client/_app/immutable/nodes/{0.fsrqKU9i.js → 0.DeDuCaDD.js} +0 -0
@@ -1 +1 @@
1
- {"version":"1793694843765"}
1
+ {"version":"1793848049390"}
package/build/handler.js CHANGED
@@ -2,9 +2,9 @@ import './shims.js';
2
2
  import 'node:fs';
3
3
  import 'node:path';
4
4
  import 'node:process';
5
- export { h as handler } from './server/chunks/handler-DsD7I1_u.js';
6
- import './server/chunks/index.js-C_WAkwJs.js';
7
- import './server/chunks/manifest.js-DUy52VaP.js';
5
+ export { h as handler } from './server/chunks/handler-BtG6aVza.js';
6
+ import './server/chunks/index.js-rGfUdWOY.js';
7
+ import './server/chunks/manifest.js-DwQ7BEt1.js';
8
8
  import './env.js';
9
9
  import 'node:buffer';
10
10
  import 'node:crypto';
@@ -19,6 +19,6 @@ import 'node:url';
19
19
  import './server/chunks/chunks/index-server.js-CPkVoRxB.js';
20
20
  import './server/chunks/chunks/server.js-Dijo7DtV.js';
21
21
  import './server/chunks/chunks/internal.js-BcS47nI-.js';
22
- import './server/chunks/chunks/internal2.js-DbC8VGqD.js';
22
+ import './server/chunks/chunks/internal2.js-DRFhzPda.js';
23
23
  import './server/chunks/chunks/exports.js-DH_tjtdv.js';
24
24
  //# sourceMappingURL=handler.js.map
package/build/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import http from 'node:http';
2
2
  import fs__default from 'node:fs';
3
3
  import process from 'node:process';
4
- import { p as polka, h as handler, f as format_listening_address } from './server/chunks/handler-DsD7I1_u.js';
4
+ import { p as polka, h as handler, f as format_listening_address } from './server/chunks/handler-BtG6aVza.js';
5
5
  import { env, timeout_env } from './env.js';
6
6
  import { rm } from 'node:fs/promises';
7
7
  import './shims.js';
@@ -14,13 +14,13 @@ import 'node:stream';
14
14
  import './server/chunks/chunks/shared.js-HQ0rfhm4.js';
15
15
  import './server/chunks/chunks/uneval.js-BJ9Qq2SF.js';
16
16
  import './server/chunks/chunks/utils.js-CAdNO8Tu.js';
17
- import './server/chunks/index.js-C_WAkwJs.js';
17
+ import './server/chunks/index.js-rGfUdWOY.js';
18
18
  import './server/chunks/chunks/index-server.js-CPkVoRxB.js';
19
19
  import './server/chunks/chunks/server.js-Dijo7DtV.js';
20
20
  import './server/chunks/chunks/internal.js-BcS47nI-.js';
21
- import './server/chunks/chunks/internal2.js-DbC8VGqD.js';
21
+ import './server/chunks/chunks/internal2.js-DRFhzPda.js';
22
22
  import './server/chunks/chunks/exports.js-DH_tjtdv.js';
23
- import './server/chunks/manifest.js-DUy52VaP.js';
23
+ import './server/chunks/manifest.js-DwQ7BEt1.js';
24
24
  import 'node:url';
25
25
 
26
26
  const path = env('SOCKET_PATH', false);
@@ -580,7 +580,7 @@ var options = {
580
580
  app: ({ head, body, assets, nonce, env }) => "<!doctype html>\n<html lang=\"%paraglide.locale%\">\n <head>\n <meta charset=\"utf-8\" />\n <link rel=\"icon\" href=\"" + assets + "/favicon.svg\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <script>\n /* The Three-State Lamp pre-paint (ADR-0023 D3, 2026-10-11): resolve\n * the choice and set html[data-theme] BEFORE the bundle paints —\n * no flash of light on a dark reload. The key 'dsi-theme' is\n * pinned identical to src/lib/utils/theme-prefs.svelte.ts by\n * tests/unit/theme-prefs.test.ts; change both together. */\n try {\n var m = location.search.match(/[?&]profile=([^&]*)/);\n var prof = m ? m[1].replace(/[^A-Za-z0-9_-]/g, '').slice(0, 40) : '';\n var k = 'dsi-theme' + (prof ? '_' + prof : '');\n var t = localStorage.getItem(k);\n if (t !== 'light' && t !== 'dark' && t !== 'system') t = 'system';\n document.documentElement.dataset.theme =\n t === 'dark' || (t === 'system' && window.matchMedia && matchMedia('(prefers-color-scheme: dark)').matches)\n ? 'dark'\n : 'light';\n } catch (e) {\n document.documentElement.dataset.theme = 'light';\n }\n <\/script>\n " + head + "\n </head>\n <body data-sveltekit-preload-data=\"tap\">\n <div style=\"display: contents\">" + body + "</div>\n </body>\n</html>\n",
581
581
  error: error_template_default
582
582
  },
583
- version_hash: "1sp3mqh"
583
+ version_hash: "1gjqxay"
584
584
  };
585
585
  async function get_hooks() {
586
586
  let handle;
@@ -603,4 +603,4 @@ async function get_hooks() {
603
603
  }
604
604
 
605
605
  export { set_public_env as a, set_read_implementation as b, get_hooks as g, options as o, public_env as p, read_implementation as r, set_private_env as s };
606
- //# sourceMappingURL=internal2.js-DbC8VGqD.js.map
606
+ //# sourceMappingURL=internal2.js-DRFhzPda.js.map
@@ -1,6 +1,6 @@
1
1
  import { i as index_server_exports } from './index-server.js-CPkVoRxB.js';
2
2
  import './shared.js-HQ0rfhm4.js';
3
- import './internal2.js-DbC8VGqD.js';
3
+ import './internal2.js-DRFhzPda.js';
4
4
  import './exports.js-DH_tjtdv.js';
5
5
  import { U as snapshot, g as getContext, n as noop } from './server.js-Dijo7DtV.js';
6
6
  import { U as UI_LOCALES } from './config.js-r_jw_bQQ.js';
@@ -304,4 +304,4 @@ var page = {
304
304
  };
305
305
 
306
306
  export { afterNavigate as a, backtoworkspace2 as b, currentLocale as c, dshunreachable1 as d, replaceState as e, page as p, reapednote1 as r, sessionnotfound2 as s, t, unexpectederror1 as u };
307
- //# sourceMappingURL=state.js-DR4xiIVw.js.map
307
+ //# sourceMappingURL=state.js-kZHonU4N.js.map
@@ -1,9 +1,9 @@
1
1
  import { V as head, W as escape_html, M as derived } from '../../chunks/server.js-Dijo7DtV.js';
2
- import { t, p as page, s as sessionnotfound2, r as reapednote1, d as dshunreachable1, u as unexpectederror1, b as backtoworkspace2 } from '../../chunks/state.js-DR4xiIVw.js';
2
+ import { t, p as page, s as sessionnotfound2, r as reapednote1, d as dshunreachable1, u as unexpectederror1, b as backtoworkspace2 } from '../../chunks/state.js-kZHonU4N.js';
3
3
  import '../../chunks/uneval.js-BJ9Qq2SF.js';
4
4
  import '../../chunks/index-server.js-CPkVoRxB.js';
5
5
  import '../../chunks/shared.js-HQ0rfhm4.js';
6
- import '../../chunks/internal2.js-DbC8VGqD.js';
6
+ import '../../chunks/internal2.js-DRFhzPda.js';
7
7
  import '../../chunks/exports.js-DH_tjtdv.js';
8
8
  import '../../chunks/config.js-r_jw_bQQ.js';
9
9
  import '../../chunks/runtime.js-CCJi3XaY.js';
@@ -41,4 +41,4 @@ function _error($$renderer, $$props) {
41
41
  }
42
42
 
43
43
  export { _error as default };
44
- //# sourceMappingURL=_error.svelte.js-e018KpwE.js.map
44
+ //# sourceMappingURL=_error.svelte.js-BKhpJygh.js.map
@@ -9,7 +9,7 @@ import { D as DEFAULT_IMAGE_LIMITS } from '../../chunks/image-limits.js-CUdJ0f7r
9
9
  import { s as sanitizeWorkspaceProfile, d as dsiKey, t as themePrefs } from '../../chunks/theme-prefs.svelte.js-8CaWz46g.js';
10
10
  import { a as appConfig, p as previewSegments, b as parseTagWords, i as isValidTagWord, s as shouldRecordPrompt, g as getTrigger, t as triggerMode, c as searchKey, d as textPreviewOf } from '../../chunks/app-config.svelte.js-BXjvTmJu.js';
11
11
  import { c as getLocale } from '../../chunks/runtime.js-CCJi3XaY.js';
12
- import { p as page, a as afterNavigate, t, c as currentLocale, e as replaceState, u as unexpectederror1, s as sessionnotfound2, r as reapednote1, d as dshunreachable1, b as backtoworkspace2 } from '../../chunks/state.js-DR4xiIVw.js';
12
+ import { p as page, a as afterNavigate, t, c as currentLocale, e as replaceState, u as unexpectederror1, s as sessionnotfound2, r as reapednote1, d as dshunreachable1, b as backtoworkspace2 } from '../../chunks/state.js-kZHonU4N.js';
13
13
  import 'yaml';
14
14
  import 'html-to-image';
15
15
  import hljs from 'highlight.js/lib/core';
@@ -21,7 +21,7 @@ import xml from 'highlight.js/lib/languages/xml';
21
21
  import css from 'highlight.js/lib/languages/css';
22
22
  import '../../chunks/uneval.js-BJ9Qq2SF.js';
23
23
  import '../../chunks/shared.js-HQ0rfhm4.js';
24
- import '../../chunks/internal2.js-DbC8VGqD.js';
24
+ import '../../chunks/internal2.js-DRFhzPda.js';
25
25
  import '../../chunks/utils.js-CAdNO8Tu.js';
26
26
 
27
27
  //#region src/lib/paraglide/messages/abort.js
@@ -13592,6 +13592,38 @@ var terminaltabsclearterminals3 = ((inputs = {}, options = {}) => {
13592
13592
  return en_terminaltabsclearterminals3();
13593
13593
  });
13594
13594
  //#endregion
13595
+ //#region src/lib/paraglide/messages/terminaltokenrefreshed2.js
13596
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
13597
+ /** @typedef {{}} Terminaltokenrefreshed2Inputs */
13598
+ var en_terminaltokenrefreshed2 = () => {
13599
+ return `token refreshed — your keystroke was retried`;
13600
+ };
13601
+ var zh_terminaltokenrefreshed2 = () => {
13602
+ return `令牌已刷新 — 按键已重试`;
13603
+ };
13604
+ var id_terminaltokenrefreshed2 = () => {
13605
+ return `token disegarkan — ketikan Anda dicoba ulang`;
13606
+ };
13607
+ var es_terminaltokenrefreshed2 = () => {
13608
+ return `token renovado — tu tecla se reintentó`;
13609
+ };
13610
+ /**
13611
+ * | output |
13612
+ * | --- |
13613
+ * | "token refreshed — your keystroke was retried" |
13614
+ *
13615
+ * @param {Terminaltokenrefreshed2Inputs} inputs
13616
+ * @param {{ locale?: "en" | "zh" | "id" | "es" }} options
13617
+ * @returns {LocalizedString}
13618
+ */
13619
+ var terminaltokenrefreshed2 = ((inputs = {}, options = {}) => {
13620
+ const locale = options.locale ?? getLocale();
13621
+ if (locale === "zh") return zh_terminaltokenrefreshed2();
13622
+ if (locale === "id") return id_terminaltokenrefreshed2();
13623
+ if (locale === "es") return es_terminaltokenrefreshed2();
13624
+ return en_terminaltokenrefreshed2();
13625
+ });
13626
+ //#endregion
13595
13627
  //#region src/lib/paraglide/messages/text.js
13596
13628
  /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
13597
13629
  /** @typedef {{}} TextInputs */
@@ -16230,6 +16262,7 @@ var _index_exports = /* @__PURE__ */ __exportAll({
16230
16262
  terminalTabsClearAll: () => terminaltabsclearall3,
16231
16263
  terminalTabsClearJobs: () => terminaltabsclearjobs3,
16232
16264
  terminalTabsClearTerminals: () => terminaltabsclearterminals3,
16265
+ terminalTokenRefreshed: () => terminaltokenrefreshed2,
16233
16266
  text: () => text,
16234
16267
  themeChoice_dark: () => themechoice_dark1,
16235
16268
  themeChoice_light: () => themechoice_light1,
@@ -16733,6 +16766,7 @@ var messages_exports = /* @__PURE__ */ __exportAll({
16733
16766
  terminalTabsClearAll: () => terminaltabsclearall3,
16734
16767
  terminalTabsClearJobs: () => terminaltabsclearjobs3,
16735
16768
  terminalTabsClearTerminals: () => terminaltabsclearterminals3,
16769
+ terminalTokenRefreshed: () => terminaltokenrefreshed2,
16736
16770
  text: () => text,
16737
16771
  themeChoice_dark: () => themechoice_dark1,
16738
16772
  themeChoice_light: () => themechoice_light1,
@@ -18734,8 +18768,8 @@ function ThemeToggle($$renderer, $$props) {
18734
18768
  }
18735
18769
  //#endregion
18736
18770
  //#region package.json
18737
- var version = "0.9.0";
18738
- var dsh = { "webVersion": "0.2.2-alpha.2" };
18771
+ var version = "0.10.0";
18772
+ var dsh = { "webVersion": "0.2.2-rc.1" };
18739
18773
  //#endregion
18740
18774
  //#region src/lib/version.ts
18741
18775
  /**
@@ -34678,7 +34712,9 @@ var initialTerminalPanelState = {
34678
34712
  //#region src/lib/components/terminal/TerminalPanel.svelte
34679
34713
  function TerminalPanel($$renderer, $$props) {
34680
34714
  $$renderer.component(($$renderer) => {
34681
- let { onShellExit, assigned = null, onAssigned } = $$props;
34715
+ let { onShellExit, assigned = null, onAssigned, zoom = 1 } = $$props;
34716
+ /** Coerced zoom — the pocket's single source (null-safe default 1). */
34717
+ const pocketZoom = derived(() => zoom ?? 1);
34682
34718
  let panelState = { ...initialTerminalPanelState };
34683
34719
  Promise.resolve();
34684
34720
  /** Focus the live xterm surface (the desk's ⌥+N tab shortcut,
@@ -34697,9 +34733,11 @@ function TerminalPanel($$renderer, $$props) {
34697
34733
  $$renderer.push("<!--[0-->");
34698
34734
  $$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>`);
34699
34735
  } else $$renderer.push("<!--[-1-->");
34736
+ $$renderer.push(`<!--]--> `);
34737
+ $$renderer.push("<!--[-1-->");
34700
34738
  $$renderer.push(`<!--]--> <div class="grow"></div></div> `);
34701
34739
  $$renderer.push("<!--[-1-->");
34702
- $$renderer.push(`<div class="relative min-h-72 grow overflow-hidden" data-testid="terminal-host" role="presentation"><div class="absolute inset-0"></div></div> `);
34740
+ $$renderer.push(`<div class="relative min-h-72 grow overflow-hidden" data-testid="terminal-host" role="presentation"><div class="absolute inset-0 origin-top-left"${attr_style(pocketZoom() === 1 ? void 0 : `right: auto; bottom: auto; width: ${pocketZoom() * 100}%; height: ${pocketZoom() * 100}%; transform: scale(${1 / pocketZoom()});`)}><div class="absolute inset-0"></div></div></div> `);
34703
34741
  $$renderer.push("<!--[-1-->");
34704
34742
  $$renderer.push(`<!--]--> `);
34705
34743
  $$renderer.push("<!--[-1-->");
@@ -34992,7 +35030,9 @@ function TerminalDesk($$renderer, $$props) {
34992
35030
  * bare command behaves byte-identically to the pre-desk panel. */
34993
35031
  /** Null = self-open (the panel runs its own ladder and reports back
34994
35032
  * via onAssigned); set = the desk holds this session's lease. */
34995
- let { onShellExit, restored = null, onMirror } = $$props;
35033
+ let { onShellExit, restored = null, onMirror, zoom = 1 } = $$props;
35034
+ /** Coerced zoom — one pocket source for every row (null-safe default 1). */
35035
+ const deskZoom = derived(() => zoom ?? 1);
34996
35036
  let nextKey = 1;
34997
35037
  const mkKey = () => nextKey++;
34998
35038
  const defaultTab = () => ({
@@ -35049,6 +35089,23 @@ function TerminalDesk($$renderer, $$props) {
35049
35089
  if (select) selectedTab = jobCount() - 1;
35050
35090
  }
35051
35091
  registerJobTabOpener((owner, jobId, label) => openJobTab(owner, jobId, label));
35092
+ /** The truthful badge grammar (2026-11-04 amendment, ADR D5e/D5f):
35093
+ * the shell-tab badge pairs the strip position with the session id —
35094
+ * single row assigned → 'T1:7' (registry id t-7 → 7); split →
35095
+ * 'T1:7+9' (row order); unassigned → plain 'T1'. Display-only: the
35096
+ * registry and mirror stay keyed on FULL session ids; the badge is a
35097
+ * view, mirroring the Glass chip's ordinal grammar. */
35098
+ function sessionOrdinal(id) {
35099
+ return id.replace(/^t-/, "");
35100
+ }
35101
+ function badgeSuffix(tab) {
35102
+ const ids = tab.rows.map((r) => r.assigned?.sessionId ?? "").filter((id) => id !== "");
35103
+ return ids.length > 0 ? ":" + ids.map(sessionOrdinal).join("+") : "";
35104
+ }
35105
+ function badgeTitle(tab) {
35106
+ const ids = tab.rows.map((r) => r.assigned?.sessionId ?? "").filter((id) => id !== "");
35107
+ return ids.length > 0 ? "session " + ids.join(", ") : "";
35108
+ }
35052
35109
  /** Mint a fresh session server-side and hand it to a new row (row
35053
35110
  * mode). A new tab or split-down NEVER re-attaches an existing
35054
35111
  * session — the reattach ladder is reload-recovery, not a spawner. */
@@ -35181,10 +35238,11 @@ function TerminalDesk($$renderer, $$props) {
35181
35238
  $$renderer.push(`<!--[-->`);
35182
35239
  const each_array = ensure_array_like(tabs);
35183
35240
  for (let i = 0, $$length = each_array.length; i < $$length; i++) {
35184
- each_array[i];
35241
+ let tab = each_array[i];
35185
35242
  TerminalTabButton($$renderer, {
35186
35243
  index: i,
35187
- label: "T" + (i + 1),
35244
+ label: "T" + (i + 1) + badgeSuffix(tab),
35245
+ title: badgeTitle(tab),
35188
35246
  selected: i === selectedTab,
35189
35247
  onSelect: () => selectedTab = i,
35190
35248
  onClose: () => closeTab(i)
@@ -35223,6 +35281,7 @@ function TerminalDesk($$renderer, $$props) {
35223
35281
  $$renderer.push(`<div class="min-h-0" style="flex: 1 1 0; min-height: 10rem;">`);
35224
35282
  TerminalPanel($$renderer, {
35225
35283
  assigned: row.assigned,
35284
+ zoom: deskZoom(),
35226
35285
  onAssigned: (sessionId, token) => recordAssigned(row, sessionId, token),
35227
35286
  onShellExit: () => removeRow(i, row)
35228
35287
  });
@@ -38528,6 +38587,7 @@ function _page($$renderer, $$props) {
38528
38587
  $$renderer.push(`<div class="panel-manager-body svelte-1uha8ag" data-testid="panel-terminal">`);
38529
38588
  TerminalDesk($$renderer, {
38530
38589
  restored: panel.desk ?? null,
38590
+ zoom: floorPanelId ? pagePrefs.zoom : 1,
38531
38591
  onMirror: (m) => {
38532
38592
  terminalDeskMirrors[panel.id] = m;
38533
38593
  },
@@ -38786,4 +38846,4 @@ function _page($$renderer, $$props) {
38786
38846
  }
38787
38847
 
38788
38848
  export { _page as default };
38789
- //# sourceMappingURL=_page.svelte.js-DQWBiRk1.js.map
38849
+ //# sourceMappingURL=_page.svelte.js-BlbGdGej.js.map
@@ -9,8 +9,8 @@ import * as qs from 'node:querystring';
9
9
  import { Readable } from 'node:stream';
10
10
  import { S as SvelteKitError } from './chunks/shared.js-HQ0rfhm4.js';
11
11
  import './chunks/utils.js-CAdNO8Tu.js';
12
- import { S as Server } from './index.js-C_WAkwJs.js';
13
- import { m as manifest } from './manifest.js-DUy52VaP.js';
12
+ import { S as Server } from './index.js-rGfUdWOY.js';
13
+ import { m as manifest } from './manifest.js-DwQ7BEt1.js';
14
14
  import { env, dir, env_prefix } from '../../env.js';
15
15
  import { format } from 'node:url';
16
16
 
@@ -1732,4 +1732,4 @@ const handler = sequence(
1732
1732
  );
1733
1733
 
1734
1734
  export { format_listening_address as f, handler as h, polka as p };
1735
- //# sourceMappingURL=handler-DsD7I1_u.js.map
1735
+ //# sourceMappingURL=handler-BtG6aVza.js.map
@@ -3,7 +3,7 @@ import { n as noop, T as TRAILING_SLASH_PARAM, I as INVALIDATED_PARAM, R as Redi
3
3
  import { b as base, o as override, a as assets, r as reset, c as app_dir } from './chunks/internal.js-BcS47nI-.js';
4
4
  import { f as format_server_error, j as json, i as is_form_content_type, t as text, h as has_prerendered_path, a as handle_fatal_error, r as redirect_response, g as get_set_cookies, n as negotiate, w as with_request_store, p as parseString, m as merge_tracing, b as method_not_allowed, s as static_error_page, c as handle_error_and_jsonify, d as get_global_name, e as create_replacer, k as serialize_uses, l as clarify_devalue_error, E as ENDPOINT_METHODS, P as PAGE_METHODS, o as get_node_type, q as isRedirect, u as escape_html, v as error, x as deserialize_binary_form } from './chunks/utils.js-CAdNO8Tu.js';
5
5
  import { u as uneval } from './chunks/uneval.js-BJ9Qq2SF.js';
6
- import { o as options, s as set_private_env, a as set_public_env, g as get_hooks, p as public_env, r as read_implementation, b as set_read_implementation } from './chunks/internal2.js-DbC8VGqD.js';
6
+ import { o as options, s as set_private_env, a as set_public_env, g as get_hooks, p as public_env, r as read_implementation, b as set_read_implementation } from './chunks/internal2.js-DRFhzPda.js';
7
7
  import { d as decode_pathname, f as find_route, n as normalize_path, a as disable_search, v as validate_layout_server_exports, b as validate_layout_exports, c as validate_page_server_exports, e as validate_page_exports, r as resolve, h as hash, m as make_trackable } from './chunks/exports.js-DH_tjtdv.js';
8
8
  import { S as readable, T as writable } from './chunks/server.js-Dijo7DtV.js';
9
9
 
@@ -3862,4 +3862,4 @@ var Server = class {
3862
3862
  };
3863
3863
 
3864
3864
  export { Server as S };
3865
- //# sourceMappingURL=index.js-C_WAkwJs.js.map
3865
+ //# sourceMappingURL=index.js-rGfUdWOY.js.map
@@ -10,11 +10,11 @@ return {
10
10
  assets: new Set(["favicon.svg"]),
11
11
  mimeTypes: {".svg":"image/svg+xml"},
12
12
  _: {
13
- client: {start:"_app/immutable/entry/start.Xkr2MCWg.js",app:"_app/immutable/entry/app.D4oc_iez.js",imports:["_app/immutable/entry/start.Xkr2MCWg.js","_app/immutable/chunks/0ruuBBbh.js","_app/immutable/chunks/0Tfhif1V.js","_app/immutable/entry/app.D4oc_iez.js","_app/immutable/chunks/0Tfhif1V.js","_app/immutable/chunks/HclGiUj8.js","_app/immutable/chunks/xihTtKlq.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
13
+ client: {start:"_app/immutable/entry/start.D-t6KuoK.js",app:"_app/immutable/entry/app.DjLAWmJH.js",imports:["_app/immutable/entry/start.D-t6KuoK.js","_app/immutable/chunks/BaH6C3xD.js","_app/immutable/chunks/0Tfhif1V.js","_app/immutable/entry/app.DjLAWmJH.js","_app/immutable/chunks/0Tfhif1V.js","_app/immutable/chunks/HclGiUj8.js","_app/immutable/chunks/xihTtKlq.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
14
14
  nodes: [
15
- __memo(() => import('./nodes/0.js-CuV3dXVD.js')),
16
- __memo(() => import('./nodes/1.js-Dc5QC-NJ.js')),
17
- __memo(() => import('./nodes/2.js-PwcF4_kT.js'))
15
+ __memo(() => import('./nodes/0.js-Cum-Y-us.js')),
16
+ __memo(() => import('./nodes/1.js-D0EwPqp_.js')),
17
+ __memo(() => import('./nodes/2.js-ButkUErW.js'))
18
18
  ],
19
19
  remotes: {
20
20
 
@@ -592,4 +592,4 @@ return {
592
592
  })();
593
593
 
594
594
  export { manifest as m };
595
- //# sourceMappingURL=manifest.js-DUy52VaP.js.map
595
+ //# sourceMappingURL=manifest.js-DwQ7BEt1.js.map
@@ -4,9 +4,9 @@ const index = 0;
4
4
  let component_cache;
5
5
  const component = async () => component_cache ??= (await import('../entries/pages/_layout.svelte.js-DRfiLzlz.js')).default;
6
6
  const universal_id = "src/routes/+layout.ts";
7
- const imports = ["_app/immutable/nodes/0.fsrqKU9i.js","_app/immutable/chunks/0Tfhif1V.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/CTWtsoJD.js","_app/immutable/chunks/D9jhmf3I.js"];
8
- const stylesheets = ["_app/immutable/assets/0.Ch5VtsKp.css"];
7
+ const imports = ["_app/immutable/nodes/0.DeDuCaDD.js","_app/immutable/chunks/0Tfhif1V.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/CTWtsoJD.js","_app/immutable/chunks/D9jhmf3I.js"];
8
+ const stylesheets = ["_app/immutable/assets/0.uhYTRapi.css"];
9
9
  const fonts = [];
10
10
 
11
11
  export { component, fonts, imports, index, stylesheets, universal_id };
12
- //# sourceMappingURL=0.js-CuV3dXVD.js.map
12
+ //# sourceMappingURL=0.js-Cum-Y-us.js.map
@@ -0,0 +1,9 @@
1
+ const index = 1;
2
+ let component_cache;
3
+ const component = async () => component_cache ??= (await import('../entries/pages/_error.svelte.js-BKhpJygh.js')).default;
4
+ const imports = ["_app/immutable/nodes/1.w6Hz6-dJ.js","_app/immutable/chunks/0Tfhif1V.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/Bu2owQS4.js","_app/immutable/chunks/BaH6C3xD.js","_app/immutable/chunks/D9jhmf3I.js"];
5
+ const stylesheets = [];
6
+ const fonts = [];
7
+
8
+ export { component, fonts, imports, index, stylesheets };
9
+ //# sourceMappingURL=1.js-D0EwPqp_.js.map
@@ -19,11 +19,11 @@ import '../chunks/uneval.js-BJ9Qq2SF.js';
19
19
 
20
20
  const index = 2;
21
21
  let component_cache;
22
- const component = async () => component_cache ??= (await import('../entries/pages/_page.svelte.js-DQWBiRk1.js')).default;
22
+ const component = async () => component_cache ??= (await import('../entries/pages/_page.svelte.js-BlbGdGej.js')).default;
23
23
  const server_id = "src/routes/+page.server.ts";
24
- const imports = ["_app/immutable/nodes/2.DsWNNw0K.js","_app/immutable/chunks/0Tfhif1V.js","_app/immutable/chunks/0ruuBBbh.js","_app/immutable/chunks/HclGiUj8.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/D9jhmf3I.js","_app/immutable/chunks/CTWtsoJD.js","_app/immutable/chunks/ChmmHPdM.js"];
24
+ const imports = ["_app/immutable/nodes/2.CFmqEODJ.js","_app/immutable/chunks/0Tfhif1V.js","_app/immutable/chunks/BaH6C3xD.js","_app/immutable/chunks/HclGiUj8.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/D9jhmf3I.js","_app/immutable/chunks/CTWtsoJD.js","_app/immutable/chunks/Bu2owQS4.js"];
25
25
  const stylesheets = ["_app/immutable/assets/2.D0QOh44D.css"];
26
26
  const fonts = [];
27
27
 
28
28
  export { component, fonts, imports, index, server_id, stylesheets };
29
- //# sourceMappingURL=2.js-PwcF4_kT.js.map
29
+ //# sourceMappingURL=2.js-ButkUErW.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deepseek-insight/dsi",
3
- "version": "0.9.0",
3
+ "version": "0.10.0",
4
4
  "description": "See your multiple agents run on the floor (agent, sub-agent, etc), each conversation on the floor are updated instantly.",
5
5
  "keywords": [
6
6
  "Deepseek",
@@ -38,7 +38,7 @@
38
38
  "node": ">=22.19"
39
39
  },
40
40
  "dsh": {
41
- "webVersion": "0.2.2-alpha.2"
41
+ "webVersion": "0.2.2-rc.1"
42
42
  },
43
43
  "bin": {
44
44
  "dsi": "bin/dsi.mjs"
@@ -38,17 +38,33 @@ update_token() {
38
38
  # The token rides an env var, not argv: a launch token is a credential and
39
39
  # argv is readable in ps(1) output by every local process.
40
40
  DSI_ROOT="$DSI_ROOT" CONFIG_PATH="$CONFIG_PATH" DSI_TOKEN="$token" node - <<'NODE'
41
- const { readFileSync, writeFileSync } = require('node:fs')
41
+ const { readFileSync, writeFileSync, mkdirSync } = require('node:fs')
42
42
  const { createRequire } = require('node:module')
43
43
  const requireFromDsi = createRequire(process.env.DSI_ROOT + '/package.json')
44
44
  const { parse, stringify } = requireFromDsi('yaml')
45
- const path = process.env.CONFIG_PATH
46
- const doc = parse(readFileSync(path, 'utf8')) ?? {}
45
+ const path = require('node:path')
46
+ const configPath = process.env.CONFIG_PATH
47
+ // First run (ENOENT 2026-11-04): settings.yaml may not exist yet — the token
48
+ // announce can be the very first thing to touch it. A missing file is the
49
+ // create case (same semantics as vt-plugins/lib/dsh-token-sink.ts); only a
50
+ // PRESENT-but-unparseable file stays a failure (a silent skip would leave
51
+ // DSI dialing a dead token forever).
52
+ let raw = null
53
+ try {
54
+ raw = readFileSync(configPath, 'utf8')
55
+ } catch (e) {
56
+ if (e.code !== 'ENOENT') throw e
57
+ }
58
+ const doc = raw === null ? {} : (parse(raw) ?? {})
59
+ if (typeof doc !== 'object' || doc === null || Array.isArray(doc)) {
60
+ throw new Error('settings.yaml is not a YAML mapping')
61
+ }
47
62
  doc.dsh = { ...doc.dsh, authToken: process.env.DSI_TOKEN }
48
- writeFileSync(path, stringify(doc))
63
+ mkdirSync(path.dirname(configPath), { recursive: true })
64
+ writeFileSync(configPath, stringify(doc))
49
65
  // Tilde-compress $HOME so the log line stays portable (no /Users/<you> leak).
50
66
  const home = require('node:os').homedir()
51
- console.log('dsh-web-synced: authToken updated in ' + (home && path.startsWith(home) ? '~' + path.slice(home.length) : path))
67
+ console.log('dsh-web-synced: authToken updated in ' + (home && configPath.startsWith(home) ? '~' + configPath.slice(home.length) : configPath))
52
68
  NODE
53
69
  }
54
70