@deepseek-insight/dsi 0.6.18 → 0.6.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/dsi.mjs +30 -7
- package/build/client/_app/immutable/assets/{2.C7lNCQCV.css → 2.BqRWIIgD.css} +1 -1
- package/build/client/_app/immutable/chunks/BNsgelmQ.js +1 -0
- package/build/client/_app/immutable/chunks/{Bqotzgnw.js → BbvYWcEs.js} +1 -1
- package/build/client/_app/immutable/chunks/C9uc32GW.js +1 -0
- package/build/client/_app/immutable/chunks/{CtUqZStl.js → tw7vR7yM.js} +2 -2
- package/build/client/_app/immutable/entry/{app.CGvLdbvX.js → app.BAD3jsui.js} +2 -2
- package/build/client/_app/immutable/entry/start.CFzOCQr3.js +1 -0
- package/build/client/_app/immutable/nodes/{1.CiNEHoEh.js → 1.COHJn6QL.js} +1 -1
- package/build/client/_app/immutable/nodes/{2.5NpWuIn7.js → 2.CpHpu496.js} +64 -64
- package/build/client/_app/version.json +1 -1
- package/build/handler.js +4 -4
- package/build/index.js +4 -4
- package/build/server/chunks/chunks/{internal2.js-C4ukUWRE.js → internal2.js-BDzd2OUR.js} +2 -2
- package/build/server/chunks/chunks/{state.js-OSxIx7MQ.js → state.js-Cb31UwpL.js} +2 -2
- package/build/server/chunks/entries/pages/{_error.svelte.js-2wYgv54Z.js → _error.svelte.js-BqHQUTpg.js} +3 -3
- package/build/server/chunks/entries/pages/{_page.svelte.js-BvcQOPvs.js → _page.svelte.js-CWiGV7R5.js} +328 -149
- package/build/server/chunks/{handler-D0h_ogA5.js → handler-CPdXYlKK.js} +3 -3
- package/build/server/chunks/{index.js-C43GYBhl.js → index.js-CNYTOWSB.js} +2 -2
- package/build/server/chunks/{manifest.js-DN0QODc_.js → manifest.js-CQRa1JdF.js} +4 -4
- package/build/server/chunks/nodes/1.js-BQXeCZbQ.js +9 -0
- package/build/server/chunks/nodes/{2.js-_OZDbZ-E.js → 2.js-CL8x9-EN.js} +4 -4
- package/package.json +2 -2
- package/template/.dsi/prompts.sqlite-shm +0 -0
- package/template/.dsi/prompts.sqlite-wal +0 -0
- package/build/client/_app/immutable/chunks/D-YP16Kb.js +0 -1
- package/build/client/_app/immutable/chunks/D21lpWN6.js +0 -1
- package/build/client/_app/immutable/entry/start.-NibTCMf.js +0 -1
- package/build/server/chunks/nodes/1.js-Da_l90xT.js +0 -9
|
@@ -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-
|
|
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';
|
|
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-
|
|
23
|
+
import '../../chunks/internal2.js-BDzd2OUR.js';
|
|
24
24
|
import '../../chunks/exports.js-DH_tjtdv.js';
|
|
25
25
|
import '../../chunks/utils.js-CAdNO8Tu.js';
|
|
26
26
|
|
|
@@ -17140,7 +17140,7 @@ function SlashMenu($$renderer, $$props) {
|
|
|
17140
17140
|
* the submit ladder's own priority order) — filtered as the operator
|
|
17141
17141
|
* types the `/` draft.
|
|
17142
17142
|
*
|
|
17143
|
-
* Presentational (the
|
|
17143
|
+
* Presentational (the MacroBar rule): rows + filter query +
|
|
17144
17144
|
* lifecycle state in; kind-aware pick events out. No fetch, no store
|
|
17145
17145
|
* import — the HOST (Composer) owns the draft, the trigger, the
|
|
17146
17146
|
* catalog state, and the keyboard lifecycle. This component renders;
|
|
@@ -18337,8 +18337,8 @@ function ThemeToggle($$renderer, $$props) {
|
|
|
18337
18337
|
}
|
|
18338
18338
|
//#endregion
|
|
18339
18339
|
//#region package.json
|
|
18340
|
-
var version = "0.6.
|
|
18341
|
-
var dsh = { "webVersion": "0.2.1-
|
|
18340
|
+
var version = "0.6.20";
|
|
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
|
/**
|
|
@@ -22757,7 +22774,7 @@ function Composer($$renderer, $$props) {
|
|
|
22757
22774
|
* the panel never reaches into the component). */
|
|
22758
22775
|
/** Slash Menu (ADR "The Slash Menu", 2026-08-30): the session's
|
|
22759
22776
|
* cached host catalog + lifecycle, bridged from the panel — the
|
|
22760
|
-
* component never fetches (props-only, the
|
|
22777
|
+
* component never fetches (props-only, the MacroBar rule);
|
|
22761
22778
|
* null/absent renders the menu's loading row until the bridge
|
|
22762
22779
|
* lands the first read. */
|
|
22763
22780
|
/** Fired while the menu is open-shaped and its query moved (the
|
|
@@ -27941,7 +27958,7 @@ function FloatingAnchorContainerPopup($$renderer, $$props) {
|
|
|
27941
27958
|
});
|
|
27942
27959
|
}
|
|
27943
27960
|
//#endregion
|
|
27944
|
-
//#region src/lib/components/
|
|
27961
|
+
//#region src/lib/components/anchor/user-messages/UserMessageJumper.svelte
|
|
27945
27962
|
function UserMessageJumper($$renderer, $$props) {
|
|
27946
27963
|
$$renderer.component(($$renderer) => {
|
|
27947
27964
|
/**
|
|
@@ -27996,7 +28013,7 @@ function UserMessageJumper($$renderer, $$props) {
|
|
|
27996
28013
|
});
|
|
27997
28014
|
}
|
|
27998
28015
|
//#endregion
|
|
27999
|
-
//#region src/lib/components/
|
|
28016
|
+
//#region src/lib/components/anchor/user-messages/UserMessagesButton.svelte
|
|
28000
28017
|
function UserMessagesButton($$renderer, $$props) {
|
|
28001
28018
|
$$renderer.component(($$renderer) => {
|
|
28002
28019
|
/**
|
|
@@ -28028,7 +28045,7 @@ function UserMessagesButton($$renderer, $$props) {
|
|
|
28028
28045
|
function $$render_inner($$renderer) {
|
|
28029
28046
|
if (container !== void 0 && groups.some((g) => g.kind === "prompt")) {
|
|
28030
28047
|
$$renderer.push("<!--[0-->");
|
|
28031
|
-
$$renderer.push(`<div data-svelte="UserMessagesButton" class="relative"><button type="button"${attr_class("floating-anchor-btn tone-cyan svelte-
|
|
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">`);
|
|
28032
28049
|
Message_square_text($$renderer, { size: 14 });
|
|
28033
28050
|
$$renderer.push(`<!----></button> `);
|
|
28034
28051
|
UserMessageJumper($$renderer, {
|
|
@@ -28064,7 +28081,7 @@ function BackToTheEdgeButton($$renderer, $$props) {
|
|
|
28064
28081
|
});
|
|
28065
28082
|
}
|
|
28066
28083
|
//#endregion
|
|
28067
|
-
//#region src/lib/components/
|
|
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/
|
|
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-
|
|
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/
|
|
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-
|
|
28208
|
-
|
|
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
|
-
|
|
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/
|
|
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
|
-
*
|
|
29100
|
-
*
|
|
29101
|
-
*
|
|
29102
|
-
*
|
|
29103
|
-
*
|
|
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-
|
|
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
|
-
|
|
29257
|
+
InjectedShelfPopup($$renderer, {
|
|
29258
|
+
members: members(),
|
|
29259
|
+
entries,
|
|
29260
|
+
workspace,
|
|
29124
29261
|
triggerEl,
|
|
29125
|
-
|
|
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
|
-
|
|
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, {
|
|
@@ -30085,48 +30204,30 @@ var Paging = class {
|
|
|
30085
30204
|
}
|
|
30086
30205
|
};
|
|
30087
30206
|
//#endregion
|
|
30088
|
-
//#region src/lib/components/
|
|
30089
|
-
function
|
|
30207
|
+
//#region src/lib/components/anchor/macro/MacroChip.svelte
|
|
30208
|
+
function MacroChip($$renderer, $$props) {
|
|
30090
30209
|
$$renderer.component(($$renderer) => {
|
|
30091
30210
|
/**
|
|
30092
|
-
*
|
|
30093
|
-
*
|
|
30094
|
-
*
|
|
30095
|
-
*
|
|
30096
|
-
*
|
|
30097
|
-
* Presentational by contract (PRD Module Map): run state, per-line
|
|
30098
|
-
* records, and the panel's own poll truth (running, pendingAnswers)
|
|
30099
|
-
* arrive as props; every control leaves as a callback. The component
|
|
30100
|
-
* never fetches, never polls, never imports the runner — the panel
|
|
30101
|
-
* owns the wiring (D7: "the chip reads the panel's existing poll
|
|
30102
|
-
* state; the runner itself never polls").
|
|
30103
|
-
*
|
|
30104
|
-
* Three truth layers (D9), honestly kept apart:
|
|
30105
|
-
* - runner-exact: ⊙ pending(held) · ⏳ queued · ⊘ skipped · ✕ failed
|
|
30106
|
-
* (and ✓ for command lines — they complete host-side, no turn)
|
|
30107
|
-
* - host-derived (≤ one events poll): ✓ done / ▶ running — the panel
|
|
30108
|
-
* computes `lineMarks` from its OWN store (groupTurns pairing);
|
|
30109
|
-
* this component only renders what it is handed
|
|
30110
|
-
* - the transcript is the ground truth — this sheet is a map
|
|
30211
|
+
* MacroChip — the Prompt Macro's COLLAPSED CHIP (ADR D7, 2026-08-29):
|
|
30212
|
+
* the always-visible layer above the composer. Click toggles the
|
|
30213
|
+
* sheet; Stop is forward-only (unfed lines drop; queued are the
|
|
30214
|
+
* host's — the suffix names the boundary).
|
|
30111
30215
|
*
|
|
30112
|
-
*
|
|
30113
|
-
*
|
|
30114
|
-
*
|
|
30115
|
-
*
|
|
30116
|
-
* turn while a turn is in flight).
|
|
30216
|
+
* Extracted from MacroBar (2026-10-19) — the bar owns the expand
|
|
30217
|
+
* state and renders MacroSheet; this component owns the chip label
|
|
30218
|
+
* derivation (phase labels + honest suffixes) and the Stop / Close
|
|
30219
|
+
* buttons.
|
|
30117
30220
|
*
|
|
30118
|
-
*
|
|
30119
|
-
*
|
|
30120
|
-
*
|
|
30221
|
+
* Presentational by contract: run state and the panel's own poll
|
|
30222
|
+
* truth (running, pendingAnswers) arrive as props; every control
|
|
30223
|
+
* leaves as a callback. Never fetches, never polls.
|
|
30121
30224
|
*/
|
|
30122
|
-
let { run, running = false, pendingAnswers = 0, onabort, onclose } = $$props;
|
|
30123
|
-
/**
|
|
30124
|
-
let expanded = false;
|
|
30125
|
-
/** The run is over (either ending) — [Run again] appears (D10). */
|
|
30225
|
+
let { run, running = false, pendingAnswers = 0, expanded = false, onabort, onclose } = $$props;
|
|
30226
|
+
/** The run is over (either ending) — Close (✕) appears (D10). */
|
|
30126
30227
|
const ended = derived(() => run.phase === "fed" || run.phase === "stopped" || run.phase === "failed");
|
|
30127
30228
|
/** A live run could still feed (held or mid-feed) — Stop means
|
|
30128
|
-
*
|
|
30129
|
-
*
|
|
30229
|
+
* "stop sending more"; once everything is queued there is nothing
|
|
30230
|
+
* left to hold (abort-after-queued honesty, D10). */
|
|
30130
30231
|
const unfedRemain = derived(() => run.fed < run.total);
|
|
30131
30232
|
const canAbort = derived(() => (run.phase === "held" || run.phase === "feeding") && unfedRemain());
|
|
30132
30233
|
/** Collapsed-chip suffixes (D5/D7): the honest queued/asking labels. */
|
|
@@ -30137,16 +30238,16 @@ function MacroRunSheet($$renderer, $$props) {
|
|
|
30137
30238
|
return "";
|
|
30138
30239
|
});
|
|
30139
30240
|
/** The line the chip names while feeding/held — the next unfed
|
|
30140
|
-
*
|
|
30141
|
-
*
|
|
30241
|
+
* section's display (feeding k/n · <display>), else the last
|
|
30242
|
+
* record's display. */
|
|
30142
30243
|
const currentLine = derived(() => {
|
|
30143
30244
|
const next = run.lines.find((l) => l.state === "pending" && !l.isQuery);
|
|
30144
30245
|
if (next) return next.display;
|
|
30145
30246
|
return run.lines.length > 0 ? run.lines[run.lines.length - 1].display : "";
|
|
30146
30247
|
});
|
|
30147
30248
|
/** Chip label per phase (D7): feeding k/n · all-queued k queued ·
|
|
30148
|
-
*
|
|
30149
|
-
*
|
|
30249
|
+
* stopped · failed — plus the suffixes above. Sections counted (a
|
|
30250
|
+
* block is one — D15). */
|
|
30150
30251
|
const chipLabel = derived(() => {
|
|
30151
30252
|
if (run.phase === "feeding") return `macro ▸ ${run.fed + 1}/${run.total} · ${currentLine()}`;
|
|
30152
30253
|
if (run.phase === "held") return `macro ⏸ held · ${run.fed}/${run.total}${queuedSuffix()}`;
|
|
@@ -30154,19 +30255,52 @@ function MacroRunSheet($$renderer, $$props) {
|
|
|
30154
30255
|
if (run.phase === "stopped") return `macro ⏹ stopped · ${run.note ?? ""}`;
|
|
30155
30256
|
return `macro ✕ failed · ${run.note ?? ""}`;
|
|
30156
30257
|
});
|
|
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> `);
|
|
30259
|
+
if (canAbort() && onabort) {
|
|
30260
|
+
$$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>`);
|
|
30262
|
+
} else $$renderer.push("<!--[-1-->");
|
|
30263
|
+
$$renderer.push(`<!--]--> `);
|
|
30264
|
+
if (ended() && onclose) {
|
|
30265
|
+
$$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>`);
|
|
30267
|
+
} else $$renderer.push("<!--[-1-->");
|
|
30268
|
+
$$renderer.push(`<!--]--></div>`);
|
|
30269
|
+
});
|
|
30270
|
+
}
|
|
30271
|
+
//#endregion
|
|
30272
|
+
//#region src/lib/components/anchor/macro/MacroBar.svelte
|
|
30273
|
+
function MacroBar($$renderer, $$props) {
|
|
30274
|
+
$$renderer.component(($$renderer) => {
|
|
30275
|
+
/**
|
|
30276
|
+
* MacroBar — the Prompt Macro's status surface (ADR D7 + D9,
|
|
30277
|
+
* 2026-08-29): the always-visible layer above the composer, split
|
|
30278
|
+
* into two children — MacroChip (the collapsed chip + Stop/Close)
|
|
30279
|
+
* and MacroSheet (the expanded per-line rows + held/ended controls).
|
|
30280
|
+
* The bar owns the expand state and forwards everything else.
|
|
30281
|
+
*
|
|
30282
|
+
* Presentational by contract (PRD Module Map): run state and the
|
|
30283
|
+
* panel's own poll truth (running, pendingAnswers) arrive as props;
|
|
30284
|
+
* every control leaves as a callback. The component never fetches,
|
|
30285
|
+
* never polls, never imports the runner — the panel owns the wiring
|
|
30286
|
+
* (D7: "the chip reads the panel's existing poll state; the runner
|
|
30287
|
+
* itself never polls").
|
|
30288
|
+
*/
|
|
30289
|
+
let { run, running = false, pendingAnswers = 0, onabort, onclose } = $$props;
|
|
30290
|
+
/** Sheet expanded state — the chip toggles it (click again to collapse). */
|
|
30291
|
+
let expanded = false;
|
|
30157
30292
|
if (run.phase !== "idle") {
|
|
30158
30293
|
$$renderer.push("<!--[0-->");
|
|
30159
|
-
$$renderer.push(`<div data-svelte="
|
|
30160
|
-
|
|
30161
|
-
|
|
30162
|
-
|
|
30163
|
-
|
|
30164
|
-
|
|
30165
|
-
|
|
30166
|
-
|
|
30167
|
-
|
|
30168
|
-
|
|
30169
|
-
$$renderer.push(`<!--]--></div> `);
|
|
30294
|
+
$$renderer.push(`<div data-svelte="MacroBar" class="macro-run svelte-2yo6ia" data-testid="macro-run">`);
|
|
30295
|
+
MacroChip($$renderer, {
|
|
30296
|
+
run,
|
|
30297
|
+
running,
|
|
30298
|
+
pendingAnswers,
|
|
30299
|
+
expanded,
|
|
30300
|
+
onabort,
|
|
30301
|
+
onclose
|
|
30302
|
+
});
|
|
30303
|
+
$$renderer.push(`<!----> `);
|
|
30170
30304
|
$$renderer.push("<!--[-1-->");
|
|
30171
30305
|
$$renderer.push(`<!--]--></div>`);
|
|
30172
30306
|
} else $$renderer.push("<!--[-1-->");
|
|
@@ -30174,7 +30308,72 @@ function MacroRunSheet($$renderer, $$props) {
|
|
|
30174
30308
|
});
|
|
30175
30309
|
}
|
|
30176
30310
|
//#endregion
|
|
30177
|
-
//#region src/lib/components/
|
|
30311
|
+
//#region src/lib/components/anchor/goal/GoalChip.svelte
|
|
30312
|
+
function GoalChip($$renderer, $$props) {
|
|
30313
|
+
$$renderer.component(($$renderer) => {
|
|
30314
|
+
/**
|
|
30315
|
+
* GoalChip — the always-visible collapsed layer of the goal bar (ADR
|
|
30316
|
+
* "The Goal Bar", 2026-09-08, D2): phase glyph, phase label plus
|
|
30317
|
+
* truncated objective, caret that toggles the sheet, and the phase
|
|
30318
|
+
* action buttons (Pause/Resume, Edit, Clear). Extracted from GoalBar as
|
|
30319
|
+
* a presentational child; the expanded state stays GoalBar-owned and
|
|
30320
|
+
* arrives as a prop with a toggle callback.
|
|
30321
|
+
*/
|
|
30322
|
+
let { goal, blockedTitle, expanded = false, onpause, onresume, onedit, onclear } = $$props;
|
|
30323
|
+
/** The chip's phase glyph (mirrors DSH's GoalBar language). */
|
|
30324
|
+
const glyph = derived(() => {
|
|
30325
|
+
if (goal.phase === "paused") return "⏸";
|
|
30326
|
+
if (goal.phase === "blocked") return "⚠";
|
|
30327
|
+
return "▶";
|
|
30328
|
+
});
|
|
30329
|
+
/** The objective the chip names, truncated for the one-line title. */
|
|
30330
|
+
const shortObjective = derived(() => goal.objective.length > 80 ? goal.objective.slice(0, 79) + "…" : goal.objective);
|
|
30331
|
+
/** Which phase action the chip offers: Pause on active, Resume on
|
|
30332
|
+
* paused, none on blocked (the host demands a reason fix first). */
|
|
30333
|
+
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> `);
|
|
30335
|
+
if (phaseAction() === "pause" && onpause) {
|
|
30336
|
+
$$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>`);
|
|
30338
|
+
} else $$renderer.push("<!--[-1-->");
|
|
30339
|
+
$$renderer.push(`<!--]--> `);
|
|
30340
|
+
if (phaseAction() === "resume" && onresume) {
|
|
30341
|
+
$$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>`);
|
|
30343
|
+
} else $$renderer.push("<!--[-1-->");
|
|
30344
|
+
$$renderer.push(`<!--]--> `);
|
|
30345
|
+
if (onedit) {
|
|
30346
|
+
$$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>`);
|
|
30348
|
+
} else $$renderer.push("<!--[-1-->");
|
|
30349
|
+
$$renderer.push(`<!--]--> `);
|
|
30350
|
+
if (onclear) {
|
|
30351
|
+
$$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>`);
|
|
30353
|
+
} else $$renderer.push("<!--[-1-->");
|
|
30354
|
+
$$renderer.push(`<!--]--></div>`);
|
|
30355
|
+
});
|
|
30356
|
+
}
|
|
30357
|
+
//#endregion
|
|
30358
|
+
//#region src/lib/components/anchor/goal/GoalEditor.svelte
|
|
30359
|
+
function GoalEditor($$renderer, $$props) {
|
|
30360
|
+
$$renderer.component(($$renderer) => {
|
|
30361
|
+
/**
|
|
30362
|
+
* GoalEditor — the goal editor form (Goal Editor ADR D2/D4): pre-filled
|
|
30363
|
+
* fields, Enter submits, Escape cancels; buttons mirror the keys.
|
|
30364
|
+
* Extracted from GoalBar as a presentational child; the editor state is
|
|
30365
|
+
* panel-owned (GoalBar passes it through) — this component renders
|
|
30366
|
+
* fields and emits callbacks only.
|
|
30367
|
+
*/
|
|
30368
|
+
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">`);
|
|
30370
|
+
const $$body = escape_html(editor.objective);
|
|
30371
|
+
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>`);
|
|
30373
|
+
});
|
|
30374
|
+
}
|
|
30375
|
+
//#endregion
|
|
30376
|
+
//#region src/lib/components/anchor/goal/GoalBar.svelte
|
|
30178
30377
|
function GoalBar($$renderer, $$props) {
|
|
30179
30378
|
$$renderer.component(($$renderer) => {
|
|
30180
30379
|
/**
|
|
@@ -30183,7 +30382,7 @@ function GoalBar($$renderer, $$props) {
|
|
|
30183
30382
|
* plus truncated objective — that expands into the goal SHEET (rounds
|
|
30184
30383
|
* counter, blocked reason when present).
|
|
30185
30384
|
*
|
|
30186
|
-
* Presentational by contract (the
|
|
30385
|
+
* Presentational by contract (the MacroBar template): the goal
|
|
30187
30386
|
* value arrives as a prop; every action leaves as a zero-arg callback
|
|
30188
30387
|
* the panel maps to `/goal <verb>` lines. The component never fetches,
|
|
30189
30388
|
* never polls, imports no services and no projection module — the
|
|
@@ -30201,47 +30400,23 @@ function GoalBar($$renderer, $$props) {
|
|
|
30201
30400
|
let expanded = false;
|
|
30202
30401
|
/** The blocked phase carries its reason; the chip title shows it. */
|
|
30203
30402
|
const blockedTitle = derived(() => goal?.phase === "blocked" && goal.blockedReason ? "blocked: " + goal.blockedReason.code + " — " + goal.blockedReason.message : void 0);
|
|
30204
|
-
/** The chip's phase glyph (mirrors DSH's GoalBar language). */
|
|
30205
|
-
const glyph = derived(() => {
|
|
30206
|
-
if (!goal) return "";
|
|
30207
|
-
if (goal.phase === "paused") return "⏸";
|
|
30208
|
-
if (goal.phase === "blocked") return "⚠";
|
|
30209
|
-
return "▶";
|
|
30210
|
-
});
|
|
30211
|
-
/** The objective the chip names, truncated for the one-line title. */
|
|
30212
|
-
const shortObjective = derived(() => goal && goal.objective.length > 80 ? goal.objective.slice(0, 79) + "…" : goal?.objective ?? "");
|
|
30213
|
-
/** Which phase action the chip offers: Pause on active, Resume on
|
|
30214
|
-
* paused, none on blocked (the host demands a reason fix first). */
|
|
30215
|
-
const phaseAction = derived(() => goal?.phase === "active" ? "pause" : goal?.phase === "paused" ? "resume" : void 0);
|
|
30216
30403
|
if (goal && goal.phase !== "complete") {
|
|
30217
30404
|
$$renderer.push("<!--[0-->");
|
|
30218
|
-
$$renderer.push(`<div data-svelte="GoalBar" class="goal-bar svelte-
|
|
30219
|
-
|
|
30220
|
-
|
|
30221
|
-
|
|
30222
|
-
|
|
30223
|
-
|
|
30224
|
-
|
|
30225
|
-
|
|
30226
|
-
|
|
30227
|
-
}
|
|
30228
|
-
$$renderer.push(
|
|
30229
|
-
if (onedit) {
|
|
30230
|
-
$$renderer.push("<!--[0-->");
|
|
30231
|
-
$$renderer.push(`<button type="button" class="goal-action svelte-132xors" data-testid="goal-edit"${attr("title", t(editobjectivetitle2))}>${escape_html(t(edit))}</button>`);
|
|
30232
|
-
} else $$renderer.push("<!--[-1-->");
|
|
30233
|
-
$$renderer.push(`<!--]--> `);
|
|
30234
|
-
if (onclear) {
|
|
30235
|
-
$$renderer.push("<!--[0-->");
|
|
30236
|
-
$$renderer.push(`<button type="button" class="goal-action goal-clear svelte-132xors" data-testid="goal-clear"${attr("aria-label", t(clearthegoal2))}${attr("title", t(clearbtn1))}>✕</button>`);
|
|
30237
|
-
} else $$renderer.push("<!--[-1-->");
|
|
30238
|
-
$$renderer.push(`<!--]--></div> `);
|
|
30405
|
+
$$renderer.push(`<div data-svelte="GoalBar" class="goal-bar svelte-reiy" data-testid="goal-bar">`);
|
|
30406
|
+
GoalChip($$renderer, {
|
|
30407
|
+
goal,
|
|
30408
|
+
blockedTitle: blockedTitle(),
|
|
30409
|
+
expanded,
|
|
30410
|
+
onpause,
|
|
30411
|
+
onresume,
|
|
30412
|
+
onedit,
|
|
30413
|
+
onclear
|
|
30414
|
+
});
|
|
30415
|
+
$$renderer.push(`<!----> `);
|
|
30239
30416
|
if (editor) {
|
|
30240
30417
|
$$renderer.push("<!--[0-->");
|
|
30241
|
-
$$renderer
|
|
30242
|
-
|
|
30243
|
-
if ($$body) $$renderer.push(`${$$body}`);
|
|
30244
|
-
$$renderer.push(`</textarea></label> <label class="goal-edit-label svelte-132xors"><span>${escape_html(t(maxrounds1))}</span> <input type="number" min="1" step="1" data-testid="goal-edit-rounds"${attr("value", editor.maxGoalRounds)} class="svelte-132xors"/></label> <div class="goal-controls svelte-132xors"><button type="button" data-testid="goal-edit-submit" class="svelte-132xors">${escape_html(t(save))}</button> <button type="button" data-testid="goal-edit-cancel" class="svelte-132xors">${escape_html(t(cancel))}</button></div></div>`);
|
|
30418
|
+
GoalEditor($$renderer, {
|
|
30419
|
+
editor});
|
|
30245
30420
|
} else $$renderer.push("<!--[-1-->");
|
|
30246
30421
|
$$renderer.push(`<!--]--> `);
|
|
30247
30422
|
$$renderer.push("<!--[-1-->");
|
|
@@ -30644,7 +30819,11 @@ function ConversationPanel($$renderer, $$props) {
|
|
|
30644
30819
|
todos: store.todos ?? null,
|
|
30645
30820
|
jobsessionid: sessionId,
|
|
30646
30821
|
shelfentries: store.entries,
|
|
30647
|
-
|
|
30822
|
+
shelfsessionid: sessionId,
|
|
30823
|
+
shelfworkspace: workspace,
|
|
30824
|
+
shelfpanelid: panelId,
|
|
30825
|
+
onshelfnote: (ok, note) => ladder.noteCommand(ok ? "ok" : "error", note)
|
|
30826
|
+
});
|
|
30648
30827
|
$$renderer.push(`<!----> `);
|
|
30649
30828
|
A2aChipStack($$renderer, {
|
|
30650
30829
|
rows: a2aRows,
|
|
@@ -30672,7 +30851,7 @@ function ConversationPanel($$renderer, $$props) {
|
|
|
30672
30851
|
$$renderer.push("<!--[0-->");
|
|
30673
30852
|
if (macroOurs()) {
|
|
30674
30853
|
$$renderer.push("<!--[0-->");
|
|
30675
|
-
|
|
30854
|
+
MacroBar($$renderer, {
|
|
30676
30855
|
run: macroRun(),
|
|
30677
30856
|
landedTurns: macroLanded(),
|
|
30678
30857
|
running: store.isStreaming,
|
|
@@ -34028,4 +34207,4 @@ function _page($$renderer, $$props) {
|
|
|
34028
34207
|
}
|
|
34029
34208
|
|
|
34030
34209
|
export { _page as default };
|
|
34031
|
-
//# sourceMappingURL=_page.svelte.js-
|
|
34210
|
+
//# sourceMappingURL=_page.svelte.js-CWiGV7R5.js.map
|