@deepseek-insight/dsi 0.6.17 → 0.6.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/bin/dsi.mjs +30 -7
- package/bin/lib/dev-mode.mjs +8 -0
- package/build/client/_app/immutable/assets/2.CulOeYPh.css +1 -0
- package/build/client/_app/immutable/chunks/{CuWK-Is9.js → CcfE8WnY.js} +1 -1
- package/build/client/_app/immutable/chunks/DR7O6pQK.js +1 -0
- package/build/client/_app/immutable/chunks/Db_zFoAP.js +1 -0
- package/build/client/_app/immutable/chunks/{CBpybevN.js → L81Qm9WF.js} +2 -2
- package/build/client/_app/immutable/entry/{app.rnAj22Bt.js → app.By0um08-.js} +2 -2
- package/build/client/_app/immutable/entry/start.DovVSimi.js +1 -0
- package/build/client/_app/immutable/nodes/{1.CEJdtANo.js → 1.zMtTl7W9.js} +1 -1
- package/build/client/_app/immutable/nodes/{2.D-He2bY-.js → 2.C9y-bmIa.js} +219 -219
- 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/{dsh-connection.js-DvncrWM4.js → dsh-connection.js-DL5qjlq2.js} +211 -6
- package/build/server/chunks/chunks/{dsh-events.js-B_E1BU9F.js → dsh-events.js-35seDLwL.js} +3 -1
- package/build/server/chunks/chunks/{engine.js-1gYqtdBP.js → engine.js-EfjwaLzA.js} +2 -2
- package/build/server/chunks/chunks/{git-probe.js-S9w9gGXE.js → git-probe.js-D4DjBXSY.js} +3 -3
- package/build/server/chunks/chunks/{internal2.js-Uh9eeZMM.js → internal2.js-BGlVENi_.js} +2 -2
- package/build/server/chunks/chunks/{state.js-5SpXEMQf.js → state.js-BT8iDJXe.js} +2 -2
- package/build/server/chunks/chunks/{watcher.js-BfZOp5td.js → watcher.js-CACduBB9.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/a2a/{_server.ts.js-D9vpMh8K.js → _server.ts.js-DHFHuGSm.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/a2a/register/{_server.ts.js-HPJEmfbv.js → _server.ts.js-CUUfDBcc.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/dsh/directory/{_server.ts.js-BaAmRXrU.js → _server.ts.js-Cae4x1c7.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/jobs/_server.ts.js-hGmoSsDv.js +93 -0
- package/build/server/chunks/entries/endpoints/api/dsh/pick-directory/{_server.ts.js-D-Ftq5ei.js → _server.ts.js-BLb8o1cY.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/presets/{_server.ts.js-C0_j53OW.js → _server.ts.js-BFeDKrPz.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/attachment/{_server.ts.js-CxMvUVdS.js → _server.ts.js-DmSTTfI5.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/cancel/{_server.ts.js-CfjRtKMp.js → _server.ts.js-Cus9XrC9.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/catalog/{_server.ts.js-D7uC5b_j.js → _server.ts.js-DcrNU0_y.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/changes/{_server.ts.js-TeoUfrIl.js → _server.ts.js-CpuEcp6p.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/command/{_server.ts.js-uqUb-EdM.js → _server.ts.js-CU9o8Tho.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/events/{_server.ts.js-C_DF0fAc.js → _server.ts.js-BiAJcPpb.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/fork/{_server.ts.js-BfkqDQXU.js → _server.ts.js-BMMZlvr7.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/goal/{_server.ts.js-vCfxCACS.js → _server.ts.js-DZ6qFrfm.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/history/{_server.ts.js-DJlpW4hl.js → _server.ts.js-ecbtat_C.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/models/{_server.ts.js-Cqn5ZMGh.js → _server.ts.js-CPZuvN-_.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/permission/{_server.ts.js-ChB_0ZdM.js → _server.ts.js-Dcfp7gSm.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/prompt/{_server.ts.js-BVHypcWF.js → _server.ts.js-CmxqUwLT.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/rename/{_server.ts.js-BwDVfVrR.js → _server.ts.js-DCNKXRwy.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/respond/{_server.ts.js-DRmd83Ea.js → _server.ts.js-AURyR2ll.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/select-model/{_server.ts.js-hc61Nb64.js → _server.ts.js-BVF36vTO.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/sessions/{_server.ts.js-xkp4IT7y.js → _server.ts.js-LX3JZbRr.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/workspace-file/{_server.ts.js-BvPKBiTg.js → _server.ts.js-BJ0d199o.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/workspace-tree/{_server.ts.js-BSsF01K6.js → _server.ts.js-BDy9jQXv.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/workspaces/{_server.ts.js-DNLxFs1R.js → _server.ts.js-DoTpSXIc.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/workspaces/_workspaceId_/delete/{_server.ts.js-5jaRPaKn.js → _server.ts.js-BnfIobo7.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/workspaces/_workspaceId_/rename/{_server.ts.js-A-hvBqyy.js → _server.ts.js-KRyjIODB.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/plugins/apply/{_server.ts.js-NZ9IorXC.js → _server.ts.js-D-m-ci1C.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/plugins/reload/{_server.ts.js-Ct28d7_t.js → _server.ts.js-BwingoJE.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/plugins/snapshot/{_server.ts.js-DswGIO4S.js → _server.ts.js-50wKeeCi.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/workspace/file-write/{_server.ts.js-C0x68iMD.js → _server.ts.js-Cb7X2G82.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/workspace/git-events/{_server.ts.js-DzdGKZdV.js → _server.ts.js-DZ67v729.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/workspace/git-file-head/{_server.ts.js-BC1jb3zy.js → _server.ts.js-BuO5Stmm.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/workspace/git-map/{_server.ts.js-BE9XJyhN.js → _server.ts.js-Bb_I5Ze7.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/workspace/git-status/{_server.ts.js-CWlGtOu8.js → _server.ts.js-cHWxh5VB.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/workspace/write-gate/{_server.ts.js-CgcggNrH.js → _server.ts.js-Blcfn0zm.js} +4 -4
- package/build/server/chunks/entries/pages/{_error.svelte.js-5nTeAv_j.js → _error.svelte.js-DrXSHJGM.js} +3 -3
- package/build/server/chunks/entries/pages/{_page.server.ts.js-CbzURHkB.js → _page.server.ts.js-C_ydvzuE.js} +3 -3
- package/build/server/chunks/entries/pages/{_page.svelte.js-DhwtRb8h.js → _page.svelte.js-BoCqON33.js} +633 -45
- package/build/server/chunks/{handler-Bx0HQRi_.js → handler-CxEHv3N9.js} +3 -3
- package/build/server/chunks/{index.js-DlqGbs2e.js → index.js-Co6HpgIt.js} +2 -2
- package/build/server/chunks/{manifest.js-C5Epl_0n.js → manifest.js-BoZ1Tnyu.js} +46 -39
- package/build/server/chunks/nodes/1.js-BWaCxXNn.js +9 -0
- package/build/server/chunks/nodes/{2.js-rGsgHmCd.js → 2.js-DNAbnuXD.js} +7 -7
- package/package.json +4 -4
- package/skills/dsi-add-plugin/references/allowbuilds-template.md +1 -1
- package/skills/dsi-sync/SKILL.md +8 -8
- package/template/.dsi/prompts.sqlite-shm +0 -0
- package/template/.dsi/prompts.sqlite-wal +0 -0
- package/template/.dsi/resources/plugins-reff.md +1 -1
- package/template/.dsi/resources/skills-reff.md +1 -1
- package/build/client/_app/immutable/assets/2.yPxdQ-n0.css +0 -1
- package/build/client/_app/immutable/chunks/BwzVWUYp.js +0 -1
- package/build/client/_app/immutable/chunks/gD0YbXxV.js +0 -1
- package/build/client/_app/immutable/entry/start.BZMX9WpT.js +0 -1
- package/build/server/chunks/nodes/1.js-BBFJCoA_.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-BT8iDJXe.js';
|
|
12
12
|
import 'yaml';
|
|
13
13
|
import 'html-to-image';
|
|
14
14
|
import hljs from 'highlight.js/lib/core';
|
|
@@ -20,7 +20,7 @@ import xml from 'highlight.js/lib/languages/xml';
|
|
|
20
20
|
import css from 'highlight.js/lib/languages/css';
|
|
21
21
|
import '../../chunks/uneval.js-BJ9Qq2SF.js';
|
|
22
22
|
import '../../chunks/shared.js-HQ0rfhm4.js';
|
|
23
|
-
import '../../chunks/internal2.js-
|
|
23
|
+
import '../../chunks/internal2.js-BGlVENi_.js';
|
|
24
24
|
import '../../chunks/exports.js-DH_tjtdv.js';
|
|
25
25
|
import '../../chunks/utils.js-CAdNO8Tu.js';
|
|
26
26
|
|
|
@@ -2136,6 +2136,38 @@ var commandskind1 = ((inputs = {}, options = {}) => {
|
|
|
2136
2136
|
return en_commandskind1();
|
|
2137
2137
|
});
|
|
2138
2138
|
//#endregion
|
|
2139
|
+
//#region src/lib/paraglide/messages/confirmkill1.js
|
|
2140
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
2141
|
+
/** @typedef {{}} Confirmkill1Inputs */
|
|
2142
|
+
var en_confirmkill1 = () => {
|
|
2143
|
+
return `Confirm kill`;
|
|
2144
|
+
};
|
|
2145
|
+
var zh_confirmkill1 = () => {
|
|
2146
|
+
return `确认终止`;
|
|
2147
|
+
};
|
|
2148
|
+
var id_confirmkill1 = () => {
|
|
2149
|
+
return `Konfirmasi hentikan`;
|
|
2150
|
+
};
|
|
2151
|
+
var es_confirmkill1 = () => {
|
|
2152
|
+
return `Confirmar terminación`;
|
|
2153
|
+
};
|
|
2154
|
+
/**
|
|
2155
|
+
* | output |
|
|
2156
|
+
* | --- |
|
|
2157
|
+
* | "Confirm kill" |
|
|
2158
|
+
*
|
|
2159
|
+
* @param {Confirmkill1Inputs} inputs
|
|
2160
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
2161
|
+
* @returns {LocalizedString}
|
|
2162
|
+
*/
|
|
2163
|
+
var confirmkill1 = ((inputs = {}, options = {}) => {
|
|
2164
|
+
const locale = options.locale ?? getLocale();
|
|
2165
|
+
if (locale === "zh") return zh_confirmkill1();
|
|
2166
|
+
if (locale === "id") return id_confirmkill1();
|
|
2167
|
+
if (locale === "es") return es_confirmkill1();
|
|
2168
|
+
return en_confirmkill1();
|
|
2169
|
+
});
|
|
2170
|
+
//#endregion
|
|
2139
2171
|
//#region src/lib/paraglide/messages/copyagentpresetid3.js
|
|
2140
2172
|
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
2141
2173
|
/** @typedef {{}} Copyagentpresetid3Inputs */
|
|
@@ -5592,6 +5624,134 @@ var injectedtitle1 = ((inputs = {}, options = {}) => {
|
|
|
5592
5624
|
return en_injectedtitle1();
|
|
5593
5625
|
});
|
|
5594
5626
|
//#endregion
|
|
5627
|
+
//#region src/lib/paraglide/messages/jobs.js
|
|
5628
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
5629
|
+
/** @typedef {{}} JobsInputs */
|
|
5630
|
+
var en_jobs = () => {
|
|
5631
|
+
return `Jobs`;
|
|
5632
|
+
};
|
|
5633
|
+
var zh_jobs = () => {
|
|
5634
|
+
return `后台任务`;
|
|
5635
|
+
};
|
|
5636
|
+
var id_jobs = () => {
|
|
5637
|
+
return `Pekerjaan`;
|
|
5638
|
+
};
|
|
5639
|
+
var es_jobs = () => {
|
|
5640
|
+
return `Trabajos`;
|
|
5641
|
+
};
|
|
5642
|
+
/**
|
|
5643
|
+
* | output |
|
|
5644
|
+
* | --- |
|
|
5645
|
+
* | "Jobs" |
|
|
5646
|
+
*
|
|
5647
|
+
* @param {JobsInputs} inputs
|
|
5648
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
5649
|
+
* @returns {LocalizedString}
|
|
5650
|
+
*/
|
|
5651
|
+
var jobs = ((inputs = {}, options = {}) => {
|
|
5652
|
+
const locale = options.locale ?? getLocale();
|
|
5653
|
+
if (locale === "zh") return zh_jobs();
|
|
5654
|
+
if (locale === "id") return id_jobs();
|
|
5655
|
+
if (locale === "es") return es_jobs();
|
|
5656
|
+
return en_jobs();
|
|
5657
|
+
});
|
|
5658
|
+
//#endregion
|
|
5659
|
+
//#region src/lib/paraglide/messages/jobslivetitle_one2.js
|
|
5660
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
5661
|
+
/** @typedef {{ n: NonNullable<unknown> }} Jobslivetitle_One2Inputs */
|
|
5662
|
+
var en_jobslivetitle_one2 = (i) => {
|
|
5663
|
+
return `${i?.n} live job`;
|
|
5664
|
+
};
|
|
5665
|
+
var zh_jobslivetitle_one2 = (i) => {
|
|
5666
|
+
return `${i?.n} 个进行中的任务`;
|
|
5667
|
+
};
|
|
5668
|
+
var id_jobslivetitle_one2 = (i) => {
|
|
5669
|
+
return `${i?.n} pekerjaan aktif`;
|
|
5670
|
+
};
|
|
5671
|
+
var es_jobslivetitle_one2 = (i) => {
|
|
5672
|
+
return `${i?.n} trabajo en curso`;
|
|
5673
|
+
};
|
|
5674
|
+
/**
|
|
5675
|
+
* | output |
|
|
5676
|
+
* | --- |
|
|
5677
|
+
* | "{n} live job" |
|
|
5678
|
+
*
|
|
5679
|
+
* @param {Jobslivetitle_One2Inputs} inputs
|
|
5680
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
5681
|
+
* @returns {LocalizedString}
|
|
5682
|
+
*/
|
|
5683
|
+
var jobslivetitle_one2 = ((inputs, options = {}) => {
|
|
5684
|
+
const locale = options.locale ?? getLocale();
|
|
5685
|
+
if (locale === "zh") return zh_jobslivetitle_one2(inputs);
|
|
5686
|
+
if (locale === "id") return id_jobslivetitle_one2(inputs);
|
|
5687
|
+
if (locale === "es") return es_jobslivetitle_one2(inputs);
|
|
5688
|
+
return en_jobslivetitle_one2(inputs);
|
|
5689
|
+
});
|
|
5690
|
+
//#endregion
|
|
5691
|
+
//#region src/lib/paraglide/messages/jobslivetitle_other2.js
|
|
5692
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
5693
|
+
/** @typedef {{ n: NonNullable<unknown> }} Jobslivetitle_Other2Inputs */
|
|
5694
|
+
var en_jobslivetitle_other2 = (i) => {
|
|
5695
|
+
return `${i?.n} live jobs`;
|
|
5696
|
+
};
|
|
5697
|
+
var zh_jobslivetitle_other2 = (i) => {
|
|
5698
|
+
return `${i?.n} 个进行中的任务`;
|
|
5699
|
+
};
|
|
5700
|
+
var id_jobslivetitle_other2 = (i) => {
|
|
5701
|
+
return `${i?.n} pekerjaan aktif`;
|
|
5702
|
+
};
|
|
5703
|
+
var es_jobslivetitle_other2 = (i) => {
|
|
5704
|
+
return `${i?.n} trabajos en curso`;
|
|
5705
|
+
};
|
|
5706
|
+
/**
|
|
5707
|
+
* | output |
|
|
5708
|
+
* | --- |
|
|
5709
|
+
* | "{n} live jobs" |
|
|
5710
|
+
*
|
|
5711
|
+
* @param {Jobslivetitle_Other2Inputs} inputs
|
|
5712
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
5713
|
+
* @returns {LocalizedString}
|
|
5714
|
+
*/
|
|
5715
|
+
var jobslivetitle_other2 = ((inputs, options = {}) => {
|
|
5716
|
+
const locale = options.locale ?? getLocale();
|
|
5717
|
+
if (locale === "zh") return zh_jobslivetitle_other2(inputs);
|
|
5718
|
+
if (locale === "id") return id_jobslivetitle_other2(inputs);
|
|
5719
|
+
if (locale === "es") return es_jobslivetitle_other2(inputs);
|
|
5720
|
+
return en_jobslivetitle_other2(inputs);
|
|
5721
|
+
});
|
|
5722
|
+
//#endregion
|
|
5723
|
+
//#region src/lib/paraglide/messages/killjob1.js
|
|
5724
|
+
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
5725
|
+
/** @typedef {{}} Killjob1Inputs */
|
|
5726
|
+
var en_killjob1 = () => {
|
|
5727
|
+
return `Kill`;
|
|
5728
|
+
};
|
|
5729
|
+
var zh_killjob1 = () => {
|
|
5730
|
+
return `终止`;
|
|
5731
|
+
};
|
|
5732
|
+
var id_killjob1 = () => {
|
|
5733
|
+
return `Hentikan`;
|
|
5734
|
+
};
|
|
5735
|
+
var es_killjob1 = () => {
|
|
5736
|
+
return `Terminar`;
|
|
5737
|
+
};
|
|
5738
|
+
/**
|
|
5739
|
+
* | output |
|
|
5740
|
+
* | --- |
|
|
5741
|
+
* | "Kill" |
|
|
5742
|
+
*
|
|
5743
|
+
* @param {Killjob1Inputs} inputs
|
|
5744
|
+
* @param {{ locale?: "en" | "zh" | "id" | "es" }} options
|
|
5745
|
+
* @returns {LocalizedString}
|
|
5746
|
+
*/
|
|
5747
|
+
var killjob1 = ((inputs = {}, options = {}) => {
|
|
5748
|
+
const locale = options.locale ?? getLocale();
|
|
5749
|
+
if (locale === "zh") return zh_killjob1();
|
|
5750
|
+
if (locale === "id") return id_killjob1();
|
|
5751
|
+
if (locale === "es") return es_killjob1();
|
|
5752
|
+
return en_killjob1();
|
|
5753
|
+
});
|
|
5754
|
+
//#endregion
|
|
5595
5755
|
//#region src/lib/paraglide/messages/label.js
|
|
5596
5756
|
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
5597
5757
|
/** @typedef {{}} LabelInputs */
|
|
@@ -14301,6 +14461,7 @@ var _index_exports = /* @__PURE__ */ __exportAll({
|
|
|
14301
14461
|
commandHelpSkillshelfSummary: () => commandhelpskillshelfsummary3,
|
|
14302
14462
|
commands: () => commands,
|
|
14303
14463
|
commandsKind: () => commandskind1,
|
|
14464
|
+
confirmKill: () => confirmkill1,
|
|
14304
14465
|
copyAgentPresetId: () => copyagentpresetid3,
|
|
14305
14466
|
copyConversationImage: () => copyconversationimage2,
|
|
14306
14467
|
copyFloorImage: () => copyfloorimage2,
|
|
@@ -14410,6 +14571,10 @@ var _index_exports = /* @__PURE__ */ __exportAll({
|
|
|
14410
14571
|
impliedNote: () => impliednote1,
|
|
14411
14572
|
injectedFiles: () => injectedfiles1,
|
|
14412
14573
|
injectedTitle: () => injectedtitle1,
|
|
14574
|
+
jobs: () => jobs,
|
|
14575
|
+
jobsLiveTitle_one: () => jobslivetitle_one2,
|
|
14576
|
+
jobsLiveTitle_other: () => jobslivetitle_other2,
|
|
14577
|
+
killJob: () => killjob1,
|
|
14413
14578
|
label: () => label,
|
|
14414
14579
|
labelOptional: () => labeloptional1,
|
|
14415
14580
|
labelSlashText: () => labelslashtext2,
|
|
@@ -14754,6 +14919,7 @@ var messages_exports = /* @__PURE__ */ __exportAll({
|
|
|
14754
14919
|
commandHelpSkillshelfSummary: () => commandhelpskillshelfsummary3,
|
|
14755
14920
|
commands: () => commands,
|
|
14756
14921
|
commandsKind: () => commandskind1,
|
|
14922
|
+
confirmKill: () => confirmkill1,
|
|
14757
14923
|
copyAgentPresetId: () => copyagentpresetid3,
|
|
14758
14924
|
copyConversationImage: () => copyconversationimage2,
|
|
14759
14925
|
copyFloorImage: () => copyfloorimage2,
|
|
@@ -14863,6 +15029,10 @@ var messages_exports = /* @__PURE__ */ __exportAll({
|
|
|
14863
15029
|
impliedNote: () => impliednote1,
|
|
14864
15030
|
injectedFiles: () => injectedfiles1,
|
|
14865
15031
|
injectedTitle: () => injectedtitle1,
|
|
15032
|
+
jobs: () => jobs,
|
|
15033
|
+
jobsLiveTitle_one: () => jobslivetitle_one2,
|
|
15034
|
+
jobsLiveTitle_other: () => jobslivetitle_other2,
|
|
15035
|
+
killJob: () => killjob1,
|
|
14866
15036
|
label: () => label,
|
|
14867
15037
|
labelOptional: () => labeloptional1,
|
|
14868
15038
|
labelSlashText: () => labelslashtext2,
|
|
@@ -15365,6 +15535,85 @@ function Chevrons_up_down($$renderer, $$props) {
|
|
|
15365
15535
|
]));
|
|
15366
15536
|
}
|
|
15367
15537
|
//#endregion
|
|
15538
|
+
//#region node_modules/.pnpm/@lucide+svelte@1.35.0_svelte@5.56.10/node_modules/@lucide/svelte/dist/icons/circle-alert.svelte
|
|
15539
|
+
function Circle_alert($$renderer, $$props) {
|
|
15540
|
+
let { $$slots, $$events, ...props } = $$props;
|
|
15541
|
+
Icon($$renderer, spread_props([
|
|
15542
|
+
{ name: "circle-alert" },
|
|
15543
|
+
props,
|
|
15544
|
+
{ iconNode: [
|
|
15545
|
+
["circle", {
|
|
15546
|
+
"cx": "12",
|
|
15547
|
+
"cy": "12",
|
|
15548
|
+
"r": "10"
|
|
15549
|
+
}],
|
|
15550
|
+
["line", {
|
|
15551
|
+
"x1": "12",
|
|
15552
|
+
"x2": "12",
|
|
15553
|
+
"y1": "8",
|
|
15554
|
+
"y2": "12"
|
|
15555
|
+
}],
|
|
15556
|
+
["line", {
|
|
15557
|
+
"x1": "12",
|
|
15558
|
+
"x2": "12.01",
|
|
15559
|
+
"y1": "16",
|
|
15560
|
+
"y2": "16"
|
|
15561
|
+
}]
|
|
15562
|
+
] }
|
|
15563
|
+
]));
|
|
15564
|
+
}
|
|
15565
|
+
//#endregion
|
|
15566
|
+
//#region node_modules/.pnpm/@lucide+svelte@1.35.0_svelte@5.56.10/node_modules/@lucide/svelte/dist/icons/circle-check.svelte
|
|
15567
|
+
function Circle_check($$renderer, $$props) {
|
|
15568
|
+
let { $$slots, $$events, ...props } = $$props;
|
|
15569
|
+
Icon($$renderer, spread_props([
|
|
15570
|
+
{ name: "circle-check" },
|
|
15571
|
+
props,
|
|
15572
|
+
{ iconNode: [["circle", {
|
|
15573
|
+
"cx": "12",
|
|
15574
|
+
"cy": "12",
|
|
15575
|
+
"r": "10"
|
|
15576
|
+
}], ["path", { "d": "m9 12 2 2 4-4" }]] }
|
|
15577
|
+
]));
|
|
15578
|
+
}
|
|
15579
|
+
//#endregion
|
|
15580
|
+
//#region node_modules/.pnpm/@lucide+svelte@1.35.0_svelte@5.56.10/node_modules/@lucide/svelte/dist/icons/circle-dashed.svelte
|
|
15581
|
+
function Circle_dashed($$renderer, $$props) {
|
|
15582
|
+
let { $$slots, $$events, ...props } = $$props;
|
|
15583
|
+
Icon($$renderer, spread_props([
|
|
15584
|
+
{ name: "circle-dashed" },
|
|
15585
|
+
props,
|
|
15586
|
+
{ iconNode: [
|
|
15587
|
+
["path", { "d": "M10.1 2.182a10 10 0 0 1 3.8 0" }],
|
|
15588
|
+
["path", { "d": "M13.9 21.818a10 10 0 0 1-3.8 0" }],
|
|
15589
|
+
["path", { "d": "M17.609 3.721a10 10 0 0 1 2.69 2.7" }],
|
|
15590
|
+
["path", { "d": "M2.182 13.9a10 10 0 0 1 0-3.8" }],
|
|
15591
|
+
["path", { "d": "M20.279 17.609a10 10 0 0 1-2.7 2.69" }],
|
|
15592
|
+
["path", { "d": "M21.818 10.1a10 10 0 0 1 0 3.8" }],
|
|
15593
|
+
["path", { "d": "M3.721 6.391a10 10 0 0 1 2.7-2.69" }],
|
|
15594
|
+
["path", { "d": "M6.391 20.279a10 10 0 0 1-2.69-2.7" }]
|
|
15595
|
+
] }
|
|
15596
|
+
]));
|
|
15597
|
+
}
|
|
15598
|
+
//#endregion
|
|
15599
|
+
//#region node_modules/.pnpm/@lucide+svelte@1.35.0_svelte@5.56.10/node_modules/@lucide/svelte/dist/icons/circle-x.svelte
|
|
15600
|
+
function Circle_x($$renderer, $$props) {
|
|
15601
|
+
let { $$slots, $$events, ...props } = $$props;
|
|
15602
|
+
Icon($$renderer, spread_props([
|
|
15603
|
+
{ name: "circle-x" },
|
|
15604
|
+
props,
|
|
15605
|
+
{ iconNode: [
|
|
15606
|
+
["circle", {
|
|
15607
|
+
"cx": "12",
|
|
15608
|
+
"cy": "12",
|
|
15609
|
+
"r": "10"
|
|
15610
|
+
}],
|
|
15611
|
+
["path", { "d": "m15 9-6 6" }],
|
|
15612
|
+
["path", { "d": "m9 9 6 6" }]
|
|
15613
|
+
] }
|
|
15614
|
+
]));
|
|
15615
|
+
}
|
|
15616
|
+
//#endregion
|
|
15368
15617
|
//#region node_modules/.pnpm/@lucide+svelte@1.35.0_svelte@5.56.10/node_modules/@lucide/svelte/dist/icons/code-xml.svelte
|
|
15369
15618
|
function Code_xml($$renderer, $$props) {
|
|
15370
15619
|
let { $$slots, $$events, ...props } = $$props;
|
|
@@ -16533,6 +16782,159 @@ function relativeTime(ms, now = Date.now()) {
|
|
|
16533
16782
|
return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, "0")}-${String(date.getDate()).padStart(2, "0")}`;
|
|
16534
16783
|
}
|
|
16535
16784
|
//#endregion
|
|
16785
|
+
//#region src/lib/services/jobs/roster-store.svelte.ts
|
|
16786
|
+
function isLiveJob(job) {
|
|
16787
|
+
return job.status === "running" || job.status === "stopping";
|
|
16788
|
+
}
|
|
16789
|
+
/**
|
|
16790
|
+
* The eternal signal — bumped on EVERY roster mutation. Born at module
|
|
16791
|
+
* init, outside every reaction, so a reader can always subscribe to it no
|
|
16792
|
+
* matter how early it reads. Read (never written) by jobs().
|
|
16793
|
+
*/
|
|
16794
|
+
var version$1 = 0;
|
|
16795
|
+
/** The roster data — deliberately NON-reactive; version carries the news. */
|
|
16796
|
+
var jobsBySession = /* @__PURE__ */ new Map();
|
|
16797
|
+
/** Watch refcounts — bookkeeping only, never render state. */
|
|
16798
|
+
var watches = /* @__PURE__ */ new Map();
|
|
16799
|
+
/** The singleton surface every consumer imports (Wave 1 API, preserved). */
|
|
16800
|
+
var JobsRosterStore = class {
|
|
16801
|
+
/** Begin watching a session (idempotent per extra watcher). */
|
|
16802
|
+
watch(sessionId) {
|
|
16803
|
+
if (!sessionId) return;
|
|
16804
|
+
let w = watches.get(sessionId);
|
|
16805
|
+
if (w === void 0) {
|
|
16806
|
+
w = { refs: 0 };
|
|
16807
|
+
watches.set(sessionId, w);
|
|
16808
|
+
jobsBySession.set(sessionId, []);
|
|
16809
|
+
}
|
|
16810
|
+
w.refs += 1;
|
|
16811
|
+
if (w.refs > 1) return;
|
|
16812
|
+
this.refresh(sessionId);
|
|
16813
|
+
}
|
|
16814
|
+
/** Release one watch — the mount point's destroy handler MUST call it. */
|
|
16815
|
+
unwatch(sessionId) {
|
|
16816
|
+
const w = watches.get(sessionId);
|
|
16817
|
+
if (w === void 0) return;
|
|
16818
|
+
w.refs = Math.max(0, w.refs - 1);
|
|
16819
|
+
if (w.refs > 0) return;
|
|
16820
|
+
watches.delete(sessionId);
|
|
16821
|
+
jobsBySession.delete(sessionId);
|
|
16822
|
+
}
|
|
16823
|
+
/**
|
|
16824
|
+
* The session's whole visible set. Reads the version signal FIRST so
|
|
16825
|
+
* even a not-yet-watched session's empty result is a tracked read.
|
|
16826
|
+
*/
|
|
16827
|
+
jobs(sessionId) {
|
|
16828
|
+
return sessionId ? jobsBySession.get(sessionId) ?? [] : [];
|
|
16829
|
+
}
|
|
16830
|
+
/** Live (running/stopping) count — the badge's number. */
|
|
16831
|
+
liveCount(sessionId) {
|
|
16832
|
+
return this.jobs(sessionId).filter(isLiveJob).length;
|
|
16833
|
+
}
|
|
16834
|
+
/**
|
|
16835
|
+
* One snapshot fetch; a failure keeps the last known set (no flicker).
|
|
16836
|
+
* A pending frame (Roster Mirror ADR 2026-10-17 D3 — the stream is open
|
|
16837
|
+
* but no frame has arrived) is honest darkness, NOT an empty set: it
|
|
16838
|
+
* must not clobber the last known jobs.
|
|
16839
|
+
*/
|
|
16840
|
+
async refresh(sessionId) {
|
|
16841
|
+
try {
|
|
16842
|
+
const res = await fetch(`/api/dsh/jobs?sessionId=${encodeURIComponent(sessionId)}`);
|
|
16843
|
+
if (!res.ok) return;
|
|
16844
|
+
const body = await res.json();
|
|
16845
|
+
if (body.ok && body.pending === true) return;
|
|
16846
|
+
if (body.ok && Array.isArray(body.jobs)) {
|
|
16847
|
+
jobsBySession.set(sessionId, body.jobs);
|
|
16848
|
+
version$1 += 1;
|
|
16849
|
+
}
|
|
16850
|
+
} catch {}
|
|
16851
|
+
}
|
|
16852
|
+
/**
|
|
16853
|
+
* Refresh EVERY watched session — the spine tick's piggyback hook
|
|
16854
|
+
* (BC-7: the cadence belongs to the page's ONE interval, never to a
|
|
16855
|
+
* component timer). Unwatched sessions refresh nowhere.
|
|
16856
|
+
*/
|
|
16857
|
+
refreshWatched() {
|
|
16858
|
+
for (const sessionId of watches.keys()) this.refresh(sessionId);
|
|
16859
|
+
}
|
|
16860
|
+
};
|
|
16861
|
+
var jobsRoster = new JobsRosterStore();
|
|
16862
|
+
//#endregion
|
|
16863
|
+
//#region src/lib/components/jobs/JobRosterList.svelte
|
|
16864
|
+
function JobRosterList($$renderer, $$props) {
|
|
16865
|
+
$$renderer.component(($$renderer) => {
|
|
16866
|
+
/**
|
|
16867
|
+
* JobRosterList — the shared live readout of one session's visible job
|
|
16868
|
+
* roster (Job Badge Waves 2+3, ADR-0026): status, label, output bytes
|
|
16869
|
+
* per row, and the kill button with the host's 3-second arm-confirm
|
|
16870
|
+
* (KILL_ARM_MS parity). Kill is the human's only direct job verb (ADR
|
|
16871
|
+
* fact 6); the fence stays server-side. Extracted 2026-10-16 so the
|
|
16872
|
+
* RowJobBadge popover and the JobsButton popup render ONE readout
|
|
16873
|
+
* implementation, never a copy.
|
|
16874
|
+
*/
|
|
16875
|
+
let { jobs} = $$props;
|
|
16876
|
+
/** Per-job arm state: the id awaiting its confirm click, or null. */
|
|
16877
|
+
let armedJobId = null;
|
|
16878
|
+
if (jobs.length === 0) {
|
|
16879
|
+
$$renderer.push("<!--[0-->");
|
|
16880
|
+
$$renderer.push(`<div data-svelte="JobRosterList" class="empty svelte-1woqt69" data-testid="job-roster-empty">—</div>`);
|
|
16881
|
+
} else {
|
|
16882
|
+
$$renderer.push("<!--[-1-->");
|
|
16883
|
+
$$renderer.push(`<!--[-->`);
|
|
16884
|
+
const each_array = ensure_array_like(jobs);
|
|
16885
|
+
for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
|
|
16886
|
+
let job = each_array[$$index];
|
|
16887
|
+
$$renderer.push(`<div data-svelte="JobRosterList"${attr_class("job svelte-1woqt69", void 0, { "live": isLiveJob(job) })}${attr("data-job-id", job.id)}><span class="status svelte-1woqt69"${attr("title", job.status)}>`);
|
|
16888
|
+
if (job.status === "running") {
|
|
16889
|
+
$$renderer.push("<!--[0-->");
|
|
16890
|
+
Loader_circle($$renderer, {
|
|
16891
|
+
size: 12,
|
|
16892
|
+
class: "spin"
|
|
16893
|
+
});
|
|
16894
|
+
} else if (job.status === "stopping") {
|
|
16895
|
+
$$renderer.push("<!--[1-->");
|
|
16896
|
+
Loader_circle($$renderer, {
|
|
16897
|
+
size: 12,
|
|
16898
|
+
class: "stopping"
|
|
16899
|
+
});
|
|
16900
|
+
} else if (job.status === "completed") {
|
|
16901
|
+
$$renderer.push("<!--[2-->");
|
|
16902
|
+
Circle_check($$renderer, {
|
|
16903
|
+
size: 12,
|
|
16904
|
+
class: "ok"
|
|
16905
|
+
});
|
|
16906
|
+
} else if (job.status === "failed") {
|
|
16907
|
+
$$renderer.push("<!--[3-->");
|
|
16908
|
+
Circle_alert($$renderer, {
|
|
16909
|
+
size: 12,
|
|
16910
|
+
class: "bad"
|
|
16911
|
+
});
|
|
16912
|
+
} else if (job.status === "killed") {
|
|
16913
|
+
$$renderer.push("<!--[4-->");
|
|
16914
|
+
Circle_x($$renderer, {
|
|
16915
|
+
size: 12,
|
|
16916
|
+
class: "dead"
|
|
16917
|
+
});
|
|
16918
|
+
} else {
|
|
16919
|
+
$$renderer.push("<!--[-1-->");
|
|
16920
|
+
Circle_dashed($$renderer, {
|
|
16921
|
+
size: 12,
|
|
16922
|
+
class: "dead"
|
|
16923
|
+
});
|
|
16924
|
+
}
|
|
16925
|
+
$$renderer.push(`<!--]--></span> <span class="label svelte-1woqt69"${attr("title", job.label)}>${escape_html(job.label)}</span> <span class="bytes svelte-1woqt69">${escape_html(job.output.total)}B</span> `);
|
|
16926
|
+
if (isLiveJob(job)) {
|
|
16927
|
+
$$renderer.push("<!--[0-->");
|
|
16928
|
+
$$renderer.push(`<button type="button"${attr_class("kill svelte-1woqt69", void 0, { "armed": armedJobId === job.id })}${attr("data-testid", "job-kill-" + job.id)}>${escape_html(armedJobId === job.id ? confirmkill1() : killjob1())}</button>`);
|
|
16929
|
+
} else $$renderer.push("<!--[-1-->");
|
|
16930
|
+
$$renderer.push(`<!--]--></div>`);
|
|
16931
|
+
}
|
|
16932
|
+
$$renderer.push(`<!--]-->`);
|
|
16933
|
+
}
|
|
16934
|
+
$$renderer.push(`<!--]-->`);
|
|
16935
|
+
});
|
|
16936
|
+
}
|
|
16937
|
+
//#endregion
|
|
16536
16938
|
//#region src/lib/components/composer/NewChatButton.svelte
|
|
16537
16939
|
function NewChatButton($$renderer, $$props) {
|
|
16538
16940
|
$$renderer.component(($$renderer) => {
|
|
@@ -17935,8 +18337,8 @@ function ThemeToggle($$renderer, $$props) {
|
|
|
17935
18337
|
}
|
|
17936
18338
|
//#endregion
|
|
17937
18339
|
//#region package.json
|
|
17938
|
-
var version = "0.6.
|
|
17939
|
-
var dsh = { "webVersion": "0.2.1-
|
|
18340
|
+
var version = "0.6.19";
|
|
18341
|
+
var dsh = { "webVersion": "0.2.1-rc.2" };
|
|
17940
18342
|
//#endregion
|
|
17941
18343
|
//#region src/lib/version.ts
|
|
17942
18344
|
/**
|
|
@@ -21271,6 +21673,23 @@ function parseCommand(text) {
|
|
|
21271
21673
|
default: return null;
|
|
21272
21674
|
}
|
|
21273
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
|
+
}
|
|
21274
21693
|
//#endregion
|
|
21275
21694
|
//#region src/lib/services/chat/command-help.ts
|
|
21276
21695
|
/**
|
|
@@ -27276,7 +27695,7 @@ function ConversationScrollArea($$renderer, $$props) {
|
|
|
27276
27695
|
const each_array_3 = ensure_array_like(fold.folded);
|
|
27277
27696
|
for (let $$index_2 = 0, $$length = each_array_3.length; $$index_2 < $$length; $$index_2++) {
|
|
27278
27697
|
let run = each_array_3[$$index_2];
|
|
27279
|
-
const workEntries = run.kind === "chips" ? run.entries.filter((e) => !(e.kind === "user-message" && e.meta !== void 0) && e.kind !== "unknown-event") :
|
|
27698
|
+
const workEntries = run.kind === "chips" ? run.entries.filter((e) => !(e.kind === "user-message" && e.meta !== void 0) && e.kind !== "unknown-event") : [];
|
|
27280
27699
|
if (run.kind === "text") {
|
|
27281
27700
|
$$renderer.push("<!--[0-->");
|
|
27282
27701
|
MarkdownContent($$renderer, {
|
|
@@ -27662,7 +28081,7 @@ function BackToTheEdgeButton($$renderer, $$props) {
|
|
|
27662
28081
|
});
|
|
27663
28082
|
}
|
|
27664
28083
|
//#endregion
|
|
27665
|
-
//#region src/lib/components/
|
|
28084
|
+
//#region src/lib/components/anchor/plan/PlanPopup.svelte
|
|
27666
28085
|
function PlanPopup($$renderer, $$props) {
|
|
27667
28086
|
$$renderer.component(($$renderer) => {
|
|
27668
28087
|
/**
|
|
@@ -27711,7 +28130,7 @@ function PlanPopup($$renderer, $$props) {
|
|
|
27711
28130
|
});
|
|
27712
28131
|
}
|
|
27713
28132
|
//#endregion
|
|
27714
|
-
//#region src/lib/components/
|
|
28133
|
+
//#region src/lib/components/anchor/plan/PlanButton.svelte
|
|
27715
28134
|
function PlanButton($$renderer, $$props) {
|
|
27716
28135
|
$$renderer.component(($$renderer) => {
|
|
27717
28136
|
/**
|
|
@@ -27745,7 +28164,7 @@ function PlanButton($$renderer, $$props) {
|
|
|
27745
28164
|
function $$render_inner($$renderer) {
|
|
27746
28165
|
if (items().length > 0) {
|
|
27747
28166
|
$$renderer.push("<!--[0-->");
|
|
27748
|
-
$$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">`);
|
|
27749
28168
|
List_checks($$renderer, { size: 14 });
|
|
27750
28169
|
$$renderer.push(`<!----></button> `);
|
|
27751
28170
|
PlanPopup($$renderer, {
|
|
@@ -27772,6 +28191,169 @@ function PlanButton($$renderer, $$props) {
|
|
|
27772
28191
|
});
|
|
27773
28192
|
}
|
|
27774
28193
|
//#endregion
|
|
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
|
|
28237
|
+
function JobsButton($$renderer, $$props) {
|
|
28238
|
+
$$renderer.component(($$renderer) => {
|
|
28239
|
+
/**
|
|
28240
|
+
* JobsButton — the live-jobs leaf of the floating anchor stack (Job
|
|
28241
|
+
* Badge Wave 3, ADR-0026): the conversation session's live background
|
|
28242
|
+
* work as one click beside the transcript. Renders NOTHING while the
|
|
28243
|
+
* conversation session owns no live job, so the anchor stack keeps its
|
|
28244
|
+
* shape at zero. The popup is the shared JobRosterList readout (Wave 3
|
|
28245
|
+
* extraction) — status, label, output bytes, kill with the 3-second
|
|
28246
|
+
* arm-confirm — hosted in FloatingAnchorContainerPopup (The Popup Shell
|
|
28247
|
+
* ADR D1) since the 2026-10-17 placement fix: the hand-rolled absolute
|
|
28248
|
+
* popup broke in embedded panel mode, while the shell's
|
|
28249
|
+
* right-full/vertically-centered placement is the pinned surface the
|
|
28250
|
+
* other anchor leaves (User Messages, Plan) already use.
|
|
28251
|
+
*/
|
|
28252
|
+
let { sessionId } = $$props;
|
|
28253
|
+
/** Popup open state — bindable into the shared shell. */
|
|
28254
|
+
let open = false;
|
|
28255
|
+
/** The toggle's wrapper — the shell's close-contract exclusion. */
|
|
28256
|
+
let triggerEl = void 0;
|
|
28257
|
+
/** Whole visible roster (own jobs + unowned), reactive. */
|
|
28258
|
+
const jobs = derived(() => sessionId ? jobsRoster.jobs(sessionId) : []);
|
|
28259
|
+
/** Live (running/stopping) count — the button's number, derived FROM jobs. */
|
|
28260
|
+
const liveCount = derived(() => jobs().filter(isLiveJob).length);
|
|
28261
|
+
let $$settled = true;
|
|
28262
|
+
let $$inner_renderer;
|
|
28263
|
+
function $$render_inner($$renderer) {
|
|
28264
|
+
if (liveCount() > 0) {
|
|
28265
|
+
$$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> `);
|
|
28267
|
+
JobsPopup($$renderer, {
|
|
28268
|
+
triggerEl,
|
|
28269
|
+
jobs: jobs(),
|
|
28270
|
+
sessionId,
|
|
28271
|
+
get open() {
|
|
28272
|
+
return open;
|
|
28273
|
+
},
|
|
28274
|
+
set open($$value) {
|
|
28275
|
+
open = $$value;
|
|
28276
|
+
$$settled = false;
|
|
28277
|
+
}
|
|
28278
|
+
});
|
|
28279
|
+
$$renderer.push(`<!----></div>`);
|
|
28280
|
+
} else $$renderer.push("<!--[-1-->");
|
|
28281
|
+
$$renderer.push(`<!--]-->`);
|
|
28282
|
+
}
|
|
28283
|
+
do {
|
|
28284
|
+
$$settled = true;
|
|
28285
|
+
$$inner_renderer = $$renderer.copy();
|
|
28286
|
+
$$render_inner($$inner_renderer);
|
|
28287
|
+
} while (!$$settled);
|
|
28288
|
+
$$renderer.subsume($$inner_renderer);
|
|
28289
|
+
});
|
|
28290
|
+
}
|
|
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
|
|
27775
28357
|
//#region src/lib/services/chat/executor/workspace.ts
|
|
27776
28358
|
/**
|
|
27777
28359
|
* Execute one /permission… line through the typed route (commands/
|
|
@@ -28622,7 +29204,7 @@ async function executeHostCommand(line, ctx, onNote) {
|
|
|
28622
29204
|
}
|
|
28623
29205
|
}
|
|
28624
29206
|
//#endregion
|
|
28625
|
-
//#region src/lib/components/
|
|
29207
|
+
//#region src/lib/components/anchor/inject/InjectedShelfButton.svelte
|
|
28626
29208
|
function InjectedShelfButton($$renderer, $$props) {
|
|
28627
29209
|
$$renderer.component(($$renderer) => {
|
|
28628
29210
|
/**
|
|
@@ -28634,62 +29216,57 @@ function InjectedShelfButton($$renderer, $$props) {
|
|
|
28634
29216
|
* one implementation. It NEVER calls the floor registry directly (D6's
|
|
28635
29217
|
* rejected alternative: a second write path to the floor).
|
|
28636
29218
|
*
|
|
28637
|
-
*
|
|
28638
|
-
*
|
|
28639
|
-
*
|
|
28640
|
-
*
|
|
28641
|
-
*
|
|
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
|
|
28642
29224
|
* 2026-09-08, amending the ADR's D3 default): "Injected files: (n)".
|
|
28643
29225
|
*
|
|
28644
29226
|
* Renders NOTHING when the shelf is empty — the gate moved in with the
|
|
28645
29227
|
* button (the UserMessagesButton shape: self-contained with its popup).
|
|
28646
29228
|
*/
|
|
28647
|
-
let { entries, workspace = null} = $$props;
|
|
29229
|
+
let { entries, sessionId, workspace = null, panelId = null, onnote } = $$props;
|
|
28648
29230
|
/** Popup open state — the active tone mirrors it on the button. */
|
|
28649
29231
|
let open = false;
|
|
28650
29232
|
/** The popup's trigger exclusion element (the wrapper div). */
|
|
28651
29233
|
let triggerEl = void 0;
|
|
28652
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
|
+
}
|
|
28653
29249
|
let $$settled = true;
|
|
28654
29250
|
let $$inner_renderer;
|
|
28655
29251
|
function $$render_inner($$renderer) {
|
|
28656
29252
|
if (members().length > 0) {
|
|
28657
29253
|
$$renderer.push("<!--[0-->");
|
|
28658
|
-
$$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">`);
|
|
28659
29255
|
File_text($$renderer, { size: 14 });
|
|
28660
29256
|
$$renderer.push(`<!----></button> `);
|
|
28661
|
-
|
|
29257
|
+
InjectedShelfPopup($$renderer, {
|
|
29258
|
+
members: members(),
|
|
29259
|
+
entries,
|
|
29260
|
+
workspace,
|
|
28662
29261
|
triggerEl,
|
|
28663
|
-
|
|
28664
|
-
titleTestId: "injected-shelf-popup-header",
|
|
28665
|
-
popupTestId: "injected-shelf-popup",
|
|
29262
|
+
onpick: pick,
|
|
28666
29263
|
get open() {
|
|
28667
29264
|
return open;
|
|
28668
29265
|
},
|
|
28669
29266
|
set open($$value) {
|
|
28670
29267
|
open = $$value;
|
|
28671
29268
|
$$settled = false;
|
|
28672
|
-
}
|
|
28673
|
-
children: ($$renderer) => {
|
|
28674
|
-
$$renderer.push(`<!--[-->`);
|
|
28675
|
-
const each_array = ensure_array_like(members());
|
|
28676
|
-
for (let i = 0, $$length = each_array.length; i < $$length; i++) {
|
|
28677
|
-
let m = each_array[i];
|
|
28678
|
-
if (i > 0 && members()[i - 1].firstLoad === true && m.firstLoad === false) {
|
|
28679
|
-
$$renderer.push("<!--[0-->");
|
|
28680
|
-
$$renderer.push(`<hr class="shelf-divider svelte-1la1glg" data-testid="shelf-first-load-divider"/>`);
|
|
28681
|
-
} else $$renderer.push("<!--[-1-->");
|
|
28682
|
-
$$renderer.push(`<!--]--> <div class="shelf-item svelte-1la1glg" data-testid="injected-shelf-item"${attr("data-display-path", m.displayPath)}>`);
|
|
28683
|
-
CopyButton($$renderer, {
|
|
28684
|
-
value: m.origin === "system-prompt" ? injectedRecordFor(entries, m.displayPath)?.text ?? m.displayPath : injectedFullPath(workspace, m.displayPath),
|
|
28685
|
-
title: m.origin === "system-prompt" ? "Copy prompt text — a shelf name, not a file" : "Copy full path",
|
|
28686
|
-
class: "shelf-copy"
|
|
28687
|
-
});
|
|
28688
|
-
$$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>`);
|
|
28689
|
-
}
|
|
28690
|
-
$$renderer.push(`<!--]-->`);
|
|
28691
|
-
},
|
|
28692
|
-
$$slots: { default: true }
|
|
29269
|
+
}
|
|
28693
29270
|
});
|
|
28694
29271
|
$$renderer.push(`<!----></div>`);
|
|
28695
29272
|
} else $$renderer.push("<!--[-1-->");
|
|
@@ -28715,18 +29292,24 @@ function ConversationFloatingAnchor($$renderer, $$props) {
|
|
|
28715
29292
|
* far-edge jump. Purely presentational — the viewport and turn groups
|
|
28716
29293
|
* arrive as props.
|
|
28717
29294
|
*/
|
|
28718
|
-
let { groups, container, todos = null, shelfentries = void 0, shelfworkspace = null} = $$props;
|
|
29295
|
+
let { groups, container, todos = null, jobsessionid = "", shelfentries = void 0, shelfsessionid = "", shelfworkspace = null, shelfpanelid = null, onshelfnote } = $$props;
|
|
28719
29296
|
if (container !== void 0) {
|
|
28720
29297
|
$$renderer.push("<!--[0-->");
|
|
28721
29298
|
FloatingAnchor($$renderer, {
|
|
28722
29299
|
children: ($$renderer) => {
|
|
28723
29300
|
PlanButton($$renderer, { todos: todos ?? [] });
|
|
28724
29301
|
$$renderer.push(`<!----> `);
|
|
29302
|
+
JobsButton($$renderer, { sessionId: jobsessionid });
|
|
29303
|
+
$$renderer.push(`<!----> `);
|
|
28725
29304
|
if (shelfentries !== void 0) {
|
|
28726
29305
|
$$renderer.push("<!--[0-->");
|
|
28727
29306
|
InjectedShelfButton($$renderer, {
|
|
28728
29307
|
entries: shelfentries,
|
|
28729
|
-
|
|
29308
|
+
sessionId: shelfsessionid,
|
|
29309
|
+
workspace: shelfworkspace,
|
|
29310
|
+
panelId: shelfpanelid,
|
|
29311
|
+
onnote: onshelfnote
|
|
29312
|
+
});
|
|
28730
29313
|
} else $$renderer.push("<!--[-1-->");
|
|
28731
29314
|
$$renderer.push(`<!--]--> `);
|
|
28732
29315
|
UserMessagesButton($$renderer, {
|
|
@@ -30178,8 +30761,13 @@ function ConversationPanel($$renderer, $$props) {
|
|
|
30178
30761
|
groups: groups(),
|
|
30179
30762
|
container: viewport,
|
|
30180
30763
|
todos: store.todos ?? null,
|
|
30764
|
+
jobsessionid: sessionId,
|
|
30181
30765
|
shelfentries: store.entries,
|
|
30182
|
-
|
|
30766
|
+
shelfsessionid: sessionId,
|
|
30767
|
+
shelfworkspace: workspace,
|
|
30768
|
+
shelfpanelid: panelId,
|
|
30769
|
+
onshelfnote: (ok, note) => ladder.noteCommand(ok ? "ok" : "error", note)
|
|
30770
|
+
});
|
|
30183
30771
|
$$renderer.push(`<!----> `);
|
|
30184
30772
|
A2aChipStack($$renderer, {
|
|
30185
30773
|
rows: a2aRows,
|
|
@@ -33563,4 +34151,4 @@ function _page($$renderer, $$props) {
|
|
|
33563
34151
|
}
|
|
33564
34152
|
|
|
33565
34153
|
export { _page as default };
|
|
33566
|
-
//# sourceMappingURL=_page.svelte.js-
|
|
34154
|
+
//# sourceMappingURL=_page.svelte.js-BoCqON33.js.map
|