@anweat/dsh-browser 0.1.15-alpha.2 → 0.1.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -10,34 +10,58 @@
10
10
 
11
11
  | 插件发布通道 | DSH 基线 | 兼容承诺 |
12
12
  |---|---|---|
13
- | npm `latest`(`0.1.12`) | `dsh-v0.1.1-rc.2` 至 `dsh-v0.1.2-rc.1` | 已验证维护基线 |
14
- | npm `next` 候选(`0.1.15-alpha.2`) | `dsh-v0.1.5-alpha.1` | 精确依赖与真实 profile 验收目标 |
15
-
16
- `0.1.15-alpha.2` 使用 DSH 新客户端分包:状态存储来自
13
+ | `0.1.12` 及更早的维护版本 | `dsh-v0.1.1-rc.2` 至 `dsh-v0.1.2-rc.1` | 旧基线;不与新插件混装 |
14
+ | `0.1.15` | `dsh-v0.1.7-rc.2` | 精确锁定该宿主版本;组合安装、真实 Web profile 与设置持久化已验证 |
15
+ | `0.1.17` | `dsh-v0.1.7-rc.2` ~ `dsh-v0.2.0-rc.2` | peer 收口为「实测过的两条线」(上界 `<0.2.1-0`);在 `0.2.0-rc.2` 上完成 typecheck、构建、52 项测试与真实挂载验证;补充浏览器缓存路径配置说明,并新增 peer 双解析模式检查 |
16
+
17
+ `0.1.17` 把 DSH 运行时依赖由精确锁定改为范围声明(`^0.1.7-rc.2 || >=0.2.0-rc.1 <0.2.1-0`),
18
+ 使同一份包可装在 `0.1.7-rc.2` 与 `0.2.0-rc.2` 两代宿主上(两代之间的 `defineTool`、
19
+ 凭据引用、配置表单与客户端槽位契约在本插件用到的范围内保持兼容)。
20
+ 范围只声明**实测过的两条线**,既不写成 `>=0.1.7-rc.2 <0.3.0`,也不写成一路放行到 0.3.0 的 `^0.2.0-rc.1`:
21
+
22
+ - 宿主的组装期校验用的是 `semver.satisfies(host, range, { includePrerelease: true })`,所以「单范围能不能过宿主」不是关键。
23
+ 真正决定装机成败的是 npm/pnpm 的**默认** semver:预发布版本只有在某个比较符自带同号(同 major.minor.patch)预发布时才被判为满足。
24
+ 于是 `>=0.1.7-rc.2 <0.2.1-0` 这种写法过得了宿主校验,却会让 `dsh plugin add` 报 ERESOLVE(上界 tuple 是 0.2.1,接不住 0.2.0-rc.2);
25
+ 而 `>=0.2.0-rc.1` 这个比较符是**承重**的,必须保留。
26
+ - `0.1.5 → 0.1.7` 曾一次性打断所有按 `0.1.5-alpha.1` 构建的插件。所以 `^0.2.0-rc.1`(等于说整个 0.2.x 都兼容)
27
+ 是对没测过版本的承诺;收口到 `<0.2.1-0` 后,若 0.2.1 真出现破坏,会在**组装期**直接报
28
+ `is incompatible with dsh 0.2.1` 并点名,而不是拖到用户机器上变成运行期怪错。
29
+ - 范围只表示「测过哪些」,不等于承诺不破坏;真正的防线是每换一个 DSH 版本重跑一遍这套验证。
30
+ `pnpm run test:peers`(已并入 `pnpm verify`)用两种解析模式逐个断言受管 peer,并自带 `--selftest` 已知行为自校验。
31
+ `0.1.15` 使用 DSH 新客户端分包:状态存储来自
17
32
  `dsh-client-store`,设置契约来自 `dsh-client-ui-settings`,客户端 Context
18
- 来自 Cordis。该候选不会覆盖 npm `latest`。
33
+ 来自 Cordis。npm 上 `0.1.15-alpha.2` 仍声明旧版 DSH peer,不能与本版混用。
34
+
35
+ 启动期设置解析对宿主版本自适应:旧宿主仍提供 `settings.register(ns, schema, opts)`
36
+ 时沿用 live scope;`dsh-v0.1.7-rc.2` 起移除了该方法,设置页改由 Loader 条目的
37
+ `Config` schema 直接派生,插件改为读取宿主注入的条目配置。
38
+
39
+ 浏览器设置卡片则只适配 `dsh-v0.1.7-rc.2`:`SettingsScope`/`ctx.settingsScope`
40
+ (≤ `dsh-v0.1.5-alpha.1`)与 `ConfigForm`/`ctx.configForms`(`dsh-v0.1.7-rc.2`+)
41
+ 是互斥的客户端契约,没有一份源码能同时编译两者,因此 `devDependencies` 锁定
42
+ `0.1.7-rc.2`。Host 半边的自适应是优雅降级,不是受支持目标。
19
43
 
20
44
  ## 安装
21
45
 
22
46
  ```bash
23
- dsh plugin --profile web add @anweat/dsh-browser
47
+ dsh plugin --profile web add @anweat/dsh-browser@0.1.17
24
48
  # 或本地目录 / tarball:
25
49
  dsh plugin --profile web add ./dsh-browser
26
50
  # 重启(web profile 关闭了 HMR):
27
51
  dsh --profile web
28
52
  ```
29
53
 
30
- > npm `latest` 延续现有维护基线;本开发分支精确适配 `dsh-v0.1.5-alpha.1`。
54
+ > 本版支持 `dsh-v0.1.7-rc.2` 至 `dsh-v0.2.0-rc.2`;范围之外的宿主版本未经验证。
31
55
  > 若你的 harness 是包含未发布提交的本地源码 checkout,版本号可能有出入——用
32
56
  > `dsh plugin --profile web add ./<path>` 并在 profile 的 `pnpm-workspace.yaml`
33
57
  > 里对齐版本后重装即可。
34
58
 
35
59
  ## 从旧版本升级
36
60
 
37
- Web Search Pro 与浏览器插件应同步升级;`dsh-web-search-pro >= 0.1.8` 需要 `@anweat/dsh-browser >= 0.1.8`。面向 `dsh-v0.1.5-alpha.1` 联调时,使用 browser 与 Web Search Pro 的 npm `next` 候选并完整重启 profile。0.1.11 移除了对旧版 `dsh-settings` 的运行时 `settingsNamespace` 导入;0.1.10 修复工具描述被 DSH 误解析为 prompt 变量。
61
+ Web Search Pro 与浏览器插件应同步升级;面向 `dsh-v0.1.7-rc.2` 不要混用仍声明旧 peer 的 Browser `0.1.15-alpha.2`;两者都升到 `0.1.17` 即可。
38
62
 
39
63
  ```bash
40
- dsh plugin --profile web add @anweat/dsh-browser@next dsh-web-search-pro@next
64
+ dsh plugin --profile web add @anweat/dsh-browser@0.1.17 dsh-web-search-pro@0.1.17
41
65
  ```
42
66
 
43
67
  升级后完整停止并重启 Web profile,再调用 `browser_status`、`browser_opencli_status` 和 `web_backend_status`;仅刷新网页不会重新加载插件服务或 Web Search Pro 配置面板。尤其不要只升级 Web Search Pro:新的工具目录、Patchright 运行时和调用缓冲都来自浏览器插件。
@@ -83,6 +107,21 @@ DSH 会话示例:
83
107
  | **patchright 驱动**(可选) | 与 Playwright 同版本的 Chromium 兼容驱动 | 插件内置;配置 `browserRuntime: patchright` 才启用 |
84
108
  | **opencli**(纯 Node CLI) | `@jackwener/opencli` npm 依赖 | 同上,本地优先 / 全局复用 |
85
109
 
110
+ ### 把共享浏览器缓存放到别的盘(可选)
111
+
112
+ 共享缓存默认落在 `%LOCALAPPDATA%\ms-playwright`(Windows 上即系统盘,约 400MB)。
113
+ 若要把内核放在别的盘、或直接复用一份已有的内核,在 loader 条目上显式给出可执行文件路径:
114
+
115
+ ```yaml
116
+ - id: browser
117
+ config:
118
+ executablePath: 'E:/caches/ms-playwright/chromium-1234/chrome-win64/chrome.exe'
119
+ ```
120
+
121
+ `executablePath` 必须指向真实的内核可执行文件(不是目录);设置后 `browser_status` 会显示该路径,
122
+ `browser_install` 不再需要执行。`browserRuntime: patchright` 时同样适用。
123
+ 注意该字段在插件挂载时解析:改完需要重新加载 profile(重启 Web profile),仅刷新网页不生效。
124
+
86
125
  ## 服务:`browser`
87
126
 
88
127
  `dsh-browser` 在 `apply()` 里 `ctx.provide('browser', service)`。任何插件声明
package/cordis.patch.yml CHANGED
@@ -5,22 +5,9 @@
5
5
  #
6
6
  # Login state: prefer named `authProfiles` with explicit `allowedDomains` (see
7
7
  # README). `storageStatePath` remains as a legacy global fallback.
8
+ # DSH 0.1.7-rc.2 persists editable config in a separate top-level profile row;
9
+ # placing config inside insert can make settings writes appear successful but
10
+ # disappear on restart. Config schema defaults supply the initial values.
8
11
  - insert:
9
12
  - id: browser
10
13
  name: '@anweat/dsh-browser'
11
- config:
12
- automationMode: standard
13
- browserRuntime: playwright
14
- channel: chromium
15
- headless: true
16
- opencliEnabled: true
17
- usagePolicy:
18
- minDelayMs: 750
19
- maxConcurrency: 2
20
- burst: 3
21
- maxPagesPerRun: 20
22
- maxDepth: 2
23
- retryLimit: 2
24
- backoffBaseMs: 1000
25
- cooldownMs: 30000
26
- verbose: false
@@ -1,15 +1,17 @@
1
1
  /** Loopback-only Host RPC for the automation asset review UI. */
2
2
  import { executeAutomationAsset } from "./automation-execution.js";
3
- const CHANNEL = '/api';
3
+ /**
4
+ * This plugin's own logical RPC channel.
5
+ *
6
+ * NOT the shared `/api`: `intercept('/api', …)` does not share that channel, it
7
+ * REPLACES its fallback — the interceptor's `matches` gate becomes the only
8
+ * route resolution, so every other plugin's endpoint (`settings/describe`,
9
+ * `session/list`, …) starts returning 404 and the whole Web UI loses its API.
10
+ * A plugin that owns its endpoints registers a private channel instead.
11
+ */
12
+ const CHANNEL = '/dsh-browser-assets';
4
13
  const PREFIX = 'dsh-browser-assets';
5
14
  const ENDPOINTS = ['snapshot', 'get', 'save', 'summarize', 'dismiss', 'validate', 'test', 'status'];
6
- function failure(rpcId, message) {
7
- return Response.json({
8
- type: 'server-response',
9
- rpcId,
10
- result: { ok: false, error: { code: 'gateway/bad-request', message, details: {} } },
11
- });
12
- }
13
15
  function record(payload) {
14
16
  if (!payload || typeof payload !== 'object' || Array.isArray(payload))
15
17
  throw new Error('request payload must be an object');
@@ -24,13 +26,24 @@ function stringField(payload, name) {
24
26
  return value;
25
27
  }
26
28
  export function registerAutomationAssetRpc(ctx, store, service) {
27
- ctx.inject(['connection'], (connectionCtx) => {
28
- const connection = connectionCtx.connection;
29
+ ctx.inject(['connection', 'webServer'], (connectionCtx) => {
30
+ // Register the channel with the Host transport rather than hand-rolling the
31
+ // client-request/server-response envelope on an exact Fetch route. The
32
+ // transport owns envelope decoding, the admission/authentication fence, the
33
+ // cancellation signal, and the Peer scope the handler receives — none of
34
+ // which a manual route can reconstruct.
35
+ // The dedicated registrar mounts its Web route through the Context that
36
+ // reads it. The root Context owns webServer; the plugin effect owns cleanup.
37
+ const connection = connectionCtx.root.connection;
29
38
  const handler = async (endpoint, rawPayload) => {
30
39
  try {
40
+ // The transport hands the handler the endpoint relative to the channel,
41
+ // so a request to `/dsh-browser-assets/snapshot` arrives as `snapshot`.
42
+ // Accept a prefixed form too, so either address style keeps working.
43
+ const leaf = endpoint.startsWith(PREFIX + '/') ? endpoint.slice(PREFIX.length + 1) : endpoint;
31
44
  const payload = record(rawPayload);
32
45
  let value;
33
- switch (endpoint) {
46
+ switch (leaf) {
34
47
  case 'snapshot':
35
48
  value = store.snapshot();
36
49
  break;
@@ -66,39 +79,7 @@ export function registerAutomationAssetRpc(ctx, store, service) {
66
79
  return { ok: false, error: { code: 'bad-request', message: String(error instanceof Error ? error.message : error).slice(0, 500), details: {} } };
67
80
  }
68
81
  };
69
- for (const endpoint of ENDPOINTS) {
70
- const method = `${PREFIX}/${endpoint}`;
71
- connectionCtx.effect(() => connection.fetch.register({
72
- path: `${CHANNEL}/${method}`,
73
- methods: ['POST'],
74
- requestBody: 'buffered',
75
- fetch: async (request) => {
76
- let body;
77
- try {
78
- body = await request.json();
79
- }
80
- catch {
81
- return new Response('body is not JSON', { status: 400 });
82
- }
83
- const rpcId = typeof body === 'object' && body !== null
84
- && typeof body.rpcId === 'string'
85
- ? body.rpcId
86
- : 'invalid-request';
87
- if (typeof body !== 'object' || body === null
88
- || body.type !== 'client-request'
89
- || body.method !== method) {
90
- return failure(rpcId, 'invalid RPC request');
91
- }
92
- try {
93
- const result = await handler(endpoint, body.payload, request.signal);
94
- return Response.json({ type: 'server-response', rpcId, result });
95
- }
96
- catch (error) {
97
- return failure(rpcId, String(error instanceof Error ? error.message : error).slice(0, 500));
98
- }
99
- },
100
- }), `dsh-browser: ${method} RPC route`);
101
- }
82
+ connectionCtx.effect(() => connection.rpc.handle(CHANNEL, handler), 'dsh-browser: automation asset RPC channel');
102
83
  });
103
84
  }
104
85
  //# sourceMappingURL=automation-assets-rpc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"automation-assets-rpc.js","sourceRoot":"","sources":["../src/automation-assets-rpc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"automation-assets-rpc.js","sourceRoot":"","sources":["../src/automation-assets-rpc.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,16 @@
1
+ /**
2
+ * The browser settings card, as the Plugins page renders it.
3
+ *
4
+ * The page owns the card frame — its title button, disclosure, and artwork come
5
+ * from the slot registration — so this component renders only what goes inside:
6
+ * the one-liner for `view: 'summary'`, and the form body for `view: 'page'`.
7
+ * Drawing our own frame here produced a doubled card and an inner header button
8
+ * that swallowed the platform's clicks.
9
+ *
10
+ * The form chrome is the shared `SettingsForm`/`SettingsValueField` pair from
11
+ * `@deepseek-ai/dsh-client-ui-primitives`, the same components every official
12
+ * settings page uses, so the card matches them without restating their markup.
13
+ * @module dsh-browser/client/SettingsCard
14
+ */
1
15
  import type { BrowserSettingsCardProps } from './index.ts';
2
- export declare function SettingsCard(props: BrowserSettingsCardProps): import("react").JSX.Element | null;
16
+ export declare function SettingsCard(props: BrowserSettingsCardProps): import("react").JSX.Element;
@@ -1,22 +1,59 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * The browser settings card, as the Plugins page renders it.
4
+ *
5
+ * The page owns the card frame — its title button, disclosure, and artwork come
6
+ * from the slot registration — so this component renders only what goes inside:
7
+ * the one-liner for `view: 'summary'`, and the form body for `view: 'page'`.
8
+ * Drawing our own frame here produced a doubled card and an inner header button
9
+ * that swallowed the platform's clicks.
10
+ *
11
+ * The form chrome is the shared `SettingsForm`/`SettingsValueField` pair from
12
+ * `@deepseek-ai/dsh-client-ui-primitives`, the same components every official
13
+ * settings page uses, so the card matches them without restating their markup.
14
+ * @module dsh-browser/client/SettingsCard
15
+ */
2
16
  import { useEffect, useState } from 'react';
17
+ import { SettingsForm, SettingsValueField } from '@deepseek-ai/dsh-client-ui-primitives';
18
+ import { FIELD_SPECS, JSON_FIELD_SPECS, JSON_FIELDS } from "./form.js";
3
19
  import { styles as css } from "./styles.js";
4
- function FieldShell(props) {
5
- const id = `dsh-browser-${props.field}`;
6
- return _jsxs("div", { className: `${css.field} ${props.state.invalid ? css.invalid : ''}`, children: [_jsxs("div", { className: css.fieldHead, children: [_jsx("label", { className: css.label, htmlFor: id, children: props.label }), props.state.overridden ? _jsx("button", { type: "button", className: css.reset, disabled: props.disabled, onClick: () => props.onReset(props.field), children: props.resetLabel }) : null] }), props.children, _jsx("p", { className: css.hint, children: props.hint })] });
20
+ /** The copy the shared form frame renders, from this page's dictionary. */
21
+ function formLabels(t) {
22
+ return {
23
+ unavailable: t('unavailable'),
24
+ readOnly: t('readOnly'),
25
+ saveFailed: t('saveFailed'),
26
+ save: t('save'),
27
+ saving: t('saving'),
28
+ };
29
+ }
30
+ const SECTION_LAYOUT = [
31
+ { title: 'freedom', hint: 'freedomHint', fields: ['enabled', 'automationMode', 'opencliEnabled'] },
32
+ { title: 'runtime', hint: 'runtimeHint', fields: ['browserRuntime', 'channel', 'headless', 'autoInstall', 'executablePath', 'cdpPort'] },
33
+ { title: 'advanced', hint: 'advancedHint', fields: ['storageStatePath', 'defaultAuthProfile', 'snapshotDir', 'verbose'] },
34
+ ];
35
+ /** The section field a spec names, when it is one of the single-input fields. */
36
+ function sectionField(field) {
37
+ return FIELD_SPECS.some(spec => spec.field === field) ? field : undefined;
7
38
  }
8
39
  export function SettingsCard(props) {
9
40
  const { t } = props;
10
41
  const state = props.useBrowserSettings(snapshot => snapshot);
11
- const [open, setOpen] = useState(false);
12
- if (!state.available)
13
- return null;
14
- const disabled = !state.writable || state.saving;
15
- const text = (field, label, hint) => _jsx(FieldShell, { field: field, state: state.fields[field], label: t(label), hint: state.fields[field].invalid ? t('invalid') : t(hint), disabled: disabled, resetLabel: t('reset'), onReset: props.resetField, children: _jsx("input", { id: `dsh-browser-${field}`, className: css.input, value: state.fields[field].text, disabled: disabled, "aria-invalid": state.fields[field].invalid || undefined, onChange: event => props.edit(field, event.currentTarget.value) }) });
16
- const select = (field, label, hint, options) => _jsx(FieldShell, { field: field, state: state.fields[field], label: t(label), hint: state.fields[field].invalid ? t('invalid') : t(hint), disabled: disabled, resetLabel: t('reset'), onReset: props.resetField, children: _jsx("select", { id: `dsh-browser-${field}`, className: css.input, value: state.fields[field].text, disabled: disabled, onChange: event => props.edit(field, event.currentTarget.value), children: options.map(option => _jsx("option", { value: option, children: option }, option)) }) });
17
- const json = (field, label, hint, rows = 7) => _jsx(FieldShell, { field: field, state: state.fields[field], label: t(label), hint: state.fields[field].invalid ? t('invalidJson') : t(hint), disabled: disabled, resetLabel: t('reset'), onReset: props.resetField, children: _jsx("textarea", { id: `dsh-browser-${field}`, className: `${css.input} ${css.textarea} ${css.code}`, rows: rows, value: state.fields[field].text, disabled: disabled, spellCheck: false, "aria-invalid": state.fields[field].invalid || undefined, onChange: event => props.edit(field, event.currentTarget.value) }) });
18
- const toggle = (field, label, hint) => _jsxs("div", { className: css.toggle, children: [_jsxs("label", { className: css.toggleLabel, children: [_jsx("input", { className: css.check, type: "checkbox", checked: state.fields[field].text === 'true', disabled: disabled, onChange: event => props.edit(field, String(event.currentTarget.checked)) }), _jsxs("span", { children: [_jsx("span", { className: css.label, children: t(label) }), _jsx("p", { className: css.hint, children: t(hint) })] })] }), state.fields[field].overridden ? _jsx("button", { type: "button", className: css.reset, disabled: disabled, onClick: () => props.resetField(field), children: t('reset') }) : null] });
19
- return _jsxs("div", { className: `${css.card} ${open ? css.open : ''}`, "data-dsh-browser-settings": true, children: [_jsxs("button", { type: "button", className: css.header, "aria-expanded": open, "aria-label": `${t(open ? 'collapse' : 'expand')}: ${t('title')}`, onClick: () => setOpen(!open), children: [_jsxs("span", { className: css.head, children: [_jsxs("span", { className: css.titleRow, children: [_jsx("span", { className: css.name, children: t('title') }), state.dirty ? _jsx("span", { className: css.badge, children: t('unsaved') }) : null] }), _jsx("span", { className: css.description, children: t('description') })] }), _jsx("svg", { className: `${css.chevron} ${open ? css.chevronOpen : ''}`, viewBox: "0 0 14 14", width: "14", height: "14", "aria-hidden": "true", children: _jsx("path", { d: "M3.5 5.5 7 9l3.5-3.5", fill: "none", stroke: "currentColor", strokeWidth: "1.5" }) })] }), open ? _jsxs("div", { className: css.body, children: [!state.writable ? _jsx("p", { className: css.notice, role: "status", children: t('readOnly') }) : null, _jsxs("section", { className: css.section, children: [_jsxs("div", { className: css.sectionHead, children: [_jsx("h3", { children: t('freedom') }), _jsx("p", { children: t('freedomHint') })] }), _jsxs("div", { className: css.grid, children: [toggle('enabled', 'enabled', 'enabledHint'), select('automationMode', 'automationMode', 'automationModeHint', ['read-only', 'standard', 'autonomous', 'unrestricted']), toggle('opencliEnabled', 'opencliEnabled', 'opencliEnabledHint')] })] }), _jsxs("section", { className: css.section, children: [_jsxs("div", { className: css.sectionHead, children: [_jsx("h3", { children: t('runtime') }), _jsx("p", { children: t('runtimeHint') })] }), _jsxs("div", { className: css.grid, children: [select('browserRuntime', 'browserRuntime', 'browserRuntimeHint', ['playwright', 'patchright']), text('channel', 'channel', 'channelHint'), toggle('headless', 'headless', 'headlessHint'), toggle('autoInstall', 'autoInstall', 'autoInstallHint'), text('executablePath', 'executablePath', 'executablePathHint'), text('cdpPort', 'cdpPort', 'cdpPortHint'), json('args', 'args', 'argsHint', 5)] })] }), _jsxs("section", { className: css.section, children: [_jsxs("div", { className: css.sectionHead, children: [_jsx("h3", { children: t('usage') }), _jsx("p", { children: t('usageHint') })] }), _jsxs("div", { className: css.grid, children: [json('usagePolicy', 'usagePolicy', 'usagePolicyHint', 10), json('automationAssets', 'automationAssets', 'automationAssetsHint', 14)] }), _jsx("p", { className: css.notice, role: "note", children: t('restart') })] }), _jsx(AutomationAssetsPanel, { ...props }), _jsxs("details", { className: css.advanced, children: [_jsx("summary", { children: t('advanced') }), _jsx("p", { className: css.hint, children: t('advancedHint') }), _jsxs("div", { className: css.grid, children: [text('storageStatePath', 'storageStatePath', 'storageStatePathHint'), text('defaultAuthProfile', 'defaultAuthProfile', 'defaultAuthProfileHint'), json('authProfiles', 'authProfiles', 'authProfilesHint'), json('rulePacks', 'rulePacks', 'rulePacksHint'), text('snapshotDir', 'snapshotDir', 'snapshotDirHint'), toggle('verbose', 'verbose', 'verboseHint')] })] }), _jsxs("div", { className: css.footer, children: [_jsx("p", { className: state.failed ? css.failed : css.status, role: "status", "aria-live": "polite", children: t(state.failed ? 'saveFailed' : state.invalid ? 'invalidSave' : state.dirty ? 'pending' : 'saved') }), _jsxs("div", { className: css.actions, children: [_jsx("button", { type: "button", className: css.secondary, disabled: !state.dirty || state.saving, onClick: props.discard, children: t('discard') }), _jsx("button", { type: "button", className: css.primary, disabled: !state.dirty || state.invalid || state.saving || !state.writable, onClick: props.save, children: t(state.saving ? 'saving' : 'save') })] })] })] }) : null] });
42
+ // The one-liner the Plugins list shows. Without it the list falls back to the
43
+ // package's npm description, which reads like a styling bug and is not one.
44
+ if (props.view === 'summary')
45
+ return _jsx(_Fragment, { children: t('description') });
46
+ const disabled = !state.writable;
47
+ // Single-input fields live in `state.fields`; the JSON-shaped ones are read
48
+ // from the model directly, because the card renders them as code editors
49
+ // rather than one-line inputs.
50
+ const numeric = new Set(['cdpPort']);
51
+ const field = (spec) => {
52
+ const known = sectionField(spec.field);
53
+ const fieldState = known ? state.fields[known] : state.jsonFields[spec.field];
54
+ return _jsx(SettingsValueField, { id: `plugin-config-dsh-browser-${spec.field}`, label: t(spec.field), hint: t(`${spec.field}Hint`), overriddenLabel: t('overridden'), resetLabel: t('reset'), invalidLabel: t(JSON_FIELDS.has(spec.field) ? 'invalidJson' : 'invalidNumber'), numeric: numeric.has(spec.field), disabled: disabled, ...fieldState, onEdit: text => props.edit(spec.field, text), onReset: () => props.resetField(spec.field) }, spec.field);
55
+ };
56
+ return _jsxs(SettingsForm, { labels: formLabels(t), state: state, onSave: props.save, onDiscard: props.discard, children: [SECTION_LAYOUT.map(section => _jsxs("section", { className: css.section, children: [_jsxs("div", { className: css.sectionHead, children: [_jsx("h3", { children: t(section.title) }), _jsx("p", { children: t(section.hint) })] }), _jsx("div", { className: css.grid, children: section.fields.map(name => field(FIELD_SPECS.find(spec => spec.field === name))) })] }, section.title)), _jsxs("section", { className: css.section, children: [_jsxs("div", { className: css.sectionHead, children: [_jsx("h3", { children: t('usage') }), _jsx("p", { children: t('usageHint') })] }), _jsx("div", { className: css.grid, children: JSON_FIELD_SPECS.map(spec => field(spec)) }), _jsx("p", { className: css.notice, role: "note", children: t('restart') })] }), _jsx(AutomationAssetsPanel, { ...props })] });
20
57
  }
21
58
  function AutomationAssetsPanel(props) {
22
59
  const { t } = props;
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsCard.js","sourceRoot":"","sources":["../../src/client/SettingsCard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SettingsCard.js","sourceRoot":"","sources":["../../src/client/SettingsCard.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAGxF,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAA0C,MAAM,WAAW,CAAA;AAE9G,OAAO,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,aAAa,CAAA;AAW3C,2EAA2E;AAC3E,SAAS,UAAU,CAAC,CAAa;IAC/B,OAAO;QACL,WAAW,EAAE,CAAC,CAAC,aAAa,CAAC;QAC7B,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC;QACvB,UAAU,EAAE,CAAC,CAAC,YAAY,CAAC;QAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC;KACpB,CAAA;AACH,CAAC;AAED,MAAM,cAAc,GAAoF;IACtG,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,EAAE;IAClG,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,gBAAgB,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,SAAS,CAAC,EAAE;IACxI,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,kBAAkB,EAAE,oBAAoB,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE;CAC1H,CAAA;AAED,iFAAiF;AACjF,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAqB,CAAC,CAAC,CAAC,SAAS,CAAA;AAC3F,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAA+B;IAC1D,MAAM,EAAE,CAAC,EAAE,GAAG,KAAK,CAAA;IACnB,MAAM,KAAK,GAAG,KAAK,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAA;IAC5D,8EAA8E;IAC9E,4EAA4E;IAC5E,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,4BAAG,CAAC,CAAC,aAAa,CAAC,GAAI,CAAA;IAC5D,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAA;IAEhC,4EAA4E;IAC5E,yEAAyE;IACzE,+BAA+B;IAC/B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,CAAC,SAAS,CAAC,CAAC,CAAA;IAC5C,MAAM,KAAK,GAAG,CAAC,IAAuB,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACtC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC7E,OAAO,KAAC,kBAAkB,IAExB,EAAE,EAAE,6BAA6B,IAAI,CAAC,KAAK,EAAE,EAC7C,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAiB,CAAC,EAChC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,MAAkB,CAAC,EACxC,eAAe,EAAE,CAAC,CAAC,YAAY,CAAC,EAChC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,EACtB,YAAY,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,EAC9E,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAChC,QAAQ,EAAE,QAAQ,KACd,UAAU,EACd,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAC5C,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAXtC,IAAI,CAAC,KAAK,CAYf,CAAA;IACJ,CAAC,CAAA;IAED,OAAO,MAAC,YAAY,IAClB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EACrB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,KAAK,CAAC,IAAI,EAClB,SAAS,EAAE,KAAK,CAAC,OAAO,aAEvB,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,mBAA6B,SAAS,EAAE,GAAG,CAAC,OAAO,aAChF,eAAK,SAAS,EAAE,GAAG,CAAC,WAAW,aAAE,uBAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAM,EAAA,sBAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAK,IAAM,EAC1F,cAAK,SAAS,EAAE,GAAG,CAAC,IAAI,YACrB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAE,CAAC,CAAC,GAC9E,KAJqC,OAAO,CAAC,KAAK,CAKhD,CAAC,EACX,mBAAS,SAAS,EAAE,GAAG,CAAC,OAAO,aAC7B,eAAK,SAAS,EAAE,GAAG,CAAC,WAAW,aAAE,uBAAK,CAAC,CAAC,OAAO,CAAC,GAAM,EAAA,sBAAI,CAAC,CAAC,WAAW,CAAC,GAAK,IAAM,EACnF,cAAK,SAAS,EAAE,GAAG,CAAC,IAAI,YACrB,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GACtC,EACN,YAAG,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAC,MAAM,YAAE,CAAC,CAAC,SAAS,CAAC,GAAK,IAChD,EACV,KAAC,qBAAqB,OAAK,KAAK,GAAI,IACvB,CAAA;AACjB,CAAC;AAED,SAAS,qBAAqB,CAAC,KAA+B;IAC5D,MAAM,EAAE,CAAC,EAAE,GAAG,KAAK,CAAA;IACnB,MAAM,KAAK,GAAG,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAA;IAC7D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IACtC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC1C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;IAC/B,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI,QAAQ;QAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;IAElH,MAAM,QAAQ,GAAG,CAAC,IAA6B,EAAE,EAAE;QACjD,KAAK,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAA;QACtC,MAAM,KAAK,GAAsE,IAAI,KAAK,QAAQ;YAChG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE;YAChK,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,mJAAmJ,EAAE,CAAA;QACzP,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IAChE,CAAC,CAAA;IACD,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACtB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAsE,CAAA;YACpG,IAAI,QAAQ,EAAE,EAAE;gBAAE,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAA;YACxC,MAAM,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC9D,CAAC;QAAC,MAAM,CAAC;YAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QAAC,CAAC;IACjC,CAAC,CAAA;IACD,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAAC,OAAM;QAAC,CAAC;QACjE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAA2B,CAAA;YAC/D,MAAM,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;YAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC5F,CAAC;QAAC,MAAM,CAAC;YAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QAAC,CAAC;IACjC,CAAC,CAAA;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;IACxH,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAA;IAE3C,OAAO,mBAAS,SAAS,EAAE,GAAG,CAAC,OAAO,8CACpC,eAAK,SAAS,EAAE,GAAG,CAAC,WAAW,aAAE,uBAAK,CAAC,CAAC,cAAc,CAAC,GAAM,EAAA,sBAAI,CAAC,CAAC,kBAAkB,CAAC,GAAK,IAAM,EAChG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,YAAG,SAAS,EAAE,GAAG,CAAC,MAAM,YAAG,CAAC,CAAC,cAAc,CAAC,GAAK,CAAC,CAAC,CAAC,IAAI,EACxE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,YAAG,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAC,OAAO,YAAE,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,aAAa,CAAC,GAAK,CAAC,CAAC,CAAC,IAAI,EAClG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,eAAK,SAAS,EAAE,GAAG,CAAC,UAAU,aAAE,uBAAK,CAAC,CAAC,kBAAkB,CAAC,GAAM,EAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,mBAA4B,SAAS,EAAE,GAAG,CAAC,QAAQ,aACnK,0BAAK,2BAAS,SAAS,CAAC,KAAK,GAAU,EAAA,wBAAI,SAAS,CAAC,MAAM,cAAK,SAAS,CAAC,cAAc,OAAG,CAAC,CAAC,WAAW,CAAC,cAAK,SAAS,CAAC,gBAAgB,OAAG,CAAC,CAAC,eAAe,CAAC,IAAK,IAAM,EACxK,eAAK,SAAS,EAAE,GAAG,CAAC,OAAO,aAAE,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,0BAA0B,CAAC,SAAS,CAAC,EAAE,CAAC,YAAG,CAAC,CAAC,cAAc,CAAC,GAAU,EAAA,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,4BAA4B,CAAC,SAAS,CAAC,EAAE,CAAC,YAAG,CAAC,CAAC,gBAAgB,CAAC,GAAU,IAAM,KAFzO,SAAS,CAAC,EAAE,CAGlI,CAAC,IAAO,CAAC,CAAC,CAAC,IAAI,EACzB,eAAK,SAAS,EAAE,GAAG,CAAC,YAAY,aAAE,0BAAK,2BAAS,CAAC,CAAC,cAAc,CAAC,GAAU,EAAA,YAAG,SAAS,EAAE,GAAG,CAAC,IAAI,YAAG,CAAC,CAAC,kBAAkB,CAAC,GAAK,IAAM,EAAA,eAAK,SAAS,EAAE,GAAG,CAAC,OAAO,aAAE,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAG,CAAC,CAAC,gBAAgB,CAAC,GAAU,EAAA,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAG,CAAC,CAAC,gBAAgB,CAAC,GAAU,EAAA,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,uBAAuB,YAAG,CAAC,CAAC,cAAc,CAAC,GAAU,IAAM,IAAM,EACvgB,eAAK,SAAS,EAAE,GAAG,CAAC,WAAW,aAC7B,cAAK,SAAS,EAAE,GAAG,CAAC,SAAS,YAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,kBAAQ,IAAI,EAAC,QAAQ,EAAgB,SAAS,EAAE,GAAG,GAAG,CAAC,SAAS,IAAI,QAAQ,EAAE,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC,aAAE,2BAAM,2BAAS,KAAK,CAAC,IAAI,GAAU,EAAA,4BAAQ,KAAK,CAAC,IAAI,cAAK,KAAK,CAAC,MAAM,eAAM,KAAK,CAAC,QAAQ,IAAS,IAAO,EAAA,eAAM,SAAS,EAAE,GAAG,CAAC,SAAS,YAAG,KAAK,CAAC,UAAU,GAAQ,KAAxT,KAAK,CAAC,EAAE,CAAyT,CAAC,CAAC,CAAC,CAAC,YAAG,SAAS,EAAE,GAAG,CAAC,IAAI,YAAG,CAAC,CAAC,YAAY,CAAC,GAAK,GAAO,EACxd,eAAK,SAAS,EAAE,GAAG,CAAC,WAAW,aAC7B,gBAAO,SAAS,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,EAAC,0BAA0B,YAAE,CAAC,CAAC,aAAa,CAAC,GAAS,EAC1F,mBAAU,EAAE,EAAC,0BAA0B,EAAC,SAAS,EAAE,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,GAAI,EACvS,YAAG,SAAS,EAAE,GAAG,CAAC,IAAI,YAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAK,EACtF,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,eAAK,SAAS,EAAE,GAAG,CAAC,aAAa,aAAE,gBAAO,SAAS,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,GAAI,EAAA,mBAAU,SAAS,EAAE,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,gBAAc,CAAC,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,GAAI,IAAM,CAAC,CAAC,CAAC,IAAI,EAC1a,eAAK,SAAS,EAAE,GAAG,CAAC,OAAO,aACxB,QAAQ,CAAC,CAAC,CAAC,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAG,CAAC,CAAC,eAAe,CAAC,GAAU,CAAC,CAAC,CAAC,IAAI,EAChL,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,EAAE,YAAG,CAAC,CAAC,WAAW,CAAC,GAAU,CAAC,CAAC,CAAC,IAAI,EACvL,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,UAAU,KAAK,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,wBAAwB,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,YAAG,CAAC,CAAC,eAAe,CAAC,GAAU,CAAC,CAAC,CAAC,IAAI,EACnP,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,wBAAwB,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,YAAG,CAAC,CAAC,cAAc,CAAC,GAAU,CAAC,CAAC,CAAC,IAAI,EAC/N,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,QAAQ,EAAE,MAAM,KAAK,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,YAAG,CAAC,CAAC,gBAAgB,CAAC,GAAU,IACrK,IACF,IACF,IACE,CAAA;AACZ,CAAC"}
@@ -10,6 +10,8 @@ function localStore(initial) {
10
10
  listener(); },
11
11
  };
12
12
  }
13
+ /** This plugin's private RPC channel, matching the Host half. */
14
+ const CHANNEL = '/dsh-browser-assets';
13
15
  export class AutomationAssetsController {
14
16
  rpc;
15
17
  store = localStore({ loading: true, busy: false, failed: false });
@@ -69,7 +71,10 @@ export class AutomationAssetsController {
69
71
  }
70
72
  }
71
73
  async call(endpoint, payload) {
72
- const result = await this.rpc.call('/api', `dsh-browser-assets/${endpoint}`, payload);
74
+ // The plugin's own logical channel: the shared `/api` channel is reserved
75
+ // for host-composed endpoints, and intercepting it there replaced the whole
76
+ // channel's fallback (see automation-assets-rpc.ts).
77
+ const result = await this.rpc.call(CHANNEL, endpoint, payload);
73
78
  if (!result.ok)
74
79
  throw new Error(result.error.message);
75
80
  return result.value;
@@ -1 +1 @@
1
- {"version":3,"file":"automation-assets-client.js","sourceRoot":"","sources":["../../src/client/automation-assets-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"automation-assets-client.js","sourceRoot":"","sources":["../../src/client/automation-assets-client.ts"],"names":[],"mappings":"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"}
@@ -1,63 +1,53 @@
1
+ /**
2
+ * The browser settings card's form model.
3
+ *
4
+ * Staging, the revision fence, and the snapshot store are owned by the shared
5
+ * `SettingsFormModel` from `@deepseek-ai/dsh-client-ui-primitives` — the same
6
+ * model every official settings page uses — so this module only declares which
7
+ * fields the card edits and how each one converts between stored value and
8
+ * draft text. A save is one `mutate(ops, revision)`; `set`/`unset` per field no
9
+ * longer exist on this Host line.
10
+ * @module dsh-browser/client/form
11
+ */
1
12
  import type { SnapshotStore } from '@deepseek-ai/dsh-client-store';
2
- import type { SettingsScope } from '@deepseek-ai/dsh-client-ui-settings/client';
3
- export type SettingField = 'enabled' | 'automationMode' | 'browserRuntime' | 'channel' | 'headless' | 'opencliEnabled' | 'usagePolicy' | 'automationAssets' | 'autoInstall' | 'storageStatePath' | 'authProfiles' | 'defaultAuthProfile' | 'rulePacks' | 'executablePath' | 'snapshotDir' | 'verbose' | 'cdpPort' | 'args';
4
- export interface CardFieldState {
5
- text: string;
6
- overridden: boolean;
7
- invalid: boolean;
13
+ import type { SettingsFieldSpec, SettingsFormScope, SettingsFieldState, SettingsFormShell } from '@deepseek-ai/dsh-client-ui-primitives';
14
+ export type SectionField = 'enabled' | 'automationMode' | 'browserRuntime' | 'channel' | 'headless' | 'opencliEnabled' | 'autoInstall' | 'storageStatePath' | 'defaultAuthProfile' | 'executablePath' | 'snapshotDir' | 'verbose' | 'cdpPort';
15
+ /** Retained name for callers that predate the section/JSON split. */
16
+ export type SettingField = SectionField;
17
+ /** One control's state, as the shared form model reports it. */
18
+ export type CardFieldState = SettingsFieldState;
19
+ export interface BrowserCardState extends SettingsFormShell {
20
+ /** Single-input controls. */
21
+ fields: Record<SectionField, CardFieldState>;
22
+ /** JSON code-editor controls, kept apart so `fields` stays exhaustively keyed. */
23
+ jsonFields: Record<string, CardFieldState>;
8
24
  }
9
- export interface BrowserCardState {
10
- available: boolean;
11
- writable: boolean;
12
- dirty: boolean;
13
- invalid: boolean;
14
- saving: boolean;
15
- failed: boolean;
16
- fields: Record<SettingField, CardFieldState>;
17
- }
18
- type FieldWrite = {
19
- kind: 'set';
20
- value: unknown;
21
- } | {
22
- kind: 'clear';
23
- };
24
- export interface FieldSpec {
25
- field: SettingField;
26
- format(value: unknown): string;
27
- parse(text: string): FieldWrite | undefined;
28
- }
29
- export declare const FIELD_SPECS: readonly FieldSpec[];
25
+ /**
26
+ * The single-input section fields the card edits, in display order. Every entry
27
+ * must also be `.volatile()` in the Host Config schema: `volatileForm` drops
28
+ * unmarked fields, and the Host would refuse a write to one.
29
+ */
30
+ export declare const FIELD_SPECS: readonly SettingsFieldSpec[];
31
+ /** The JSON-shaped section fields the card renders as code editors. */
32
+ export declare const JSON_FIELD_SPECS: readonly SettingsFieldSpec[];
33
+ /** Section fields rendered as JSON code editors rather than single inputs. */
34
+ export declare const JSON_FIELDS: ReadonlySet<string>;
35
+ /** Every field the card renders, in display order. */
36
+ export declare const ALL_FIELD_SPECS: readonly SettingsFieldSpec[];
30
37
  export declare class BrowserSettingsController {
31
- private readonly scope;
32
- private readonly staged;
38
+ private readonly form;
33
39
  private readonly store;
34
- private readonly unsubscribe;
35
- private saving;
36
- private failed;
37
- constructor(scope: SettingsScope<Record<string, unknown>>);
40
+ constructor(scope: SettingsFormScope<Record<string, unknown>>);
38
41
  inject(): {
42
+ edit: (field: string, text: string) => void;
43
+ resetField: (field: string) => void;
44
+ save: () => void;
45
+ discard: () => void;
39
46
  hooks: {
40
47
  browserSettings: SnapshotStore<BrowserCardState>;
41
48
  };
42
- edit: (field: SettingField, text: string) => void;
43
- resetField: (field: SettingField) => void;
44
- save: () => void;
45
- discard: () => void;
46
49
  };
47
50
  snapshot(): BrowserCardState;
48
- edit(field: SettingField, text: string): void;
49
- resetField(field: SettingField): void;
50
- discard(): void;
51
- save(): Promise<void>;
52
51
  dispose(): void;
53
52
  private project;
54
- private field;
55
- private plan;
56
- private spec;
57
- private sectionValue;
58
- private baseValue;
59
- private userLayer;
60
- private stored;
61
- private publish;
62
53
  }
63
- export {};