@deepseek-insight/dsi 0.6.20 → 0.6.21

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 (49) hide show
  1. package/build/client/_app/immutable/assets/0.BQzh2ktU.css +2 -0
  2. package/build/client/_app/immutable/assets/{2.BqRWIIgD.css → 2.ByYVysCj.css} +1 -1
  3. package/build/client/_app/immutable/chunks/6lkFuaQJ.js +1 -0
  4. package/build/client/_app/immutable/chunks/BtiOY3LQ.js +2 -0
  5. package/build/client/_app/immutable/chunks/Ct20Yiq1.js +1 -0
  6. package/build/client/_app/immutable/chunks/{BbvYWcEs.js → DygY_IXG.js} +1 -1
  7. package/build/client/_app/immutable/entry/{app.BAD3jsui.js → app.a14BvSUo.js} +2 -2
  8. package/build/client/_app/immutable/entry/start.DwHZM5ia.js +1 -0
  9. package/build/client/_app/immutable/nodes/{1.COHJn6QL.js → 1.BKoLqRXA.js} +1 -1
  10. package/build/client/_app/immutable/nodes/2.CSRBDmmw.js +337 -0
  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/deliverables.js-Dg6XzNkW.js +46 -0
  15. package/build/server/chunks/chunks/{dsh-events.js-35seDLwL.js → dsh-events.js-CGuF_had.js} +2 -1
  16. package/build/server/chunks/chunks/{git-probe.js-D4DjBXSY.js → git-probe.js-6ARRicD2.js} +2 -2
  17. package/build/server/chunks/chunks/{internal2.js-BDzd2OUR.js → internal2.js-Bcxjr5x2.js} +2 -2
  18. package/build/server/chunks/chunks/{state.js-Cb31UwpL.js → state.js-ez_uUx9I.js} +2 -2
  19. package/build/server/chunks/chunks/{watcher.js-CACduBB9.js → watcher.js-Dogr6xsl.js} +2 -2
  20. package/build/server/chunks/entries/endpoints/api/a2a/{_server.ts.js-DHFHuGSm.js → _server.ts.js-BkLuKDZr.js} +3 -3
  21. package/build/server/chunks/entries/endpoints/api/a2a/register/{_server.ts.js-CUUfDBcc.js → _server.ts.js-BOyrp9zt.js} +3 -3
  22. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/events/{_server.ts.js-BiAJcPpb.js → _server.ts.js-LWw-YpVI.js} +7 -3
  23. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/history/{_server.ts.js-ecbtat_C.js → _server.ts.js-CYt4aYoc.js} +2 -2
  24. package/build/server/chunks/entries/endpoints/api/workspace/file-write/{_server.ts.js-Cb7X2G82.js → _server.ts.js-CWWi0aa8.js} +3 -3
  25. package/build/server/chunks/entries/endpoints/api/workspace/git-events/{_server.ts.js-DZ67v729.js → _server.ts.js-Dc0g7HPl.js} +3 -3
  26. package/build/server/chunks/entries/endpoints/api/workspace/git-file-head/{_server.ts.js-BuO5Stmm.js → _server.ts.js-CvPoP9yH.js} +3 -3
  27. package/build/server/chunks/entries/endpoints/api/workspace/git-map/{_server.ts.js-Bb_I5Ze7.js → _server.ts.js-f5Gk_lb6.js} +3 -3
  28. package/build/server/chunks/entries/endpoints/api/workspace/git-status/{_server.ts.js-cHWxh5VB.js → _server.ts.js-BMkKlCgS.js} +3 -3
  29. package/build/server/chunks/entries/endpoints/api/workspace/write-gate/{_server.ts.js-Blcfn0zm.js → _server.ts.js-DUL-2q1R.js} +3 -3
  30. package/build/server/chunks/entries/pages/{_error.svelte.js-BqHQUTpg.js → _error.svelte.js-DDQEX5e3.js} +3 -3
  31. package/build/server/chunks/entries/pages/{_page.server.ts.js-C_ydvzuE.js → _page.server.ts.js-DFRnK-I2.js} +7 -2
  32. package/build/server/chunks/entries/pages/{_page.svelte.js-CWiGV7R5.js → _page.svelte.js-DrMNc6ih.js} +330 -55
  33. package/build/server/chunks/{handler-CPdXYlKK.js → handler-Cqw6zPgE.js} +3 -3
  34. package/build/server/chunks/{index.js-CNYTOWSB.js → index.js-CZ6hvqti.js} +2 -2
  35. package/build/server/chunks/{manifest.js-CQRa1JdF.js → manifest.js-SFcYF8ua.js} +15 -15
  36. package/build/server/chunks/nodes/{0.js-zSkx80Fq.js → 0.js-BqYWZcQy.js} +3 -3
  37. package/build/server/chunks/nodes/1.js-CoGgQITW.js +9 -0
  38. package/build/server/chunks/nodes/{2.js-CL8x9-EN.js → 2.js-CnybOb74.js} +7 -6
  39. package/package.json +1 -1
  40. package/template/.dsi/prompts.sqlite-shm +0 -0
  41. package/template/.dsi/prompts.sqlite-wal +0 -0
  42. package/build/client/_app/immutable/assets/0.KhAZv9mf.css +0 -2
  43. package/build/client/_app/immutable/chunks/BNsgelmQ.js +0 -1
  44. package/build/client/_app/immutable/chunks/C9uc32GW.js +0 -1
  45. package/build/client/_app/immutable/chunks/tw7vR7yM.js +0 -2
  46. package/build/client/_app/immutable/entry/start.CFzOCQr3.js +0 -1
  47. package/build/client/_app/immutable/nodes/2.CpHpu496.js +0 -337
  48. package/build/server/chunks/nodes/1.js-BQXeCZbQ.js +0 -9
  49. /package/build/client/_app/immutable/nodes/{0.Jl8y_yU6.js → 0.BE97Xr19.js} +0 -0
@@ -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-Cb31UwpL.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-ez_uUx9I.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-BDzd2OUR.js';
23
+ import '../../chunks/internal2.js-Bcxjr5x2.js';
24
24
  import '../../chunks/exports.js-DH_tjtdv.js';
25
25
  import '../../chunks/utils.js-CAdNO8Tu.js';
26
26
 
@@ -3224,6 +3224,70 @@ var deleting = ((inputs = {}, options = {}) => {
3224
3224
  return en_deleting();
3225
3225
  });
3226
3226
  //#endregion
3227
+ //#region src/lib/paraglide/messages/deliverablesfiles1.js
3228
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
3229
+ /** @typedef {{}} Deliverablesfiles1Inputs */
3230
+ var en_deliverablesfiles1 = () => {
3231
+ return ` files)`;
3232
+ };
3233
+ var zh_deliverablesfiles1 = () => {
3234
+ return ` 个文件)`;
3235
+ };
3236
+ var id_deliverablesfiles1 = () => {
3237
+ return ` berkas)`;
3238
+ };
3239
+ var es_deliverablesfiles1 = () => {
3240
+ return ` archivos)`;
3241
+ };
3242
+ /**
3243
+ * | output |
3244
+ * | --- |
3245
+ * | "files)" |
3246
+ *
3247
+ * @param {Deliverablesfiles1Inputs} inputs
3248
+ * @param {{ locale?: "en" | "zh" | "id" | "es" }} options
3249
+ * @returns {LocalizedString}
3250
+ */
3251
+ var deliverablesfiles1 = ((inputs = {}, options = {}) => {
3252
+ const locale = options.locale ?? getLocale();
3253
+ if (locale === "zh") return zh_deliverablesfiles1();
3254
+ if (locale === "id") return id_deliverablesfiles1();
3255
+ if (locale === "es") return es_deliverablesfiles1();
3256
+ return en_deliverablesfiles1();
3257
+ });
3258
+ //#endregion
3259
+ //#region src/lib/paraglide/messages/deliverablestitle1.js
3260
+ /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
3261
+ /** @typedef {{}} Deliverablestitle1Inputs */
3262
+ var en_deliverablestitle1 = () => {
3263
+ return `Deliverables (`;
3264
+ };
3265
+ var zh_deliverablestitle1 = () => {
3266
+ return `交付文件(`;
3267
+ };
3268
+ var id_deliverablestitle1 = () => {
3269
+ return `Hasil kerja (`;
3270
+ };
3271
+ var es_deliverablestitle1 = () => {
3272
+ return `Entregables (`;
3273
+ };
3274
+ /**
3275
+ * | output |
3276
+ * | --- |
3277
+ * | "Deliverables (" |
3278
+ *
3279
+ * @param {Deliverablestitle1Inputs} inputs
3280
+ * @param {{ locale?: "en" | "zh" | "id" | "es" }} options
3281
+ * @returns {LocalizedString}
3282
+ */
3283
+ var deliverablestitle1 = ((inputs = {}, options = {}) => {
3284
+ const locale = options.locale ?? getLocale();
3285
+ if (locale === "zh") return zh_deliverablestitle1();
3286
+ if (locale === "id") return id_deliverablestitle1();
3287
+ if (locale === "es") return es_deliverablestitle1();
3288
+ return en_deliverablestitle1();
3289
+ });
3290
+ //#endregion
3227
3291
  //#region src/lib/paraglide/messages/dirbreadcrumbs1.js
3228
3292
  /** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
3229
3293
  /** @typedef {{}} Dirbreadcrumbs1Inputs */
@@ -14495,6 +14559,8 @@ var _index_exports = /* @__PURE__ */ __exportAll({
14495
14559
  del: () => del,
14496
14560
  delete: () => _delete,
14497
14561
  deleting: () => deleting,
14562
+ deliverablesFiles: () => deliverablesfiles1,
14563
+ deliverablesTitle: () => deliverablestitle1,
14498
14564
  dirBreadcrumbs: () => dirbreadcrumbs1,
14499
14565
  discardBroadcast: () => discardbroadcast1,
14500
14566
  discardBroadcastTitle: () => discardbroadcasttitle2,
@@ -14953,6 +15019,8 @@ var messages_exports = /* @__PURE__ */ __exportAll({
14953
15019
  del: () => del,
14954
15020
  delete: () => _delete,
14955
15021
  deleting: () => deleting,
15022
+ deliverablesFiles: () => deliverablesfiles1,
15023
+ deliverablesTitle: () => deliverablestitle1,
14956
15024
  dirBreadcrumbs: () => dirbreadcrumbs1,
14957
15025
  discardBroadcast: () => discardbroadcast1,
14958
15026
  discardBroadcastTitle: () => discardbroadcasttitle2,
@@ -15461,6 +15529,29 @@ function Bookmark_plus($$renderer, $$props) {
15461
15529
  ]));
15462
15530
  }
15463
15531
  //#endregion
15532
+ //#region node_modules/.pnpm/@lucide+svelte@1.35.0_svelte@5.56.10/node_modules/@lucide/svelte/dist/icons/bot.svelte
15533
+ function Bot($$renderer, $$props) {
15534
+ let { $$slots, $$events, ...props } = $$props;
15535
+ Icon($$renderer, spread_props([
15536
+ { name: "bot" },
15537
+ props,
15538
+ { iconNode: [
15539
+ ["path", { "d": "M12 8V4H8" }],
15540
+ ["rect", {
15541
+ "width": "16",
15542
+ "height": "12",
15543
+ "x": "4",
15544
+ "y": "8",
15545
+ "rx": "2"
15546
+ }],
15547
+ ["path", { "d": "M2 14h2" }],
15548
+ ["path", { "d": "M20 14h2" }],
15549
+ ["path", { "d": "M15 13v2" }],
15550
+ ["path", { "d": "M9 13v2" }]
15551
+ ] }
15552
+ ]));
15553
+ }
15554
+ //#endregion
15464
15555
  //#region node_modules/.pnpm/@lucide+svelte@1.35.0_svelte@5.56.10/node_modules/@lucide/svelte/dist/icons/camera.svelte
15465
15556
  function Camera($$renderer, $$props) {
15466
15557
  let { $$slots, $$events, ...props } = $$props;
@@ -15853,6 +15944,21 @@ function Moon($$renderer, $$props) {
15853
15944
  ]));
15854
15945
  }
15855
15946
  //#endregion
15947
+ //#region node_modules/.pnpm/@lucide+svelte@1.35.0_svelte@5.56.10/node_modules/@lucide/svelte/dist/icons/package.svelte
15948
+ function Package($$renderer, $$props) {
15949
+ let { $$slots, $$events, ...props } = $$props;
15950
+ Icon($$renderer, spread_props([
15951
+ { name: "package" },
15952
+ props,
15953
+ { iconNode: [
15954
+ ["path", { "d": "M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z" }],
15955
+ ["path", { "d": "M12 22V12" }],
15956
+ ["polyline", { "points": "3.29 7 12 12 20.71 7" }],
15957
+ ["path", { "d": "m7.5 4.27 9 5.15" }]
15958
+ ] }
15959
+ ]));
15960
+ }
15961
+ //#endregion
15856
15962
  //#region node_modules/.pnpm/@lucide+svelte@1.35.0_svelte@5.56.10/node_modules/@lucide/svelte/dist/icons/panel-left-close.svelte
15857
15963
  function Panel_left_close($$renderer, $$props) {
15858
15964
  let { $$slots, $$events, ...props } = $$props;
@@ -18337,7 +18443,7 @@ function ThemeToggle($$renderer, $$props) {
18337
18443
  }
18338
18444
  //#endregion
18339
18445
  //#region package.json
18340
- var version = "0.6.20";
18446
+ var version = "0.6.21";
18341
18447
  var dsh = { "webVersion": "0.2.1-rc.2" };
18342
18448
  //#endregion
18343
18449
  //#region src/lib/version.ts
@@ -19031,6 +19137,11 @@ function createConversationStore(sessionId) {
19031
19137
  * server first delivers the pair (older host / projections not
19032
19138
  * composed); the panel keeps its partial fold then. */
19033
19139
  let ledgerStats = null;
19140
+ /** The session's presented-file inventory (ADR-0027f D1): raw-lane
19141
+ * deliveries, cold-seeded/resync-replaced wholesale, delta-appended by
19142
+ * callId (idempotent — at-least-once polls never duplicate). Empty =
19143
+ * no presents yet (the anchor button's render gate). */
19144
+ let deliverables = [];
19034
19145
  /**
19035
19146
  * Cold/resync seed (authoritative replace, the entries semantics): the
19036
19147
  * projections baseline (null = the host ships none) and the window's
@@ -19146,6 +19257,25 @@ function createConversationStore(sessionId) {
19146
19257
  if (poll.plan !== void 0) planMode = poll.plan;
19147
19258
  if (poll.goal !== void 0) goal = poll.goal;
19148
19259
  if (poll.ledgerStats !== void 0) ledgerStats = poll.ledgerStats;
19260
+ if (poll.deliverables !== void 0) applyDeliverables(poll.deliverables);
19261
+ }
19262
+ /**
19263
+ * Fold raw-lane deliveries in (ADR-0027f D1): append by callId — an
19264
+ * already-known callId is a re-delivered poll delta, skipped whole.
19265
+ */
19266
+ function applyDeliverables(delta) {
19267
+ if (delta.length === 0) return;
19268
+ const known = new Set(deliverables.map((d) => d.callId));
19269
+ const fresh = delta.filter((d) => !known.has(d.callId));
19270
+ if (fresh.length === 0) return;
19271
+ deliverables = [...deliverables, ...fresh];
19272
+ }
19273
+ /**
19274
+ * Seed the inventory (cold load + resync — authoritative replace, the
19275
+ * ledger's append-only truth re-read whole; ADR-0027f D1).
19276
+ */
19277
+ function seedDeliverables(next) {
19278
+ deliverables = [...next];
19149
19279
  }
19150
19280
  /**
19151
19281
  * Seed the live imageLimits projection (resync path — the delta seed
@@ -19198,13 +19328,14 @@ function createConversationStore(sessionId) {
19198
19328
  * SAME replace-by-rpcId rules as the delta path, so a page stuck
19199
19329
  * resyncing still renders pending/settled cards.
19200
19330
  */
19201
- function resyncFromLedgerEntries(next, lastSeq, running, permissionSeed, answers) {
19331
+ function resyncFromLedgerEntries(next, lastSeq, running, permissionSeed, answers, deliverablesSeed) {
19202
19332
  const pendingOptimistic = entries.filter((e) => e.kind === "user-message" && "local" in e && e.local === true);
19203
19333
  replaceAll(next);
19204
19334
  if (pendingOptimistic.length > 0) entries = mergeEntries(entries, pendingOptimistic);
19205
19335
  applyStatus(running, lastSeq);
19206
19336
  dedupeOptimistic();
19207
19337
  if (permissionSeed !== void 0) seedPermission(permissionSeed.permission, permissionSeed.knobEvents);
19338
+ if (deliverablesSeed !== void 0) seedDeliverables(deliverablesSeed);
19208
19339
  applyAnswers(answers?.pendingAnswers, answers?.settledAnswers);
19209
19340
  }
19210
19341
  /** Acquire the per-rpcId in-flight lock (false = already locked). */
@@ -19312,7 +19443,13 @@ function createConversationStore(sessionId) {
19312
19443
  get ledgerStats() {
19313
19444
  return ledgerStats;
19314
19445
  },
19446
+ /** The session's presented-file inventory (ADR-0027f); empty =
19447
+ * no presents (the DeliverablesButton gate). */
19448
+ get deliverables() {
19449
+ return deliverables;
19450
+ },
19315
19451
  seedImageLimits,
19452
+ seedDeliverables,
19316
19453
  seedTodos,
19317
19454
  seedPlanMode,
19318
19455
  seedGoal,
@@ -19427,7 +19564,7 @@ function createPollingOrchestrator(store, deps = {}) {
19427
19564
  }, {
19428
19565
  pendingAnswers: body.pendingAnswers,
19429
19566
  settledAnswers: body.settledAnswers
19430
- });
19567
+ }, body.deliverables ?? []);
19431
19568
  store.applyLiveStream(body.liveStream);
19432
19569
  store.seedImageLimits(body.imageLimits ?? null);
19433
19570
  store.seedTodos(body.todos ?? null);
@@ -23457,20 +23594,26 @@ function ToolsAndStatusHeader($$renderer, $$props) {
23457
23594
  $$renderer.push(`<div data-svelte="ToolsAndStatusHeader" class="ml-auto flex items-center gap-1">`);
23458
23595
  OpenParentButton($$renderer, { parentSessionId });
23459
23596
  $$renderer.push(`<!----> `);
23597
+ if (agentId) {
23598
+ $$renderer.push("<!--[0-->");
23599
+ $$renderer.push(`<button type="button" class="shrink-0 rounded-md p-1 text-text-muted hover:bg-surface-alt hover:text-text-secondary" data-testid="agent-chip-copy-id"${attr("aria-label", t(copyagentpresetid3))}${attr("title", agentId)}>`);
23600
+ $$renderer.push("<!--[-1-->");
23601
+ Copy($$renderer, {
23602
+ size: 12,
23603
+ "aria-hidden": "true"
23604
+ });
23605
+ $$renderer.push(`<!--]--></button>`);
23606
+ } else $$renderer.push("<!--[-1-->");
23607
+ $$renderer.push(`<!--]--> `);
23460
23608
  if (agent) {
23461
23609
  $$renderer.push("<!--[0-->");
23462
23610
  $$renderer.push(`<span class="agent-chip svelte-1uiman" data-testid="agent-chip"${attr("title", agentId ? `agent preset — ${agentId}` : void 0)}>`);
23463
- if (agentId) {
23464
- $$renderer.push("<!--[0-->");
23465
- $$renderer.push(`<button type="button" class="shrink-0" data-testid="agent-chip-copy-id"${attr("aria-label", t(copyagentpresetid3))}${attr("title", agentId)}>`);
23466
- $$renderer.push("<!--[-1-->");
23467
- Copy($$renderer, {
23468
- size: 10,
23469
- "aria-hidden": "true"
23470
- });
23471
- $$renderer.push(`<!--]--></button>`);
23472
- } else $$renderer.push("<!--[-1-->");
23473
- $$renderer.push(`<!--]--> ${escape_html(agent)}</span>`);
23611
+ Bot($$renderer, {
23612
+ size: 12,
23613
+ class: "shrink-0",
23614
+ "aria-hidden": "true"
23615
+ });
23616
+ $$renderer.push(`<!----> ${escape_html(agent)}</span>`);
23474
23617
  } else $$renderer.push("<!--[-1-->");
23475
23618
  $$renderer.push(`<!--]--> `);
23476
23619
  PlanModeChip($$renderer, { plan });
@@ -27935,13 +28078,13 @@ function FloatingAnchorContainerPopup($$renderer, $$props) {
27935
28078
  * `titleTestId` exists because the header's data-testid is part of
27936
28079
  * each leaf's pinned surface (plan-popup-header, user-message-jumper-header).
27937
28080
  */
27938
- let { open = false, triggerEl = void 0, title = void 0, titleTestId = void 0, popupTestId = "floating-anchor-popup", children } = $$props;
28081
+ let { open = false, triggerEl = void 0, title = void 0, titleTestId = void 0, popupTestId = "floating-anchor-popup", fitWidth = false, children } = $$props;
27939
28082
  /** Focus the box — leaves call it through bind:this when an action
27940
28083
  * must hand focus back (the jumper's stay-open jump). */
27941
28084
  function focus() {}
27942
28085
  if (open) {
27943
28086
  $$renderer.push("<!--[0-->");
27944
- $$renderer.push(`<div data-svelte="FloatingAnchorContainerPopup" tabindex="-1" class="pointer-events-auto absolute right-full top-1/2 z-50 mr-2 max-h-[60vh] w-96 max-w-[80vw] -translate-y-1/2 overflow-y-auto rounded-lg border border-surface-border bg-surface-elevated py-1 shadow-xl outline-none focus:outline-none"${attr("data-testid", popupTestId)}>`);
28087
+ $$renderer.push(`<div data-svelte="FloatingAnchorContainerPopup" tabindex="-1"${attr_class(`pointer-events-auto absolute right-full top-1/2 z-50 mr-2 max-h-[60vh] max-w-[80vw] -translate-y-1/2 overflow-y-auto rounded-lg border border-surface-border bg-surface-elevated py-1 shadow-xl outline-none focus:outline-none ${fitWidth ? "w-fit" : "w-96"}`)}${attr("data-testid", popupTestId)}>`);
27945
28088
  if (title !== void 0) {
27946
28089
  $$renderer.push("<!--[0-->");
27947
28090
  $$renderer.push(`<div class="border-b border-surface-border px-2.5 py-1.5 text-[10px] font-medium uppercase tracking-wider text-text-muted"${attr("data-testid", titleTestId)}>${escape_html(title)}</div>`);
@@ -27958,7 +28101,7 @@ function FloatingAnchorContainerPopup($$renderer, $$props) {
27958
28101
  });
27959
28102
  }
27960
28103
  //#endregion
27961
- //#region src/lib/components/anchor/user-messages/UserMessageJumper.svelte
28104
+ //#region src/lib/components/anchor/user-msg-anchor/UserMessageJumper.svelte
27962
28105
  function UserMessageJumper($$renderer, $$props) {
27963
28106
  $$renderer.component(($$renderer) => {
27964
28107
  /**
@@ -28013,7 +28156,7 @@ function UserMessageJumper($$renderer, $$props) {
28013
28156
  });
28014
28157
  }
28015
28158
  //#endregion
28016
- //#region src/lib/components/anchor/user-messages/UserMessagesButton.svelte
28159
+ //#region src/lib/components/anchor/user-msg-anchor/UserMessagesButton.svelte
28017
28160
  function UserMessagesButton($$renderer, $$props) {
28018
28161
  $$renderer.component(($$renderer) => {
28019
28162
  /**
@@ -28045,7 +28188,7 @@ function UserMessagesButton($$renderer, $$props) {
28045
28188
  function $$render_inner($$renderer) {
28046
28189
  if (container !== void 0 && groups.some((g) => g.kind === "prompt")) {
28047
28190
  $$renderer.push("<!--[0-->");
28048
- $$renderer.push(`<div data-svelte="UserMessagesButton" class="relative"><button type="button"${attr_class("floating-anchor-btn tone-cyan svelte-onysyu", void 0, { "active": open })}${attr("title", t(usermessagestitle2))} data-testid="user-messages-button">`);
28191
+ $$renderer.push(`<div data-svelte="UserMessagesButton" class="relative"><button type="button"${attr_class("floating-anchor-btn tone-cyan svelte-7ykxqh", void 0, { "active": open })}${attr("title", t(usermessagestitle2))} data-testid="user-messages-button">`);
28049
28192
  Message_square_text($$renderer, { size: 14 });
28050
28193
  $$renderer.push(`<!----></button> `);
28051
28194
  UserMessageJumper($$renderer, {
@@ -28081,7 +28224,7 @@ function BackToTheEdgeButton($$renderer, $$props) {
28081
28224
  });
28082
28225
  }
28083
28226
  //#endregion
28084
- //#region src/lib/components/anchor/plan/PlanPopup.svelte
28227
+ //#region src/lib/components/anchor/plan-anchor/PlanPopup.svelte
28085
28228
  function PlanPopup($$renderer, $$props) {
28086
28229
  $$renderer.component(($$renderer) => {
28087
28230
  /**
@@ -28130,7 +28273,7 @@ function PlanPopup($$renderer, $$props) {
28130
28273
  });
28131
28274
  }
28132
28275
  //#endregion
28133
- //#region src/lib/components/anchor/plan/PlanButton.svelte
28276
+ //#region src/lib/components/anchor/plan-anchor/PlanButton.svelte
28134
28277
  function PlanButton($$renderer, $$props) {
28135
28278
  $$renderer.component(($$renderer) => {
28136
28279
  /**
@@ -28164,7 +28307,7 @@ function PlanButton($$renderer, $$props) {
28164
28307
  function $$render_inner($$renderer) {
28165
28308
  if (items().length > 0) {
28166
28309
  $$renderer.push("<!--[0-->");
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">`);
28310
+ $$renderer.push(`<div data-svelte="PlanButton" class="relative"><button type="button"${attr_class("floating-anchor-btn tone-purple svelte-65h8xp", void 0, { "active": open })}${attr("title", t(currentplan1) + done() + "/" + items().length + t(donepart1))} data-testid="plan-button">`);
28168
28311
  List_checks($$renderer, { size: 14 });
28169
28312
  $$renderer.push(`<!----></button> `);
28170
28313
  PlanPopup($$renderer, {
@@ -28191,7 +28334,127 @@ function PlanButton($$renderer, $$props) {
28191
28334
  });
28192
28335
  }
28193
28336
  //#endregion
28194
- //#region src/lib/components/anchor/job/JobsPopup.svelte
28337
+ //#region src/lib/components/anchor/deliverables-anchor/DeliverablesPopup.svelte
28338
+ function DeliverablesPopup($$renderer, $$props) {
28339
+ $$renderer.component(($$renderer) => {
28340
+ /**
28341
+ * DeliverablesPopup — the session's presented-file inventory
28342
+ * (ADR-0027f, D3, row format amended 2026-10-19): ONE line per file
28343
+ * across every present event, newest turn last — the description is
28344
+ * the label (active foreground), falling back to the bare filename
28345
+ * when the model supplied none; the full path rides the hover title
28346
+ * and the row's CopyButton, never the visible line. Extracted from
28347
+ * DeliverablesButton on
28348
+ * the PlanPopup pattern (content vs chrome): hosting lives in
28349
+ * FloatingAnchorContainerPopup (placement, width cap, close
28350
+ * contract); this leaf renders ONLY the rows. A row click opens the
28351
+ * file through the transcript's file-open seat — the popup is an
28352
+ * inventory with a jump, never a copy (the ledger's path is truth).
28353
+ */
28354
+ let { deliveries, triggerEl, open = false, onopen } = $$props;
28355
+ const fileCount = derived(() => deliveries.reduce((n, d) => n + d.files.length, 0));
28356
+ /** The row's label: bare filename, extension stripped (ADR-0027f
28357
+ * D3 amendment 2026-10-19 — the full path rides the hover title
28358
+ * and the row's CopyButton, never the visible line). */
28359
+ function displayName(path) {
28360
+ const base = path.split("/").pop() ?? path;
28361
+ const dot = base.lastIndexOf(".");
28362
+ return dot > 0 ? base.slice(0, dot) : base;
28363
+ }
28364
+ FloatingAnchorContainerPopup($$renderer, {
28365
+ open,
28366
+ triggerEl,
28367
+ fitWidth: true,
28368
+ title: `${stringify(t(deliverablestitle1))}${stringify(fileCount())}${stringify(t(deliverablesfiles1))}`,
28369
+ titleTestId: "deliverables-popup-header",
28370
+ popupTestId: "deliverables-popup",
28371
+ children: ($$renderer) => {
28372
+ $$renderer.push(`<!--[-->`);
28373
+ const each_array = ensure_array_like(deliveries);
28374
+ for (let $$index_1 = 0, $$length = each_array.length; $$index_1 < $$length; $$index_1++) {
28375
+ let delivery = each_array[$$index_1];
28376
+ $$renderer.push(`<!--[-->`);
28377
+ const each_array_1 = ensure_array_like(delivery.files);
28378
+ for (let $$index = 0, $$length = each_array_1.length; $$index < $$length; $$index++) {
28379
+ let file = each_array_1[$$index];
28380
+ $$renderer.push(`<button type="button" class="flex w-full items-center gap-1.5 border-b border-surface-border/30 px-2 py-1 text-left text-xs last:border-b-0 hover:bg-surface-border/20" data-testid="deliverables-popup-row"${attr("data-turn", delivery.turn)}${attr("title", file.path)}>`);
28381
+ CopyButton($$renderer, {
28382
+ value: file.path,
28383
+ title: t(copyfullpath2),
28384
+ size: 10,
28385
+ class: "shrink-0 rounded p-0.5 text-text-muted hover:bg-surface-hover hover:text-text-secondary"
28386
+ });
28387
+ $$renderer.push(`<!----> <span class="min-w-0 flex-1 truncate text-text-primary">${escape_html(file.description ?? displayName(file.path))}</span></button>`);
28388
+ }
28389
+ $$renderer.push(`<!--]-->`);
28390
+ }
28391
+ $$renderer.push(`<!--]-->`);
28392
+ },
28393
+ $$slots: { default: true }
28394
+ });
28395
+ bind_props($$props, { open });
28396
+ });
28397
+ }
28398
+ //#endregion
28399
+ //#region src/lib/components/anchor/deliverables-anchor/DeliverablesButton.svelte
28400
+ function DeliverablesButton($$renderer, $$props) {
28401
+ $$renderer.component(($$renderer) => {
28402
+ /**
28403
+ * DeliverablesButton — the Deliverables leaf of the floating anchor
28404
+ * stack (ADR-0027f, D2): the session's presented-file inventory as
28405
+ * one click, beside the transcript. Behaves like PlanButton: the
28406
+ * button owns its popup's open state and the trigger element while
28407
+ * DeliverablesPopup renders the rows — the wrapper div is the
28408
+ * popup's triggerEl, and the opening click bubbles to the window
28409
+ * outside-click handler without closing what it just opened.
28410
+ *
28411
+ * Renders NOTHING while the inventory is empty (null/[] — no present
28412
+ * ever landed; omit, never approximate). Tone CSS is OCI's verbatim
28413
+ * pattern (scoped style, var + fallback) — teal marks the hand-off
28414
+ * family (files the agent gave you).
28415
+ */
28416
+ let { deliveries, onfileopen } = $$props;
28417
+ /** Popup open state — the active tone mirrors it on the button. */
28418
+ let open = false;
28419
+ /** The popup's trigger exclusion element (the wrapper div). */
28420
+ let triggerEl = void 0;
28421
+ /** Null-safe list — the render gate reads this, never the raw prop. */
28422
+ const items = derived(() => deliveries ?? []);
28423
+ const fileCount = derived(() => items().reduce((n, d) => n + d.files.length, 0));
28424
+ let $$settled = true;
28425
+ let $$inner_renderer;
28426
+ function $$render_inner($$renderer) {
28427
+ if (items().length > 0) {
28428
+ $$renderer.push("<!--[0-->");
28429
+ $$renderer.push(`<div data-svelte="DeliverablesButton" class="relative"><button type="button"${attr_class("floating-anchor-btn tone-teal svelte-1mhticx", void 0, { "active": open })}${attr("title", t(deliverablestitle1) + fileCount() + t(deliverablesfiles1))} data-testid="deliverables-button">`);
28430
+ Package($$renderer, { size: 14 });
28431
+ $$renderer.push(`<!----></button> `);
28432
+ DeliverablesPopup($$renderer, {
28433
+ deliveries: items(),
28434
+ triggerEl,
28435
+ onopen: onfileopen,
28436
+ get open() {
28437
+ return open;
28438
+ },
28439
+ set open($$value) {
28440
+ open = $$value;
28441
+ $$settled = false;
28442
+ }
28443
+ });
28444
+ $$renderer.push(`<!----></div>`);
28445
+ } else $$renderer.push("<!--[-1-->");
28446
+ $$renderer.push(`<!--]-->`);
28447
+ }
28448
+ do {
28449
+ $$settled = true;
28450
+ $$inner_renderer = $$renderer.copy();
28451
+ $$render_inner($$inner_renderer);
28452
+ } while (!$$settled);
28453
+ $$renderer.subsume($$inner_renderer);
28454
+ });
28455
+ }
28456
+ //#endregion
28457
+ //#region src/lib/components/anchor/job-anchor/JobsPopup.svelte
28195
28458
  function JobsPopup($$renderer, $$props) {
28196
28459
  $$renderer.component(($$renderer) => {
28197
28460
  /**
@@ -28233,7 +28496,7 @@ function JobsPopup($$renderer, $$props) {
28233
28496
  });
28234
28497
  }
28235
28498
  //#endregion
28236
- //#region src/lib/components/anchor/job/JobsButton.svelte
28499
+ //#region src/lib/components/anchor/job-anchor/JobsButton.svelte
28237
28500
  function JobsButton($$renderer, $$props) {
28238
28501
  $$renderer.component(($$renderer) => {
28239
28502
  /**
@@ -28263,7 +28526,7 @@ function JobsButton($$renderer, $$props) {
28263
28526
  function $$render_inner($$renderer) {
28264
28527
  if (liveCount() > 0) {
28265
28528
  $$renderer.push("<!--[0-->");
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> `);
28529
+ $$renderer.push(`<div data-svelte="JobsButton" class="relative" data-testid="jobs-button"><button type="button"${attr_class("floating-anchor-btn tone-amber svelte-1jfxn7m", 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-1jfxn7m"></span>${escape_html(liveCount())}</button> `);
28267
28530
  JobsPopup($$renderer, {
28268
28531
  triggerEl,
28269
28532
  jobs: jobs(),
@@ -28289,7 +28552,7 @@ function JobsButton($$renderer, $$props) {
28289
28552
  });
28290
28553
  }
28291
28554
  //#endregion
28292
- //#region src/lib/components/anchor/inject/InjectedShelfPopup.svelte
28555
+ //#region src/lib/components/anchor/inject-anchor/InjectedShelfPopup.svelte
28293
28556
  function InjectedShelfPopup($$renderer, $$props) {
28294
28557
  $$renderer.component(($$renderer) => {
28295
28558
  /**
@@ -28312,6 +28575,7 @@ function InjectedShelfPopup($$renderer, $$props) {
28312
28575
  function $$render_inner($$renderer) {
28313
28576
  FloatingAnchorContainerPopup($$renderer, {
28314
28577
  triggerEl,
28578
+ fitWidth: true,
28315
28579
  title: t(() => injectedfiles1({ n: members.length })),
28316
28580
  titleTestId: "injected-shelf-popup-header",
28317
28581
  popupTestId: "injected-shelf-popup",
@@ -28329,15 +28593,15 @@ function InjectedShelfPopup($$renderer, $$props) {
28329
28593
  let m = each_array[i];
28330
28594
  if (i > 0 && members[i - 1].firstLoad === true && m.firstLoad === false) {
28331
28595
  $$renderer.push("<!--[0-->");
28332
- $$renderer.push(`<hr class="shelf-divider svelte-vu3jcu" data-testid="shelf-first-load-divider"/>`);
28596
+ $$renderer.push(`<hr class="shelf-divider svelte-f316d6" data-testid="shelf-first-load-divider"/>`);
28333
28597
  } else $$renderer.push("<!--[-1-->");
28334
- $$renderer.push(`<!--]--> <div class="shelf-item svelte-vu3jcu" data-testid="injected-shelf-item"${attr("data-display-path", m.displayPath)}>`);
28598
+ $$renderer.push(`<!--]--> <div class="shelf-item svelte-f316d6" data-testid="injected-shelf-item"${attr("data-display-path", m.displayPath)}>`);
28335
28599
  CopyButton($$renderer, {
28336
28600
  value: m.origin === "system-prompt" ? injectedRecordFor(entries, m.displayPath)?.text ?? m.displayPath : injectedFullPath(workspace, m.displayPath),
28337
28601
  title: m.origin === "system-prompt" ? "Copy prompt text — a shelf name, not a file" : "Copy full path",
28338
28602
  class: "shelf-copy"
28339
28603
  });
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>`);
28604
+ $$renderer.push(`<!----> <button type="button" role="menuitem" class="shelf-pick svelte-f316d6" data-testid="injected-shelf-pick"${attr("title", m.displayPath)}><span class="shelf-pick-path svelte-f316d6">${escape_html(m.displayPath)}</span></button></div>`);
28341
28605
  }
28342
28606
  $$renderer.push(`<!--]-->`);
28343
28607
  },
@@ -29204,7 +29468,7 @@ async function executeHostCommand(line, ctx, onNote) {
29204
29468
  }
29205
29469
  }
29206
29470
  //#endregion
29207
- //#region src/lib/components/anchor/inject/InjectedShelfButton.svelte
29471
+ //#region src/lib/components/anchor/inject-anchor/InjectedShelfButton.svelte
29208
29472
  function InjectedShelfButton($$renderer, $$props) {
29209
29473
  $$renderer.component(($$renderer) => {
29210
29474
  /**
@@ -29251,7 +29515,7 @@ function InjectedShelfButton($$renderer, $$props) {
29251
29515
  function $$render_inner($$renderer) {
29252
29516
  if (members().length > 0) {
29253
29517
  $$renderer.push("<!--[0-->");
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">`);
29518
+ $$renderer.push(`<div data-svelte="InjectedShelfButton" class="relative svelte-145ip4c"><button type="button"${attr_class("floating-anchor-btn tone-maroon svelte-145ip4c", void 0, { "active": open })}${attr("title", t(injectedtitle1))} data-testid="injected-shelf-button">`);
29255
29519
  File_text($$renderer, { size: 14 });
29256
29520
  $$renderer.push(`<!----></button> `);
29257
29521
  InjectedShelfPopup($$renderer, {
@@ -29292,13 +29556,18 @@ function ConversationFloatingAnchor($$renderer, $$props) {
29292
29556
  * far-edge jump. Purely presentational — the viewport and turn groups
29293
29557
  * arrive as props.
29294
29558
  */
29295
- let { groups, container, todos = null, jobsessionid = "", shelfentries = void 0, shelfsessionid = "", shelfworkspace = null, shelfpanelid = null, onshelfnote } = $$props;
29559
+ let { groups, container, todos = null, deliverables = null, onfileopen = void 0, jobsessionid = "", shelfentries = void 0, shelfsessionid = "", shelfworkspace = null, shelfpanelid = null, onshelfnote } = $$props;
29296
29560
  if (container !== void 0) {
29297
29561
  $$renderer.push("<!--[0-->");
29298
29562
  FloatingAnchor($$renderer, {
29299
29563
  children: ($$renderer) => {
29300
29564
  PlanButton($$renderer, { todos: todos ?? [] });
29301
29565
  $$renderer.push(`<!----> `);
29566
+ DeliverablesButton($$renderer, {
29567
+ deliveries: deliverables,
29568
+ onfileopen
29569
+ });
29570
+ $$renderer.push(`<!----> `);
29302
29571
  JobsButton($$renderer, { sessionId: jobsessionid });
29303
29572
  $$renderer.push(`<!----> `);
29304
29573
  if (shelfentries !== void 0) {
@@ -30204,7 +30473,7 @@ var Paging = class {
30204
30473
  }
30205
30474
  };
30206
30475
  //#endregion
30207
- //#region src/lib/components/anchor/macro/MacroChip.svelte
30476
+ //#region src/lib/components/bar/macro-bar/MacroChip.svelte
30208
30477
  function MacroChip($$renderer, $$props) {
30209
30478
  $$renderer.component(($$renderer) => {
30210
30479
  /**
@@ -30255,21 +30524,21 @@ function MacroChip($$renderer, $$props) {
30255
30524
  if (run.phase === "stopped") return `macro ⏹ stopped · ${run.note ?? ""}`;
30256
30525
  return `macro ✕ failed · ${run.note ?? ""}`;
30257
30526
  });
30258
- $$renderer.push(`<div data-svelte="MacroChip" class="macro-chip svelte-1hixpzx"${attr("data-phase", run.phase)} data-testid="macro-chip"><button type="button" class="macro-chip-label svelte-1hixpzx"${attr("aria-expanded", expanded)}${attr("title", run.note ?? "Macro run")}><span class="macro-chip-text svelte-1hixpzx">${escape_html(chipLabel())}</span> <span class="macro-chip-caret svelte-1hixpzx">${escape_html(expanded ? "▾" : "▸")}</span></button> `);
30527
+ $$renderer.push(`<div data-svelte="MacroChip" class="macro-chip svelte-8fijc3"${attr("data-phase", run.phase)} data-testid="macro-chip"><button type="button" class="macro-chip-label svelte-8fijc3"${attr("aria-expanded", expanded)}${attr("title", run.note ?? "Macro run")}><span class="macro-chip-text svelte-8fijc3">${escape_html(chipLabel())}</span> <span class="macro-chip-caret svelte-8fijc3">${escape_html(expanded ? "▾" : "▸")}</span></button> `);
30259
30528
  if (canAbort() && onabort) {
30260
30529
  $$renderer.push("<!--[0-->");
30261
- $$renderer.push(`<button type="button" class="macro-stop svelte-1hixpzx" data-testid="macro-stop"${attr("title", t(dropunsubmittedtitle2))}>${escape_html(t(stop))}</button>`);
30530
+ $$renderer.push(`<button type="button" class="macro-stop svelte-8fijc3" data-testid="macro-stop"${attr("title", t(dropunsubmittedtitle2))}>${escape_html(t(stop))}</button>`);
30262
30531
  } else $$renderer.push("<!--[-1-->");
30263
30532
  $$renderer.push(`<!--]--> `);
30264
30533
  if (ended() && onclose) {
30265
30534
  $$renderer.push("<!--[0-->");
30266
- $$renderer.push(`<button type="button" class="macro-close svelte-1hixpzx" data-testid="macro-close"${attr("aria-label", t(dismissrunsheet2))}${attr("title", t(dismiss))}>✕</button>`);
30535
+ $$renderer.push(`<button type="button" class="macro-close svelte-8fijc3" data-testid="macro-close"${attr("aria-label", t(dismissrunsheet2))}${attr("title", t(dismiss))}>✕</button>`);
30267
30536
  } else $$renderer.push("<!--[-1-->");
30268
30537
  $$renderer.push(`<!--]--></div>`);
30269
30538
  });
30270
30539
  }
30271
30540
  //#endregion
30272
- //#region src/lib/components/anchor/macro/MacroBar.svelte
30541
+ //#region src/lib/components/bar/macro-bar/MacroBar.svelte
30273
30542
  function MacroBar($$renderer, $$props) {
30274
30543
  $$renderer.component(($$renderer) => {
30275
30544
  /**
@@ -30291,7 +30560,7 @@ function MacroBar($$renderer, $$props) {
30291
30560
  let expanded = false;
30292
30561
  if (run.phase !== "idle") {
30293
30562
  $$renderer.push("<!--[0-->");
30294
- $$renderer.push(`<div data-svelte="MacroBar" class="macro-run svelte-2yo6ia" data-testid="macro-run">`);
30563
+ $$renderer.push(`<div data-svelte="MacroBar" class="macro-run svelte-1xpxh82" data-testid="macro-run">`);
30295
30564
  MacroChip($$renderer, {
30296
30565
  run,
30297
30566
  running,
@@ -30308,7 +30577,7 @@ function MacroBar($$renderer, $$props) {
30308
30577
  });
30309
30578
  }
30310
30579
  //#endregion
30311
- //#region src/lib/components/anchor/goal/GoalChip.svelte
30580
+ //#region src/lib/components/bar/goal-bar/GoalChip.svelte
30312
30581
  function GoalChip($$renderer, $$props) {
30313
30582
  $$renderer.component(($$renderer) => {
30314
30583
  /**
@@ -30331,31 +30600,31 @@ function GoalChip($$renderer, $$props) {
30331
30600
  /** Which phase action the chip offers: Pause on active, Resume on
30332
30601
  * paused, none on blocked (the host demands a reason fix first). */
30333
30602
  const phaseAction = derived(() => goal.phase === "active" ? "pause" : goal.phase === "paused" ? "resume" : void 0);
30334
- $$renderer.push(`<div data-svelte="GoalChip" class="goal-chip svelte-bjt90x"${attr("data-phase", goal.phase)} data-testid="goal-chip"${attr("title", blockedTitle)}><button type="button" class="goal-chip-label svelte-bjt90x"${attr("aria-expanded", expanded)}${attr("title", blockedTitle ?? goal.objective)}><span class="goal-chip-glyph svelte-bjt90x" aria-hidden="true">${escape_html(glyph())}</span> <span class="goal-chip-text svelte-bjt90x">goal ${escape_html(goal.phase)} · ${escape_html(shortObjective())}</span> <span class="goal-chip-caret svelte-bjt90x">${escape_html(expanded ? "▾" : "▸")}</span></button> `);
30603
+ $$renderer.push(`<div data-svelte="GoalChip" class="goal-chip svelte-ffx44v"${attr("data-phase", goal.phase)} data-testid="goal-chip"${attr("title", blockedTitle)}><button type="button" class="goal-chip-label svelte-ffx44v"${attr("aria-expanded", expanded)}${attr("title", blockedTitle ?? goal.objective)}><span class="goal-chip-glyph svelte-ffx44v" aria-hidden="true">${escape_html(glyph())}</span> <span class="goal-chip-text svelte-ffx44v">goal ${escape_html(goal.phase)} · ${escape_html(shortObjective())}</span> <span class="goal-chip-caret svelte-ffx44v">${escape_html(expanded ? "▾" : "▸")}</span></button> `);
30335
30604
  if (phaseAction() === "pause" && onpause) {
30336
30605
  $$renderer.push("<!--[0-->");
30337
- $$renderer.push(`<button type="button" class="goal-action svelte-bjt90x" data-testid="goal-pause"${attr("title", t(pausegoal1))}>${escape_html(t(pause))}</button>`);
30606
+ $$renderer.push(`<button type="button" class="goal-action svelte-ffx44v" data-testid="goal-pause"${attr("title", t(pausegoal1))}>${escape_html(t(pause))}</button>`);
30338
30607
  } else $$renderer.push("<!--[-1-->");
30339
30608
  $$renderer.push(`<!--]--> `);
30340
30609
  if (phaseAction() === "resume" && onresume) {
30341
30610
  $$renderer.push("<!--[0-->");
30342
- $$renderer.push(`<button type="button" class="goal-action svelte-bjt90x" data-testid="goal-resume"${attr("title", t(resumegoal1))}>${escape_html(t(resume))}</button>`);
30611
+ $$renderer.push(`<button type="button" class="goal-action svelte-ffx44v" data-testid="goal-resume"${attr("title", t(resumegoal1))}>${escape_html(t(resume))}</button>`);
30343
30612
  } else $$renderer.push("<!--[-1-->");
30344
30613
  $$renderer.push(`<!--]--> `);
30345
30614
  if (onedit) {
30346
30615
  $$renderer.push("<!--[0-->");
30347
- $$renderer.push(`<button type="button" class="goal-action svelte-bjt90x" data-testid="goal-edit"${attr("title", t(editobjectivetitle2))}>${escape_html(t(edit))}</button>`);
30616
+ $$renderer.push(`<button type="button" class="goal-action svelte-ffx44v" data-testid="goal-edit"${attr("title", t(editobjectivetitle2))}>${escape_html(t(edit))}</button>`);
30348
30617
  } else $$renderer.push("<!--[-1-->");
30349
30618
  $$renderer.push(`<!--]--> `);
30350
30619
  if (onclear) {
30351
30620
  $$renderer.push("<!--[0-->");
30352
- $$renderer.push(`<button type="button" class="goal-action goal-clear svelte-bjt90x" data-testid="goal-clear"${attr("aria-label", t(clearthegoal2))}${attr("title", t(clearbtn1))}>✕</button>`);
30621
+ $$renderer.push(`<button type="button" class="goal-action goal-clear svelte-ffx44v" data-testid="goal-clear"${attr("aria-label", t(clearthegoal2))}${attr("title", t(clearbtn1))}>✕</button>`);
30353
30622
  } else $$renderer.push("<!--[-1-->");
30354
30623
  $$renderer.push(`<!--]--></div>`);
30355
30624
  });
30356
30625
  }
30357
30626
  //#endregion
30358
- //#region src/lib/components/anchor/goal/GoalEditor.svelte
30627
+ //#region src/lib/components/bar/goal-bar/GoalEditor.svelte
30359
30628
  function GoalEditor($$renderer, $$props) {
30360
30629
  $$renderer.component(($$renderer) => {
30361
30630
  /**
@@ -30366,14 +30635,14 @@ function GoalEditor($$renderer, $$props) {
30366
30635
  * fields and emits callbacks only.
30367
30636
  */
30368
30637
  let { editor} = $$props;
30369
- $$renderer.push(`<div data-svelte="GoalEditor" class="goal-edit-form svelte-yo08sk" data-testid="goal-edit-form"><label class="goal-edit-label svelte-yo08sk"><span>objective</span> <textarea data-testid="goal-edit-objective" rows="2" class="svelte-yo08sk">`);
30638
+ $$renderer.push(`<div data-svelte="GoalEditor" class="goal-edit-form svelte-c4750g" data-testid="goal-edit-form"><label class="goal-edit-label svelte-c4750g"><span>objective</span> <textarea data-testid="goal-edit-objective" rows="2" class="svelte-c4750g">`);
30370
30639
  const $$body = escape_html(editor.objective);
30371
30640
  if ($$body) $$renderer.push(`${$$body}`);
30372
- $$renderer.push(`</textarea></label> <label class="goal-edit-label svelte-yo08sk"><span>${escape_html(t(maxrounds1))}</span> <input type="number" min="1" step="1" data-testid="goal-edit-rounds"${attr("value", editor.maxGoalRounds)} class="svelte-yo08sk"/></label> <div class="goal-controls svelte-yo08sk"><button type="button" data-testid="goal-edit-submit" class="svelte-yo08sk">${escape_html(t(save))}</button> <button type="button" data-testid="goal-edit-cancel" class="svelte-yo08sk">${escape_html(t(cancel))}</button></div></div>`);
30641
+ $$renderer.push(`</textarea></label> <label class="goal-edit-label svelte-c4750g"><span>${escape_html(t(maxrounds1))}</span> <input type="number" min="1" step="1" data-testid="goal-edit-rounds"${attr("value", editor.maxGoalRounds)} class="svelte-c4750g"/></label> <div class="goal-controls svelte-c4750g"><button type="button" data-testid="goal-edit-submit" class="svelte-c4750g">${escape_html(t(save))}</button> <button type="button" data-testid="goal-edit-cancel" class="svelte-c4750g">${escape_html(t(cancel))}</button></div></div>`);
30373
30642
  });
30374
30643
  }
30375
30644
  //#endregion
30376
- //#region src/lib/components/anchor/goal/GoalBar.svelte
30645
+ //#region src/lib/components/bar/goal-bar/GoalBar.svelte
30377
30646
  function GoalBar($$renderer, $$props) {
30378
30647
  $$renderer.component(($$renderer) => {
30379
30648
  /**
@@ -30402,7 +30671,7 @@ function GoalBar($$renderer, $$props) {
30402
30671
  const blockedTitle = derived(() => goal?.phase === "blocked" && goal.blockedReason ? "blocked: " + goal.blockedReason.code + " — " + goal.blockedReason.message : void 0);
30403
30672
  if (goal && goal.phase !== "complete") {
30404
30673
  $$renderer.push("<!--[0-->");
30405
- $$renderer.push(`<div data-svelte="GoalBar" class="goal-bar svelte-reiy" data-testid="goal-bar">`);
30674
+ $$renderer.push(`<div data-svelte="GoalBar" class="goal-bar svelte-fcoddu" data-testid="goal-bar">`);
30406
30675
  GoalChip($$renderer, {
30407
30676
  goal,
30408
30677
  blockedTitle: blockedTitle(),
@@ -30541,7 +30810,7 @@ function ConversationPanel($$renderer, $$props) {
30541
30810
  * existing command banner. Catalog reads fire on first menu open,
30542
30811
  * never at mount (cold sessions stay cold).
30543
30812
  */
30544
- let { panelId = null, sessionId, title: initialTitleProp = null, workspace = null, workspaces = [], agent, agentDisplay = null, subagent = false, depth = 0, parentSessionId = null, entries, lastSeq, running, hasMore = void 0, pendingAnswers = [], settledAnswers = [], permission = null, imageLimits = void 0, knobEvents = void 0, a2aRows = [], a2aTitles = {}, onNeedCold = void 0, onClose = void 0, focusComposer = false, oncomposerfocus = void 0, focused = false, onOpenExplorer = void 0, onFileLink = void 0, onFileOpen = void 0 } = $$props;
30813
+ let { panelId = null, sessionId, title: initialTitleProp = null, workspace = null, workspaces = [], agent, agentDisplay = null, subagent = false, depth = 0, parentSessionId = null, entries, lastSeq, running, hasMore = void 0, pendingAnswers = [], settledAnswers = [], permission = null, imageLimits = void 0, knobEvents = void 0, deliverables = void 0, a2aRows = [], a2aTitles = {}, onNeedCold = void 0, onClose = void 0, focusComposer = false, oncomposerfocus = void 0, focused = false, onOpenExplorer = void 0, onFileLink = void 0, onFileOpen = void 0 } = $$props;
30545
30814
  setPanelMode(true);
30546
30815
  setConversationSession(sessionId);
30547
30816
  const store = createConversationStore(sessionId);
@@ -30550,6 +30819,7 @@ function ConversationPanel($$renderer, $$props) {
30550
30819
  store.applyStatus(running, lastSeq);
30551
30820
  store.applyAnswers(pendingAnswers, settledAnswers);
30552
30821
  store.seedPermission(permission, knobEvents);
30822
+ if (deliverables !== void 0) store.seedDeliverables(deliverables);
30553
30823
  /** Chip popup state (2026-08-22, OCI pattern): ONE open chip at a time —
30554
30824
  * the id of the expanded entry; detail renders AFTER the chip row.
30555
30825
  * Per-panel by construction (moved here with the block). */
@@ -30817,6 +31087,8 @@ function ConversationPanel($$renderer, $$props) {
30817
31087
  groups: groups(),
30818
31088
  container: viewport,
30819
31089
  todos: store.todos ?? null,
31090
+ deliverables: store.deliverables,
31091
+ onfileopen: onFileOpen,
30820
31092
  jobsessionid: sessionId,
30821
31093
  shelfentries: store.entries,
30822
31094
  shelfsessionid: sessionId,
@@ -33642,7 +33914,8 @@ async function fetchColdFromWire(sessionId) {
33642
33914
  settledAnswers: events.settledAnswers ?? [],
33643
33915
  permission: events.permission ?? null,
33644
33916
  imageLimits: events.imageLimits ?? null,
33645
- knobEvents: events.knobEvents ?? []
33917
+ knobEvents: events.knobEvents ?? [],
33918
+ deliverables: events.deliverables ?? []
33646
33919
  };
33647
33920
  }
33648
33921
  //#endregion
@@ -33866,7 +34139,8 @@ function seedColdOf(data) {
33866
34139
  settledAnswers: d.settledAnswers ?? [],
33867
34140
  permission: d.permission ?? null,
33868
34141
  imageLimits: d.imageLimits ?? null,
33869
- knobEvents: d.knobEvents ?? []
34142
+ knobEvents: d.knobEvents ?? [],
34143
+ deliverables: d.deliverables ?? []
33870
34144
  } : void 0;
33871
34145
  }
33872
34146
  //#endregion
@@ -34071,6 +34345,7 @@ function _page($$renderer, $$props) {
34071
34345
  permission: cold.permission,
34072
34346
  imageLimits: cold.imageLimits ?? void 0,
34073
34347
  knobEvents: cold.knobEvents,
34348
+ deliverables: cold.deliverables,
34074
34349
  a2aRows: a2aRowsFor(p.sessionId),
34075
34350
  a2aTitles: spineTitles(),
34076
34351
  onOpenExplorer: openWorkspaceExplorer,
@@ -34207,4 +34482,4 @@ function _page($$renderer, $$props) {
34207
34482
  }
34208
34483
 
34209
34484
  export { _page as default };
34210
- //# sourceMappingURL=_page.svelte.js-CWiGV7R5.js.map
34485
+ //# sourceMappingURL=_page.svelte.js-DrMNc6ih.js.map