@goodandready/dsh-remote-workspace 0.3.12 → 0.3.14
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/lib/index.js +10 -1
- package/package.json +4 -3
package/lib/index.js
CHANGED
|
@@ -32,6 +32,15 @@ if (typeof z.prototype?.volatile !== 'function') {
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
+
// Unwrap Volatile boxes before any caller reads a value. A volatile field holds a box
|
|
36
|
+
// rather than its value, and the Loader mutates those boxes in place.
|
|
37
|
+
export function plainConfig(value) {
|
|
38
|
+
if (value === null || typeof value !== 'object') return value
|
|
39
|
+
if (Array.isArray(value)) return value.map(plainConfig)
|
|
40
|
+
if (typeof value.get === 'function') return plainConfig(value.get())
|
|
41
|
+
return Object.fromEntries(Object.entries(value).map(([k, v]) => [k, plainConfig(v)]))
|
|
42
|
+
}
|
|
43
|
+
|
|
35
44
|
export const Config = z.object({
|
|
36
45
|
profiles: z.array(z.object({
|
|
37
46
|
id: z.string().default(''),
|
|
@@ -108,7 +117,7 @@ export function apply(ctx, config = {}) {
|
|
|
108
117
|
const persistConfig = async (actionLabel) => {
|
|
109
118
|
if (settingsApi?.replace) {
|
|
110
119
|
try {
|
|
111
|
-
await settingsApi.replace(Config(currentConfig));
|
|
120
|
+
await settingsApi.replace(plainConfig(Config(currentConfig)));
|
|
112
121
|
} catch (err) {
|
|
113
122
|
if (ctx.logger?.warn) {
|
|
114
123
|
ctx.logger.warn(`[dsh-remote-workspace] Failed to persist config after ${actionLabel}: ${err.message}`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goodandready/dsh-remote-workspace",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.14",
|
|
4
4
|
"description": "Enterprise Remote Workspace Plugin for DeepSeek Harness: SSH2 connection pool, SFTP operations, 3-way conflict-aware mirror sync, port forwarding, and native DSH UI.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -64,13 +64,14 @@
|
|
|
64
64
|
"@deepseek-ai/dsh-host-webserver": "^0.1.7-rc.2 || ^0.2.0-rc.1",
|
|
65
65
|
"@deepseek-ai/dsh-settings": "^0.1.7-rc.2 || ^0.2.0-rc.1",
|
|
66
66
|
"@deepseek-ai/dsh-tools": "^0.1.7-rc.2 || ^0.2.0-rc.1",
|
|
67
|
-
"@deepseek-ai/schemastery": "^3.18.
|
|
67
|
+
"@deepseek-ai/schemastery": "^3.18.4"
|
|
68
68
|
},
|
|
69
69
|
"devDependencies": {
|
|
70
70
|
"@types/node": "^22.0.0",
|
|
71
71
|
"@types/ssh2": "^1.15.4",
|
|
72
72
|
"tsup": "^8.0.0",
|
|
73
|
-
"typescript": "^5.5.0"
|
|
73
|
+
"typescript": "^5.5.0",
|
|
74
|
+
"@deepseek-ai/schemastery": "^3.18.4"
|
|
74
75
|
},
|
|
75
76
|
"publishConfig": {
|
|
76
77
|
"access": "public",
|