@dsh-workbench/core 0.2.10 → 0.2.11
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/client.js +942 -211
- package/dist/board.css +0 -12
- package/dist/client/client.body.js +942 -211
- package/dist/client/index.js +943 -212
- package/dist/host/index.js +2902 -859
- package/dist/types/app/client.d.ts +42 -6
- package/dist/types/app/layouts/rightbar/board-plan.d.ts +2 -0
- package/dist/types/app/layouts/rightbar/kit-preview-controls.d.ts +10 -0
- package/dist/types/app/layouts/rightbar/kit-preview-frame.d.ts +14 -0
- package/dist/types/app/layouts/rightbar/kit-preview-rows.d.ts +5 -0
- package/dist/types/app/layouts/rightbar/kit-preview.d.ts +3 -0
- package/dist/types/app/layouts/rightbar/market-row-icon.d.ts +1 -1
- package/dist/types/app/layouts/rightbar/market-section-icon.d.ts +1 -1
- package/dist/types/app/layouts/sidebar/workspace-groups.d.ts +0 -1
- package/dist/types/app/layouts/sidebar/workspace-items.d.ts +2 -3
- package/dist/types/modules/panels/__tests__/diy-harness.d.ts +32 -0
- package/dist/types/modules/panels/__tests__/market-tools-harness.d.ts +1 -1
- package/dist/types/modules/panels/__tests__/scope-support.d.ts +1 -1
- package/dist/types/modules/panels/model/diy-act.d.ts +4 -0
- package/dist/types/modules/panels/model/diy-act.test.d.ts +1 -0
- package/dist/types/modules/panels/model/diy-browser-act.d.ts +47 -0
- package/dist/types/modules/panels/model/diy-browser.d.ts +47 -0
- package/dist/types/modules/panels/model/diy-browser.test.d.ts +1 -0
- package/dist/types/modules/panels/model/diy-context.d.ts +102 -0
- package/dist/types/modules/panels/model/diy-context.test.d.ts +1 -0
- package/dist/types/modules/panels/model/diy-logs.d.ts +18 -0
- package/dist/types/modules/panels/model/diy-logs.test.d.ts +1 -0
- package/dist/types/modules/panels/model/diy-look.d.ts +14 -0
- package/dist/types/modules/panels/model/diy-look.test.d.ts +1 -0
- package/dist/types/modules/panels/model/diy-net.d.ts +3 -0
- package/dist/types/modules/panels/model/diy-net.test.d.ts +1 -0
- package/dist/types/modules/panels/model/diy-page.d.ts +15 -0
- package/dist/types/modules/panels/model/diy-page.test.d.ts +1 -0
- package/dist/types/modules/panels/model/diy-schema.d.ts +9 -0
- package/dist/types/modules/panels/model/diy-schema.test.d.ts +1 -0
- package/dist/types/modules/panels/model/diy-scripts.d.ts +64 -0
- package/dist/types/modules/panels/unit.d.ts +43 -3
- package/dist/types/shared/api/diy.d.ts +4 -0
- package/dist/types/shared/api/host/__tests__/png-fixtures.d.ts +17 -0
- package/dist/types/shared/api/host/mount-units.d.ts +6 -0
- package/dist/types/shared/api/host/png-crop.d.ts +21 -0
- package/dist/types/shared/api/host/png-crop.test.d.ts +1 -0
- package/package.json +2 -2
- package/skills/workbench-module-diy/BUILD.md +4 -3
- package/skills/workbench-module-diy/DATASOURCE.md +4 -4
- package/skills/workbench-module-diy/DESIGN.md +1 -1
- package/skills/workbench-module-diy/KIT.md +121 -0
- package/skills/workbench-module-diy/PANEL.md +12 -2
- package/skills/workbench-module-diy/REVIEW.md +12 -6
- package/skills/workbench-module-diy/SKILL.md +7 -6
- package/skills/workbench-module-diy/TOOLING.md +5 -4
- package/skills/workbench-module-diy/TOOLS.md +3 -3
- package/skills/workbench-module-diy/WIRING.md +6 -6
- package/dist/types/app/layouts/sidebar/WorkspaceSearchField.d.ts +0 -9
|
@@ -107,6 +107,8 @@ export declare const kit: {
|
|
|
107
107
|
ApprovalDetail(props: apiModule.ApprovalDetailProps): JSX.Element | null;
|
|
108
108
|
ApprovalPlan({ rows, hint, warn, children }: apiModule.ApprovalPlanProps): JSX.Element;
|
|
109
109
|
Card({ t, title, refreshing, onRefresh, meta, head, children }: apiModule.CardProps): JSX.Element;
|
|
110
|
+
cardIdOf(unit: string | null): string | undefined;
|
|
111
|
+
CardAnchor({ unit, children }: apiModule.CardAnchorProps): JSX.Element;
|
|
110
112
|
errorReasonOf(error: unknown): string;
|
|
111
113
|
CardBoundary: typeof apiModule.CardBoundary;
|
|
112
114
|
CardHead({ t, title, meta, refreshing, onRefresh, gear, gearOpen, onToggleGear, platformHref, platform, platformTitle, }: apiModule.CardHeadProps): JSX.Element;
|
|
@@ -140,6 +142,13 @@ export declare const kit: {
|
|
|
140
142
|
Row({ label, value }: apiModule.RowProps): JSX.Element;
|
|
141
143
|
SaveBar({ busy, disabled, labels, onCancel, onSave }: apiModule.SaveBarProps): JSX.Element;
|
|
142
144
|
SettingsSection({ label, title, action, children }: apiModule.SettingsSectionProps): JSX.Element;
|
|
145
|
+
searchTextOf(option: apiModule.SelectFieldOption): string;
|
|
146
|
+
defaultSelectFilter(option: apiModule.SelectFieldOption, query: string): boolean;
|
|
147
|
+
filterSelectOptions(options: readonly apiModule.SelectFieldOption[], query: string, filter?: (option: apiModule.SelectFieldOption, query: string) => boolean): readonly apiModule.SelectFieldOption[];
|
|
148
|
+
selectCursorValue(shown: readonly apiModule.SelectFieldOption[], cursor: number | null): string | null;
|
|
149
|
+
stepSelectCursor(shown: readonly apiModule.SelectFieldOption[], cursor: number | null, step: 1 | -1): number | null;
|
|
150
|
+
selectEntries(shown: readonly apiModule.SelectFieldOption[], emptyText: string | undefined): readonly import("@deepseek-ai/dsh-client-ui-primitives").MenuEntry[];
|
|
151
|
+
SelectField(props: apiModule.SelectFieldProps): apiModule.ReactNode;
|
|
143
152
|
Stack({ children }: apiModule.StackProps): JSX.Element;
|
|
144
153
|
StateBlock({ title, dot, hint, actions, resolving, children }: apiModule.StateBlockProps): JSX.Element;
|
|
145
154
|
TextField({ invalid, className, ...rest }: apiModule.TextFieldProps): JSX.Element;
|
|
@@ -150,6 +159,7 @@ export declare const kit: {
|
|
|
150
159
|
IconOpencli({ size }: apiModule.IconProps): JSX.Element;
|
|
151
160
|
IconNpm({ size }: apiModule.IconProps): JSX.Element;
|
|
152
161
|
IconModules({ size }: apiModule.IconProps): JSX.Element;
|
|
162
|
+
IconModuleMark({ size }: apiModule.IconProps): JSX.Element;
|
|
153
163
|
IconPanelScreen({ size }: apiModule.IconProps): JSX.Element;
|
|
154
164
|
PLUGIN_ID: "@dsh-workbench/core";
|
|
155
165
|
RELEASE_SIBLINGS: readonly ["@dsh-workbench/shared", "@dsh-workbench/module-tools"];
|
|
@@ -329,7 +339,7 @@ export declare const kit: {
|
|
|
329
339
|
readonly "panels.market.pluginKeptUnsure": "\u6587\u4EF6\u5148\u7559\u7740\uFF1A\u8FD9\u53F0\u673A\u5668\u4E0A\u8FD8\u6709\u6A21\u5757\u770B\u4E0D\u51FA\u7528\u4E86\u4EC0\u4E48\uFF0C\u8BF4\u4E0D\u51C6\u8C01\u5728\u7528\u5B83\u3002";
|
|
330
340
|
readonly "panels.market.pluginKeptHeld": "\u6587\u4EF6\u7559\u7740\uFF1A\u4F60\u81EA\u5DF1\u88C5\u7684\u90A3\u4E00\u4EFD\uFF0C\u6A21\u5757\u653E\u624B\u4E0D\u52A8\u5B83\u3002";
|
|
331
341
|
readonly "panels.market.pluginKeptUnnamed": "\u6587\u4EF6\u5148\u7559\u7740\uFF1A\u770B\u4E0D\u51FA\u8FD9\u662F\u54EA\u4E2A\u63D2\u4EF6\uFF0C\u8BF4\u4E0D\u51C6\u8C01\u5728\u7528\u5B83\u3002";
|
|
332
|
-
readonly "panels.market.pluginBroken": "\u8FD9\u4EFD\u88C5\u574F\u4E86\uFF1A\u770B\u4E0D\u51FA\u5B83\u662F\u4E2A\u63D2\u4EF6\u3002\u53EF\u4EE5\u5378\u8F7D\uFF0C\u6216\u8005\u76F4\u63A5\u8DDF agent \u8BF4\uFF1A\u7528
|
|
342
|
+
readonly "panels.market.pluginBroken": "\u8FD9\u4EFD\u88C5\u574F\u4E86\uFF1A\u770B\u4E0D\u51FA\u5B83\u662F\u4E2A\u63D2\u4EF6\u3002\u53EF\u4EE5\u5378\u8F7D\uFF0C\u6216\u8005\u76F4\u63A5\u8DDF agent \u8BF4\uFF1A\u7528 workbench_modules_install_bundle \u6309\u5305\u540D\u518D\u88C5\u4E00\u6B21\u3002";
|
|
333
343
|
readonly "panels.market.restartNeeded": "\u65B0\u7248\u88C5\u597D\u4E86\uFF0C\u91CD\u542F\u4E00\u6B21\u624D\u751F\u6548\u3002";
|
|
334
344
|
readonly "panels.market.foot": "\u88C5\u597D\u540E\u5230\u90A3\u4E2A\u9879\u76EE\u7684\u9762\u677F\u9875\u52FE\u9009\u5B83\uFF0C\u6A21\u5757\u624D\u4F1A\u51FA\u73B0\u3002";
|
|
335
345
|
readonly "panels.market.recheck": "\u91CD\u65B0\u68C0\u67E5\u66F4\u65B0";
|
|
@@ -733,7 +743,7 @@ export declare const kit: {
|
|
|
733
743
|
readonly "panels.market.pluginKeptUnsure": "\u6587\u4EF6\u5148\u7559\u7740\uFF1A\u8FD9\u53F0\u673A\u5668\u4E0A\u8FD8\u6709\u6A21\u5757\u770B\u4E0D\u51FA\u7528\u4E86\u4EC0\u4E48\uFF0C\u8BF4\u4E0D\u51C6\u8C01\u5728\u7528\u5B83\u3002";
|
|
734
744
|
readonly "panels.market.pluginKeptHeld": "\u6587\u4EF6\u7559\u7740\uFF1A\u4F60\u81EA\u5DF1\u88C5\u7684\u90A3\u4E00\u4EFD\uFF0C\u6A21\u5757\u653E\u624B\u4E0D\u52A8\u5B83\u3002";
|
|
735
745
|
readonly "panels.market.pluginKeptUnnamed": "\u6587\u4EF6\u5148\u7559\u7740\uFF1A\u770B\u4E0D\u51FA\u8FD9\u662F\u54EA\u4E2A\u63D2\u4EF6\uFF0C\u8BF4\u4E0D\u51C6\u8C01\u5728\u7528\u5B83\u3002";
|
|
736
|
-
readonly "panels.market.pluginBroken": "\u8FD9\u4EFD\u88C5\u574F\u4E86\uFF1A\u770B\u4E0D\u51FA\u5B83\u662F\u4E2A\u63D2\u4EF6\u3002\u53EF\u4EE5\u5378\u8F7D\uFF0C\u6216\u8005\u76F4\u63A5\u8DDF agent \u8BF4\uFF1A\u7528
|
|
746
|
+
readonly "panels.market.pluginBroken": "\u8FD9\u4EFD\u88C5\u574F\u4E86\uFF1A\u770B\u4E0D\u51FA\u5B83\u662F\u4E2A\u63D2\u4EF6\u3002\u53EF\u4EE5\u5378\u8F7D\uFF0C\u6216\u8005\u76F4\u63A5\u8DDF agent \u8BF4\uFF1A\u7528 workbench_modules_install_bundle \u6309\u5305\u540D\u518D\u88C5\u4E00\u6B21\u3002";
|
|
737
747
|
readonly "panels.market.restartNeeded": "\u65B0\u7248\u88C5\u597D\u4E86\uFF0C\u91CD\u542F\u4E00\u6B21\u624D\u751F\u6548\u3002";
|
|
738
748
|
readonly "panels.market.foot": "\u88C5\u597D\u540E\u5230\u90A3\u4E2A\u9879\u76EE\u7684\u9762\u677F\u9875\u52FE\u9009\u5B83\uFF0C\u6A21\u5757\u624D\u4F1A\u51FA\u73B0\u3002";
|
|
739
749
|
readonly "panels.market.recheck": "\u91CD\u65B0\u68C0\u67E5\u66F4\u65B0";
|
|
@@ -1008,6 +1018,8 @@ export declare const kit: {
|
|
|
1008
1018
|
h: typeof import("react").createElement;
|
|
1009
1019
|
Fragment: import("react").ExoticComponent<import("react").FragmentProps>;
|
|
1010
1020
|
Component: typeof import("react").Component;
|
|
1021
|
+
createContext: typeof import("react").createContext;
|
|
1022
|
+
useContext: typeof import("react").useContext;
|
|
1011
1023
|
useState: typeof import("react").useState;
|
|
1012
1024
|
useEffect: typeof import("react").useEffect;
|
|
1013
1025
|
useLayoutEffect: typeof import("react").useLayoutEffect;
|
|
@@ -1082,6 +1094,8 @@ export declare const kit: {
|
|
|
1082
1094
|
ApprovalDetail(props: apiModule.ApprovalDetailProps): JSX.Element | null;
|
|
1083
1095
|
ApprovalPlan({ rows, hint, warn, children }: apiModule.ApprovalPlanProps): JSX.Element;
|
|
1084
1096
|
Card({ t, title, refreshing, onRefresh, meta, head, children }: apiModule.CardProps): JSX.Element;
|
|
1097
|
+
cardIdOf(unit: string | null): string | undefined;
|
|
1098
|
+
CardAnchor({ unit, children }: apiModule.CardAnchorProps): JSX.Element;
|
|
1085
1099
|
errorReasonOf(error: unknown): string;
|
|
1086
1100
|
CardBoundary: typeof apiModule.CardBoundary;
|
|
1087
1101
|
CardHead({ t, title, meta, refreshing, onRefresh, gear, gearOpen, onToggleGear, platformHref, platform, platformTitle, }: apiModule.CardHeadProps): JSX.Element;
|
|
@@ -1115,6 +1129,13 @@ export declare const kit: {
|
|
|
1115
1129
|
Row({ label, value }: apiModule.RowProps): JSX.Element;
|
|
1116
1130
|
SaveBar({ busy, disabled, labels, onCancel, onSave }: apiModule.SaveBarProps): JSX.Element;
|
|
1117
1131
|
SettingsSection({ label, title, action, children }: apiModule.SettingsSectionProps): JSX.Element;
|
|
1132
|
+
searchTextOf(option: apiModule.SelectFieldOption): string;
|
|
1133
|
+
defaultSelectFilter(option: apiModule.SelectFieldOption, query: string): boolean;
|
|
1134
|
+
filterSelectOptions(options: readonly apiModule.SelectFieldOption[], query: string, filter?: (option: apiModule.SelectFieldOption, query: string) => boolean): readonly apiModule.SelectFieldOption[];
|
|
1135
|
+
selectCursorValue(shown: readonly apiModule.SelectFieldOption[], cursor: number | null): string | null;
|
|
1136
|
+
stepSelectCursor(shown: readonly apiModule.SelectFieldOption[], cursor: number | null, step: 1 | -1): number | null;
|
|
1137
|
+
selectEntries(shown: readonly apiModule.SelectFieldOption[], emptyText: string | undefined): readonly import("@deepseek-ai/dsh-client-ui-primitives").MenuEntry[];
|
|
1138
|
+
SelectField(props: apiModule.SelectFieldProps): apiModule.ReactNode;
|
|
1118
1139
|
Stack({ children }: apiModule.StackProps): JSX.Element;
|
|
1119
1140
|
StateBlock({ title, dot, hint, actions, resolving, children }: apiModule.StateBlockProps): JSX.Element;
|
|
1120
1141
|
TextField({ invalid, className, ...rest }: apiModule.TextFieldProps): JSX.Element;
|
|
@@ -1125,6 +1146,7 @@ export declare const kit: {
|
|
|
1125
1146
|
IconOpencli({ size }: apiModule.IconProps): JSX.Element;
|
|
1126
1147
|
IconNpm({ size }: apiModule.IconProps): JSX.Element;
|
|
1127
1148
|
IconModules({ size }: apiModule.IconProps): JSX.Element;
|
|
1149
|
+
IconModuleMark({ size }: apiModule.IconProps): JSX.Element;
|
|
1128
1150
|
IconPanelScreen({ size }: apiModule.IconProps): JSX.Element;
|
|
1129
1151
|
PLUGIN_ID: "@dsh-workbench/core";
|
|
1130
1152
|
RELEASE_SIBLINGS: readonly ["@dsh-workbench/shared", "@dsh-workbench/module-tools"];
|
|
@@ -1304,7 +1326,7 @@ export declare const kit: {
|
|
|
1304
1326
|
readonly "panels.market.pluginKeptUnsure": "\u6587\u4EF6\u5148\u7559\u7740\uFF1A\u8FD9\u53F0\u673A\u5668\u4E0A\u8FD8\u6709\u6A21\u5757\u770B\u4E0D\u51FA\u7528\u4E86\u4EC0\u4E48\uFF0C\u8BF4\u4E0D\u51C6\u8C01\u5728\u7528\u5B83\u3002";
|
|
1305
1327
|
readonly "panels.market.pluginKeptHeld": "\u6587\u4EF6\u7559\u7740\uFF1A\u4F60\u81EA\u5DF1\u88C5\u7684\u90A3\u4E00\u4EFD\uFF0C\u6A21\u5757\u653E\u624B\u4E0D\u52A8\u5B83\u3002";
|
|
1306
1328
|
readonly "panels.market.pluginKeptUnnamed": "\u6587\u4EF6\u5148\u7559\u7740\uFF1A\u770B\u4E0D\u51FA\u8FD9\u662F\u54EA\u4E2A\u63D2\u4EF6\uFF0C\u8BF4\u4E0D\u51C6\u8C01\u5728\u7528\u5B83\u3002";
|
|
1307
|
-
readonly "panels.market.pluginBroken": "\u8FD9\u4EFD\u88C5\u574F\u4E86\uFF1A\u770B\u4E0D\u51FA\u5B83\u662F\u4E2A\u63D2\u4EF6\u3002\u53EF\u4EE5\u5378\u8F7D\uFF0C\u6216\u8005\u76F4\u63A5\u8DDF agent \u8BF4\uFF1A\u7528
|
|
1329
|
+
readonly "panels.market.pluginBroken": "\u8FD9\u4EFD\u88C5\u574F\u4E86\uFF1A\u770B\u4E0D\u51FA\u5B83\u662F\u4E2A\u63D2\u4EF6\u3002\u53EF\u4EE5\u5378\u8F7D\uFF0C\u6216\u8005\u76F4\u63A5\u8DDF agent \u8BF4\uFF1A\u7528 workbench_modules_install_bundle \u6309\u5305\u540D\u518D\u88C5\u4E00\u6B21\u3002";
|
|
1308
1330
|
readonly "panels.market.restartNeeded": "\u65B0\u7248\u88C5\u597D\u4E86\uFF0C\u91CD\u542F\u4E00\u6B21\u624D\u751F\u6548\u3002";
|
|
1309
1331
|
readonly "panels.market.foot": "\u88C5\u597D\u540E\u5230\u90A3\u4E2A\u9879\u76EE\u7684\u9762\u677F\u9875\u52FE\u9009\u5B83\uFF0C\u6A21\u5757\u624D\u4F1A\u51FA\u73B0\u3002";
|
|
1310
1332
|
readonly "panels.market.recheck": "\u91CD\u65B0\u68C0\u67E5\u66F4\u65B0";
|
|
@@ -1708,7 +1730,7 @@ export declare const kit: {
|
|
|
1708
1730
|
readonly "panels.market.pluginKeptUnsure": "\u6587\u4EF6\u5148\u7559\u7740\uFF1A\u8FD9\u53F0\u673A\u5668\u4E0A\u8FD8\u6709\u6A21\u5757\u770B\u4E0D\u51FA\u7528\u4E86\u4EC0\u4E48\uFF0C\u8BF4\u4E0D\u51C6\u8C01\u5728\u7528\u5B83\u3002";
|
|
1709
1731
|
readonly "panels.market.pluginKeptHeld": "\u6587\u4EF6\u7559\u7740\uFF1A\u4F60\u81EA\u5DF1\u88C5\u7684\u90A3\u4E00\u4EFD\uFF0C\u6A21\u5757\u653E\u624B\u4E0D\u52A8\u5B83\u3002";
|
|
1710
1732
|
readonly "panels.market.pluginKeptUnnamed": "\u6587\u4EF6\u5148\u7559\u7740\uFF1A\u770B\u4E0D\u51FA\u8FD9\u662F\u54EA\u4E2A\u63D2\u4EF6\uFF0C\u8BF4\u4E0D\u51C6\u8C01\u5728\u7528\u5B83\u3002";
|
|
1711
|
-
readonly "panels.market.pluginBroken": "\u8FD9\u4EFD\u88C5\u574F\u4E86\uFF1A\u770B\u4E0D\u51FA\u5B83\u662F\u4E2A\u63D2\u4EF6\u3002\u53EF\u4EE5\u5378\u8F7D\uFF0C\u6216\u8005\u76F4\u63A5\u8DDF agent \u8BF4\uFF1A\u7528
|
|
1733
|
+
readonly "panels.market.pluginBroken": "\u8FD9\u4EFD\u88C5\u574F\u4E86\uFF1A\u770B\u4E0D\u51FA\u5B83\u662F\u4E2A\u63D2\u4EF6\u3002\u53EF\u4EE5\u5378\u8F7D\uFF0C\u6216\u8005\u76F4\u63A5\u8DDF agent \u8BF4\uFF1A\u7528 workbench_modules_install_bundle \u6309\u5305\u540D\u518D\u88C5\u4E00\u6B21\u3002";
|
|
1712
1734
|
readonly "panels.market.restartNeeded": "\u65B0\u7248\u88C5\u597D\u4E86\uFF0C\u91CD\u542F\u4E00\u6B21\u624D\u751F\u6548\u3002";
|
|
1713
1735
|
readonly "panels.market.foot": "\u88C5\u597D\u540E\u5230\u90A3\u4E2A\u9879\u76EE\u7684\u9762\u677F\u9875\u52FE\u9009\u5B83\uFF0C\u6A21\u5757\u624D\u4F1A\u51FA\u73B0\u3002";
|
|
1714
1736
|
readonly "panels.market.recheck": "\u91CD\u65B0\u68C0\u67E5\u66F4\u65B0";
|
|
@@ -1983,6 +2005,8 @@ export declare const kit: {
|
|
|
1983
2005
|
h: typeof import("react").createElement;
|
|
1984
2006
|
Fragment: import("react").ExoticComponent<import("react").FragmentProps>;
|
|
1985
2007
|
Component: typeof import("react").Component;
|
|
2008
|
+
createContext: typeof import("react").createContext;
|
|
2009
|
+
useContext: typeof import("react").useContext;
|
|
1986
2010
|
useState: typeof import("react").useState;
|
|
1987
2011
|
useEffect: typeof import("react").useEffect;
|
|
1988
2012
|
useLayoutEffect: typeof import("react").useLayoutEffect;
|
|
@@ -2052,6 +2076,8 @@ export declare const kit: {
|
|
|
2052
2076
|
ApprovalDetail(props: apiModule.ApprovalDetailProps): JSX.Element | null;
|
|
2053
2077
|
ApprovalPlan({ rows, hint, warn, children }: apiModule.ApprovalPlanProps): JSX.Element;
|
|
2054
2078
|
Card({ t, title, refreshing, onRefresh, meta, head, children }: apiModule.CardProps): JSX.Element;
|
|
2079
|
+
cardIdOf(unit: string | null): string | undefined;
|
|
2080
|
+
CardAnchor({ unit, children }: apiModule.CardAnchorProps): JSX.Element;
|
|
2055
2081
|
errorReasonOf(error: unknown): string;
|
|
2056
2082
|
CardBoundary: typeof apiModule.CardBoundary;
|
|
2057
2083
|
CardHead({ t, title, meta, refreshing, onRefresh, gear, gearOpen, onToggleGear, platformHref, platform, platformTitle, }: apiModule.CardHeadProps): JSX.Element;
|
|
@@ -2085,6 +2111,13 @@ export declare const kit: {
|
|
|
2085
2111
|
Row({ label, value }: apiModule.RowProps): JSX.Element;
|
|
2086
2112
|
SaveBar({ busy, disabled, labels, onCancel, onSave }: apiModule.SaveBarProps): JSX.Element;
|
|
2087
2113
|
SettingsSection({ label, title, action, children }: apiModule.SettingsSectionProps): JSX.Element;
|
|
2114
|
+
searchTextOf(option: apiModule.SelectFieldOption): string;
|
|
2115
|
+
defaultSelectFilter(option: apiModule.SelectFieldOption, query: string): boolean;
|
|
2116
|
+
filterSelectOptions(options: readonly apiModule.SelectFieldOption[], query: string, filter?: (option: apiModule.SelectFieldOption, query: string) => boolean): readonly apiModule.SelectFieldOption[];
|
|
2117
|
+
selectCursorValue(shown: readonly apiModule.SelectFieldOption[], cursor: number | null): string | null;
|
|
2118
|
+
stepSelectCursor(shown: readonly apiModule.SelectFieldOption[], cursor: number | null, step: 1 | -1): number | null;
|
|
2119
|
+
selectEntries(shown: readonly apiModule.SelectFieldOption[], emptyText: string | undefined): readonly import("@deepseek-ai/dsh-client-ui-primitives").MenuEntry[];
|
|
2120
|
+
SelectField(props: apiModule.SelectFieldProps): apiModule.ReactNode;
|
|
2088
2121
|
Stack({ children }: apiModule.StackProps): JSX.Element;
|
|
2089
2122
|
StateBlock({ title, dot, hint, actions, resolving, children }: apiModule.StateBlockProps): JSX.Element;
|
|
2090
2123
|
TextField({ invalid, className, ...rest }: apiModule.TextFieldProps): JSX.Element;
|
|
@@ -2095,6 +2128,7 @@ export declare const kit: {
|
|
|
2095
2128
|
IconOpencli({ size }: apiModule.IconProps): JSX.Element;
|
|
2096
2129
|
IconNpm({ size }: apiModule.IconProps): JSX.Element;
|
|
2097
2130
|
IconModules({ size }: apiModule.IconProps): JSX.Element;
|
|
2131
|
+
IconModuleMark({ size }: apiModule.IconProps): JSX.Element;
|
|
2098
2132
|
IconPanelScreen({ size }: apiModule.IconProps): JSX.Element;
|
|
2099
2133
|
PLUGIN_ID: "@dsh-workbench/core";
|
|
2100
2134
|
RELEASE_SIBLINGS: readonly ["@dsh-workbench/shared", "@dsh-workbench/module-tools"];
|
|
@@ -2274,7 +2308,7 @@ export declare const kit: {
|
|
|
2274
2308
|
readonly "panels.market.pluginKeptUnsure": "\u6587\u4EF6\u5148\u7559\u7740\uFF1A\u8FD9\u53F0\u673A\u5668\u4E0A\u8FD8\u6709\u6A21\u5757\u770B\u4E0D\u51FA\u7528\u4E86\u4EC0\u4E48\uFF0C\u8BF4\u4E0D\u51C6\u8C01\u5728\u7528\u5B83\u3002";
|
|
2275
2309
|
readonly "panels.market.pluginKeptHeld": "\u6587\u4EF6\u7559\u7740\uFF1A\u4F60\u81EA\u5DF1\u88C5\u7684\u90A3\u4E00\u4EFD\uFF0C\u6A21\u5757\u653E\u624B\u4E0D\u52A8\u5B83\u3002";
|
|
2276
2310
|
readonly "panels.market.pluginKeptUnnamed": "\u6587\u4EF6\u5148\u7559\u7740\uFF1A\u770B\u4E0D\u51FA\u8FD9\u662F\u54EA\u4E2A\u63D2\u4EF6\uFF0C\u8BF4\u4E0D\u51C6\u8C01\u5728\u7528\u5B83\u3002";
|
|
2277
|
-
readonly "panels.market.pluginBroken": "\u8FD9\u4EFD\u88C5\u574F\u4E86\uFF1A\u770B\u4E0D\u51FA\u5B83\u662F\u4E2A\u63D2\u4EF6\u3002\u53EF\u4EE5\u5378\u8F7D\uFF0C\u6216\u8005\u76F4\u63A5\u8DDF agent \u8BF4\uFF1A\u7528
|
|
2311
|
+
readonly "panels.market.pluginBroken": "\u8FD9\u4EFD\u88C5\u574F\u4E86\uFF1A\u770B\u4E0D\u51FA\u5B83\u662F\u4E2A\u63D2\u4EF6\u3002\u53EF\u4EE5\u5378\u8F7D\uFF0C\u6216\u8005\u76F4\u63A5\u8DDF agent \u8BF4\uFF1A\u7528 workbench_modules_install_bundle \u6309\u5305\u540D\u518D\u88C5\u4E00\u6B21\u3002";
|
|
2278
2312
|
readonly "panels.market.restartNeeded": "\u65B0\u7248\u88C5\u597D\u4E86\uFF0C\u91CD\u542F\u4E00\u6B21\u624D\u751F\u6548\u3002";
|
|
2279
2313
|
readonly "panels.market.foot": "\u88C5\u597D\u540E\u5230\u90A3\u4E2A\u9879\u76EE\u7684\u9762\u677F\u9875\u52FE\u9009\u5B83\uFF0C\u6A21\u5757\u624D\u4F1A\u51FA\u73B0\u3002";
|
|
2280
2314
|
readonly "panels.market.recheck": "\u91CD\u65B0\u68C0\u67E5\u66F4\u65B0";
|
|
@@ -2678,7 +2712,7 @@ export declare const kit: {
|
|
|
2678
2712
|
readonly "panels.market.pluginKeptUnsure": "\u6587\u4EF6\u5148\u7559\u7740\uFF1A\u8FD9\u53F0\u673A\u5668\u4E0A\u8FD8\u6709\u6A21\u5757\u770B\u4E0D\u51FA\u7528\u4E86\u4EC0\u4E48\uFF0C\u8BF4\u4E0D\u51C6\u8C01\u5728\u7528\u5B83\u3002";
|
|
2679
2713
|
readonly "panels.market.pluginKeptHeld": "\u6587\u4EF6\u7559\u7740\uFF1A\u4F60\u81EA\u5DF1\u88C5\u7684\u90A3\u4E00\u4EFD\uFF0C\u6A21\u5757\u653E\u624B\u4E0D\u52A8\u5B83\u3002";
|
|
2680
2714
|
readonly "panels.market.pluginKeptUnnamed": "\u6587\u4EF6\u5148\u7559\u7740\uFF1A\u770B\u4E0D\u51FA\u8FD9\u662F\u54EA\u4E2A\u63D2\u4EF6\uFF0C\u8BF4\u4E0D\u51C6\u8C01\u5728\u7528\u5B83\u3002";
|
|
2681
|
-
readonly "panels.market.pluginBroken": "\u8FD9\u4EFD\u88C5\u574F\u4E86\uFF1A\u770B\u4E0D\u51FA\u5B83\u662F\u4E2A\u63D2\u4EF6\u3002\u53EF\u4EE5\u5378\u8F7D\uFF0C\u6216\u8005\u76F4\u63A5\u8DDF agent \u8BF4\uFF1A\u7528
|
|
2715
|
+
readonly "panels.market.pluginBroken": "\u8FD9\u4EFD\u88C5\u574F\u4E86\uFF1A\u770B\u4E0D\u51FA\u5B83\u662F\u4E2A\u63D2\u4EF6\u3002\u53EF\u4EE5\u5378\u8F7D\uFF0C\u6216\u8005\u76F4\u63A5\u8DDF agent \u8BF4\uFF1A\u7528 workbench_modules_install_bundle \u6309\u5305\u540D\u518D\u88C5\u4E00\u6B21\u3002";
|
|
2682
2716
|
readonly "panels.market.restartNeeded": "\u65B0\u7248\u88C5\u597D\u4E86\uFF0C\u91CD\u542F\u4E00\u6B21\u624D\u751F\u6548\u3002";
|
|
2683
2717
|
readonly "panels.market.foot": "\u88C5\u597D\u540E\u5230\u90A3\u4E2A\u9879\u76EE\u7684\u9762\u677F\u9875\u52FE\u9009\u5B83\uFF0C\u6A21\u5757\u624D\u4F1A\u51FA\u73B0\u3002";
|
|
2684
2718
|
readonly "panels.market.recheck": "\u91CD\u65B0\u68C0\u67E5\u66F4\u65B0";
|
|
@@ -2953,6 +2987,8 @@ export declare const kit: {
|
|
|
2953
2987
|
h: typeof import("react").createElement;
|
|
2954
2988
|
Fragment: import("react").ExoticComponent<import("react").FragmentProps>;
|
|
2955
2989
|
Component: typeof import("react").Component;
|
|
2990
|
+
createContext: typeof import("react").createContext;
|
|
2991
|
+
useContext: typeof import("react").useContext;
|
|
2956
2992
|
useState: typeof import("react").useState;
|
|
2957
2993
|
useEffect: typeof import("react").useEffect;
|
|
2958
2994
|
useLayoutEffect: typeof import("react").useLayoutEffect;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare function TextFieldDemo(): JSX.Element;
|
|
2
|
+
export declare function SelectDemo({ variant }: {
|
|
3
|
+
readonly variant?: 'boxed' | 'ghost';
|
|
4
|
+
}): JSX.Element;
|
|
5
|
+
export declare function SelectRichDemo(): JSX.Element;
|
|
6
|
+
export declare function SelectStateDemo(): JSX.Element;
|
|
7
|
+
export declare function AppearanceDemo(): JSX.Element;
|
|
8
|
+
export declare function ChoiceDemo(): JSX.Element;
|
|
9
|
+
export declare function SaveBarDemo(): JSX.Element;
|
|
10
|
+
export declare function LinkDemo(): JSX.Element;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ReactNode } from '@dsh-workbench/shared';
|
|
2
|
+
export declare function Section({ title, note, children, }: {
|
|
3
|
+
readonly title: string;
|
|
4
|
+
readonly note?: string;
|
|
5
|
+
readonly children?: ReactNode;
|
|
6
|
+
}): JSX.Element;
|
|
7
|
+
export declare function Grid({ children }: {
|
|
8
|
+
readonly children?: ReactNode;
|
|
9
|
+
}): JSX.Element;
|
|
10
|
+
export declare function Cell({ label, wide, children, }: {
|
|
11
|
+
readonly label: string;
|
|
12
|
+
readonly wide?: boolean;
|
|
13
|
+
readonly children?: ReactNode;
|
|
14
|
+
}): JSX.Element;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function RowsSection(): JSX.Element;
|
|
2
|
+
export declare function ActivitySection(): JSX.Element;
|
|
3
|
+
export declare function LongTaskSection(): JSX.Element;
|
|
4
|
+
export declare function IconSection(): JSX.Element;
|
|
5
|
+
export declare function StripSection(): JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { MarketRow } from './market-row-types';
|
|
2
2
|
import type { SharedRow } from './market-rows';
|
|
3
3
|
export type PackageKind = 'module' | 'plugin' | 'lib' | 'workbench';
|
|
4
|
-
export declare function packageIcon(kind: PackageKind): import("react").FunctionComponentElement<import("@
|
|
4
|
+
export declare function packageIcon(kind: PackageKind): import("react").FunctionComponentElement<import("@dsh-workbench/shared").IconProps>;
|
|
5
5
|
export declare function marketRowKind(row: MarketRow): PackageKind;
|
|
6
6
|
export declare function sharedRowKind(row: SharedRow): PackageKind;
|
|
7
7
|
export type PackageIcon = ReturnType<typeof packageIcon>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export type MarketSectionKind = 'installed' | 'pending' | 'plugins' | 'shared';
|
|
2
|
-
export declare function marketSectionIcon(kind: MarketSectionKind): import("react").FunctionComponentElement<import("@
|
|
2
|
+
export declare function marketSectionIcon(kind: MarketSectionKind): import("react").FunctionComponentElement<import("@dsh-workbench/shared").IconProps> | import("react").FunctionComponentElement<import("@deepseek-ai/dsh-client-ui-primitives").IconProps>;
|
|
3
3
|
export type MarketSectionIcon = ReturnType<typeof marketSectionIcon>;
|
|
@@ -13,4 +13,3 @@ export declare function workspaceSections<T extends {
|
|
|
13
13
|
readonly path: string;
|
|
14
14
|
readonly title: string;
|
|
15
15
|
}>(items: readonly T[], headings: WorkspaceHeadings): readonly WorkspaceSectionPlan<T>[];
|
|
16
|
-
export declare function flattenSections<T>(sections: readonly WorkspaceSectionPlan<T>[]): readonly T[];
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type { Translate, WorkspaceView } from '@dsh-workbench/shared';
|
|
2
|
-
import type { MenuEntry } from '@deepseek-ai/dsh-client-ui-primitives';
|
|
1
|
+
import type { SelectFieldOption, Translate, WorkspaceView } from '@dsh-workbench/shared';
|
|
3
2
|
import type { WorkspaceSectionPlan } from './workspace-groups';
|
|
4
3
|
export interface WorkspaceItemsOptions {
|
|
5
4
|
readonly sections: readonly WorkspaceSectionPlan<WorkspaceView>[];
|
|
@@ -9,4 +8,4 @@ export interface WorkspaceItemsOptions {
|
|
|
9
8
|
readonly onHover: (workspaceId: string | null) => void;
|
|
10
9
|
readonly onEdit: (workspace: WorkspaceView) => void;
|
|
11
10
|
}
|
|
12
|
-
export declare function
|
|
11
|
+
export declare function workspaceOptions(options: WorkspaceItemsOptions): SelectFieldOption[];
|
|
@@ -50,8 +50,40 @@ export declare function createDiyRig(): {
|
|
|
50
50
|
specs: string[];
|
|
51
51
|
registered: {
|
|
52
52
|
name: string;
|
|
53
|
+
parameters?: Record<string, unknown>;
|
|
53
54
|
execute: (args: unknown, exec?: unknown) => Promise<unknown>;
|
|
54
55
|
}[];
|
|
56
|
+
tool: (name: string) => {
|
|
57
|
+
name: string;
|
|
58
|
+
parameters?: Record<string, unknown>;
|
|
59
|
+
execute: (args: unknown, exec?: unknown) => Promise<unknown>;
|
|
60
|
+
};
|
|
61
|
+
ctx: {
|
|
62
|
+
get: (key: string) => PanelStateStore | {
|
|
63
|
+
all: () => {
|
|
64
|
+
unit: string;
|
|
65
|
+
}[];
|
|
66
|
+
refusals: () => readonly {
|
|
67
|
+
unit: string;
|
|
68
|
+
reasons: readonly string[];
|
|
69
|
+
}[];
|
|
70
|
+
failureOf: (unit: string) => string | undefined;
|
|
71
|
+
} | ((relative: string) => string) | {
|
|
72
|
+
register(definition: {
|
|
73
|
+
name: string;
|
|
74
|
+
parameters?: Record<string, unknown>;
|
|
75
|
+
execute: (args: unknown, exec?: unknown) => Promise<unknown>;
|
|
76
|
+
}): () => void;
|
|
77
|
+
dir?: undefined;
|
|
78
|
+
} | {
|
|
79
|
+
dir: string;
|
|
80
|
+
register?: undefined;
|
|
81
|
+
} | undefined;
|
|
82
|
+
logger: {
|
|
83
|
+
info: () => void;
|
|
84
|
+
warn: () => void;
|
|
85
|
+
};
|
|
86
|
+
};
|
|
55
87
|
panels: import("../model/service").PanelsService;
|
|
56
88
|
panelState: PanelStateStore;
|
|
57
89
|
registry: {
|
|
@@ -42,4 +42,4 @@ export declare function harness(options: {
|
|
|
42
42
|
selfUpdates: SelfUpdateRequest[];
|
|
43
43
|
};
|
|
44
44
|
export declare function fakeBundles(over?: Partial<BundleManager>): BundleManager;
|
|
45
|
-
export declare function call(h: ReturnType<typeof harness>,
|
|
45
|
+
export declare function call(h: ReturnType<typeof harness>, name: string, args?: unknown): Promise<Record<string, unknown>>;
|
|
@@ -43,7 +43,7 @@ interface RanTool {
|
|
|
43
43
|
}
|
|
44
44
|
export declare function toolHarness(manifests?: readonly UnitManifest[], owned?: readonly string[]): {
|
|
45
45
|
panels: PanelsService;
|
|
46
|
-
run: (args: Record<string, unknown>, exec?: unknown) => Promise<RanTool>;
|
|
46
|
+
run: (name: string, args: Record<string, unknown>, exec?: unknown) => Promise<RanTool>;
|
|
47
47
|
};
|
|
48
48
|
export declare function machineConfig(): string;
|
|
49
49
|
export declare function workspaceConfig(workspace: string): string;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { DshHostContext, DshToolRegistry } from '@dsh-workbench/shared';
|
|
2
|
+
import { type ActStep, type ActTarget } from './diy-browser-act';
|
|
3
|
+
export declare function renderAct(verb: string, target: ActTarget, selector: string, step: ActStep): string;
|
|
4
|
+
export declare function registerActTools(ctx: DshHostContext, tools: DshToolRegistry): readonly (() => void)[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { DshShell } from '@dsh-workbench/shared';
|
|
2
|
+
import { type BrowserStep } from './diy-browser';
|
|
3
|
+
export declare const ACT_TIMEOUT_MS = 15000;
|
|
4
|
+
export interface ActTarget {
|
|
5
|
+
readonly selector: string;
|
|
6
|
+
readonly role: string;
|
|
7
|
+
readonly name: string;
|
|
8
|
+
readonly testid: string;
|
|
9
|
+
readonly nth: number | null;
|
|
10
|
+
readonly page: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare function actTargetOf(raw: Record<string, unknown>): ActTarget;
|
|
13
|
+
export declare function scopedSelectorOf(unit: string, target: ActTarget): string;
|
|
14
|
+
export declare const SCOPE_ATTR = "data-diy-scope";
|
|
15
|
+
export declare function semanticOptionsOf(target: ActTarget): readonly string[];
|
|
16
|
+
export declare function targetOptionsOf(target: ActTarget): readonly string[];
|
|
17
|
+
export declare function refsOf(payload: Record<string, unknown> | undefined): readonly number[];
|
|
18
|
+
export declare function totalMatchesOf(payload: Record<string, unknown> | undefined): number;
|
|
19
|
+
export declare function scopeMarkScriptOf(unit: string, refs: readonly number[], nth: number, token: string): string;
|
|
20
|
+
export declare function scopeClearScriptOf(token: string): string;
|
|
21
|
+
export declare function scopedMarkerSelectorOf(unit: string, token: string): string;
|
|
22
|
+
export interface ActStep extends BrowserStep {
|
|
23
|
+
readonly payload: Record<string, unknown> | undefined;
|
|
24
|
+
}
|
|
25
|
+
export declare function actBrowser(shell: DshShell, command: string, session: string, argv: readonly string[], timeoutMs?: number): Promise<ActStep>;
|
|
26
|
+
export declare function actErrorOf(step: ActStep): string;
|
|
27
|
+
export declare function matchesOf(step: ActStep): number;
|
|
28
|
+
export declare function scrollIntoView(shell: DshShell, command: string, session: string, unit: string, selector: string): Promise<ActStep>;
|
|
29
|
+
export declare function reloadPage(shell: DshShell, command: string, session: string): Promise<ActStep>;
|
|
30
|
+
export interface WidthShot {
|
|
31
|
+
readonly ok: boolean;
|
|
32
|
+
readonly file: string;
|
|
33
|
+
readonly width: number;
|
|
34
|
+
readonly height: number;
|
|
35
|
+
readonly reason: string;
|
|
36
|
+
}
|
|
37
|
+
export declare function shootAtWidth(shell: DshShell, command: string, session: string, file: string, width: number, height: number): Promise<WidthShot>;
|
|
38
|
+
export interface NetworkArm {
|
|
39
|
+
readonly ok: boolean;
|
|
40
|
+
readonly pid: string;
|
|
41
|
+
readonly reason: string;
|
|
42
|
+
}
|
|
43
|
+
export declare const NET_CAP_LINES = 2000;
|
|
44
|
+
export declare const NET_CAP_SECONDS = 900;
|
|
45
|
+
export declare function armNetwork(shell: DshShell, command: string, session: string, file: string): Promise<NetworkArm>;
|
|
46
|
+
export declare function stopNetwork(shell: DshShell, session: string, file: string): Promise<boolean>;
|
|
47
|
+
export declare function readNetwork(shell: DshShell, file: string, lines: number): Promise<readonly Record<string, unknown>[]>;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { DshShell } from '@dsh-workbench/shared';
|
|
2
|
+
import { type PngRect } from '../../../shared/api/host/png-crop';
|
|
3
|
+
import { type CardView, type PickRequest } from './diy-scripts';
|
|
4
|
+
export declare const LOOK_TIMEOUT_MS = 30000;
|
|
5
|
+
export interface BrowserStep {
|
|
6
|
+
readonly ok: boolean;
|
|
7
|
+
readonly stdout: string;
|
|
8
|
+
readonly stderr: string;
|
|
9
|
+
readonly exitCode: number | null;
|
|
10
|
+
readonly timedOut: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare function runBrowserStep(shell: DshShell, command: string, argv: readonly string[], timeoutMs?: number): Promise<BrowserStep>;
|
|
13
|
+
export declare function jsonOf(raw: string): Record<string, unknown> | undefined;
|
|
14
|
+
export declare function textOf(value: unknown): string;
|
|
15
|
+
export interface BoundTab {
|
|
16
|
+
readonly ok: boolean;
|
|
17
|
+
readonly url: string;
|
|
18
|
+
readonly title: string;
|
|
19
|
+
readonly reason: string;
|
|
20
|
+
}
|
|
21
|
+
export declare function bindCurrentTab(shell: DshShell, command: string, session: string): Promise<BoundTab>;
|
|
22
|
+
export interface WorkbenchPage {
|
|
23
|
+
readonly ok: boolean;
|
|
24
|
+
readonly url: string;
|
|
25
|
+
readonly title: string;
|
|
26
|
+
}
|
|
27
|
+
export declare function workbenchPageOf(shell: DshShell, command: string, session: string): Promise<WorkbenchPage>;
|
|
28
|
+
export declare function writeShotsDir(shell: DshShell, dir: string): Promise<boolean>;
|
|
29
|
+
export interface PageHandshake {
|
|
30
|
+
readonly ok: boolean;
|
|
31
|
+
readonly bound: boolean;
|
|
32
|
+
readonly page: WorkbenchPage;
|
|
33
|
+
readonly reason: string;
|
|
34
|
+
}
|
|
35
|
+
export declare function readyPageOf(shell: DshShell, command: string, session: string): Promise<PageHandshake>;
|
|
36
|
+
export declare function measureCard(shell: DshShell, command: string, session: string, unit: string, pick: PickRequest): Promise<CardView>;
|
|
37
|
+
export interface Shot {
|
|
38
|
+
readonly ok: boolean;
|
|
39
|
+
readonly file: string;
|
|
40
|
+
readonly width: number;
|
|
41
|
+
readonly height: number;
|
|
42
|
+
readonly cropped: boolean;
|
|
43
|
+
readonly reason: string;
|
|
44
|
+
}
|
|
45
|
+
export declare function insideViewportOf(view: CardView): boolean;
|
|
46
|
+
export declare function deviceRectOf(view: CardView): PngRect;
|
|
47
|
+
export declare function shootCard(shell: DshShell, command: string, session: string, unit: string, file: string, view: CardView): Promise<Shot>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import type { DshHostContext, DshToolRunContext } from '@dsh-workbench/shared';
|
|
2
|
+
import { type BrowserFindResult, type BrowserReadResult } from '@dsh-workbench/shared/host';
|
|
3
|
+
import type { BundleChange } from '../../../shared/api/bundle-install';
|
|
4
|
+
import type { PanelsService } from './service';
|
|
5
|
+
export declare const OUTPUT_SCHEMA: {
|
|
6
|
+
type: string;
|
|
7
|
+
properties: {
|
|
8
|
+
text: {
|
|
9
|
+
type: string;
|
|
10
|
+
};
|
|
11
|
+
workshop: {
|
|
12
|
+
type: string;
|
|
13
|
+
};
|
|
14
|
+
modules: {
|
|
15
|
+
type: string;
|
|
16
|
+
items: {
|
|
17
|
+
type: string;
|
|
18
|
+
additionalProperties: boolean;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
unit: {
|
|
22
|
+
type: string;
|
|
23
|
+
};
|
|
24
|
+
path: {
|
|
25
|
+
type: string;
|
|
26
|
+
};
|
|
27
|
+
install: {
|
|
28
|
+
type: string;
|
|
29
|
+
additionalProperties: boolean;
|
|
30
|
+
};
|
|
31
|
+
alreadyInstalled: {
|
|
32
|
+
type: string;
|
|
33
|
+
};
|
|
34
|
+
panel: {
|
|
35
|
+
type: string;
|
|
36
|
+
additionalProperties: boolean;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
additionalProperties: boolean;
|
|
40
|
+
};
|
|
41
|
+
export declare const OUTPUT: {
|
|
42
|
+
schema: {
|
|
43
|
+
type: string;
|
|
44
|
+
properties: {
|
|
45
|
+
text: {
|
|
46
|
+
type: string;
|
|
47
|
+
};
|
|
48
|
+
workshop: {
|
|
49
|
+
type: string;
|
|
50
|
+
};
|
|
51
|
+
modules: {
|
|
52
|
+
type: string;
|
|
53
|
+
items: {
|
|
54
|
+
type: string;
|
|
55
|
+
additionalProperties: boolean;
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
unit: {
|
|
59
|
+
type: string;
|
|
60
|
+
};
|
|
61
|
+
path: {
|
|
62
|
+
type: string;
|
|
63
|
+
};
|
|
64
|
+
install: {
|
|
65
|
+
type: string;
|
|
66
|
+
additionalProperties: boolean;
|
|
67
|
+
};
|
|
68
|
+
alreadyInstalled: {
|
|
69
|
+
type: string;
|
|
70
|
+
};
|
|
71
|
+
panel: {
|
|
72
|
+
type: string;
|
|
73
|
+
additionalProperties: boolean;
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
additionalProperties: boolean;
|
|
77
|
+
};
|
|
78
|
+
render: (_args: unknown, value: unknown) => {
|
|
79
|
+
type: string;
|
|
80
|
+
text: string;
|
|
81
|
+
}[];
|
|
82
|
+
};
|
|
83
|
+
export declare function asRecord(value: unknown): Record<string, unknown>;
|
|
84
|
+
export declare function asNumber(value: unknown): number | undefined;
|
|
85
|
+
export declare function asText(value: unknown): string;
|
|
86
|
+
export declare function plainJson<T>(value: T): T;
|
|
87
|
+
export declare function verdictOf(change: BundleChange): string;
|
|
88
|
+
export declare function renderProbe(out: BrowserReadResult): string;
|
|
89
|
+
export declare function renderFind(out: BrowserFindResult): string;
|
|
90
|
+
export declare function showOrReason(panels: PanelsService, unit: string, workspace: string | null): {
|
|
91
|
+
readonly ok: boolean;
|
|
92
|
+
readonly reason?: string;
|
|
93
|
+
};
|
|
94
|
+
export declare function workshopOf(ctx: DshHostContext, exec: DshToolRunContext): {
|
|
95
|
+
readonly packagesDir: string;
|
|
96
|
+
readonly workspace: string | null;
|
|
97
|
+
};
|
|
98
|
+
export declare function modulesOf(ctx: DshHostContext, packagesDir: string): {
|
|
99
|
+
installed: string[];
|
|
100
|
+
modules: readonly import("@/shared/api/host/diy-workshop").WorkshopModule[];
|
|
101
|
+
};
|
|
102
|
+
export declare function panelEntriesOf(panels: PanelsService, workspace: string | null): import("./config").PanelEntry[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { DshHostContext, DshToolRegistry } from '@dsh-workbench/shared';
|
|
2
|
+
export declare const LOGS_ARM_SCRIPT: string;
|
|
3
|
+
export declare const LOGS_READ_SCRIPT: string;
|
|
4
|
+
export declare const LOGS_STOP_SCRIPT: string;
|
|
5
|
+
export interface LogLine {
|
|
6
|
+
readonly level: string;
|
|
7
|
+
readonly text: string;
|
|
8
|
+
readonly at: number;
|
|
9
|
+
}
|
|
10
|
+
export interface LogsRead {
|
|
11
|
+
readonly ok: boolean;
|
|
12
|
+
readonly code: string;
|
|
13
|
+
readonly seen: number;
|
|
14
|
+
readonly lines: readonly LogLine[];
|
|
15
|
+
}
|
|
16
|
+
export declare function logsReadOf(payload: Record<string, unknown> | undefined): LogsRead;
|
|
17
|
+
export declare function renderLogs(read: LogsRead): string;
|
|
18
|
+
export declare function registerLogTools(ctx: DshHostContext, tools: DshToolRegistry): readonly (() => void)[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { DshHostContext, DshToolRegistry } from '@dsh-workbench/shared';
|
|
2
|
+
import { type Shot } from './diy-browser';
|
|
3
|
+
import { type CardView, type PickRequest, type SlotFacts } from './diy-scripts';
|
|
4
|
+
export declare function registerLookTools(ctx: DshHostContext, tools: DshToolRegistry): readonly (() => void)[];
|
|
5
|
+
export declare function rgbOf(value: string): readonly [number, number, number] | undefined;
|
|
6
|
+
export declare function contrastOf(foreground: string, background: string): number | undefined;
|
|
7
|
+
export declare function styleLineOf(view: CardView, pick: PickRequest): string;
|
|
8
|
+
export declare function partsLineOf(view: CardView, pick: PickRequest): string;
|
|
9
|
+
export declare function slotText(slot: SlotFacts, width: number): string;
|
|
10
|
+
export declare function slotLineOf(view: CardView): string;
|
|
11
|
+
export declare function outlineText(view: CardView): string;
|
|
12
|
+
export declare function contrastLineOf(view: CardView): string;
|
|
13
|
+
export declare function renderLook(unit: string, view: CardView, shot: Shot, pick: PickRequest): string;
|
|
14
|
+
export declare function renderMissingCard(unit: string, cards: number, anchored: boolean): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { DshHostContext, DshToolRegistry } from '@dsh-workbench/shared';
|
|
2
|
+
export declare function nearestKeyOf(payload: Record<string, unknown> | undefined, key: string): string;
|
|
3
|
+
export declare function registerNetTools(ctx: DshHostContext, tools: DshToolRegistry): readonly (() => void)[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { DshHostContext, DshShell, DshToolRunContext } from '@dsh-workbench/shared';
|
|
2
|
+
export interface PageHandle {
|
|
3
|
+
readonly packagesDir: string;
|
|
4
|
+
readonly unit: string;
|
|
5
|
+
readonly args: Record<string, unknown>;
|
|
6
|
+
readonly shell: DshShell;
|
|
7
|
+
readonly command: string;
|
|
8
|
+
readonly session: string;
|
|
9
|
+
readonly bound: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface PageOptions {
|
|
12
|
+
readonly requireWorkbench?: boolean | undefined;
|
|
13
|
+
readonly requireUnit?: boolean | undefined;
|
|
14
|
+
}
|
|
15
|
+
export declare function pageAt(ctx: DshHostContext, exec: DshToolRunContext, raw: unknown, options?: PageOptions): Promise<PageHandle>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const UNIT_PROP: {
|
|
2
|
+
type: string;
|
|
3
|
+
description: string;
|
|
4
|
+
};
|
|
5
|
+
export declare const SESSION_PROP: {
|
|
6
|
+
type: string;
|
|
7
|
+
description: string;
|
|
8
|
+
};
|
|
9
|
+
export declare function pageSchema(extra?: Record<string, unknown>, required?: readonly string[]): Record<string, unknown>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|