@deepseek-ai/dsh-client-ui-conversation 0.1.2-alpha.3 → 0.1.2-alpha.4
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.i18n.yaml +2 -2
- package/README.md +2 -0
- package/README.zh.md +2 -0
- package/lib/client.js +122 -56
- package/lib/types/client/contract/conversation.d.ts +30 -14
- package/lib/types/client/contract/slots.d.ts +2 -13
- package/lib/types/client/conversation/location-index.d.ts +4 -0
- package/lib/types/client/index.d.ts +1 -1
- package/lib/types/client/skeleton/InputBar.d.ts +3 -3
- package/package.json +29 -35
- package/lib/invariant.js +0 -23
- package/lib/types/invariant.d.ts +0 -16
package/README.i18n.yaml
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
|
3
3
|
# after editing either side, bring the other along and re-record with:
|
|
4
4
|
# pnpm run verify-translation-pairing --write packages/client/ui-conversation/README.md
|
|
5
|
-
README.md:
|
|
6
|
-
README.zh.md:
|
|
5
|
+
README.md: 3292c39477a051ac406f453e781376164333ee78
|
|
6
|
+
README.zh.md: 433b2e6c8b3580dadf5dd9e38eaea7b1ab7022a6
|
package/README.md
CHANGED
|
@@ -121,3 +121,5 @@ None; Conversation assembly and browser input state do not alter provider-side p
|
|
|
121
121
|
None.
|
|
122
122
|
|
|
123
123
|
</details>
|
|
124
|
+
|
|
125
|
+
**Runtime invariant:** No companion is published. Conversation Definitions, target builders, and Views are already validated by their owning registries and the Slot ledger.
|
package/README.zh.md
CHANGED
package/lib/client.js
CHANGED
|
@@ -76,14 +76,53 @@ window.__ModuleLoader__.load({
|
|
|
76
76
|
}
|
|
77
77
|
//#endregion
|
|
78
78
|
//#region lib/types/client/conversation/location-index.js
|
|
79
|
+
var MutableLocationDataSource = class {
|
|
80
|
+
store;
|
|
81
|
+
key;
|
|
82
|
+
listeners = /* @__PURE__ */ new Set();
|
|
83
|
+
published;
|
|
84
|
+
constructor(store, key) {
|
|
85
|
+
this.store = store;
|
|
86
|
+
this.key = key;
|
|
87
|
+
this.published = store.get(key);
|
|
88
|
+
}
|
|
89
|
+
getSnapshot = () => this.store.get(this.key);
|
|
90
|
+
subscribe = (listener) => {
|
|
91
|
+
this.listeners.add(listener);
|
|
92
|
+
return () => {
|
|
93
|
+
this.listeners.delete(listener);
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
publish() {
|
|
97
|
+
const next = this.getSnapshot();
|
|
98
|
+
if (this.published === next) return;
|
|
99
|
+
this.published = next;
|
|
100
|
+
(0, _deepseek_ai_dsh_client_store.notifySubscribers)(this.listeners, `[ui-conversation] Location data ${this.key}`);
|
|
101
|
+
}
|
|
102
|
+
};
|
|
79
103
|
var MutableLocationDataStore = class {
|
|
104
|
+
markDirty;
|
|
80
105
|
entries = /* @__PURE__ */ new Map();
|
|
106
|
+
sources = /* @__PURE__ */ new Map();
|
|
107
|
+
dirtyKeys = /* @__PURE__ */ new Set();
|
|
108
|
+
constructor(markDirty) {
|
|
109
|
+
this.markDirty = markDirty;
|
|
110
|
+
}
|
|
81
111
|
get(key) {
|
|
82
112
|
return this.entries.get(key)?.value;
|
|
83
113
|
}
|
|
114
|
+
source(key) {
|
|
115
|
+
let source = this.sources.get(key);
|
|
116
|
+
if (source === void 0) {
|
|
117
|
+
source = new MutableLocationDataSource(this, key);
|
|
118
|
+
this.sources.set(key, source);
|
|
119
|
+
}
|
|
120
|
+
return source;
|
|
121
|
+
}
|
|
84
122
|
remove(owner, key) {
|
|
85
123
|
if (this.entries.get(key)?.owner !== owner) return false;
|
|
86
124
|
this.entries.delete(key);
|
|
125
|
+
this.changed(key);
|
|
87
126
|
return true;
|
|
88
127
|
}
|
|
89
128
|
set(owner, key, value) {
|
|
@@ -94,19 +133,29 @@ window.__ModuleLoader__.load({
|
|
|
94
133
|
owner,
|
|
95
134
|
value
|
|
96
135
|
});
|
|
136
|
+
this.changed(key);
|
|
97
137
|
return true;
|
|
98
138
|
}
|
|
99
139
|
replace(entries) {
|
|
100
|
-
|
|
101
|
-
|
|
140
|
+
const changedKeys = [];
|
|
141
|
+
for (const key of new Set([...this.entries.keys(), ...entries.keys()])) {
|
|
102
142
|
const current = this.entries.get(key);
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
break;
|
|
106
|
-
}
|
|
143
|
+
const next = entries.get(key);
|
|
144
|
+
if (current?.owner !== next?.owner || current?.value !== next?.value) changedKeys.push(key);
|
|
107
145
|
}
|
|
108
|
-
if (
|
|
109
|
-
|
|
146
|
+
if (changedKeys.length === 0) return false;
|
|
147
|
+
this.entries = new Map(entries);
|
|
148
|
+
for (const key of changedKeys) this.changed(key);
|
|
149
|
+
return true;
|
|
150
|
+
}
|
|
151
|
+
publish() {
|
|
152
|
+
const dirty = [...this.dirtyKeys];
|
|
153
|
+
this.dirtyKeys.clear();
|
|
154
|
+
for (const key of dirty) this.sources.get(key)?.publish();
|
|
155
|
+
}
|
|
156
|
+
changed(key) {
|
|
157
|
+
this.dirtyKeys.add(key);
|
|
158
|
+
this.markDirty(this);
|
|
110
159
|
}
|
|
111
160
|
};
|
|
112
161
|
const SESSION_LOCATION = { kind: "session" };
|
|
@@ -148,6 +197,7 @@ window.__ModuleLoader__.load({
|
|
|
148
197
|
};
|
|
149
198
|
turnDataStores = /* @__PURE__ */ new Map();
|
|
150
199
|
stepDataStores = /* @__PURE__ */ new Map();
|
|
200
|
+
dirtyDataStores = /* @__PURE__ */ new Set();
|
|
151
201
|
currentTurn;
|
|
152
202
|
currentStep;
|
|
153
203
|
/**
|
|
@@ -200,6 +250,12 @@ window.__ModuleLoader__.load({
|
|
|
200
250
|
}
|
|
201
251
|
return changed;
|
|
202
252
|
}
|
|
253
|
+
/** Publish committed Location-data changes to their keyed sources. */
|
|
254
|
+
publishData() {
|
|
255
|
+
const dirty = [...this.dirtyDataStores];
|
|
256
|
+
this.dirtyDataStores.clear();
|
|
257
|
+
for (const store of dirty) store.publish();
|
|
258
|
+
}
|
|
203
259
|
/**
|
|
204
260
|
* Resolve the latest Location for one event.
|
|
205
261
|
* @param event - event already ingested into this index.
|
|
@@ -444,15 +500,18 @@ window.__ModuleLoader__.load({
|
|
|
444
500
|
return this.mutableStepData(stepDataKey(turn, step));
|
|
445
501
|
}
|
|
446
502
|
mutableTurnData(turn) {
|
|
447
|
-
const current = this.turnDataStores.get(turn) ??
|
|
503
|
+
const current = this.turnDataStores.get(turn) ?? this.createDataStore();
|
|
448
504
|
this.turnDataStores.set(turn, current);
|
|
449
505
|
return current;
|
|
450
506
|
}
|
|
451
507
|
mutableStepData(key) {
|
|
452
|
-
const current = this.stepDataStores.get(key) ??
|
|
508
|
+
const current = this.stepDataStores.get(key) ?? this.createDataStore();
|
|
453
509
|
this.stepDataStores.set(key, current);
|
|
454
510
|
return current;
|
|
455
511
|
}
|
|
512
|
+
createDataStore() {
|
|
513
|
+
return new MutableLocationDataStore((store) => this.dirtyDataStores.add(store));
|
|
514
|
+
}
|
|
456
515
|
storeFor(data) {
|
|
457
516
|
return data.kind === "turn" ? this.mutableTurnData(data.turn) : this.mutableStepData(stepDataKey(data.turn, requireStep(data)));
|
|
458
517
|
}
|
|
@@ -697,6 +756,7 @@ window.__ModuleLoader__.load({
|
|
|
697
756
|
});
|
|
698
757
|
published = true;
|
|
699
758
|
}
|
|
759
|
+
this.locationIndex.publishData();
|
|
700
760
|
this.replacePending = false;
|
|
701
761
|
this.dirty.clear();
|
|
702
762
|
this.dirtyByTarget.clear();
|
|
@@ -719,6 +779,7 @@ window.__ModuleLoader__.load({
|
|
|
719
779
|
});
|
|
720
780
|
published = true;
|
|
721
781
|
}
|
|
782
|
+
this.locationIndex.publishData();
|
|
722
783
|
this.dirty.clear();
|
|
723
784
|
this.dirtyByTarget.clear();
|
|
724
785
|
this.timelineDirty = false;
|
|
@@ -1103,9 +1164,9 @@ window.__ModuleLoader__.load({
|
|
|
1103
1164
|
}
|
|
1104
1165
|
return upserts;
|
|
1105
1166
|
}
|
|
1106
|
-
buildLocationData(context, scope) {
|
|
1167
|
+
buildLocationData(context, scope, previous) {
|
|
1107
1168
|
if (context.definition.buildLocationData === void 0) return null;
|
|
1108
|
-
const data = context.definition.buildLocationData(contextSnapshot(context), scope);
|
|
1169
|
+
const data = context.definition.buildLocationData(contextSnapshot(context), scope, previous);
|
|
1109
1170
|
if (data === null) return null;
|
|
1110
1171
|
if (data.kind !== scope) throw new Error(`conversation Definition "${context.kind}" published ${data.kind} data through its ${scope} scope`);
|
|
1111
1172
|
if (data.key !== context.kind) throw new Error(`conversation Definition "${context.kind}" published Location data key "${data.key}"; expected its owned kind`);
|
|
@@ -1117,7 +1178,7 @@ window.__ModuleLoader__.load({
|
|
|
1117
1178
|
const entries = [];
|
|
1118
1179
|
for (const scope of LOCATION_DATA_SCOPES) {
|
|
1119
1180
|
for (const context of this.contexts.values()) {
|
|
1120
|
-
const data = this.buildLocationData(context, scope);
|
|
1181
|
+
const data = this.buildLocationData(context, scope, context.locationData[scope]);
|
|
1121
1182
|
context.locationData[scope] = data;
|
|
1122
1183
|
if (data !== null) entries.push({
|
|
1123
1184
|
owner: context.key,
|
|
@@ -1133,9 +1194,10 @@ window.__ModuleLoader__.load({
|
|
|
1133
1194
|
const changes = [];
|
|
1134
1195
|
for (const context of this.dirty) {
|
|
1135
1196
|
const previous = context.locationData[scope];
|
|
1136
|
-
const next = this.buildLocationData(context, scope);
|
|
1197
|
+
const next = this.buildLocationData(context, scope, previous);
|
|
1198
|
+
if (previous === next) continue;
|
|
1137
1199
|
context.locationData[scope] = next;
|
|
1138
|
-
|
|
1200
|
+
changes.push({
|
|
1139
1201
|
owner: context.key,
|
|
1140
1202
|
previous,
|
|
1141
1203
|
next
|
|
@@ -1505,8 +1567,7 @@ window.__ModuleLoader__.load({
|
|
|
1505
1567
|
this.publish(this.assembler.rebuildRegistry());
|
|
1506
1568
|
}
|
|
1507
1569
|
dispose() {
|
|
1508
|
-
|
|
1509
|
-
this.frame = void 0;
|
|
1570
|
+
this.cancelFrame();
|
|
1510
1571
|
this.disposeFeed();
|
|
1511
1572
|
}
|
|
1512
1573
|
replace(window) {
|
|
@@ -1539,13 +1600,22 @@ window.__ModuleLoader__.load({
|
|
|
1539
1600
|
if (publication === "animation-frame" && typeof requestAnimationFrame === "function") {
|
|
1540
1601
|
if (this.frame !== void 0) return;
|
|
1541
1602
|
this.frame = requestAnimationFrame(() => {
|
|
1542
|
-
this.frame =
|
|
1543
|
-
|
|
1603
|
+
this.frame = requestAnimationFrame(() => {
|
|
1604
|
+
this.frame = requestAnimationFrame(() => {
|
|
1605
|
+
this.frame = void 0;
|
|
1606
|
+
this.flush();
|
|
1607
|
+
});
|
|
1608
|
+
});
|
|
1544
1609
|
});
|
|
1545
1610
|
return;
|
|
1546
1611
|
}
|
|
1612
|
+
this.cancelFrame();
|
|
1547
1613
|
this.flush();
|
|
1548
1614
|
}
|
|
1615
|
+
cancelFrame() {
|
|
1616
|
+
if (this.frame !== void 0 && typeof cancelAnimationFrame === "function") cancelAnimationFrame(this.frame);
|
|
1617
|
+
this.frame = void 0;
|
|
1618
|
+
}
|
|
1549
1619
|
flush() {
|
|
1550
1620
|
if (this.assembler.flush()) this.snapshot.set(this.currentSnapshot());
|
|
1551
1621
|
}
|
|
@@ -13508,7 +13578,7 @@ window.__ModuleLoader__.load({
|
|
|
13508
13578
|
};
|
|
13509
13579
|
//#endregion
|
|
13510
13580
|
//#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-conversation/src/client/queue/QueueDock.module.css.mjs
|
|
13511
|
-
const css$7 = "._7yHdaG_dock{box-sizing:border-box;width:calc(100% - var(--dsh-composer-side-clearance) - var(--dsh-composer-side-clearance) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset));max-width:calc(var(--dsh-composer-card-max-width) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset));margin:0 auto calc(0px - var(--dsh-composer-stack-gap) - 3px);padding:0 var(--dsh-composer-dock-inset);flex:none}._7yHdaG_panel{background:var(--dsw-specific-tip);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border-radius:12px 12px 0 0;width:100%;padding:2px 0;position:relative;overflow:hidden}._7yHdaG_panel:after{border
|
|
13581
|
+
const css$7 = "._7yHdaG_dock{box-sizing:border-box;width:calc(100% - var(--dsh-composer-side-clearance) - var(--dsh-composer-side-clearance) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset));max-width:calc(var(--dsh-composer-card-max-width) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset));margin:0 auto calc(0px - var(--dsh-composer-stack-gap) - 3px);padding:0 var(--dsh-composer-dock-inset);flex:none}._7yHdaG_panel{background:var(--dsw-specific-tip);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border-radius:12px 12px 0 0;width:100%;padding:2px 0;position:relative;overflow:hidden}._7yHdaG_panel:after{border:.5px solid var(--dsw-alias-border-l1);border-radius:inherit;content:\"\";pointer-events:none;border-bottom:none;position:absolute;inset:0}._7yHdaG_header{box-sizing:border-box;width:100%;height:36px;color:var(--dsw-alias-label-primary);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:4px 12px;display:flex}._7yHdaG_header:focus-visible{outline:2px solid var(--dsw-alias-label-tertiary);outline-offset:-2px}._7yHdaG_header:disabled{cursor:default}._7yHdaG_lead{color:var(--dsw-alias-label-tertiary);flex:none;place-items:center;display:grid}._7yHdaG_count{min-width:0;font-family:Inter, var(--dsw-font-family);flex:auto;font-size:13px;font-weight:500;line-height:24px}._7yHdaG_chevron{width:14px;height:14px;color:var(--dsw-alias-label-tertiary);flex:none;place-items:center;display:grid}._7yHdaG_list{max-height:180px;margin:0;padding:0;list-style:none;overflow-y:auto}._7yHdaG_row{box-sizing:border-box;border-radius:8px;align-items:center;gap:10px;width:100%;height:36px;padding:4px 5px 4px 12px;display:flex}._7yHdaG_row+._7yHdaG_row{box-shadow:inset 0 1px 0 var(--dsw-alias-border-l1)}._7yHdaG_thumbs{flex:none;gap:4px;display:flex}._7yHdaG_thumb{border:.5px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);object-fit:cover;border-radius:4px;width:24px;height:24px}._7yHdaG_preview,._7yHdaG_editor{min-width:0;font:var(--dsw-font-xs-13);font-family:Inter, var(--dsw-font-family);flex:auto}._7yHdaG_preview{color:var(--dsw-alias-label-primary-dimmed);text-overflow:ellipsis;white-space:nowrap;word-break:break-word;overflow:hidden}._7yHdaG_editor{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l4);background:var(--dsw-alias-bg-base);height:28px;color:var(--dsw-alias-label-primary);border-radius:6px;outline:none;padding:0 8px}._7yHdaG_editor:focus{border-color:var(--dsw-alias-state-business-primary)}._7yHdaG_actions{flex:none;align-items:center;gap:10px;display:flex}._7yHdaG_action{corner-shape:round;width:28px;height:28px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:999px;flex:none;place-items:center;padding:0;display:grid}._7yHdaG_action:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}._7yHdaG_action:focus-visible{outline:2px solid var(--dsw-alias-label-tertiary);outline-offset:-2px}._7yHdaG_action:disabled{cursor:default;opacity:.45}";
|
|
13512
13582
|
const tagId$7 = "@deepseek-ai/dsh-client-ui-conversation/QueueDock.module.css";
|
|
13513
13583
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$7) + "]") === null) {
|
|
13514
13584
|
const tag = document.createElement("style");
|
|
@@ -13848,7 +13918,7 @@ window.__ModuleLoader__.load({
|
|
|
13848
13918
|
};
|
|
13849
13919
|
//#endregion
|
|
13850
13920
|
//#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-conversation/src/client/settings/EnterBehaviorRow.module.css.mjs
|
|
13851
|
-
const css$6 = ".T1PP_q_row{border-bottom
|
|
13921
|
+
const css$6 = ".T1PP_q_row{border-bottom:.5px solid var(--dsw-alias-border-l2);align-items:center;gap:8px;padding:16px 0;display:flex}.T1PP_q_rowText{flex-direction:column;flex:1;gap:4px;min-width:0;padding-right:48px;display:flex}.T1PP_q_title{color:var(--dsw-alias-label-primary);font-size:14px;font-weight:400;line-height:22px}.T1PP_q_desc{color:var(--dsw-alias-label-tertiary);font-size:12px;font-weight:400;line-height:18px}.T1PP_q_selector{background:var(--dsw-alias-bg-module-platform);height:36px;font:inherit;color:var(--dsw-alias-label-primary);cursor:pointer;border:none;border-radius:18px;align-items:center;gap:12px;padding:0 14px;font-size:14px;line-height:22px;display:inline-flex}.T1PP_q_selector:hover{background:var(--dsw-alias-interactive-bg-hover)}.T1PP_q_chevron{flex:none}";
|
|
13852
13922
|
const tagId$6 = "@deepseek-ai/dsh-client-ui-conversation/EnterBehaviorRow.module.css";
|
|
13853
13923
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$6) + "]") === null) {
|
|
13854
13924
|
const tag = document.createElement("style");
|
|
@@ -13955,7 +14025,7 @@ window.__ModuleLoader__.load({
|
|
|
13955
14025
|
}
|
|
13956
14026
|
//#endregion
|
|
13957
14027
|
//#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-conversation/src/client/skeleton/HeroShell.module.css.mjs
|
|
13958
|
-
const css$5 = ".pXSMma_root{justify-content:center;align-items:center;min-width:0;height:100%;padding:0 24px;display:flex}.pXSMma_stack{width:100%;max-width:var(--dsh-composer-card-max-width);flex-direction:column;align-items:stretch;gap:12px;display:flex;overflow:visible}.pXSMma_headline{color:var(--dsw-alias-label-primary);grid-template-columns:34px auto auto;justify-content:center;align-items:center;column-gap:10px;font-size:26px;font-weight:500;line-height:32px;display:grid}.pXSMma_headlineText{grid-area:1/2}.pXSMma_previewBadge{border
|
|
14028
|
+
const css$5 = ".pXSMma_root{justify-content:center;align-items:center;min-width:0;height:100%;padding:0 24px;display:flex}.pXSMma_stack{width:100%;max-width:var(--dsh-composer-card-max-width);flex-direction:column;align-items:stretch;gap:12px;display:flex;overflow:visible}.pXSMma_headline{color:var(--dsw-alias-label-primary);grid-template-columns:34px auto auto;justify-content:center;align-items:center;column-gap:10px;font-size:26px;font-weight:500;line-height:32px;display:grid}.pXSMma_headlineText{grid-area:1/2}.pXSMma_previewBadge{border:.5px solid var(--dsw-alias-interactive-bg-hover);background:var(--dsw-alias-state-business-tertiary);color:var(--dsw-alias-label-primary-bluish);font-family:var(--ds-font-family-code);white-space:nowrap;border-radius:24px;grid-area:1/3;align-self:start;margin-top:2px;margin-left:-3px;padding:1px 7px 0;font-size:12px;font-weight:500;line-height:18px}.pXSMma_fishHitbox{grid-area:1/1;justify-content:center;align-items:center;display:inline-flex}.pXSMma_fish{transform-origin:50% 60%;color:var(--dsw-alias-label-primary);display:block;overflow:visible}@keyframes pXSMma_hero-fish-swim{0%,to{transform:none}35%{transform:rotate(-4deg)translate(-.4px,-.9px)}70%{transform:rotate(1.6deg)translate(.3px,.2px)}}@media (hover:hover) and (prefers-reduced-motion:no-preference){.pXSMma_fishHitbox:hover .pXSMma_fish{animation:1.6s ease-in-out infinite pXSMma_hero-fish-swim}}.pXSMma_body{flex-direction:column;gap:12px;min-width:0;display:flex;position:relative;overflow:visible}.pXSMma_body>*{z-index:1;position:relative}.pXSMma_body>.pXSMma_workspaceRow{z-index:10;align-items:center;min-width:0;padding-left:8px;display:flex}.pXSMma_workspace{max-width:min(100%,360px);min-height:28px;color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border:none;border-radius:16px;align-items:center;gap:4px;padding:0 8px;font-size:13px;font-weight:500;line-height:20px;display:inline-flex}.pXSMma_workspace:not(:disabled):hover,.pXSMma_workspace[aria-expanded=true]{background:var(--dsw-alias-interactive-bg-hover)}.pXSMma_workspace:disabled{cursor:default}.pXSMma_folder{color:var(--dsw-alias-label-primary);flex:none}.pXSMma_workspaceLabel{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pXSMma_chevron{color:var(--dsw-alias-label-caption);flex:none}.pXSMma_modalInput{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l4);width:100%;height:44px;color:var(--dsw-alias-label-primary);background:0 0;border-radius:22px;outline:none;padding:7px 14px;font-size:14px;font-weight:400;line-height:22px}.pXSMma_modalInput::placeholder{color:var(--dsw-alias-label-caption)}.pXSMma_modalInput:disabled{color:var(--dsw-alias-label-dimmed)}.pXSMma_modalAction{min-width:72px}.pXSMma_modalError{color:var(--dsw-alias-state-error-primary);margin-top:8px;font-size:12px;line-height:18px}";
|
|
13959
14029
|
const tagId$5 = "@deepseek-ai/dsh-client-ui-conversation/HeroShell.module.css";
|
|
13960
14030
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$5) + "]") === null) {
|
|
13961
14031
|
const tag = document.createElement("style");
|
|
@@ -14112,7 +14182,7 @@ window.__ModuleLoader__.load({
|
|
|
14112
14182
|
}
|
|
14113
14183
|
//#endregion
|
|
14114
14184
|
//#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-conversation/src/client/skeleton/ConversationRoot.module.css.mjs
|
|
14115
|
-
const css$4 = ".wSkVaW_root{background:var(--dsw-alias-bg-base);--dsh-chat-content-width:var(--dsh-chat-user-width,clamp(680px, calc(var(--dsh-conversation-column-width,0px) * .64), 920px));--dsh-composer-card-max-width:calc(var(--dsh-chat-content-width) + 32px);--dsh-composer-side-clearance:16px;--dsh-composer-dock-inset:8px;flex-direction:column;min-width:0;height:100%;display:flex;position:relative}.wSkVaW_header{border-bottom:1px solid #0000;flex:none;padding:12px 28px 0 20px;position:relative}.wSkVaW_header:after{content:\"\";z-index:0;background:var(--dsw-alias-border-
|
|
14185
|
+
const css$4 = ".wSkVaW_root{background:var(--dsw-alias-bg-base);--dsh-chat-content-width:var(--dsh-chat-user-width,clamp(680px, calc(var(--dsh-conversation-column-width,0px) * .64), 920px));--dsh-composer-card-max-width:calc(var(--dsh-chat-content-width) + 32px);--dsh-composer-side-clearance:16px;--dsh-composer-dock-inset:8px;flex-direction:column;min-width:0;height:100%;display:flex;position:relative}.wSkVaW_header{border-bottom:1px solid #0000;flex:none;padding:12px 28px 0 20px;position:relative}.wSkVaW_header:after{content:\"\";z-index:0;background:var(--dsw-alias-border-l3);pointer-events:none;height:.5px;position:absolute;bottom:1px;left:0;right:0}.wSkVaW_headerHidden{display:none}.wSkVaW_titleRow{align-items:center;gap:0;min-height:32px;display:flex}.wSkVaW_titleCluster{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.wSkVaW_crumbs{white-space:nowrap;align-items:center;gap:4px;min-width:0;display:flex;overflow:hidden}.wSkVaW_crumbSeg{align-items:center;gap:4px;min-width:0;display:inline-flex}.wSkVaW_crumbSep{color:var(--dsw-alias-label-caption);font-size:14px;line-height:20px}.wSkVaW_crumb{max-width:220px;color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:0 0;border:none;border-radius:12px;padding:4px 8px;font-size:14px;line-height:20px;overflow:hidden}.wSkVaW_crumbSubagent{font-size:12px;line-height:18px}.wSkVaW_crumb:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.wSkVaW_crumbCurrent{color:var(--dsw-alias-label-primary);cursor:default;font-weight:500}.wSkVaW_headerActions{flex:none;align-items:center;gap:8px;display:flex}.wSkVaW_headerUtilities{flex:none;align-items:center;gap:8px;margin-left:20px;display:flex}.wSkVaW_headerUtilities:empty{display:none}.wSkVaW_tabs{z-index:1;gap:36px;margin-top:4px;padding-left:8px;display:flex;position:relative}.wSkVaW_tab{color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;padding:0 0 11px;font-size:13px;font-weight:500;line-height:16px;position:relative}.wSkVaW_tab:after{content:\"\";background:0 0;border-radius:2px;height:2px;position:absolute;bottom:1px;left:0;right:0}.wSkVaW_tabActive{color:var(--dsw-alias-state-business-primary)}.wSkVaW_tabActive:after{background:var(--dsw-alias-state-business-primary)}.wSkVaW_viewArea{flex-direction:column;flex:1;min-height:0;display:flex}.wSkVaW_widthHandle{z-index:8;width:min(40px, calc((100% - var(--dsh-chat-content-width)) / 2 - 24px - 24px));cursor:col-resize;position:absolute;top:0;bottom:0}.wSkVaW_widthHandle[data-side=left]{right:calc(50% + var(--dsh-chat-content-width) / 2 + 24px)}.wSkVaW_widthHandle[data-side=right]{left:calc(50% + var(--dsh-chat-content-width) / 2 + 24px)}.wSkVaW_widthHandle:after{content:\"\";background:linear-gradient(to bottom, transparent calc(var(--dsh-width-handle-pointer-y,50%) - 52px), var(--dsw-alias-scrollbar-hover-l1) calc(var(--dsh-width-handle-pointer-y,50%) - 12px), var(--dsw-alias-scrollbar-hover-l1) calc(var(--dsh-width-handle-pointer-y,50%) + 12px), transparent calc(var(--dsh-width-handle-pointer-y,50%) + 52px));opacity:0;pointer-events:none;border-radius:3px;width:3px;position:absolute;top:0;bottom:0}.wSkVaW_widthHandle[data-side=left]:after{right:16px}.wSkVaW_widthHandle[data-side=right]:after{left:16px}.wSkVaW_widthHandle:hover:after,.wSkVaW_widthHandle[data-dragging]:after{opacity:1}.wSkVaW_root:has([data-conversation-composer-overlay]) .wSkVaW_widthHandle{display:none}.wSkVaW_composerStack{--dsh-composer-stack-gap:6px;gap:var(--dsh-composer-stack-gap);flex-direction:column;display:flex}.wSkVaW_composerSeat{--dsh-composer-text-max-height:336px;flex-direction:column;flex:none;display:flex}.wSkVaW_root[data-phase=active]{overflow:hidden}.wSkVaW_root[data-phase=active] .wSkVaW_header{flex:none}.wSkVaW_body{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.wSkVaW_scrollBody{scrollbar-gutter:stable;flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.wSkVaW_root[data-phase=active] .wSkVaW_viewArea{flex:1 0 auto;min-height:auto}.wSkVaW_root[data-phase=active] .wSkVaW_composerSeat{z-index:7;background:linear-gradient(180deg, color-mix(in srgb, var(--dsw-alias-bg-base) 0%, transparent) 0px, var(--dsw-alias-bg-base) 36px);position:sticky;bottom:0}.wSkVaW_root[data-phase=active] .wSkVaW_composerSeat:has([data-trigger-menu]){z-index:9}.wSkVaW_scrollBody:has([data-conversation-composer-overlay]){scrollbar-gutter:auto;position:relative;overflow:hidden auto}.wSkVaW_scrollBody:has([data-conversation-composer-overlay])>[data-slot=conversation\\.session]>.wSkVaW_viewArea{flex:1 1 0;min-height:0;overflow:hidden}.wSkVaW_scrollBody:has([data-conversation-composer-overlay])>.wSkVaW_composerSeat{right:var(--dsh-scrollbar-width);position:absolute;bottom:0;left:0}.wSkVaW_composerHero{width:min(calc(var(--dsh-composer-card-max-width) + 2 * var(--dsh-composer-side-clearance)), 100%);z-index:1;align-self:center;gap:8px;padding-bottom:32px}.wSkVaW_heroWorkspaceRow{align-items:center;gap:2px;min-width:0;margin-top:4px;padding-left:20px;display:flex}.wSkVaW_root[data-phase=hero] .wSkVaW_scrollBody{justify-content:center;overflow-y:auto}.wSkVaW_root[data-phase=settling] .wSkVaW_composerSeat{visibility:hidden}";
|
|
14116
14186
|
const tagId$4 = "@deepseek-ai/dsh-client-ui-conversation/ConversationRoot.module.css";
|
|
14117
14187
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$4) + "]") === null) {
|
|
14118
14188
|
const tag = document.createElement("style");
|
|
@@ -14376,11 +14446,7 @@ window.__ModuleLoader__.load({
|
|
|
14376
14446
|
} : !inert && composerBlock !== void 0 ? {
|
|
14377
14447
|
blocked: composerBlock,
|
|
14378
14448
|
placeholder: composerBlock.reason
|
|
14379
|
-
} : hero ? { placeholder: t("placeholder.hero") } : {}
|
|
14380
|
-
overlay: sessionId === void 0 ? void 0 : renderSlot("conversation.input.overlay", {}),
|
|
14381
|
-
leftItems: zone === void 0 ? null : renderSlot("conversation.input.left", zone),
|
|
14382
|
-
rightItems: zone === void 0 ? null : renderSlot("conversation.input.right", zone),
|
|
14383
|
-
footer: !hero && zone !== void 0 ? renderSlot("conversation.composer.dock", zone) : null
|
|
14449
|
+
} : hero ? { placeholder: t("placeholder.hero") } : {}
|
|
14384
14450
|
});
|
|
14385
14451
|
const composerBar = (0, react_jsx_runtime.jsxs)("div", {
|
|
14386
14452
|
className: clsx(ConversationRoot_module_css_default.composerStack, hero && ConversationRoot_module_css_default.composerHero),
|
|
@@ -14783,7 +14849,7 @@ window.__ModuleLoader__.load({
|
|
|
14783
14849
|
}
|
|
14784
14850
|
//#endregion
|
|
14785
14851
|
//#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-conversation/src/client/skeleton/ContextMeter.module.css.mjs
|
|
14786
|
-
const css$3 = ".JObwrW_root{display:inline-flex;position:relative}.JObwrW_trigger{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:999px;flex:none;place-items:center;display:grid}.JObwrW_trigger:hover{background:var(--dsw-alias-interactive-bg-hover)}.JObwrW_track{fill:none;stroke:var(--dsw-alias-border-l3);stroke-width:2px}.JObwrW_fill{fill:none;stroke:var(--dsw-alias-label-tertiary);stroke-width:2px;stroke-linecap:round}.JObwrW_panel{z-index:100;box-sizing:border-box;
|
|
14852
|
+
const css$3 = ".JObwrW_root{display:inline-flex;position:relative}.JObwrW_trigger{corner-shape:round;width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:999px;flex:none;place-items:center;display:grid}.JObwrW_trigger:hover{background:var(--dsw-alias-interactive-bg-hover)}.JObwrW_track{fill:none;stroke:var(--dsw-alias-border-l3);stroke-width:2px}.JObwrW_fill{fill:none;stroke:var(--dsw-alias-label-tertiary);stroke-width:2px;stroke-linecap:round}.JObwrW_panel{z-index:100;box-sizing:border-box;background:var(--dsw-specific-menu);--dsw-elevation-stroke-color:var(--dsw-alias-border-l1);width:264px;box-shadow:var(--dsw-elevation-prominent);color:var(--dsw-alias-label-secondary);cursor:default;border:0;border-radius:12px;padding:12px;font-size:12px;line-height:20px;position:absolute;bottom:calc(100% + 8px);right:0}.JObwrW_header{align-items:center;gap:6px;display:flex}.JObwrW_figures{font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-primary);margin-left:auto;font-weight:500}.JObwrW_percent{color:var(--dsw-alias-label-primary);font-weight:500}.JObwrW_headline{color:var(--dsw-alias-label-tertiary)}.JObwrW_headline:empty{display:none}.JObwrW_bar{corner-shape:round;background:var(--dsw-alias-interactive-bg-hover);border-radius:999px;gap:1px;height:4px;margin:10px 0 12px;display:flex;overflow:hidden}.JObwrW_segment{background:var(--meter-tint,var(--dsw-alias-label-tertiary));border-radius:1px;flex:none;min-width:2px;height:100%}.JObwrW_swatch{background:var(--meter-tint);vertical-align:baseline;border-radius:2px;width:8px;height:8px;margin-right:6px;display:inline-block}.JObwrW_colorSystem{--meter-tint:var(--dsw-static-neutral-bluish-400)}.JObwrW_colorTools{--meter-tint:#a78bfa}.JObwrW_colorMessages{--meter-tint:var(--dsw-static-blue-450)}.JObwrW_rows{margin:6px 0 0}.JObwrW_row{justify-content:space-between;align-items:center;gap:12px;padding:2px 0;display:flex}.JObwrW_row dt{color:var(--dsw-alias-label-secondary)}.JObwrW_row dd{font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-primary);margin:0}";
|
|
14787
14853
|
const tagId$3 = "@deepseek-ai/dsh-client-ui-conversation/ContextMeter.module.css";
|
|
14788
14854
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) {
|
|
14789
14855
|
const tag = document.createElement("style");
|
|
@@ -15201,7 +15267,7 @@ window.__ModuleLoader__.load({
|
|
|
15201
15267
|
}
|
|
15202
15268
|
//#endregion
|
|
15203
15269
|
//#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-conversation/src/client/skeleton/InputBar.module.css.mjs
|
|
15204
|
-
const css$1 = ".uV2eYG_root{padding:0 var(--dsh-composer-side-clearance) 8px;flex-direction:column;align-items:center;display:flex}.uV2eYG_hero{padding:0 var(--dsh-composer-side-clearance)}.uV2eYG_notice{width:100%;max-width:var(--dsh-composer-card-max-width);background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary);border-radius:8px;margin-bottom:6px;padding:4px 8px;font-size:12px;line-height:18px}.uV2eYG_card{box-sizing:border-box;width:100%;max-width:var(--dsh-composer-card-max-width)
|
|
15270
|
+
const css$1 = ".uV2eYG_root{padding:0 var(--dsh-composer-side-clearance) 8px;flex-direction:column;align-items:center;display:flex}.uV2eYG_hero{padding:0 var(--dsh-composer-side-clearance)}.uV2eYG_notice{width:100%;max-width:var(--dsh-composer-card-max-width);background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary);border-radius:8px;margin-bottom:6px;padding:4px 8px;font-size:12px;line-height:18px}.uV2eYG_card{box-sizing:border-box;width:100%;max-width:var(--dsh-composer-card-max-width);--dsw-elevation-stroke-color:var(--dsw-alias-border-l2);background:var(--dsw-specific-input-major);box-shadow:var(--dsw-elevation-soft);font-size:var(--dsh-content-font-size,14px);line-height:calc(24px + var(--dsh-content-font-delta,0px));--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border:0;border-radius:22px;flex-direction:column;gap:12px;padding-top:10px;display:flex;position:relative}.uV2eYG_cardWorkspaceTrigger{--dsw-elevation-stroke-color:transparent;cursor:pointer}.uV2eYG_cardWorkspaceTrigger:after{content:\"\";background:var(--dsw-alias-border-l4);pointer-events:none;border-radius:22px;transition:background-color .1s;position:absolute;inset:-1px;-webkit-mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='100%25' height='100%25' fill='none' rx='22' ry='22' stroke='black' stroke-width='2' stroke-dasharray='4 4'/%3E%3C/svg%3E\");mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='100%25' height='100%25' fill='none' rx='22' ry='22' stroke='black' stroke-width='2' stroke-dasharray='4 4'/%3E%3C/svg%3E\")}.uV2eYG_cardWorkspaceTrigger :disabled{pointer-events:none}.uV2eYG_cardWorkspaceTrigger:hover:after{background:var(--dsw-alias-state-business-primary)}.uV2eYG_accessory{align-items:center;gap:8px;padding:10px 12px 0;display:flex}.uV2eYG_overlayAnchor{height:0;position:absolute;inset:0 0 auto}.uV2eYG_scroll{max-height:var(--dsh-composer-text-max-height);margin-right:4px;overflow-y:auto}.uV2eYG_scroll::-webkit-scrollbar-track{margin-top:8px}.uV2eYG_grow{position:relative}.uV2eYG_pending{corner-shape:round;background:var(--dsw-alias-state-business-primary);border-radius:50%;width:8px;height:8px;animation:1s ease-in-out infinite alternate uV2eYG_input-pending}@keyframes uV2eYG_input-pending{0%{opacity:.35}to{opacity:1}}.uV2eYG_input{box-sizing:border-box;font-family:var(--dsw-font-family);font-size:inherit;line-height:inherit;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;color:var(--dsw-alias-label-primary);caret-color:var(--dsw-alias-state-business-primary);outline:none;padding:4px 8px 0 16px}.uV2eYG_input p{margin:0}.uV2eYG_input p:last-child:after{content:var(--dsh-composer-hint);color:var(--dsw-alias-label-caption)}.uV2eYG_placeholder{color:var(--dsw-alias-label-caption);pointer-events:none;user-select:none;position:absolute;inset:4px 8px auto 16px}.uV2eYG_inputDisabled{color:var(--dsw-alias-label-tertiary);cursor:not-allowed}.uV2eYG_input[aria-haspopup=menu]{cursor:pointer}.uV2eYG_hero .uV2eYG_input{min-height:52px}.uV2eYG_row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:2px 8px 6px;display:flex;container-type:inline-size}.uV2eYG_tools,.uV2eYG_modes,.uV2eYG_trailing{align-items:center;min-width:0;display:flex}.uV2eYG_tools{gap:16px}.uV2eYG_modes{gap:12px}.uV2eYG_trailing{flex:none;gap:12px;margin-left:auto}.uV2eYG_add{corner-shape:round;background:var(--dsw-specific-selector);width:28px;height:28px;color:var(--dsw-alias-label-primary);cursor:pointer;border:none;border-radius:999px;flex:none;place-items:center;display:grid}.uV2eYG_add:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-solid)}.uV2eYG_add:disabled{opacity:.5;cursor:default}.uV2eYG_select{max-width:220px;height:28px;color:var(--dsw-alias-label-secondary);white-space:nowrap;cursor:pointer;appearance:none;background-color:#0000;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%2381858C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");background-position:right 4px center;background-repeat:no-repeat;background-size:12px 12px;border:none;border-radius:8px;outline:none;padding:0 20px 0 8px;font-size:13px;font-weight:500;line-height:20px}.uV2eYG_select:hover:not(:disabled){background-color:var(--dsw-alias-interactive-bg-hover)}.uV2eYG_select:disabled{opacity:.5;cursor:default}.uV2eYG_primary{corner-shape:round;background:var(--dsw-alias-button-info-fill);color:#fff;cursor:pointer;border:none;border-radius:999px;flex:none;place-items:center;width:34px;height:34px;transition:background-color .1s;display:grid;transform:translateY(-2px)}.uV2eYG_primary:hover:not(:disabled){background:var(--dsw-alias-button-info-hover)}.uV2eYG_primary:disabled{opacity:.4;cursor:default}.uV2eYG_retry{color:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:4px;margin-left:8px;padding:1px 8px;font-size:12px}";
|
|
15205
15271
|
const tagId$1 = "@deepseek-ai/dsh-client-ui-conversation/InputBar.module.css";
|
|
15206
15272
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) {
|
|
15207
15273
|
const tag = document.createElement("style");
|
|
@@ -15240,8 +15306,8 @@ window.__ModuleLoader__.load({
|
|
|
15240
15306
|
* Machine state arrives through the standard provide channel
|
|
15241
15307
|
* (useInput + inputActions); the keyboard/DOM command face and stop arrive
|
|
15242
15308
|
* through this entry's own inject, whose hooks compartment binds
|
|
15243
|
-
* useNotices/useLexicon; layout-phase inputs (variant
|
|
15244
|
-
*
|
|
15309
|
+
* useNotices/useLexicon; layout-phase inputs (variant and placeholder) ride
|
|
15310
|
+
* the owner props. Session facts
|
|
15245
15311
|
* (running/removed/promptError) are self-selected via useSession.
|
|
15246
15312
|
*
|
|
15247
15313
|
* The text surface is the shell-owned Lexical editor bound here through
|
|
@@ -15250,7 +15316,7 @@ window.__ModuleLoader__.load({
|
|
|
15250
15316
|
* The no-session state renders the SAME div inert as the Workspace-picker
|
|
15251
15317
|
* trigger instead of a parallel tree.
|
|
15252
15318
|
*/
|
|
15253
|
-
function InputBar({ useSession, useInput, inputActions, keyboard, addImages, removeImage, draftImages, resolveSubmitMode, toggleCommandMenu, stop, command, t, renderSlot, useNotices, useLexicon, useMenuLauncher, useProjection, sessionId, variant, disabled: inert = false, blocked, workspacePickerOpen = false, onRequestWorkspace, placeholder, accessory
|
|
15319
|
+
const InputBar = (0, react.memo)(function InputBar({ useSession, useInput, inputActions, keyboard, addImages, removeImage, draftImages, resolveSubmitMode, toggleCommandMenu, stop, command, t, renderSlot, useNotices, useLexicon, useMenuLauncher, useProjection, sessionId, variant, disabled: inert = false, blocked, workspacePickerOpen = false, onRequestWorkspace, placeholder, accessory }) {
|
|
15254
15320
|
const input = useInput((s) => s);
|
|
15255
15321
|
const notice = useNotices((s) => s);
|
|
15256
15322
|
const commandMenuOpen = useMenuLauncher((source) => source === "command");
|
|
@@ -15492,9 +15558,9 @@ window.__ModuleLoader__.load({
|
|
|
15492
15558
|
e.stopPropagation();
|
|
15493
15559
|
} : void 0,
|
|
15494
15560
|
children: [
|
|
15495
|
-
|
|
15561
|
+
sessionId !== void 0 && (0, react_jsx_runtime.jsx)("div", {
|
|
15496
15562
|
className: InputBar_module_css_default.overlayAnchor,
|
|
15497
|
-
children: overlay
|
|
15563
|
+
children: renderSlot("conversation.input.overlay", {})
|
|
15498
15564
|
}),
|
|
15499
15565
|
accessory !== void 0 && (0, react_jsx_runtime.jsx)("div", {
|
|
15500
15566
|
className: InputBar_module_css_default.accessory,
|
|
@@ -15568,12 +15634,12 @@ window.__ModuleLoader__.load({
|
|
|
15568
15634
|
className: InputBar_module_css_default.modes,
|
|
15569
15635
|
children: [accessSelect, sessionId === void 0 ? null : renderSlot("conversation.input.plan", { locked })]
|
|
15570
15636
|
}),
|
|
15571
|
-
|
|
15637
|
+
input === void 0 || sessionId === void 0 ? null : renderSlot("conversation.input.left", {})
|
|
15572
15638
|
]
|
|
15573
15639
|
}), (0, react_jsx_runtime.jsxs)("div", {
|
|
15574
15640
|
className: InputBar_module_css_default.trailing,
|
|
15575
15641
|
children: [
|
|
15576
|
-
|
|
15642
|
+
input === void 0 || sessionId === void 0 ? null : renderSlot("conversation.input.right", {}),
|
|
15577
15643
|
sessionId === void 0 ? null : renderSlot("conversation.input.model", { locked: modelSeatLocked }),
|
|
15578
15644
|
(0, react_jsx_runtime.jsx)(ContextMeter, {
|
|
15579
15645
|
useProjection,
|
|
@@ -15647,13 +15713,13 @@ window.__ModuleLoader__.load({
|
|
|
15647
15713
|
})
|
|
15648
15714
|
]
|
|
15649
15715
|
}),
|
|
15650
|
-
|
|
15716
|
+
variant === "composer" && input !== void 0 && sessionId !== void 0 ? renderSlot("conversation.composer.dock", {}) : null
|
|
15651
15717
|
]
|
|
15652
15718
|
});
|
|
15653
|
-
}
|
|
15719
|
+
});
|
|
15654
15720
|
//#endregion
|
|
15655
15721
|
//#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-conversation/src/client/skeleton/TodoPanel.module.css.mjs
|
|
15656
|
-
const css = ".lXshSW_root{box-sizing:border-box;width:calc(100% - var(--dsh-composer-side-clearance) - var(--dsh-composer-side-clearance) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset));max-width:calc(var(--dsh-composer-card-max-width) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset));border
|
|
15722
|
+
const css = ".lXshSW_root{box-sizing:border-box;width:calc(100% - var(--dsh-composer-side-clearance) - var(--dsh-composer-side-clearance) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset));max-width:calc(var(--dsh-composer-card-max-width) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset));border:.5px solid var(--dsw-alias-border-l1);background:var(--dsw-specific-tip);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border-radius:12px;flex:none;margin:0 auto;overflow:hidden}.lXshSW_body{flex-direction:column;gap:8px;padding:6px 12px;display:flex}.lXshSW_header{text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:0;display:flex}.lXshSW_lead{color:var(--dsw-alias-label-tertiary);flex:none;place-items:center;display:grid}.lXshSW_title{color:var(--dsw-alias-label-primary);flex:none;font-size:13px;font-weight:500;line-height:24px}.lXshSW_progress{min-width:0;color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:13px;font-weight:400;line-height:20px;overflow:hidden}.lXshSW_chevron{color:var(--dsw-alias-label-tertiary);flex:none;place-items:center;display:grid}.lXshSW_list{flex-direction:column;gap:8px;max-height:180px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.lXshSW_item{min-width:0;color:var(--dsw-alias-label-secondary);align-items:center;gap:10px;font-size:13px;line-height:20px;display:flex}.lXshSW_glyph{flex:none;place-items:center;width:16px;height:16px;display:grid}.lXshSW_glyphCompleted{color:var(--dsw-alias-state-success-primary)}.lXshSW_glyphPending{color:var(--dsw-alias-label-caption)}.lXshSW_glyphProgress{color:var(--dsw-alias-state-business-primary);animation:1s linear infinite lXshSW_todo-progress-spin}@keyframes lXshSW_todo-progress-spin{to{transform:rotate(360deg)}}.lXshSW_content{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}";
|
|
15657
15723
|
const tagId = "@deepseek-ai/dsh-client-ui-conversation/TodoPanel.module.css";
|
|
15658
15724
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
|
|
15659
15725
|
const tag = document.createElement("style");
|
|
@@ -16008,26 +16074,10 @@ window.__ModuleLoader__.load({
|
|
|
16008
16074
|
kind: "single",
|
|
16009
16075
|
scope: "session-maybe"
|
|
16010
16076
|
},
|
|
16011
|
-
"conversation.input.overlay": {
|
|
16012
|
-
kind: "list",
|
|
16013
|
-
scope: "session"
|
|
16014
|
-
},
|
|
16015
16077
|
"conversation.input.dock": {
|
|
16016
16078
|
kind: "list",
|
|
16017
16079
|
scope: "session"
|
|
16018
16080
|
},
|
|
16019
|
-
"conversation.composer.dock": {
|
|
16020
|
-
kind: "list",
|
|
16021
|
-
scope: "session"
|
|
16022
|
-
},
|
|
16023
|
-
"conversation.input.left": {
|
|
16024
|
-
kind: "list",
|
|
16025
|
-
scope: "session"
|
|
16026
|
-
},
|
|
16027
|
-
"conversation.input.right": {
|
|
16028
|
-
kind: "list",
|
|
16029
|
-
scope: "session"
|
|
16030
|
-
},
|
|
16031
16081
|
"conversation.hero.brand.mark": {
|
|
16032
16082
|
kind: "single",
|
|
16033
16083
|
scope: "root"
|
|
@@ -16115,13 +16165,29 @@ window.__ModuleLoader__.load({
|
|
|
16115
16165
|
kind: "single",
|
|
16116
16166
|
scope: "session-maybe"
|
|
16117
16167
|
},
|
|
16168
|
+
"conversation.input.overlay": {
|
|
16169
|
+
kind: "list",
|
|
16170
|
+
scope: "session"
|
|
16171
|
+
},
|
|
16172
|
+
"conversation.input.left": {
|
|
16173
|
+
kind: "list",
|
|
16174
|
+
scope: "session"
|
|
16175
|
+
},
|
|
16118
16176
|
"conversation.input.plan": {
|
|
16119
16177
|
kind: "single",
|
|
16120
16178
|
scope: "session"
|
|
16121
16179
|
},
|
|
16180
|
+
"conversation.input.right": {
|
|
16181
|
+
kind: "list",
|
|
16182
|
+
scope: "session"
|
|
16183
|
+
},
|
|
16122
16184
|
"conversation.input.model": {
|
|
16123
16185
|
kind: "single",
|
|
16124
16186
|
scope: "session"
|
|
16187
|
+
},
|
|
16188
|
+
"conversation.composer.dock": {
|
|
16189
|
+
kind: "list",
|
|
16190
|
+
scope: "session"
|
|
16125
16191
|
}
|
|
16126
16192
|
},
|
|
16127
16193
|
inject: (sessionId) => {
|
|
@@ -11,6 +11,13 @@ export interface ConversationTurnDataMap {
|
|
|
11
11
|
/** Merge-extensible business values published against one Step. */
|
|
12
12
|
export interface ConversationStepDataMap {
|
|
13
13
|
}
|
|
14
|
+
/** Observable value for one independently owned Location-data key. */
|
|
15
|
+
export interface ConversationLocationDataSource<Value> {
|
|
16
|
+
/** @returns the current value. */
|
|
17
|
+
readonly getSnapshot: () => Value;
|
|
18
|
+
/** @param listener - callback for value changes. @returns the unsubscribe function. */
|
|
19
|
+
readonly subscribe: (listener: () => void) => () => void;
|
|
20
|
+
}
|
|
14
21
|
/** Stable keyed reader for independently owned Location business values. */
|
|
15
22
|
export interface ConversationLocationDataStore<DataMap extends object> {
|
|
16
23
|
/**
|
|
@@ -19,6 +26,12 @@ export interface ConversationLocationDataStore<DataMap extends object> {
|
|
|
19
26
|
* @returns latest immutable value, when its owning Context has published one.
|
|
20
27
|
*/
|
|
21
28
|
get<Key extends keyof DataMap & string>(key: Key): Readonly<DataMap[Key]> | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Observe one business value without subscribing to unrelated Location keys.
|
|
31
|
+
* @param key - declaration-merged business key.
|
|
32
|
+
* @returns identity-stable source for the current value.
|
|
33
|
+
*/
|
|
34
|
+
source<Key extends keyof DataMap & string>(key: Key): ConversationLocationDataSource<Readonly<DataMap[Key]> | undefined>;
|
|
22
35
|
}
|
|
23
36
|
interface ConversationLocationDataValue {
|
|
24
37
|
readonly kind: 'turn' | 'step';
|
|
@@ -27,27 +40,28 @@ interface ConversationLocationDataValue {
|
|
|
27
40
|
readonly key: string;
|
|
28
41
|
readonly value: unknown;
|
|
29
42
|
}
|
|
30
|
-
type RegisteredTurnData = {
|
|
31
|
-
[Key in keyof
|
|
43
|
+
type RegisteredTurnData<DataMap extends object> = {
|
|
44
|
+
[Key in Extract<keyof DataMap, string>]: {
|
|
32
45
|
readonly kind: 'turn';
|
|
33
46
|
readonly turn: number;
|
|
34
47
|
readonly key: Key;
|
|
35
|
-
readonly value:
|
|
48
|
+
readonly value: DataMap[Key];
|
|
36
49
|
};
|
|
37
|
-
}[keyof
|
|
38
|
-
type RegisteredStepData = {
|
|
39
|
-
[Key in keyof
|
|
50
|
+
}[Extract<keyof DataMap, string>];
|
|
51
|
+
type RegisteredStepData<DataMap extends object> = {
|
|
52
|
+
[Key in Extract<keyof DataMap, string>]: {
|
|
40
53
|
readonly kind: 'step';
|
|
41
54
|
readonly turn: number;
|
|
42
55
|
readonly step: number;
|
|
43
56
|
readonly key: Key;
|
|
44
|
-
readonly value:
|
|
57
|
+
readonly value: DataMap[Key];
|
|
45
58
|
};
|
|
46
|
-
}[keyof
|
|
59
|
+
}[Extract<keyof DataMap, string>];
|
|
60
|
+
type ConversationLocationDataOf<TurnData extends object, StepData extends object> = [
|
|
61
|
+
keyof TurnData | keyof StepData
|
|
62
|
+
] extends [never] ? ConversationLocationDataValue : RegisteredTurnData<TurnData> | RegisteredStepData<StepData>;
|
|
47
63
|
/** One Definition-owned value attached to an Engine-owned Turn or Step. */
|
|
48
|
-
export type ConversationLocationData =
|
|
49
|
-
keyof ConversationTurnDataMap | keyof ConversationStepDataMap
|
|
50
|
-
] extends [never] ? ConversationLocationDataValue : RegisteredTurnData | RegisteredStepData;
|
|
64
|
+
export type ConversationLocationData = ConversationLocationDataOf<ConversationTurnDataMap, ConversationStepDataMap>;
|
|
51
65
|
/** Immutable resolved boundary for one Agent step. */
|
|
52
66
|
export interface StepLocation {
|
|
53
67
|
readonly turn: number;
|
|
@@ -135,7 +149,7 @@ export interface ConversationContextReader {
|
|
|
135
149
|
*/
|
|
136
150
|
previous<State>(kind: string): ConversationPreviousContext<State> | undefined;
|
|
137
151
|
}
|
|
138
|
-
/** Requested cadence
|
|
152
|
+
/** Requested cadence; `animation-frame` materializes after three browser animation frames. */
|
|
139
153
|
export type ConversationPublication = 'none' | 'animation-frame' | 'immediate';
|
|
140
154
|
/** Engine-owned Location data publication phase. */
|
|
141
155
|
export type ConversationLocationDataScope = 'step' | 'turn';
|
|
@@ -180,9 +194,11 @@ export interface ConversationNodeDefinition<State = unknown> {
|
|
|
180
194
|
* the same Location key.
|
|
181
195
|
* @param context - latest complete Context.
|
|
182
196
|
* @param scope - Location hierarchy level currently being materialized.
|
|
183
|
-
* @
|
|
197
|
+
* @param previous - value from the preceding materialization; return it when unchanged.
|
|
198
|
+
* @returns current Location value, preserving value identity while unchanged,
|
|
199
|
+
* or null while unavailable.
|
|
184
200
|
*/
|
|
185
|
-
buildLocationData?(context: ConversationNodeContext<State>, scope: ConversationLocationDataScope): ConversationLocationData | null;
|
|
201
|
+
buildLocationData?(context: ConversationNodeContext<State>, scope: ConversationLocationDataScope, previous: ConversationLocationData | null): ConversationLocationData | null;
|
|
186
202
|
/**
|
|
187
203
|
* Materialize one final Node for this Definition's declared view target.
|
|
188
204
|
* @param context - latest complete Context.
|
|
@@ -152,19 +152,16 @@ declare module '@deepseek-ai/dsh-client-ui-slots' {
|
|
|
152
152
|
'conversation.composer.dock': {
|
|
153
153
|
kind: 'list';
|
|
154
154
|
scope: 'session';
|
|
155
|
-
owner: InputZone;
|
|
156
155
|
};
|
|
157
156
|
/** Compact controls at the left of the composer tool row. */
|
|
158
157
|
'conversation.input.left': {
|
|
159
158
|
kind: 'list';
|
|
160
159
|
scope: 'session';
|
|
161
|
-
owner: InputZone;
|
|
162
160
|
};
|
|
163
161
|
/** Compact controls before the composer submit action. */
|
|
164
162
|
'conversation.input.right': {
|
|
165
163
|
kind: 'list';
|
|
166
164
|
scope: 'session';
|
|
167
|
-
owner: InputZone;
|
|
168
165
|
};
|
|
169
166
|
/** Resident composer body, including the no-Session inert state. */
|
|
170
167
|
'conversation.composer.bar': {
|
|
@@ -295,14 +292,6 @@ export interface ComposerBarOwnerProps {
|
|
|
295
292
|
placeholder?: string;
|
|
296
293
|
/** Optional content rendered above the composer surface. */
|
|
297
294
|
accessory?: ReactNode;
|
|
298
|
-
/** Floating overlay content rendered inside the composer card. */
|
|
299
|
-
overlay?: ReactNode;
|
|
300
|
-
/** Left-side input controls. */
|
|
301
|
-
leftItems?: ReactNode;
|
|
302
|
-
/** Right-side input controls. */
|
|
303
|
-
rightItems?: ReactNode;
|
|
304
|
-
/** Ambient content below the card. */
|
|
305
|
-
footer?: ReactNode;
|
|
306
295
|
}
|
|
307
296
|
/** Package-private operations injected into the resident composer bar. */
|
|
308
297
|
export interface ComposerBarInjected {
|
|
@@ -326,7 +315,7 @@ export interface InputControlOwnerProps {
|
|
|
326
315
|
locked: boolean;
|
|
327
316
|
}
|
|
328
317
|
/** Full props of the resident composer bar. */
|
|
329
|
-
export type ComposerBarProps = PropsRuntime<'conversation.composer.bar'> & PropsRenderSlots<'conversation.input.attachments' | 'conversation.input.plan' | 'conversation.input.model'> & InjectFace<ComposerBarInjected> & PropsLocale<'conversation'>;
|
|
318
|
+
export type ComposerBarProps = PropsRuntime<'conversation.composer.bar'> & PropsRenderSlots<'conversation.input.attachments' | 'conversation.input.overlay' | 'conversation.input.left' | 'conversation.input.plan' | 'conversation.input.right' | 'conversation.input.model' | 'conversation.composer.dock'> & InjectFace<ComposerBarInjected> & PropsLocale<'conversation'>;
|
|
330
319
|
/** Owner values used to elect a composer takeover. */
|
|
331
320
|
export interface ComposerChainProps {
|
|
332
321
|
/** Current Session identity used by temporary business-owned entries. */
|
|
@@ -344,7 +333,7 @@ export interface HeroBrandMarkOwnerProps {
|
|
|
344
333
|
className?: string | undefined;
|
|
345
334
|
}
|
|
346
335
|
/** Full props of the resident optional-Session Conversation shell. */
|
|
347
|
-
export type ConversationSlotProps = PropsRuntime<'conversation'> & PropsRenderSlots<'conversation.session' | 'conversation.session.header' | 'conversation.composer' | 'conversation.composer.bar' | 'conversation.input.
|
|
336
|
+
export type ConversationSlotProps = PropsRuntime<'conversation'> & PropsRenderSlots<'conversation.session' | 'conversation.session.header' | 'conversation.composer' | 'conversation.composer.bar' | 'conversation.input.dock' | 'conversation.hero.brand.mark' | 'conversation.hero.workspace' | 'conversation.hero.agentPreset'> & InjectFace<ConversationInjected> & PropsLocale<'conversation'>;
|
|
348
337
|
/** Shared target-neutral Conversation store handle. */
|
|
349
338
|
export type ConversationStore = ReturnType<typeof createConversationStore>;
|
|
350
339
|
/** Full props of the strict Session body. */
|
|
@@ -15,6 +15,7 @@ export declare class ConversationLocationIndex {
|
|
|
15
15
|
private timeline;
|
|
16
16
|
private readonly turnDataStores;
|
|
17
17
|
private readonly stepDataStores;
|
|
18
|
+
private readonly dirtyDataStores;
|
|
18
19
|
private currentTurn;
|
|
19
20
|
private currentStep;
|
|
20
21
|
/**
|
|
@@ -37,6 +38,8 @@ export declare class ConversationLocationIndex {
|
|
|
37
38
|
* @returns whether any published Location data changed.
|
|
38
39
|
*/
|
|
39
40
|
applyData(changes: readonly ConversationLocationDataChange[]): boolean;
|
|
41
|
+
/** Publish committed Location-data changes to their keyed sources. */
|
|
42
|
+
publishData(): void;
|
|
40
43
|
/**
|
|
41
44
|
* Resolve the latest Location for one event.
|
|
42
45
|
* @param event - event already ingested into this index.
|
|
@@ -65,6 +68,7 @@ export declare class ConversationLocationIndex {
|
|
|
65
68
|
private stepData;
|
|
66
69
|
private mutableTurnData;
|
|
67
70
|
private mutableStepData;
|
|
71
|
+
private createDataStore;
|
|
68
72
|
private storeFor;
|
|
69
73
|
private resolve;
|
|
70
74
|
}
|
|
@@ -4,7 +4,7 @@ export { UiConversation } from './conversation/assembly.ts';
|
|
|
4
4
|
export type { ConversationBinding } from './conversation/assembly.ts';
|
|
5
5
|
export { ConversationController, UnsupportedImageMediaTypeError } from './service.ts';
|
|
6
6
|
export type { IConversation } from './service.ts';
|
|
7
|
-
export type { ConversationContextReader, ConversationLocation, ConversationLocationData, ConversationLocationDataScope, ConversationLocationDataStore, ConversationMatch, ConversationMatchResult, ConversationNodeContext, ConversationNodeDefinition, ConversationPreviousContext, ConversationPublication, ConversationStartMatch, ConversationStepDataMap, ConversationTimelineSnapshot, ConversationTurnDataMap, ConversationViewBuilder, ConversationViewDefinition, ConversationViewNode, ConversationViewSnapshotMap, ConversationViewSnapshotStore, StepLocation, TurnLocation, } from './contract/conversation.ts';
|
|
7
|
+
export type { ConversationContextReader, ConversationLocation, ConversationLocationData, ConversationLocationDataScope, ConversationLocationDataSource, ConversationLocationDataStore, ConversationMatch, ConversationMatchResult, ConversationNodeContext, ConversationNodeDefinition, ConversationPreviousContext, ConversationPublication, ConversationStartMatch, ConversationStepDataMap, ConversationTimelineSnapshot, ConversationTurnDataMap, ConversationViewBuilder, ConversationViewDefinition, ConversationViewNode, ConversationViewSnapshotMap, ConversationViewSnapshotStore, StepLocation, TurnLocation, } from './contract/conversation.ts';
|
|
8
8
|
export { EMPTY_CONVERSATION_SNAPSHOT, conversationPhase } from './contract/snapshot.ts';
|
|
9
9
|
export type { ConversationPhase, ConversationSnapshot, } from './contract/snapshot.ts';
|
|
10
10
|
export type { AssistantBlock, AssistantMessageNode, AssistantProvenanceView, AssistantRequestConfig, AssistantTiming, CommandNode, CompactionSummaryNode, ContextMessageNode, ConversationNode, ModelRetryNode, PartialAssistant, RunningToolCall, SteeringMessageNode, TodoItem, ToolCallBlock, ToolResultNode, TurnErrorNode, TurnMaxTokensNode, UnknownSurfaceNode, UserMessageNode, } from './contract/records.ts';
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Machine state arrives through the standard provide channel
|
|
3
3
|
* (useInput + inputActions); the keyboard/DOM command face and stop arrive
|
|
4
4
|
* through this entry's own inject, whose hooks compartment binds
|
|
5
|
-
* useNotices/useLexicon; layout-phase inputs (variant
|
|
6
|
-
*
|
|
5
|
+
* useNotices/useLexicon; layout-phase inputs (variant and placeholder) ride
|
|
6
|
+
* the owner props. Session facts
|
|
7
7
|
* (running/removed/promptError) are self-selected via useSession.
|
|
8
8
|
*
|
|
9
9
|
* The text surface is the shell-owned Lexical editor bound here through
|
|
@@ -14,5 +14,5 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import type { ComposerBarProps } from '../contract/slots.ts';
|
|
16
16
|
export type InputBarProps = ComposerBarProps;
|
|
17
|
-
export declare
|
|
17
|
+
export declare const InputBar: import("react").MemoExoticComponent<({ useSession, useInput, inputActions, keyboard, addImages, removeImage, draftImages, resolveSubmitMode, toggleCommandMenu, stop, command, t, renderSlot, useNotices, useLexicon, useMenuLauncher, useProjection, sessionId, variant, disabled: inert, blocked, workspacePickerOpen, onRequestWorkspace, placeholder, accessory, }: InputBarProps) => import("react").JSX.Element>;
|
|
18
18
|
//# sourceMappingURL=InputBar.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deepseek-ai/dsh-client-ui-conversation",
|
|
3
3
|
"description": "Target-neutral Conversation assembly, shell, composer, queue, and view navigation",
|
|
4
|
-
"version": "0.1.2-alpha.
|
|
4
|
+
"version": "0.1.2-alpha.4",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -18,10 +18,6 @@
|
|
|
18
18
|
"types": "./lib/types/index.d.ts",
|
|
19
19
|
"default": "./lib/index.js"
|
|
20
20
|
},
|
|
21
|
-
"./invariant": {
|
|
22
|
-
"types": "./lib/types/invariant.d.ts",
|
|
23
|
-
"default": "./lib/invariant.js"
|
|
24
|
-
},
|
|
25
21
|
"./client": {
|
|
26
22
|
"types": "./lib/types/client/index.d.ts",
|
|
27
23
|
"default": "./lib/client.js"
|
|
@@ -63,40 +59,38 @@
|
|
|
63
59
|
"react-dom": "^18.2.0",
|
|
64
60
|
"@types/react-dom": "~18.3.0",
|
|
65
61
|
"zod": "^4.4.3",
|
|
62
|
+
"@deepseek-ai/dsh-api-remotes": "^0.1.2-alpha.4",
|
|
66
63
|
"@deepseek-ai/cordis": "^4.0.2",
|
|
67
|
-
"@deepseek-ai/dsh-api-
|
|
68
|
-
"@deepseek-ai/dsh-api-
|
|
69
|
-
"@deepseek-ai/dsh-
|
|
70
|
-
"@deepseek-ai/dsh-
|
|
71
|
-
"@deepseek-ai/dsh-
|
|
72
|
-
"@deepseek-ai/dsh-client-store": "^0.1.2-alpha.
|
|
73
|
-
"@deepseek-ai/dsh-client-
|
|
74
|
-
"@deepseek-ai/dsh-client-
|
|
75
|
-
"@deepseek-ai/dsh-client-ui-primitives": "^0.1.2-alpha.
|
|
76
|
-
"@deepseek-ai/dsh-client-ui-renderer": "^0.1.2-alpha.
|
|
77
|
-
"@deepseek-ai/dsh-client-ui-session": "^0.1.2-alpha.
|
|
78
|
-
"@deepseek-ai/dsh-client-ui-settings": "^0.1.2-alpha.
|
|
79
|
-
"@deepseek-ai/dsh-client-ui-workspace": "^0.1.2-alpha.
|
|
80
|
-
"@deepseek-ai/dsh-client-ui-slots": "^0.1.2-alpha.
|
|
81
|
-
"@deepseek-ai/dsh-
|
|
82
|
-
"@deepseek-ai/dsh-
|
|
83
|
-
"@deepseek-ai/dsh-
|
|
84
|
-
"@deepseek-ai/dsh-
|
|
85
|
-
"@deepseek-ai/dsh-
|
|
86
|
-
"@deepseek-ai/dsh-
|
|
87
|
-
"@deepseek-ai/dsh-
|
|
88
|
-
"@deepseek-ai/dsh-
|
|
89
|
-
"@deepseek-ai/dsh-
|
|
90
|
-
"@deepseek-ai/dsh-
|
|
91
|
-
"@deepseek-ai/dsh-
|
|
92
|
-
"@deepseek-ai/dsh-util-workspace-path": "^0.1.2-alpha.
|
|
93
|
-
"@deepseek-ai/dsh-settings": "^0.1.2-alpha.
|
|
94
|
-
"@deepseek-ai/dsh-workspace": "^0.1.2-alpha.3",
|
|
95
|
-
"@deepseek-ai/dsh-api-remotes": "^0.1.2-alpha.3"
|
|
64
|
+
"@deepseek-ai/dsh-api-session-controller": "^0.1.2-alpha.4",
|
|
65
|
+
"@deepseek-ai/dsh-api-workspace-controller": "^0.1.2-alpha.4",
|
|
66
|
+
"@deepseek-ai/dsh-attachment": "^0.1.2-alpha.4",
|
|
67
|
+
"@deepseek-ai/dsh-client-locale": "^0.1.2-alpha.4",
|
|
68
|
+
"@deepseek-ai/dsh-brand": "^0.1.2-alpha.4",
|
|
69
|
+
"@deepseek-ai/dsh-client-store": "^0.1.2-alpha.4",
|
|
70
|
+
"@deepseek-ai/dsh-client-ui-layout": "^0.1.2-alpha.4",
|
|
71
|
+
"@deepseek-ai/dsh-client-test-runtime": "^0.1.2-alpha.4",
|
|
72
|
+
"@deepseek-ai/dsh-client-ui-primitives": "^0.1.2-alpha.4",
|
|
73
|
+
"@deepseek-ai/dsh-client-ui-renderer": "^0.1.2-alpha.4",
|
|
74
|
+
"@deepseek-ai/dsh-client-ui-session": "^0.1.2-alpha.4",
|
|
75
|
+
"@deepseek-ai/dsh-client-ui-settings": "^0.1.2-alpha.4",
|
|
76
|
+
"@deepseek-ai/dsh-client-ui-workspace": "^0.1.2-alpha.4",
|
|
77
|
+
"@deepseek-ai/dsh-client-ui-slots": "^0.1.2-alpha.4",
|
|
78
|
+
"@deepseek-ai/dsh-goal": "^0.1.2-alpha.4",
|
|
79
|
+
"@deepseek-ai/dsh-commands": "^0.1.2-alpha.4",
|
|
80
|
+
"@deepseek-ai/dsh-llm-retry": "^0.1.2-alpha.4",
|
|
81
|
+
"@deepseek-ai/dsh-permission-presets": "^0.1.2-alpha.4",
|
|
82
|
+
"@deepseek-ai/dsh-plan-mode": "^0.1.2-alpha.4",
|
|
83
|
+
"@deepseek-ai/dsh-session": "^0.1.2-alpha.4",
|
|
84
|
+
"@deepseek-ai/dsh-llm": "^0.1.2-alpha.4",
|
|
85
|
+
"@deepseek-ai/dsh-token-meter": "^0.1.2-alpha.4",
|
|
86
|
+
"@deepseek-ai/dsh-tool-todo": "^0.1.2-alpha.4",
|
|
87
|
+
"@deepseek-ai/dsh-util-crypto": "^0.1.2-alpha.4",
|
|
88
|
+
"@deepseek-ai/dsh-workspace": "^0.1.2-alpha.4",
|
|
89
|
+
"@deepseek-ai/dsh-util-workspace-path": "^0.1.2-alpha.4",
|
|
90
|
+
"@deepseek-ai/dsh-settings": "^0.1.2-alpha.4"
|
|
96
91
|
},
|
|
97
92
|
"files": [
|
|
98
93
|
"lib/index.js",
|
|
99
|
-
"lib/invariant.js",
|
|
100
94
|
"lib/client.js",
|
|
101
95
|
"lib/types/**/*.d.ts"
|
|
102
96
|
],
|
package/lib/invariant.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
//#region lib/types/invariant.js
|
|
2
|
-
/**
|
|
3
|
-
* Package-owned invariant companion for `@deepseek-ai/dsh-client-ui-conversation`.
|
|
4
|
-
* @module @deepseek-ai/dsh-client-ui-conversation/invariant
|
|
5
|
-
*/
|
|
6
|
-
const PACKAGE_NAME = "@deepseek-ai/dsh-client-ui-conversation";
|
|
7
|
-
/** Cordis companion plugin name. */
|
|
8
|
-
const name = "client-ui-conversation-invariant";
|
|
9
|
-
/** Service required before the companion can reserve package ownership. */
|
|
10
|
-
const inject = ["invariants"];
|
|
11
|
-
/**
|
|
12
|
-
* No runtime invariant: Conversation Definitions, target builders, and Views
|
|
13
|
-
* are already validated by their owning registries and the Slot ledger.
|
|
14
|
-
*/
|
|
15
|
-
const install = () => {};
|
|
16
|
-
/**
|
|
17
|
-
* Register this package's invariant companion.
|
|
18
|
-
* @param ctx - Cordis context carrying the invariant service.
|
|
19
|
-
* @returns the installed registration's disposer after setup succeeds.
|
|
20
|
-
*/
|
|
21
|
-
const apply = (ctx) => Promise.resolve(ctx.invariants.register(PACKAGE_NAME, install));
|
|
22
|
-
//#endregion
|
|
23
|
-
export { apply, inject, name };
|
package/lib/types/invariant.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Package-owned invariant companion for `@deepseek-ai/dsh-client-ui-conversation`.
|
|
3
|
-
* @module @deepseek-ai/dsh-client-ui-conversation/invariant
|
|
4
|
-
*/
|
|
5
|
-
import type { Context } from '@deepseek-ai/cordis';
|
|
6
|
-
/** Cordis companion plugin name. */
|
|
7
|
-
export declare const name = "client-ui-conversation-invariant";
|
|
8
|
-
/** Service required before the companion can reserve package ownership. */
|
|
9
|
-
export declare const inject: string[];
|
|
10
|
-
/**
|
|
11
|
-
* Register this package's invariant companion.
|
|
12
|
-
* @param ctx - Cordis context carrying the invariant service.
|
|
13
|
-
* @returns the installed registration's disposer after setup succeeds.
|
|
14
|
-
*/
|
|
15
|
-
export declare const apply: (ctx: Context) => Promise<() => void>;
|
|
16
|
-
//# sourceMappingURL=invariant.d.ts.map
|