@yadsh/dsh-qa-surface 0.18.0 → 0.20.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.md +201 -22
- package/lib/access/model-choices.js +103 -0
- package/lib/access/model-choices.js.map +1 -0
- package/lib/access/model-policy.js +79 -7
- package/lib/access/model-policy.js.map +1 -1
- package/lib/access/model.js +29 -1
- package/lib/access/model.js.map +1 -1
- package/lib/access/queue-policy.js +36 -0
- package/lib/access/queue-policy.js.map +1 -0
- package/lib/access/service.js +124 -7
- package/lib/access/service.js.map +1 -1
- package/lib/account-remotes.js +10 -1
- package/lib/account-remotes.js.map +1 -1
- package/lib/accounts/database.js +44 -3
- package/lib/accounts/database.js.map +1 -1
- package/lib/accounts/store.js +28 -0
- package/lib/accounts/store.js.map +1 -1
- package/lib/admin/service.js +6 -1
- package/lib/admin/service.js.map +1 -1
- package/lib/attachment-access.js +147 -0
- package/lib/attachment-access.js.map +1 -0
- package/lib/chat-sharing/search.js +89 -0
- package/lib/chat-sharing/search.js.map +1 -0
- package/lib/chat-sharing/transport.js +8 -9
- package/lib/chat-sharing/transport.js.map +1 -1
- package/lib/client/QaAccountsController.js +43 -8
- package/lib/client/QaAccountsController.js.map +1 -1
- package/lib/client/QaSessionController.js +106 -32
- package/lib/client/QaSessionController.js.map +1 -1
- package/lib/client/QaSurface.js +64 -5
- package/lib/client/QaSurface.js.map +1 -1
- package/lib/client/admin/ModelPolicyEditor.js +28 -2
- package/lib/client/admin/ModelPolicyEditor.js.map +1 -1
- package/lib/client/admin/RoleEditor.js +18 -1
- package/lib/client/admin/RoleEditor.js.map +1 -1
- package/lib/client/admin/pages/SkillFiles.js +1 -1
- package/lib/client/admin/pages/SkillFiles.js.map +1 -1
- package/lib/client/admin/pages/Users.js +36 -16
- package/lib/client/admin/pages/Users.js.map +1 -1
- package/lib/client/admin/styles.js +3 -0
- package/lib/client/admin/styles.js.map +1 -1
- package/lib/client/code-source-styles.js +12 -0
- package/lib/client/code-source-styles.js.map +1 -0
- package/lib/client/components/QaChangelog.js +96 -0
- package/lib/client/components/QaChangelog.js.map +1 -1
- package/lib/client/components/QaChatActions.js +36 -14
- package/lib/client/components/QaChatActions.js.map +1 -1
- package/lib/client/components/QaCodeSourcePicker.js +18 -0
- package/lib/client/components/QaCodeSourcePicker.js.map +1 -0
- package/lib/client/components/QaComposer.js +11 -12
- package/lib/client/components/QaComposer.js.map +1 -1
- package/lib/client/components/QaComposerSettings.js +202 -0
- package/lib/client/components/QaComposerSettings.js.map +1 -0
- package/lib/client/components/QaFormItem.js +74 -38
- package/lib/client/components/QaFormItem.js.map +1 -1
- package/lib/client/components/QaHistoryCatalog.js +261 -0
- package/lib/client/components/QaHistoryCatalog.js.map +1 -0
- package/lib/client/components/QaInputForm.js +115 -32
- package/lib/client/components/QaInputForm.js.map +1 -1
- package/lib/client/components/QaModelSelector.js +21 -0
- package/lib/client/components/QaModelSelector.js.map +1 -0
- package/lib/client/components/QaRequestWait.js +15 -0
- package/lib/client/components/QaRequestWait.js.map +1 -0
- package/lib/client/components/QaSidebar.js +25 -24
- package/lib/client/components/QaSidebar.js.map +1 -1
- package/lib/client/composer-settings-styles.js +21 -0
- package/lib/client/composer-settings-styles.js.map +1 -0
- package/lib/client/forms-styles.js +35 -11
- package/lib/client/forms-styles.js.map +1 -1
- package/lib/client/history-organization-styles.js +31 -0
- package/lib/client/history-organization-styles.js.map +1 -0
- package/lib/client/history-organization.js +155 -0
- package/lib/client/history-organization.js.map +1 -0
- package/lib/client/index.js +13 -2
- package/lib/client/index.js.map +1 -1
- package/lib/client/project-session-state.js.map +1 -1
- package/lib/client/request-wait-styles.js +7 -0
- package/lib/client/request-wait-styles.js.map +1 -0
- package/lib/client/settings/sections/attachments.js +7 -1
- package/lib/client/settings/sections/attachments.js.map +1 -1
- package/lib/client/settings/sections/session.js +1 -1
- package/lib/client/settings/sections/session.js.map +1 -1
- package/lib/client/styles.js +20 -1
- package/lib/client/styles.js.map +1 -1
- package/lib/client/types.js.map +1 -1
- package/lib/client/use-chat-code-source.js +156 -0
- package/lib/client/use-chat-code-source.js.map +1 -0
- package/lib/client/use-history-organization.js +48 -0
- package/lib/client/use-history-organization.js.map +1 -0
- package/lib/client/use-model-selection.js +96 -0
- package/lib/client/use-model-selection.js.map +1 -0
- package/lib/client/use-qa-file-drop.js +81 -0
- package/lib/client/use-qa-file-drop.js.map +1 -0
- package/lib/client/user-settings/IntegrationTokensPage.js +42 -6
- package/lib/client/user-settings/IntegrationTokensPage.js.map +1 -1
- package/lib/client/user-settings/UserSettingsDialog.js +1 -1
- package/lib/client/user-settings/UserSettingsDialog.js.map +1 -1
- package/lib/client.js +131 -27
- package/lib/client.js.map +1 -1
- package/lib/code-source-selection.js +102 -0
- package/lib/code-source-selection.js.map +1 -0
- package/lib/config-resolvers/accounts.js +26 -1
- package/lib/config-resolvers/accounts.js.map +1 -1
- package/lib/config-resolvers/defaults.js +5 -0
- package/lib/config-resolvers/defaults.js.map +1 -1
- package/lib/config-resolvers/integration.js +8 -1
- package/lib/config-resolvers/integration.js.map +1 -1
- package/lib/config-resolvers/session.js +2 -0
- package/lib/config-resolvers/session.js.map +1 -1
- package/lib/config.js +51 -3
- package/lib/config.js.map +1 -1
- package/lib/enforcement/skill-policy.js +37 -2
- package/lib/enforcement/skill-policy.js.map +1 -1
- package/lib/filesystem-intent.js +39 -0
- package/lib/filesystem-intent.js.map +1 -0
- package/lib/forms/attachments.js +18 -2
- package/lib/forms/attachments.js.map +1 -1
- package/lib/forms/errors.js +6 -1
- package/lib/forms/errors.js.map +1 -1
- package/lib/forms/gate.js +28 -2
- package/lib/forms/gate.js.map +1 -1
- package/lib/forms/schema-errors.js +47 -0
- package/lib/forms/schema-errors.js.map +1 -0
- package/lib/forms/schema.js +29 -20
- package/lib/forms/schema.js.map +1 -1
- package/lib/index.js +189 -84
- package/lib/index.js.map +1 -1
- package/lib/integration/http.js +9 -10
- package/lib/integration/http.js.map +1 -1
- package/lib/integration/service.js +9 -0
- package/lib/integration/service.js.map +1 -1
- package/lib/personal-skills/provider.js +9 -1
- package/lib/personal-skills/provider.js.map +1 -1
- package/lib/personal-skills/service.js +4 -0
- package/lib/personal-skills/service.js.map +1 -1
- package/lib/personal-skills/shared-seed.js +65 -0
- package/lib/personal-skills/shared-seed.js.map +1 -0
- package/lib/prompt-notes.js +19 -1
- package/lib/prompt-notes.js.map +1 -1
- package/lib/provenance/collector.js +1 -0
- package/lib/provenance/collector.js.map +1 -1
- package/lib/provenance/extractors.js +6 -1
- package/lib/provenance/extractors.js.map +1 -1
- package/lib/qa-tools/catalog.js +18 -1
- package/lib/qa-tools/catalog.js.map +1 -1
- package/lib/qa-tools/code-files.js +207 -0
- package/lib/qa-tools/code-files.js.map +1 -0
- package/lib/qa-tools/code-tools.js +158 -0
- package/lib/qa-tools/code-tools.js.map +1 -0
- package/lib/qa-tools/docs-tools.js +49 -12
- package/lib/qa-tools/docs-tools.js.map +1 -1
- package/lib/qa-tools/index.js +4 -0
- package/lib/qa-tools/index.js.map +1 -1
- package/lib/qa-tools/request-user-form.js +27 -7
- package/lib/qa-tools/request-user-form.js.map +1 -1
- package/lib/request-scheduler.js +262 -0
- package/lib/request-scheduler.js.map +1 -0
- package/lib/resolve-config.js +9 -1
- package/lib/resolve-config.js.map +1 -1
- package/lib/secure-session.js +62 -56
- package/lib/secure-session.js.map +1 -1
- package/lib/session-create.js +125 -0
- package/lib/session-create.js.map +1 -0
- package/lib/session-model.js +43 -1
- package/lib/session-model.js.map +1 -1
- package/lib/shared/history-folder.js +18 -0
- package/lib/shared/history-folder.js.map +1 -0
- package/lib/typert.host.js +793 -159
- package/lib/typert.remote-client.d.ts +19 -7
- package/lib/typert.remote-client.js +726 -148
- package/lib/types/access/model-choices.d.ts +16 -0
- package/lib/types/access/model-policy.d.ts +13 -7
- package/lib/types/access/model.d.ts +9 -0
- package/lib/types/access/queue-policy.d.ts +30 -0
- package/lib/types/access/service.d.ts +27 -0
- package/lib/types/account-remotes.d.ts +5 -4
- package/lib/types/accounts/database.d.ts +5 -0
- package/lib/types/accounts/store.d.ts +6 -0
- package/lib/types/attachment-access.d.ts +29 -0
- package/lib/types/chat-sharing/search.d.ts +5 -0
- package/lib/types/chat-sharing/transport.d.ts +1 -1
- package/lib/types/client/QaAccountsController.d.ts +3 -1
- package/lib/types/client/QaSessionController.d.ts +31 -14
- package/lib/types/client/QaSurface.d.ts +2 -0
- package/lib/types/client/admin/ModelPolicyEditor.d.ts +2 -0
- package/lib/types/client/code-source-styles.d.ts +2 -0
- package/lib/types/client/components/QaChatActions.d.ts +3 -1
- package/lib/types/client/components/QaCodeSourcePicker.d.ts +9 -0
- package/lib/types/client/components/QaComposer.d.ts +2 -0
- package/lib/types/client/components/QaComposerSettings.d.ts +16 -0
- package/lib/types/client/components/QaFormItem.d.ts +4 -2
- package/lib/types/client/components/QaHistoryCatalog.d.ts +19 -0
- package/lib/types/client/components/QaInputForm.d.ts +3 -2
- package/lib/types/client/components/QaModelSelector.d.ts +4 -0
- package/lib/types/client/components/QaRequestWait.d.ts +6 -0
- package/lib/types/client/components/QaSidebar.d.ts +3 -0
- package/lib/types/client/composer-settings-styles.d.ts +2 -0
- package/lib/types/client/forms-styles.d.ts +1 -1
- package/lib/types/client/history-organization-styles.d.ts +3 -0
- package/lib/types/client/history-organization.d.ts +38 -0
- package/lib/types/client/project-session-state.d.ts +2 -4
- package/lib/types/client/request-wait-styles.d.ts +2 -0
- package/lib/types/client/types.d.ts +15 -7
- package/lib/types/client/use-chat-code-source.d.ts +20 -0
- package/lib/types/client/use-history-organization.d.ts +8 -0
- package/lib/types/client/use-model-selection.d.ts +24 -0
- package/lib/types/client/use-qa-file-drop.d.ts +12 -0
- package/lib/types/code-source-selection.d.ts +28 -0
- package/lib/types/code-sources.js +2 -0
- package/lib/types/code-sources.js.map +1 -0
- package/lib/types/config-resolvers/integration.d.ts +7 -1
- package/lib/types/filesystem-intent.d.ts +12 -0
- package/lib/types/forms/attachments.d.ts +5 -2
- package/lib/types/forms/errors.d.ts +3 -2
- package/lib/types/forms/gate.d.ts +4 -2
- package/lib/types/forms/schema-errors.d.ts +7 -0
- package/lib/types/forms/types.d.ts +14 -0
- package/lib/types/index.d.ts +41 -15
- package/lib/types/integration/http.d.ts +1 -3
- package/lib/types/integration/service.d.ts +2 -0
- package/lib/types/personal-skills/shared-seed.d.ts +12 -0
- package/lib/types/prompt-notes.d.ts +5 -1
- package/lib/types/qa-tools/catalog.d.ts +4 -3
- package/lib/types/qa-tools/code-files.d.ts +59 -0
- package/lib/types/qa-tools/code-tools.d.ts +7 -0
- package/lib/types/qa-tools/docs-tools.d.ts +4 -0
- package/lib/types/qa-tools/index.d.ts +3 -1
- package/lib/types/qa-tools/request-user-form.d.ts +1 -1
- package/lib/types/request-scheduler.d.ts +47 -0
- package/lib/types/secure-session.d.ts +12 -26
- package/lib/types/session-create.d.ts +29 -0
- package/lib/types/session-model.d.ts +11 -2
- package/lib/types/shared/history-folder.d.ts +4 -0
- package/lib/types/types/accounts.d.ts +11 -0
- package/lib/types/types/capability.d.ts +31 -4
- package/lib/types/types/code-sources.d.ts +12 -0
- package/lib/types/types/config.d.ts +20 -0
- package/lib/types/types/session.d.ts +8 -0
- package/lib/types/types.d.ts +1 -0
- package/lib/types/user-workspace.d.ts +4 -6
- package/lib/user-workspace.js +20 -71
- package/lib/user-workspace.js.map +1 -1
- package/package.json +13 -10
package/lib/user-workspace.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { chmodSync, lstatSync, mkdirSync, readdirSync, realpathSync, statSync, } from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
|
+
import { qaFilesystemIntent } from "./filesystem-intent.js";
|
|
3
4
|
/** Stable, non-workspace child used to keep account directories out of sight. */
|
|
4
5
|
export const QA_USER_WORKSPACES_DIRECTORY = ".qa-users";
|
|
5
6
|
/** Conservative fixed budgets; there is deliberately no browser override. */
|
|
@@ -105,49 +106,6 @@ function record(value) {
|
|
|
105
106
|
? value
|
|
106
107
|
: undefined;
|
|
107
108
|
}
|
|
108
|
-
function requestedPaths(execution) {
|
|
109
|
-
const args = record(execution.arguments);
|
|
110
|
-
if (args === undefined)
|
|
111
|
-
return [];
|
|
112
|
-
switch (execution.name) {
|
|
113
|
-
case "read":
|
|
114
|
-
case "read_image":
|
|
115
|
-
case "write":
|
|
116
|
-
case "edit": {
|
|
117
|
-
return typeof args.file_path === "string" ? [args.file_path] : [];
|
|
118
|
-
}
|
|
119
|
-
case "glob":
|
|
120
|
-
case "grep": {
|
|
121
|
-
return [typeof args.path === "string" ? args.path : "."];
|
|
122
|
-
}
|
|
123
|
-
case "str_replace_editor": {
|
|
124
|
-
return typeof args.path === "string" ? [args.path] : [];
|
|
125
|
-
}
|
|
126
|
-
default:
|
|
127
|
-
return [];
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Whether the named path is only read. Directory-wide tools stay confined even
|
|
132
|
-
* for reads: the attachment store is shared by every account, and only the
|
|
133
|
-
* exact file an upload produced is meant to be reachable.
|
|
134
|
-
*/
|
|
135
|
-
function readsSharedRoot(execution) {
|
|
136
|
-
if (execution.name === "read" ||
|
|
137
|
-
execution.name === "read_image" ||
|
|
138
|
-
execution.name === "glob" ||
|
|
139
|
-
execution.name === "grep") {
|
|
140
|
-
return true;
|
|
141
|
-
}
|
|
142
|
-
return (execution.name === "str_replace_editor" &&
|
|
143
|
-
record(execution.arguments)?.command === "view");
|
|
144
|
-
}
|
|
145
|
-
function readsSingleFile(execution) {
|
|
146
|
-
if (execution.name === "read" || execution.name === "read_image")
|
|
147
|
-
return true;
|
|
148
|
-
return (execution.name === "str_replace_editor" &&
|
|
149
|
-
record(execution.arguments)?.command === "view");
|
|
150
|
-
}
|
|
151
109
|
function directoryBytes(root, stopAfter) {
|
|
152
110
|
let total = 0;
|
|
153
111
|
const pending = [root];
|
|
@@ -167,31 +125,23 @@ function directoryBytes(root, stopAfter) {
|
|
|
167
125
|
}
|
|
168
126
|
return total;
|
|
169
127
|
}
|
|
170
|
-
function requestedWriteBytes(execution) {
|
|
171
|
-
const args = record(execution.arguments);
|
|
172
|
-
if (args === undefined)
|
|
173
|
-
return 0;
|
|
174
|
-
const values = [args.content, args.new_string, args.new_str];
|
|
175
|
-
return values.reduce((total, value) => total + (typeof value === "string" ? Buffer.byteLength(value) : 0), 0);
|
|
176
|
-
}
|
|
177
128
|
/**
|
|
178
129
|
* Monotonic guard used in addition to DSH's workspace-write sandbox. It
|
|
179
130
|
* fences model-controlled file paths for both reads and writes, rejects tools
|
|
180
131
|
* whose implementation can walk above cwd, and enforces bounded scratch use.
|
|
181
132
|
*
|
|
182
|
-
* `attachmentRoot`
|
|
183
|
-
*
|
|
184
|
-
* workspace, and the model reaches it exactly as the harness intends (the
|
|
185
|
-
* prompt carries the stored path). Reads of a single such file are allowed;
|
|
186
|
-
* directory-wide tools stay confined because the store is shared by every
|
|
187
|
-
* account, and writes are never exempted.
|
|
133
|
+
* `attachmentRoot` identifies the storage backend, never authority to read it.
|
|
134
|
+
* Only regular files in `attachmentFiles` may cross the workspace boundary.
|
|
188
135
|
*/
|
|
189
136
|
export function qaUserWorkspaceDenial(execution, root, attachmentRoot, readPolicy = {}) {
|
|
190
137
|
const args = record(execution.arguments);
|
|
138
|
+
const pathDenial = `${PATH_DENIAL} Personal workspace: ${root}. ` +
|
|
139
|
+
`Shared read-only roots: ${(readPolicy.sharedReadOnlyRoots ?? []).join(", ") || "none"}. ` +
|
|
140
|
+
"Use an exact path under an allowed root; writes stay in the personal workspace. Attachment access requires the exact file supplied by this conversation.";
|
|
191
141
|
if (args?.sandbox_permissions !== undefined ||
|
|
192
142
|
(execution.name === "edit" &&
|
|
193
143
|
(args?.replace_all === true || args?.replaceAll === true))) {
|
|
194
|
-
return
|
|
144
|
+
return pathDenial;
|
|
195
145
|
}
|
|
196
146
|
if (execution.name === "bash" ||
|
|
197
147
|
execution.name === "shell" ||
|
|
@@ -200,37 +150,36 @@ export function qaUserWorkspaceDenial(execution, root, attachmentRoot, readPolic
|
|
|
200
150
|
execution.name === "run_code" ||
|
|
201
151
|
execution.name === "lsp" ||
|
|
202
152
|
execution.name === "apply_patch") {
|
|
203
|
-
return
|
|
153
|
+
return pathDenial;
|
|
204
154
|
}
|
|
205
|
-
const
|
|
206
|
-
const readsOneFile = readsSingleFile(execution);
|
|
155
|
+
const intent = qaFilesystemIntent(execution.name, args);
|
|
207
156
|
try {
|
|
208
157
|
const sharedReadOnlyRoots = (readPolicy.sharedReadOnlyRoots ?? []).map(canonicalCandidate);
|
|
209
|
-
for (const requested of
|
|
158
|
+
for (const requested of intent === undefined ? [] : [intent.path]) {
|
|
210
159
|
const absolute = path.isAbsolute(requested)
|
|
211
160
|
? requested
|
|
212
161
|
: path.resolve(root, requested);
|
|
213
162
|
const canonical = canonicalCandidate(absolute);
|
|
214
163
|
if (pathIsInside(canonical, root))
|
|
215
164
|
continue;
|
|
216
|
-
if (
|
|
165
|
+
if (intent?.kind === "read" &&
|
|
217
166
|
sharedReadOnlyRoots.some((readRoot) => pathIsInside(canonical, readRoot))) {
|
|
218
167
|
continue;
|
|
219
168
|
}
|
|
220
169
|
// Resolved only for a path the fence would otherwise refuse, so the
|
|
221
170
|
// common case pays no extra filesystem walk.
|
|
222
|
-
if (
|
|
171
|
+
if (intent?.kind === "read" &&
|
|
172
|
+
intent.fileOnlyGrant &&
|
|
223
173
|
attachmentRoot !== undefined &&
|
|
224
|
-
pathIsInside(canonical, canonicalCandidate(attachmentRoot))
|
|
174
|
+
pathIsInside(canonical, canonicalCandidate(attachmentRoot)) &&
|
|
175
|
+
(readPolicy.attachmentFiles ?? []).some((file) => samePath(canonical, file)) &&
|
|
176
|
+
statSync(canonical).isFile()) {
|
|
225
177
|
continue;
|
|
226
178
|
}
|
|
227
|
-
return
|
|
179
|
+
return pathDenial;
|
|
228
180
|
}
|
|
229
|
-
if (
|
|
230
|
-
|
|
231
|
-
(execution.name === "str_replace_editor" &&
|
|
232
|
-
record(execution.arguments)?.command !== "view")) {
|
|
233
|
-
const requested = requestedWriteBytes(execution);
|
|
181
|
+
if (intent?.kind === "write") {
|
|
182
|
+
const requested = intent.bytes;
|
|
234
183
|
if (requested > QA_USER_WORKSPACE_MAX_WRITE_BYTES ||
|
|
235
184
|
directoryBytes(root, QA_USER_WORKSPACE_MAX_BYTES) + requested >
|
|
236
185
|
QA_USER_WORKSPACE_MAX_BYTES) {
|
|
@@ -240,7 +189,7 @@ export function qaUserWorkspaceDenial(execution, root, attachmentRoot, readPolic
|
|
|
240
189
|
return undefined;
|
|
241
190
|
}
|
|
242
191
|
catch {
|
|
243
|
-
return
|
|
192
|
+
return pathDenial;
|
|
244
193
|
}
|
|
245
194
|
}
|
|
246
195
|
//# sourceMappingURL=user-workspace.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-workspace.js","sourceRoot":"","sources":["../src/user-workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,WAAW,EACX,YAAY,EACZ,QAAQ,GACT,MAAM,SAAS,CAAC;AACjB,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"user-workspace.js","sourceRoot":"","sources":["../src/user-workspace.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yadsh/dsh-qa-surface",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.20.0",
|
|
4
4
|
"description": "A focused end-user QA surface backed by native DeepSeek Harness sessions",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
"node": "^22.19.0 || >=24.0.0"
|
|
104
104
|
},
|
|
105
105
|
"peerDependencies": {
|
|
106
|
-
"@deepseek-ai/cordis": "
|
|
106
|
+
"@deepseek-ai/cordis": "~4.0.4",
|
|
107
107
|
"@deepseek-ai/dsh-agent": ">=0.1.7-rc.2 <0.3.0-0",
|
|
108
108
|
"@deepseek-ai/dsh-agent-preset-registry": ">=0.1.7-rc.2 <0.3.0-0",
|
|
109
109
|
"@deepseek-ai/dsh-api-gateway": ">=0.1.7-rc.2 <0.3.0-0",
|
|
@@ -137,15 +137,16 @@
|
|
|
137
137
|
"openid-client": "6.8.8",
|
|
138
138
|
"yaml": "^2.9.0",
|
|
139
139
|
"zod": "^4.4.3",
|
|
140
|
-
"@yadsh/dsh-audit-core": "^0.1.
|
|
141
|
-
"@yadsh/dsh-
|
|
142
|
-
"@yadsh/dsh-
|
|
143
|
-
"@yadsh/dsh-
|
|
144
|
-
"@yadsh/dsh-
|
|
140
|
+
"@yadsh/dsh-audit-core": "^0.1.3",
|
|
141
|
+
"@yadsh/dsh-plugin-log": "^0.4.3",
|
|
142
|
+
"@yadsh/dsh-plugin-kit": "^0.8.0",
|
|
143
|
+
"@yadsh/dsh-documents": "^0.8.3",
|
|
144
|
+
"@yadsh/dsh-audit-ui": "^0.1.4"
|
|
145
145
|
},
|
|
146
146
|
"devDependencies": {
|
|
147
147
|
"@deepseek-ai/cordis": "4.0.5",
|
|
148
148
|
"@deepseek-ai/dsh-agent": "0.2.1-rc.3",
|
|
149
|
+
"@deepseek-ai/dsh-agent-loop": "0.2.1-rc.3",
|
|
149
150
|
"@deepseek-ai/dsh-agent-preset-registry": "0.2.1-rc.3",
|
|
150
151
|
"@deepseek-ai/dsh-api-gateway": "0.2.1-rc.3",
|
|
151
152
|
"@deepseek-ai/dsh-api-session-controller": "0.2.1-rc.3",
|
|
@@ -164,6 +165,7 @@
|
|
|
164
165
|
"@deepseek-ai/dsh-permission-presets": "0.2.1-rc.3",
|
|
165
166
|
"@deepseek-ai/dsh-scope": "0.2.1-rc.3",
|
|
166
167
|
"@deepseek-ai/dsh-session": "0.2.1-rc.3",
|
|
168
|
+
"@deepseek-ai/dsh-session-projection": "0.2.1-rc.3",
|
|
167
169
|
"@deepseek-ai/dsh-settings": "0.2.1-rc.3",
|
|
168
170
|
"@deepseek-ai/dsh-skill": "0.2.1-rc.3",
|
|
169
171
|
"@deepseek-ai/dsh-system-prompt": "0.2.1-rc.3",
|
|
@@ -177,7 +179,7 @@
|
|
|
177
179
|
"@types/node": "^26.4.0",
|
|
178
180
|
"@types/react": "18.3.28",
|
|
179
181
|
"@types/react-dom": "18.3.7",
|
|
180
|
-
"@vitest/coverage-v8": "^4.1.
|
|
182
|
+
"@vitest/coverage-v8": "^4.1.12",
|
|
181
183
|
"eslint": "10.9.1",
|
|
182
184
|
"jsdom": "^26.1.0",
|
|
183
185
|
"katex": "^0.18.2",
|
|
@@ -186,7 +188,7 @@
|
|
|
186
188
|
"react-dom": "18.3.1",
|
|
187
189
|
"tsdown": "^0.22.14",
|
|
188
190
|
"typescript": "^7.0.2",
|
|
189
|
-
"vitest": "^4.1.
|
|
191
|
+
"vitest": "^4.1.12",
|
|
190
192
|
"@yadsh/dsh-config": "^0.0.0",
|
|
191
193
|
"@yadsh/dsh-plugin-scripts": "^0.0.0"
|
|
192
194
|
},
|
|
@@ -202,7 +204,8 @@
|
|
|
202
204
|
"test": "vitest run",
|
|
203
205
|
"test:coverage": "vitest run --coverage",
|
|
204
206
|
"verify:package": "node scripts/verify-package.mjs",
|
|
205
|
-
"verify": "pnpm run verify:package && pnpm run verify:consumer",
|
|
207
|
+
"verify": "pnpm run verify:package && pnpm run verify:consumer && pnpm run verify:shared-skills",
|
|
208
|
+
"verify:shared-skills": "node scripts/verify-shared-skills.mjs",
|
|
206
209
|
"verify:consumer": "tsc -p scripts/fixtures/tsconfig.json --noEmit",
|
|
207
210
|
"smoke:packed": "node scripts/smoke-packed-dsh.mjs",
|
|
208
211
|
"e2e:browser": "node scripts/smoke-packed-dsh.mjs --browser",
|