@deepseek-insight/dsi 0.6.18 → 0.6.19

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 (29) hide show
  1. package/bin/dsi.mjs +30 -7
  2. package/build/client/_app/immutable/assets/{2.C7lNCQCV.css → 2.CulOeYPh.css} +1 -1
  3. package/build/client/_app/immutable/chunks/{Bqotzgnw.js → CcfE8WnY.js} +1 -1
  4. package/build/client/_app/immutable/chunks/DR7O6pQK.js +1 -0
  5. package/build/client/_app/immutable/chunks/Db_zFoAP.js +1 -0
  6. package/build/client/_app/immutable/chunks/{CtUqZStl.js → L81Qm9WF.js} +2 -2
  7. package/build/client/_app/immutable/entry/{app.CGvLdbvX.js → app.By0um08-.js} +2 -2
  8. package/build/client/_app/immutable/entry/start.DovVSimi.js +1 -0
  9. package/build/client/_app/immutable/nodes/{1.CiNEHoEh.js → 1.zMtTl7W9.js} +1 -1
  10. package/build/client/_app/immutable/nodes/{2.5NpWuIn7.js → 2.C9y-bmIa.js} +34 -34
  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-C4ukUWRE.js → internal2.js-BGlVENi_.js} +2 -2
  15. package/build/server/chunks/chunks/{state.js-OSxIx7MQ.js → state.js-BT8iDJXe.js} +2 -2
  16. package/build/server/chunks/entries/pages/{_error.svelte.js-2wYgv54Z.js → _error.svelte.js-DrXSHJGM.js} +3 -3
  17. package/build/server/chunks/entries/pages/{_page.svelte.js-BvcQOPvs.js → _page.svelte.js-BoCqON33.js} +177 -54
  18. package/build/server/chunks/{handler-D0h_ogA5.js → handler-CxEHv3N9.js} +3 -3
  19. package/build/server/chunks/{index.js-C43GYBhl.js → index.js-Co6HpgIt.js} +2 -2
  20. package/build/server/chunks/{manifest.js-DN0QODc_.js → manifest.js-BoZ1Tnyu.js} +4 -4
  21. package/build/server/chunks/nodes/1.js-BWaCxXNn.js +9 -0
  22. package/build/server/chunks/nodes/{2.js-_OZDbZ-E.js → 2.js-DNAbnuXD.js} +4 -4
  23. package/package.json +2 -2
  24. package/template/.dsi/prompts.sqlite-shm +0 -0
  25. package/template/.dsi/prompts.sqlite-wal +0 -0
  26. package/build/client/_app/immutable/chunks/D-YP16Kb.js +0 -1
  27. package/build/client/_app/immutable/chunks/D21lpWN6.js +0 -1
  28. package/build/client/_app/immutable/entry/start.-NibTCMf.js +0 -1
  29. package/build/server/chunks/nodes/1.js-Da_l90xT.js +0 -9
@@ -1 +1 @@
1
- {"version":"1792184999340"}
1
+ {"version":"1792338927006"}
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-D0h_ogA5.js';
6
- import './server/chunks/index.js-C43GYBhl.js';
7
- import './server/chunks/manifest.js-DN0QODc_.js';
5
+ export { h as handler } from './server/chunks/handler-CxEHv3N9.js';
6
+ import './server/chunks/index.js-Co6HpgIt.js';
7
+ import './server/chunks/manifest.js-BoZ1Tnyu.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-CV2lq-ha.js';
20
20
  import './server/chunks/chunks/server.js-DqHGsQU2.js';
21
21
  import './server/chunks/chunks/internal.js-BcS47nI-.js';
22
- import './server/chunks/chunks/internal2.js-C4ukUWRE.js';
22
+ import './server/chunks/chunks/internal2.js-BGlVENi_.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-D0h_ogA5.js';
4
+ import { p as polka, h as handler, f as format_listening_address } from './server/chunks/handler-CxEHv3N9.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-C43GYBhl.js';
17
+ import './server/chunks/index.js-Co6HpgIt.js';
18
18
  import './server/chunks/chunks/index-server.js-CV2lq-ha.js';
19
19
  import './server/chunks/chunks/server.js-DqHGsQU2.js';
20
20
  import './server/chunks/chunks/internal.js-BcS47nI-.js';
21
- import './server/chunks/chunks/internal2.js-C4ukUWRE.js';
21
+ import './server/chunks/chunks/internal2.js-BGlVENi_.js';
22
22
  import './server/chunks/chunks/exports.js-DH_tjtdv.js';
23
- import './server/chunks/manifest.js-DN0QODc_.js';
23
+ import './server/chunks/manifest.js-BoZ1Tnyu.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: "1g1y6t7"
583
+ version_hash: "1ce9q8q"
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-C4ukUWRE.js.map
606
+ //# sourceMappingURL=internal2.js-BGlVENi_.js.map
@@ -1,6 +1,6 @@
1
1
  import { i as index_server_exports } from './index-server.js-CV2lq-ha.js';
2
2
  import './shared.js-HQ0rfhm4.js';
3
- import './internal2.js-C4ukUWRE.js';
3
+ import './internal2.js-BGlVENi_.js';
4
4
  import './exports.js-DH_tjtdv.js';
5
5
  import { U as snapshot, g as getContext, n as noop } from './server.js-DqHGsQU2.js';
6
6
  import { U as UI_LOCALES } from './config.js-B0w1-uCA.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-OSxIx7MQ.js.map
307
+ //# sourceMappingURL=state.js-BT8iDJXe.js.map
@@ -1,9 +1,9 @@
1
1
  import { V as head, W as escape_html, M as derived } from '../../chunks/server.js-DqHGsQU2.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-OSxIx7MQ.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-BT8iDJXe.js';
3
3
  import '../../chunks/uneval.js-BJ9Qq2SF.js';
4
4
  import '../../chunks/index-server.js-CV2lq-ha.js';
5
5
  import '../../chunks/shared.js-HQ0rfhm4.js';
6
- import '../../chunks/internal2.js-C4ukUWRE.js';
6
+ import '../../chunks/internal2.js-BGlVENi_.js';
7
7
  import '../../chunks/exports.js-DH_tjtdv.js';
8
8
  import '../../chunks/config.js-B0w1-uCA.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-2wYgv54Z.js.map
44
+ //# sourceMappingURL=_error.svelte.js-DrXSHJGM.js.map
@@ -8,7 +8,7 @@ import { D as DEFAULT_IMAGE_LIMITS } from '../../chunks/image-limits.js-CUdJ0f7r
8
8
  import { s as sanitizeWorkspaceProfile, d as dsiKey, t as themePrefs } from '../../chunks/theme-prefs.svelte.js-8CaWz46g.js';
9
9
  import { a as appConfig, p as previewSegments, b as parseTagWords, i as isValidTagWord, s as shouldRecordPrompt, g as getTrigger, t as triggerMode, c as searchKey, d as textPreviewOf } from '../../chunks/app-config.svelte.js-D7wkLUkK.js';
10
10
  import { c as getLocale } from '../../chunks/runtime.js-CCJi3XaY.js';
11
- import { p as page, a as afterNavigate, t, c as currentLocale, e as replaceState, u as unexpectederror1, s as sessionnotfound2, r as reapednote1, d as dshunreachable1, b as backtoworkspace2 } from '../../chunks/state.js-OSxIx7MQ.js';
11
+ import { p as page, a as afterNavigate, t, c as currentLocale, e as replaceState, u as unexpectederror1, s as sessionnotfound2, r as reapednote1, d as dshunreachable1, b as backtoworkspace2 } from '../../chunks/state.js-BT8iDJXe.js';
12
12
  import 'yaml';
13
13
  import 'html-to-image';
14
14
  import hljs from 'highlight.js/lib/core';
@@ -20,7 +20,7 @@ import xml from 'highlight.js/lib/languages/xml';
20
20
  import css from 'highlight.js/lib/languages/css';
21
21
  import '../../chunks/uneval.js-BJ9Qq2SF.js';
22
22
  import '../../chunks/shared.js-HQ0rfhm4.js';
23
- import '../../chunks/internal2.js-C4ukUWRE.js';
23
+ import '../../chunks/internal2.js-BGlVENi_.js';
24
24
  import '../../chunks/exports.js-DH_tjtdv.js';
25
25
  import '../../chunks/utils.js-CAdNO8Tu.js';
26
26
 
@@ -18337,8 +18337,8 @@ function ThemeToggle($$renderer, $$props) {
18337
18337
  }
18338
18338
  //#endregion
18339
18339
  //#region package.json
18340
- var version = "0.6.18";
18341
- var dsh = { "webVersion": "0.2.1-alpha.4" };
18340
+ var version = "0.6.19";
18341
+ var dsh = { "webVersion": "0.2.1-rc.2" };
18342
18342
  //#endregion
18343
18343
  //#region src/lib/version.ts
18344
18344
  /**
@@ -21673,6 +21673,23 @@ function parseCommand(text) {
21673
21673
  default: return null;
21674
21674
  }
21675
21675
  }
21676
+ /**
21677
+ * The INTERNAL constructor for the loadinjected command (2026-09-17, The
21678
+ * Retired Typed Command ADR D3): the shelf button's only way to compose
21679
+ * the command — never a string handed back to parseCommand. The shape is
21680
+ * byte-identical to the pre-retirement typed grammar's product (filename
21681
+ * present, args empty, addPanel for --add), so the executor resolves it
21682
+ * exactly as the Loadinjected ADR (2026-09-07, D4) built — resolution,
21683
+ * honest notes, dedupe, placement all keep their single home.
21684
+ */
21685
+ function loadinjectedCommand(displayPath, opts = {}) {
21686
+ return {
21687
+ type: "loadinjected",
21688
+ args: "",
21689
+ filename: displayPath,
21690
+ ...opts.add === true ? { addPanel: true } : {}
21691
+ };
21692
+ }
21676
21693
  //#endregion
21677
21694
  //#region src/lib/services/chat/command-help.ts
21678
21695
  /**
@@ -28064,7 +28081,7 @@ function BackToTheEdgeButton($$renderer, $$props) {
28064
28081
  });
28065
28082
  }
28066
28083
  //#endregion
28067
- //#region src/lib/components/common/layout/PlanPopup.svelte
28084
+ //#region src/lib/components/anchor/plan/PlanPopup.svelte
28068
28085
  function PlanPopup($$renderer, $$props) {
28069
28086
  $$renderer.component(($$renderer) => {
28070
28087
  /**
@@ -28113,7 +28130,7 @@ function PlanPopup($$renderer, $$props) {
28113
28130
  });
28114
28131
  }
28115
28132
  //#endregion
28116
- //#region src/lib/components/common/buttons/PlanButton.svelte
28133
+ //#region src/lib/components/anchor/plan/PlanButton.svelte
28117
28134
  function PlanButton($$renderer, $$props) {
28118
28135
  $$renderer.component(($$renderer) => {
28119
28136
  /**
@@ -28147,7 +28164,7 @@ function PlanButton($$renderer, $$props) {
28147
28164
  function $$render_inner($$renderer) {
28148
28165
  if (items().length > 0) {
28149
28166
  $$renderer.push("<!--[0-->");
28150
- $$renderer.push(`<div data-svelte="PlanButton" class="relative"><button type="button"${attr_class("floating-anchor-btn tone-purple svelte-dnm04b", void 0, { "active": open })}${attr("title", t(currentplan1) + done() + "/" + items().length + t(donepart1))} data-testid="plan-button">`);
28167
+ $$renderer.push(`<div data-svelte="PlanButton" class="relative"><button type="button"${attr_class("floating-anchor-btn tone-purple svelte-d0p77f", void 0, { "active": open })}${attr("title", t(currentplan1) + done() + "/" + items().length + t(donepart1))} data-testid="plan-button">`);
28151
28168
  List_checks($$renderer, { size: 14 });
28152
28169
  $$renderer.push(`<!----></button> `);
28153
28170
  PlanPopup($$renderer, {
@@ -28174,7 +28191,49 @@ function PlanButton($$renderer, $$props) {
28174
28191
  });
28175
28192
  }
28176
28193
  //#endregion
28177
- //#region src/lib/components/common/buttons/JobsButton.svelte
28194
+ //#region src/lib/components/anchor/job/JobsPopup.svelte
28195
+ function JobsPopup($$renderer, $$props) {
28196
+ $$renderer.component(($$renderer) => {
28197
+ /**
28198
+ * JobsPopup — the popup half of the JobsButton anchor leaf (Job Badge
28199
+ * Wave 3): the shared JobRosterList readout hosted in
28200
+ * FloatingAnchorContainerPopup (The Popup Shell ADR D1) since the
28201
+ * 2026-10-17 placement fix: the hand-rolled absolute popup broke in
28202
+ * embedded panel mode, while the shell's right-full/vertically-centered
28203
+ * placement is the pinned surface the other anchor leaves use.
28204
+ */
28205
+ let { open = void 0, triggerEl, jobs, sessionId } = $$props;
28206
+ let $$settled = true;
28207
+ let $$inner_renderer;
28208
+ function $$render_inner($$renderer) {
28209
+ FloatingAnchorContainerPopup($$renderer, {
28210
+ triggerEl,
28211
+ popupTestId: "jobs-button-popup",
28212
+ get open() {
28213
+ return open;
28214
+ },
28215
+ set open($$value) {
28216
+ open = $$value;
28217
+ $$settled = false;
28218
+ },
28219
+ children: ($$renderer) => {
28220
+ JobRosterList($$renderer, {
28221
+ jobs});
28222
+ },
28223
+ $$slots: { default: true }
28224
+ });
28225
+ }
28226
+ do {
28227
+ $$settled = true;
28228
+ $$inner_renderer = $$renderer.copy();
28229
+ $$render_inner($$inner_renderer);
28230
+ } while (!$$settled);
28231
+ $$renderer.subsume($$inner_renderer);
28232
+ bind_props($$props, { open });
28233
+ });
28234
+ }
28235
+ //#endregion
28236
+ //#region src/lib/components/anchor/job/JobsButton.svelte
28178
28237
  function JobsButton($$renderer, $$props) {
28179
28238
  $$renderer.component(($$renderer) => {
28180
28239
  /**
@@ -28204,22 +28263,18 @@ function JobsButton($$renderer, $$props) {
28204
28263
  function $$render_inner($$renderer) {
28205
28264
  if (liveCount() > 0) {
28206
28265
  $$renderer.push("<!--[0-->");
28207
- $$renderer.push(`<div data-svelte="JobsButton" class="relative" data-testid="jobs-button"><button type="button"${attr_class("floating-anchor-btn tone-amber svelte-1l76ff0", void 0, { "active": open })}${attr("title", t(() => liveCount() === 1 ? jobslivetitle_one2({ n: liveCount() }) : jobslivetitle_other2({ n: liveCount() })))} data-testid="jobs-button-trigger"><span class="dot svelte-1l76ff0"></span>${escape_html(liveCount())}</button> `);
28208
- FloatingAnchorContainerPopup($$renderer, {
28266
+ $$renderer.push(`<div data-svelte="JobsButton" class="relative" data-testid="jobs-button"><button type="button"${attr_class("floating-anchor-btn tone-amber svelte-bs4s7e", void 0, { "active": open })}${attr("title", t(() => liveCount() === 1 ? jobslivetitle_one2({ n: liveCount() }) : jobslivetitle_other2({ n: liveCount() })))} data-testid="jobs-button-trigger"><span class="dot svelte-bs4s7e"></span>${escape_html(liveCount())}</button> `);
28267
+ JobsPopup($$renderer, {
28209
28268
  triggerEl,
28210
- popupTestId: "jobs-button-popup",
28269
+ jobs: jobs(),
28270
+ sessionId,
28211
28271
  get open() {
28212
28272
  return open;
28213
28273
  },
28214
28274
  set open($$value) {
28215
28275
  open = $$value;
28216
28276
  $$settled = false;
28217
- },
28218
- children: ($$renderer) => {
28219
- JobRosterList($$renderer, {
28220
- jobs: jobs()});
28221
- },
28222
- $$slots: { default: true }
28277
+ }
28223
28278
  });
28224
28279
  $$renderer.push(`<!----></div>`);
28225
28280
  } else $$renderer.push("<!--[-1-->");
@@ -28234,6 +28289,71 @@ function JobsButton($$renderer, $$props) {
28234
28289
  });
28235
28290
  }
28236
28291
  //#endregion
28292
+ //#region src/lib/components/anchor/inject/InjectedShelfPopup.svelte
28293
+ function InjectedShelfPopup($$renderer, $$props) {
28294
+ $$renderer.component(($$renderer) => {
28295
+ /**
28296
+ * InjectedShelfPopup — the Injected leaf's row list (extracted from
28297
+ * InjectedShelfButton, 2026-10-18, on the PlanPopup pattern): the
28298
+ * shelf members in the operator's order, each with its prefix copy
28299
+ * affordance and pick target, under the "Injected files: (n)" header.
28300
+ *
28301
+ * Hosting lives in FloatingAnchorContainerPopup (The Popup Shell ADR
28302
+ * D1/D2): placement, pointer re-entry, and the close contract
28303
+ * (Escape or a trusted outside click; the trigger exempt) are the
28304
+ * container's — this leaf renders ONLY the rows (copy affordance,
28305
+ * pick, first-load divider). The pick is the host's: the button owns
28306
+ * the SAME parser→executor path the composer command takes (The
28307
+ * Loadinjected ADR D6), so this popup never touches the executor.
28308
+ */
28309
+ let { members, entries, workspace = null, triggerEl, open = false, onpick } = $$props;
28310
+ let $$settled = true;
28311
+ let $$inner_renderer;
28312
+ function $$render_inner($$renderer) {
28313
+ FloatingAnchorContainerPopup($$renderer, {
28314
+ triggerEl,
28315
+ title: t(() => injectedfiles1({ n: members.length })),
28316
+ titleTestId: "injected-shelf-popup-header",
28317
+ popupTestId: "injected-shelf-popup",
28318
+ get open() {
28319
+ return open;
28320
+ },
28321
+ set open($$value) {
28322
+ open = $$value;
28323
+ $$settled = false;
28324
+ },
28325
+ children: ($$renderer) => {
28326
+ $$renderer.push(`<!--[-->`);
28327
+ const each_array = ensure_array_like(members);
28328
+ for (let i = 0, $$length = each_array.length; i < $$length; i++) {
28329
+ let m = each_array[i];
28330
+ if (i > 0 && members[i - 1].firstLoad === true && m.firstLoad === false) {
28331
+ $$renderer.push("<!--[0-->");
28332
+ $$renderer.push(`<hr class="shelf-divider svelte-vu3jcu" data-testid="shelf-first-load-divider"/>`);
28333
+ } else $$renderer.push("<!--[-1-->");
28334
+ $$renderer.push(`<!--]--> <div class="shelf-item svelte-vu3jcu" data-testid="injected-shelf-item"${attr("data-display-path", m.displayPath)}>`);
28335
+ CopyButton($$renderer, {
28336
+ value: m.origin === "system-prompt" ? injectedRecordFor(entries, m.displayPath)?.text ?? m.displayPath : injectedFullPath(workspace, m.displayPath),
28337
+ title: m.origin === "system-prompt" ? "Copy prompt text — a shelf name, not a file" : "Copy full path",
28338
+ class: "shelf-copy"
28339
+ });
28340
+ $$renderer.push(`<!----> <button type="button" role="menuitem" class="shelf-pick svelte-vu3jcu" data-testid="injected-shelf-pick"${attr("title", m.displayPath)}><span class="shelf-pick-path svelte-vu3jcu">${escape_html(m.displayPath)}</span></button></div>`);
28341
+ }
28342
+ $$renderer.push(`<!--]-->`);
28343
+ },
28344
+ $$slots: { default: true }
28345
+ });
28346
+ }
28347
+ do {
28348
+ $$settled = true;
28349
+ $$inner_renderer = $$renderer.copy();
28350
+ $$render_inner($$inner_renderer);
28351
+ } while (!$$settled);
28352
+ $$renderer.subsume($$inner_renderer);
28353
+ bind_props($$props, { open });
28354
+ });
28355
+ }
28356
+ //#endregion
28237
28357
  //#region src/lib/services/chat/executor/workspace.ts
28238
28358
  /**
28239
28359
  * Execute one /permission… line through the typed route (commands/
@@ -29084,7 +29204,7 @@ async function executeHostCommand(line, ctx, onNote) {
29084
29204
  }
29085
29205
  }
29086
29206
  //#endregion
29087
- //#region src/lib/components/conversation/InjectedShelfButton.svelte
29207
+ //#region src/lib/components/anchor/inject/InjectedShelfButton.svelte
29088
29208
  function InjectedShelfButton($$renderer, $$props) {
29089
29209
  $$renderer.component(($$renderer) => {
29090
29210
  /**
@@ -29096,62 +29216,57 @@ function InjectedShelfButton($$renderer, $$props) {
29096
29216
  * one implementation. It NEVER calls the floor registry directly (D6's
29097
29217
  * rejected alternative: a second write path to the floor).
29098
29218
  *
29099
- * Hosting lives in FloatingAnchorContainerPopup since 2026-09-08 (The
29100
- * Popup Shell ADR D1/D2): placement, pointer re-entry, and the close
29101
- * contract (Escape or a trusted outside click; the trigger exempt) are
29102
- * the container's — this leaf renders ONLY the rows (copy affordance,
29103
- * pick, first-load divider). The popup is titled (user decision
29219
+ * The rows live in InjectedShelfPopup since 2026-10-18 (extracted on
29220
+ * the PlanPopup pattern); hosting stays in FloatingAnchorContainerPopup
29221
+ * (The Popup Shell ADR D1/D2): placement, pointer re-entry, and the
29222
+ * close contract (Escape or a trusted outside click; the trigger
29223
+ * exempt) are the container's. The popup is titled (user decision
29104
29224
  * 2026-09-08, amending the ADR's D3 default): "Injected files: (n)".
29105
29225
  *
29106
29226
  * Renders NOTHING when the shelf is empty — the gate moved in with the
29107
29227
  * button (the UserMessagesButton shape: self-contained with its popup).
29108
29228
  */
29109
- let { entries, workspace = null} = $$props;
29229
+ let { entries, sessionId, workspace = null, panelId = null, onnote } = $$props;
29110
29230
  /** Popup open state — the active tone mirrors it on the button. */
29111
29231
  let open = false;
29112
29232
  /** The popup's trigger exclusion element (the wrapper div). */
29113
29233
  let triggerEl = void 0;
29114
29234
  const members = derived(() => injectedShelfFor(entries));
29235
+ /** The D6 pick (amended 2026-09-17, The Retired Typed Command ADR
29236
+ * D3): the SAME executor path, composed through the parser's
29237
+ * constructor — the typed string is retired grammar the button must
29238
+ * never re-assemble. */
29239
+ function pick(displayPath) {
29240
+ open = false;
29241
+ executeCommand(loadinjectedCommand(displayPath, { add: true }), {
29242
+ sessionId,
29243
+ workspace: null,
29244
+ agent: null,
29245
+ panelId,
29246
+ entries
29247
+ }, onnote);
29248
+ }
29115
29249
  let $$settled = true;
29116
29250
  let $$inner_renderer;
29117
29251
  function $$render_inner($$renderer) {
29118
29252
  if (members().length > 0) {
29119
29253
  $$renderer.push("<!--[0-->");
29120
- $$renderer.push(`<div data-svelte="InjectedShelfButton" class="relative svelte-1la1glg"><button type="button"${attr_class("floating-anchor-btn tone-maroon svelte-1la1glg", void 0, { "active": open })}${attr("title", t(injectedtitle1))} data-testid="injected-shelf-button">`);
29254
+ $$renderer.push(`<div data-svelte="InjectedShelfButton" class="relative svelte-1nrpld0"><button type="button"${attr_class("floating-anchor-btn tone-maroon svelte-1nrpld0", void 0, { "active": open })}${attr("title", t(injectedtitle1))} data-testid="injected-shelf-button">`);
29121
29255
  File_text($$renderer, { size: 14 });
29122
29256
  $$renderer.push(`<!----></button> `);
29123
- FloatingAnchorContainerPopup($$renderer, {
29257
+ InjectedShelfPopup($$renderer, {
29258
+ members: members(),
29259
+ entries,
29260
+ workspace,
29124
29261
  triggerEl,
29125
- title: t(() => injectedfiles1({ n: members().length })),
29126
- titleTestId: "injected-shelf-popup-header",
29127
- popupTestId: "injected-shelf-popup",
29262
+ onpick: pick,
29128
29263
  get open() {
29129
29264
  return open;
29130
29265
  },
29131
29266
  set open($$value) {
29132
29267
  open = $$value;
29133
29268
  $$settled = false;
29134
- },
29135
- children: ($$renderer) => {
29136
- $$renderer.push(`<!--[-->`);
29137
- const each_array = ensure_array_like(members());
29138
- for (let i = 0, $$length = each_array.length; i < $$length; i++) {
29139
- let m = each_array[i];
29140
- if (i > 0 && members()[i - 1].firstLoad === true && m.firstLoad === false) {
29141
- $$renderer.push("<!--[0-->");
29142
- $$renderer.push(`<hr class="shelf-divider svelte-1la1glg" data-testid="shelf-first-load-divider"/>`);
29143
- } else $$renderer.push("<!--[-1-->");
29144
- $$renderer.push(`<!--]--> <div class="shelf-item svelte-1la1glg" data-testid="injected-shelf-item"${attr("data-display-path", m.displayPath)}>`);
29145
- CopyButton($$renderer, {
29146
- value: m.origin === "system-prompt" ? injectedRecordFor(entries, m.displayPath)?.text ?? m.displayPath : injectedFullPath(workspace, m.displayPath),
29147
- title: m.origin === "system-prompt" ? "Copy prompt text — a shelf name, not a file" : "Copy full path",
29148
- class: "shelf-copy"
29149
- });
29150
- $$renderer.push(`<!----> <button type="button" role="menuitem" class="shelf-pick svelte-1la1glg" data-testid="injected-shelf-pick"${attr("title", m.displayPath)}><span class="shelf-pick-path svelte-1la1glg">${escape_html(m.displayPath)}</span></button></div>`);
29151
- }
29152
- $$renderer.push(`<!--]-->`);
29153
- },
29154
- $$slots: { default: true }
29269
+ }
29155
29270
  });
29156
29271
  $$renderer.push(`<!----></div>`);
29157
29272
  } else $$renderer.push("<!--[-1-->");
@@ -29177,7 +29292,7 @@ function ConversationFloatingAnchor($$renderer, $$props) {
29177
29292
  * far-edge jump. Purely presentational — the viewport and turn groups
29178
29293
  * arrive as props.
29179
29294
  */
29180
- let { groups, container, todos = null, jobsessionid = "", shelfentries = void 0, shelfworkspace = null} = $$props;
29295
+ let { groups, container, todos = null, jobsessionid = "", shelfentries = void 0, shelfsessionid = "", shelfworkspace = null, shelfpanelid = null, onshelfnote } = $$props;
29181
29296
  if (container !== void 0) {
29182
29297
  $$renderer.push("<!--[0-->");
29183
29298
  FloatingAnchor($$renderer, {
@@ -29190,7 +29305,11 @@ function ConversationFloatingAnchor($$renderer, $$props) {
29190
29305
  $$renderer.push("<!--[0-->");
29191
29306
  InjectedShelfButton($$renderer, {
29192
29307
  entries: shelfentries,
29193
- workspace: shelfworkspace});
29308
+ sessionId: shelfsessionid,
29309
+ workspace: shelfworkspace,
29310
+ panelId: shelfpanelid,
29311
+ onnote: onshelfnote
29312
+ });
29194
29313
  } else $$renderer.push("<!--[-1-->");
29195
29314
  $$renderer.push(`<!--]--> `);
29196
29315
  UserMessagesButton($$renderer, {
@@ -30644,7 +30763,11 @@ function ConversationPanel($$renderer, $$props) {
30644
30763
  todos: store.todos ?? null,
30645
30764
  jobsessionid: sessionId,
30646
30765
  shelfentries: store.entries,
30647
- shelfworkspace: workspace});
30766
+ shelfsessionid: sessionId,
30767
+ shelfworkspace: workspace,
30768
+ shelfpanelid: panelId,
30769
+ onshelfnote: (ok, note) => ladder.noteCommand(ok ? "ok" : "error", note)
30770
+ });
30648
30771
  $$renderer.push(`<!----> `);
30649
30772
  A2aChipStack($$renderer, {
30650
30773
  rows: a2aRows,
@@ -34028,4 +34151,4 @@ function _page($$renderer, $$props) {
34028
34151
  }
34029
34152
 
34030
34153
  export { _page as default };
34031
- //# sourceMappingURL=_page.svelte.js-BvcQOPvs.js.map
34154
+ //# sourceMappingURL=_page.svelte.js-BoCqON33.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-C43GYBhl.js';
13
- import { m as manifest } from './manifest.js-DN0QODc_.js';
12
+ import { S as Server } from './index.js-Co6HpgIt.js';
13
+ import { m as manifest } from './manifest.js-BoZ1Tnyu.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-D0h_ogA5.js.map
1735
+ //# sourceMappingURL=handler-CxEHv3N9.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-C4ukUWRE.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-BGlVENi_.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 writable, T as readable } from './chunks/server.js-DqHGsQU2.js';
9
9
 
@@ -3862,4 +3862,4 @@ var Server = class {
3862
3862
  };
3863
3863
 
3864
3864
  export { Server as S };
3865
- //# sourceMappingURL=index.js-C43GYBhl.js.map
3865
+ //# sourceMappingURL=index.js-Co6HpgIt.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.-NibTCMf.js",app:"_app/immutable/entry/app.CGvLdbvX.js",imports:["_app/immutable/entry/start.-NibTCMf.js","_app/immutable/chunks/CtUqZStl.js","_app/immutable/chunks/DmLHHlla.js","_app/immutable/entry/app.CGvLdbvX.js","_app/immutable/chunks/DmLHHlla.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.DovVSimi.js",app:"_app/immutable/entry/app.By0um08-.js",imports:["_app/immutable/entry/start.DovVSimi.js","_app/immutable/chunks/L81Qm9WF.js","_app/immutable/chunks/DmLHHlla.js","_app/immutable/entry/app.By0um08-.js","_app/immutable/chunks/DmLHHlla.js","_app/immutable/chunks/HclGiUj8.js","_app/immutable/chunks/xihTtKlq.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
14
14
  nodes: [
15
15
  __memo(() => import('./nodes/0.js-zSkx80Fq.js')),
16
- __memo(() => import('./nodes/1.js-Da_l90xT.js')),
17
- __memo(() => import('./nodes/2.js-_OZDbZ-E.js'))
16
+ __memo(() => import('./nodes/1.js-BWaCxXNn.js')),
17
+ __memo(() => import('./nodes/2.js-DNAbnuXD.js'))
18
18
  ],
19
19
  remotes: {
20
20
 
@@ -473,4 +473,4 @@ return {
473
473
  })();
474
474
 
475
475
  export { manifest as m };
476
- //# sourceMappingURL=manifest.js-DN0QODc_.js.map
476
+ //# sourceMappingURL=manifest.js-BoZ1Tnyu.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-DrXSHJGM.js')).default;
4
+ const imports = ["_app/immutable/nodes/1.zMtTl7W9.js","_app/immutable/chunks/DmLHHlla.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/CcfE8WnY.js","_app/immutable/chunks/L81Qm9WF.js","_app/immutable/chunks/DlfWhx6l.js"];
5
+ const stylesheets = [];
6
+ const fonts = [];
7
+
8
+ export { component, fonts, imports, index, stylesheets };
9
+ //# sourceMappingURL=1.js-BWaCxXNn.js.map
@@ -18,11 +18,11 @@ import '../chunks/uneval.js-BJ9Qq2SF.js';
18
18
 
19
19
  const index = 2;
20
20
  let component_cache;
21
- const component = async () => component_cache ??= (await import('../entries/pages/_page.svelte.js-BvcQOPvs.js')).default;
21
+ const component = async () => component_cache ??= (await import('../entries/pages/_page.svelte.js-BoCqON33.js')).default;
22
22
  const server_id = "src/routes/+page.server.ts";
23
- const imports = ["_app/immutable/nodes/2.5NpWuIn7.js","_app/immutable/chunks/DmLHHlla.js","_app/immutable/chunks/CtUqZStl.js","_app/immutable/chunks/HclGiUj8.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/DlfWhx6l.js","_app/immutable/chunks/D6mTYwDH.js","_app/immutable/chunks/Bqotzgnw.js"];
24
- const stylesheets = ["_app/immutable/assets/2.C7lNCQCV.css"];
23
+ const imports = ["_app/immutable/nodes/2.C9y-bmIa.js","_app/immutable/chunks/DmLHHlla.js","_app/immutable/chunks/L81Qm9WF.js","_app/immutable/chunks/HclGiUj8.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/DlfWhx6l.js","_app/immutable/chunks/D6mTYwDH.js","_app/immutable/chunks/CcfE8WnY.js"];
24
+ const stylesheets = ["_app/immutable/assets/2.CulOeYPh.css"];
25
25
  const fonts = [];
26
26
 
27
27
  export { component, fonts, imports, index, server_id, stylesheets };
28
- //# sourceMappingURL=2.js-_OZDbZ-E.js.map
28
+ //# sourceMappingURL=2.js-DNAbnuXD.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deepseek-insight/dsi",
3
- "version": "0.6.18",
3
+ "version": "0.6.19",
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.1-alpha.4"
41
+ "webVersion": "0.2.1-rc.2"
42
42
  },
43
43
  "bin": {
44
44
  "dsi": "bin/dsi.mjs"
Binary file
Binary file
@@ -1 +0,0 @@
1
- import{H as e}from"../nodes/2.5NpWuIn7.js";export{e as startPanelResize};
@@ -1 +0,0 @@
1
- import{r as e}from"../nodes/2.5NpWuIn7.js";export{e as stringify};
@@ -1 +0,0 @@
1
- import{o as e,r as t}from"../chunks/CtUqZStl.js";export{e as load_css,t as start};
@@ -1,9 +0,0 @@
1
- const index = 1;
2
- let component_cache;
3
- const component = async () => component_cache ??= (await import('../entries/pages/_error.svelte.js-2wYgv54Z.js')).default;
4
- const imports = ["_app/immutable/nodes/1.CiNEHoEh.js","_app/immutable/chunks/DmLHHlla.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/Bqotzgnw.js","_app/immutable/chunks/CtUqZStl.js","_app/immutable/chunks/DlfWhx6l.js"];
5
- const stylesheets = [];
6
- const fonts = [];
7
-
8
- export { component, fonts, imports, index, stylesheets };
9
- //# sourceMappingURL=1.js-Da_l90xT.js.map