@jingyi0605/codingns4dsh 0.2.1-rc.8 → 0.2.2-beta.1
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.en.md +5 -5
- package/README.md +6 -6
- package/data/build/dist/bootstrap/dsh-connection-adapter.d.ts +1 -1
- package/data/build/dist/bootstrap/dsh-connection-adapter.d.ts.map +1 -1
- package/data/build/dist/bootstrap/index.d.ts +1 -1
- package/data/build/dist/bootstrap/index.d.ts.map +1 -1
- package/data/build/dist/client/bundle.js +513 -715
- package/data/build/dist/client/bundle.js.map +1 -1
- package/data/build/dist/client/client.command-token.js +1 -2
- package/data/build/dist/client/client.delegate-command.js +4 -8
- package/data/build/dist/client/client.delegate-command.js.map +1 -1
- package/data/build/dist/client/client.editor-engine.js +266 -198
- package/data/build/dist/client/client.editor-engine.js.map +1 -1
- package/data/build/dist/client/client.magpie-model-tag.js +25 -50
- package/data/build/dist/client/client.magpie-model-tag.js.map +1 -1
- package/data/build/dist/client/client.rolldown-runtime.js +2 -3
- package/data/build/dist/client/client.xterm-engine.js +3 -6
- package/data/build/dist/client/client.xterm-engine.js.map +1 -1
- package/data/build/dist/client/features/file-management.d.ts.map +1 -1
- package/data/build/dist/client/features/file-management.js +6 -0
- package/data/build/dist/client/features/file-management.js.map +1 -1
- package/data/build/dist/client/features/plugin-update.d.ts.map +1 -1
- package/data/build/dist/client/features/plugin-update.js +6 -0
- package/data/build/dist/client/features/plugin-update.js.map +1 -1
- package/data/build/dist/client/features/session-translation.d.ts.map +1 -1
- package/data/build/dist/client/features/session-translation.js +6 -0
- package/data/build/dist/client/features/session-translation.js.map +1 -1
- package/data/build/dist/client/features/terminal-enhancement.d.ts.map +1 -1
- package/data/build/dist/client/features/terminal-enhancement.js +6 -0
- package/data/build/dist/client/features/terminal-enhancement.js.map +1 -1
- package/data/build/dist/client/features/workspace-session-enhancement.d.ts.map +1 -1
- package/data/build/dist/client/features/workspace-session-enhancement.js +6 -0
- package/data/build/dist/client/features/workspace-session-enhancement.js.map +1 -1
- package/data/build/dist/client/git-management.d.ts.map +1 -1
- package/data/build/dist/client/git-management.js +6 -0
- package/data/build/dist/client/git-management.js.map +1 -1
- package/data/build/dist/dsh-capabilities/client/primitives-adapter.d.ts +3 -1
- package/data/build/dist/dsh-capabilities/client/primitives-adapter.d.ts.map +1 -1
- package/data/build/dist/dsh-capabilities/host/session-prompt-adapter.d.ts +1 -1
- package/data/build/dist/dsh-capabilities/host/session-prompt-adapter.d.ts.map +1 -1
- package/data/build/dist/dsh-capabilities/host/session-prompt-adapter.js +36 -4
- package/data/build/dist/dsh-capabilities/host/session-prompt-adapter.js.map +1 -1
- package/data/build/dist/dsh-capabilities/matrix.d.ts.map +1 -1
- package/data/build/dist/dsh-capabilities/matrix.js +4 -5
- package/data/build/dist/dsh-capabilities/matrix.js.map +1 -1
- package/data/build/dist/dsh-capabilities/routes.js +6 -13
- package/data/build/dist/dsh-capabilities/routes.js.map +1 -1
- package/data/build/dist/features/index.d.ts +1 -1
- package/data/build/dist/features/index.d.ts.map +1 -1
- package/data/build/dist/features/registry.js +19 -0
- package/data/build/dist/features/registry.js.map +1 -1
- package/data/build/dist/host/cli-adapters/dsh-model-catalog.d.ts +11 -0
- package/data/build/dist/host/cli-adapters/dsh-model-catalog.d.ts.map +1 -0
- package/data/build/dist/host/cli-adapters/dsh-model-catalog.js +34 -0
- package/data/build/dist/host/cli-adapters/dsh-model-catalog.js.map +1 -0
- package/data/build/dist/host/cli-adapters/feature.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/feature.js +3 -1
- package/data/build/dist/host/cli-adapters/feature.js.map +1 -1
- package/data/build/dist/host/features/file-management.d.ts.map +1 -1
- package/data/build/dist/host/features/file-management.js +6 -0
- package/data/build/dist/host/features/file-management.js.map +1 -1
- package/data/build/dist/host/features/git-management.d.ts.map +1 -1
- package/data/build/dist/host/features/git-management.js +6 -0
- package/data/build/dist/host/features/git-management.js.map +1 -1
- package/data/build/dist/host/features/host-status.d.ts +8 -0
- package/data/build/dist/host/features/host-status.d.ts.map +1 -1
- package/data/build/dist/host/features/host-status.js +14 -0
- package/data/build/dist/host/features/host-status.js.map +1 -1
- package/data/build/dist/host/features/plugin-update.d.ts.map +1 -1
- package/data/build/dist/host/features/plugin-update.js +6 -0
- package/data/build/dist/host/features/plugin-update.js.map +1 -1
- package/data/build/dist/host/features/session-prompt-translation.js +1 -1
- package/data/build/dist/host/features/session-prompt-translation.js.map +1 -1
- package/data/build/dist/host/features/session-title-optimization.d.ts.map +1 -1
- package/data/build/dist/host/features/session-title-optimization.js +6 -0
- package/data/build/dist/host/features/session-title-optimization.js.map +1 -1
- package/data/build/dist/host/features/session-translation.d.ts.map +1 -1
- package/data/build/dist/host/features/session-translation.js +6 -0
- package/data/build/dist/host/features/session-translation.js.map +1 -1
- package/data/build/dist/host/features/types.d.ts +3 -0
- package/data/build/dist/host/features/types.d.ts.map +1 -1
- package/data/build/dist/host/index.d.ts.map +1 -1
- package/data/build/dist/host/index.js +10 -1
- package/data/build/dist/host/index.js.map +1 -1
- package/data/build/dist/host/session-handle-eviction.d.ts +2 -0
- package/data/build/dist/host/session-handle-eviction.d.ts.map +1 -1
- package/data/build/dist/host/session-handle-eviction.js +21 -6
- package/data/build/dist/host/session-handle-eviction.js.map +1 -1
- package/data/build/dist/shared/contracts/errors.d.ts +2 -2
- package/data/build/dist/shared/contracts/errors.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/feature.d.ts +14 -0
- package/data/build/dist/shared/contracts/feature.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/host-status.d.ts +18 -0
- package/data/build/dist/shared/contracts/host-status.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/version.d.ts +4 -4
- package/data/build/dist/shared/contracts/version.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/version.js +3 -3
- package/data/build/dist/shared/contracts/version.js.map +1 -1
- package/package.json +35 -35
- package/profile/README.md +2 -2
- package/profile/package.json +3 -3
- package/profile/version.json +3 -3
- package/version.json +3 -3
|
@@ -6,7 +6,7 @@ window.__ModuleLoader__.load({
|
|
|
6
6
|
factory: () => { const require = __codingnsOwnerRequire;
|
|
7
7
|
var module = { exports: {} };
|
|
8
8
|
var exports = module.exports;
|
|
9
|
-
|
|
9
|
+
// src/client/command-token.ts
|
|
10
10
|
/** Returns the standalone slash opened by the operation menu when it is still in the draft. */
|
|
11
11
|
function bareSlashSpanAtCaret(draft, draftRev, selection) {
|
|
12
12
|
if (selection !== void 0 && selection.start !== selection.end) return void 0;
|
|
@@ -21,7 +21,6 @@ window.__ModuleLoader__.load({
|
|
|
21
21
|
draftRev
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
|
-
//#endregion
|
|
25
24
|
Object.defineProperty(exports, "bareSlashSpanAtCaret", {
|
|
26
25
|
enumerable: true,
|
|
27
26
|
get: function() {
|
|
@@ -42,7 +41,7 @@ window.__ModuleLoader__.load({
|
|
|
42
41
|
let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
43
42
|
_deepseek_ai_dsh_client_ui_primitives = require_rolldown_runtime.__toESM(_deepseek_ai_dsh_client_ui_primitives, 1);
|
|
44
43
|
let react = require("react");
|
|
45
|
-
|
|
44
|
+
// src/shared/provider-icon-resources.ts
|
|
46
45
|
/** Client 与 Host 共用固定资源目录;避开 Desktop 将 /assets 固定映射到应用安装目录的路径。 */
|
|
47
46
|
const PROVIDER_ICON_PATH = "/api/codingns/provider-icons/";
|
|
48
47
|
const PROVIDER_ICON_FILES = {
|
|
@@ -68,8 +67,7 @@ window.__ModuleLoader__.load({
|
|
|
68
67
|
antigravity: "antigravity.svg",
|
|
69
68
|
doubao: "doubao.png"
|
|
70
69
|
};
|
|
71
|
-
|
|
72
|
-
//#region src/client/locales/debug.ts
|
|
70
|
+
// src/client/locales/debug.ts
|
|
73
71
|
/**
|
|
74
72
|
* debug 域词典片段。
|
|
75
73
|
*
|
|
@@ -232,8 +230,7 @@ window.__ModuleLoader__.load({
|
|
|
232
230
|
"feature.debug.label": "工作区调试",
|
|
233
231
|
"feature.debug.description": "启动终端并检查服务"
|
|
234
232
|
};
|
|
235
|
-
|
|
236
|
-
//#region src/client/locales/fileWorkspace.ts
|
|
233
|
+
// src/client/locales/fileWorkspace.ts
|
|
237
234
|
/**
|
|
238
235
|
* fileWorkspace 域词典片段。
|
|
239
236
|
*
|
|
@@ -386,8 +383,7 @@ window.__ModuleLoader__.load({
|
|
|
386
383
|
"pwaPrompt.dismiss": "以后再说",
|
|
387
384
|
"pwaPrompt.iosHint": "点击「分享」→「添加到主屏幕」即可安装。"
|
|
388
385
|
};
|
|
389
|
-
|
|
390
|
-
//#region src/client/locales/git.ts
|
|
386
|
+
// src/client/locales/git.ts
|
|
391
387
|
/**
|
|
392
388
|
* git 域词典片段。
|
|
393
389
|
*
|
|
@@ -638,8 +634,7 @@ window.__ModuleLoader__.load({
|
|
|
638
634
|
"git.unknownTime": "未知时间",
|
|
639
635
|
"git.dateLabel": "{month}月{day}日"
|
|
640
636
|
};
|
|
641
|
-
|
|
642
|
-
//#region src/client/locales/panels.ts
|
|
637
|
+
// src/client/locales/panels.ts
|
|
643
638
|
/**
|
|
644
639
|
* panels 域词典片段。
|
|
645
640
|
*
|
|
@@ -866,8 +861,7 @@ window.__ModuleLoader__.load({
|
|
|
866
861
|
"translation.adapter.cursor": "Cursor",
|
|
867
862
|
"translation.adapter.kiro": "Kiro"
|
|
868
863
|
};
|
|
869
|
-
|
|
870
|
-
//#region src/client/locales/peerHost.ts
|
|
864
|
+
// src/client/locales/peerHost.ts
|
|
871
865
|
/**
|
|
872
866
|
* peerHost 域词典片段。
|
|
873
867
|
*
|
|
@@ -1036,8 +1030,7 @@ window.__ModuleLoader__.load({
|
|
|
1036
1030
|
"peerHost.stateActive": "preboot shim 已接管页面 Transport;本次页面的原生 Connection 将继续复用同一实例。",
|
|
1037
1031
|
"peerHost.statePending": "preboot shim 已随 CodingNS 安装;启用 PeerHost 后立即生效,原生工作区会直接读取聚合 Transport。"
|
|
1038
1032
|
};
|
|
1039
|
-
|
|
1040
|
-
//#region src/client/locales/peerHostWorkspace.ts
|
|
1033
|
+
// src/client/locales/peerHostWorkspace.ts
|
|
1041
1034
|
/**
|
|
1042
1035
|
* peerHostWorkspace 域词典片段。
|
|
1043
1036
|
*
|
|
@@ -1136,8 +1129,7 @@ window.__ModuleLoader__.load({
|
|
|
1136
1129
|
"peerHostWorkspace.hintNotReady": "“{host}”当前状态为“{status}”,请先在管理面板完成连接。",
|
|
1137
1130
|
"peerHostWorkspace.manageHosts": "管理其他 DSH Host"
|
|
1138
1131
|
};
|
|
1139
|
-
|
|
1140
|
-
//#region src/client/locales/terminalAuth.ts
|
|
1132
|
+
// src/client/locales/terminalAuth.ts
|
|
1141
1133
|
/**
|
|
1142
1134
|
* terminalAuth 域词典片段。
|
|
1143
1135
|
*
|
|
@@ -1290,8 +1282,7 @@ window.__ModuleLoader__.load({
|
|
|
1290
1282
|
"loginProtection.errorTimeoutRange": "会话超时时间必须是 60 到 604800 秒",
|
|
1291
1283
|
"loginProtection.errorScopesRequired": "至少选择一个应用范围"
|
|
1292
1284
|
};
|
|
1293
|
-
|
|
1294
|
-
//#region src/client/locales/usage.ts
|
|
1285
|
+
// src/client/locales/usage.ts
|
|
1295
1286
|
/**
|
|
1296
1287
|
* usage 域词典片段。
|
|
1297
1288
|
*
|
|
@@ -1724,8 +1715,7 @@ window.__ModuleLoader__.load({
|
|
|
1724
1715
|
"usage.magpieRequestsTitle": "Magpie 请求",
|
|
1725
1716
|
"usage.magpieRequestsClose": "关闭"
|
|
1726
1717
|
};
|
|
1727
|
-
|
|
1728
|
-
//#region src/client/locales/subagentCollapsed.ts
|
|
1718
|
+
// src/client/locales/subagentCollapsed.ts
|
|
1729
1719
|
/**
|
|
1730
1720
|
* subagentCollapsed 域词典片段。
|
|
1731
1721
|
*
|
|
@@ -1820,8 +1810,7 @@ window.__ModuleLoader__.load({
|
|
|
1820
1810
|
"subagentCollapsed.open.sidebar": "Open in sidebar",
|
|
1821
1811
|
"subagentCollapsed.open.sidebar.aria": "Open {label} in sidebar"
|
|
1822
1812
|
};
|
|
1823
|
-
|
|
1824
|
-
//#region src/shared/quick-apps-bootstrap-locale.ts
|
|
1813
|
+
// src/shared/quick-apps-bootstrap-locale.ts
|
|
1825
1814
|
/** Shared by the client dictionary and the isolated credential landing page. */
|
|
1826
1815
|
const quickAppBootstrapEn = {
|
|
1827
1816
|
"quickApps.opening": "Opening application…",
|
|
@@ -1831,8 +1820,7 @@ window.__ModuleLoader__.load({
|
|
|
1831
1820
|
"quickApps.opening": "正在打开应用…",
|
|
1832
1821
|
"quickApps.bootstrapFailed": "无法建立应用访问,请从快捷应用重新打开并检查浏览器 Cookie 设置。"
|
|
1833
1822
|
};
|
|
1834
|
-
|
|
1835
|
-
//#region src/client/locales/quickApps.ts
|
|
1823
|
+
// src/client/locales/quickApps.ts
|
|
1836
1824
|
const en$5 = {
|
|
1837
1825
|
"quickApps.storagePreview": "App data is saved in this browser. IndexedDB and URLs starting with / are not supported in this view.",
|
|
1838
1826
|
"quickApps.storageFailed": "App data could not be saved in this browser: {message}",
|
|
@@ -2099,8 +2087,7 @@ window.__ModuleLoader__.load({
|
|
|
2099
2087
|
"quickApps.status.missing-workspace": "原工作区不可用。",
|
|
2100
2088
|
"quickApps.status.missing-file": "入口文件或应用目录不存在或无法访问。"
|
|
2101
2089
|
};
|
|
2102
|
-
|
|
2103
|
-
//#region src/client/locales/cliManagement.ts
|
|
2090
|
+
// src/client/locales/cliManagement.ts
|
|
2104
2091
|
const en$4 = {
|
|
2105
2092
|
"cli.team.label": "Team eligibility",
|
|
2106
2093
|
"cli.team.leadAndMember": "Collaborator and Lead",
|
|
@@ -2255,8 +2242,7 @@ window.__ModuleLoader__.load({
|
|
|
2255
2242
|
"cli.manage.retryStatus": "重新查询状态",
|
|
2256
2243
|
"cli.manage.reviewAgain": "查看新的操作"
|
|
2257
2244
|
};
|
|
2258
|
-
|
|
2259
|
-
//#region src/client/locales/magpie.ts
|
|
2245
|
+
// src/client/locales/magpie.ts
|
|
2260
2246
|
/** Copy for the optional Magpie usage dashboard. */
|
|
2261
2247
|
const en$3 = {
|
|
2262
2248
|
"feature.magpieManagement.label": "Magpie management and usage",
|
|
@@ -2972,8 +2958,7 @@ window.__ModuleLoader__.load({
|
|
|
2972
2958
|
"magpie.install.customReset": "恢复自动检测",
|
|
2973
2959
|
"magpie.install.disabledNote": "检测到可用的 Magpie CLI 前,Magpie 管理保持关闭。"
|
|
2974
2960
|
};
|
|
2975
|
-
|
|
2976
|
-
//#region src/client/locales/pluginUpdate.ts
|
|
2961
|
+
// src/client/locales/pluginUpdate.ts
|
|
2977
2962
|
const en$2 = {
|
|
2978
2963
|
"update.localeTag": "en-US",
|
|
2979
2964
|
"update.newVersionBadge": "New",
|
|
@@ -3104,8 +3089,7 @@ window.__ModuleLoader__.load({
|
|
|
3104
3089
|
"update.package.rolled-back": "DSH 已恢复配置文件",
|
|
3105
3090
|
"update.package.unknown": "未知;请检查 DSH 原生插件页面"
|
|
3106
3091
|
};
|
|
3107
|
-
|
|
3108
|
-
//#region src/client/locales/credentials.ts
|
|
3092
|
+
// src/client/locales/credentials.ts
|
|
3109
3093
|
const en$1 = {
|
|
3110
3094
|
"feature.credentials.label": "Credential management",
|
|
3111
3095
|
"feature.credentials.description": "Store usernames, passwords, API keys, and other confidential values on the Host. Selected fields reach external Agent processes only through environment variables.",
|
|
@@ -3198,8 +3182,7 @@ window.__ModuleLoader__.load({
|
|
|
3198
3182
|
"credentials.commandDescription": "向当前外部 Agent 会话插入 Host 管理的凭据引用。",
|
|
3199
3183
|
"credentials.commandUnavailable": "无法插入此凭据引用。"
|
|
3200
3184
|
};
|
|
3201
|
-
|
|
3202
|
-
//#region src/client/locale.ts
|
|
3185
|
+
// src/client/locale.ts
|
|
3203
3186
|
/** Codingns4DSH 自有词典命名空间。词典缺少的语言由 DSH 自动回退到英文。 */
|
|
3204
3187
|
const CODINGNS_LOCALE_NS = "codingns";
|
|
3205
3188
|
const CORE_EN = {
|
|
@@ -4242,8 +4225,7 @@ window.__ModuleLoader__.load({
|
|
|
4242
4225
|
const adapterId = provider.slice(13);
|
|
4243
4226
|
return adapterId === "" ? void 0 : adapterId;
|
|
4244
4227
|
}
|
|
4245
|
-
|
|
4246
|
-
//#region src/client/provider-icons.ts
|
|
4228
|
+
// src/client/provider-icons.ts
|
|
4247
4229
|
/** 未绑定和未知 Agent 使用中性灰,绝不冒充任一已知品牌色。 */
|
|
4248
4230
|
const PROVIDER_NEUTRAL_COLOR = "#71717a";
|
|
4249
4231
|
/**
|
|
@@ -4545,12 +4527,10 @@ window.__ModuleLoader__.load({
|
|
|
4545
4527
|
if (/^(1|true|yes|on|info|debug)$/u.test(normalized)) return "info";
|
|
4546
4528
|
return "off";
|
|
4547
4529
|
}
|
|
4548
|
-
|
|
4549
|
-
//#region src/shared/contracts/transport.ts
|
|
4530
|
+
// src/shared/contracts/transport.ts
|
|
4550
4531
|
/** Codingns4DSH Host RPC 的固定逻辑通道。 */
|
|
4551
4532
|
const CODINGNS_RPC_CHANNEL = "/codingns";
|
|
4552
|
-
|
|
4553
|
-
//#region src/shared/contracts/peer-host.ts
|
|
4533
|
+
// src/shared/contracts/peer-host.ts
|
|
4554
4534
|
/**
|
|
4555
4535
|
* 工作区标签配色的取值范围。
|
|
4556
4536
|
*
|
|
@@ -4656,8 +4636,7 @@ window.__ModuleLoader__.load({
|
|
|
4656
4636
|
this.name = "ResourceScopeStaleError";
|
|
4657
4637
|
}
|
|
4658
4638
|
};
|
|
4659
|
-
|
|
4660
|
-
//#region src/client/cli-catalog.ts
|
|
4639
|
+
// src/client/cli-catalog.ts
|
|
4661
4640
|
/** 设置页和选择器使用同一状态文案,检测中或失败都不能显示成未安装。 */
|
|
4662
4641
|
function adapterDetectionLabel(adapter) {
|
|
4663
4642
|
if (adapter.detectionState === "pending" || adapter.detectionState === "running") return "cli.detecting";
|
|
@@ -4742,8 +4721,7 @@ window.__ModuleLoader__.load({
|
|
|
4742
4721
|
const message = errorMessage(error);
|
|
4743
4722
|
return /^未知 CLI RPC: cli\/catalog\/refresh$/u.test(message) ? t("cli.redetectHostUnsupported") : message;
|
|
4744
4723
|
}
|
|
4745
|
-
|
|
4746
|
-
//#region src/client/adapter-catalog-watch.ts
|
|
4724
|
+
// src/client/adapter-catalog-watch.ts
|
|
4747
4725
|
const loads = /* @__PURE__ */ new WeakMap();
|
|
4748
4726
|
const listeners = /* @__PURE__ */ new WeakMap();
|
|
4749
4727
|
/** 手动检测完成后,让已挂载的选择器和模型目录一起更新。 */
|
|
@@ -4836,8 +4814,7 @@ window.__ModuleLoader__.load({
|
|
|
4836
4814
|
remove();
|
|
4837
4815
|
};
|
|
4838
4816
|
}
|
|
4839
|
-
|
|
4840
|
-
//#region src/client/model-catalog-cache.ts
|
|
4817
|
+
// src/client/model-catalog-cache.ts
|
|
4841
4818
|
/**
|
|
4842
4819
|
* Client 侧模型目录缓存。
|
|
4843
4820
|
*
|
|
@@ -5010,8 +4987,7 @@ window.__ModuleLoader__.load({
|
|
|
5010
4987
|
}
|
|
5011
4988
|
return cache;
|
|
5012
4989
|
}
|
|
5013
|
-
|
|
5014
|
-
//#region src/dsh-capabilities/client/primitives-adapter.ts
|
|
4990
|
+
// src/dsh-capabilities/client/primitives-adapter.ts
|
|
5015
4991
|
/** Older primitive packages may lack Markdown delegation. Do not fail the whole footer. */
|
|
5016
4992
|
function hasNativeMarkdown(source = _deepseek_ai_dsh_client_ui_primitives) {
|
|
5017
4993
|
const value = source;
|
|
@@ -5205,8 +5181,7 @@ window.__ModuleLoader__.load({
|
|
|
5205
5181
|
ranked.sort((left, right) => Number(right.prefix) - Number(left.prefix) || right.score - left.score || left.index - right.index);
|
|
5206
5182
|
return ranked.map((match) => match.item);
|
|
5207
5183
|
}
|
|
5208
|
-
|
|
5209
|
-
//#region src/client/magpie-model-tag.ts
|
|
5184
|
+
// src/client/magpie-model-tag.ts
|
|
5210
5185
|
const MAGPIE_MODEL_TAG_ATTRIBUTE = "data-codingns-magpie-model-tag";
|
|
5211
5186
|
/**
|
|
5212
5187
|
* Magpie 模型来源标签使用的喜鹊图标。
|
|
@@ -5284,7 +5259,6 @@ window.__ModuleLoader__.load({
|
|
|
5284
5259
|
tag.append(logo);
|
|
5285
5260
|
return tag;
|
|
5286
5261
|
}
|
|
5287
|
-
//#endregion
|
|
5288
5262
|
Object.defineProperty(exports, "CODINGNS_RPC_CHANNEL", {
|
|
5289
5263
|
enumerable: true,
|
|
5290
5264
|
get: function() {
|
|
@@ -5637,14 +5611,14 @@ window.__ModuleLoader__.load({
|
|
|
5637
5611
|
factory: () => { const require = __codingnsOwnerRequire;
|
|
5638
5612
|
var module = { exports: {} };
|
|
5639
5613
|
var exports = module.exports;
|
|
5640
|
-
|
|
5614
|
+
// \0rolldown/runtime.js
|
|
5641
5615
|
var __create = Object.create;
|
|
5642
5616
|
var __defProp = Object.defineProperty;
|
|
5643
5617
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5644
5618
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5645
5619
|
var __getProtoOf = Object.getPrototypeOf;
|
|
5646
5620
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5647
|
-
var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
|
|
5621
|
+
var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod, mod.exports), cb = null), mod.exports);
|
|
5648
5622
|
var __exportAll = (all, no_symbols) => {
|
|
5649
5623
|
let target = {};
|
|
5650
5624
|
for (var name in all) __defProp(target, name, {
|
|
@@ -5668,7 +5642,6 @@ window.__ModuleLoader__.load({
|
|
|
5668
5642
|
value: mod,
|
|
5669
5643
|
enumerable: true
|
|
5670
5644
|
}) : target, mod));
|
|
5671
|
-
//#endregion
|
|
5672
5645
|
Object.defineProperty(exports, "__commonJSMin", {
|
|
5673
5646
|
enumerable: true,
|
|
5674
5647
|
get: function() {
|
|
@@ -5704,12 +5677,12 @@ window.__ModuleLoader__.load({
|
|
|
5704
5677
|
_deepseek_ai_dsh_client_ui_primitives = require_rolldown_runtime.__toESM(_deepseek_ai_dsh_client_ui_primitives, 1);
|
|
5705
5678
|
let react = require("react");
|
|
5706
5679
|
/** DSH 测试版本别名,供新代码表达语义,保留 DSH_VERSION 兼容旧调用方。 */
|
|
5707
|
-
const DSH_TESTED_VERSION = "0.2.
|
|
5680
|
+
const DSH_TESTED_VERSION = "0.2.2-alpha.2";
|
|
5708
5681
|
/**
|
|
5709
5682
|
* Only the minimum version blocks installation and activation.
|
|
5710
5683
|
* Hosts newer than DSH_TESTED_VERSION receive an advisory warning.
|
|
5711
5684
|
*/
|
|
5712
|
-
const DSH_COMPATIBILITY = ">=0.2.
|
|
5685
|
+
const DSH_COMPATIBILITY = ">=0.2.1-alpha.2";
|
|
5713
5686
|
/**
|
|
5714
5687
|
* 兼容范围下界,即插件仍然接受的最低 DSH 版本。
|
|
5715
5688
|
*
|
|
@@ -5718,7 +5691,7 @@ window.__ModuleLoader__.load({
|
|
|
5718
5691
|
* “不支持的 DSH 版本”,把仅仅缺少启动页注入的页面误判为宿主不兼容。
|
|
5719
5692
|
*/
|
|
5720
5693
|
function minimumSupportedDshVersion() {
|
|
5721
|
-
return /^>=([^ ]+)/u.exec(">=0.2.
|
|
5694
|
+
return /^>=([^ ]+)/u.exec(">=0.2.1-alpha.2")?.[1] ?? "0.2.2-alpha.2";
|
|
5722
5695
|
}
|
|
5723
5696
|
/** Host 注入到浏览器页面的真实 DSH 版本全局字段。 */
|
|
5724
5697
|
const CODINGNS_DSH_VERSION_GLOBAL = "__CODINGNS_DSH_VERSION__";
|
|
@@ -5727,7 +5700,7 @@ window.__ModuleLoader__.load({
|
|
|
5727
5700
|
return /^0\.1\.5(?:-|$)/u.test(version);
|
|
5728
5701
|
}
|
|
5729
5702
|
/** Codingns4DSH 插件自身的 npm 版本。 */
|
|
5730
|
-
const CODINGNS_VERSION = "0.2.
|
|
5703
|
+
const CODINGNS_VERSION = "0.2.2-beta.1";
|
|
5731
5704
|
/** Accept any valid host version at or above the supported minimum. */
|
|
5732
5705
|
function isDshVersionCompatible(version) {
|
|
5733
5706
|
return isDshVersionAtLeast(version, minimumSupportedDshVersion());
|
|
@@ -5783,12 +5756,10 @@ window.__ModuleLoader__.load({
|
|
|
5783
5756
|
}
|
|
5784
5757
|
return 0;
|
|
5785
5758
|
}
|
|
5786
|
-
|
|
5787
|
-
//#region src/client/provider-icon-assets.ts
|
|
5759
|
+
// src/client/provider-icon-assets.ts
|
|
5788
5760
|
/** 保留同步查询接口;浏览器仅在实际显示图标时请求图片,版本变化自动更新缓存。 */
|
|
5789
5761
|
require_magpie_model_tag.installProviderIcons(Object.fromEntries(Object.entries(require_magpie_model_tag.PROVIDER_ICON_FILES).map(([provider, filename]) => [provider, `${require_magpie_model_tag.PROVIDER_ICON_PATH}${filename}?v=${encodeURIComponent(CODINGNS_VERSION)}`])));
|
|
5790
|
-
|
|
5791
|
-
//#region src/features/registry.ts
|
|
5762
|
+
// src/features/registry.ts
|
|
5792
5763
|
var FeatureRegistryError = class extends Error {
|
|
5793
5764
|
code;
|
|
5794
5765
|
featureName;
|
|
@@ -6194,6 +6165,7 @@ window.__ModuleLoader__.load({
|
|
|
6194
6165
|
if (typeof descriptor.version !== "string" || descriptor.version.trim() === "") throw new FeatureRegistryError("FEATURE_INVALID_DESCRIPTOR", `Feature ${descriptor.name} requires a version`, descriptor.name);
|
|
6195
6166
|
if (typeof descriptor.enabledByDefault !== "boolean") throw new FeatureRegistryError("FEATURE_INVALID_DESCRIPTOR", `Feature ${descriptor.name} has invalid enabledByDefault`, descriptor.name);
|
|
6196
6167
|
if (descriptor.disabled !== void 0 && typeof descriptor.disabled !== "boolean") throw new FeatureRegistryError("FEATURE_INVALID_DESCRIPTOR", `Feature ${descriptor.name} has invalid disabled`, descriptor.name);
|
|
6168
|
+
if (descriptor.nativeReplacement !== void 0) validateNativeReplacement(descriptor);
|
|
6197
6169
|
if (descriptor.runtime !== "host" && descriptor.runtime !== "client" && descriptor.runtime !== "both") throw new FeatureRegistryError("FEATURE_INVALID_DESCRIPTOR", `Feature ${descriptor.name} has invalid runtime`, descriptor.name);
|
|
6198
6170
|
if (descriptor.activation !== void 0 && descriptor.activation !== "live" && descriptor.activation !== "restart") throw new FeatureRegistryError("FEATURE_INVALID_DESCRIPTOR", `Feature ${descriptor.name} has invalid activation`, descriptor.name);
|
|
6199
6171
|
if (descriptor.minimumDshVersion !== void 0 && (typeof descriptor.minimumDshVersion !== "string" || descriptor.minimumDshVersion.trim() === "")) throw new FeatureRegistryError("FEATURE_INVALID_DESCRIPTOR", `Feature ${descriptor.name} has invalid minimumDshVersion`, descriptor.name);
|
|
@@ -6215,6 +6187,14 @@ window.__ModuleLoader__.load({
|
|
|
6215
6187
|
if (new Set(descriptor.dependencies).size !== descriptor.dependencies.length) throw new FeatureRegistryError("FEATURE_INVALID_DESCRIPTOR", `Feature ${descriptor.name} has duplicate dependencies`, descriptor.name);
|
|
6216
6188
|
validateUiDescriptor(descriptor);
|
|
6217
6189
|
}
|
|
6190
|
+
function validateNativeReplacement(descriptor) {
|
|
6191
|
+
const replacement = descriptor.nativeReplacement;
|
|
6192
|
+
if (replacement === void 0) return;
|
|
6193
|
+
if (typeof replacement.dshFeature !== "string" || replacement.dshFeature.trim() === "") throw new FeatureRegistryError("FEATURE_INVALID_DESCRIPTOR", `Feature ${descriptor.name} has invalid nativeReplacement.dshFeature`, descriptor.name);
|
|
6194
|
+
if (typeof replacement.since !== "string" || replacement.since.trim() === "") throw new FeatureRegistryError("FEATURE_INVALID_DESCRIPTOR", `Feature ${descriptor.name} has invalid nativeReplacement.since`, descriptor.name);
|
|
6195
|
+
if (replacement.coverage !== "full" && replacement.coverage !== "partial") throw new FeatureRegistryError("FEATURE_INVALID_DESCRIPTOR", `Feature ${descriptor.name} has invalid nativeReplacement.coverage`, descriptor.name);
|
|
6196
|
+
if (typeof replacement.note !== "string" || replacement.note.trim() === "") throw new FeatureRegistryError("FEATURE_INVALID_DESCRIPTOR", `Feature ${descriptor.name} has invalid nativeReplacement.note`, descriptor.name);
|
|
6197
|
+
}
|
|
6218
6198
|
function validateUiDescriptor(descriptor) {
|
|
6219
6199
|
const ui = descriptor.ui;
|
|
6220
6200
|
if (ui === void 0) return;
|
|
@@ -6243,8 +6223,7 @@ window.__ModuleLoader__.load({
|
|
|
6243
6223
|
function errorMessage$3(error) {
|
|
6244
6224
|
return error instanceof Error ? error.message : String(error);
|
|
6245
6225
|
}
|
|
6246
|
-
|
|
6247
|
-
//#region src/shared/contracts/session-translation.ts
|
|
6226
|
+
// src/shared/contracts/session-translation.ts
|
|
6248
6227
|
const SESSION_TRANSLATION_ADAPTER_IDS = [
|
|
6249
6228
|
"command-code",
|
|
6250
6229
|
"claude-code",
|
|
@@ -6388,8 +6367,7 @@ window.__ModuleLoader__.load({
|
|
|
6388
6367
|
function asRecord$10(value) {
|
|
6389
6368
|
return typeof value === "object" && value !== null && !Array.isArray(value) ? value : null;
|
|
6390
6369
|
}
|
|
6391
|
-
|
|
6392
|
-
//#region src/shared/contracts/git.ts
|
|
6370
|
+
// src/shared/contracts/git.ts
|
|
6393
6371
|
const DEFAULT_GIT_MANAGEMENT_SETTINGS = {
|
|
6394
6372
|
commitMessageEnabled: true,
|
|
6395
6373
|
commitMessageDetail: "concise",
|
|
@@ -6418,8 +6396,7 @@ window.__ModuleLoader__.load({
|
|
|
6418
6396
|
})
|
|
6419
6397
|
};
|
|
6420
6398
|
}
|
|
6421
|
-
|
|
6422
|
-
//#region src/shared/contracts/config.ts
|
|
6399
|
+
// src/shared/contracts/config.ts
|
|
6423
6400
|
/** 并发子代理数上限:下限 1 保证至少能派发,上限避免一次性压垮本机。 */
|
|
6424
6401
|
const SUBAGENT_BRIDGE_MAX_CONCURRENT_LIMITS = {
|
|
6425
6402
|
min: 1,
|
|
@@ -6683,8 +6660,7 @@ window.__ModuleLoader__.load({
|
|
|
6683
6660
|
if (descriptor.minimumDshVersion === void 0 || dshVersion === void 0) return true;
|
|
6684
6661
|
return isDshVersionAtLeast(dshVersion, descriptor.minimumDshVersion);
|
|
6685
6662
|
}
|
|
6686
|
-
|
|
6687
|
-
//#region src/client/lan-access.ts
|
|
6663
|
+
// src/client/lan-access.ts
|
|
6688
6664
|
/**
|
|
6689
6665
|
* 确保目标页面拥有 `crypto.randomUUID`。
|
|
6690
6666
|
*
|
|
@@ -6744,8 +6720,7 @@ window.__ModuleLoader__.load({
|
|
|
6744
6720
|
function fillWithMathRandom(bytes) {
|
|
6745
6721
|
for (let index = 0; index < bytes.length; index += 1) bytes[index] = Math.floor(Math.random() * 256);
|
|
6746
6722
|
}
|
|
6747
|
-
|
|
6748
|
-
//#region src/client/pwa-install-prompt.ts
|
|
6723
|
+
// src/client/pwa-install-prompt.ts
|
|
6749
6724
|
/**
|
|
6750
6725
|
* 安装引导条。
|
|
6751
6726
|
*
|
|
@@ -6910,8 +6885,7 @@ window.__ModuleLoader__.load({
|
|
|
6910
6885
|
if (/iPad|iPhone|iPod/u.test(agent)) return true;
|
|
6911
6886
|
return /Macintosh/u.test(agent) && (navigatorLike?.maxTouchPoints ?? 0) > 1;
|
|
6912
6887
|
}
|
|
6913
|
-
|
|
6914
|
-
//#region src/client/mobile-rightbar-visibility.ts
|
|
6888
|
+
// src/client/mobile-rightbar-visibility.ts
|
|
6915
6889
|
/** 移动端右栏显示权只属于用户,标签恢复与会话持久化不能自行展开面板。 */
|
|
6916
6890
|
const MOBILE_RIGHTBAR_MANUAL_OPEN_EVENT = "codingns4dsh-mobile-rightbar-manual-open";
|
|
6917
6891
|
const MOBILE_RIGHTBAR_MANUAL_CLOSE_EVENT = "codingns4dsh-mobile-rightbar-manual-close";
|
|
@@ -7060,8 +7034,7 @@ window.__ModuleLoader__.load({
|
|
|
7060
7034
|
const parts = shortcut.toLowerCase().split("+");
|
|
7061
7035
|
return parts.pop() === event.key?.toLowerCase() && event.ctrlKey === parts.includes("control") && event.metaKey === parts.includes("meta") && event.altKey === parts.includes("alt") && event.shiftKey === parts.includes("shift");
|
|
7062
7036
|
}
|
|
7063
|
-
|
|
7064
|
-
//#region src/client/touch-input-focus.ts
|
|
7037
|
+
// src/client/touch-input-focus.ts
|
|
7065
7038
|
const INPUT_SELECTOR = "input, textarea, [contenteditable=\"\"], [contenteditable=\"true\"], [contenteditable=\"plaintext-only\"], [data-composer-input=\"true\"]";
|
|
7066
7039
|
const POPUP_SURFACE_SELECTOR = "[role=\"menu\"],[role=\"listbox\"],[role=\"dialog\"],[role=\"group\"],[aria-modal=\"true\"]";
|
|
7067
7040
|
const POPUP_ITEM_SELECTOR = "[role=\"menuitem\"],[role=\"menuitemradio\"],[role=\"menuitemcheckbox\"],[role=\"option\"]";
|
|
@@ -7260,8 +7233,7 @@ window.__ModuleLoader__.load({
|
|
|
7260
7233
|
y: point.clientY
|
|
7261
7234
|
} : null;
|
|
7262
7235
|
}
|
|
7263
|
-
|
|
7264
|
-
//#region src/client/mobile-session-interaction.ts
|
|
7236
|
+
// src/client/mobile-session-interaction.ts
|
|
7265
7237
|
/**
|
|
7266
7238
|
* 移动端会话交互修正。
|
|
7267
7239
|
*
|
|
@@ -7494,8 +7466,7 @@ window.__ModuleLoader__.load({
|
|
|
7494
7466
|
else root.style.setProperty(FONT_BASE_VARIABLE, previous);
|
|
7495
7467
|
};
|
|
7496
7468
|
}
|
|
7497
|
-
|
|
7498
|
-
//#region src/client/theme.ts
|
|
7469
|
+
// src/client/theme.ts
|
|
7499
7470
|
/**
|
|
7500
7471
|
* DSH 0.1.6 暴露的主题令牌。
|
|
7501
7472
|
*
|
|
@@ -7730,8 +7701,7 @@ window.__ModuleLoader__.load({
|
|
|
7730
7701
|
background: dshThemeColor.menuBackground,
|
|
7731
7702
|
boxShadow: dshThemeColor.prominentShadow
|
|
7732
7703
|
};
|
|
7733
|
-
|
|
7734
|
-
//#region src/client/features/lan-access-status.ts
|
|
7704
|
+
// src/client/features/lan-access-status.ts
|
|
7735
7705
|
/** 监听全部网卡的写法;这些地址不能直接用于浏览器访问。 */
|
|
7736
7706
|
const WILDCARD_HOSTS = /* @__PURE__ */ new Set([
|
|
7737
7707
|
"0.0.0.0",
|
|
@@ -7853,8 +7823,7 @@ window.__ModuleLoader__.load({
|
|
|
7853
7823
|
}
|
|
7854
7824
|
return result;
|
|
7855
7825
|
}
|
|
7856
|
-
|
|
7857
|
-
//#region src/client/settings-controls.ts
|
|
7826
|
+
// src/client/settings-controls.ts
|
|
7858
7827
|
const settingsControlClass = {
|
|
7859
7828
|
switch: "codingns4dsh-settings-switch",
|
|
7860
7829
|
track: "codingns4dsh-settings-switch-track",
|
|
@@ -7993,8 +7962,7 @@ window.__ModuleLoader__.load({
|
|
|
7993
7962
|
.${settingsControlClass.iconButton}:disabled{opacity:.5;cursor:not-allowed}
|
|
7994
7963
|
@media (prefers-reduced-motion:reduce){.${settingsControlClass.track},.${settingsControlClass.thumb}{transition:none}}
|
|
7995
7964
|
`;
|
|
7996
|
-
|
|
7997
|
-
//#region src/client/features/lan-access-panel.ts
|
|
7965
|
+
// src/client/features/lan-access-panel.ts
|
|
7998
7966
|
/** “局域网访问DSH”设置卡片:只配置一条监听并转发到当前 DSH Web。 */
|
|
7999
7967
|
function LanAccessPanel({ services, enabled, snapshot: settingsSnapshot, notify }) {
|
|
8000
7968
|
const { rpc, settings } = services;
|
|
@@ -8348,8 +8316,7 @@ window.__ModuleLoader__.load({
|
|
|
8348
8316
|
if (!response.ok) throw new Error(response.error.message);
|
|
8349
8317
|
return response.value;
|
|
8350
8318
|
}
|
|
8351
|
-
|
|
8352
|
-
//#region src/client/features/lan-access.ts
|
|
8319
|
+
// src/client/features/lan-access.ts
|
|
8353
8320
|
/**
|
|
8354
8321
|
* 局域网访问DSH模块。
|
|
8355
8322
|
*
|
|
@@ -8402,8 +8369,7 @@ window.__ModuleLoader__.load({
|
|
|
8402
8369
|
},
|
|
8403
8370
|
settingsPanel: LanAccessPanel
|
|
8404
8371
|
};
|
|
8405
|
-
|
|
8406
|
-
//#region src/dsh-capabilities/settings-store.ts
|
|
8372
|
+
// src/dsh-capabilities/settings-store.ts
|
|
8407
8373
|
/** 将 DSH 两代写入结果统一成内部成功布尔值。 */
|
|
8408
8374
|
function accepted(write) {
|
|
8409
8375
|
return write.then((result) => result !== false);
|
|
@@ -8435,8 +8401,7 @@ window.__ModuleLoader__.load({
|
|
|
8435
8401
|
if (leftKeys.length !== rightKeys.length) return false;
|
|
8436
8402
|
return leftKeys.every((key) => Object.prototype.hasOwnProperty.call(rightRecord, key) && sameSettingsValue(leftRecord[key], rightRecord[key]));
|
|
8437
8403
|
}
|
|
8438
|
-
|
|
8439
|
-
//#region src/client/popup-dismiss.ts
|
|
8404
|
+
// src/client/popup-dismiss.ts
|
|
8440
8405
|
/** 解析 ref 或裸元素;ref 尚未挂载时返回 null。 */
|
|
8441
8406
|
function resolveRoot(root) {
|
|
8442
8407
|
if (root === null || root === void 0) return null;
|
|
@@ -8523,8 +8488,7 @@ window.__ModuleLoader__.load({
|
|
|
8523
8488
|
if (event.target === event.currentTarget) close();
|
|
8524
8489
|
};
|
|
8525
8490
|
}
|
|
8526
|
-
|
|
8527
|
-
//#region src/client/features/reverse-proxy-panel.ts
|
|
8491
|
+
// src/client/features/reverse-proxy-panel.ts
|
|
8528
8492
|
/**
|
|
8529
8493
|
* 「中转访问服务」卡片的设置面板:Control API 地址、登录和 DSH 独立设备。
|
|
8530
8494
|
*
|
|
@@ -9024,8 +8988,7 @@ window.__ModuleLoader__.load({
|
|
|
9024
8988
|
input.remove();
|
|
9025
8989
|
}
|
|
9026
8990
|
}
|
|
9027
|
-
|
|
9028
|
-
//#region src/shared/contracts/errors.ts
|
|
8991
|
+
// src/shared/contracts/errors.ts
|
|
9029
8992
|
const CODINGNS_DSH_ERROR_CODES = {
|
|
9030
8993
|
PLUGIN_MANIFEST_INVALID: "PLUGIN_MANIFEST_INVALID",
|
|
9031
8994
|
DSH_VERSION_UNSUPPORTED: "DSH_VERSION_UNSUPPORTED",
|
|
@@ -9174,8 +9137,7 @@ window.__ModuleLoader__.load({
|
|
|
9174
9137
|
function validateLimit(value, name) {
|
|
9175
9138
|
if (!Number.isSafeInteger(value) || value <= 0) throw new Error(`${name} 大小限制无效`);
|
|
9176
9139
|
}
|
|
9177
|
-
|
|
9178
|
-
//#region src/shared/contracts/subscription.ts
|
|
9140
|
+
// src/shared/contracts/subscription.ts
|
|
9179
9141
|
/**
|
|
9180
9142
|
* 判断上一次用量查询结果是否仍在可复用窗口内。
|
|
9181
9143
|
*
|
|
@@ -9188,8 +9150,7 @@ window.__ModuleLoader__.load({
|
|
|
9188
9150
|
const age = nowMs - capturedAtMs;
|
|
9189
9151
|
return age >= 0 && age < refreshIntervalMins * 6e4;
|
|
9190
9152
|
}
|
|
9191
|
-
|
|
9192
|
-
//#region src/shared/magpie-provider-id.ts
|
|
9153
|
+
// src/shared/magpie-provider-id.ts
|
|
9193
9154
|
/**
|
|
9194
9155
|
* Magpie's own spelling of a provider ID (`provider.Slug`): lower-case letters and digits, every
|
|
9195
9156
|
* run of anything else folded into one dash, and no dash at either end.
|
|
@@ -9201,8 +9162,7 @@ window.__ModuleLoader__.load({
|
|
|
9201
9162
|
function magpieProviderId(value) {
|
|
9202
9163
|
return value.toLocaleLowerCase().replace(/[^a-z0-9]+/gu, "-").replace(/^-+|-+$/gu, "");
|
|
9203
9164
|
}
|
|
9204
|
-
|
|
9205
|
-
//#region src/transport/debug.ts
|
|
9165
|
+
// src/transport/debug.ts
|
|
9206
9166
|
/** 创建一个可注入测试 sink 的调试 logger。默认开关由当前运行环境决定。 */
|
|
9207
9167
|
function createDshTransportDebugLogger(options = {}) {
|
|
9208
9168
|
const level = options.level ?? (options.enabled === void 0 ? resolveDshTransportDebugLevel() : options.enabled ? "info" : "off");
|
|
@@ -9318,8 +9278,7 @@ window.__ModuleLoader__.load({
|
|
|
9318
9278
|
function resolveDshTransportDebugLevel() {
|
|
9319
9279
|
return require_magpie_model_tag.resolveCodingNsDebugLevel();
|
|
9320
9280
|
}
|
|
9321
|
-
|
|
9322
|
-
//#region src/transport/multiplexer.ts
|
|
9281
|
+
// src/transport/multiplexer.ts
|
|
9323
9282
|
const DEFAULT_SCOPE = {
|
|
9324
9283
|
hostId: "unknown",
|
|
9325
9284
|
kind: "remote"
|
|
@@ -9715,8 +9674,7 @@ window.__ModuleLoader__.load({
|
|
|
9715
9674
|
...value.payload === void 0 ? {} : { body: new TextEncoder().encode(JSON.stringify(value.payload)) }
|
|
9716
9675
|
};
|
|
9717
9676
|
}
|
|
9718
|
-
|
|
9719
|
-
//#region src/transport/dsh-transport.ts
|
|
9677
|
+
// src/transport/dsh-transport.ts
|
|
9720
9678
|
/** 将 Tunnel Multiplexer 映射为 DSH ClientTransportHooks。 */
|
|
9721
9679
|
var DshCodingNsTransport = class {
|
|
9722
9680
|
options;
|
|
@@ -9849,8 +9807,7 @@ window.__ModuleLoader__.load({
|
|
|
9849
9807
|
return hooks;
|
|
9850
9808
|
}
|
|
9851
9809
|
};
|
|
9852
|
-
|
|
9853
|
-
//#region src/bootstrap/dsh-peer-host-preboot-shim.ts
|
|
9810
|
+
// src/bootstrap/dsh-peer-host-preboot-shim.ts
|
|
9854
9811
|
/** 页面级 PeerHost preboot shim 的全局名称。 */
|
|
9855
9812
|
const DSH_PEER_HOST_PREBOOT_SHIM_GLOBAL = "__CODINGNS4DSH_PREBOOT_SHIM__";
|
|
9856
9813
|
/**
|
|
@@ -9874,8 +9831,7 @@ window.__ModuleLoader__.load({
|
|
|
9874
9831
|
return;
|
|
9875
9832
|
}
|
|
9876
9833
|
}
|
|
9877
|
-
|
|
9878
|
-
//#region src/bootstrap/index.ts
|
|
9834
|
+
// src/bootstrap/index.ts
|
|
9879
9835
|
/**
|
|
9880
9836
|
* 在 DSH Client/Cordis 启动前登记唯一 Transport。
|
|
9881
9837
|
*
|
|
@@ -9897,8 +9853,7 @@ window.__ModuleLoader__.load({
|
|
|
9897
9853
|
}
|
|
9898
9854
|
};
|
|
9899
9855
|
}
|
|
9900
|
-
|
|
9901
|
-
//#region src/bootstrap/dsh-connection-adapter.ts
|
|
9856
|
+
// src/bootstrap/dsh-connection-adapter.ts
|
|
9902
9857
|
/**
|
|
9903
9858
|
* 将插件内部 Transport 映射为 DSH 的 ClientTransportHooks。
|
|
9904
9859
|
*
|
|
@@ -9974,8 +9929,7 @@ window.__ModuleLoader__.load({
|
|
|
9974
9929
|
hooks
|
|
9975
9930
|
};
|
|
9976
9931
|
}
|
|
9977
|
-
|
|
9978
|
-
//#region src/transport/dsh-session.ts
|
|
9932
|
+
// src/transport/dsh-session.ts
|
|
9979
9933
|
/** 负责 DSH hello/ready、协议与能力协商和心跳,不执行任何业务。 */
|
|
9980
9934
|
var DshSession = class {
|
|
9981
9935
|
options;
|
|
@@ -10059,15 +10013,15 @@ window.__ModuleLoader__.load({
|
|
|
10059
10013
|
sendHello() {
|
|
10060
10014
|
this.send(this.createEnvelope("session.hello", "session", {
|
|
10061
10015
|
protocol: this.options.protocol ?? "dsh-transport-v1",
|
|
10062
|
-
dshVersion: this.options.dshVersion ?? "0.2.
|
|
10016
|
+
dshVersion: this.options.dshVersion ?? "0.2.2-alpha.2",
|
|
10063
10017
|
capabilities: [...this.options.capabilities ?? []]
|
|
10064
10018
|
}));
|
|
10065
10019
|
}
|
|
10066
10020
|
sendReady(capabilities, peerDshVersion) {
|
|
10067
10021
|
this.send(this.createEnvelope("session.ready", "session", {
|
|
10068
10022
|
protocol: this.options.protocol ?? "dsh-transport-v1",
|
|
10069
|
-
dshVersion: peerDshVersion ?? this.options.dshVersion ?? "0.2.
|
|
10070
|
-
hostDshVersion: this.options.dshVersion ?? "0.2.
|
|
10023
|
+
dshVersion: peerDshVersion ?? this.options.dshVersion ?? "0.2.2-alpha.2",
|
|
10024
|
+
hostDshVersion: this.options.dshVersion ?? "0.2.2-alpha.2",
|
|
10071
10025
|
capabilities: [...capabilities],
|
|
10072
10026
|
byteCredit: 65536,
|
|
10073
10027
|
messageCredit: 32
|
|
@@ -10348,8 +10302,7 @@ window.__ModuleLoader__.load({
|
|
|
10348
10302
|
function bodyOf(frame) {
|
|
10349
10303
|
return "body" in frame ? frame.body : empty;
|
|
10350
10304
|
}
|
|
10351
|
-
|
|
10352
|
-
//#region src/transport/carrier.ts
|
|
10305
|
+
// src/transport/carrier.ts
|
|
10353
10306
|
const TUNNEL_DATA_CHANNEL_LABEL = "codingns-tunnel";
|
|
10354
10307
|
/** 单个分片的正文上限;整帧为正文加上分片头。 */
|
|
10355
10308
|
const DATA_CHANNEL_FRAGMENT_PAYLOAD_BYTES = 65536;
|
|
@@ -10681,8 +10634,7 @@ window.__ModuleLoader__.load({
|
|
|
10681
10634
|
function bytesToHex(value) {
|
|
10682
10635
|
return [...value].map((item) => item.toString(16).padStart(2, "0")).join("");
|
|
10683
10636
|
}
|
|
10684
|
-
|
|
10685
|
-
//#region src/transport/webrtc-client.ts
|
|
10637
|
+
// src/transport/webrtc-client.ts
|
|
10686
10638
|
/** 客户端发起 offer,校验 Host fingerprint 后返回 DataChannel Carrier。 */
|
|
10687
10639
|
async function connectWebRtcClient(options) {
|
|
10688
10640
|
const ticket = options.signalingTicket;
|
|
@@ -11013,8 +10965,7 @@ window.__ModuleLoader__.load({
|
|
|
11013
10965
|
if (url.protocol !== "ws:" && url.protocol !== "wss:") throw new Error("Relay URL 必须使用 HTTP(S) 或 WS(S)");
|
|
11014
10966
|
return url.toString();
|
|
11015
10967
|
}
|
|
11016
|
-
|
|
11017
|
-
//#region src/client/provider-icon-bridge.ts
|
|
10968
|
+
// src/client/provider-icon-bridge.ts
|
|
11018
10969
|
/**
|
|
11019
10970
|
* 注入 H5 iframe 的窄图片桥。函数必须自包含:调用方将函数源码写进 srcdoc,
|
|
11020
10971
|
* 不依赖父窗口模块变量,也不增加全页面 MutationObserver。
|
|
@@ -11072,8 +11023,7 @@ window.__ModuleLoader__.load({
|
|
|
11072
11023
|
nativeRemove.call(this, name);
|
|
11073
11024
|
};
|
|
11074
11025
|
}
|
|
11075
|
-
|
|
11076
|
-
//#region src/client/remote-web-context.ts
|
|
11026
|
+
// src/client/remote-web-context.ts
|
|
11077
11027
|
/**
|
|
11078
11028
|
* 一个 HostScope 对应一个独立 iframe。iframe 内的 fetch 和 WebSocket 都经由
|
|
11079
11029
|
* postMessage 回到父页面,再由 DSH Transport 走 web.* Envelope;页面本身不接触
|
|
@@ -12145,8 +12095,7 @@ window.__ModuleLoader__.load({
|
|
|
12145
12095
|
if (/\.png(?:$|\?)/u.test(path)) return "image/png";
|
|
12146
12096
|
return "application/octet-stream";
|
|
12147
12097
|
}
|
|
12148
|
-
|
|
12149
|
-
//#region src/client/dsh-runtime-version.ts
|
|
12098
|
+
// src/client/dsh-runtime-version.ts
|
|
12150
12099
|
/**
|
|
12151
12100
|
* 读取 Host 注入的真实 DSH 版本,并在无法读取时拒绝启用 Client。
|
|
12152
12101
|
*
|
|
@@ -12176,8 +12125,7 @@ window.__ModuleLoader__.load({
|
|
|
12176
12125
|
return false;
|
|
12177
12126
|
}
|
|
12178
12127
|
}
|
|
12179
|
-
|
|
12180
|
-
//#region src/client/dsh-h5-bootstrap.ts
|
|
12128
|
+
// src/client/dsh-h5-bootstrap.ts
|
|
12181
12129
|
/**
|
|
12182
12130
|
* DSH H5 的最小入口:选择独立 DSH 设备、申请票据、建立 WebRTC,最后才启动远程 DSH。
|
|
12183
12131
|
* 账号凭据只在 Host RPC 内部使用,浏览器只看到设备摘要和短期票据。
|
|
@@ -12587,8 +12535,7 @@ window.__ModuleLoader__.load({
|
|
|
12587
12535
|
if (!response.ok) throw new Error(data.detail ?? data.errorCode ?? `Control API 请求失败 (${response.status})`);
|
|
12588
12536
|
return data;
|
|
12589
12537
|
}
|
|
12590
|
-
|
|
12591
|
-
//#region src/client/settings-bridge.ts
|
|
12538
|
+
// src/client/settings-bridge.ts
|
|
12592
12539
|
const REMOTE_LOAD_RETRY_DELAYS_MS = [
|
|
12593
12540
|
0,
|
|
12594
12541
|
250,
|
|
@@ -12841,8 +12788,7 @@ window.__ModuleLoader__.load({
|
|
|
12841
12788
|
status: snapshot.status
|
|
12842
12789
|
};
|
|
12843
12790
|
}
|
|
12844
|
-
|
|
12845
|
-
//#region src/client/features/login-protection-session.ts
|
|
12791
|
+
// src/client/features/login-protection-session.ts
|
|
12846
12792
|
/** 登录保护会话只放在当前浏览器标签页,关闭标签页即失效。 */
|
|
12847
12793
|
const LOGIN_PROTECTION_SESSION_KEY = "codingns4dsh.login-protection.relay-token";
|
|
12848
12794
|
const LOGIN_PROTECTION_SESSION_EVENT = "codingns4dsh-login-protection-session";
|
|
@@ -12878,8 +12824,7 @@ window.__ModuleLoader__.load({
|
|
|
12878
12824
|
} catch {}
|
|
12879
12825
|
globalThis.dispatchEvent(new Event(LOGIN_PROTECTION_SESSION_EVENT));
|
|
12880
12826
|
}
|
|
12881
|
-
|
|
12882
|
-
//#region src/client/features/reverse-proxy.ts
|
|
12827
|
+
// src/client/features/reverse-proxy.ts
|
|
12883
12828
|
function isRemoteWebContext$1() {
|
|
12884
12829
|
return globalThis.__CODINGNS4DSH_REMOTE_WEB_CONTEXT__ === true;
|
|
12885
12830
|
}
|
|
@@ -13037,8 +12982,7 @@ window.__ModuleLoader__.load({
|
|
|
13037
12982
|
async function readAuthSnapshot(rpc) {
|
|
13038
12983
|
return callCodingNsRpc(rpc, "auth/snapshot", {});
|
|
13039
12984
|
}
|
|
13040
|
-
|
|
13041
|
-
//#region src/client/features/login-protection-panel.ts
|
|
12985
|
+
// src/client/features/login-protection-panel.ts
|
|
13042
12986
|
const DEFAULT_SCOPES = {
|
|
13043
12987
|
lan: true,
|
|
13044
12988
|
relay: true
|
|
@@ -13209,8 +13153,7 @@ window.__ModuleLoader__.load({
|
|
|
13209
13153
|
if (!response.ok) throw new Error(response.error.message);
|
|
13210
13154
|
return response.value;
|
|
13211
13155
|
}
|
|
13212
|
-
|
|
13213
|
-
//#region src/client/features/login-protection.ts
|
|
13156
|
+
// src/client/features/login-protection.ts
|
|
13214
13157
|
/** 独立的本地账号登录保护模块,位于局域网和中继访问模块之间。 */
|
|
13215
13158
|
const loginProtectionFeature = {
|
|
13216
13159
|
descriptor: {
|
|
@@ -13232,8 +13175,7 @@ window.__ModuleLoader__.load({
|
|
|
13232
13175
|
start: () => void 0,
|
|
13233
13176
|
settingsPanel: LoginProtectionPanel
|
|
13234
13177
|
};
|
|
13235
|
-
|
|
13236
|
-
//#region node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/cjs/scheduler.production.min.js
|
|
13178
|
+
// node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/cjs/scheduler.production.min.js
|
|
13237
13179
|
/**
|
|
13238
13180
|
* @license React
|
|
13239
13181
|
* scheduler.production.min.js
|
|
@@ -13487,13 +13429,11 @@ window.__ModuleLoader__.load({
|
|
|
13487
13429
|
};
|
|
13488
13430
|
};
|
|
13489
13431
|
}));
|
|
13490
|
-
|
|
13491
|
-
//#region node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/index.js
|
|
13432
|
+
// node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/index.js
|
|
13492
13433
|
var require_scheduler = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports, module) => {
|
|
13493
13434
|
module.exports = require_scheduler_production_min();
|
|
13494
13435
|
}));
|
|
13495
|
-
|
|
13496
|
-
//#region node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js
|
|
13436
|
+
// node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js
|
|
13497
13437
|
/**
|
|
13498
13438
|
* @license React
|
|
13499
13439
|
* react-dom.production.min.js
|
|
@@ -20166,8 +20106,7 @@ window.__ModuleLoader__.load({
|
|
|
20166
20106
|
return cl(a, b, null, c);
|
|
20167
20107
|
};
|
|
20168
20108
|
}));
|
|
20169
|
-
|
|
20170
|
-
//#region src/client/cli-settings-dialog.ts
|
|
20109
|
+
// src/client/cli-settings-dialog.ts
|
|
20171
20110
|
var import_react_dom = (/* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports, module) => {
|
|
20172
20111
|
function checkDCE() {
|
|
20173
20112
|
if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === "undefined" || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== "function") return;
|
|
@@ -20232,8 +20171,7 @@ window.__ModuleLoader__.load({
|
|
|
20232
20171
|
}, children);
|
|
20233
20172
|
return typeof document === "undefined" ? dialog : (0, import_react_dom.createPortal)(dialog, document.body);
|
|
20234
20173
|
}
|
|
20235
|
-
|
|
20236
|
-
//#region src/client/external-tool-stream.ts
|
|
20174
|
+
// src/client/external-tool-stream.ts
|
|
20237
20175
|
/**
|
|
20238
20176
|
* 把实时 assistant/live-chunk 工具标记投影成 Chat 节点。
|
|
20239
20177
|
* assistant/attempt 读取仅为兼容已经存在的旧历史;新 Host 的持久时间线使用原生
|
|
@@ -20361,8 +20299,7 @@ window.__ModuleLoader__.load({
|
|
|
20361
20299
|
function isRecord$13(value) {
|
|
20362
20300
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
20363
20301
|
}
|
|
20364
|
-
|
|
20365
|
-
//#region src/client/native-translation-default.ts
|
|
20302
|
+
// src/client/native-translation-default.ts
|
|
20366
20303
|
/**
|
|
20367
20304
|
* DSH 原生会话翻译开关的默认值读取器。
|
|
20368
20305
|
*
|
|
@@ -20392,8 +20329,7 @@ window.__ModuleLoader__.load({
|
|
|
20392
20329
|
function notifyNativeTranslationDefaultChanged() {
|
|
20393
20330
|
for (const listener of listeners$1) listener();
|
|
20394
20331
|
}
|
|
20395
|
-
|
|
20396
|
-
//#region src/client/session-adapter-cache.ts
|
|
20332
|
+
// src/client/session-adapter-cache.ts
|
|
20397
20333
|
const adaptersBySession = /* @__PURE__ */ new Map();
|
|
20398
20334
|
const listeners = /* @__PURE__ */ new Set();
|
|
20399
20335
|
const requests = /* @__PURE__ */ new WeakMap();
|
|
@@ -20472,8 +20408,7 @@ window.__ModuleLoader__.load({
|
|
|
20472
20408
|
const record = value;
|
|
20473
20409
|
return typeof record.sessionId === "string" && record.sessionId.trim() !== "" && typeof record.adapterId === "string" && record.adapterId.trim() !== "";
|
|
20474
20410
|
}
|
|
20475
|
-
|
|
20476
|
-
//#region src/client/context-breakdown-dom.ts
|
|
20411
|
+
// src/client/context-breakdown-dom.ts
|
|
20477
20412
|
/**
|
|
20478
20413
|
* DSH 上下文面板(ContextMeter)的构成明细隐藏器。
|
|
20479
20414
|
*
|
|
@@ -20612,8 +20547,7 @@ window.__ModuleLoader__.load({
|
|
|
20612
20547
|
style.textContent = CONTEXT_BREAKDOWN_STYLE_TEXT;
|
|
20613
20548
|
dom.head.appendChild(style);
|
|
20614
20549
|
}
|
|
20615
|
-
|
|
20616
|
-
//#region src/dsh-capabilities/types.ts
|
|
20550
|
+
// src/dsh-capabilities/types.ts
|
|
20617
20551
|
function createCapabilityProfile(dshVersion, runtime, capabilities, diagnostics) {
|
|
20618
20552
|
return Object.freeze({
|
|
20619
20553
|
dshVersion,
|
|
@@ -20633,8 +20567,7 @@ window.__ModuleLoader__.load({
|
|
|
20633
20567
|
} });
|
|
20634
20568
|
return Object.freeze(view);
|
|
20635
20569
|
}
|
|
20636
|
-
|
|
20637
|
-
//#region src/dsh-capabilities/registry.ts
|
|
20570
|
+
// src/dsh-capabilities/registry.ts
|
|
20638
20571
|
var DshCapabilityRegistryError = class extends Error {
|
|
20639
20572
|
code;
|
|
20640
20573
|
capability;
|
|
@@ -20821,8 +20754,7 @@ window.__ModuleLoader__.load({
|
|
|
20821
20754
|
function errorMessage$2(error) {
|
|
20822
20755
|
return error instanceof Error ? error.message : String(error);
|
|
20823
20756
|
}
|
|
20824
|
-
|
|
20825
|
-
//#region src/dsh-capabilities/client/terminal-sharing-adapter.ts
|
|
20757
|
+
// src/dsh-capabilities/client/terminal-sharing-adapter.ts
|
|
20826
20758
|
/** DSH 版本差异只在本适配器探测,终端业务不读取宿主私有编辑器。 */
|
|
20827
20759
|
function supportsTerminalSharing(context) {
|
|
20828
20760
|
return typeof service(context, "sessions")?.scope === "function" && typeof service(context, "conversation")?.input?.for === "function" && typeof service(context, "uiWorkspace")?.openSession === "function";
|
|
@@ -20987,8 +20919,7 @@ window.__ModuleLoader__.load({
|
|
|
20987
20919
|
if (item?.ok === false) throw new Error(string$3(record$2(item.error)?.message) || "读取会话列表失败");
|
|
20988
20920
|
return item?.ok === true ? item.value : value;
|
|
20989
20921
|
}
|
|
20990
|
-
|
|
20991
|
-
//#region src/shared/contracts/interaction-translation.ts
|
|
20922
|
+
// src/shared/contracts/interaction-translation.ts
|
|
20992
20923
|
function questionTranslationFields(questions) {
|
|
20993
20924
|
const fields = [];
|
|
20994
20925
|
const add = (key, text) => {
|
|
@@ -21033,8 +20964,7 @@ window.__ModuleLoader__.load({
|
|
|
21033
20964
|
const record = result?.records[key];
|
|
21034
20965
|
return result?.enabled && record !== void 0 && record.original === original && !record.failed ? record.translated : original;
|
|
21035
20966
|
}
|
|
21036
|
-
|
|
21037
|
-
//#region src/dsh-capabilities/client/question-history-adapter.ts
|
|
20967
|
+
// src/dsh-capabilities/client/question-history-adapter.ts
|
|
21038
20968
|
/** Read complete recorded JSON only. Preparing or unrecognized tool shapes remain native. */
|
|
21039
20969
|
function readQuestionHistory(block, settled) {
|
|
21040
20970
|
const call = block?.kind === void 0 ? block : block.call;
|
|
@@ -21115,8 +21045,7 @@ window.__ModuleLoader__.load({
|
|
|
21115
21045
|
function validAnswers(value) {
|
|
21116
21046
|
return Array.isArray(value) && value.every((a) => a !== null && typeof a === "object" && typeof a.id === "string" && Array.isArray(a.selected) && a.selected.every((label) => typeof label === "string") && (a.custom === void 0 || typeof a.custom === "string"));
|
|
21117
21047
|
}
|
|
21118
|
-
|
|
21119
|
-
//#region src/dsh-capabilities/client/slot-presentation-mirror.ts
|
|
21048
|
+
// src/dsh-capabilities/client/slot-presentation-mirror.ts
|
|
21120
21049
|
/** Follow a native entry that may load after its slot or be replaced during reload. */
|
|
21121
21050
|
function followPresentationEntry(slots, name, matches, mount) {
|
|
21122
21051
|
return slots.inject(name, () => {
|
|
@@ -21205,8 +21134,7 @@ window.__ModuleLoader__.load({
|
|
|
21205
21134
|
};
|
|
21206
21135
|
});
|
|
21207
21136
|
}
|
|
21208
|
-
|
|
21209
|
-
//#region src/dsh-capabilities/client/interaction-presentation-adapter.ts
|
|
21137
|
+
// src/dsh-capabilities/client/interaction-presentation-adapter.ts
|
|
21210
21138
|
function supportsInteractionPresentation(context) {
|
|
21211
21139
|
const slots = context?.slots;
|
|
21212
21140
|
return typeof slots?.inject === "function" && typeof slots.register === "function" && typeof slots.entries === "function" && typeof slots.subscribe === "function";
|
|
@@ -21340,8 +21268,7 @@ window.__ModuleLoader__.load({
|
|
|
21340
21268
|
"completed"
|
|
21341
21269
|
].includes(item.status ?? "");
|
|
21342
21270
|
}
|
|
21343
|
-
|
|
21344
|
-
//#region src/dsh-capabilities/client/message-presentation-adapter.ts
|
|
21271
|
+
// src/dsh-capabilities/client/message-presentation-adapter.ts
|
|
21345
21272
|
function slotsOf(context) {
|
|
21346
21273
|
return context?.slots;
|
|
21347
21274
|
}
|
|
@@ -21381,8 +21308,7 @@ window.__ModuleLoader__.load({
|
|
|
21381
21308
|
})
|
|
21382
21309
|
};
|
|
21383
21310
|
}
|
|
21384
|
-
|
|
21385
|
-
//#region src/dsh-capabilities/host/session-model-selection-adapter.ts
|
|
21311
|
+
// src/dsh-capabilities/host/session-model-selection-adapter.ts
|
|
21386
21312
|
const NATIVE_ACCESSOR = Symbol.for("codingns4dsh.native-model-selection");
|
|
21387
21313
|
const NATIVE_CURRENT = Symbol.for("codingns4dsh.native-model-current");
|
|
21388
21314
|
function selectionOwner(controller) {
|
|
@@ -21454,8 +21380,7 @@ window.__ModuleLoader__.load({
|
|
|
21454
21380
|
};
|
|
21455
21381
|
} };
|
|
21456
21382
|
}
|
|
21457
|
-
|
|
21458
|
-
//#region src/dsh-capabilities/host/workspace-session-control-adapter.ts
|
|
21383
|
+
// src/dsh-capabilities/host/workspace-session-control-adapter.ts
|
|
21459
21384
|
/** Narrow typed adapter over DSH's public SessionController surface. */
|
|
21460
21385
|
function supportsWorkspaceSessionControl(context) {
|
|
21461
21386
|
const controller = asController(readContext(context, "sessionController"));
|
|
@@ -21524,8 +21449,7 @@ window.__ModuleLoader__.load({
|
|
|
21524
21449
|
function asRecord$9(value) {
|
|
21525
21450
|
return typeof value === "object" && value !== null && !Array.isArray(value) ? value : void 0;
|
|
21526
21451
|
}
|
|
21527
|
-
|
|
21528
|
-
//#region src/dsh-capabilities/host/workspace-pending-questions-adapter.ts
|
|
21452
|
+
// src/dsh-capabilities/host/workspace-pending-questions-adapter.ts
|
|
21529
21453
|
function supportsWorkspacePendingQuestions(context) {
|
|
21530
21454
|
const get = contextGet(context);
|
|
21531
21455
|
return hasMethod$2(get?.("sessions"), "get") && hasMethod$2(get?.("agents"), "get") && hasMethod$2(get?.("agents"), "roots") && hasMethod$2(get?.("sessionProjections"), "stateOf") && hasMethod$2(get?.("userQuestions"), "answer");
|
|
@@ -21611,8 +21535,7 @@ window.__ModuleLoader__.load({
|
|
|
21611
21535
|
const item = record$1(value);
|
|
21612
21536
|
return typeof item?.id === "string" && typeof item.question === "string";
|
|
21613
21537
|
}
|
|
21614
|
-
|
|
21615
|
-
//#region src/dsh-capabilities/host/workspace-approval-adapter.ts
|
|
21538
|
+
// src/dsh-capabilities/host/workspace-approval-adapter.ts
|
|
21616
21539
|
function supportsWorkspaceApproval(context) {
|
|
21617
21540
|
const nativeContext = asContext(context);
|
|
21618
21541
|
const get = nativeContext?.get.bind(nativeContext);
|
|
@@ -21759,8 +21682,7 @@ window.__ModuleLoader__.load({
|
|
|
21759
21682
|
function isOutcome(value) {
|
|
21760
21683
|
return value === "allowed-once" || value === "rejected" || value === "cancelled" || value === "unavailable";
|
|
21761
21684
|
}
|
|
21762
|
-
|
|
21763
|
-
//#region src/dsh-capabilities/host/session-prompt-adapter.ts
|
|
21685
|
+
// src/dsh-capabilities/host/session-prompt-adapter.ts
|
|
21764
21686
|
function supportsSessionPromptAssembly(value) {
|
|
21765
21687
|
const ctx = value;
|
|
21766
21688
|
const prompt = ctx?.get?.("systemPrompt") ?? ctx?.systemPrompt;
|
|
@@ -21779,30 +21701,62 @@ window.__ModuleLoader__.load({
|
|
|
21779
21701
|
function createSessionPromptAdapter(value) {
|
|
21780
21702
|
const ctx = value;
|
|
21781
21703
|
return { install(transform) {
|
|
21782
|
-
const
|
|
21704
|
+
const prompt = ctx.get?.("systemPrompt") ?? ctx.systemPrompt;
|
|
21705
|
+
const original = prompt?.assemble;
|
|
21706
|
+
if (typeof original !== "function" || prompt === void 0) return () => void 0;
|
|
21707
|
+
const transformedByWaterfall = /* @__PURE__ */ new WeakMap();
|
|
21708
|
+
const disposeWaterfall = ctx.on?.("system-prompt/assemble", async (_assembly, context, next) => {
|
|
21783
21709
|
const assembly = await next();
|
|
21784
21710
|
const scope = sessionPromptScope(context?.agent, context?.signal);
|
|
21785
|
-
if (scope.sessionId === "" || scope.subagent || !Array.isArray(assembly?.sections)
|
|
21786
|
-
|
|
21711
|
+
if (scope.sessionId === "" || scope.subagent || !Array.isArray(assembly?.sections)) return assembly;
|
|
21712
|
+
const hasTools = Array.isArray(assembly.tools);
|
|
21713
|
+
const transformed = await transform(hasTools ? assembly : {
|
|
21714
|
+
...assembly,
|
|
21715
|
+
tools: []
|
|
21716
|
+
}, scope);
|
|
21717
|
+
if (context !== null && typeof context === "object") transformedByWaterfall.set(context, hasTools);
|
|
21718
|
+
return transformed;
|
|
21787
21719
|
}, {
|
|
21788
21720
|
global: true,
|
|
21789
21721
|
prepend: true
|
|
21790
21722
|
});
|
|
21791
|
-
|
|
21723
|
+
const wrapped = async function(context) {
|
|
21724
|
+
const assembly = await original.call(this, context);
|
|
21725
|
+
const scope = sessionPromptScope(context?.agent, context?.signal);
|
|
21726
|
+
const hasWaterfallResult = context !== null && typeof context === "object" && transformedByWaterfall.has(context);
|
|
21727
|
+
const waterfallHadTools = hasWaterfallResult ? transformedByWaterfall.get(context) === true : false;
|
|
21728
|
+
if (hasWaterfallResult) transformedByWaterfall.delete(context);
|
|
21729
|
+
if (waterfallHadTools || scope.sessionId === "" || scope.subagent || !Array.isArray(assembly?.sections) || !Array.isArray(assembly.tools)) return assembly;
|
|
21730
|
+
const transformed = await transform({
|
|
21731
|
+
...assembly,
|
|
21732
|
+
sections: [],
|
|
21733
|
+
tools: assembly.tools
|
|
21734
|
+
}, scope);
|
|
21735
|
+
return {
|
|
21736
|
+
...assembly,
|
|
21737
|
+
tools: transformed.tools ?? []
|
|
21738
|
+
};
|
|
21739
|
+
};
|
|
21740
|
+
try {
|
|
21741
|
+
prompt.assemble = wrapped;
|
|
21742
|
+
} catch {
|
|
21743
|
+
return typeof disposeWaterfall === "function" ? disposeWaterfall : () => void 0;
|
|
21744
|
+
}
|
|
21745
|
+
return () => {
|
|
21746
|
+
prompt.assemble = original;
|
|
21747
|
+
if (typeof disposeWaterfall === "function") disposeWaterfall();
|
|
21748
|
+
};
|
|
21792
21749
|
} };
|
|
21793
21750
|
}
|
|
21794
|
-
|
|
21795
|
-
//#region src/shared/quick-app-proxy-path.ts
|
|
21751
|
+
// src/shared/quick-app-proxy-path.ts
|
|
21796
21752
|
/** The native Desktop embedding origin; preview resources use the verified Host listener. */
|
|
21797
21753
|
const QUICK_APP_DESKTOP_ORIGIN = "dsh-app://app";
|
|
21798
|
-
|
|
21799
|
-
//#region src/dsh-capabilities/host/quick-app-origin-adapter.ts
|
|
21754
|
+
// src/dsh-capabilities/host/quick-app-origin-adapter.ts
|
|
21800
21755
|
/** A prefix route is deliberately insufficient; the Host must install a dedicated provider. */
|
|
21801
21756
|
function supportsQuickAppOrigins(provider) {
|
|
21802
21757
|
return typeof provider === "object" && provider !== null && typeof provider.open === "function";
|
|
21803
21758
|
}
|
|
21804
|
-
|
|
21805
|
-
//#region src/dsh-capabilities/host/quick-app-proxy-adapter.ts
|
|
21759
|
+
// src/dsh-capabilities/host/quick-app-proxy-adapter.ts
|
|
21806
21760
|
function webServer(context) {
|
|
21807
21761
|
const ctx = context;
|
|
21808
21762
|
try {
|
|
@@ -21830,8 +21784,7 @@ window.__ModuleLoader__.load({
|
|
|
21830
21784
|
register: (route) => server.register(route)
|
|
21831
21785
|
};
|
|
21832
21786
|
}
|
|
21833
|
-
|
|
21834
|
-
//#region src/dsh-capabilities/client/quick-app-footer-adapter.ts
|
|
21787
|
+
// src/dsh-capabilities/client/quick-app-footer-adapter.ts
|
|
21835
21788
|
function supportsQuickAppFooter(value) {
|
|
21836
21789
|
const slots = value;
|
|
21837
21790
|
return typeof slots?.inject === "function" && typeof slots.register === "function";
|
|
@@ -21845,8 +21798,7 @@ window.__ModuleLoader__.load({
|
|
|
21845
21798
|
order: 40
|
|
21846
21799
|
}, component));
|
|
21847
21800
|
}
|
|
21848
|
-
|
|
21849
|
-
//#region src/dsh-capabilities/host/workspace-directory-adapter.ts
|
|
21801
|
+
// src/dsh-capabilities/host/workspace-directory-adapter.ts
|
|
21850
21802
|
function supportsWorkspaceDirectory(context) {
|
|
21851
21803
|
return typeof readWorkspaceFiles(context)?.list === "function";
|
|
21852
21804
|
}
|
|
@@ -21866,8 +21818,7 @@ window.__ModuleLoader__.load({
|
|
|
21866
21818
|
return;
|
|
21867
21819
|
}
|
|
21868
21820
|
}
|
|
21869
|
-
|
|
21870
|
-
//#region src/dsh-capabilities/host/session-performance-adapter.ts
|
|
21821
|
+
// src/dsh-capabilities/host/session-performance-adapter.ts
|
|
21871
21822
|
function supportsSessionPerformance(context) {
|
|
21872
21823
|
return typeof projections(context)?.register === "function";
|
|
21873
21824
|
}
|
|
@@ -21884,15 +21835,12 @@ window.__ModuleLoader__.load({
|
|
|
21884
21835
|
const service = projections(context);
|
|
21885
21836
|
return { install: (definition) => service.register(definition) };
|
|
21886
21837
|
}
|
|
21887
|
-
|
|
21888
|
-
//#region src/shared/codex-performance.ts
|
|
21838
|
+
// src/shared/codex-performance.ts
|
|
21889
21839
|
const CODEX_PERFORMANCE_PROJECTION = "codingnsCodexStats";
|
|
21890
|
-
|
|
21891
|
-
//#region src/shared/request-performance.ts
|
|
21840
|
+
// src/shared/request-performance.ts
|
|
21892
21841
|
const GROK_PERFORMANCE_PROJECTION = "codingnsGrokStats";
|
|
21893
21842
|
const GROK_CONTEXT_PROJECTION = "codingnsGrokContext";
|
|
21894
|
-
|
|
21895
|
-
//#region src/dsh-capabilities/client/composer-slot-selectors.ts
|
|
21843
|
+
// src/dsh-capabilities/client/composer-slot-selectors.ts
|
|
21896
21844
|
/** Keep DOM consumers aligned with the context presentation's owned child slots. */
|
|
21897
21845
|
function contextComposerSlotName(name) {
|
|
21898
21846
|
return `codingns.grok-context.${name}`;
|
|
@@ -21900,8 +21848,7 @@ window.__ModuleLoader__.load({
|
|
|
21900
21848
|
function composerSlotSelector(name) {
|
|
21901
21849
|
return `:is([data-slot="${name}"],[data-slot="${contextComposerSlotName(name)}"])`;
|
|
21902
21850
|
}
|
|
21903
|
-
|
|
21904
|
-
//#region src/dsh-capabilities/client/composer-presentation-adapter.ts
|
|
21851
|
+
// src/dsh-capabilities/client/composer-presentation-adapter.ts
|
|
21905
21852
|
const presentations = /* @__PURE__ */ new WeakMap();
|
|
21906
21853
|
/** Compose customizations over one native composer, sharing its child-slot mirror. */
|
|
21907
21854
|
function installComposerPresentation(owner, slots, decorate, element, hooks) {
|
|
@@ -21970,8 +21917,7 @@ window.__ModuleLoader__.load({
|
|
|
21970
21917
|
} else for (const listener of state.listeners) listener();
|
|
21971
21918
|
};
|
|
21972
21919
|
}
|
|
21973
|
-
|
|
21974
|
-
//#region src/dsh-capabilities/client/session-performance-adapter.ts
|
|
21920
|
+
// src/dsh-capabilities/client/session-performance-adapter.ts
|
|
21975
21921
|
function supportsSessionPerformancePresentation(context) {
|
|
21976
21922
|
const slots = context?.slots;
|
|
21977
21923
|
return slots !== void 0 && [
|
|
@@ -22089,8 +22035,7 @@ window.__ModuleLoader__.load({
|
|
|
22089
22035
|
})
|
|
22090
22036
|
}, (props) => element(magpieContext.component, props)));
|
|
22091
22037
|
}
|
|
22092
|
-
|
|
22093
|
-
//#region src/dsh-capabilities/host/agent-team-adapter.ts
|
|
22038
|
+
// src/dsh-capabilities/host/agent-team-adapter.ts
|
|
22094
22039
|
const MEMBER_METHODS = [
|
|
22095
22040
|
"membership",
|
|
22096
22041
|
"listMembers",
|
|
@@ -22224,8 +22169,7 @@ window.__ModuleLoader__.load({
|
|
|
22224
22169
|
return;
|
|
22225
22170
|
}
|
|
22226
22171
|
}
|
|
22227
|
-
|
|
22228
|
-
//#region src/dsh-capabilities/client/global-panel-adapter.ts
|
|
22172
|
+
// src/dsh-capabilities/client/global-panel-adapter.ts
|
|
22229
22173
|
function supportsGlobalPanel(context) {
|
|
22230
22174
|
return readGlobalPanelContext(context) !== void 0;
|
|
22231
22175
|
}
|
|
@@ -22321,8 +22265,7 @@ window.__ModuleLoader__.load({
|
|
|
22321
22265
|
return false;
|
|
22322
22266
|
}
|
|
22323
22267
|
}
|
|
22324
|
-
|
|
22325
|
-
//#region src/shared/contracts/plugin-update.ts
|
|
22268
|
+
// src/shared/contracts/plugin-update.ts
|
|
22326
22269
|
const CODINGNS_PACKAGE_NAME = "@jingyi0605/codingns4dsh";
|
|
22327
22270
|
const CODINGNS_NPM_REGISTRY = "https://registry.npmjs.org";
|
|
22328
22271
|
function isSemver(value) {
|
|
@@ -22367,8 +22310,7 @@ window.__ModuleLoader__.load({
|
|
|
22367
22310
|
prerelease: match[4]?.split(".") ?? []
|
|
22368
22311
|
};
|
|
22369
22312
|
}
|
|
22370
|
-
|
|
22371
|
-
//#region src/dsh-capabilities/host/plugin-update-adapter.ts
|
|
22313
|
+
// src/dsh-capabilities/host/plugin-update-adapter.ts
|
|
22372
22314
|
function readUpdateService(context, name) {
|
|
22373
22315
|
if (typeof context !== "object" || context === null) return void 0;
|
|
22374
22316
|
try {
|
|
@@ -22438,8 +22380,7 @@ window.__ModuleLoader__.load({
|
|
|
22438
22380
|
...code === void 0 ? {} : { errorCode: code }
|
|
22439
22381
|
};
|
|
22440
22382
|
}
|
|
22441
|
-
|
|
22442
|
-
//#region src/dsh-capabilities/routes.ts
|
|
22383
|
+
// src/dsh-capabilities/routes.ts
|
|
22443
22384
|
/**
|
|
22444
22385
|
* 注册 Codingns4DSH 当前实际消费的 DSH 服务能力。
|
|
22445
22386
|
*
|
|
@@ -22555,11 +22496,11 @@ window.__ModuleLoader__.load({
|
|
|
22555
22496
|
add({
|
|
22556
22497
|
id: "session-activation-020",
|
|
22557
22498
|
capability: "session.activation",
|
|
22558
|
-
supportedDsh: ">=0.2.
|
|
22499
|
+
supportedDsh: ">=0.2.1-alpha.2 <=0.2.1-alpha.2",
|
|
22559
22500
|
runtime,
|
|
22560
22501
|
priority: 10,
|
|
22561
22502
|
status: "supported",
|
|
22562
|
-
introducedIn: "0.2.
|
|
22503
|
+
introducedIn: "0.2.1-alpha.2",
|
|
22563
22504
|
detect: (ctx) => hasMethods(read(ctx, "sessionController"), ["create"]),
|
|
22564
22505
|
create: (ctx) => read(ctx, "sessionController")
|
|
22565
22506
|
});
|
|
@@ -22734,11 +22675,11 @@ window.__ModuleLoader__.load({
|
|
|
22734
22675
|
add({
|
|
22735
22676
|
id: "message-presentation-020",
|
|
22736
22677
|
capability: "conversation.message-presentation",
|
|
22737
|
-
supportedDsh: ">=0.2.
|
|
22678
|
+
supportedDsh: ">=0.2.1-alpha.2 <=0.2.1-alpha.2",
|
|
22738
22679
|
runtime,
|
|
22739
22680
|
priority: 10,
|
|
22740
22681
|
status: "supported",
|
|
22741
|
-
introducedIn: "0.2.
|
|
22682
|
+
introducedIn: "0.2.1-alpha.2",
|
|
22742
22683
|
detect: (ctx) => supportsLegacyMessagePresentation({ slots: read(ctx, "slots") }, facts.primitives),
|
|
22743
22684
|
create: () => createLegacyMessagePresentation(facts.primitives)
|
|
22744
22685
|
});
|
|
@@ -22928,11 +22869,11 @@ window.__ModuleLoader__.load({
|
|
|
22928
22869
|
add({
|
|
22929
22870
|
id: "connection-peer-admission-020",
|
|
22930
22871
|
capability: "connection.peer",
|
|
22931
|
-
supportedDsh: ">=0.2.
|
|
22872
|
+
supportedDsh: ">=0.2.1-alpha.2 <=0.2.1-alpha.2",
|
|
22932
22873
|
runtime: "host",
|
|
22933
22874
|
priority: 30,
|
|
22934
22875
|
status: "supported",
|
|
22935
|
-
introducedIn: "0.2.
|
|
22876
|
+
introducedIn: "0.2.1-alpha.2",
|
|
22936
22877
|
detect: (ctx) => hasMethods(read(ctx, "connection"), ["admit", "requestRejection"]) && read(ctx, "connection.operator") !== void 0,
|
|
22937
22878
|
create: (ctx) => read(ctx, "connection")
|
|
22938
22879
|
});
|
|
@@ -22950,11 +22891,11 @@ window.__ModuleLoader__.load({
|
|
|
22950
22891
|
add({
|
|
22951
22892
|
id: "connection-rpc-uplink-020",
|
|
22952
22893
|
capability: "connection.uplink",
|
|
22953
|
-
supportedDsh: ">=0.2.
|
|
22894
|
+
supportedDsh: ">=0.2.1-alpha.2 <=0.2.1-alpha.2",
|
|
22954
22895
|
runtime: "host",
|
|
22955
22896
|
priority: 10,
|
|
22956
22897
|
status: "supported",
|
|
22957
|
-
introducedIn: "0.2.
|
|
22898
|
+
introducedIn: "0.2.1-alpha.2",
|
|
22958
22899
|
detect: (ctx) => hasMethods(read(ctx, "connection.rpc"), ["handle"]) && read(ctx, "connection.operator") !== void 0,
|
|
22959
22900
|
create: (ctx) => read(ctx, "connection")
|
|
22960
22901
|
});
|
|
@@ -23013,17 +22954,6 @@ window.__ModuleLoader__.load({
|
|
|
23013
22954
|
detect: (ctx) => hasMethods(read(ctx, "subagents"), ["startActivation", "sendMessage"]),
|
|
23014
22955
|
create: (ctx) => read(ctx, "subagents")
|
|
23015
22956
|
});
|
|
23016
|
-
add({
|
|
23017
|
-
id: "subagent-continuable-020",
|
|
23018
|
-
capability: "subagent.continuable",
|
|
23019
|
-
supportedDsh: ">=0.2.0-rc.1 <=0.2.1-alpha.1",
|
|
23020
|
-
runtime: "host",
|
|
23021
|
-
priority: 10,
|
|
23022
|
-
status: "supported",
|
|
23023
|
-
introducedIn: "0.2.0-rc.1",
|
|
23024
|
-
detect: (ctx) => hasMethods(read(ctx, "subagents"), ["startContinuable", "sendMessage"]),
|
|
23025
|
-
create: (ctx) => read(ctx, "subagents")
|
|
23026
|
-
});
|
|
23027
22957
|
add({
|
|
23028
22958
|
id: "agent-team-native-020",
|
|
23029
22959
|
capability: "agent-team.native",
|
|
@@ -23362,8 +23292,7 @@ window.__ModuleLoader__.load({
|
|
|
23362
23292
|
if (Array.isArray(context)) return void 0;
|
|
23363
23293
|
return readKey(context, field);
|
|
23364
23294
|
}
|
|
23365
|
-
|
|
23366
|
-
//#region src/client/rpc-call.ts
|
|
23295
|
+
// src/client/rpc-call.ts
|
|
23367
23296
|
const apiRoutes = /* @__PURE__ */ new WeakMap();
|
|
23368
23297
|
/** 只在路由确实不存在或方法不兼容时回退,普通超时不能重复提交写操作。 */
|
|
23369
23298
|
async function callCodingNsRpcResult(rpc, endpoint, payload, signal) {
|
|
@@ -23382,8 +23311,7 @@ window.__ModuleLoader__.load({
|
|
|
23382
23311
|
return result;
|
|
23383
23312
|
}
|
|
23384
23313
|
}
|
|
23385
|
-
|
|
23386
|
-
//#region src/client/magpie-context-store.ts
|
|
23314
|
+
// src/client/magpie-context-store.ts
|
|
23387
23315
|
const POLL_INTERVAL_MS = 3e3;
|
|
23388
23316
|
const IDLE_STATE = { status: "idle" };
|
|
23389
23317
|
const NATIVE_STATE = { status: "native" };
|
|
@@ -23512,8 +23440,7 @@ window.__ModuleLoader__.load({
|
|
|
23512
23440
|
}
|
|
23513
23441
|
return true;
|
|
23514
23442
|
}
|
|
23515
|
-
|
|
23516
|
-
//#region src/client/magpie-context-meter.ts
|
|
23443
|
+
// src/client/magpie-context-meter.ts
|
|
23517
23444
|
const STYLE_ID$4 = "codingns4dsh-magpie-context-meter";
|
|
23518
23445
|
const COLORS = {
|
|
23519
23446
|
system: "#8b5cf6",
|
|
@@ -23838,8 +23765,7 @@ window.__ModuleLoader__.load({
|
|
|
23838
23765
|
function truncate(value) {
|
|
23839
23766
|
return value.length > 24 ? `${value.slice(0, 24)}…` : value;
|
|
23840
23767
|
}
|
|
23841
|
-
|
|
23842
|
-
//#region src/client/peer-host-scoped-client.ts
|
|
23768
|
+
// src/client/peer-host-scoped-client.ts
|
|
23843
23769
|
/** 根据当前 Host 自有端点生成作用域 WebSocket 工厂;不接受目标 Host URL。 */
|
|
23844
23770
|
function createPeerHostWebSocketFactory(endpoint, options = {}) {
|
|
23845
23771
|
if (!Number.isSafeInteger(endpoint.port) || endpoint.port < 0 || endpoint.port > 65535) throw new TypeError("PeerHost WebSocket 端口无效");
|
|
@@ -24207,8 +24133,7 @@ window.__ModuleLoader__.load({
|
|
|
24207
24133
|
function currentLocationProtocol() {
|
|
24208
24134
|
return globalThis.location?.protocol === "https:" ? "wss" : "ws";
|
|
24209
24135
|
}
|
|
24210
|
-
|
|
24211
|
-
//#region src/client/cli-settings-rpc.ts
|
|
24136
|
+
// src/client/cli-settings-rpc.ts
|
|
24212
24137
|
const CATALOG_ENDPOINTS = /* @__PURE__ */ new Set([
|
|
24213
24138
|
"cli/catalog",
|
|
24214
24139
|
"cli/catalog/refresh",
|
|
@@ -24287,8 +24212,7 @@ window.__ModuleLoader__.load({
|
|
|
24287
24212
|
function asRecord$7(value) {
|
|
24288
24213
|
return typeof value === "object" && value !== null && !Array.isArray(value) ? value : null;
|
|
24289
24214
|
}
|
|
24290
|
-
|
|
24291
|
-
//#region src/client/peer-host-management-api.ts
|
|
24215
|
+
// src/client/peer-host-management-api.ts
|
|
24292
24216
|
/** PeerHost 管理 RPC 封装;客户端不接受目标凭据字段。 */
|
|
24293
24217
|
function createPeerHostManagementApi(rpc) {
|
|
24294
24218
|
const call = async (endpoint, payload, signal) => {
|
|
@@ -24340,8 +24264,7 @@ window.__ModuleLoader__.load({
|
|
|
24340
24264
|
diagnostics: () => call("peerHost/diagnostics", {})
|
|
24341
24265
|
};
|
|
24342
24266
|
}
|
|
24343
|
-
|
|
24344
|
-
//#region src/client/cli-management-terminal.ts
|
|
24267
|
+
// src/client/cli-management-terminal.ts
|
|
24345
24268
|
/** Follow new output until the user scrolls up to inspect earlier lines. */
|
|
24346
24269
|
function CliManagementTerminal({ operation, t }) {
|
|
24347
24270
|
const viewport = (0, react.useRef)(null);
|
|
@@ -24437,8 +24360,7 @@ window.__ModuleLoader__.load({
|
|
|
24437
24360
|
}
|
|
24438
24361
|
}, operation.output || t(operation.state === "running" ? "cli.manage.waitingOutput" : "cli.manage.emptyOutput")));
|
|
24439
24362
|
}
|
|
24440
|
-
|
|
24441
|
-
//#region src/client/cli-management-dialog.ts
|
|
24363
|
+
// src/client/cli-management-dialog.ts
|
|
24442
24364
|
function cliManagementAction(adapter) {
|
|
24443
24365
|
if (adapter.detectionState === "pending" || adapter.detectionState === "running" || adapter.detectionState === "error" || adapter.detectionFailure) return null;
|
|
24444
24366
|
if (!adapter.installed) return "install";
|
|
@@ -24785,8 +24707,7 @@ window.__ModuleLoader__.load({
|
|
|
24785
24707
|
whiteSpace: "pre-wrap"
|
|
24786
24708
|
} }, state === "succeeded" ? t("cli.manage.succeeded", { version: operation.adapter?.version ?? "—" }) : operation.error ?? t(`cli.manage.${state}`))));
|
|
24787
24709
|
}
|
|
24788
|
-
|
|
24789
|
-
//#region src/client/features/cli-adapters.ts
|
|
24710
|
+
// src/client/features/cli-adapters.ts
|
|
24790
24711
|
const CLI_ADAPTER_STYLE_ID = "codingns4dsh-cli-adapter-settings-style";
|
|
24791
24712
|
const cliAdapterClass = {
|
|
24792
24713
|
panel: "codingns4dsh-cli-adapter-panel",
|
|
@@ -25668,8 +25589,7 @@ window.__ModuleLoader__.load({
|
|
|
25668
25589
|
fontSize: uiFontSize(13)
|
|
25669
25590
|
} }, t("cli.thinkingLevel", { value: model.efforts.length > 0 ? model.efforts.map((effort) => model.effortLabels?.[effort] ?? effort).join(t("common.listSeparator")) : t("cli.defaultEffort") })));
|
|
25670
25591
|
}
|
|
25671
|
-
|
|
25672
|
-
//#region src/client/feature-requirement.ts
|
|
25592
|
+
// src/client/feature-requirement.ts
|
|
25673
25593
|
/** Magpie 安装探测的 RPC 端点;设置卡片与模块面板共用一个探测结果。 */
|
|
25674
25594
|
const MAGPIE_DETECTION_ENDPOINT = "magpie/management/detection";
|
|
25675
25595
|
/**
|
|
@@ -25775,8 +25695,7 @@ window.__ModuleLoader__.load({
|
|
|
25775
25695
|
function isRecord$12(value) {
|
|
25776
25696
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
25777
25697
|
}
|
|
25778
|
-
|
|
25779
|
-
//#region src/client/features/magpie-provider-logo.ts
|
|
25698
|
+
// src/client/features/magpie-provider-logo.ts
|
|
25780
25699
|
function MagpieProviderLogo({ identities, logoDataUrl, size = 24, className = "codingns-magpie-provider-logo", fallback = "initial" }) {
|
|
25781
25700
|
const identity = identities.find((value) => value !== void 0 && value !== null && value.trim() !== "");
|
|
25782
25701
|
const hostLogo = logoDataUrl?.trim() ?? "";
|
|
@@ -25806,8 +25725,7 @@ window.__ModuleLoader__.load({
|
|
|
25806
25725
|
function isHostImageAsset(dataUrl) {
|
|
25807
25726
|
return /^data:image\/(?:png|jpe?g|gif|webp|x-icon|vnd\.microsoft\.icon)[;,]/u.test(dataUrl);
|
|
25808
25727
|
}
|
|
25809
|
-
|
|
25810
|
-
//#region src/client/features/magpie-management-controls.ts
|
|
25728
|
+
// src/client/features/magpie-management-controls.ts
|
|
25811
25729
|
/** Magpie's own names for routing-group policies; a value it does not name stays as returned. */
|
|
25812
25730
|
const ROUTING_POLICY_LABELS = {
|
|
25813
25731
|
smart: "magpie.management.routing.smart",
|
|
@@ -26872,8 +26790,7 @@ window.__ModuleLoader__.load({
|
|
|
26872
26790
|
if (update.effort !== void 0) changes.push(t("magpie.management.reviewEffort", { value: update.effort === GROUP_EFFORT_AUTO ? t("magpie.management.reviewEffortAuto", { model: update.classifier ?? "" }) : t("magpie.management.effortAgent") }));
|
|
26873
26791
|
return changes.join(" · ");
|
|
26874
26792
|
}
|
|
26875
|
-
|
|
26876
|
-
//#region src/client/features/subscription-quota-groups.ts
|
|
26793
|
+
// src/client/features/subscription-quota-groups.ts
|
|
26877
26794
|
/**
|
|
26878
26795
|
* 按厂商分组,保持上游首次出现的顺序。
|
|
26879
26796
|
*
|
|
@@ -27454,8 +27371,7 @@ window.__ModuleLoader__.load({
|
|
|
27454
27371
|
}
|
|
27455
27372
|
return null;
|
|
27456
27373
|
}
|
|
27457
|
-
|
|
27458
|
-
//#region src/client/features/magpie-management-page.ts
|
|
27374
|
+
// src/client/features/magpie-management-page.ts
|
|
27459
27375
|
const PERIODS = [
|
|
27460
27376
|
{
|
|
27461
27377
|
id: "today",
|
|
@@ -29280,8 +29196,7 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
29280
29196
|
style.textContent = MAGPIE_PAGE_CSS;
|
|
29281
29197
|
document.head.appendChild(style);
|
|
29282
29198
|
}
|
|
29283
|
-
|
|
29284
|
-
//#region src/client/features/magpie-mark.ts
|
|
29199
|
+
// src/client/features/magpie-mark.ts
|
|
29285
29200
|
/**
|
|
29286
29201
|
* 侧栏入口使用的喜鹊剪影路径(viewBox 0 0 100 100,单条闭合轮廓,配合 `fill-rule="evenodd"`)。
|
|
29287
29202
|
*
|
|
@@ -29291,8 +29206,7 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
29291
29206
|
* 与 DSH 原生图标同色,也不依赖任何图标路由是否已重启生效。
|
|
29292
29207
|
*/
|
|
29293
29208
|
const MAGPIE_MARK_PATH = "M2.36 11.50L3.78 11.50L7.56 13.39L10.87 15.91L14.17 19.21L18.43 25.35L22.36 34.17L25.51 39.53L29.76 44.25L32.60 46.14L35.43 47.40L36.85 47.40L37.95 46.77L51.81 36.69L54.02 34.33L56.38 30.87L61.57 21.10L65.67 17.17L69.13 15.28L71.34 14.65L74.17 14.49L77.64 14.65L80.00 15.28L83.94 17.32L87.40 20.31L88.66 20.94L90.39 20.94L95.12 22.20L99.69 24.41L100.00 25.04L99.53 25.35L92.60 26.46L88.82 27.72L85.98 29.92L84.88 31.97L84.72 35.91L85.35 37.95L88.50 44.09L88.50 45.04L89.13 46.30L89.76 50.39L89.76 56.06L88.50 62.36L86.61 67.40L83.46 73.07L80.94 76.54L76.06 81.42L72.13 84.25L69.45 85.67L61.89 88.19L54.02 88.50L48.50 87.56L43.62 85.67L38.43 82.52L28.66 74.96L24.41 73.07L19.84 72.28L22.05 70.08L24.57 68.82L25.51 68.82L25.98 68.35L25.67 68.03L24.09 68.03L21.89 68.66L17.17 70.71L17.01 70.24L18.11 68.03L20.63 64.09L25.98 57.80L25.20 57.01L23.31 58.43L19.37 51.97L15.43 48.03L4.57 40.94L1.26 37.17L0.00 33.39L0.00 31.81L0.31 31.65L4.57 34.17L9.76 38.11L10.55 37.95L10.08 37.01L4.57 32.76L2.36 30.55L0.47 27.09L0.00 25.20L0.16 21.26L1.42 21.73L8.82 29.45L9.61 28.82L5.51 24.09L2.36 19.21L1.42 15.43L1.73 12.13L2.20 11.65Z";
|
|
29294
|
-
|
|
29295
|
-
//#region src/client/features/magpie-management.ts
|
|
29209
|
+
// src/client/features/magpie-management.ts
|
|
29296
29210
|
const MAGPIE_PANEL_ID = "codingns4dsh-magpie-management";
|
|
29297
29211
|
/** Opt-in Magpie dashboard contributed to DSH's native global panel list. */
|
|
29298
29212
|
const magpieManagementFeature = {
|
|
@@ -29497,8 +29411,7 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
29497
29411
|
const time = Date.parse(value);
|
|
29498
29412
|
return Number.isFinite(time) ? new Date(time).toLocaleTimeString() : value;
|
|
29499
29413
|
}
|
|
29500
|
-
|
|
29501
|
-
//#region src/client/features/terminal-enhancement-panel.ts
|
|
29414
|
+
// src/client/features/terminal-enhancement-panel.ts
|
|
29502
29415
|
const profileLabels = {
|
|
29503
29416
|
system: "terminal.systemRecommended",
|
|
29504
29417
|
zsh: "zsh",
|
|
@@ -29816,8 +29729,7 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
29816
29729
|
fontSize: uiFontSize(12),
|
|
29817
29730
|
lineHeight: 1
|
|
29818
29731
|
};
|
|
29819
|
-
|
|
29820
|
-
//#region src/client/features/terminal-enhancement.ts
|
|
29732
|
+
// src/client/features/terminal-enhancement.ts
|
|
29821
29733
|
/** “终端增强”只切换 backend;插件 controller 与 Sidebar UI 始终存在。 */
|
|
29822
29734
|
const terminalEnhancementFeature = {
|
|
29823
29735
|
descriptor: {
|
|
@@ -29827,6 +29739,12 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
29827
29739
|
dependencies: [],
|
|
29828
29740
|
runtime: "client",
|
|
29829
29741
|
activation: "restart",
|
|
29742
|
+
nativeReplacement: {
|
|
29743
|
+
dshFeature: "@deepseek-ai/dsh-experimental-terminal-bundle",
|
|
29744
|
+
since: "0.2.2-alpha.2",
|
|
29745
|
+
coverage: "full",
|
|
29746
|
+
note: "DSH now bundles the native terminal surface and its settings path."
|
|
29747
|
+
},
|
|
29830
29748
|
ui: {
|
|
29831
29749
|
label: "Terminal enhancements",
|
|
29832
29750
|
description: "Configure the default shell and terminal appearance. Enabling or disabling requires a DSH restart.",
|
|
@@ -29840,8 +29758,7 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
29840
29758
|
start: () => void 0,
|
|
29841
29759
|
settingsPanel: TerminalEnhancementPanel
|
|
29842
29760
|
};
|
|
29843
|
-
|
|
29844
|
-
//#region src/client/native-workspace-store.ts
|
|
29761
|
+
// src/client/native-workspace-store.ts
|
|
29845
29762
|
/**
|
|
29846
29763
|
* 读取原生 Workspace 列表 Store 对象本身。
|
|
29847
29764
|
*
|
|
@@ -29918,8 +29835,7 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
29918
29835
|
function isRecord$11(value) {
|
|
29919
29836
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
29920
29837
|
}
|
|
29921
|
-
|
|
29922
|
-
//#region src/client/peer-host-aggregate-refresh.ts
|
|
29838
|
+
// src/client/peer-host-aggregate-refresh.ts
|
|
29923
29839
|
let refresh;
|
|
29924
29840
|
let refreshGeneration = 0;
|
|
29925
29841
|
/** 注册当前页面的聚合刷新入口;返回取消注册。 */
|
|
@@ -29941,8 +29857,7 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
29941
29857
|
function isPeerHostAggregateRefreshRegistered() {
|
|
29942
29858
|
return refresh !== void 0;
|
|
29943
29859
|
}
|
|
29944
|
-
|
|
29945
|
-
//#region src/client/workspace-session-fiber.ts
|
|
29860
|
+
// src/client/workspace-session-fiber.ts
|
|
29946
29861
|
/** 从 DSH 侧栏会话行对应的 React Fiber 向上查找会话身份。 */
|
|
29947
29862
|
function resolveDshSessionId(row) {
|
|
29948
29863
|
const carrier = row;
|
|
@@ -29968,8 +29883,7 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
29968
29883
|
function isRecord$10(value) {
|
|
29969
29884
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
29970
29885
|
}
|
|
29971
|
-
|
|
29972
|
-
//#region src/client/workspace-session-logo-dom.ts
|
|
29886
|
+
// src/client/workspace-session-logo-dom.ts
|
|
29973
29887
|
const WORKSPACE_SESSION_ROW_SELECTOR = "[role=\"treeitem\"]";
|
|
29974
29888
|
const WORKSPACE_SESSION_LOGO_ATTRIBUTE = "data-codingns-session-logo";
|
|
29975
29889
|
/**
|
|
@@ -30078,8 +29992,7 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
30078
29992
|
});
|
|
30079
29993
|
return container;
|
|
30080
29994
|
}
|
|
30081
|
-
|
|
30082
|
-
//#region src/client/workspace-session-archive-dom.ts
|
|
29995
|
+
// src/client/workspace-session-archive-dom.ts
|
|
30083
29996
|
/** 归档入口和模态框节点使用的标记,便于重复扫描与停用时完整清理。 */
|
|
30084
29997
|
const WORKSPACE_SESSION_ARCHIVE_ATTRIBUTE = "data-codingns-session-archive";
|
|
30085
29998
|
const WORKSPACE_SESSION_ARCHIVE_MODAL_ATTRIBUTE = "data-codingns-session-archive-modal";
|
|
@@ -30826,8 +30739,7 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
30826
30739
|
function isRecord$9(value) {
|
|
30827
30740
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
30828
30741
|
}
|
|
30829
|
-
|
|
30830
|
-
//#region src/client/workspace-session-visibility-dom.ts
|
|
30742
|
+
// src/client/workspace-session-visibility-dom.ts
|
|
30831
30743
|
/** 工作区隐藏注入节点的标记,便于重复扫描和停用时完整清理。 */
|
|
30832
30744
|
const WORKSPACE_SESSION_HIDDEN_ATTRIBUTE = "data-codingns-hidden-workspace";
|
|
30833
30745
|
const WORKSPACE_SESSION_HIDDEN_MENU_ATTRIBUTE = "data-codingns-hidden-workspace-menu";
|
|
@@ -31412,8 +31324,7 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
31412
31324
|
paddingTop: "4px",
|
|
31413
31325
|
borderTop: "1px solid var(--dsw-alias-border-l3, rgba(128,128,128,.18))"
|
|
31414
31326
|
};
|
|
31415
|
-
|
|
31416
|
-
//#region src/client/features/subscription-usage-panel.ts
|
|
31327
|
+
// src/client/features/subscription-usage-panel.ts
|
|
31417
31328
|
/**
|
|
31418
31329
|
* 用量查询设置对话框:单次查询超时与自动查询间隔。
|
|
31419
31330
|
*
|
|
@@ -31570,8 +31481,7 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
31570
31481
|
borderRadius: 6,
|
|
31571
31482
|
fontSize: uiFontSize(13)
|
|
31572
31483
|
};
|
|
31573
|
-
|
|
31574
|
-
//#region src/client/features/workspace-session-enhancement-panel.ts
|
|
31484
|
+
// src/client/features/workspace-session-enhancement-panel.ts
|
|
31575
31485
|
/** 工作区会话增强的单列设置面板。 */
|
|
31576
31486
|
function WorkspaceSessionEnhancementPanel({ services, enabled, snapshot, notify }) {
|
|
31577
31487
|
const t = require_magpie_model_tag.useCodingNsTranslator(services.locale);
|
|
@@ -31715,8 +31625,7 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
31715
31625
|
strokeWidth: 1.15
|
|
31716
31626
|
}));
|
|
31717
31627
|
}
|
|
31718
|
-
|
|
31719
|
-
//#region src/client/serial-polling.ts
|
|
31628
|
+
// src/client/serial-polling.ts
|
|
31720
31629
|
/**
|
|
31721
31630
|
* 完成后再计时,失败逐步退避;隐藏页面暂停,销毁时取消在途请求。
|
|
31722
31631
|
* 手动刷新复用在途 Promise,避免慢 Host 上请求越积越多。
|
|
@@ -31775,8 +31684,7 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
31775
31684
|
}
|
|
31776
31685
|
};
|
|
31777
31686
|
}
|
|
31778
|
-
|
|
31779
|
-
//#region src/client/cli-session-config-cache.ts
|
|
31687
|
+
// src/client/cli-session-config-cache.ts
|
|
31780
31688
|
/** 会话配置在一次导航期间由多个 Slot 共同读取;共享短期快照即可消除重复 RPC。 */
|
|
31781
31689
|
const SESSION_CONFIG_CACHE_TTL_MS = 5e3;
|
|
31782
31690
|
const caches = /* @__PURE__ */ new WeakMap();
|
|
@@ -31826,8 +31734,7 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
31826
31734
|
}
|
|
31827
31735
|
return cache;
|
|
31828
31736
|
}
|
|
31829
|
-
|
|
31830
|
-
//#region src/client/subscription-slot.ts
|
|
31737
|
+
// src/client/subscription-slot.ts
|
|
31831
31738
|
const SUBSCRIPTION_STYLE_ID = "codingns4dsh-subscription-responsive-style";
|
|
31832
31739
|
/**
|
|
31833
31740
|
* 没有 locale 服务时的静态兜底:命名空间绑定固定指向内置中文词典,
|
|
@@ -34607,8 +34514,7 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
34607
34514
|
function isStylable(element) {
|
|
34608
34515
|
return element.style !== void 0;
|
|
34609
34516
|
}
|
|
34610
|
-
|
|
34611
|
-
//#region src/client/quick-phrase-slot.ts
|
|
34517
|
+
// src/client/quick-phrase-slot.ts
|
|
34612
34518
|
const QUICK_PHRASE_FALLBACK_SIZE = 28;
|
|
34613
34519
|
const QUICK_PHRASE_FALLBACK_ICON_SIZE = 14;
|
|
34614
34520
|
const QUICK_PHRASE_STYLE_ID = "codingns4dsh-quick-phrase-responsive-style";
|
|
@@ -35179,8 +35085,7 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
35179
35085
|
textAlign: "center",
|
|
35180
35086
|
fontSize: uiFontSize(13)
|
|
35181
35087
|
};
|
|
35182
|
-
|
|
35183
|
-
//#region src/client/workspace-session-rightbar-dom.ts
|
|
35088
|
+
// src/client/workspace-session-rightbar-dom.ts
|
|
35184
35089
|
/** 右侧栏宽度比例的本地存储键;宽度属于浏览器布局,不应同步到 Host。 */
|
|
35185
35090
|
const WORKSPACE_RIGHTBAR_RATIO_STORAGE_KEY = "codingns4dsh.workspace.rightbar-ratio.v1";
|
|
35186
35091
|
const RIGHTBAR_HANDLE_SELECTOR = "[data-side=\"rightbar\"], .workbench-side-resizer[data-side=\"right\"]";
|
|
@@ -35441,8 +35346,7 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
35441
35346
|
function sharesMatch(left, right) {
|
|
35442
35347
|
return Math.abs(left - right) < .002;
|
|
35443
35348
|
}
|
|
35444
|
-
|
|
35445
|
-
//#region src/client/service-tier.ts
|
|
35349
|
+
// src/client/service-tier.ts
|
|
35446
35350
|
/**
|
|
35447
35351
|
* 服务档位(例如 Codex 官方订阅的 Fast)的展示与选择规则。
|
|
35448
35352
|
*
|
|
@@ -35531,8 +35435,7 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
35531
35435
|
if (current === void 0 || current === "") return void 0;
|
|
35532
35436
|
return modelServiceTiers(model).some((tier) => tier.id === current) ? current : STANDARD_SERVICE_TIER_ID;
|
|
35533
35437
|
}
|
|
35534
|
-
|
|
35535
|
-
//#region src/client/native-model-translation-menu.ts
|
|
35438
|
+
// src/client/native-model-translation-menu.ts
|
|
35536
35439
|
/**
|
|
35537
35440
|
* DSH 模型菜单尚无扩展插槽,通过原生触发器的 aria-controls 定位当前会话菜单。
|
|
35538
35441
|
* 只添加翻译行的 Portal 容器,原生模型选择、思考强度和菜单交互继续由 DSH 管理。
|
|
@@ -35670,8 +35573,7 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
35670
35573
|
const name = value.trim().replace(/\s+/gu, " ").toLocaleLowerCase("en-US");
|
|
35671
35574
|
return name === "" ? null : name;
|
|
35672
35575
|
}
|
|
35673
|
-
|
|
35674
|
-
//#region src/client/conversation-translation-settings.ts
|
|
35576
|
+
// src/client/conversation-translation-settings.ts
|
|
35675
35577
|
const messageSettings = [
|
|
35676
35578
|
["inputEnabled", "cli.translationUserMessages"],
|
|
35677
35579
|
["reasoningEnabled", "cli.translationThinkingMessages"],
|
|
@@ -35731,18 +35633,8 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
35731
35633
|
}
|
|
35732
35634
|
}, error));
|
|
35733
35635
|
}
|
|
35734
|
-
|
|
35735
|
-
|
|
35736
|
-
var cli_slots_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
|
|
35737
|
-
AgentSlot: () => AgentSlot,
|
|
35738
|
-
ModelSlot: () => ModelSlot,
|
|
35739
|
-
cliSessionSelectionRevision: () => cliSessionSelectionRevision,
|
|
35740
|
-
modelMenuLeftOffset: () => modelMenuLeftOffset,
|
|
35741
|
-
registerCliConversationSlots: () => registerCliConversationSlots,
|
|
35742
|
-
useCliSessionTranslationEnabled: () => useCliSessionTranslationEnabled,
|
|
35743
|
-
useCliSessionTranslationState: () => useCliSessionTranslationState,
|
|
35744
|
-
waitForCliSessionSelection: () => waitForCliSessionSelection
|
|
35745
|
-
});
|
|
35636
|
+
// src/client/cli-slots.ts
|
|
35637
|
+
var cli_slots_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({ registerCliConversationSlots: () => registerCliConversationSlots });
|
|
35746
35638
|
const claudeModelAliases = [
|
|
35747
35639
|
"provider-default",
|
|
35748
35640
|
"sonnet",
|
|
@@ -36973,8 +36865,7 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
36973
36865
|
function isSessionLocked(session) {
|
|
36974
36866
|
return session !== void 0 && (!session.blank || Boolean(session.promptAttempted) || Boolean(session.running) || (session.queue?.length ?? 0) > 0);
|
|
36975
36867
|
}
|
|
36976
|
-
|
|
36977
|
-
//#region src/client/skill-reference-dom.ts
|
|
36868
|
+
// src/client/skill-reference-dom.ts
|
|
36978
36869
|
/**
|
|
36979
36870
|
* Skill 引用的视觉投影。
|
|
36980
36871
|
*
|
|
@@ -37139,8 +37030,7 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
37139
37030
|
].join("");
|
|
37140
37031
|
dom.head.appendChild(style);
|
|
37141
37032
|
}
|
|
37142
|
-
|
|
37143
|
-
//#region src/client/skill-command.ts
|
|
37033
|
+
// src/client/skill-command.ts
|
|
37144
37034
|
const SKILL_COMMAND_NAME = "skills";
|
|
37145
37035
|
const SKILL_INPUT_SOURCE = "codingns-skills";
|
|
37146
37036
|
const SKILL_CATALOG_CACHE_TTL_MS = 3e4;
|
|
@@ -37408,8 +37298,7 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
37408
37298
|
return;
|
|
37409
37299
|
}
|
|
37410
37300
|
}
|
|
37411
|
-
|
|
37412
|
-
//#region src/client/features/workspace-session-enhancement.ts
|
|
37301
|
+
// src/client/features/workspace-session-enhancement.ts
|
|
37413
37302
|
/** descriptor 的 label/description 只是词典缺失时的兜底,取内置中文词典。 */
|
|
37414
37303
|
const fallbackT$4 = require_magpie_model_tag.resolveCodingNsTranslator();
|
|
37415
37304
|
/** DSH 0.1.6 原生会话行增强:Logo 与归档会话入口共用同一生命周期。 */
|
|
@@ -37420,6 +37309,12 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
37420
37309
|
enabledByDefault: false,
|
|
37421
37310
|
dependencies: ["cliAdapters"],
|
|
37422
37311
|
runtime: "client",
|
|
37312
|
+
nativeReplacement: {
|
|
37313
|
+
dshFeature: "DSH native session list, session search, plugin icons, and working-directory presentation",
|
|
37314
|
+
since: "0.2.2-alpha.2",
|
|
37315
|
+
coverage: "partial",
|
|
37316
|
+
note: "Native DSH now covers several session-list and navigation enhancements; plugin-specific workspace/archive presentation remains."
|
|
37317
|
+
},
|
|
37423
37318
|
ui: {
|
|
37424
37319
|
label: fallbackT$4("feature.workspaceSession.label"),
|
|
37425
37320
|
description: fallbackT$4("feature.workspaceSession.description"),
|
|
@@ -37618,8 +37513,7 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
37618
37513
|
},
|
|
37619
37514
|
settingsPanel: WorkspaceSessionEnhancementPanel
|
|
37620
37515
|
};
|
|
37621
|
-
|
|
37622
|
-
//#region src/client/mobile-sidebar-logo.ts
|
|
37516
|
+
// src/client/mobile-sidebar-logo.ts
|
|
37623
37517
|
/**
|
|
37624
37518
|
* DSH 官方品牌鲸鱼图形的几何数据。
|
|
37625
37519
|
*
|
|
@@ -37637,8 +37531,7 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
37637
37531
|
width: 23.16,
|
|
37638
37532
|
height: 17.04
|
|
37639
37533
|
};
|
|
37640
|
-
|
|
37641
|
-
//#region src/client/mobile-sidebar-rail-dom.ts
|
|
37534
|
+
// src/client/mobile-sidebar-rail-dom.ts
|
|
37642
37535
|
/**
|
|
37643
37536
|
* 移动端左侧边栏彻底隐藏器。
|
|
37644
37537
|
*
|
|
@@ -37993,8 +37886,7 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
37993
37886
|
if (typeof dom.documentElement.contains !== "function") return true;
|
|
37994
37887
|
return dom.documentElement.contains(element);
|
|
37995
37888
|
}
|
|
37996
|
-
|
|
37997
|
-
//#region src/client/mobile-vibration.ts
|
|
37889
|
+
// src/client/mobile-vibration.ts
|
|
37998
37890
|
/** 尝试触发一次振动;返回 true 表示浏览器接受了调用。 */
|
|
37999
37891
|
function vibrateMobile(pattern = 10, globalLike = globalThis) {
|
|
38000
37892
|
const navigatorLike = globalLike.navigator;
|
|
@@ -38516,8 +38408,7 @@ html[data-codingns-mobile-sidebar="on"] .codingns-magpie-page{padding-left:0;--m
|
|
|
38516
38408
|
}
|
|
38517
38409
|
return now();
|
|
38518
38410
|
}
|
|
38519
|
-
|
|
38520
|
-
//#region src/client/mobile-rightbar-tabs-dom.ts
|
|
38411
|
+
// src/client/mobile-rightbar-tabs-dom.ts
|
|
38521
38412
|
/**
|
|
38522
38413
|
* 移动端右栏标签条优先使用浏览器原生横向滚动。
|
|
38523
38414
|
*
|
|
@@ -38601,8 +38492,7 @@ ${scope} [data-dockkit-strip-tabs] {
|
|
|
38601
38492
|
}
|
|
38602
38493
|
`;
|
|
38603
38494
|
}
|
|
38604
|
-
|
|
38605
|
-
//#region src/client/mobile-settings-modal-dom.ts
|
|
38495
|
+
// src/client/mobile-settings-modal-dom.ts
|
|
38606
38496
|
/**
|
|
38607
38497
|
* DSH 设置弹窗的移动端布局适配。
|
|
38608
38498
|
*
|
|
@@ -38727,8 +38617,7 @@ ${scope} [data-dockkit-strip-tabs] {
|
|
|
38727
38617
|
`[${MOBILE_SETTINGS_MODAL_ATTRIBUTE}="on"]>div{box-sizing:border-box!important;min-width:0!important;flex:1 1 auto!important;width:auto!important}`,
|
|
38728
38618
|
`[${MOBILE_SETTINGS_MODAL_ATTRIBUTE}="on"]>div>div:last-child{box-sizing:border-box!important;min-width:0!important;width:100%!important;padding-left:8px!important;padding-right:8px!important}`
|
|
38729
38619
|
].join("");
|
|
38730
|
-
|
|
38731
|
-
//#region src/client/mobile-team-panel-dom.ts
|
|
38620
|
+
// src/client/mobile-team-panel-dom.ts
|
|
38732
38621
|
const PANEL = "[data-team-panel][role=\"dialog\"]";
|
|
38733
38622
|
const MOBILE = "data-codingns-mobile-team";
|
|
38734
38623
|
const HEADER = "data-codingns-team-header";
|
|
@@ -38888,8 +38777,7 @@ ${SCOPE} article>div:last-child { display:flex; flex-wrap:wrap; align-items:cent
|
|
|
38888
38777
|
${SCOPE} article>div:last-child>span { min-width:0; max-width:100%; margin-right:0!important; overflow-wrap:anywhere; }
|
|
38889
38778
|
${SCOPE} article>div:last-child>button { float:none!important; order:1; min-height:36px; margin-left:auto!important; padding:6px!important; touch-action:manipulation; }
|
|
38890
38779
|
`;
|
|
38891
|
-
|
|
38892
|
-
//#region src/client/features/mobile-access-panel.ts
|
|
38780
|
+
// src/client/features/mobile-access-panel.ts
|
|
38893
38781
|
/**
|
|
38894
38782
|
* 移动端访问增强的单列设置面板。
|
|
38895
38783
|
*
|
|
@@ -39302,8 +39190,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
39302
39190
|
if (!response.ok) throw new Error(response.error.message);
|
|
39303
39191
|
return response.value;
|
|
39304
39192
|
}
|
|
39305
|
-
|
|
39306
|
-
//#region src/client/features/mobile-access.ts
|
|
39193
|
+
// src/client/features/mobile-access.ts
|
|
39307
39194
|
/** descriptor 的 label/description 只是词典缺失时的兜底,取内置中文词典。 */
|
|
39308
39195
|
const fallbackT$3 = require_magpie_model_tag.resolveCodingNsTranslator();
|
|
39309
39196
|
/**
|
|
@@ -39386,8 +39273,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
39386
39273
|
},
|
|
39387
39274
|
settingsPanel: MobileAccessPanel
|
|
39388
39275
|
};
|
|
39389
|
-
|
|
39390
|
-
//#region src/client/debug/ui.ts
|
|
39276
|
+
// src/client/debug/ui.ts
|
|
39391
39277
|
const DEBUG_KIND = "debug";
|
|
39392
39278
|
const DEBUG_PROVIDER_ID = "codingns4dsh/debug";
|
|
39393
39279
|
const PORT_CHECK_INTERVAL_MS = 5e3;
|
|
@@ -40477,8 +40363,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
40477
40363
|
function createProfileId() {
|
|
40478
40364
|
return `debug-${(typeof globalThis.crypto?.randomUUID === "function" ? globalThis.crypto.randomUUID() : `${Date.now()}-${Math.random().toString(16).slice(2)}`).slice(0, 12)}`;
|
|
40479
40365
|
}
|
|
40480
|
-
|
|
40481
|
-
//#region src/client/features/debug.ts
|
|
40366
|
+
// src/client/features/debug.ts
|
|
40482
40367
|
/** 工作区调试面板模块;开关关闭时同时移除 Sidebar 标签和注入内容。 */
|
|
40483
40368
|
const debugFeature = {
|
|
40484
40369
|
descriptor: {
|
|
@@ -40502,8 +40387,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
40502
40387
|
context.resources.add(registerDebugUi(uiContext, context.services.rpc, context.services.remote, context.services.terminalRemote, context.services.locale));
|
|
40503
40388
|
}
|
|
40504
40389
|
};
|
|
40505
|
-
|
|
40506
|
-
//#region src/client/model-priority-pool.ts
|
|
40390
|
+
// src/client/model-priority-pool.ts
|
|
40507
40391
|
/** The persisted pool owns priority; modal choices and drag previews remain local until confirmed. */
|
|
40508
40392
|
function ModelPriorityPool({ models: pool, catalog, disabled, pending, t, onChange, titleKey = "translation.modelTitle", pickerTitleKey = "translation.modelPickerTitle", helpKey = "translation.modelHelp", saveRejectedKey = "translation.saveRejected" }) {
|
|
40509
40393
|
const available = new Map((catalog?.models ?? []).filter((model) => !isSessionTranslationAdapter(model.provider)).map((model) => [modelKey(model), model]));
|
|
@@ -40881,8 +40765,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
40881
40765
|
.codingns-translation-picker-count{margin-right:auto}
|
|
40882
40766
|
@media(max-width:480px){.codingns-translation-pool-row{gap:6px;padding-right:8px}.codingns-translation-pool-unavailable{max-width:70px}.codingns-translation-picker-choice{padding:10px}}
|
|
40883
40767
|
`;
|
|
40884
|
-
|
|
40885
|
-
//#region src/client/git-management-settings.ts
|
|
40768
|
+
// src/client/git-management-settings.ts
|
|
40886
40769
|
function GitManagementSettingsPanel({ services, enabled, snapshot, notify }) {
|
|
40887
40770
|
const t = require_magpie_model_tag.useCodingNsTranslator(services.locale);
|
|
40888
40771
|
const value = normalizeGitManagementSettings(snapshot.value?.gitManagement);
|
|
@@ -41008,8 +40891,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
41008
40891
|
}
|
|
41009
40892
|
}, t(saving ? "git.messagePromptSaving" : "git.messagePromptSave")))));
|
|
41010
40893
|
}
|
|
41011
|
-
|
|
41012
|
-
//#region src/client/git-history-graph.ts
|
|
40894
|
+
// src/client/git-history-graph.ts
|
|
41013
40895
|
/**
|
|
41014
40896
|
* 版本列表左侧提交图的泳道布局。
|
|
41015
40897
|
*
|
|
@@ -41216,8 +41098,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
41216
41098
|
function laneCenterX(lane) {
|
|
41217
41099
|
return lane * 12 + 6;
|
|
41218
41100
|
}
|
|
41219
|
-
|
|
41220
|
-
//#region src/client/git-panel-styles.ts
|
|
41101
|
+
// src/client/git-panel-styles.ts
|
|
41221
41102
|
const STYLE_ID$3 = "codingns4dsh-git-panel";
|
|
41222
41103
|
/**
|
|
41223
41104
|
* Git 面板的交互态类名。
|
|
@@ -41324,8 +41205,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
41324
41205
|
@keyframes codingns4dsh-git-spin{to{transform:rotate(360deg)}}
|
|
41325
41206
|
@media (prefers-reduced-motion: reduce){.${gitPanelClass.row}{transition:none}.${gitPanelClass.segmentedIndicator},.${gitPanelClass.segment}{transition:none}.${gitPanelClass.progress}{animation:none}}
|
|
41326
41207
|
`;
|
|
41327
|
-
|
|
41328
|
-
//#region src/client/git-workspace-events.ts
|
|
41208
|
+
// src/client/git-workspace-events.ts
|
|
41329
41209
|
const listenersByWorkspace = /* @__PURE__ */ new Map();
|
|
41330
41210
|
/** 订阅一个工作区的 Git 状态变化;返回幂等取消函数。 */
|
|
41331
41211
|
function subscribeGitWorkspaceChanged(workspaceId, listener) {
|
|
@@ -41352,8 +41232,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
41352
41232
|
function normalizeWorkspaceId$1(value) {
|
|
41353
41233
|
return value.trim();
|
|
41354
41234
|
}
|
|
41355
|
-
|
|
41356
|
-
//#region src/client/git-management.ts
|
|
41235
|
+
// src/client/git-management.ts
|
|
41357
41236
|
function SegmentedControl({ id, value, options, onChange, label, disabled }) {
|
|
41358
41237
|
const index = Math.max(0, options.findIndex((option) => option.value === value));
|
|
41359
41238
|
return (0, react.createElement)("div", {
|
|
@@ -43599,6 +43478,12 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
43599
43478
|
enabledByDefault: true,
|
|
43600
43479
|
dependencies: [],
|
|
43601
43480
|
runtime: "client",
|
|
43481
|
+
nativeReplacement: {
|
|
43482
|
+
dshFeature: "@deepseek-ai/dsh-experimental-tool-worktree change requests",
|
|
43483
|
+
since: "0.2.2-alpha.2",
|
|
43484
|
+
coverage: "partial",
|
|
43485
|
+
note: "Native worktrees and change requests overlap the repository panel only for isolated change workflows."
|
|
43486
|
+
},
|
|
43602
43487
|
ui: {
|
|
43603
43488
|
label: "Git repository management",
|
|
43604
43489
|
labelKey: "feature.gitManagement.label",
|
|
@@ -43620,8 +43505,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
43620
43505
|
},
|
|
43621
43506
|
settingsPanel: GitManagementSettingsPanel
|
|
43622
43507
|
};
|
|
43623
|
-
|
|
43624
|
-
//#region src/client/engine-loader.ts
|
|
43508
|
+
// src/client/engine-loader.ts
|
|
43625
43509
|
/** 合并并发加载;失败后清除 Promise,让用户下次操作能重新下载分块。 */
|
|
43626
43510
|
function createEngineLoader(load) {
|
|
43627
43511
|
let pending;
|
|
@@ -43652,8 +43536,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
43652
43536
|
});
|
|
43653
43537
|
return dispose;
|
|
43654
43538
|
}
|
|
43655
|
-
|
|
43656
|
-
//#region src/client/file-management-dom.ts
|
|
43539
|
+
// src/client/file-management-dom.ts
|
|
43657
43540
|
const DOCUMENT_PREVIEW_SELECTOR = "[data-document-preview]";
|
|
43658
43541
|
const FILE_TREE_ENTRY_SELECTOR = "[data-files-entry][data-files-path]";
|
|
43659
43542
|
const PREVIEW_PATH_SELECTOR = "[data-textpreview-path]";
|
|
@@ -44434,8 +44317,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
44434
44317
|
document.body.append(notice);
|
|
44435
44318
|
globalThis.setTimeout(() => notice.remove(), 2200);
|
|
44436
44319
|
}
|
|
44437
|
-
|
|
44438
|
-
//#region src/client/features/file-management-panel.ts
|
|
44320
|
+
// src/client/features/file-management-panel.ts
|
|
44439
44321
|
/** 文件管理增强的独立能力开关面板。 */
|
|
44440
44322
|
function FileManagementPanel({ services, enabled, snapshot, notify }) {
|
|
44441
44323
|
const t = require_magpie_model_tag.useCodingNsTranslator(services.locale);
|
|
@@ -44489,8 +44371,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
44489
44371
|
onChange
|
|
44490
44372
|
});
|
|
44491
44373
|
}
|
|
44492
|
-
|
|
44493
|
-
//#region src/client/session-changed-files-view.ts
|
|
44374
|
+
// src/client/session-changed-files-view.ts
|
|
44494
44375
|
const SESSION_CHANGED_FILES_VIEW_ID = "codingns4dsh/session-changed-files";
|
|
44495
44376
|
/** 后台轮询只负责兜底发现外部文件变化,不能和页面交互争夺刷新节奏。 */
|
|
44496
44377
|
const SESSION_CHANGED_FILES_BACKGROUND_REFRESH_MS = 3e4;
|
|
@@ -45346,8 +45227,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
45346
45227
|
background: "rgba(220,38,38,.12)"
|
|
45347
45228
|
};
|
|
45348
45229
|
const diffContextLineStyle = { display: "block" };
|
|
45349
|
-
|
|
45350
|
-
//#region src/client/file-viewer-copy-path-menu.ts
|
|
45230
|
+
// src/client/file-viewer-copy-path-menu.ts
|
|
45351
45231
|
const FILE_VIEWER_COPY_PATH_MENU_ID = "codingns4dsh-copy-file-path";
|
|
45352
45232
|
/** 标签菜单 extras 在单测或 Slot 未注入 locale 时退回内置中文词典。 */
|
|
45353
45233
|
const FALLBACK_LOCALE = {
|
|
@@ -45438,8 +45318,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
45438
45318
|
function cssAttribute(value) {
|
|
45439
45319
|
return value.replaceAll("\\", "\\\\").replaceAll("\"", "\\\"");
|
|
45440
45320
|
}
|
|
45441
|
-
|
|
45442
|
-
//#region src/client/html-workspace-files.ts
|
|
45321
|
+
// src/client/html-workspace-files.ts
|
|
45443
45322
|
const REQUEST = "codingns.html-files.request.v1";
|
|
45444
45323
|
const RESPONSE = "codingns.html-files.response.v1";
|
|
45445
45324
|
const OPERATIONS = /* @__PURE__ */ new Set([
|
|
@@ -45584,8 +45463,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
45584
45463
|
window.removeEventListener("message", onMessage);
|
|
45585
45464
|
};
|
|
45586
45465
|
}
|
|
45587
|
-
|
|
45588
|
-
//#region src/client/features/file-management.ts
|
|
45466
|
+
// src/client/features/file-management.ts
|
|
45589
45467
|
/** descriptor 的 label/description 只是词典缺失时的兜底,取内置中文词典。 */
|
|
45590
45468
|
const fallbackT$2 = require_magpie_model_tag.resolveCodingNsTranslator();
|
|
45591
45469
|
/** 文件管理增强:只在模块启用期间挂载右键菜单和文本编辑器。 */
|
|
@@ -45596,6 +45474,12 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
45596
45474
|
enabledByDefault: false,
|
|
45597
45475
|
dependencies: [],
|
|
45598
45476
|
runtime: "client",
|
|
45477
|
+
nativeReplacement: {
|
|
45478
|
+
dshFeature: "DSH native file delivery, image upload, and drag-and-drop",
|
|
45479
|
+
since: "0.2.2-alpha.2",
|
|
45480
|
+
coverage: "partial",
|
|
45481
|
+
note: "Native delivery replaces the file-transfer subset; the plugin still owns its editor, HTML workspace, and change-management surfaces."
|
|
45482
|
+
},
|
|
45599
45483
|
ui: {
|
|
45600
45484
|
label: fallbackT$2("feature.fileManagement.label"),
|
|
45601
45485
|
description: fallbackT$2("feature.fileManagement.description"),
|
|
@@ -45658,8 +45542,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
45658
45542
|
},
|
|
45659
45543
|
settingsPanel: FileManagementPanel
|
|
45660
45544
|
};
|
|
45661
|
-
|
|
45662
|
-
//#region src/shared/contracts/quick-apps.ts
|
|
45545
|
+
// src/shared/contracts/quick-apps.ts
|
|
45663
45546
|
const QUICK_APP_RUNTIME_REASONS = [
|
|
45664
45547
|
"not-configured",
|
|
45665
45548
|
"config-invalid",
|
|
@@ -45678,8 +45561,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
45678
45561
|
shortcuts: 200,
|
|
45679
45562
|
lifetimeMs: 18e5
|
|
45680
45563
|
});
|
|
45681
|
-
|
|
45682
|
-
//#region src/client/quick-apps/client.ts
|
|
45564
|
+
// src/client/quick-apps/client.ts
|
|
45683
45565
|
/** The controlling Host keeps metadata; no active conversation or browser storage is consulted. */
|
|
45684
45566
|
var QuickAppsClient = class {
|
|
45685
45567
|
rpc;
|
|
@@ -45758,8 +45640,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
45758
45640
|
if (id) await this.call("close", { id });
|
|
45759
45641
|
}
|
|
45760
45642
|
};
|
|
45761
|
-
|
|
45762
|
-
//#region src/shared/quick-app-network-allow.ts
|
|
45643
|
+
// src/shared/quick-app-network-allow.ts
|
|
45763
45644
|
const RANGES = [
|
|
45764
45645
|
["0.0.0.0", 8],
|
|
45765
45646
|
["10.0.0.0", 8],
|
|
@@ -45928,8 +45809,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
45928
45809
|
function invalid() {
|
|
45929
45810
|
return /* @__PURE__ */ new Error("Invalid local network allow list.");
|
|
45930
45811
|
}
|
|
45931
|
-
|
|
45932
|
-
//#region src/client/quick-apps/presentation.ts
|
|
45812
|
+
// src/client/quick-apps/presentation.ts
|
|
45933
45813
|
function newQuickAppDraft(order) {
|
|
45934
45814
|
return {
|
|
45935
45815
|
id: "",
|
|
@@ -45992,8 +45872,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
45992
45872
|
}
|
|
45993
45873
|
};
|
|
45994
45874
|
}
|
|
45995
|
-
|
|
45996
|
-
//#region src/client/quick-apps/ui.ts
|
|
45875
|
+
// src/client/quick-apps/ui.ts
|
|
45997
45876
|
/** Content atoms follow CodingNS ModalAtoms; DSH retains the portal and focus lifecycle. */
|
|
45998
45877
|
function QuickAppField({ id, label, help, error, children }) {
|
|
45999
45878
|
return (0, react.createElement)("div", { className: "qa-field" }, (0, react.createElement)("label", { htmlFor: id }, label), children, error ? (0, react.createElement)("span", {
|
|
@@ -46037,8 +45916,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
46037
45916
|
"aria-hidden": true
|
|
46038
45917
|
}, (0, react.createElement)("path", { d: path }));
|
|
46039
45918
|
}
|
|
46040
|
-
|
|
46041
|
-
//#region src/client/quick-apps/styles.ts
|
|
45919
|
+
// src/client/quick-apps/styles.ts
|
|
46042
45920
|
/** Parent ModalAtoms/shortcut-rail layout, scoped to this plugin and mapped to DSH theme tokens. */
|
|
46043
45921
|
const quickAppsCss = `
|
|
46044
45922
|
.codingns-quick-app-rail{width:100%;min-width:0;margin:0 0 6px;color:${dshThemeColor.labelPrimary};font-size:${uiFontSize(12)}}
|
|
@@ -46189,8 +46067,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
46189
46067
|
.codingns-quick-app-dialog .qa-file-input .qa-browse{min-height:36px}
|
|
46190
46068
|
}
|
|
46191
46069
|
`;
|
|
46192
|
-
|
|
46193
|
-
//#region src/client/quick-apps/workspace-picker.ts
|
|
46070
|
+
// src/client/quick-apps/workspace-picker.ts
|
|
46194
46071
|
const workspaceChoiceId = (workspace) => JSON.stringify([workspace.hostId ?? "local", workspace.workspaceId]);
|
|
46195
46072
|
/** The native menu owns placement, keyboard navigation and focus return. IDs never depend on list order. */
|
|
46196
46073
|
function QuickAppWorkspacePicker({ workspaces, hostId, workspaceId, disabled, error, t, onSelect }) {
|
|
@@ -46251,8 +46128,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
46251
46128
|
role: "alert"
|
|
46252
46129
|
}, error) : null);
|
|
46253
46130
|
}
|
|
46254
|
-
|
|
46255
|
-
//#region src/client/quick-apps/file-picker.ts
|
|
46131
|
+
// src/client/quick-apps/file-picker.ts
|
|
46256
46132
|
/** A selection dialog over the native Host directory service, independent of conversation tabs. */
|
|
46257
46133
|
function QuickAppFilePicker({ client, workspace, value, t, onSelect, onClose }) {
|
|
46258
46134
|
const [path, setPath] = (0, react.useState)(value.includes("/") ? value.slice(0, value.lastIndexOf("/")) : "");
|
|
@@ -46374,8 +46250,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
46374
46250
|
role: "status"
|
|
46375
46251
|
}, selected || t("quickApps.selectFileHint"))));
|
|
46376
46252
|
}
|
|
46377
|
-
|
|
46378
|
-
//#region node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/lib/index.js
|
|
46253
|
+
// node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/lib/index.js
|
|
46379
46254
|
/**
|
|
46380
46255
|
* @typedef {import('mdast').Nodes} Nodes
|
|
46381
46256
|
*
|
|
@@ -46456,8 +46331,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
46456
46331
|
function node$1(value) {
|
|
46457
46332
|
return Boolean(value && typeof value === "object");
|
|
46458
46333
|
}
|
|
46459
|
-
|
|
46460
|
-
//#region node_modules/.pnpm/character-entities@2.0.2/node_modules/character-entities/index.js
|
|
46334
|
+
// node_modules/.pnpm/character-entities@2.0.2/node_modules/character-entities/index.js
|
|
46461
46335
|
/**
|
|
46462
46336
|
* Map of named character references.
|
|
46463
46337
|
*
|
|
@@ -48590,8 +48464,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
48590
48464
|
zwj: "",
|
|
48591
48465
|
zwnj: ""
|
|
48592
48466
|
};
|
|
48593
|
-
|
|
48594
|
-
//#region node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/index.js
|
|
48467
|
+
// node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/index.js
|
|
48595
48468
|
const own$2 = {}.hasOwnProperty;
|
|
48596
48469
|
/**
|
|
48597
48470
|
* Decode a single character reference (without the `&` or `;`).
|
|
@@ -48607,8 +48480,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
48607
48480
|
function decodeNamedCharacterReference(value) {
|
|
48608
48481
|
return own$2.call(characterEntities, value) ? characterEntities[value] : false;
|
|
48609
48482
|
}
|
|
48610
|
-
|
|
48611
|
-
//#region node_modules/.pnpm/micromark-util-chunked@2.0.1/node_modules/micromark-util-chunked/index.js
|
|
48483
|
+
// node_modules/.pnpm/micromark-util-chunked@2.0.1/node_modules/micromark-util-chunked/index.js
|
|
48612
48484
|
/**
|
|
48613
48485
|
* Like `Array#splice`, but smarter for giant arrays.
|
|
48614
48486
|
*
|
|
@@ -48677,8 +48549,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
48677
48549
|
}
|
|
48678
48550
|
return items;
|
|
48679
48551
|
}
|
|
48680
|
-
|
|
48681
|
-
//#region node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-combine-extensions/index.js
|
|
48552
|
+
// node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-combine-extensions/index.js
|
|
48682
48553
|
/**
|
|
48683
48554
|
* @import {
|
|
48684
48555
|
* Extension,
|
|
@@ -48748,8 +48619,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
48748
48619
|
while (++index < list.length) (list[index].add === "after" ? existing : before).push(list[index]);
|
|
48749
48620
|
splice(existing, 0, 0, before);
|
|
48750
48621
|
}
|
|
48751
|
-
|
|
48752
|
-
//#region node_modules/.pnpm/micromark-util-decode-numeric-character-reference@2.0.2/node_modules/micromark-util-decode-numeric-character-reference/index.js
|
|
48622
|
+
// node_modules/.pnpm/micromark-util-decode-numeric-character-reference@2.0.2/node_modules/micromark-util-decode-numeric-character-reference/index.js
|
|
48753
48623
|
/**
|
|
48754
48624
|
* Turn the number (in string form as either hexa- or plain decimal) coming from
|
|
48755
48625
|
* a numeric character reference into a character.
|
|
@@ -48769,8 +48639,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
48769
48639
|
if (code < 9 || code === 11 || code > 13 && code < 32 || code > 126 && code < 160 || code > 55295 && code < 57344 || code > 64975 && code < 65008 || (code & 65535) === 65535 || (code & 65535) === 65534 || code > 1114111) return "�";
|
|
48770
48640
|
return String.fromCodePoint(code);
|
|
48771
48641
|
}
|
|
48772
|
-
|
|
48773
|
-
//#region node_modules/.pnpm/micromark-util-normalize-identifier@2.0.1/node_modules/micromark-util-normalize-identifier/index.js
|
|
48642
|
+
// node_modules/.pnpm/micromark-util-normalize-identifier@2.0.1/node_modules/micromark-util-normalize-identifier/index.js
|
|
48774
48643
|
/**
|
|
48775
48644
|
* Normalize an identifier (as found in references, definitions).
|
|
48776
48645
|
*
|
|
@@ -48793,8 +48662,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
48793
48662
|
function normalizeIdentifier(value) {
|
|
48794
48663
|
return value.replace(/[\t\n\r ]+/g, " ").replace(/^ | $/g, "").toLowerCase().toUpperCase();
|
|
48795
48664
|
}
|
|
48796
|
-
|
|
48797
|
-
//#region node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/index.js
|
|
48665
|
+
// node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/index.js
|
|
48798
48666
|
/**
|
|
48799
48667
|
* @import {Code} from 'micromark-util-types'
|
|
48800
48668
|
*/
|
|
@@ -49021,8 +48889,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
49021
48889
|
return code !== null && code > -1 && regex.test(String.fromCharCode(code));
|
|
49022
48890
|
}
|
|
49023
48891
|
}
|
|
49024
|
-
|
|
49025
|
-
//#region node_modules/.pnpm/micromark-factory-space@2.1.0/node_modules/micromark-factory-space/index.js
|
|
48892
|
+
// node_modules/.pnpm/micromark-factory-space@2.1.0/node_modules/micromark-factory-space/index.js
|
|
49026
48893
|
/**
|
|
49027
48894
|
* @import {Effects, State, TokenType} from 'micromark-util-types'
|
|
49028
48895
|
*/
|
|
@@ -49128,8 +48995,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
49128
48995
|
return size >= min ? ok(code) : nok(code);
|
|
49129
48996
|
}
|
|
49130
48997
|
}
|
|
49131
|
-
|
|
49132
|
-
//#region node_modules/.pnpm/micromark@4.0.3/node_modules/micromark/lib/initialize/content.js
|
|
48998
|
+
// node_modules/.pnpm/micromark@4.0.3/node_modules/micromark/lib/initialize/content.js
|
|
49133
48999
|
/**
|
|
49134
49000
|
* @import {
|
|
49135
49001
|
* InitialConstruct,
|
|
@@ -49195,8 +49061,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
49195
49061
|
return data;
|
|
49196
49062
|
}
|
|
49197
49063
|
}
|
|
49198
|
-
|
|
49199
|
-
//#region node_modules/.pnpm/micromark-util-edit-map@1.0.0/node_modules/micromark-util-edit-map/index.js
|
|
49064
|
+
// node_modules/.pnpm/micromark-util-edit-map@1.0.0/node_modules/micromark-util-edit-map/index.js
|
|
49200
49065
|
/**
|
|
49201
49066
|
* @import {Event} from 'micromark-util-types'
|
|
49202
49067
|
*/
|
|
@@ -49341,8 +49206,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
49341
49206
|
editMap.map.push(change);
|
|
49342
49207
|
editMap.index.set(at, change);
|
|
49343
49208
|
}
|
|
49344
|
-
|
|
49345
|
-
//#region node_modules/.pnpm/micromark@4.0.3/node_modules/micromark/lib/initialize/document.js
|
|
49209
|
+
// node_modules/.pnpm/micromark@4.0.3/node_modules/micromark/lib/initialize/document.js
|
|
49346
49210
|
/**
|
|
49347
49211
|
* @import {
|
|
49348
49212
|
* Construct,
|
|
@@ -49561,8 +49425,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
49561
49425
|
function tokenizeContainer(effects, ok, nok) {
|
|
49562
49426
|
return factorySpace(effects, effects.attempt(this.parser.constructs.document, ok, nok), "linePrefix", this.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4);
|
|
49563
49427
|
}
|
|
49564
|
-
|
|
49565
|
-
//#region node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-classify-character/index.js
|
|
49428
|
+
// node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-classify-character/index.js
|
|
49566
49429
|
/**
|
|
49567
49430
|
* @import {Code} from 'micromark-util-types'
|
|
49568
49431
|
*/
|
|
@@ -49584,8 +49447,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
49584
49447
|
if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) return 1;
|
|
49585
49448
|
if (unicodePunctuation(code)) return 2;
|
|
49586
49449
|
}
|
|
49587
|
-
|
|
49588
|
-
//#region node_modules/.pnpm/micromark-util-resolve-all@2.0.1/node_modules/micromark-util-resolve-all/index.js
|
|
49450
|
+
// node_modules/.pnpm/micromark-util-resolve-all@2.0.1/node_modules/micromark-util-resolve-all/index.js
|
|
49589
49451
|
/**
|
|
49590
49452
|
* @import {Event, Resolver, TokenizeContext} from 'micromark-util-types'
|
|
49591
49453
|
*/
|
|
@@ -49614,8 +49476,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
49614
49476
|
}
|
|
49615
49477
|
return events;
|
|
49616
49478
|
}
|
|
49617
|
-
|
|
49618
|
-
//#region node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/attention.js
|
|
49479
|
+
// node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/attention.js
|
|
49619
49480
|
/**
|
|
49620
49481
|
* @import {
|
|
49621
49482
|
* Code,
|
|
@@ -49822,8 +49683,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
49822
49683
|
point.offset += offset;
|
|
49823
49684
|
point._bufferIndex += offset;
|
|
49824
49685
|
}
|
|
49825
|
-
|
|
49826
|
-
//#region node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/autolink.js
|
|
49686
|
+
// node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/autolink.js
|
|
49827
49687
|
/**
|
|
49828
49688
|
* @import {
|
|
49829
49689
|
* Construct,
|
|
@@ -50033,8 +49893,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
50033
49893
|
return nok(code);
|
|
50034
49894
|
}
|
|
50035
49895
|
}
|
|
50036
|
-
|
|
50037
|
-
//#region node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/blank-line.js
|
|
49896
|
+
// node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/blank-line.js
|
|
50038
49897
|
/**
|
|
50039
49898
|
* @import {
|
|
50040
49899
|
* Construct,
|
|
@@ -50090,8 +49949,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
50090
49949
|
return code === null || markdownLineEnding(code) ? ok(code) : nok(code);
|
|
50091
49950
|
}
|
|
50092
49951
|
}
|
|
50093
|
-
|
|
50094
|
-
//#region node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/block-quote.js
|
|
49952
|
+
// node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/block-quote.js
|
|
50095
49953
|
/**
|
|
50096
49954
|
* @import {
|
|
50097
49955
|
* Construct,
|
|
@@ -50217,8 +50075,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
50217
50075
|
function exit(effects) {
|
|
50218
50076
|
effects.exit("blockQuote");
|
|
50219
50077
|
}
|
|
50220
|
-
|
|
50221
|
-
//#region node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/character-escape.js
|
|
50078
|
+
// node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/character-escape.js
|
|
50222
50079
|
/**
|
|
50223
50080
|
* @import {
|
|
50224
50081
|
* Construct,
|
|
@@ -50277,8 +50134,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
50277
50134
|
return nok(code);
|
|
50278
50135
|
}
|
|
50279
50136
|
}
|
|
50280
|
-
|
|
50281
|
-
//#region node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/character-reference.js
|
|
50137
|
+
// node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/character-reference.js
|
|
50282
50138
|
/**
|
|
50283
50139
|
* @import {
|
|
50284
50140
|
* Code,
|
|
@@ -50415,8 +50271,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
50415
50271
|
return nok(code);
|
|
50416
50272
|
}
|
|
50417
50273
|
}
|
|
50418
|
-
|
|
50419
|
-
//#region node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/partial-non-lazy-continuation.js
|
|
50274
|
+
// node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/partial-non-lazy-continuation.js
|
|
50420
50275
|
/** @type {Construct} */
|
|
50421
50276
|
const nonLazyContinuation = {
|
|
50422
50277
|
partial: true,
|
|
@@ -50463,8 +50318,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
50463
50318
|
return self.parser.lazy[self.now().line] ? nok(code) : ok(code);
|
|
50464
50319
|
}
|
|
50465
50320
|
}
|
|
50466
|
-
|
|
50467
|
-
//#region node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/code-fenced.js
|
|
50321
|
+
// node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/code-fenced.js
|
|
50468
50322
|
/**
|
|
50469
50323
|
* @import {
|
|
50470
50324
|
* Code,
|
|
@@ -50844,8 +50698,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
50844
50698
|
}
|
|
50845
50699
|
}
|
|
50846
50700
|
}
|
|
50847
|
-
|
|
50848
|
-
//#region node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/code-indented.js
|
|
50701
|
+
// node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/code-indented.js
|
|
50849
50702
|
/**
|
|
50850
50703
|
* @import {
|
|
50851
50704
|
* Construct,
|
|
@@ -50976,8 +50829,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
50976
50829
|
return markdownLineEnding(code) ? furtherStart(code) : nok(code);
|
|
50977
50830
|
}
|
|
50978
50831
|
}
|
|
50979
|
-
|
|
50980
|
-
//#region node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/code-text.js
|
|
50832
|
+
// node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/code-text.js
|
|
50981
50833
|
/**
|
|
50982
50834
|
* @import {
|
|
50983
50835
|
* Construct,
|
|
@@ -51161,8 +51013,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
51161
51013
|
return data(code);
|
|
51162
51014
|
}
|
|
51163
51015
|
}
|
|
51164
|
-
|
|
51165
|
-
//#region node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/lib/splice-buffer.js
|
|
51016
|
+
// node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/lib/splice-buffer.js
|
|
51166
51017
|
/**
|
|
51167
51018
|
* Some of the internal operations of micromark do lots of editing
|
|
51168
51019
|
* operations on very large arrays. This runs into problems with two
|
|
@@ -51391,8 +51242,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
51391
51242
|
chunkStart += 1e4;
|
|
51392
51243
|
}
|
|
51393
51244
|
}
|
|
51394
|
-
|
|
51395
|
-
//#region node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/index.js
|
|
51245
|
+
// node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/index.js
|
|
51396
51246
|
/**
|
|
51397
51247
|
* @import {Chunk, Event, Token} from 'micromark-util-types'
|
|
51398
51248
|
*/
|
|
@@ -51546,8 +51396,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
51546
51396
|
}
|
|
51547
51397
|
return gaps;
|
|
51548
51398
|
}
|
|
51549
|
-
|
|
51550
|
-
//#region node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/content.js
|
|
51399
|
+
// node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/content.js
|
|
51551
51400
|
/**
|
|
51552
51401
|
* @import {
|
|
51553
51402
|
* Construct,
|
|
@@ -51679,8 +51528,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
51679
51528
|
return effects.interrupt(self.parser.constructs.flow, nok, ok)(code);
|
|
51680
51529
|
}
|
|
51681
51530
|
}
|
|
51682
|
-
|
|
51683
|
-
//#region node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-factory-destination/index.js
|
|
51531
|
+
// node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-factory-destination/index.js
|
|
51684
51532
|
/**
|
|
51685
51533
|
* @import {Effects, State, TokenType} from 'micromark-util-types'
|
|
51686
51534
|
*/
|
|
@@ -51863,8 +51711,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
51863
51711
|
return raw(code);
|
|
51864
51712
|
}
|
|
51865
51713
|
}
|
|
51866
|
-
|
|
51867
|
-
//#region node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-factory-label/index.js
|
|
51714
|
+
// node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-factory-label/index.js
|
|
51868
51715
|
/**
|
|
51869
51716
|
* @import {
|
|
51870
51717
|
* Effects,
|
|
@@ -51997,8 +51844,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
51997
51844
|
return labelInside(code);
|
|
51998
51845
|
}
|
|
51999
51846
|
}
|
|
52000
|
-
|
|
52001
|
-
//#region node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-title/index.js
|
|
51847
|
+
// node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-title/index.js
|
|
52002
51848
|
/**
|
|
52003
51849
|
* @import {
|
|
52004
51850
|
* Code,
|
|
@@ -52142,8 +51988,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
52142
51988
|
return inside(code);
|
|
52143
51989
|
}
|
|
52144
51990
|
}
|
|
52145
|
-
|
|
52146
|
-
//#region node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-whitespace/index.js
|
|
51991
|
+
// node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-whitespace/index.js
|
|
52147
51992
|
/**
|
|
52148
51993
|
* @import {Effects, State} from 'micromark-util-types'
|
|
52149
51994
|
*/
|
|
@@ -52182,8 +52027,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
52182
52027
|
return ok(code);
|
|
52183
52028
|
}
|
|
52184
52029
|
}
|
|
52185
|
-
|
|
52186
|
-
//#region node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/definition.js
|
|
52030
|
+
// node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/definition.js
|
|
52187
52031
|
/**
|
|
52188
52032
|
* @import {
|
|
52189
52033
|
* Construct,
|
|
@@ -52397,8 +52241,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
52397
52241
|
return code === null || markdownLineEnding(code) ? ok(code) : nok(code);
|
|
52398
52242
|
}
|
|
52399
52243
|
}
|
|
52400
|
-
|
|
52401
|
-
//#region node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/hard-break-escape.js
|
|
52244
|
+
// node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/hard-break-escape.js
|
|
52402
52245
|
/**
|
|
52403
52246
|
* @import {
|
|
52404
52247
|
* Construct,
|
|
@@ -52454,8 +52297,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
52454
52297
|
return nok(code);
|
|
52455
52298
|
}
|
|
52456
52299
|
}
|
|
52457
|
-
|
|
52458
|
-
//#region node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/heading-atx.js
|
|
52300
|
+
// node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/heading-atx.js
|
|
52459
52301
|
/**
|
|
52460
52302
|
* @import {
|
|
52461
52303
|
* Construct,
|
|
@@ -52635,8 +52477,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
52635
52477
|
return data;
|
|
52636
52478
|
}
|
|
52637
52479
|
}
|
|
52638
|
-
|
|
52639
|
-
//#region node_modules/.pnpm/micromark-util-html-tag-name@2.0.1/node_modules/micromark-util-html-tag-name/index.js
|
|
52480
|
+
// node_modules/.pnpm/micromark-util-html-tag-name@2.0.1/node_modules/micromark-util-html-tag-name/index.js
|
|
52640
52481
|
/**
|
|
52641
52482
|
* List of lowercase HTML “block” tag names.
|
|
52642
52483
|
*
|
|
@@ -52734,8 +52575,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
52734
52575
|
"style",
|
|
52735
52576
|
"textarea"
|
|
52736
52577
|
];
|
|
52737
|
-
|
|
52738
|
-
//#region node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/html-flow.js
|
|
52578
|
+
// node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/html-flow.js
|
|
52739
52579
|
/**
|
|
52740
52580
|
* @import {
|
|
52741
52581
|
* Code,
|
|
@@ -53460,8 +53300,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
53460
53300
|
return effects.attempt(blankLine, ok, nok);
|
|
53461
53301
|
}
|
|
53462
53302
|
}
|
|
53463
|
-
|
|
53464
|
-
//#region node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/html-text.js
|
|
53303
|
+
// node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/html-text.js
|
|
53465
53304
|
/**
|
|
53466
53305
|
* @import {
|
|
53467
53306
|
* Code,
|
|
@@ -54074,8 +53913,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
54074
53913
|
return returnState(code);
|
|
54075
53914
|
}
|
|
54076
53915
|
}
|
|
54077
|
-
|
|
54078
|
-
//#region node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/label-end.js
|
|
53916
|
+
// node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/label-end.js
|
|
54079
53917
|
/**
|
|
54080
53918
|
* @import {
|
|
54081
53919
|
* Construct,
|
|
@@ -54543,8 +54381,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
54543
54381
|
return nok(code);
|
|
54544
54382
|
}
|
|
54545
54383
|
}
|
|
54546
|
-
|
|
54547
|
-
//#region node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/label-start-image.js
|
|
54384
|
+
// node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/label-start-image.js
|
|
54548
54385
|
/**
|
|
54549
54386
|
* @import {
|
|
54550
54387
|
* Construct,
|
|
@@ -54642,8 +54479,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
54642
54479
|
return ok(code);
|
|
54643
54480
|
}
|
|
54644
54481
|
}
|
|
54645
|
-
|
|
54646
|
-
//#region node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/label-start-link.js
|
|
54482
|
+
// node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/label-start-link.js
|
|
54647
54483
|
/**
|
|
54648
54484
|
* @import {
|
|
54649
54485
|
* Construct,
|
|
@@ -54696,8 +54532,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
54696
54532
|
return ok(code);
|
|
54697
54533
|
}
|
|
54698
54534
|
}
|
|
54699
|
-
|
|
54700
|
-
//#region node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/line-ending.js
|
|
54535
|
+
// node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/line-ending.js
|
|
54701
54536
|
/**
|
|
54702
54537
|
* @import {
|
|
54703
54538
|
* Construct,
|
|
@@ -54726,8 +54561,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
54726
54561
|
return factorySpace(effects, ok, "linePrefix");
|
|
54727
54562
|
}
|
|
54728
54563
|
}
|
|
54729
|
-
|
|
54730
|
-
//#region node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/thematic-break.js
|
|
54564
|
+
// node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/thematic-break.js
|
|
54731
54565
|
/**
|
|
54732
54566
|
* @import {
|
|
54733
54567
|
* Code,
|
|
@@ -54821,8 +54655,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
54821
54655
|
return markdownSpace(code) ? factorySpace(effects, atBreak, "whitespace")(code) : atBreak(code);
|
|
54822
54656
|
}
|
|
54823
54657
|
}
|
|
54824
|
-
|
|
54825
|
-
//#region node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/list.js
|
|
54658
|
+
// node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/list.js
|
|
54826
54659
|
/**
|
|
54827
54660
|
* @import {
|
|
54828
54661
|
* Code,
|
|
@@ -54993,8 +54826,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
54993
54826
|
return !markdownSpace(code) && tail && tail[1].type === "listItemPrefixWhitespace" ? ok(code) : nok(code);
|
|
54994
54827
|
}
|
|
54995
54828
|
}
|
|
54996
|
-
|
|
54997
|
-
//#region node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/setext-underline.js
|
|
54829
|
+
// node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/setext-underline.js
|
|
54998
54830
|
/**
|
|
54999
54831
|
* @import {
|
|
55000
54832
|
* Code,
|
|
@@ -55147,8 +54979,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
55147
54979
|
return nok(code);
|
|
55148
54980
|
}
|
|
55149
54981
|
}
|
|
55150
|
-
|
|
55151
|
-
//#region node_modules/.pnpm/micromark@4.0.3/node_modules/micromark/lib/initialize/flow.js
|
|
54982
|
+
// node_modules/.pnpm/micromark@4.0.3/node_modules/micromark/lib/initialize/flow.js
|
|
55152
54983
|
/**
|
|
55153
54984
|
* @import {
|
|
55154
54985
|
* InitialConstruct,
|
|
@@ -55194,8 +55025,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
55194
55025
|
return initial;
|
|
55195
55026
|
}
|
|
55196
55027
|
}
|
|
55197
|
-
|
|
55198
|
-
//#region node_modules/.pnpm/micromark@4.0.3/node_modules/micromark/lib/initialize/text.js
|
|
55028
|
+
// node_modules/.pnpm/micromark@4.0.3/node_modules/micromark/lib/initialize/text.js
|
|
55199
55029
|
/**
|
|
55200
55030
|
* @import {
|
|
55201
55031
|
* Code,
|
|
@@ -55370,8 +55200,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
55370
55200
|
editMap.consume(events);
|
|
55371
55201
|
return events;
|
|
55372
55202
|
}
|
|
55373
|
-
|
|
55374
|
-
//#region node_modules/.pnpm/micromark@4.0.3/node_modules/micromark/lib/constructs.js
|
|
55203
|
+
// node_modules/.pnpm/micromark@4.0.3/node_modules/micromark/lib/constructs.js
|
|
55375
55204
|
/**
|
|
55376
55205
|
* @import {Extension} from 'micromark-util-types'
|
|
55377
55206
|
*/
|
|
@@ -55448,8 +55277,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
55448
55277
|
const attentionMarkers = { null: [42, 95] };
|
|
55449
55278
|
/** @satisfies {Extension['disable']} */
|
|
55450
55279
|
const disable = { null: [] };
|
|
55451
|
-
|
|
55452
|
-
//#region node_modules/.pnpm/micromark@4.0.3/node_modules/micromark/lib/create-tokenizer.js
|
|
55280
|
+
// node_modules/.pnpm/micromark@4.0.3/node_modules/micromark/lib/create-tokenizer.js
|
|
55453
55281
|
/**
|
|
55454
55282
|
* @import {
|
|
55455
55283
|
* Chunk,
|
|
@@ -55915,8 +55743,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
55915
55743
|
}
|
|
55916
55744
|
return result.join("");
|
|
55917
55745
|
}
|
|
55918
|
-
|
|
55919
|
-
//#region node_modules/.pnpm/micromark@4.0.3/node_modules/micromark/lib/parse.js
|
|
55746
|
+
// node_modules/.pnpm/micromark@4.0.3/node_modules/micromark/lib/parse.js
|
|
55920
55747
|
/**
|
|
55921
55748
|
* @import {
|
|
55922
55749
|
* Create,
|
|
@@ -55959,8 +55786,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
55959
55786
|
}
|
|
55960
55787
|
}
|
|
55961
55788
|
}
|
|
55962
|
-
|
|
55963
|
-
//#region node_modules/.pnpm/micromark@4.0.3/node_modules/micromark/lib/postprocess.js
|
|
55789
|
+
// node_modules/.pnpm/micromark@4.0.3/node_modules/micromark/lib/postprocess.js
|
|
55964
55790
|
/**
|
|
55965
55791
|
* @import {Event} from 'micromark-util-types'
|
|
55966
55792
|
*/
|
|
@@ -55974,8 +55800,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
55974
55800
|
while (!subtokenize(events));
|
|
55975
55801
|
return events;
|
|
55976
55802
|
}
|
|
55977
|
-
|
|
55978
|
-
//#region node_modules/.pnpm/micromark@4.0.3/node_modules/micromark/lib/preprocess.js
|
|
55803
|
+
// node_modules/.pnpm/micromark@4.0.3/node_modules/micromark/lib/preprocess.js
|
|
55979
55804
|
/**
|
|
55980
55805
|
* @import {Chunk, Code, Encoding, Value} from 'micromark-util-types'
|
|
55981
55806
|
*/
|
|
@@ -56066,8 +55891,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
56066
55891
|
return chunks;
|
|
56067
55892
|
}
|
|
56068
55893
|
}
|
|
56069
|
-
|
|
56070
|
-
//#region node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/index.js
|
|
55894
|
+
// node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/index.js
|
|
56071
55895
|
const characterEscapeOrReference = /\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;
|
|
56072
55896
|
/**
|
|
56073
55897
|
* Decode markdown strings (which occur in places such as fenced code info
|
|
@@ -56103,8 +55927,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
56103
55927
|
}
|
|
56104
55928
|
return decodeNamedCharacterReference($2) || $0;
|
|
56105
55929
|
}
|
|
56106
|
-
|
|
56107
|
-
//#region node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/lib/index.js
|
|
55930
|
+
// node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/lib/index.js
|
|
56108
55931
|
/**
|
|
56109
55932
|
* @typedef {import('unist').Node} Node
|
|
56110
55933
|
* @typedef {import('unist').Point} Point
|
|
@@ -56167,8 +55990,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
56167
55990
|
function index(value) {
|
|
56168
55991
|
return value && typeof value === "number" ? value : 1;
|
|
56169
55992
|
}
|
|
56170
|
-
|
|
56171
|
-
//#region node_modules/.pnpm/mdast-util-from-markdown@2.1.0/node_modules/mdast-util-from-markdown/lib/index.js
|
|
55993
|
+
// node_modules/.pnpm/mdast-util-from-markdown@2.1.0/node_modules/mdast-util-from-markdown/lib/index.js
|
|
56172
55994
|
/**
|
|
56173
55995
|
* @import {
|
|
56174
55996
|
* Break,
|
|
@@ -57214,8 +57036,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
57214
57036
|
end: right.end
|
|
57215
57037
|
}) + ") is still open");
|
|
57216
57038
|
}
|
|
57217
|
-
|
|
57218
|
-
//#region src/client/quick-apps/document.ts
|
|
57039
|
+
// src/client/quick-apps/document.ts
|
|
57219
57040
|
const loadEditor = createEngineLoader(() => require.async("./client.editor-engine.js"));
|
|
57220
57041
|
/** Resolve authored relative paths without allowing the document to nominate another root. */
|
|
57221
57042
|
function documentPath(root, current, value) {
|
|
@@ -57351,8 +57172,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
57351
57172
|
})
|
|
57352
57173
|
}));
|
|
57353
57174
|
}
|
|
57354
|
-
|
|
57355
|
-
//#region src/shared/quick-app-browser-storage.ts
|
|
57175
|
+
// src/shared/quick-app-browser-storage.ts
|
|
57356
57176
|
const QUICK_APP_STORAGE_PROTOCOL = "codingns.quick-app-storage.v1";
|
|
57357
57177
|
const QUICK_APP_STORAGE_LIMITS = Object.freeze({
|
|
57358
57178
|
bytes: 2097152,
|
|
@@ -57384,8 +57204,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
57384
57204
|
"flush"
|
|
57385
57205
|
].includes(request.operation) && request.key === void 0 && request.value === void 0;
|
|
57386
57206
|
}
|
|
57387
|
-
|
|
57388
|
-
//#region src/client/quick-apps/browser-storage.ts
|
|
57207
|
+
// src/client/quick-apps/browser-storage.ts
|
|
57389
57208
|
function storageFailure(error) {
|
|
57390
57209
|
return {
|
|
57391
57210
|
name: error instanceof Error ? error.name : "UnknownError",
|
|
@@ -57514,8 +57333,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
57514
57333
|
shutdown();
|
|
57515
57334
|
};
|
|
57516
57335
|
}
|
|
57517
|
-
|
|
57518
|
-
//#region src/client/quick-apps/viewer.ts
|
|
57336
|
+
// src/client/quick-apps/viewer.ts
|
|
57519
57337
|
const defaultMode = (path) => /\.(?:md|markdown)$/iu.test(path) && require_magpie_model_tag.hasNativeMarkdown() ? "markdown" : "source";
|
|
57520
57338
|
/** Native renderers and editor with Quick Apps ownership, save preconditions and lifetime. */
|
|
57521
57339
|
function QuickAppViewer({ app, view, client, busy, error, t, onClose, onReload }) {
|
|
@@ -57835,8 +57653,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
57835
57653
|
}, t(confirmation.kind === "edit" ? "quickApps.allowEditing" : "quickApps.discard")))
|
|
57836
57654
|
}, (0, react.createElement)("p", null, t(confirmation.kind === "edit" ? "quickApps.allowEditingHelp" : "quickApps.discardHelp", { path }))) : null);
|
|
57837
57655
|
}
|
|
57838
|
-
|
|
57839
|
-
//#region src/client/quick-apps/reorder-animation.ts
|
|
57656
|
+
// src/client/quick-apps/reorder-animation.ts
|
|
57840
57657
|
/** Animate grid moves on the outer shortcut, independently of the tile's jiggle. */
|
|
57841
57658
|
function createQuickAppReorderAnimation() {
|
|
57842
57659
|
let positions = /* @__PURE__ */ new Map();
|
|
@@ -57890,8 +57707,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
57890
57707
|
}
|
|
57891
57708
|
};
|
|
57892
57709
|
}
|
|
57893
|
-
|
|
57894
|
-
//#region src/client/quick-apps/reorder.ts
|
|
57710
|
+
// src/client/quick-apps/reorder.ts
|
|
57895
57711
|
function move(items, from, to) {
|
|
57896
57712
|
const next = [...items];
|
|
57897
57713
|
next.splice(to, 0, next.splice(from, 1)[0]);
|
|
@@ -58027,8 +57843,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
58027
57843
|
})
|
|
58028
57844
|
};
|
|
58029
57845
|
}
|
|
58030
|
-
|
|
58031
|
-
//#region src/client/quick-apps/rail-preference.ts
|
|
57846
|
+
// src/client/quick-apps/rail-preference.ts
|
|
58032
57847
|
const QUICK_APPS_RAIL_COLLAPSED_KEY = "codingns4dsh.quickApps.railCollapsed";
|
|
58033
57848
|
/** Edit mode is a session action; only the collapsed rail is restored after reload. */
|
|
58034
57849
|
function readQuickAppsRailCollapsed() {
|
|
@@ -58043,8 +57858,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
58043
57858
|
globalThis.localStorage?.setItem(QUICK_APPS_RAIL_COLLAPSED_KEY, collapsed ? "1" : "0");
|
|
58044
57859
|
} catch {}
|
|
58045
57860
|
}
|
|
58046
|
-
|
|
58047
|
-
//#region src/client/settings-anchor.ts
|
|
57861
|
+
// src/client/settings-anchor.ts
|
|
58048
57862
|
/**
|
|
58049
57863
|
* 设置区锚点解析。
|
|
58050
57864
|
*
|
|
@@ -58110,8 +57924,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
58110
57924
|
function settingsAnchorContainer(match) {
|
|
58111
57925
|
return match.kind === "settings-button" ? match.node.parentElement : match.node;
|
|
58112
57926
|
}
|
|
58113
|
-
|
|
58114
|
-
//#region src/client/sidebar-footer-style.ts
|
|
57927
|
+
// src/client/sidebar-footer-style.ts
|
|
58115
57928
|
/** Shared geometry for Quick Apps and the account/connection entry beside Settings. */
|
|
58116
57929
|
const sidebarFooterControlStyle = {
|
|
58117
57930
|
width: "32px",
|
|
@@ -58167,8 +57980,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
58167
57980
|
}, [wide]);
|
|
58168
57981
|
return rail;
|
|
58169
57982
|
}
|
|
58170
|
-
|
|
58171
|
-
//#region src/client/quick-apps/launcher.ts
|
|
57983
|
+
// src/client/quick-apps/launcher.ts
|
|
58172
57984
|
function QuickAppsLauncher({ services, wide }) {
|
|
58173
57985
|
const rail = useSidebarFooterAlignment(wide);
|
|
58174
57986
|
const t = require_magpie_model_tag.useCodingNsTranslator(services.locale);
|
|
@@ -58635,8 +58447,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
58635
58447
|
role: notice.tone === "error" ? "alert" : "status"
|
|
58636
58448
|
}, notice.text) : null, body)) : null);
|
|
58637
58449
|
}
|
|
58638
|
-
|
|
58639
|
-
//#region src/client/features/quick-apps.ts
|
|
58450
|
+
// src/client/features/quick-apps.ts
|
|
58640
58451
|
const t = require_magpie_model_tag.resolveCodingNsTranslator();
|
|
58641
58452
|
const quickAppsFeature = {
|
|
58642
58453
|
descriptor: {
|
|
@@ -58666,11 +58477,9 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
58666
58477
|
})));
|
|
58667
58478
|
}
|
|
58668
58479
|
};
|
|
58669
|
-
|
|
58670
|
-
//#region src/client/peer-host-connection-button.ts
|
|
58480
|
+
// src/client/peer-host-connection-button.ts
|
|
58671
58481
|
const PEER_HOST_OPEN_EVENT = "codingns4dsh:peer-host-open";
|
|
58672
|
-
|
|
58673
|
-
//#region src/dsh-capabilities/client/sidebar-footer-icon-adapter.ts
|
|
58482
|
+
// src/dsh-capabilities/client/sidebar-footer-icon-adapter.ts
|
|
58674
58483
|
/** DOM counterparts of DSH's regular User and Link outline artwork. */
|
|
58675
58484
|
function createSidebarFooterIcon(dom, kind) {
|
|
58676
58485
|
const svg = dom.createElementNS("http://www.w3.org/2000/svg", "svg");
|
|
@@ -58695,8 +58504,7 @@ ${SCOPE} article>div:last-child>button { float:none!important; order:1; min-heig
|
|
|
58695
58504
|
}
|
|
58696
58505
|
return svg;
|
|
58697
58506
|
}
|
|
58698
|
-
|
|
58699
|
-
//#region src/client/account-bar.ts
|
|
58507
|
+
// src/client/account-bar.ts
|
|
58700
58508
|
const ACCOUNT_ATTRIBUTE = "data-codingns-account-button";
|
|
58701
58509
|
const MENU_ATTRIBUTE = "data-codingns-account-menu";
|
|
58702
58510
|
const POLL_MS = 5e3;
|
|
@@ -59292,8 +59100,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
59292
59100
|
errorCode: null
|
|
59293
59101
|
};
|
|
59294
59102
|
}
|
|
59295
|
-
|
|
59296
|
-
//#region src/client/peer-host-color.ts
|
|
59103
|
+
// src/client/peer-host-color.ts
|
|
59297
59104
|
/**
|
|
59298
59105
|
* 工作区标签配色的推导与缓存。
|
|
59299
59106
|
*
|
|
@@ -59363,8 +59170,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
59363
59170
|
background: peerHostTagBackground(color)
|
|
59364
59171
|
};
|
|
59365
59172
|
}
|
|
59366
|
-
|
|
59367
|
-
//#region src/client/peer-host-management-panel.ts
|
|
59173
|
+
// src/client/peer-host-management-panel.ts
|
|
59368
59174
|
/** PeerHost 管理面板;入口来自统一账户菜单,面板只渲染脱敏记录。 */
|
|
59369
59175
|
function startPeerHostManagementPanel(options) {
|
|
59370
59176
|
const dom = options.document ?? (typeof document === "undefined" ? void 0 : document);
|
|
@@ -60253,8 +60059,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
60253
60059
|
if (value < 1024 ** 3) return `${Math.round(value / 1024 ** 2)} MB`;
|
|
60254
60060
|
return `${(value / 1024 ** 3).toFixed(1)} GB`;
|
|
60255
60061
|
}
|
|
60256
|
-
|
|
60257
|
-
//#region src/shared/peer-host-file-location.ts
|
|
60062
|
+
// src/shared/peer-host-file-location.ts
|
|
60258
60063
|
/**
|
|
60259
60064
|
* Windows 消息链接常写成 `/C:/项目/文件.md:170`,但斜杠和行号都不是文件名。
|
|
60260
60065
|
* 仅在目标工作区使用 Windows 路径时纠正,保留 POSIX 下合法的冒号文件名。
|
|
@@ -60273,8 +60078,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
60273
60078
|
line
|
|
60274
60079
|
};
|
|
60275
60080
|
}
|
|
60276
|
-
|
|
60277
|
-
//#region src/host/modules/peer-host/peer-host-native-protocol.ts
|
|
60081
|
+
// src/host/modules/peer-host/peer-host-native-protocol.ts
|
|
60278
60082
|
/** DSH 0.2.x Workspace/Session Remote 方法;这里只登记原生协议,不登记插件私有 RPC。 */
|
|
60279
60083
|
const DSH_NATIVE_REMOTE_METHODS = Object.freeze([
|
|
60280
60084
|
"$events",
|
|
@@ -60381,8 +60185,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
60381
60185
|
}
|
|
60382
60186
|
throw new Error("当前运行时不支持 Base64 解码");
|
|
60383
60187
|
}
|
|
60384
|
-
|
|
60385
|
-
//#region src/client/peer-host-native-projection.ts
|
|
60188
|
+
// src/client/peer-host-native-projection.ts
|
|
60386
60189
|
/**
|
|
60387
60190
|
* 为需要稳定显示标识的调用方生成虚拟 URI。
|
|
60388
60191
|
*
|
|
@@ -60616,8 +60419,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
60616
60419
|
return candidate !== void 0 && session.sessionId === candidate.sessionId && session.agentAvailable === candidate.agentAvailable && session.updatedAt === candidate.updatedAt && session.running === candidate.running && session.blank === candidate.blank && session.cwd === candidate.cwd && session.adapterId === candidate.adapterId && session.origin === candidate.origin && session.parentSessionId === candidate.parentSessionId && session.projections.kind === candidate.projections.kind && session.projections.asOfSeq === candidate.projections.asOfSeq && session.projections.values.title === candidate.projections.values.title;
|
|
60617
60420
|
});
|
|
60618
60421
|
}
|
|
60619
|
-
|
|
60620
|
-
//#region src/client/peer-host-native-store-projection.ts
|
|
60422
|
+
// src/client/peer-host-native-store-projection.ts
|
|
60621
60423
|
/**
|
|
60622
60424
|
* 把虚拟工作区就地投影进 DSH 原生 Workspace Store。
|
|
60623
60425
|
*
|
|
@@ -60970,8 +60772,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
60970
60772
|
function isSnapshotStore(value) {
|
|
60971
60773
|
return isRecord$7(value) && typeof value.getSnapshot === "function" && typeof value.subscribe === "function";
|
|
60972
60774
|
}
|
|
60973
|
-
|
|
60974
|
-
//#region src/client/peer-host-workspace-tag.ts
|
|
60775
|
+
// src/client/peer-host-workspace-tag.ts
|
|
60975
60776
|
/**
|
|
60976
60777
|
* 在工作区名称后注入彩色 Host 标签。
|
|
60977
60778
|
*
|
|
@@ -61201,8 +61002,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
61201
61002
|
function isRecord$6(value) {
|
|
61202
61003
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
61203
61004
|
}
|
|
61204
|
-
|
|
61205
|
-
//#region src/client/peer-host-workspace-tab.ts
|
|
61005
|
+
// src/client/peer-host-workspace-tab.ts
|
|
61206
61006
|
/**
|
|
61207
61007
|
* 在 DSH 原生"添加工作区"对话框里追加一个"远程 HOST"标签页。
|
|
61208
61008
|
*
|
|
@@ -61768,8 +61568,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
61768
61568
|
});
|
|
61769
61569
|
}
|
|
61770
61570
|
}
|
|
61771
|
-
|
|
61772
|
-
//#region src/client/peer-host-remote-events.ts
|
|
61571
|
+
// src/client/peer-host-remote-events.ts
|
|
61773
61572
|
const EVENT_PREFIX = "codingns-peer-event:";
|
|
61774
61573
|
const INTERACTION_EVENTS = /* @__PURE__ */ new Set(["approval/request", "user-questions/request"]);
|
|
61775
61574
|
/**
|
|
@@ -62075,8 +61874,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
62075
61874
|
if (signal.aborted) finish();
|
|
62076
61875
|
});
|
|
62077
61876
|
}
|
|
62078
|
-
|
|
62079
|
-
//#region src/shared/session-reference.ts
|
|
61877
|
+
// src/shared/session-reference.ts
|
|
62080
61878
|
/**
|
|
62081
61879
|
* 生成 DSH 原生会话引用使用的 canonical URI。
|
|
62082
61880
|
*
|
|
@@ -62100,8 +61898,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
62100
61898
|
if (buffer !== void 0) return buffer;
|
|
62101
61899
|
throw new Error("当前运行时不支持 Base64 编码");
|
|
62102
61900
|
}
|
|
62103
|
-
|
|
62104
|
-
//#region src/client/peer-host-reference-source.ts
|
|
61901
|
+
// src/client/peer-host-reference-source.ts
|
|
62105
61902
|
const PEER_HOST_REFERENCE_SOURCE = "codingns-peer-host-reference";
|
|
62106
61903
|
/**
|
|
62107
61904
|
* 注册远程会话引用兜底源。
|
|
@@ -62237,8 +62034,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
62237
62034
|
if (typeof workspaceId !== "string") return void 0;
|
|
62238
62035
|
return require_magpie_model_tag.parseVirtualWorkspaceId(workspaceId)?.targetHostId ?? void 0;
|
|
62239
62036
|
}
|
|
62240
|
-
|
|
62241
|
-
//#region src/dsh-capabilities/client/peer-host-attachment-adapter.ts
|
|
62037
|
+
// src/dsh-capabilities/client/peer-host-attachment-adapter.ts
|
|
62242
62038
|
/** Native file paths describe the client machine; remote sessions must upload bytes. */
|
|
62243
62039
|
function installPeerHostAttachmentIntake(context, folderError) {
|
|
62244
62040
|
const slots = context?.get?.("slots");
|
|
@@ -62265,8 +62061,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
62265
62061
|
useSyncExternalStore: react.useSyncExternalStore
|
|
62266
62062
|
});
|
|
62267
62063
|
}
|
|
62268
|
-
|
|
62269
|
-
//#region src/client/features/peer-host.ts
|
|
62064
|
+
// src/client/features/peer-host.ts
|
|
62270
62065
|
/** 聚合刷新周期;远端资源只影响自身节点,刷新失败不改变本机界面。 */
|
|
62271
62066
|
const PEER_HOST_AGGREGATE_REFRESH_MS = 3e4;
|
|
62272
62067
|
/** 有断线节点时缩短复检周期,成功重连后恢复正常频率。 */
|
|
@@ -63596,8 +63391,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
63596
63391
|
}
|
|
63597
63392
|
}, message);
|
|
63598
63393
|
}
|
|
63599
|
-
|
|
63600
|
-
//#region src/client/subagent-collapsed-lineage.ts
|
|
63394
|
+
// src/client/subagent-collapsed-lineage.ts
|
|
63601
63395
|
/** 停止子 Agent 分组的专用词典,避免改写 DSH 原生 subagent 词典。 */
|
|
63602
63396
|
const SUBAGENT_COLLAPSED_LOCALE_NS = "codingnsSubagentCollapsed";
|
|
63603
63397
|
/**
|
|
@@ -64620,8 +64414,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
64620
64414
|
disposeLocale();
|
|
64621
64415
|
};
|
|
64622
64416
|
}
|
|
64623
|
-
|
|
64624
|
-
//#region src/client/features/subagent-collapsed-lineage.ts
|
|
64417
|
+
// src/client/features/subagent-collapsed-lineage.ts
|
|
64625
64418
|
/**
|
|
64626
64419
|
* 子 Agent 列表的显示策略。
|
|
64627
64420
|
*
|
|
@@ -64644,8 +64437,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
64644
64437
|
context.resources.add(dispose);
|
|
64645
64438
|
}
|
|
64646
64439
|
};
|
|
64647
|
-
|
|
64648
|
-
//#region src/client/session-translation-rules.ts
|
|
64440
|
+
// src/client/session-translation-rules.ts
|
|
64649
64441
|
/** Only saved entries enter translation prompts; cancelled or failed edits stay local. */
|
|
64650
64442
|
function SessionTranslationRules({ rules, disabled, pending, t, onChange }) {
|
|
64651
64443
|
const [draft, setDraft] = (0, react.useState)(null);
|
|
@@ -64775,8 +64567,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
64775
64567
|
}
|
|
64776
64568
|
}, t("translation.saveRejected"))));
|
|
64777
64569
|
}
|
|
64778
|
-
|
|
64779
|
-
//#region src/shared/translation-indicator.ts
|
|
64570
|
+
// src/shared/translation-indicator.ts
|
|
64780
64571
|
const TRANSLATION_GLYPH_PATHS = ["M3.5 5.5h10M8.5 3.5v2M12.5 5.5c0 4.4-3.3 7.2-8 9", "M5.5 8.5c1.4 2 3.4 3.7 6 4.8M14.5 19.5l3-8 3 8M15.7 17h3.6"];
|
|
64781
64572
|
const TRANSLATION_STATUS_BADGE_STYLE = {
|
|
64782
64573
|
position: "absolute",
|
|
@@ -64800,8 +64591,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
64800
64591
|
borderTopColor: "transparent",
|
|
64801
64592
|
background: "transparent"
|
|
64802
64593
|
};
|
|
64803
|
-
|
|
64804
|
-
//#region src/client/session-translation-pending-dom.ts
|
|
64594
|
+
// src/client/session-translation-pending-dom.ts
|
|
64805
64595
|
/** Pending DSH bubbles and queue previews have no renderer slot. */
|
|
64806
64596
|
function watchPendingTranslationTargets(anchor, onChange) {
|
|
64807
64597
|
const root = anchor.closest("[data-conversation-session]");
|
|
@@ -64863,8 +64653,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
64863
64653
|
targets.clear();
|
|
64864
64654
|
};
|
|
64865
64655
|
}
|
|
64866
|
-
|
|
64867
|
-
//#region src/client/session-translation-retry.ts
|
|
64656
|
+
// src/client/session-translation-retry.ts
|
|
64868
64657
|
const stores = /* @__PURE__ */ new WeakMap();
|
|
64869
64658
|
/** Share a display result between the reply, collapsed reasoning, and its popup. */
|
|
64870
64659
|
function useOutputTranslation(props) {
|
|
@@ -64950,8 +64739,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
64950
64739
|
for (const entry of store?.values() ?? []) entry.controller?.abort();
|
|
64951
64740
|
stores.delete(owner);
|
|
64952
64741
|
}
|
|
64953
|
-
|
|
64954
|
-
//#region src/client/session-translation-chat.ts
|
|
64742
|
+
// src/client/session-translation-chat.ts
|
|
64955
64743
|
/**
|
|
64956
64744
|
* 把翻译状态和查看原文的入口放回对应消息块,不占用 AI 回复底部的统一操作栏。
|
|
64957
64745
|
*/
|
|
@@ -66012,8 +65800,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
66012
65800
|
function asRecord(value) {
|
|
66013
65801
|
return typeof value === "object" && value !== null && !Array.isArray(value) ? value : void 0;
|
|
66014
65802
|
}
|
|
66015
|
-
|
|
66016
|
-
//#region src/dsh-capabilities/client/interaction-text-dom.ts
|
|
65803
|
+
// src/dsh-capabilities/client/interaction-text-dom.ts
|
|
66017
65804
|
const SELECTORS = {
|
|
66018
65805
|
question: [
|
|
66019
65806
|
"[data-question-key] h2",
|
|
@@ -66203,8 +65990,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
66203
65990
|
]) marker.addEventListener(name, stop);
|
|
66204
65991
|
return marker;
|
|
66205
65992
|
}
|
|
66206
|
-
|
|
66207
|
-
//#region src/client/session-translation-interactions.ts
|
|
65993
|
+
// src/client/session-translation-interactions.ts
|
|
66208
65994
|
const EMPTY_RESULT = {
|
|
66209
65995
|
enabled: false,
|
|
66210
65996
|
records: {}
|
|
@@ -66402,8 +66188,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
66402
66188
|
function TranslatedQuestionHistory({ sessionId, fields, render, services }) {
|
|
66403
66189
|
return render(useFieldTranslations(services, sessionId, fields, useCliSessionTranslationEnabled(sessionId, services.rpc)) ?? EMPTY_RESULT);
|
|
66404
66190
|
}
|
|
66405
|
-
|
|
66406
|
-
//#region src/client/features/session-translation.ts
|
|
66191
|
+
// src/client/features/session-translation.ts
|
|
66407
66192
|
const languageLabelKeys = {
|
|
66408
66193
|
zh: "translation.language.zh",
|
|
66409
66194
|
en: "translation.language.en",
|
|
@@ -66418,6 +66203,12 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
66418
66203
|
enabledByDefault: false,
|
|
66419
66204
|
dependencies: ["cliAdapters"],
|
|
66420
66205
|
runtime: "client",
|
|
66206
|
+
nativeReplacement: {
|
|
66207
|
+
dshFeature: "@deepseek-ai/dsh-experimental-cot-translation-bundle",
|
|
66208
|
+
since: "0.2.2-alpha.2",
|
|
66209
|
+
coverage: "partial",
|
|
66210
|
+
note: "The native translation switch is now host-owned; this feature still provides external Agent translation UI and presentation."
|
|
66211
|
+
},
|
|
66421
66212
|
requires: [{
|
|
66422
66213
|
capability: "conversation.interaction-translation",
|
|
66423
66214
|
required: false,
|
|
@@ -66572,8 +66363,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
66572
66363
|
function readOutputLanguage(value) {
|
|
66573
66364
|
return value === "en" || value === "fr" || value === "de" || value === "ja" ? value : "zh";
|
|
66574
66365
|
}
|
|
66575
|
-
|
|
66576
|
-
//#region src/client/features/plugin-update.ts
|
|
66366
|
+
// src/client/features/plugin-update.ts
|
|
66577
66367
|
const pluginUpdateFeature = {
|
|
66578
66368
|
descriptor: {
|
|
66579
66369
|
name: "pluginUpdate",
|
|
@@ -66581,6 +66371,12 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
66581
66371
|
enabledByDefault: true,
|
|
66582
66372
|
dependencies: [],
|
|
66583
66373
|
runtime: "client",
|
|
66374
|
+
nativeReplacement: {
|
|
66375
|
+
dshFeature: "@deepseek-ai/dsh-plugin-manager third-party updates",
|
|
66376
|
+
since: "0.2.2-alpha.2",
|
|
66377
|
+
coverage: "full",
|
|
66378
|
+
note: "The native DSH plugin manager now owns third-party plugin update presentation and recovery."
|
|
66379
|
+
},
|
|
66584
66380
|
requires: [{
|
|
66585
66381
|
capability: "plugin.client.reload-status",
|
|
66586
66382
|
required: false,
|
|
@@ -66589,8 +66385,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
66589
66385
|
},
|
|
66590
66386
|
start: () => void 0
|
|
66591
66387
|
};
|
|
66592
|
-
|
|
66593
|
-
//#region src/client/features/workspace-mcp.ts
|
|
66388
|
+
// src/client/features/workspace-mcp.ts
|
|
66594
66389
|
const fallbackT$1 = require_magpie_model_tag.resolveCodingNsTranslator();
|
|
66595
66390
|
const workspaceMcpFeature = {
|
|
66596
66391
|
descriptor: {
|
|
@@ -67112,16 +66907,14 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
67112
66907
|
function isRecord$5(value) {
|
|
67113
66908
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
67114
66909
|
}
|
|
67115
|
-
|
|
67116
|
-
//#region src/shared/credential-carrier.ts
|
|
66910
|
+
// src/shared/credential-carrier.ts
|
|
67117
66911
|
function encodeCredentialCarrier(requestCode, label) {
|
|
67118
66912
|
const code = requestCode.trim();
|
|
67119
66913
|
const display = label.trim() || code;
|
|
67120
66914
|
if (code === "") throw new Error("The credential request code cannot be empty.");
|
|
67121
66915
|
return `@[${encodeURIComponent(display)}](codingns-credential:${encodeURIComponent(code)})`;
|
|
67122
66916
|
}
|
|
67123
|
-
|
|
67124
|
-
//#region src/client/credential-reference.ts
|
|
66917
|
+
// src/client/credential-reference.ts
|
|
67125
66918
|
const CREDENTIAL_INPUT_SOURCE = "codingns-credentials";
|
|
67126
66919
|
const CREDENTIAL_PAGE_SIZE = 32;
|
|
67127
66920
|
function registerCredentialReferenceSource(ctx, rpc, locale) {
|
|
@@ -67384,8 +67177,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
67384
67177
|
return;
|
|
67385
67178
|
}
|
|
67386
67179
|
}
|
|
67387
|
-
|
|
67388
|
-
//#region src/client/credential-ui-dom.ts
|
|
67180
|
+
// src/client/credential-ui-dom.ts
|
|
67389
67181
|
/**
|
|
67390
67182
|
* Places the credential command in DSH's native Add section.
|
|
67391
67183
|
*
|
|
@@ -67554,8 +67346,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
67554
67346
|
function removeProxies(listbox) {
|
|
67555
67347
|
for (const node of listbox.querySelectorAll(`[${CREDENTIAL_MENU_PROXY_ATTRIBUTE}]`)) node.remove();
|
|
67556
67348
|
}
|
|
67557
|
-
|
|
67558
|
-
//#region src/client/features/credentials.ts
|
|
67349
|
+
// src/client/features/credentials.ts
|
|
67559
67350
|
const fallbackT = require_magpie_model_tag.resolveCodingNsTranslator();
|
|
67560
67351
|
const credentialsFeature = {
|
|
67561
67352
|
descriptor: {
|
|
@@ -67665,8 +67456,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
67665
67456
|
background: dshThemeColor.surfaceSubtle,
|
|
67666
67457
|
fontSize: uiFontSize(13)
|
|
67667
67458
|
};
|
|
67668
|
-
|
|
67669
|
-
//#region src/features/host-router.ts
|
|
67459
|
+
// src/features/host-router.ts
|
|
67670
67460
|
/** 统一管理当前 Host/PeerHost 的完整作用域和 generation。 */
|
|
67671
67461
|
var HostRouter = class {
|
|
67672
67462
|
current = null;
|
|
@@ -67785,8 +67575,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
67785
67575
|
}
|
|
67786
67576
|
return errors;
|
|
67787
67577
|
}
|
|
67788
|
-
|
|
67789
|
-
//#region src/client/peer-host-session-controller.ts
|
|
67578
|
+
// src/client/peer-host-session-controller.ts
|
|
67790
67579
|
/**
|
|
67791
67580
|
* 远端会话的唯一 Client 入口。
|
|
67792
67581
|
*
|
|
@@ -67879,8 +67668,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
67879
67668
|
this.router.assertCurrent(scope);
|
|
67880
67669
|
}
|
|
67881
67670
|
};
|
|
67882
|
-
|
|
67883
|
-
//#region src/client/features/index.ts
|
|
67671
|
+
// src/client/features/index.ts
|
|
67884
67672
|
/** Client 侧功能模块清单:新增模块在这里登记一行,不需要改动设置页和入口。 */
|
|
67885
67673
|
const CLIENT_FEATURES = [
|
|
67886
67674
|
pluginUpdateFeature,
|
|
@@ -67921,8 +67709,7 @@ button[${ACCOUNT_ATTRIBUTE}]:focus-visible{outline:2px solid ${dshThemeColor.lab
|
|
|
67921
67709
|
entries.sort((left, right) => (left.ui.order ?? 0) - (right.ui.order ?? 0));
|
|
67922
67710
|
return entries;
|
|
67923
67711
|
}
|
|
67924
|
-
|
|
67925
|
-
//#region src/client/settings-promo-styles.ts
|
|
67712
|
+
// src/client/settings-promo-styles.ts
|
|
67926
67713
|
/**
|
|
67927
67714
|
* 设置页顶部推广条的样式与交互态。
|
|
67928
67715
|
*
|
|
@@ -67990,8 +67777,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
67990
67777
|
@media (max-width:640px){.${settingsPromoClass.root}{gap:10px;padding:12px}.${settingsPromoClass.row}{flex-direction:column;align-items:center;gap:10px}.${settingsPromoClass.brand}{align-items:center}.${settingsPromoClass.version}{align-self:center}.${settingsPromoClass.versionControl}{align-self:center}.${settingsPromoClass.versionControl} button{flex-shrink:0}}
|
|
67991
67778
|
@media (prefers-reduced-motion:reduce){.${settingsPromoClass.action}{transition:none}}
|
|
67992
67779
|
`;
|
|
67993
|
-
|
|
67994
|
-
//#region src/client/settings-promo.ts
|
|
67780
|
+
// src/client/settings-promo.ts
|
|
67995
67781
|
/**
|
|
67996
67782
|
* 设置页顶部的 GitHub Star 推广条。
|
|
67997
67783
|
*
|
|
@@ -68015,7 +67801,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
68015
67801
|
return (0, react.createElement)("aside", {
|
|
68016
67802
|
className: settingsPromoClass.root,
|
|
68017
67803
|
"aria-label": t("settings.promo.sectionLabel")
|
|
68018
|
-
}, (0, react.createElement)("div", { className: settingsPromoClass.row }, (0, react.createElement)("div", { className: settingsPromoClass.brand }, (0, react.createElement)("div", { className: settingsPromoClass.headline }, (0, react.createElement)(StarBurstIcon, { className: settingsPromoClass.logo }), (0, react.createElement)("h3", { className: settingsPromoClass.title }, t("common.brand"))), versionControl ?? (0, react.createElement)("span", { className: settingsPromoClass.version }, t("settings.promo.version", { version: "0.2.
|
|
67804
|
+
}, (0, react.createElement)("div", { className: settingsPromoClass.row }, (0, react.createElement)("div", { className: settingsPromoClass.brand }, (0, react.createElement)("div", { className: settingsPromoClass.headline }, (0, react.createElement)(StarBurstIcon, { className: settingsPromoClass.logo }), (0, react.createElement)("h3", { className: settingsPromoClass.title }, t("common.brand"))), versionControl ?? (0, react.createElement)("span", { className: settingsPromoClass.version }, t("settings.promo.version", { version: "0.2.2-beta.1" }))), (0, react.createElement)("p", { className: settingsPromoClass.text }, t("settings.promo.starHint"), (0, react.createElement)("span", {
|
|
68019
67805
|
className: settingsPromoClass.hand,
|
|
68020
67806
|
"aria-hidden": true
|
|
68021
67807
|
}, "👉")), (0, react.createElement)("a", {
|
|
@@ -68062,8 +67848,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
68062
67848
|
focusable: false
|
|
68063
67849
|
}, (0, react.createElement)("path", { d: "M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82a7.4 7.4 0 0 1 2-.27c.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8Z" }));
|
|
68064
67850
|
}
|
|
68065
|
-
|
|
68066
|
-
//#region src/dsh-capabilities/client/plugin-reload-adapter.ts
|
|
67851
|
+
// src/dsh-capabilities/client/plugin-reload-adapter.ts
|
|
68067
67852
|
/** Supported DSH Desktop releases expose no authoritative Client replacement contract. */
|
|
68068
67853
|
function pluginClientReloadStatus() {
|
|
68069
67854
|
return {
|
|
@@ -68072,9 +67857,8 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
68072
67857
|
code: "UPDATE_CLIENT_RELOAD_UNSUPPORTED"
|
|
68073
67858
|
};
|
|
68074
67859
|
}
|
|
68075
|
-
|
|
68076
|
-
|
|
68077
|
-
const DEFAULT_PLUGIN_UPDATE_CHANNEL = "0.2.1-rc.8".includes("-") ? "next" : "latest";
|
|
67860
|
+
// src/client/update-store.ts
|
|
67861
|
+
const DEFAULT_PLUGIN_UPDATE_CHANNEL = "0.2.2-beta.1".includes("-") ? "next" : "latest";
|
|
68078
67862
|
var PluginUpdateStore = class {
|
|
68079
67863
|
rpc;
|
|
68080
67864
|
snapshot = {
|
|
@@ -68297,8 +68081,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
68297
68081
|
const code = error?.code;
|
|
68298
68082
|
return typeof code === "string" && /^UPDATE_[A-Z_]{1,80}$/u.test(code) ? code : "UPDATE_REQUEST_FAILED";
|
|
68299
68083
|
}
|
|
68300
|
-
|
|
68301
|
-
//#region src/client/update-panel-styles.ts
|
|
68084
|
+
// src/client/update-panel-styles.ts
|
|
68302
68085
|
const STYLE_ID$1 = "codingns4dsh-update-panel";
|
|
68303
68086
|
const updatePanelClass = {
|
|
68304
68087
|
root: "codingns4dsh-update-panel",
|
|
@@ -68364,8 +68147,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
68364
68147
|
document.head.appendChild(style);
|
|
68365
68148
|
return () => style.remove();
|
|
68366
68149
|
}
|
|
68367
|
-
|
|
68368
|
-
//#region src/client/update-panel.ts
|
|
68150
|
+
// src/client/update-panel.ts
|
|
68369
68151
|
const column = {
|
|
68370
68152
|
display: "flex",
|
|
68371
68153
|
flexDirection: "column",
|
|
@@ -68508,8 +68290,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
68508
68290
|
}
|
|
68509
68291
|
}, t("update.refreshStatus")))) : null);
|
|
68510
68292
|
}
|
|
68511
|
-
|
|
68512
|
-
//#region src/client/settings-update.ts
|
|
68293
|
+
// src/client/settings-update.ts
|
|
68513
68294
|
function hasNewerPluginVersion(snapshot) {
|
|
68514
68295
|
const target = snapshot.check?.target;
|
|
68515
68296
|
if (!target) return false;
|
|
@@ -68574,8 +68355,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
68574
68355
|
store
|
|
68575
68356
|
}) : null));
|
|
68576
68357
|
}
|
|
68577
|
-
|
|
68578
|
-
//#region src/client/settings-section.ts
|
|
68358
|
+
// src/client/settings-section.ts
|
|
68579
68359
|
/**
|
|
68580
68360
|
* DSH 设置页中的 Codingns4DSH 区块。
|
|
68581
68361
|
*
|
|
@@ -68803,8 +68583,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
68803
68583
|
onChange: (event) => onChange(event.currentTarget.checked)
|
|
68804
68584
|
}));
|
|
68805
68585
|
}
|
|
68806
|
-
|
|
68807
|
-
//#region src/client/credentials-settings-section.ts
|
|
68586
|
+
// src/client/credentials-settings-section.ts
|
|
68808
68587
|
function CredentialsSettingsSection({ settings, services }) {
|
|
68809
68588
|
const t = require_magpie_model_tag.useCodingNsTranslator(services.locale);
|
|
68810
68589
|
const [items, setItems] = (0, react.useState)([]);
|
|
@@ -69311,8 +69090,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
69311
69090
|
});
|
|
69312
69091
|
return typeof document === "undefined" ? modal : (0, import_react_dom.createPortal)(modal, document.body);
|
|
69313
69092
|
}
|
|
69314
|
-
|
|
69315
|
-
//#region src/dsh-capabilities/client/config-forms-adapter.ts
|
|
69093
|
+
// src/dsh-capabilities/client/config-forms-adapter.ts
|
|
69316
69094
|
/**
|
|
69317
69095
|
* 未暴露 ConfigForm(memory 模式、命名空间未下发或版本缺少该接口)时的占位快照。
|
|
69318
69096
|
*
|
|
@@ -69457,8 +69235,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
69457
69235
|
function toClientValue(value) {
|
|
69458
69236
|
return value === void 0 ? void 0 : (({ cliSessions: _cliSessions, ...clientValue }) => clientValue)(value);
|
|
69459
69237
|
}
|
|
69460
|
-
|
|
69461
|
-
//#region node_modules/.pnpm/@deepseek-ai+cosmokit@1.8.6/node_modules/@deepseek-ai/cosmokit/lib/index.js
|
|
69238
|
+
// node_modules/.pnpm/@deepseek-ai+cosmokit@1.8.7-alpha.1/node_modules/@deepseek-ai/cosmokit/lib/index.js
|
|
69462
69239
|
/** Return true when a value is `null` or `undefined`. */
|
|
69463
69240
|
function isNullable(value) {
|
|
69464
69241
|
return value === null || value === void 0;
|
|
@@ -69626,8 +69403,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
69626
69403
|
}
|
|
69627
69404
|
Time.template = template;
|
|
69628
69405
|
})(Time || (Time = {}));
|
|
69629
|
-
|
|
69630
|
-
//#region node_modules/.pnpm/@deepseek-ai+cordis@4.0.5_@deepseek-ai+cordis-plugin-include@1.0.10_@deepseek-ai+cordis-plugin-loader@1.0.6/node_modules/@deepseek-ai/cordis/lib/index.js
|
|
69406
|
+
// node_modules/.pnpm/@deepseek-ai+cordis@4.0.6-alpha.1_@deepseek-ai+cordis-plugin-include@1.0.11-alpha.1_@de_782585c5ba9930e61e782d060d4eca18/node_modules/@deepseek-ai/cordis/lib/index.js
|
|
69631
69407
|
/** Ordered collection of disposable values with O(1) deletion by value. */
|
|
69632
69408
|
var DisposableList = class {
|
|
69633
69409
|
sn = 0;
|
|
@@ -70633,9 +70409,9 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
70633
70409
|
uid;
|
|
70634
70410
|
/** The context this fiber's plugin runs in (extends the parent context). */
|
|
70635
70411
|
ctx;
|
|
70636
|
-
/** The validated plugin config (updated by `update()`). */
|
|
70412
|
+
/** The validated plugin config (updated by `update()`); read through {@link effectiveConfig}. */
|
|
70637
70413
|
config;
|
|
70638
|
-
/** The raw plugin config, re-resolved before
|
|
70414
|
+
/** The raw plugin config, re-resolved before activation; use {@link rawConfig} to read or retain it. */
|
|
70639
70415
|
_config;
|
|
70640
70416
|
/** Current lifecycle state; transitions emit `internal/status`. */
|
|
70641
70417
|
state = 0;
|
|
@@ -70962,9 +70738,33 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
70962
70738
|
}
|
|
70963
70739
|
});
|
|
70964
70740
|
}
|
|
70965
|
-
|
|
70966
|
-
|
|
70967
|
-
return this.
|
|
70741
|
+
/** Raw input retained for the next activation, without evaluating expressions or validating it. */
|
|
70742
|
+
get rawConfig() {
|
|
70743
|
+
return this.ctx.fiber._config;
|
|
70744
|
+
}
|
|
70745
|
+
/** Retain raw input without changing the running config or triggering an update. */
|
|
70746
|
+
set rawConfig(config) {
|
|
70747
|
+
this.ctx.fiber._config = config;
|
|
70748
|
+
}
|
|
70749
|
+
/**
|
|
70750
|
+
* The config object published by the existing activation/update lifecycle, without cloning or re-parsing.
|
|
70751
|
+
* It is undefined before the first resolution and remains readable after unload; callers requiring a live instance check `state`.
|
|
70752
|
+
*/
|
|
70753
|
+
get effectiveConfig() {
|
|
70754
|
+
return this.ctx.fiber.config;
|
|
70755
|
+
}
|
|
70756
|
+
/**
|
|
70757
|
+
* Evaluate and validate a candidate using this fiber's `internal/config` hooks and runtime schema.
|
|
70758
|
+
* Does not publish the result, replace raw input, or commit running volatile references.
|
|
70759
|
+
* Required injections must be available when a hook uses them.
|
|
70760
|
+
* @param config Raw candidate input.
|
|
70761
|
+
* @returns The candidate's resolved config, retaining the schema's result identity.
|
|
70762
|
+
* @throws {ValidationError} when the runtime schema rejects the candidate; hook errors propagate.
|
|
70763
|
+
*/
|
|
70764
|
+
resolveConfig(config) {
|
|
70765
|
+
const fiber = this.ctx.fiber;
|
|
70766
|
+
config = fiber.context.waterfall(fiber, "internal/config", config, () => config);
|
|
70767
|
+
return fiber.runtime ? resolveConfig(fiber.runtime, config) : config;
|
|
70968
70768
|
}
|
|
70969
70769
|
async _reload() {
|
|
70970
70770
|
this.store = { ...this._store };
|
|
@@ -70972,7 +70772,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
70972
70772
|
try {
|
|
70973
70773
|
await Promise.resolve();
|
|
70974
70774
|
if (this._runner.epoch === oldEpoch) {
|
|
70975
|
-
this.config = this.
|
|
70775
|
+
this.config = this.resolveConfig(this._config);
|
|
70976
70776
|
await this._execute(this._runner);
|
|
70977
70777
|
this._error = void 0;
|
|
70978
70778
|
}
|
|
@@ -71028,10 +70828,11 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
71028
70828
|
* @throws {CordisError} `INACTIVE_EFFECT` when the fiber is already disposed.
|
|
71029
70829
|
*/
|
|
71030
70830
|
async restart() {
|
|
71031
|
-
this.
|
|
71032
|
-
|
|
71033
|
-
|
|
71034
|
-
|
|
70831
|
+
const fiber = this.ctx.fiber;
|
|
70832
|
+
fiber.assertActive();
|
|
70833
|
+
fiber._setEpoch(INACTIVE);
|
|
70834
|
+
fiber._refresh();
|
|
70835
|
+
await fiber.await();
|
|
71035
70836
|
}
|
|
71036
70837
|
/**
|
|
71037
70838
|
* Validate and apply new config, then restart the plugin.
|
|
@@ -71045,19 +70846,20 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
71045
70846
|
* @throws {ValidationError} when the new config fails validation.
|
|
71046
70847
|
*/
|
|
71047
70848
|
update(config, noSave = false) {
|
|
71048
|
-
this.
|
|
71049
|
-
|
|
71050
|
-
|
|
71051
|
-
|
|
71052
|
-
|
|
71053
|
-
|
|
70849
|
+
const fiber = this.ctx.fiber;
|
|
70850
|
+
fiber.assertActive();
|
|
70851
|
+
fiber._config = config;
|
|
70852
|
+
if (fiber.state !== 2) {
|
|
70853
|
+
fiber._error = void 0;
|
|
70854
|
+
fiber._setEpoch(INACTIVE);
|
|
70855
|
+
fiber._refresh();
|
|
71054
70856
|
return;
|
|
71055
70857
|
}
|
|
71056
|
-
config =
|
|
71057
|
-
|
|
71058
|
-
|
|
71059
|
-
|
|
71060
|
-
return
|
|
70858
|
+
config = fiber.resolveConfig(config);
|
|
70859
|
+
fiber.context.waterfall(fiber, "internal/update", config, noSave, () => {
|
|
70860
|
+
fiber.config = config;
|
|
70861
|
+
fiber._error = void 0;
|
|
70862
|
+
return fiber.restart();
|
|
71061
70863
|
});
|
|
71062
70864
|
}
|
|
71063
70865
|
};
|
|
@@ -71439,8 +71241,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
71439
71241
|
return false;
|
|
71440
71242
|
}
|
|
71441
71243
|
};
|
|
71442
|
-
|
|
71443
|
-
//#region src/shared/terminal-input.ts
|
|
71244
|
+
// src/shared/terminal-input.ts
|
|
71444
71245
|
/**
|
|
71445
71246
|
* 移除终端模拟器回答 shell 设备属性查询时产生的控制序列。
|
|
71446
71247
|
*
|
|
@@ -71450,8 +71251,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
71450
71251
|
function stripTerminalDeviceAttributeResponses(data) {
|
|
71451
71252
|
return data.replace(/\u001b\[[?>][0-9;]*c/gu, "");
|
|
71452
71253
|
}
|
|
71453
|
-
|
|
71454
|
-
//#region src/client/terminal/model.ts
|
|
71254
|
+
// src/client/terminal/model.ts
|
|
71455
71255
|
var ObservableValue = class {
|
|
71456
71256
|
value;
|
|
71457
71257
|
listeners = /* @__PURE__ */ new Set();
|
|
@@ -72611,8 +72411,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
72611
72411
|
localStorage.setItem(key, value);
|
|
72612
72412
|
} catch {}
|
|
72613
72413
|
}
|
|
72614
|
-
|
|
72615
|
-
//#region src/client/terminal/recovery.ts
|
|
72414
|
+
// src/client/terminal/recovery.ts
|
|
72616
72415
|
/**
|
|
72617
72416
|
* 将 Host 已存在的终端补回当前 DSH 会话的 Sidebar。
|
|
72618
72417
|
*
|
|
@@ -72766,8 +72565,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
72766
72565
|
function isRecord$1(value) {
|
|
72767
72566
|
return typeof value === "object" && value !== null;
|
|
72768
72567
|
}
|
|
72769
|
-
|
|
72770
|
-
//#region src/client/terminal/styles.ts
|
|
72568
|
+
// src/client/terminal/styles.ts
|
|
72771
72569
|
const STYLE_ID = "codingns4dsh-terminal-ui";
|
|
72772
72570
|
const terminalClass = {
|
|
72773
72571
|
guideEntry: "codingns4dsh-terminal-guide-entry",
|
|
@@ -72897,8 +72695,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
72897
72695
|
.${terminalClass.cleanupNotice} button{border:.5px solid var(--dsw-alias-border-l3);color:inherit;cursor:pointer;background:transparent;border-radius:4px;flex-shrink:0;padding:4px 8px}
|
|
72898
72696
|
@media (max-width:640px){.${terminalClass.list}{padding-left:6px;padding-right:6px}.${terminalClass.listActions}{margin-left:2px;padding-left:2px}.${terminalClass.toolsPanel}{padding-left:6px;padding-right:6px}}
|
|
72899
72697
|
`;
|
|
72900
|
-
|
|
72901
|
-
//#region src/client/terminal/share-menu.ts
|
|
72698
|
+
// src/client/terminal/share-menu.ts
|
|
72902
72699
|
const NEW_SESSION_ITEM = "terminal-share:new-session";
|
|
72903
72700
|
/** 工具栏和选区按钮复用同一个原生菜单,选中会话即加入固定引用卡片。 */
|
|
72904
72701
|
function TerminalShareMenu({ sharing, snapshot, sessionId, anchor, t, onClose, align = "end" }) {
|
|
@@ -73077,8 +72874,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
73077
72874
|
function messageOf$2(value) {
|
|
73078
72875
|
return value instanceof Error ? value.message : String(value);
|
|
73079
72876
|
}
|
|
73080
|
-
|
|
73081
|
-
//#region src/client/terminal/selection-actions.ts
|
|
72877
|
+
// src/client/terminal/selection-actions.ts
|
|
73082
72878
|
/** 根据公开选区末端定位按钮;窗口边缘与移动端可视视口内都保留间距。 */
|
|
73083
72879
|
function positionTerminalSelectionActions(rect, end, cols, rows, viewportY, viewport) {
|
|
73084
72880
|
const row = end.y - viewportY - (end.x === 0 && end.y > viewportY ? 1 : 0);
|
|
@@ -73256,8 +73052,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
73256
73052
|
function messageOf$1(value) {
|
|
73257
73053
|
return value instanceof Error ? value.message : String(value);
|
|
73258
73054
|
}
|
|
73259
|
-
|
|
73260
|
-
//#region src/client/terminal/surface-cache.ts
|
|
73055
|
+
// src/client/terminal/surface-cache.ts
|
|
73261
73056
|
/** 屏幕由终端模型持有;卡片只借用显示位置,不拥有屏幕的销毁权。 */
|
|
73262
73057
|
var TerminalSurfaceCache = class {
|
|
73263
73058
|
surfaces = /* @__PURE__ */ new WeakMap();
|
|
@@ -73274,8 +73069,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
73274
73069
|
return surface;
|
|
73275
73070
|
}
|
|
73276
73071
|
};
|
|
73277
|
-
|
|
73278
|
-
//#region src/client/terminal/xterm-view.ts
|
|
73072
|
+
// src/client/terminal/xterm-view.ts
|
|
73279
73073
|
/** 每个工作区终端只有一块屏幕,切换会话时移动 DOM,保留缓冲区、光标与滚动位置。 */
|
|
73280
73074
|
const surfaces = new TerminalSurfaceCache();
|
|
73281
73075
|
const loadXtermEngine = createEngineLoader(() => require.async("./client.xterm-engine.js"));
|
|
@@ -74088,8 +73882,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
74088
73882
|
fence
|
|
74089
73883
|
].join("\n");
|
|
74090
73884
|
}
|
|
74091
|
-
|
|
74092
|
-
//#region src/client/terminal/sharing.ts
|
|
73885
|
+
// src/client/terminal/sharing.ts
|
|
74093
73886
|
/** 终端视图只登记读取器,不把 xterm 实例泄漏给会话输入框。 */
|
|
74094
73887
|
var TerminalSharing = class {
|
|
74095
73888
|
t;
|
|
@@ -74237,8 +74030,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
74237
74030
|
return this.bridge;
|
|
74238
74031
|
}
|
|
74239
74032
|
};
|
|
74240
|
-
|
|
74241
|
-
//#region src/client/terminal/log-preview.ts
|
|
74033
|
+
// src/client/terminal/log-preview.ts
|
|
74242
74034
|
/** 根级模态框常驻于 shell.overlay,关闭和焦点恢复由原生 Modal 处理。 */
|
|
74243
74035
|
function TerminalLogPreview({ sharing, locale }) {
|
|
74244
74036
|
const state = (0, react.useSyncExternalStore)(sharing.subscribePreview, sharing.getPreviewSnapshot, sharing.getPreviewSnapshot);
|
|
@@ -74277,8 +74069,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
74277
74069
|
"aria-label": t("terminalShare.preview.title")
|
|
74278
74070
|
}, snapshot.text || t("terminalShare.empty")));
|
|
74279
74071
|
}
|
|
74280
|
-
|
|
74281
|
-
//#region src/client/terminal/ui.ts
|
|
74072
|
+
// src/client/terminal/ui.ts
|
|
74282
74073
|
const TERMINAL_PROVIDER_ID = "codingns4dsh/terminal";
|
|
74283
74074
|
const TERMINAL_KIND = "terminal";
|
|
74284
74075
|
const AUTO_CREATE_INTENT_TTL_MS = 5e3;
|
|
@@ -74993,8 +74784,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
74993
74784
|
strokeLinejoin: "round"
|
|
74994
74785
|
}));
|
|
74995
74786
|
}
|
|
74996
|
-
|
|
74997
|
-
//#region src/shared/runtime-environment.ts
|
|
74787
|
+
// src/shared/runtime-environment.ts
|
|
74998
74788
|
/** Host 下发的运行环境标识;缺失或非布尔真值时按正式环境处理。 */
|
|
74999
74789
|
const CODINGNS_STAGE0_GLOBAL = "__CODINGNS_STAGE0__";
|
|
75000
74790
|
/** 浏览器只读 Host 注入值,不依赖 process、端口、URL 或用户设置。 */
|
|
@@ -75021,7 +74811,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
75021
74811
|
"dsh-capabilities/host/session-prompt-adapter.ts",
|
|
75022
74812
|
"host/features/session-prompt-translation.ts",
|
|
75023
74813
|
"host/cli-adapters/feature.ts"
|
|
75024
|
-
]), route("session.external-model-selection", "session-external-model-selection-021", "host", ">=0.2.1-alpha.3", "supported", ["dsh-capabilities/host/session-model-selection-adapter.ts", "host/cli-adapters/feature.ts"]), route("session.activation", "session-activation-020", "host", ">=0.2.
|
|
74814
|
+
]), route("session.external-model-selection", "session-external-model-selection-021", "host", ">=0.2.1-alpha.3", "supported", ["dsh-capabilities/host/session-model-selection-adapter.ts", "host/cli-adapters/feature.ts"]), route("session.activation", "session-activation-020", "host", ">=0.2.1-alpha.2 <=0.2.1-alpha.2", "supported", ["dsh-capabilities/host/session-activation-adapter.ts", "host/native-session-bridge.ts"]), route("session.activation", "session-activation-021", "host", ">=0.2.1-alpha.3", "supported", ["dsh-capabilities/host/session-activation-adapter.ts", "host/native-session-bridge.ts"]), route("workspace.session-control", "workspace-session-control-020", "host", DSH_COMPATIBILITY, "supported", ["dsh-capabilities/host/workspace-session-control-adapter.ts", "host/workspace-mcp/tools.ts"]), route("workspace.pending-questions", "workspace-pending-questions-020", "host", DSH_COMPATIBILITY, "supported", ["dsh-capabilities/host/workspace-pending-questions-adapter.ts", "host/workspace-mcp/tools.ts"]), route("workspace.approval", "workspace-approval-020", "host", DSH_COMPATIBILITY, "supported", ["dsh-capabilities/host/workspace-approval-adapter.ts", "host/workspace-mcp/tools.ts"]), route("conversation.message-presentation", "message-presentation-020", "client", ">=0.2.1-alpha.2 <=0.2.1-alpha.2", "supported", ["dsh-capabilities/client/message-presentation-adapter.ts", "client/session-translation-chat.ts"]), route("conversation.message-presentation", "message-presentation-021", "client", ">=0.2.1-alpha.3", "supported", ["dsh-capabilities/client/message-presentation-adapter.ts", "client/session-translation-chat.ts"]), route("connection.peer", "connection.peer-021", "host", ">=0.2.1-alpha.3", "supported", [
|
|
75025
74815
|
"dsh-capabilities/host/connection-peer-adapter.ts",
|
|
75026
74816
|
"host/rpc.ts",
|
|
75027
74817
|
"host/modules/peer-host/peer-host-native-dispatch.ts"
|
|
@@ -75030,7 +74820,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
75030
74820
|
"dsh-capabilities/host/session-title-adapter.ts",
|
|
75031
74821
|
"host/features/session-title-optimization.ts",
|
|
75032
74822
|
"host/features/git-management.ts"
|
|
75033
|
-
]), route("settings.store", "legacy-settings-scope", "host", ">=0.1.5-rc.3 <=0.1.6", "supported", ["host/settings.ts", "host/features/*"]), route("settings.store", "config-forms", "host", ">=0.1.7-rc.2 <=0.1.7-rc.2", "supported", ["host/settings.ts", "client/settings-bridge.ts"]), route("connection.rpc", "legacy-rpc-handler", "host", ">=0.1.5-rc.3 <=0.1.6", "supported", ["host/rpc.ts"]), route("connection.rpc", "peer-aware-rpc-handler", "host", ">=0.1.7-rc.2 <=0.1.7-rc.2", "supported", ["host/rpc.ts"]), route("connection.peer", "peer-scope", "host", ">=0.1.7-rc.2 <=0.1.7-rc.2", "supported", ["host/rpc.ts"]), route("ui.icon.plus", "fixed-plus-icon", "client", ">=0.1.5-rc.3 <=0.1.6", "supported", ["client/terminal/xterm-view.ts"]), route("ui.icon.plus", "regular-plus-icon", "client", ">=0.1.7-rc.2 <=0.1.7-rc.2", "supported", ["client/terminal/xterm-view.ts"]), route("ui.icon.chevron", "fixed-chevron-icon", "client", ">=0.1.5-rc.3 <=0.1.6", "supported", ["client/terminal/ui.ts"]), route("ui.icon.chevron", "regular-chevron-icon", "client", ">=0.1.7-rc.2 <=0.1.7-rc.2", "supported", ["client/terminal/ui.ts"]), route("locale.runtime", "locale-runtime", "client", ">=0.1.5-rc.3 <=0.1.7-rc.2", "supported", ["client/locale.ts"]), route("theme.runtime", "theme-runtime", "client", ">=0.1.5-rc.3 <=0.1.7-rc.2", "supported", ["client/theme.ts"]), route("conversation.tool-call", "conversation-events", "client", ">=0.1.5-rc.3 <=0.1.7-rc.2", "supported", ["client/external-tool-stream.ts"]), route("sidebar.right", "sidebar-right-tabs", "client", ">=0.1.5-rc.3 <=0.1.7-rc.2", "supported", ["client/terminal/ui.ts"]), route("sidebar.global-panel", "sidebar-panellist-main-020", "client", DSH_COMPATIBILITY, "supported", ["dsh-capabilities/client/global-panel-adapter.ts", "client/features/magpie-management.ts"]), route("typert.remote", "remote-result", "host", ">=0.1.5-rc.3 <=0.1.7-rc.2", "supported", ["host/terminal/terminal-controller.ts", "client/terminal/model.ts"]), route("peer-host.store", "peer-host-store", "host", ">=0.1.5-rc.3 <=0.1.7-rc.2", "supported", ["host/features/peer-host.ts"]), route("peer-host.handshake", "peer-host-handshake", "host", ">=0.1.5-rc.3 <=0.1.7-rc.2", "supported", ["host/features/peer-host.ts"]), route("peer-host.http-proxy", "peer-host-http-proxy", "host", ">=0.1.5-rc.3 <=0.1.7-rc.2", "supported", ["host/features/peer-host.ts"]), route("peer-host.ws-proxy", "peer-host-ws-proxy", "host", ">=0.1.5-rc.3 <=0.1.7-rc.2", "supported", ["host/features/peer-host.ts"]), route("peer-host.aggregate", "peer-host-aggregate", "host", ">=0.1.5-rc.3 <=0.1.7-rc.2", "supported", ["host/features/peer-host.ts"]), route("peer-host.relay-route", "peer-host-relay-route", "host", ">=0.1.5-rc.3 <=0.1.7-rc.2", "supported", ["host/features/peer-host.ts"]), route("peer-host.native-navigation", "peer-host-native-navigation-legacy", "client", ">=0.1.5-rc.3 <=0.1.6", "deprecated", ["client/features/peer-host.ts"]), route("peer-host.native-navigation", "peer-host-native-navigation-modern", "client", ">=0.1.7-rc.2 <=0.1.7-rc.2", "supported", ["client/features/peer-host.ts"]), route("peer-host.remote-web-context-fallback", "peer-host-remote-web-context-fallback", "client", ">=0.1.5-rc.3 <=0.1.7-rc.2", "supported", ["client/features/peer-host.ts"]), route("settings.store", "settings-forms-020", "host", DSH_COMPATIBILITY, "supported", ["host/settings.ts", "host/rpc.ts"]), route("connection.rpc", "connection-rpc-020", "host", DSH_COMPATIBILITY, "supported", ["host/rpc.ts", "transport/dsh-transport.ts"]), route("connection.peer", "connection-peer-admission-020", "host", ">=0.2.
|
|
74823
|
+
]), route("settings.store", "legacy-settings-scope", "host", ">=0.1.5-rc.3 <=0.1.6", "supported", ["host/settings.ts", "host/features/*"]), route("settings.store", "config-forms", "host", ">=0.1.7-rc.2 <=0.1.7-rc.2", "supported", ["host/settings.ts", "client/settings-bridge.ts"]), route("connection.rpc", "legacy-rpc-handler", "host", ">=0.1.5-rc.3 <=0.1.6", "supported", ["host/rpc.ts"]), route("connection.rpc", "peer-aware-rpc-handler", "host", ">=0.1.7-rc.2 <=0.1.7-rc.2", "supported", ["host/rpc.ts"]), route("connection.peer", "peer-scope", "host", ">=0.1.7-rc.2 <=0.1.7-rc.2", "supported", ["host/rpc.ts"]), route("ui.icon.plus", "fixed-plus-icon", "client", ">=0.1.5-rc.3 <=0.1.6", "supported", ["client/terminal/xterm-view.ts"]), route("ui.icon.plus", "regular-plus-icon", "client", ">=0.1.7-rc.2 <=0.1.7-rc.2", "supported", ["client/terminal/xterm-view.ts"]), route("ui.icon.chevron", "fixed-chevron-icon", "client", ">=0.1.5-rc.3 <=0.1.6", "supported", ["client/terminal/ui.ts"]), route("ui.icon.chevron", "regular-chevron-icon", "client", ">=0.1.7-rc.2 <=0.1.7-rc.2", "supported", ["client/terminal/ui.ts"]), route("locale.runtime", "locale-runtime", "client", ">=0.1.5-rc.3 <=0.1.7-rc.2", "supported", ["client/locale.ts"]), route("theme.runtime", "theme-runtime", "client", ">=0.1.5-rc.3 <=0.1.7-rc.2", "supported", ["client/theme.ts"]), route("conversation.tool-call", "conversation-events", "client", ">=0.1.5-rc.3 <=0.1.7-rc.2", "supported", ["client/external-tool-stream.ts"]), route("sidebar.right", "sidebar-right-tabs", "client", ">=0.1.5-rc.3 <=0.1.7-rc.2", "supported", ["client/terminal/ui.ts"]), route("sidebar.global-panel", "sidebar-panellist-main-020", "client", DSH_COMPATIBILITY, "supported", ["dsh-capabilities/client/global-panel-adapter.ts", "client/features/magpie-management.ts"]), route("typert.remote", "remote-result", "host", ">=0.1.5-rc.3 <=0.1.7-rc.2", "supported", ["host/terminal/terminal-controller.ts", "client/terminal/model.ts"]), route("peer-host.store", "peer-host-store", "host", ">=0.1.5-rc.3 <=0.1.7-rc.2", "supported", ["host/features/peer-host.ts"]), route("peer-host.handshake", "peer-host-handshake", "host", ">=0.1.5-rc.3 <=0.1.7-rc.2", "supported", ["host/features/peer-host.ts"]), route("peer-host.http-proxy", "peer-host-http-proxy", "host", ">=0.1.5-rc.3 <=0.1.7-rc.2", "supported", ["host/features/peer-host.ts"]), route("peer-host.ws-proxy", "peer-host-ws-proxy", "host", ">=0.1.5-rc.3 <=0.1.7-rc.2", "supported", ["host/features/peer-host.ts"]), route("peer-host.aggregate", "peer-host-aggregate", "host", ">=0.1.5-rc.3 <=0.1.7-rc.2", "supported", ["host/features/peer-host.ts"]), route("peer-host.relay-route", "peer-host-relay-route", "host", ">=0.1.5-rc.3 <=0.1.7-rc.2", "supported", ["host/features/peer-host.ts"]), route("peer-host.native-navigation", "peer-host-native-navigation-legacy", "client", ">=0.1.5-rc.3 <=0.1.6", "deprecated", ["client/features/peer-host.ts"]), route("peer-host.native-navigation", "peer-host-native-navigation-modern", "client", ">=0.1.7-rc.2 <=0.1.7-rc.2", "supported", ["client/features/peer-host.ts"]), route("peer-host.remote-web-context-fallback", "peer-host-remote-web-context-fallback", "client", ">=0.1.5-rc.3 <=0.1.7-rc.2", "supported", ["client/features/peer-host.ts"]), route("settings.store", "settings-forms-020", "host", DSH_COMPATIBILITY, "supported", ["host/settings.ts", "host/rpc.ts"]), route("connection.rpc", "connection-rpc-020", "host", DSH_COMPATIBILITY, "supported", ["host/rpc.ts", "transport/dsh-transport.ts"]), route("connection.peer", "connection-peer-admission-020", "host", ">=0.2.1-alpha.2 <=0.2.1-alpha.2", "supported", ["host/rpc.ts"]), route("connection.attachment", "connection-rpc-attachment-020", "host", DSH_COMPATIBILITY, "supported", ["host/rpc.ts", "transport/dsh-transport.ts"]), route("connection.uplink", "connection-rpc-uplink-020", "host", ">=0.2.1-alpha.2 <=0.2.1-alpha.2", "supported", ["host/rpc.ts", "transport/dsh-transport.ts"]), route("typert.remote", "remote-context-stream-020", "host", DSH_COMPATIBILITY, "supported", ["host/terminal/terminal-controller.ts", "client/terminal/model.ts"]), route("typert.context", "typert-context-registry-020", "host", DSH_COMPATIBILITY, "supported", ["typert.host.ts", "host/terminal/terminal-controller.ts"]), route("typert.stream", "typert-remote-stream-020", "host", DSH_COMPATIBILITY, "supported", ["typert.host.ts", "typert.remote-client.ts"]), route("session.format-v4", "session-format-v4", "host", DSH_COMPATIBILITY, "supported", ["host/native-session-bridge.ts", "host/session-migration-repair.ts"]), route("subagent.continuable", "subagent-activation-021", "host", ">=0.2.1-alpha.2", "supported", ["host/cli-adapters/native-team-subagent.ts", "host/cli-adapters/native-subagent-dispatch.ts"]), route("agent-team.native", "agent-team-native-020", "host", DSH_COMPATIBILITY, "supported", ["host/cli-adapters/feature.ts", "host/cli-adapters/native-team-proxy.ts"]), route("agent-team.external-member", "agent-team-external-member-021", "host", ">=0.2.1-alpha.2", "supported", ["host/cli-adapters/feature.ts", "host/cli-bridge/team-dispatch.ts"]), route("agent-team.external-lead", "agent-team-external-lead-021", "host", ">=0.2.1-alpha.2", "supported", ["host/cli-adapters/feature.ts", "host/cli-bridge/team-dispatch.ts"]), route("ui.icon.plus", "regular-plus-icon-020", "client", DSH_COMPATIBILITY, "supported", ["client/terminal/xterm-view.ts"]), route("ui.icon.chevron", "regular-chevron-icon-020", "client", DSH_COMPATIBILITY, "supported", ["client/terminal/ui.ts"]), route("locale.runtime", "locale-runtime-020", "client", DSH_COMPATIBILITY, "supported", ["client/locale.ts"]), route("theme.runtime", "theme-runtime-020", "client", DSH_COMPATIBILITY, "supported", ["client/theme.ts"]), route("theme.font-scale", "theme-font-scale-021", "client", ">=0.2.1-alpha.2", "supported", ["client/font-scale.ts", "client/index.ts"]), route("conversation.tool-call", "conversation-events-020", "client", DSH_COMPATIBILITY, "supported", ["client/external-tool-stream.ts"]), route("conversation.draft-share", "conversation-draft-share-021", "client", ">=0.2.1-alpha.1", "supported", ["client/terminal/ui.ts", "client/terminal/sharing.ts"]), route("conversation.interaction-translation", "interaction-presentation-021", "client", DSH_COMPATIBILITY, "supported", ["client/session-translation-interactions.ts"]), route("sidebar.right", "sidebar-right-dock-020", "client", DSH_COMPATIBILITY, "supported", ["client/terminal/ui.ts"]), route("typert.remote", "remote-context-stream-020-client", "client", DSH_COMPATIBILITY, "supported", ["client/terminal/model.ts"]), route("typert.context", "typert-context-registry-020-client", "client", DSH_COMPATIBILITY, "supported", ["typert.remote-client.ts", "client/terminal/model.ts"]), route("typert.stream", "typert-remote-stream-020-client", "client", DSH_COMPATIBILITY, "supported", ["typert.remote-client.ts", "client/terminal/model.ts"]), route("client.boot-graph", "client-web-boot-graph-020", "client", DSH_COMPATIBILITY, "supported", ["client/index.ts", "package.json"]), route("peer-host.native-navigation", "peer-host-native-navigation-020", "client", DSH_COMPATIBILITY, "supported", ["client/features/peer-host.ts"]), route("peer-host.remote-web-context-fallback", "peer-host-remote-web-context-fallback-020", "client", DSH_COMPATIBILITY, "supported", ["client/features/peer-host.ts"]), route("peer-host.store", "peer-host-store-020", "host", DSH_COMPATIBILITY, "supported", ["host/features/peer-host.ts"]), route("peer-host.handshake", "peer-host-handshake-020", "host", DSH_COMPATIBILITY, "supported", ["host/features/peer-host.ts"]), route("peer-host.http-proxy", "peer-host-http-proxy-020", "host", DSH_COMPATIBILITY, "supported", ["host/features/peer-host.ts", "host/modules/peer-host/quick-app-gateway.ts"]), route("peer-host.ws-proxy", "peer-host-ws-proxy-020", "host", DSH_COMPATIBILITY, "supported", ["host/features/peer-host.ts"]), route("peer-host.aggregate", "peer-host-aggregate-020", "host", DSH_COMPATIBILITY, "supported", ["host/features/peer-host.ts"]), route("peer-host.aggregated-transport", "peer-host-aggregated-transport-020", "host", DSH_COMPATIBILITY, "supported", ["host/modules/peer-host/aggregated-host-transport.ts"]), route("peer-host.client-preboot-transport", "peer-host-client-preboot-transport-020", "client", DSH_COMPATIBILITY, "supported", [
|
|
75034
74824
|
"bootstrap/index.ts",
|
|
75035
74825
|
"host/index-injection.ts",
|
|
75036
74826
|
"client/features/peer-host.ts"
|
|
@@ -75053,8 +74843,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
75053
74843
|
consumers
|
|
75054
74844
|
};
|
|
75055
74845
|
}
|
|
75056
|
-
|
|
75057
|
-
//#region node_modules/.pnpm/@deepseek-ai+dsh-util-workspace-path@0.2.1-rc.5_@deepseek-ai+cordis@4.0.5/node_modules/@deepseek-ai/dsh-util-workspace-path/lib/index.js
|
|
74846
|
+
// node_modules/.pnpm/@deepseek-ai+dsh-util-workspace-path@0.2.2-alpha.2_@deepseek-ai+cordis@4.0.6-alpha.1/node_modules/@deepseek-ai/dsh-util-workspace-path/lib/index.js
|
|
75058
74847
|
/**
|
|
75059
74848
|
* The `dsh-resource://file/…` address grammar: how a file is named across the
|
|
75060
74849
|
* Sidebar and the resource model, built and parsed without touching a
|
|
@@ -75123,8 +74912,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
75123
74912
|
return;
|
|
75124
74913
|
}
|
|
75125
74914
|
}
|
|
75126
|
-
|
|
75127
|
-
//#region src/client/session-file-links.ts
|
|
74915
|
+
// src/client/session-file-links.ts
|
|
75128
74916
|
/**
|
|
75129
74917
|
* 在原生资源入口规范本地及远端链接,保留资源里的会话身份和导航参数。
|
|
75130
74918
|
* 右栏文件树、消息与预览内链接共用这个入口;不扫描消息正文或当前选择。
|
|
@@ -75165,8 +74953,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
75165
74953
|
return workspace?.workspacePath ?? sessions?.getSnapshot().byId?.[sessionId]?.cwd ?? workspace?.path;
|
|
75166
74954
|
});
|
|
75167
74955
|
}
|
|
75168
|
-
|
|
75169
|
-
//#region node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/util.js
|
|
74956
|
+
// node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/util.js
|
|
75170
74957
|
function getEnumValues(entries) {
|
|
75171
74958
|
const numericValues = Object.values(entries).filter((v) => typeof v === "number");
|
|
75172
74959
|
return Object.entries(entries).filter(([k, _]) => numericValues.indexOf(+k) === -1).map(([_, v]) => v);
|
|
@@ -75473,6 +75260,17 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
75473
75260
|
function unwrapMessage(message) {
|
|
75474
75261
|
return typeof message === "string" ? message : message?.message;
|
|
75475
75262
|
}
|
|
75263
|
+
/** The leading size checks of `defChecks` that set an upper bound, each paired with it. */
|
|
75264
|
+
function sizeCaps(defChecks) {
|
|
75265
|
+
const caps = [];
|
|
75266
|
+
for (const ch of defChecks ?? []) {
|
|
75267
|
+
const d = ch._zod.def;
|
|
75268
|
+
if (!/_(length|size)$|_equals$/.test(d.check)) break;
|
|
75269
|
+
const max = d.maximum ?? d.length ?? d.size;
|
|
75270
|
+
if (max >= 0) caps.push([max, ch]);
|
|
75271
|
+
}
|
|
75272
|
+
return caps;
|
|
75273
|
+
}
|
|
75476
75274
|
function attachSchema(issues, start, inst) {
|
|
75477
75275
|
var _a;
|
|
75478
75276
|
for (let i = start; i < issues.length; i++) (_a = issues[i]).schema ?? (_a.schema = inst);
|
|
@@ -75565,6 +75363,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
75565
75363
|
return own(inst, key, value, false);
|
|
75566
75364
|
}
|
|
75567
75365
|
/** Adds members a table derives from the instance: each builds on first read and shadows as own data, and assignment shadows the same way, as when these were own properties. */
|
|
75366
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
75568
75367
|
function derived(computes, table) {
|
|
75569
75368
|
for (const key in computes) {
|
|
75570
75369
|
const compute = computes[key];
|
|
@@ -75688,8 +75487,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
75688
75487
|
fn[CONSTANT_CATCH] = true;
|
|
75689
75488
|
return fn;
|
|
75690
75489
|
}
|
|
75691
|
-
|
|
75692
|
-
//#region node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/core.js
|
|
75490
|
+
// node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/core.js
|
|
75693
75491
|
var _a$1;
|
|
75694
75492
|
const _zodDesc = {
|
|
75695
75493
|
value: void 0,
|
|
@@ -75716,6 +75514,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
75716
75514
|
}
|
|
75717
75515
|
return new Definition();
|
|
75718
75516
|
}
|
|
75517
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
75719
75518
|
function $constructor(name, initializer, proto, params) {
|
|
75720
75519
|
const zodProto = {};
|
|
75721
75520
|
function Internals(def) {
|
|
@@ -75794,8 +75593,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
75794
75593
|
if (newConfig) Object.assign(globalConfig, newConfig);
|
|
75795
75594
|
return globalConfig;
|
|
75796
75595
|
}
|
|
75797
|
-
|
|
75798
|
-
//#region node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/errors.js
|
|
75596
|
+
// node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/errors.js
|
|
75799
75597
|
function _getMessage() {
|
|
75800
75598
|
const internals = this._zod;
|
|
75801
75599
|
internals.message ?? (internals.message = JSON.stringify(internals.def, jsonStringifyReplacer, 2));
|
|
@@ -75846,8 +75644,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
75846
75644
|
});
|
|
75847
75645
|
}
|
|
75848
75646
|
};
|
|
75849
|
-
const $ZodError = $constructor("$ZodError", initializer$1);
|
|
75850
|
-
$constructor("$ZodError", initializer$1, void 0, { Parent: Error });
|
|
75647
|
+
const $ZodError = /* @__PURE__ */ $constructor("$ZodError", initializer$1);
|
|
75851
75648
|
/** Get-or-create `obj[key]` as an own data property. A path segment naming an inherited member
|
|
75852
75649
|
* ("toString", "constructor") would otherwise read through to the prototype, and assigning
|
|
75853
75650
|
* "__proto__" would hit the setter instead of creating a key. */
|
|
@@ -75910,8 +75707,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
75910
75707
|
processError(error);
|
|
75911
75708
|
return fieldErrors;
|
|
75912
75709
|
}
|
|
75913
|
-
|
|
75914
|
-
//#region node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/parse.js
|
|
75710
|
+
// node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/parse.js
|
|
75915
75711
|
function finalizeParams(callee, params) {
|
|
75916
75712
|
return {
|
|
75917
75713
|
callee: params?.callee ?? callee,
|
|
@@ -76113,8 +75909,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
76113
75909
|
const _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => {
|
|
76114
75910
|
return _safeParseAsync(_Err)(schema, value, _ctx);
|
|
76115
75911
|
};
|
|
76116
|
-
|
|
76117
|
-
//#region node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/regexes.js
|
|
75912
|
+
// node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/regexes.js
|
|
76118
75913
|
/**
|
|
76119
75914
|
* @deprecated CUID v1 is deprecated by its authors due to information leakage
|
|
76120
75915
|
* (timestamps embedded in the id). Use {@link cuid2} instead.
|
|
@@ -76183,8 +75978,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
76183
75978
|
const number$1 = /^-?\d+(?:\.\d+)?$/;
|
|
76184
75979
|
const lowercase = /^[^A-Z]*$/;
|
|
76185
75980
|
const uppercase = /^[^a-z]*$/;
|
|
76186
|
-
|
|
76187
|
-
//#region node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/checks.js
|
|
75981
|
+
// node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/checks.js
|
|
76188
75982
|
const $ZodCheck = /*@__PURE__*/ $constructor("$ZodCheck", (inst, def) => {
|
|
76189
75983
|
var _a;
|
|
76190
75984
|
inst._zod ?? (inst._zod = {});
|
|
@@ -76479,8 +76273,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
76479
76273
|
payload.value = def.tx(payload.value);
|
|
76480
76274
|
};
|
|
76481
76275
|
});
|
|
76482
|
-
|
|
76483
|
-
//#region node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/doc.js
|
|
76276
|
+
// node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/doc.js
|
|
76484
76277
|
var Doc = class {
|
|
76485
76278
|
constructor(args = [], closed = {}) {
|
|
76486
76279
|
this.content = [];
|
|
@@ -76513,15 +76306,13 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
76513
76306
|
return new F(...Object.keys(this.closed), `return function (${this.args.join(", ")}) {\n${content.join("\n")}\n};`)(...Object.values(this.closed));
|
|
76514
76307
|
}
|
|
76515
76308
|
};
|
|
76516
|
-
|
|
76517
|
-
//#region node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/versions.js
|
|
76309
|
+
// node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/versions.js
|
|
76518
76310
|
const version = {
|
|
76519
76311
|
major: 4,
|
|
76520
76312
|
minor: 6,
|
|
76521
|
-
patch:
|
|
76313
|
+
patch: 7
|
|
76522
76314
|
};
|
|
76523
|
-
|
|
76524
|
-
//#region node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/schemas.js
|
|
76315
|
+
// node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/schemas.js
|
|
76525
76316
|
const $ZodType = /*@__PURE__*/ $constructor("$ZodType", (inst, def) => {
|
|
76526
76317
|
var _a;
|
|
76527
76318
|
inst ?? (inst = {});
|
|
@@ -77014,6 +76805,26 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
77014
76805
|
return payload;
|
|
77015
76806
|
};
|
|
77016
76807
|
});
|
|
76808
|
+
function capSize(inst, size) {
|
|
76809
|
+
const caps = sizeCaps(inst._zod.def.checks);
|
|
76810
|
+
if (!caps.length) return;
|
|
76811
|
+
const cap = Math.min(...caps.map((c) => c[0]));
|
|
76812
|
+
const parse = inst._zod.parse;
|
|
76813
|
+
inst._zod.parse = (payload, ctx) => {
|
|
76814
|
+
const n = size(payload.value);
|
|
76815
|
+
if (n > cap && !ctx?.skipChecks && ctx?.direction !== "backward") {
|
|
76816
|
+
for (const [max, ch] of sizeCaps(inst._zod.def.checks)) if (n > max && ch._zod.def.when(payload)) {
|
|
76817
|
+
const start = payload.issues.length;
|
|
76818
|
+
ch._zod.check(payload);
|
|
76819
|
+
payload.issues[start].continue = false;
|
|
76820
|
+
attachSchema(payload.issues, start, inst);
|
|
76821
|
+
return payload;
|
|
76822
|
+
}
|
|
76823
|
+
}
|
|
76824
|
+
return parse(payload, ctx);
|
|
76825
|
+
};
|
|
76826
|
+
}
|
|
76827
|
+
const arraySize = (input) => Array.isArray(input) ? input.length : -1;
|
|
77017
76828
|
function handleArrayResult(result, final, index) {
|
|
77018
76829
|
if (result.issues.length) final.issues.push(...prefixIssues(index, result.issues));
|
|
77019
76830
|
final.value[index] = result.value;
|
|
@@ -77051,6 +76862,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
77051
76862
|
if (proms.length) return Promise.all(proms).then(() => payload);
|
|
77052
76863
|
return payload;
|
|
77053
76864
|
};
|
|
76865
|
+
capSize(inst, arraySize);
|
|
77054
76866
|
});
|
|
77055
76867
|
function handlePropertyResult(result, final, key, input, optin, optout) {
|
|
77056
76868
|
const isPresent = key in input;
|
|
@@ -77159,7 +76971,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
77159
76971
|
}
|
|
77160
76972
|
return propValues;
|
|
77161
76973
|
});
|
|
77162
|
-
const isObject$
|
|
76974
|
+
const isObject$2 = isObject;
|
|
77163
76975
|
const catchall = def.catchall;
|
|
77164
76976
|
let value;
|
|
77165
76977
|
const memo = globalConfig.memoizer;
|
|
@@ -77167,7 +76979,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
77167
76979
|
inst._zod.parse = (payload, ctx) => {
|
|
77168
76980
|
value ?? (value = _normalized.value);
|
|
77169
76981
|
const input = payload.value;
|
|
77170
|
-
if (!isObject$
|
|
76982
|
+
if (!isObject$2(input)) {
|
|
77171
76983
|
payload.issues.push({
|
|
77172
76984
|
expected: "object",
|
|
77173
76985
|
code: "invalid_type",
|
|
@@ -77297,7 +77109,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
77297
77109
|
return doc.compile();
|
|
77298
77110
|
};
|
|
77299
77111
|
let fastpass;
|
|
77300
|
-
const isObject$
|
|
77112
|
+
const isObject$3 = isObject;
|
|
77301
77113
|
const jit = !globalConfig.jitless;
|
|
77302
77114
|
const fastEnabled = jit && allowsEval.value;
|
|
77303
77115
|
const catchall = def.catchall;
|
|
@@ -77305,7 +77117,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
77305
77117
|
inst._zod.parse = (payload, ctx) => {
|
|
77306
77118
|
value ?? (value = _normalized.value);
|
|
77307
77119
|
const input = payload.value;
|
|
77308
|
-
if (!isObject$
|
|
77120
|
+
if (!isObject$3(input)) {
|
|
77309
77121
|
payload.issues.push({
|
|
77310
77122
|
expected: "object",
|
|
77311
77123
|
code: "invalid_type",
|
|
@@ -77754,8 +77566,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
77754
77566
|
payload.issues.push(issue(_iss));
|
|
77755
77567
|
}
|
|
77756
77568
|
}
|
|
77757
|
-
|
|
77758
|
-
//#region node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/memoizer.js
|
|
77569
|
+
// node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/memoizer.js
|
|
77759
77570
|
var $ZodCyclicError = class extends Error {
|
|
77760
77571
|
constructor() {
|
|
77761
77572
|
super(`Cannot parse a reference cycle that closes through a transform`);
|
|
@@ -78007,8 +77818,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
78007
77818
|
const backEdges = ctx[STATE]?.backEdges;
|
|
78008
77819
|
return backEdges !== void 0 && isRef(value) && backEdges.has(value);
|
|
78009
77820
|
}
|
|
78010
|
-
|
|
78011
|
-
//#region node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/en.js
|
|
77821
|
+
// node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/en.js
|
|
78012
77822
|
const error = () => {
|
|
78013
77823
|
const Sizable = {
|
|
78014
77824
|
string: {
|
|
@@ -78115,8 +77925,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
78115
77925
|
function en_default() {
|
|
78116
77926
|
return { localeError: error() };
|
|
78117
77927
|
}
|
|
78118
|
-
|
|
78119
|
-
//#region node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/registries.js
|
|
77928
|
+
// node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/registries.js
|
|
78120
77929
|
var _a;
|
|
78121
77930
|
var $ZodRegistry = class {
|
|
78122
77931
|
constructor() {
|
|
@@ -78162,8 +77971,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
78162
77971
|
}
|
|
78163
77972
|
(_a = globalThis).__zod_globalRegistry ?? (_a.__zod_globalRegistry = registry());
|
|
78164
77973
|
const globalRegistry = globalThis.__zod_globalRegistry;
|
|
78165
|
-
|
|
78166
|
-
//#region node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/api.js
|
|
77974
|
+
// node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/api.js
|
|
78167
77975
|
function snapshotChecks(def) {
|
|
78168
77976
|
if (def.checks) def.checks = [...def.checks];
|
|
78169
77977
|
return def;
|
|
@@ -78671,8 +78479,7 @@ button.${settingsPromoClass.version}:focus-visible{${focusRing}}
|
|
|
78671
78479
|
ch._zod.check = fn;
|
|
78672
78480
|
return ch;
|
|
78673
78481
|
}
|
|
78674
|
-
|
|
78675
|
-
//#region node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/to-json-schema.js
|
|
78482
|
+
// node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/to-json-schema.js
|
|
78676
78483
|
function assignProps(target, ...sources) {
|
|
78677
78484
|
for (const source of sources) for (const key of Reflect.ownKeys(source)) if (Object.prototype.propertyIsEnumerable.call(source, key)) assignProp(target, key, source[key]);
|
|
78678
78485
|
return target;
|
|
@@ -79115,8 +78922,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
79115
78922
|
extractDefs(ctx, schema);
|
|
79116
78923
|
return finalize(ctx, schema);
|
|
79117
78924
|
};
|
|
79118
|
-
|
|
79119
|
-
//#region node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/json-schema-processors.js
|
|
78925
|
+
// node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/json-schema-processors.js
|
|
79120
78926
|
const narrowMin = (agg, key, value) => {
|
|
79121
78927
|
if (agg[key] === void 0 || value > agg[key]) agg[key] = value;
|
|
79122
78928
|
};
|
|
@@ -79462,8 +79268,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
79462
79268
|
const seen = ctx.seen.get(schema);
|
|
79463
79269
|
seen.ref = def.innerType;
|
|
79464
79270
|
};
|
|
79465
|
-
|
|
79466
|
-
//#region node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/errors.js
|
|
79271
|
+
// node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/classic/errors.js
|
|
79467
79272
|
const _installedErrorProtos = /* @__PURE__ */ new WeakSet([Object.prototype, Error.prototype]);
|
|
79468
79273
|
function _lazyMethod(proto, key, make) {
|
|
79469
79274
|
Object.defineProperty(proto, key, {
|
|
@@ -79512,8 +79317,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
79512
79317
|
});
|
|
79513
79318
|
};
|
|
79514
79319
|
const ZodRealError = /*@__PURE__*/ $constructor("ZodError", initializer, void 0, { Parent: Error });
|
|
79515
|
-
|
|
79516
|
-
//#region node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/parse.js
|
|
79320
|
+
// node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/classic/parse.js
|
|
79517
79321
|
const parse = /* @__PURE__ */ _parse(ZodRealError);
|
|
79518
79322
|
const parseAsync = /* @__PURE__ */ _parseAsync(ZodRealError);
|
|
79519
79323
|
const safeParse = /* @__PURE__ */ _safeParse(ZodRealError);
|
|
@@ -79526,8 +79330,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
79526
79330
|
const safeDecode = /* @__PURE__ */ _safeDecode(ZodRealError);
|
|
79527
79331
|
const safeEncodeAsync = /* @__PURE__ */ _safeEncodeAsync(ZodRealError);
|
|
79528
79332
|
const safeDecodeAsync = /* @__PURE__ */ _safeDecodeAsync(ZodRealError);
|
|
79529
|
-
|
|
79530
|
-
//#region node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/schemas.js
|
|
79333
|
+
// node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/classic/schemas.js
|
|
79531
79334
|
function _ensureDefaultLocale() {
|
|
79532
79335
|
if (!globalConfig.localeError) config(en_default());
|
|
79533
79336
|
}
|
|
@@ -80374,8 +80177,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
80374
80177
|
function superRefine(fn, params) {
|
|
80375
80178
|
return /* @__PURE__ */ _superRefine(fn, params);
|
|
80376
80179
|
}
|
|
80377
|
-
|
|
80378
|
-
//#region src/typert.host.ts
|
|
80180
|
+
// src/typert.host.ts
|
|
80379
80181
|
const sessionIdSchema = string();
|
|
80380
80182
|
const terminalIdSchema = string();
|
|
80381
80183
|
const attachmentIdSchema = string();
|
|
@@ -80564,14 +80366,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
80564
80366
|
objects: []
|
|
80565
80367
|
}
|
|
80566
80368
|
};
|
|
80567
|
-
|
|
80568
|
-
//#region src/typert.remote-client.ts
|
|
80369
|
+
// src/typert.remote-client.ts
|
|
80569
80370
|
const TYPERT_REMOTE = {
|
|
80570
80371
|
package: TYPERT.package,
|
|
80571
80372
|
descriptors: TYPERT.invocations.filter((item) => item.namespace === "codingnsTerminal")
|
|
80572
80373
|
};
|
|
80573
|
-
|
|
80574
|
-
//#region src/client/pwa-notifications.ts
|
|
80374
|
+
// src/client/pwa-notifications.ts
|
|
80575
80375
|
/** 通知与推送的统一入口;同一实例可重复调用。 */
|
|
80576
80376
|
var PwaNotificationClient = class {
|
|
80577
80377
|
globalLike;
|
|
@@ -80723,8 +80523,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
80723
80523
|
for (let index = 0; index < binary.length; index += 1) bytes[index] = binary.charCodeAt(index);
|
|
80724
80524
|
return bytes;
|
|
80725
80525
|
}
|
|
80726
|
-
|
|
80727
|
-
//#region src/client/index.ts
|
|
80526
|
+
// src/client/index.ts
|
|
80728
80527
|
/** Client Runner 用于等待核心服务就绪的 Cordis 依赖声明。 */
|
|
80729
80528
|
const inject = [
|
|
80730
80529
|
"slots",
|
|
@@ -80950,7 +80749,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
80950
80749
|
readLatest: async () => callCodingNsRpc(rpc, "settings/get", {})
|
|
80951
80750
|
});
|
|
80952
80751
|
}
|
|
80953
|
-
//#endregion
|
|
80954
80752
|
exports.CLIENT_FEATURES = CLIENT_FEATURES;
|
|
80955
80753
|
exports.CONTEXT_BREAKDOWN_CONVERSATION_ATTRIBUTE = CONTEXT_BREAKDOWN_CONVERSATION_ATTRIBUTE;
|
|
80956
80754
|
exports.CONTEXT_BREAKDOWN_HIDDEN_ATTRIBUTE = CONTEXT_BREAKDOWN_HIDDEN_ATTRIBUTE;
|
|
@@ -81004,5 +80802,5 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
81004
80802
|
});
|
|
81005
80803
|
|
|
81006
80804
|
})();
|
|
81007
|
-
// codingns-client-revision:
|
|
80805
|
+
// codingns-client-revision: 670f31c71312770761eba2caa6de2527dfbe3de6c81d8774ffd3ae84834cef9c
|
|
81008
80806
|
//# sourceMappingURL=bundle.js.map
|