dsh-image-gen 0.8.7 β 0.9.0
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 +442 -436
- package/README.md +442 -436
- package/docs/assets/readme/plugin-detail.webp +0 -0
- package/docs/assets/readme/plugins-entry.webp +0 -0
- package/lib/client.js +83 -61
- package/package.json +139 -139
- package/skills/install-dsh-image-gen/SKILL.md +22 -22
- package/docs/assets/readme/provider-settings.webp +0 -0
|
Binary file
|
|
Binary file
|
package/lib/client.js
CHANGED
|
@@ -123363,9 +123363,33 @@ img.ProseMirror-separator {
|
|
|
123363
123363
|
children: activeTab === "gallery" || activeTab === "favorites" ? items.length === 0 ? (0, react_jsx_runtime.jsxs)("div", {
|
|
123364
123364
|
className: "dsh-ig-gallery-empty",
|
|
123365
123365
|
children: [
|
|
123366
|
-
(0, react_jsx_runtime.
|
|
123366
|
+
(0, react_jsx_runtime.jsxs)("svg", {
|
|
123367
123367
|
className: "dsh-ig-gallery-empty-icon",
|
|
123368
|
-
|
|
123368
|
+
width: "44",
|
|
123369
|
+
height: "44",
|
|
123370
|
+
viewBox: "0 0 24 24",
|
|
123371
|
+
fill: "none",
|
|
123372
|
+
stroke: "currentColor",
|
|
123373
|
+
strokeWidth: "1.5",
|
|
123374
|
+
strokeLinecap: "round",
|
|
123375
|
+
strokeLinejoin: "round",
|
|
123376
|
+
"aria-hidden": "true",
|
|
123377
|
+
children: [
|
|
123378
|
+
(0, react_jsx_runtime.jsx)("rect", {
|
|
123379
|
+
x: "3",
|
|
123380
|
+
y: "3",
|
|
123381
|
+
width: "18",
|
|
123382
|
+
height: "18",
|
|
123383
|
+
rx: "2",
|
|
123384
|
+
ry: "2"
|
|
123385
|
+
}),
|
|
123386
|
+
(0, react_jsx_runtime.jsx)("circle", {
|
|
123387
|
+
cx: "9",
|
|
123388
|
+
cy: "9",
|
|
123389
|
+
r: "2"
|
|
123390
|
+
}),
|
|
123391
|
+
(0, react_jsx_runtime.jsx)("path", { d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" })
|
|
123392
|
+
]
|
|
123369
123393
|
}),
|
|
123370
123394
|
(0, react_jsx_runtime.jsx)("div", {
|
|
123371
123395
|
className: "dsh-ig-gallery-empty-title",
|
|
@@ -123379,9 +123403,18 @@ img.ProseMirror-separator {
|
|
|
123379
123403
|
}) : activeTab === "favorites" && filteredItems.length === 0 && search === "" && selectedProvider === "all" && selectedRatio === "all" ? (0, react_jsx_runtime.jsxs)("div", {
|
|
123380
123404
|
className: "dsh-ig-gallery-empty",
|
|
123381
123405
|
children: [
|
|
123382
|
-
(0, react_jsx_runtime.jsx)("
|
|
123406
|
+
(0, react_jsx_runtime.jsx)("svg", {
|
|
123383
123407
|
className: "dsh-ig-gallery-empty-icon",
|
|
123384
|
-
|
|
123408
|
+
width: "44",
|
|
123409
|
+
height: "44",
|
|
123410
|
+
viewBox: "0 0 24 24",
|
|
123411
|
+
fill: "none",
|
|
123412
|
+
stroke: "currentColor",
|
|
123413
|
+
strokeWidth: "1.5",
|
|
123414
|
+
strokeLinecap: "round",
|
|
123415
|
+
strokeLinejoin: "round",
|
|
123416
|
+
"aria-hidden": "true",
|
|
123417
|
+
children: (0, react_jsx_runtime.jsx)("path", { d: "M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z" })
|
|
123385
123418
|
}),
|
|
123386
123419
|
(0, react_jsx_runtime.jsx)("div", {
|
|
123387
123420
|
className: "dsh-ig-gallery-empty-title",
|
|
@@ -123395,9 +123428,22 @@ img.ProseMirror-separator {
|
|
|
123395
123428
|
}) : filteredItems.length === 0 ? (0, react_jsx_runtime.jsxs)("div", {
|
|
123396
123429
|
className: "dsh-ig-gallery-empty",
|
|
123397
123430
|
children: [
|
|
123398
|
-
(0, react_jsx_runtime.
|
|
123431
|
+
(0, react_jsx_runtime.jsxs)("svg", {
|
|
123399
123432
|
className: "dsh-ig-gallery-empty-icon",
|
|
123400
|
-
|
|
123433
|
+
width: "44",
|
|
123434
|
+
height: "44",
|
|
123435
|
+
viewBox: "0 0 24 24",
|
|
123436
|
+
fill: "none",
|
|
123437
|
+
stroke: "currentColor",
|
|
123438
|
+
strokeWidth: "1.5",
|
|
123439
|
+
strokeLinecap: "round",
|
|
123440
|
+
strokeLinejoin: "round",
|
|
123441
|
+
"aria-hidden": "true",
|
|
123442
|
+
children: [(0, react_jsx_runtime.jsx)("circle", {
|
|
123443
|
+
cx: "11",
|
|
123444
|
+
cy: "11",
|
|
123445
|
+
r: "8"
|
|
123446
|
+
}), (0, react_jsx_runtime.jsx)("path", { d: "m21 21-4.3-4.3" })]
|
|
123401
123447
|
}),
|
|
123402
123448
|
(0, react_jsx_runtime.jsx)("div", {
|
|
123403
123449
|
className: "dsh-ig-gallery-empty-title",
|
|
@@ -125175,7 +125221,7 @@ body[data-ds-dark-theme] .dsh-ig-workbench{--ig-danger:#f08c8c;--ig-warn:#e5b76a
|
|
|
125175
125221
|
`;
|
|
125176
125222
|
//#endregion
|
|
125177
125223
|
//#region lib/types/client/index.js
|
|
125178
|
-
console.info(`[dsh-image-gen] canvas bundle 2026-10-
|
|
125224
|
+
console.info(`[dsh-image-gen] canvas bundle 2026-10-13T08:42:18.331Z`);
|
|
125179
125225
|
/** Right-sidebar tab-type registration id (DSH 0.1.5 `sidebarRightTabs`). */
|
|
125180
125226
|
const SIDEBAR_STUDIO_TAB_ID = "dsh-image-gen/studio";
|
|
125181
125227
|
/** The tab kind: a page type opened by kind, recognizing no resource address. */
|
|
@@ -125513,20 +125559,16 @@ body[data-ds-dark-theme] .dsh-ig-workbench{--ig-danger:#f08c8c;--ig-warn:#e5b76a
|
|
|
125513
125559
|
}
|
|
125514
125560
|
};
|
|
125515
125561
|
const STYLE = `
|
|
125516
|
-
.dsh-ig-card{list-style:none;border:
|
|
125517
|
-
.dsh-ig-
|
|
125518
|
-
.dsh-ig-card-open{background:var(--dsw-alias-bg-layer-2,#fff);border-color:var(--dsw-alias-label-dimmed,#9ca3af)}
|
|
125519
|
-
.dsh-ig-head{width:100%;appearance:none;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:12px}
|
|
125520
|
-
.dsh-ig-head:focus-visible{outline:2px solid var(--dsw-alias-brand-primary,#4c78ff);outline-offset:-2px}
|
|
125562
|
+
.dsh-ig-card{list-style:none;border:0;background:none;padding:0}
|
|
125563
|
+
.dsh-ig-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 0 6px}
|
|
125521
125564
|
.dsh-ig-head-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
|
|
125522
125565
|
.dsh-ig-title{display:block;font-size:15px;font-weight:600;line-height:1.4;color:var(--dsw-alias-label-primary,inherit)}
|
|
125523
125566
|
.dsh-ig-desc{display:block;font-size:13px;line-height:1.5;color:var(--dsw-alias-label-tertiary,#7b818b)}
|
|
125524
|
-
.dsh-ig-
|
|
125525
|
-
.dsh-ig-
|
|
125526
|
-
.dsh-ig-
|
|
125527
|
-
.dsh-ig-field{display:grid;gap:6px;margin-top:14px}
|
|
125567
|
+
.dsh-ig-body{padding:0}
|
|
125568
|
+
.dsh-ig-field{display:flex;flex-direction:column;gap:6px;padding:12px 0}
|
|
125569
|
+
.dsh-ig-field + .dsh-ig-field{border-top:0.5px solid var(--dsw-alias-border-l2,#e8ebf0)}
|
|
125528
125570
|
.dsh-ig-label{font-size:13px;font-weight:500;color:var(--dsw-alias-label-primary,inherit)}
|
|
125529
|
-
.dsh-ig-input{box-sizing:border-box;width:100%;padding:
|
|
125571
|
+
.dsh-ig-input{box-sizing:border-box;width:100%;height:34px;padding:0 12px;font-size:13px;border:0.5px solid var(--dsw-alias-border-l4,#d7dbe0);border-radius:var(--dsw-radius-md,6px);background:var(--dsw-alias-bg-layer-3,transparent);color:inherit;outline:none;transition:border-color .15s}
|
|
125530
125572
|
.dsh-ig-input:focus{border-color:var(--dsw-alias-brand-primary,#4c78ff)}
|
|
125531
125573
|
.dsh-ig-textarea{resize:vertical;min-height:56px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;line-height:1.5}
|
|
125532
125574
|
.dsh-ig-input-group{display:flex;gap:8px;align-items:center}
|
|
@@ -125542,7 +125584,7 @@ body[data-ds-dark-theme] .dsh-ig-workbench{--ig-danger:#f08c8c;--ig-warn:#e5b76a
|
|
|
125542
125584
|
.dsh-ig-workflow-active{display:inline-flex;align-items:center;cursor:pointer;flex:none}
|
|
125543
125585
|
.dsh-ig-workflow-active input[type=radio]{width:15px;height:15px;accent-color:var(--dsw-alias-brand-primary,#4c78ff);margin:0;cursor:pointer}
|
|
125544
125586
|
.dsh-ig-workflow-name{flex:1;min-width:0}
|
|
125545
|
-
.dsh-ig-btn-reset{appearance:none;border:
|
|
125587
|
+
.dsh-ig-btn-reset{appearance:none;border:0.5px solid var(--dsw-alias-border-l4,#d7dbe0);border-radius:var(--dsw-radius-md,6px);padding:5px 12px;background:var(--dsw-alias-bg-layer-3,#f9fafb);color:var(--dsw-alias-label-secondary,inherit);font:inherit;font-size:13px;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s}
|
|
125546
125588
|
.dsh-ig-btn-reset:hover{background:var(--dsw-alias-bg-layer-2,#edf0f3);border-color:var(--dsw-alias-label-dimmed,#9ca3af)}
|
|
125547
125589
|
.dsh-ig-hint,.dsh-ig-status{margin:0;color:var(--dsw-alias-label-tertiary,#7b818b);font-size:12px;line-height:1.4}
|
|
125548
125590
|
.dsh-ig-hint-error{color:var(--dsw-alias-label-error,#d33)}
|
|
@@ -125551,19 +125593,20 @@ body[data-ds-dark-theme] .dsh-ig-workbench{--ig-danger:#f08c8c;--ig-warn:#e5b76a
|
|
|
125551
125593
|
.dsh-ig-check-row{display:flex;align-items:center;gap:8px;cursor:pointer}
|
|
125552
125594
|
.dsh-ig-check-row input[type=checkbox]{width:15px;height:15px;accent-color:var(--dsw-alias-brand-primary,#4c78ff);margin:0}
|
|
125553
125595
|
.dsh-ig-savedto{font-size:12px;line-height:1.5;color:var(--dsw-alias-label-tertiary,#7b818b);word-break:break-all}
|
|
125554
|
-
.dsh-ig-save{appearance:none;border:0;border-radius:
|
|
125596
|
+
.dsh-ig-save{appearance:none;border:0;border-radius:var(--dsw-radius-md,6px);padding:5px 14px;background:var(--dsw-alias-label-primary,#111827);color:var(--dsw-alias-bg-layer-3,#fff);font:inherit;font-size:13px;font-weight:400;cursor:pointer;transition:opacity .15s}
|
|
125555
125597
|
.dsh-ig-save:disabled{opacity:.4;cursor:default}
|
|
125556
125598
|
|
|
125557
125599
|
/* Provider list: one expandable row per provider, each saving independently. */
|
|
125558
|
-
.dsh-ig-providers{display:
|
|
125559
|
-
.dsh-ig-provider-row{border:
|
|
125560
|
-
.dsh-ig-provider-row-
|
|
125561
|
-
.dsh-ig-provider-head{width:100%;appearance:none;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer;display:flex;align-items:center;gap:10px;padding:
|
|
125562
|
-
.dsh-ig-provider-head:focus-visible{outline:2px solid var(--dsw-alias-
|
|
125600
|
+
.dsh-ig-providers{display:flex;flex-direction:column;margin-top:6px}
|
|
125601
|
+
.dsh-ig-provider-row{border:0;background:none;padding:14px 0}
|
|
125602
|
+
.dsh-ig-provider-row + .dsh-ig-provider-row{border-top:0.5px solid var(--dsw-alias-border-l2,#e8ebf0)}
|
|
125603
|
+
.dsh-ig-provider-head{width:100%;appearance:none;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer;display:flex;align-items:center;gap:10px;padding:0}
|
|
125604
|
+
.dsh-ig-provider-head:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary,#4c78ff);outline-offset:2px;border-radius:var(--dsw-radius-sm,4px)}
|
|
125605
|
+
.dsh-ig-provider-head:hover .dsh-ig-provider-name{color:var(--dsw-alias-label-secondary,inherit)}
|
|
125563
125606
|
.dsh-ig-provider-name{flex:1;min-width:0;font-size:13.5px;font-weight:550;color:var(--dsw-alias-label-primary,inherit)}
|
|
125564
125607
|
.dsh-ig-provider-chevron{flex:none;color:var(--dsw-alias-label-tertiary,#7b818b);transition:transform .16s;display:inline-flex;align-items:center}
|
|
125565
125608
|
.dsh-ig-provider-chevron-open{transform:rotate(180deg)}
|
|
125566
|
-
.dsh-ig-provider-body{border-top:
|
|
125609
|
+
.dsh-ig-provider-body{border-top:0;padding:8px 0 2px}
|
|
125567
125610
|
.dsh-ig-badge{flex:none;display:inline-flex;align-items:center;gap:5px;font-size:11.5px;line-height:1.6;padding:2px 9px;border-radius:999px;border:1px solid var(--dsw-alias-border-l2,#d7dbe0);color:var(--dsw-alias-label-secondary,inherit);white-space:nowrap;max-width:60%;overflow:hidden;text-overflow:ellipsis}
|
|
125568
125611
|
.dsh-ig-badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
|
|
125569
125612
|
.dsh-ig-badge-ok{border-color:rgba(34,197,94,.45);color:#15803d;background:rgba(34,197,94,.08)}
|
|
@@ -125582,15 +125625,15 @@ body[data-ds-dark-theme] .dsh-ig-workbench{--ig-danger:#f08c8c;--ig-warn:#e5b76a
|
|
|
125582
125625
|
/* Row-level actions: test connection, clear key, save. */
|
|
125583
125626
|
.dsh-ig-row-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;flex-wrap:wrap}
|
|
125584
125627
|
.dsh-ig-row-buttons{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
|
|
125585
|
-
.dsh-ig-btn-secondary{appearance:none;border:
|
|
125628
|
+
.dsh-ig-btn-secondary{appearance:none;border:0.5px solid var(--dsw-alias-border-l4,#d7dbe0);border-radius:var(--dsw-radius-md,6px);padding:5px 14px;background:var(--dsw-alias-bg-layer-3,#f9fafb);color:var(--dsw-alias-label-secondary,inherit);font:inherit;font-size:13px;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,opacity .15s}
|
|
125586
125629
|
.dsh-ig-btn-secondary:hover:not(:disabled){background:var(--dsw-alias-bg-layer-2,#edf0f3);border-color:var(--dsw-alias-label-dimmed,#9ca3af)}
|
|
125587
125630
|
.dsh-ig-btn-secondary:disabled{opacity:.45;cursor:default}
|
|
125588
125631
|
.dsh-ig-btn-danger{color:#b91c1c;border-color:rgba(239,68,68,.4)}
|
|
125589
125632
|
.dsh-ig-btn-danger:hover:not(:disabled){background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.6)}
|
|
125590
125633
|
|
|
125591
125634
|
/* Workspace section within the settings card. */
|
|
125592
|
-
.dsh-ig-section{display:
|
|
125593
|
-
.dsh-ig-section-title{font-size:
|
|
125635
|
+
.dsh-ig-section{display:flex;flex-direction:column;gap:6px;margin-top:20px;padding-top:14px;border-top:0.5px solid var(--dsw-alias-border-l2,#e8ebf0)}
|
|
125636
|
+
.dsh-ig-section-title{font-size:13px;font-weight:500;line-height:1.5;color:var(--dsw-alias-label-primary,inherit)}
|
|
125594
125637
|
.dsh-ig-status-readonly{color:var(--dsw-alias-label-tertiary,#7b818b);font-style:italic}
|
|
125595
125638
|
|
|
125596
125639
|
.dsh-ig-result{display:grid;gap:10px;max-width:520px}
|
|
@@ -125699,7 +125742,7 @@ body[data-ds-dark-theme] .dsh-ig-workbench{--ig-danger:#f08c8c;--ig-warn:#e5b76a
|
|
|
125699
125742
|
|
|
125700
125743
|
/* Empty State */
|
|
125701
125744
|
.dsh-ig-gallery-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:360px;text-align:center;color:var(--dsw-alias-label-tertiary,#94a3b8)}
|
|
125702
|
-
.dsh-ig-gallery-empty-icon{
|
|
125745
|
+
.dsh-ig-gallery-empty-icon{display:block;width:44px;height:44px;margin-bottom:10px;color:var(--dsw-alias-label-tertiary,#94a3b8);opacity:.7}
|
|
125703
125746
|
.dsh-ig-gallery-empty-title{font-size:15px;font-weight:600;color:var(--dsw-alias-label-primary,inherit);margin-bottom:4px}
|
|
125704
125747
|
.dsh-ig-gallery-empty-desc{font-size:13px;max-width:360px;line-height:1.5}
|
|
125705
125748
|
|
|
@@ -125891,11 +125934,9 @@ body[data-ds-dark-theme] .dsh-ig-workbench{--ig-danger:#f08c8c;--ig-warn:#e5b76a
|
|
|
125891
125934
|
locale,
|
|
125892
125935
|
credentialEvents
|
|
125893
125936
|
});
|
|
125894
|
-
owner.slots.inject("
|
|
125895
|
-
name: "
|
|
125896
|
-
|
|
125897
|
-
order: 30,
|
|
125898
|
-
label: () => locale?.getSnapshot?.()?.active?.startsWith("en") ? "Image generation" : "εΎεηζ",
|
|
125937
|
+
owner.slots.inject("plugins.bundle.config", () => ownerRegister({
|
|
125938
|
+
name: "plugins.bundle.config",
|
|
125939
|
+
key: "dsh-image-gen",
|
|
125899
125940
|
locale,
|
|
125900
125941
|
inject: injectSettingsFace
|
|
125901
125942
|
}, ImageGenerationSettingsCard));
|
|
@@ -126171,7 +126212,7 @@ body[data-ds-dark-theme] .dsh-ig-workbench{--ig-danger:#f08c8c;--ig-warn:#e5b76a
|
|
|
126171
126212
|
}
|
|
126172
126213
|
/** Edit each provider independently, pick an explicit default, and verify keys inline. */
|
|
126173
126214
|
function ImageGenerationSettingsCard(props) {
|
|
126174
|
-
const [open
|
|
126215
|
+
const [open] = (0, react.useState)(true);
|
|
126175
126216
|
const [snapshot, setSnapshot] = (0, react.useState)(() => props.scope.getSnapshot());
|
|
126176
126217
|
const [health, setHealth] = (0, react.useState)();
|
|
126177
126218
|
const state = settingsState(snapshot, health);
|
|
@@ -127604,7 +127645,7 @@ body[data-ds-dark-theme] .dsh-ig-workbench{--ig-danger:#f08c8c;--ig-warn:#e5b76a
|
|
|
127604
127645
|
const row = rows[provider];
|
|
127605
127646
|
const badge = badgeOf(provider);
|
|
127606
127647
|
return (0, react_jsx_runtime.jsxs)("div", {
|
|
127607
|
-
className:
|
|
127648
|
+
className: "dsh-ig-provider-row",
|
|
127608
127649
|
children: [(0, react_jsx_runtime.jsxs)("button", {
|
|
127609
127650
|
type: "button",
|
|
127610
127651
|
className: "dsh-ig-provider-head",
|
|
@@ -127645,15 +127686,10 @@ body[data-ds-dark-theme] .dsh-ig-workbench{--ig-danger:#f08c8c;--ig-warn:#e5b76a
|
|
|
127645
127686
|
}, provider);
|
|
127646
127687
|
};
|
|
127647
127688
|
return (0, react_jsx_runtime.jsxs)("li", {
|
|
127648
|
-
className:
|
|
127649
|
-
children: [(0, react_jsx_runtime.
|
|
127650
|
-
type: "button",
|
|
127689
|
+
className: "dsh-ig-card",
|
|
127690
|
+
children: [(0, react_jsx_runtime.jsx)("div", {
|
|
127651
127691
|
className: "dsh-ig-head",
|
|
127652
|
-
"
|
|
127653
|
-
onClick: () => {
|
|
127654
|
-
setOpen((value) => !value);
|
|
127655
|
-
},
|
|
127656
|
-
children: [(0, react_jsx_runtime.jsxs)("span", {
|
|
127692
|
+
children: (0, react_jsx_runtime.jsxs)("span", {
|
|
127657
127693
|
className: "dsh-ig-head-text",
|
|
127658
127694
|
children: [(0, react_jsx_runtime.jsx)("span", {
|
|
127659
127695
|
className: "dsh-ig-title",
|
|
@@ -127662,22 +127698,8 @@ body[data-ds-dark-theme] .dsh-ig-workbench{--ig-danger:#f08c8c;--ig-warn:#e5b76a
|
|
|
127662
127698
|
className: "dsh-ig-desc",
|
|
127663
127699
|
children: t("description")
|
|
127664
127700
|
})]
|
|
127665
|
-
})
|
|
127666
|
-
|
|
127667
|
-
"aria-hidden": "true",
|
|
127668
|
-
children: (0, react_jsx_runtime.jsx)("svg", {
|
|
127669
|
-
width: "14",
|
|
127670
|
-
height: "14",
|
|
127671
|
-
viewBox: "0 0 16 16",
|
|
127672
|
-
fill: "none",
|
|
127673
|
-
stroke: "currentColor",
|
|
127674
|
-
strokeWidth: "2",
|
|
127675
|
-
strokeLinecap: "round",
|
|
127676
|
-
strokeLinejoin: "round",
|
|
127677
|
-
children: (0, react_jsx_runtime.jsx)("path", { d: "M4 6l4 4 4-4" })
|
|
127678
|
-
})
|
|
127679
|
-
})]
|
|
127680
|
-
}), open ? (0, react_jsx_runtime.jsxs)("div", {
|
|
127701
|
+
})
|
|
127702
|
+
}), (0, react_jsx_runtime.jsxs)("div", {
|
|
127681
127703
|
className: "dsh-ig-body",
|
|
127682
127704
|
children: [
|
|
127683
127705
|
settingsMessage !== void 0 ? (0, react_jsx_runtime.jsx)("p", {
|
|
@@ -127821,7 +127843,7 @@ body[data-ds-dark-theme] .dsh-ig-workbench{--ig-danger:#f08c8c;--ig-warn:#e5b76a
|
|
|
127821
127843
|
})]
|
|
127822
127844
|
})
|
|
127823
127845
|
]
|
|
127824
|
-
})
|
|
127846
|
+
})]
|
|
127825
127847
|
});
|
|
127826
127848
|
}
|
|
127827
127849
|
/** Keep the legacy Tool row for old DSH and hand modern results to the independent Chat node. */
|
package/package.json
CHANGED
|
@@ -1,139 +1,139 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "dsh-image-gen",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Bring ChatGPT-like image generation to DeepSeek Harness β Gemini, OpenAI, Seedream, DashScope, local ComfyUI & more.",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"author": "shanliuling",
|
|
7
|
-
"repository": {
|
|
8
|
-
"type": "git",
|
|
9
|
-
"url": "git+https://github.com/shanliuling/dsh-image-gen.git"
|
|
10
|
-
},
|
|
11
|
-
"bugs": {
|
|
12
|
-
"url": "https://github.com/shanliuling/dsh-image-gen/issues"
|
|
13
|
-
},
|
|
14
|
-
"homepage": "https://github.com/shanliuling/dsh-image-gen#readme",
|
|
15
|
-
"main": "lib/index.js",
|
|
16
|
-
"types": "lib/types/index.d.ts",
|
|
17
|
-
"exports": {
|
|
18
|
-
".": {
|
|
19
|
-
"types": "./lib/types/index.d.ts",
|
|
20
|
-
"default": "./lib/index.js"
|
|
21
|
-
},
|
|
22
|
-
"./client": {
|
|
23
|
-
"types": "./lib/types/client/index.d.ts",
|
|
24
|
-
"default": "./lib/client.js"
|
|
25
|
-
},
|
|
26
|
-
"./package.json": "./package.json"
|
|
27
|
-
},
|
|
28
|
-
"files": [
|
|
29
|
-
"lib/index.js",
|
|
30
|
-
"lib/client.js",
|
|
31
|
-
"lib/types/**/*.d.ts",
|
|
32
|
-
"skills/**/*.md",
|
|
33
|
-
"cordis.patch.yml",
|
|
34
|
-
"README.md",
|
|
35
|
-
"README.en.md",
|
|
36
|
-
"docs/assets/readme/*.webp",
|
|
37
|
-
"LICENSE"
|
|
38
|
-
],
|
|
39
|
-
"dsh": {
|
|
40
|
-
"bundle": {
|
|
41
|
-
"patch": "./cordis.patch.yml"
|
|
42
|
-
},
|
|
43
|
-
"client": {
|
|
44
|
-
"inject": [
|
|
45
|
-
"@deepseek-ai/dsh-client-connection",
|
|
46
|
-
"@deepseek-ai/dsh-api-remotes",
|
|
47
|
-
"@deepseek-ai/dsh-client-ui-conversation",
|
|
48
|
-
"@deepseek-ai/dsh-client-ui-settings",
|
|
49
|
-
"@deepseek-ai/dsh-client-ui-settings-plugins",
|
|
50
|
-
"@deepseek-ai/dsh-client-ui-sidebar-right",
|
|
51
|
-
"@deepseek-ai/dsh-client-ui-tool",
|
|
52
|
-
"@deepseek-ai/dsh-client-locale"
|
|
53
|
-
],
|
|
54
|
-
"platform": "web"
|
|
55
|
-
}
|
|
56
|
-
},
|
|
57
|
-
"scripts": {
|
|
58
|
-
"typecheck": "tsc --noEmit",
|
|
59
|
-
"build": "tsc && tsdown",
|
|
60
|
-
"prepare": "pnpm run build",
|
|
61
|
-
"test": "vitest run",
|
|
62
|
-
"test:package": "node scripts/check-package.mjs",
|
|
63
|
-
"pack:check": "pnpm pack --dry-run"
|
|
64
|
-
},
|
|
65
|
-
"engines": {
|
|
66
|
-
"node": "^22.19.0 || >=24.0.0"
|
|
67
|
-
},
|
|
68
|
-
"license": "Apache-2.0",
|
|
69
|
-
"keywords": [
|
|
70
|
-
"deepseek",
|
|
71
|
-
"deepseek-harness",
|
|
72
|
-
"dsh",
|
|
73
|
-
"dsh-plugin",
|
|
74
|
-
"ai-agent",
|
|
75
|
-
"image-generation",
|
|
76
|
-
"ai-image-generation",
|
|
77
|
-
"multimodal",
|
|
78
|
-
"gemini",
|
|
79
|
-
"openai",
|
|
80
|
-
"openai-compatible",
|
|
81
|
-
"seedream",
|
|
82
|
-
"dashscope",
|
|
83
|
-
"comfyui",
|
|
84
|
-
"local-image-generation",
|
|
85
|
-
"wanx",
|
|
86
|
-
"aliyun",
|
|
87
|
-
"volcengine",
|
|
88
|
-
"byok",
|
|
89
|
-
"cordis"
|
|
90
|
-
],
|
|
91
|
-
"peerDependencies": {
|
|
92
|
-
"@deepseek-ai/cordis": ">=4.0.0 <5",
|
|
93
|
-
"@deepseek-ai/schemastery": ">=3.18.4 <4",
|
|
94
|
-
"react": ">=18.2.0 <19"
|
|
95
|
-
},
|
|
96
|
-
"peerDependenciesMeta": {
|
|
97
|
-
"@deepseek-ai/cordis": {
|
|
98
|
-
"optional": true
|
|
99
|
-
},
|
|
100
|
-
"@deepseek-ai/schemastery": {
|
|
101
|
-
"optional": true
|
|
102
|
-
},
|
|
103
|
-
"react": {
|
|
104
|
-
"optional": true
|
|
105
|
-
}
|
|
106
|
-
},
|
|
107
|
-
"devDependencies": {
|
|
108
|
-
"@deepseek-ai/cordis": "4.0.4",
|
|
109
|
-
"@deepseek-ai/dsh-agent": "0.1.7-rc.2",
|
|
110
|
-
"@deepseek-ai/dsh-api-remotes": "0.1.7-rc.2",
|
|
111
|
-
"@deepseek-ai/dsh-attachment": "0.1.7-rc.2",
|
|
112
|
-
"@deepseek-ai/dsh-client-connection": "0.1.7-rc.2",
|
|
113
|
-
"@deepseek-ai/dsh-client-ui-conversation": "0.1.7-rc.2",
|
|
114
|
-
"@deepseek-ai/dsh-client-ui-settings": "0.1.7-rc.2",
|
|
115
|
-
"@deepseek-ai/dsh-client-ui-settings-plugins": "0.1.7-rc.2",
|
|
116
|
-
"@deepseek-ai/dsh-client-ui-sidebar-right": "0.1.7-rc.2",
|
|
117
|
-
"@deepseek-ai/dsh-client-ui-slots": "0.1.7-rc.2",
|
|
118
|
-
"@deepseek-ai/dsh-client-ui-tool": "0.1.7-rc.2",
|
|
119
|
-
"@deepseek-ai/dsh-credentials": "0.1.7-rc.2",
|
|
120
|
-
"@deepseek-ai/dsh-host-webserver": "0.1.7-rc.2",
|
|
121
|
-
"@deepseek-ai/dsh-llm": "0.1.7-rc.2",
|
|
122
|
-
"@deepseek-ai/dsh-session": "0.1.7-rc.2",
|
|
123
|
-
"@deepseek-ai/dsh-settings": "0.1.7-rc.2",
|
|
124
|
-
"@deepseek-ai/dsh-tools": "0.1.7-rc.2",
|
|
125
|
-
"@deepseek-ai/dsh-workspace": "0.1.7-rc.2",
|
|
126
|
-
"@deepseek-ai/schemastery": "3.18.4",
|
|
127
|
-
"@types/node": "^22.20.0",
|
|
128
|
-
"@types/react": "~18.3.1",
|
|
129
|
-
"lucide-react": "^1.38.0",
|
|
130
|
-
"react": "^18.2.0",
|
|
131
|
-
"react-dom": "18.3.1",
|
|
132
|
-
"tldraw": "5.3.0",
|
|
133
|
-
"tsdown": "^0.22.2",
|
|
134
|
-
"typescript": "^6.0.3",
|
|
135
|
-
"unrun": "^0.3.1",
|
|
136
|
-
"vitest": "^4.1.8"
|
|
137
|
-
},
|
|
138
|
-
"packageManager": "pnpm@11.7.0"
|
|
139
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "dsh-image-gen",
|
|
3
|
+
"version": "0.9.0",
|
|
4
|
+
"description": "Bring ChatGPT-like image generation to DeepSeek Harness β Gemini, OpenAI, Seedream, DashScope, local ComfyUI & more.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"author": "shanliuling",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/shanliuling/dsh-image-gen.git"
|
|
10
|
+
},
|
|
11
|
+
"bugs": {
|
|
12
|
+
"url": "https://github.com/shanliuling/dsh-image-gen/issues"
|
|
13
|
+
},
|
|
14
|
+
"homepage": "https://github.com/shanliuling/dsh-image-gen#readme",
|
|
15
|
+
"main": "lib/index.js",
|
|
16
|
+
"types": "lib/types/index.d.ts",
|
|
17
|
+
"exports": {
|
|
18
|
+
".": {
|
|
19
|
+
"types": "./lib/types/index.d.ts",
|
|
20
|
+
"default": "./lib/index.js"
|
|
21
|
+
},
|
|
22
|
+
"./client": {
|
|
23
|
+
"types": "./lib/types/client/index.d.ts",
|
|
24
|
+
"default": "./lib/client.js"
|
|
25
|
+
},
|
|
26
|
+
"./package.json": "./package.json"
|
|
27
|
+
},
|
|
28
|
+
"files": [
|
|
29
|
+
"lib/index.js",
|
|
30
|
+
"lib/client.js",
|
|
31
|
+
"lib/types/**/*.d.ts",
|
|
32
|
+
"skills/**/*.md",
|
|
33
|
+
"cordis.patch.yml",
|
|
34
|
+
"README.md",
|
|
35
|
+
"README.en.md",
|
|
36
|
+
"docs/assets/readme/*.webp",
|
|
37
|
+
"LICENSE"
|
|
38
|
+
],
|
|
39
|
+
"dsh": {
|
|
40
|
+
"bundle": {
|
|
41
|
+
"patch": "./cordis.patch.yml"
|
|
42
|
+
},
|
|
43
|
+
"client": {
|
|
44
|
+
"inject": [
|
|
45
|
+
"@deepseek-ai/dsh-client-connection",
|
|
46
|
+
"@deepseek-ai/dsh-api-remotes",
|
|
47
|
+
"@deepseek-ai/dsh-client-ui-conversation",
|
|
48
|
+
"@deepseek-ai/dsh-client-ui-settings",
|
|
49
|
+
"@deepseek-ai/dsh-client-ui-settings-plugins",
|
|
50
|
+
"@deepseek-ai/dsh-client-ui-sidebar-right",
|
|
51
|
+
"@deepseek-ai/dsh-client-ui-tool",
|
|
52
|
+
"@deepseek-ai/dsh-client-locale"
|
|
53
|
+
],
|
|
54
|
+
"platform": "web"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"scripts": {
|
|
58
|
+
"typecheck": "tsc --noEmit",
|
|
59
|
+
"build": "tsc && tsdown",
|
|
60
|
+
"prepare": "pnpm run build",
|
|
61
|
+
"test": "vitest run",
|
|
62
|
+
"test:package": "node scripts/check-package.mjs",
|
|
63
|
+
"pack:check": "pnpm pack --dry-run"
|
|
64
|
+
},
|
|
65
|
+
"engines": {
|
|
66
|
+
"node": "^22.19.0 || >=24.0.0"
|
|
67
|
+
},
|
|
68
|
+
"license": "Apache-2.0",
|
|
69
|
+
"keywords": [
|
|
70
|
+
"deepseek",
|
|
71
|
+
"deepseek-harness",
|
|
72
|
+
"dsh",
|
|
73
|
+
"dsh-plugin",
|
|
74
|
+
"ai-agent",
|
|
75
|
+
"image-generation",
|
|
76
|
+
"ai-image-generation",
|
|
77
|
+
"multimodal",
|
|
78
|
+
"gemini",
|
|
79
|
+
"openai",
|
|
80
|
+
"openai-compatible",
|
|
81
|
+
"seedream",
|
|
82
|
+
"dashscope",
|
|
83
|
+
"comfyui",
|
|
84
|
+
"local-image-generation",
|
|
85
|
+
"wanx",
|
|
86
|
+
"aliyun",
|
|
87
|
+
"volcengine",
|
|
88
|
+
"byok",
|
|
89
|
+
"cordis"
|
|
90
|
+
],
|
|
91
|
+
"peerDependencies": {
|
|
92
|
+
"@deepseek-ai/cordis": ">=4.0.0 <5",
|
|
93
|
+
"@deepseek-ai/schemastery": ">=3.18.4 <4",
|
|
94
|
+
"react": ">=18.2.0 <19"
|
|
95
|
+
},
|
|
96
|
+
"peerDependenciesMeta": {
|
|
97
|
+
"@deepseek-ai/cordis": {
|
|
98
|
+
"optional": true
|
|
99
|
+
},
|
|
100
|
+
"@deepseek-ai/schemastery": {
|
|
101
|
+
"optional": true
|
|
102
|
+
},
|
|
103
|
+
"react": {
|
|
104
|
+
"optional": true
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
"devDependencies": {
|
|
108
|
+
"@deepseek-ai/cordis": "4.0.4",
|
|
109
|
+
"@deepseek-ai/dsh-agent": "0.1.7-rc.2",
|
|
110
|
+
"@deepseek-ai/dsh-api-remotes": "0.1.7-rc.2",
|
|
111
|
+
"@deepseek-ai/dsh-attachment": "0.1.7-rc.2",
|
|
112
|
+
"@deepseek-ai/dsh-client-connection": "0.1.7-rc.2",
|
|
113
|
+
"@deepseek-ai/dsh-client-ui-conversation": "0.1.7-rc.2",
|
|
114
|
+
"@deepseek-ai/dsh-client-ui-settings": "0.1.7-rc.2",
|
|
115
|
+
"@deepseek-ai/dsh-client-ui-settings-plugins": "0.1.7-rc.2",
|
|
116
|
+
"@deepseek-ai/dsh-client-ui-sidebar-right": "0.1.7-rc.2",
|
|
117
|
+
"@deepseek-ai/dsh-client-ui-slots": "0.1.7-rc.2",
|
|
118
|
+
"@deepseek-ai/dsh-client-ui-tool": "0.1.7-rc.2",
|
|
119
|
+
"@deepseek-ai/dsh-credentials": "0.1.7-rc.2",
|
|
120
|
+
"@deepseek-ai/dsh-host-webserver": "0.1.7-rc.2",
|
|
121
|
+
"@deepseek-ai/dsh-llm": "0.1.7-rc.2",
|
|
122
|
+
"@deepseek-ai/dsh-session": "0.1.7-rc.2",
|
|
123
|
+
"@deepseek-ai/dsh-settings": "0.1.7-rc.2",
|
|
124
|
+
"@deepseek-ai/dsh-tools": "0.1.7-rc.2",
|
|
125
|
+
"@deepseek-ai/dsh-workspace": "0.1.7-rc.2",
|
|
126
|
+
"@deepseek-ai/schemastery": "3.18.4",
|
|
127
|
+
"@types/node": "^22.20.0",
|
|
128
|
+
"@types/react": "~18.3.1",
|
|
129
|
+
"lucide-react": "^1.38.0",
|
|
130
|
+
"react": "^18.2.0",
|
|
131
|
+
"react-dom": "18.3.1",
|
|
132
|
+
"tldraw": "5.3.0",
|
|
133
|
+
"tsdown": "^0.22.2",
|
|
134
|
+
"typescript": "^6.0.3",
|
|
135
|
+
"unrun": "^0.3.1",
|
|
136
|
+
"vitest": "^4.1.8"
|
|
137
|
+
},
|
|
138
|
+
"packageManager": "pnpm@11.7.0"
|
|
139
|
+
}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: install-dsh-image-gen
|
|
3
|
-
description: Install, configure, verify, or remove the dsh-image-gen Bundle in a DeepSeek Harness Web profile. Use when a user wants Google, OpenAI-compatible relay, Seedream, DashScope, or local ComfyUI image generation in DSH, cannot find the Image generation settings card, or needs help testing generate_image.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Install DSH Image Gen
|
|
7
|
-
|
|
8
|
-
1. Confirm `dsh` runs and record `dsh --version`.
|
|
9
|
-
2. Ask which Web profile to change if the user did not name one. Default to `web` only when that profile already exists.
|
|
10
|
-
3. Install the pinned package or repository spec the user provides:
|
|
11
|
-
|
|
12
|
-
```sh
|
|
13
|
-
dsh plugin --profile <profile> add <package-or-git-spec>
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
4. If pnpm blocks the Git dependency's `prepare` script, explain that the allowance executes repository code during installation. Add only the exact package key pnpm reports to the profile's `pnpm-workspace.yaml`, then retry after the user approves.
|
|
17
|
-
5. Verify `dsh --profile <profile> --dump-config` contains the `dsh-image-gen` layer and `image-gen` row.
|
|
18
|
-
6. Start the profile. If port 3080 is already in use, identify the existing DSH process before stopping anything.
|
|
19
|
-
7.
|
|
20
|
-
8. Test with βηζδΈεΌ ζ΄ε’¨ιηθ΅εζε
η«εΎηβ. Confirm one `generate_image` call succeeds and its image renders in the conversation.
|
|
21
|
-
|
|
22
|
-
For removal, run `dsh plugin --profile <profile> remove dsh-image-gen`. Do not delete the user's credentials unless they explicitly request it.
|
|
1
|
+
---
|
|
2
|
+
name: install-dsh-image-gen
|
|
3
|
+
description: Install, configure, verify, or remove the dsh-image-gen Bundle in a DeepSeek Harness Web profile. Use when a user wants Google, OpenAI-compatible relay, Seedream, DashScope, or local ComfyUI image generation in DSH, cannot find the Image generation settings card, or needs help testing generate_image.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Install DSH Image Gen
|
|
7
|
+
|
|
8
|
+
1. Confirm `dsh` runs and record `dsh --version`.
|
|
9
|
+
2. Ask which Web profile to change if the user did not name one. Default to `web` only when that profile already exists.
|
|
10
|
+
3. Install the pinned package or repository spec the user provides:
|
|
11
|
+
|
|
12
|
+
```sh
|
|
13
|
+
dsh plugin --profile <profile> add <package-or-git-spec>
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
4. If pnpm blocks the Git dependency's `prepare` script, explain that the allowance executes repository code during installation. Add only the exact package key pnpm reports to the profile's `pnpm-workspace.yaml`, then retry after the user approves.
|
|
17
|
+
5. Verify `dsh --profile <profile> --dump-config` contains the `dsh-image-gen` layer and `image-gen` row.
|
|
18
|
+
6. Start the profile. If port 3080 is already in use, identify the existing DSH process before stopping anything.
|
|
19
|
+
7. Open the Plugins panel from the left sidebar, click dsh-image-gen under Installed, and configure Providers on the plugin's detail page (DSH 0.1.5 and earlier: Settings > Plugins > Plugin Configuration > Image generation). Select a cloud Provider and save its API key, or select Local ComfyUI, enter its URL, and import a ComfyUI API Format workflow JSON containing `{{prompt}}`. Never print, read back, or commit a key.
|
|
20
|
+
8. Test with βηζδΈεΌ ζ΄ε’¨ιηθ΅εζε
η«εΎηβ. Confirm one `generate_image` call succeeds and its image renders in the conversation.
|
|
21
|
+
|
|
22
|
+
For removal, run `dsh plugin --profile <profile> remove dsh-image-gen`. Do not delete the user's credentials unless they explicitly request it.
|
|
Binary file
|