dsh-reasoning-distill 0.1.0 → 0.1.2
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/CHANGELOG.md +6 -0
- package/README.md +2 -0
- package/lib/client/index.js +116 -70
- package/lib/client/index.js.map +1 -1
- package/package.json +1 -1
- package/scripts/dsh-inplace-patch.mjs +11 -5
- package/scripts/install-backend.sh +29 -2
- package/scripts/lib/dsh-paths.mjs +37 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
本插件的版本变更记录。
|
|
4
4
|
|
|
5
|
+
## 0.1.1
|
|
6
|
+
|
|
7
|
+
- 修复打包版 DSH(例如 dsh-desktop)上 message-edit 后端装不上的问题:安装步骤改为直接调用该安装自带的 dsh CLI(`lib/bin.js`),而不是 `pnpm dsh`——后者会先在只读的打包目录里运行 pnpm 的依赖检查,并以 EACCES 失败。
|
|
8
|
+
- in-place 后端在打包版安装上给出明确原因(只有 `node_modules`、没有源码、无法打补丁),不再只报「找不到 checkout」。
|
|
9
|
+
- 「让 agent 安装」在无法自动打开新会话(外壳不提供工作区或会话入口)时,改为给出可复制的安装提示词,而不是一个点了没反应的禁用按钮。
|
|
10
|
+
|
|
5
11
|
## 0.1.0
|
|
6
12
|
|
|
7
13
|
首个版本。
|
package/README.md
CHANGED
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
- 好处:不新建分支、不产生额外会话,对话列表和归档列表保持干净。
|
|
33
33
|
- 风险:这是修改 DSH 本体源码的补丁。**DSH 跨版本升级很容易出问题**——补丁按字面锚点匹配,任何一处对不上就整体拒绝,不会写一半。升级 DSH 前建议先回退,升级后再用 `--check` 复查、必要时重打;打不上就用 `--checkout <DSH 源码目录>` 指路,不要手工改宿主源码。
|
|
34
34
|
- 打完补丁需要重启 `dsh web` 才生效。回退:`node scripts/dsh-inplace-patch.mjs --revert --build`。
|
|
35
|
+
- **打包版 DSH 用不了这个后端**:像 dsh-desktop 这类把 harness 装成只读、只有 `node_modules` 而没有源码的安装,没有可写的源码树可以打补丁;这类安装请用 message-edit。
|
|
35
36
|
|
|
36
37
|
### 旧后端 `message-edit`(保留兼容,不推荐)
|
|
37
38
|
|
|
@@ -42,6 +43,7 @@
|
|
|
42
43
|
- 它是分支型后端,**不能承接委派**:选中它时两条子代理开关会被强制关闭并锁定;再加上默认「有后台工作/子代理时不压缩」,因此**在有后台任务或子代理的会话里无法使用**。
|
|
43
44
|
- 当前**测试不充分**,行为不保证。
|
|
44
45
|
- 本仓库通过 `vendor/dsh-message-edit-0.2.3-patched4.tgz` 加 `scripts/patch-message-edit.py` 来安装与修补它;装完同样要重启 `dsh web`。
|
|
46
|
+
- 它是**打包版 DSH(例如 dsh-desktop)唯一可用的后端**:只装进 profile,不需要给宿主打补丁。
|
|
45
47
|
|
|
46
48
|
#### (旧)`message-edit` 后端安装流程
|
|
47
49
|
|
package/lib/client/index.js
CHANGED
|
@@ -278,7 +278,7 @@ window.__ModuleLoader__.load({
|
|
|
278
278
|
"install.stepBackend": "1. 选择要安装的后端",
|
|
279
279
|
"install.stepMode": "2. 选择安装方式",
|
|
280
280
|
"install.note.message-edit": "本仓库唯一验证过的后端:脚本 = 装 patched4 包 + 打补丁 + 校验安装件与 vendor 逐字节一致。",
|
|
281
|
-
"install.note.in-place": "本插件内置的后端:快速安装就是给 DSH 本体打补丁(scripts/dsh-inplace-patch.mjs --apply --build),不安装任何包;打完补丁后需要重启 dsh web
|
|
281
|
+
"install.note.in-place": "本插件内置的后端:快速安装就是给 DSH 本体打补丁(scripts/dsh-inplace-patch.mjs --apply --build),不安装任何包;打完补丁后需要重启 dsh web。它需要可写的 DSH 源码树——打包版(如 dsh-desktop)没有源码,用不了这个后端。",
|
|
282
282
|
"install.mode.script": "用脚本安装(推荐)",
|
|
283
283
|
"install.mode.script.pros": "优点:走本仓库验证过的固定流程——可复现、逐步进度、随时取消,完成后自动校验一致性。",
|
|
284
284
|
"install.mode.script.cons": "局限:需要本机有对应工具(message-edit 要 pnpm 与 python3;内置 in-place 只需 node);失败时只给你日志,不会自己排错。",
|
|
@@ -287,6 +287,10 @@ window.__ModuleLoader__.load({
|
|
|
287
287
|
"install.mode.agent.cons": "局限:结果不保证;会真实消耗额度并改动文件,需要你审阅它的结论。",
|
|
288
288
|
"install.start": "开始安装",
|
|
289
289
|
"install.cancel": "取消安装",
|
|
290
|
+
"install.copyPrompt": "复制提示词",
|
|
291
|
+
"install.copied": "已复制",
|
|
292
|
+
"install.copyFailed": "复制失败,请手动全选下面的提示词。",
|
|
293
|
+
"install.agentCopyHint": "也可以直接复制下面的提示词,粘贴到任意一个会话发送,效果与 agent 安装相同。",
|
|
290
294
|
"install.stepPending": "待执行",
|
|
291
295
|
"install.stepRunning": "进行中",
|
|
292
296
|
"install.stepDone": "完成",
|
|
@@ -303,7 +307,7 @@ window.__ModuleLoader__.load({
|
|
|
303
307
|
"install.agentNoWorkspace": "还没有工作区:请先在 DSH 里添加一个工作区。",
|
|
304
308
|
"install.agentGo": "在新会话中继续",
|
|
305
309
|
"install.agentHint": "会跳到该工作区的新会话,并把安装该后端所需的提示词填进输入框;发不发由你决定。",
|
|
306
|
-
"install.agentStarted": "
|
|
310
|
+
"install.agentStarted": "已请求在新会话中填入提示词;如果界面没有出现新会话,请直接复制下方提示词。",
|
|
307
311
|
"view.branchCreated": "已创建分支",
|
|
308
312
|
"view.branchKept": "已按原会话继续",
|
|
309
313
|
"settings.backend": "助手消息改写后端(单选)",
|
|
@@ -491,7 +495,7 @@ window.__ModuleLoader__.load({
|
|
|
491
495
|
"install.stepBackend": "1. Pick the backend",
|
|
492
496
|
"install.stepMode": "2. Pick how to install it",
|
|
493
497
|
"install.note.message-edit": "The only backend this repository has verified: the script installs the patched4 package, applies the patch and checks the installed bundle against vendor byte for byte.",
|
|
494
|
-
"install.note.in-place": "The backend built into this plugin: quick-installing it means patching the DSH host itself (scripts/dsh-inplace-patch.mjs --apply --build). Nothing is installed as a package, and dsh web has to be restarted afterwards.",
|
|
498
|
+
"install.note.in-place": "The backend built into this plugin: quick-installing it means patching the DSH host itself (scripts/dsh-inplace-patch.mjs --apply --build). Nothing is installed as a package, and dsh web has to be restarted afterwards. It needs a writable DSH source tree — a packaged build (dsh-desktop, for instance) has none, so this backend cannot be used there.",
|
|
495
499
|
"install.mode.script": "Install with the script (recommended)",
|
|
496
500
|
"install.mode.script.pros": "Pros: the verified fixed procedure — reproducible, step by step progress, cancellable, and it verifies the result.",
|
|
497
501
|
"install.mode.script.cons": "Limits: needs the right local tools (message-edit needs pnpm and python3; the built-in in-place install only needs node); on failure it hands you the log rather than debugging itself.",
|
|
@@ -500,6 +504,10 @@ window.__ModuleLoader__.load({
|
|
|
500
504
|
"install.mode.agent.cons": "Limits: no guarantee; it spends real budget and edits files, so you must review its conclusions.",
|
|
501
505
|
"install.start": "Start install",
|
|
502
506
|
"install.cancel": "Cancel install",
|
|
507
|
+
"install.copyPrompt": "Copy prompt",
|
|
508
|
+
"install.copied": "Copied",
|
|
509
|
+
"install.copyFailed": "Copy failed — select the prompt below manually.",
|
|
510
|
+
"install.agentCopyHint": "You can also copy the prompt below and paste it into any session — it does the same thing as the agent install.",
|
|
503
511
|
"install.stepPending": "pending",
|
|
504
512
|
"install.stepRunning": "running",
|
|
505
513
|
"install.stepDone": "done",
|
|
@@ -516,7 +524,7 @@ window.__ModuleLoader__.load({
|
|
|
516
524
|
"install.agentNoWorkspace": "No workspace yet: add one in DSH first.",
|
|
517
525
|
"install.agentGo": "Continue in a new session",
|
|
518
526
|
"install.agentHint": "Opens a new session in that workspace with the install prompt filled into the composer; sending it is your call.",
|
|
519
|
-
"install.agentStarted": "
|
|
527
|
+
"install.agentStarted": "A new session was asked to open with the prompt; if nothing appeared, copy the prompt below.",
|
|
520
528
|
"view.branchCreated": "Branch created",
|
|
521
529
|
"view.branchKept": "the original conversation carried on",
|
|
522
530
|
"settings.backend": "Assistant-rewrite backend (one)",
|
|
@@ -1312,47 +1320,47 @@ window.__ModuleLoader__.load({
|
|
|
1312
1320
|
}
|
|
1313
1321
|
var Settings_module_css_default = {
|
|
1314
1322
|
"checks": "jP3NOa_checks",
|
|
1315
|
-
"
|
|
1316
|
-
"
|
|
1317
|
-
"installBlock": "jP3NOa_installBlock",
|
|
1318
|
-
"search": "jP3NOa_search",
|
|
1323
|
+
"field": "jP3NOa_field",
|
|
1324
|
+
"item": "jP3NOa_item",
|
|
1319
1325
|
"note": "jP3NOa_note",
|
|
1326
|
+
"installEntry": "jP3NOa_installEntry",
|
|
1327
|
+
"modalHead": "jP3NOa_modalHead",
|
|
1320
1328
|
"muted": "jP3NOa_muted",
|
|
1321
|
-
"
|
|
1322
|
-
"rule": "jP3NOa_rule",
|
|
1323
|
-
"sectionHeading": "jP3NOa_sectionHeading",
|
|
1324
|
-
"item": "jP3NOa_item",
|
|
1325
|
-
"modeCards": "jP3NOa_modeCards",
|
|
1326
|
-
"primary": "jP3NOa_primary",
|
|
1327
|
-
"pickerItem": "jP3NOa_pickerItem",
|
|
1328
|
-
"actions": "jP3NOa_actions",
|
|
1329
|
+
"search": "jP3NOa_search",
|
|
1329
1330
|
"modalBody": "jP3NOa_modalBody",
|
|
1330
|
-
"pickerList": "jP3NOa_pickerList",
|
|
1331
|
-
"steps": "jP3NOa_steps",
|
|
1332
|
-
"installProgress": "jP3NOa_installProgress",
|
|
1333
1331
|
"modalBackdrop": "jP3NOa_modalBackdrop",
|
|
1334
|
-
"
|
|
1335
|
-
"
|
|
1336
|
-
"
|
|
1332
|
+
"primary": "jP3NOa_primary",
|
|
1333
|
+
"backendOptions": "jP3NOa_backendOptions",
|
|
1334
|
+
"sectionHeading": "jP3NOa_sectionHeading",
|
|
1335
|
+
"actions": "jP3NOa_actions",
|
|
1336
|
+
"modeCards": "jP3NOa_modeCards",
|
|
1337
1337
|
"toggle": "jP3NOa_toggle",
|
|
1338
|
+
"rule": "jP3NOa_rule",
|
|
1339
|
+
"pickerPanel": "jP3NOa_pickerPanel",
|
|
1340
|
+
"priceGrid": "jP3NOa_priceGrid",
|
|
1338
1341
|
"header": "jP3NOa_header",
|
|
1339
|
-
"
|
|
1342
|
+
"itemBody": "jP3NOa_itemBody",
|
|
1340
1343
|
"logBox": "jP3NOa_logBox",
|
|
1341
|
-
"
|
|
1342
|
-
"
|
|
1343
|
-
"
|
|
1344
|
-
"log": "jP3NOa_log",
|
|
1344
|
+
"modal": "jP3NOa_modal",
|
|
1345
|
+
"pickerItem": "jP3NOa_pickerItem",
|
|
1346
|
+
"holidayBox": "jP3NOa_holidayBox",
|
|
1345
1347
|
"modeCard": "jP3NOa_modeCard",
|
|
1346
|
-
"page": "jP3NOa_page",
|
|
1347
|
-
"preview": "jP3NOa_preview",
|
|
1348
|
-
"field": "jP3NOa_field",
|
|
1349
1348
|
"picker": "jP3NOa_picker",
|
|
1350
|
-
"
|
|
1351
|
-
"
|
|
1352
|
-
"
|
|
1349
|
+
"pickerList": "jP3NOa_pickerList",
|
|
1350
|
+
"iconButton": "jP3NOa_iconButton",
|
|
1351
|
+
"badge": "jP3NOa_badge",
|
|
1352
|
+
"section": "jP3NOa_section",
|
|
1353
|
+
"preview": "jP3NOa_preview",
|
|
1354
|
+
"route": "jP3NOa_route",
|
|
1353
1355
|
"error": "jP3NOa_error",
|
|
1354
|
-
"
|
|
1355
|
-
"secondary": "jP3NOa_secondary"
|
|
1356
|
+
"installBlock": "jP3NOa_installBlock",
|
|
1357
|
+
"secondary": "jP3NOa_secondary",
|
|
1358
|
+
"steps": "jP3NOa_steps",
|
|
1359
|
+
"log": "jP3NOa_log",
|
|
1360
|
+
"peakBox": "jP3NOa_peakBox",
|
|
1361
|
+
"page": "jP3NOa_page",
|
|
1362
|
+
"prompt": "jP3NOa_prompt",
|
|
1363
|
+
"installProgress": "jP3NOa_installProgress"
|
|
1356
1364
|
};
|
|
1357
1365
|
//#endregion
|
|
1358
1366
|
//#region src/client/InstallBackend.tsx
|
|
@@ -1405,6 +1413,7 @@ window.__ModuleLoader__.load({
|
|
|
1405
1413
|
const [error, setError] = (0, react.useState)("");
|
|
1406
1414
|
const [notice, setNotice] = (0, react.useState)("");
|
|
1407
1415
|
const [workspaceId, setWorkspaceId] = (0, react.useState)("");
|
|
1416
|
+
const [copied, setCopied] = (0, react.useState)(false);
|
|
1408
1417
|
const bridge = currentInstallBridge();
|
|
1409
1418
|
const workspaces = bridge?.workspaces() ?? [];
|
|
1410
1419
|
(0, react.useEffect)(() => {
|
|
@@ -1479,12 +1488,26 @@ window.__ModuleLoader__.load({
|
|
|
1479
1488
|
setError(reason instanceof Error ? reason.message : String(reason));
|
|
1480
1489
|
}
|
|
1481
1490
|
};
|
|
1491
|
+
/** The prompt the agent route would seed, or an empty string while the host is unknown. */
|
|
1492
|
+
const agentPrompt = status === null ? "" : installPromptFor(backendId, status.repo);
|
|
1493
|
+
const canOpenSession = bridge !== void 0 && workspaces.length > 0 && status !== null;
|
|
1482
1494
|
/** Seed a new Session in the chosen Workspace with the agent prompt. */
|
|
1483
1495
|
const useAgent = () => {
|
|
1484
|
-
if (bridge === void 0 ||
|
|
1485
|
-
bridge.startSession(workspaceId,
|
|
1496
|
+
if (!canOpenSession || bridge === void 0 || workspaceId === "") return;
|
|
1497
|
+
bridge.startSession(workspaceId, agentPrompt);
|
|
1486
1498
|
setNotice(t("install.agentStarted"));
|
|
1487
1499
|
};
|
|
1500
|
+
/** Copy the prompt so it can be pasted into any session by hand. */
|
|
1501
|
+
const copyPrompt = async () => {
|
|
1502
|
+
setNotice("");
|
|
1503
|
+
try {
|
|
1504
|
+
await navigator.clipboard.writeText(agentPrompt);
|
|
1505
|
+
setCopied(true);
|
|
1506
|
+
setTimeout(() => setCopied(false), 2e3);
|
|
1507
|
+
} catch {
|
|
1508
|
+
setError(t("install.copyFailed"));
|
|
1509
|
+
}
|
|
1510
|
+
};
|
|
1488
1511
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
1489
1512
|
className: Settings_module_css_default.modalBackdrop,
|
|
1490
1513
|
role: "dialog",
|
|
@@ -1630,7 +1653,7 @@ window.__ModuleLoader__.load({
|
|
|
1630
1653
|
className: Settings_module_css_default.note,
|
|
1631
1654
|
children: t("install.agentNoWorkspace")
|
|
1632
1655
|
}),
|
|
1633
|
-
|
|
1656
|
+
canOpenSession && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
1634
1657
|
className: Settings_module_css_default.field,
|
|
1635
1658
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: t("install.agentWorkspace") }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
|
|
1636
1659
|
value: workspaceId,
|
|
@@ -1647,20 +1670,43 @@ window.__ModuleLoader__.load({
|
|
|
1647
1670
|
}, workspace.id))]
|
|
1648
1671
|
})]
|
|
1649
1672
|
}),
|
|
1650
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
1673
|
+
canOpenSession && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
1651
1674
|
className: Settings_module_css_default.actions,
|
|
1652
1675
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
1653
1676
|
type: "button",
|
|
1654
1677
|
className: Settings_module_css_default.primary,
|
|
1655
|
-
disabled:
|
|
1678
|
+
disabled: workspaceId === "",
|
|
1656
1679
|
onClick: useAgent,
|
|
1657
1680
|
children: t("install.agentGo")
|
|
1658
1681
|
})
|
|
1659
1682
|
}),
|
|
1660
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
1683
|
+
canOpenSession && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
1661
1684
|
className: Settings_module_css_default.note,
|
|
1662
1685
|
children: t("install.agentHint")
|
|
1663
|
-
})
|
|
1686
|
+
}),
|
|
1687
|
+
agentPrompt !== "" && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
|
|
1688
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
1689
|
+
className: Settings_module_css_default.note,
|
|
1690
|
+
children: t("install.agentCopyHint")
|
|
1691
|
+
}),
|
|
1692
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("textarea", {
|
|
1693
|
+
className: Settings_module_css_default.prompt,
|
|
1694
|
+
readOnly: true,
|
|
1695
|
+
value: agentPrompt,
|
|
1696
|
+
onFocus: (event) => event.currentTarget.select()
|
|
1697
|
+
}),
|
|
1698
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
1699
|
+
className: Settings_module_css_default.actions,
|
|
1700
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
1701
|
+
type: "button",
|
|
1702
|
+
className: Settings_module_css_default.secondary,
|
|
1703
|
+
onClick: () => {
|
|
1704
|
+
copyPrompt();
|
|
1705
|
+
},
|
|
1706
|
+
children: copied ? t("install.copied") : t("install.copyPrompt")
|
|
1707
|
+
})
|
|
1708
|
+
})
|
|
1709
|
+
] })
|
|
1664
1710
|
]
|
|
1665
1711
|
}),
|
|
1666
1712
|
error !== "" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
@@ -2739,41 +2785,41 @@ window.__ModuleLoader__.load({
|
|
|
2739
2785
|
document.head.appendChild(tag);
|
|
2740
2786
|
}
|
|
2741
2787
|
var View_module_css_default = {
|
|
2742
|
-
"
|
|
2743
|
-
"
|
|
2788
|
+
"summary": "_7CZWHG_summary",
|
|
2789
|
+
"muted": "_7CZWHG_muted",
|
|
2790
|
+
"error": "_7CZWHG_error",
|
|
2791
|
+
"popupRow": "_7CZWHG_popupRow",
|
|
2792
|
+
"textBlock": "_7CZWHG_textBlock",
|
|
2793
|
+
"header": "_7CZWHG_header",
|
|
2794
|
+
"activityDotBlocked": "_7CZWHG_activityDotBlocked",
|
|
2795
|
+
"popupActions": "_7CZWHG_popupActions",
|
|
2796
|
+
"activityWhy": "_7CZWHG_activityWhy",
|
|
2744
2797
|
"headerTrigger": "_7CZWHG_headerTrigger",
|
|
2745
|
-
"
|
|
2798
|
+
"page": "_7CZWHG_page",
|
|
2799
|
+
"metric": "_7CZWHG_metric",
|
|
2800
|
+
"section": "_7CZWHG_section",
|
|
2801
|
+
"sessionInfo": "_7CZWHG_sessionInfo",
|
|
2802
|
+
"iconButton": "_7CZWHG_iconButton",
|
|
2803
|
+
"popup": "_7CZWHG_popup",
|
|
2804
|
+
"activityDot": "_7CZWHG_activityDot",
|
|
2805
|
+
"actions": "_7CZWHG_actions",
|
|
2806
|
+
"popupFacts": "_7CZWHG_popupFacts",
|
|
2746
2807
|
"activity": "_7CZWHG_activity",
|
|
2747
|
-
"
|
|
2808
|
+
"note": "_7CZWHG_note",
|
|
2809
|
+
"facts": "_7CZWHG_facts",
|
|
2748
2810
|
"entryBody": "_7CZWHG_entryBody",
|
|
2749
2811
|
"negative": "_7CZWHG_negative",
|
|
2750
|
-
"popup": "_7CZWHG_popup",
|
|
2751
|
-
"note": "_7CZWHG_note",
|
|
2752
|
-
"entry": "_7CZWHG_entry",
|
|
2753
|
-
"sessionInfo": "_7CZWHG_sessionInfo",
|
|
2754
|
-
"positive": "_7CZWHG_positive",
|
|
2755
2812
|
"entryTitle": "_7CZWHG_entryTitle",
|
|
2756
|
-
"
|
|
2757
|
-
"
|
|
2758
|
-
"activityDot": "_7CZWHG_activityDot",
|
|
2759
|
-
"summary": "_7CZWHG_summary",
|
|
2760
|
-
"header": "_7CZWHG_header",
|
|
2761
|
-
"popupHead": "_7CZWHG_popupHead",
|
|
2762
|
-
"blockedBanner": "_7CZWHG_blockedBanner",
|
|
2763
|
-
"popupFacts": "_7CZWHG_popupFacts",
|
|
2764
|
-
"actions": "_7CZWHG_actions",
|
|
2765
|
-
"muted": "_7CZWHG_muted",
|
|
2766
|
-
"popupRow": "_7CZWHG_popupRow",
|
|
2767
|
-
"iconButton": "_7CZWHG_iconButton",
|
|
2768
|
-
"popupActions": "_7CZWHG_popupActions",
|
|
2813
|
+
"secondary": "_7CZWHG_secondary",
|
|
2814
|
+
"entry": "_7CZWHG_entry",
|
|
2769
2815
|
"sessionRow": "_7CZWHG_sessionRow",
|
|
2770
|
-
"activityWhy": "_7CZWHG_activityWhy",
|
|
2771
|
-
"error": "_7CZWHG_error",
|
|
2772
|
-
"activityDotBlocked": "_7CZWHG_activityDotBlocked",
|
|
2773
|
-
"activityLabel": "_7CZWHG_activityLabel",
|
|
2774
2816
|
"rdPulse": "_7CZWHG_rdPulse",
|
|
2775
|
-
"
|
|
2776
|
-
"
|
|
2817
|
+
"blockedBanner": "_7CZWHG_blockedBanner",
|
|
2818
|
+
"popupList": "_7CZWHG_popupList",
|
|
2819
|
+
"positive": "_7CZWHG_positive",
|
|
2820
|
+
"activityLabel": "_7CZWHG_activityLabel",
|
|
2821
|
+
"activeRow": "_7CZWHG_activeRow",
|
|
2822
|
+
"popupHead": "_7CZWHG_popupHead"
|
|
2777
2823
|
};
|
|
2778
2824
|
//#endregion
|
|
2779
2825
|
//#region src/client/ActivityChip.tsx
|