@yadsh/dsh-qa-surface 0.19.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.
Files changed (216) hide show
  1. package/README.md +181 -0
  2. package/lib/access/model-choices.js +103 -0
  3. package/lib/access/model-choices.js.map +1 -0
  4. package/lib/access/model-policy.js +79 -7
  5. package/lib/access/model-policy.js.map +1 -1
  6. package/lib/access/model.js +29 -1
  7. package/lib/access/model.js.map +1 -1
  8. package/lib/access/queue-policy.js +36 -0
  9. package/lib/access/queue-policy.js.map +1 -0
  10. package/lib/access/service.js +124 -7
  11. package/lib/access/service.js.map +1 -1
  12. package/lib/account-remotes.js +10 -1
  13. package/lib/account-remotes.js.map +1 -1
  14. package/lib/accounts/database.js +44 -3
  15. package/lib/accounts/database.js.map +1 -1
  16. package/lib/accounts/store.js +28 -0
  17. package/lib/accounts/store.js.map +1 -1
  18. package/lib/admin/service.js +6 -1
  19. package/lib/admin/service.js.map +1 -1
  20. package/lib/chat-sharing/transport.js +6 -2
  21. package/lib/chat-sharing/transport.js.map +1 -1
  22. package/lib/client/QaAccountsController.js +43 -8
  23. package/lib/client/QaAccountsController.js.map +1 -1
  24. package/lib/client/QaSessionController.js +55 -23
  25. package/lib/client/QaSessionController.js.map +1 -1
  26. package/lib/client/QaSurface.js +61 -3
  27. package/lib/client/QaSurface.js.map +1 -1
  28. package/lib/client/admin/ModelPolicyEditor.js +28 -2
  29. package/lib/client/admin/ModelPolicyEditor.js.map +1 -1
  30. package/lib/client/admin/RoleEditor.js +18 -1
  31. package/lib/client/admin/RoleEditor.js.map +1 -1
  32. package/lib/client/admin/pages/SkillFiles.js +1 -1
  33. package/lib/client/admin/pages/SkillFiles.js.map +1 -1
  34. package/lib/client/admin/pages/Users.js +36 -16
  35. package/lib/client/admin/pages/Users.js.map +1 -1
  36. package/lib/client/admin/styles.js +3 -0
  37. package/lib/client/admin/styles.js.map +1 -1
  38. package/lib/client/code-source-styles.js +12 -0
  39. package/lib/client/code-source-styles.js.map +1 -0
  40. package/lib/client/components/QaChangelog.js +69 -0
  41. package/lib/client/components/QaChangelog.js.map +1 -1
  42. package/lib/client/components/QaChatActions.js +36 -14
  43. package/lib/client/components/QaChatActions.js.map +1 -1
  44. package/lib/client/components/QaCodeSourcePicker.js +18 -0
  45. package/lib/client/components/QaCodeSourcePicker.js.map +1 -0
  46. package/lib/client/components/QaComposer.js +11 -12
  47. package/lib/client/components/QaComposer.js.map +1 -1
  48. package/lib/client/components/QaComposerSettings.js +202 -0
  49. package/lib/client/components/QaComposerSettings.js.map +1 -0
  50. package/lib/client/components/QaFormItem.js +74 -38
  51. package/lib/client/components/QaFormItem.js.map +1 -1
  52. package/lib/client/components/QaHistoryCatalog.js +261 -0
  53. package/lib/client/components/QaHistoryCatalog.js.map +1 -0
  54. package/lib/client/components/QaInputForm.js +115 -32
  55. package/lib/client/components/QaInputForm.js.map +1 -1
  56. package/lib/client/components/QaModelSelector.js +21 -0
  57. package/lib/client/components/QaModelSelector.js.map +1 -0
  58. package/lib/client/components/QaSidebar.js +25 -24
  59. package/lib/client/components/QaSidebar.js.map +1 -1
  60. package/lib/client/composer-settings-styles.js +21 -0
  61. package/lib/client/composer-settings-styles.js.map +1 -0
  62. package/lib/client/forms-styles.js +35 -11
  63. package/lib/client/forms-styles.js.map +1 -1
  64. package/lib/client/history-organization-styles.js +31 -0
  65. package/lib/client/history-organization-styles.js.map +1 -0
  66. package/lib/client/history-organization.js +155 -0
  67. package/lib/client/history-organization.js.map +1 -0
  68. package/lib/client/index.js +13 -4
  69. package/lib/client/index.js.map +1 -1
  70. package/lib/client/settings/sections/attachments.js +7 -1
  71. package/lib/client/settings/sections/attachments.js.map +1 -1
  72. package/lib/client/settings/sections/session.js +1 -1
  73. package/lib/client/settings/sections/session.js.map +1 -1
  74. package/lib/client/styles.js +18 -1
  75. package/lib/client/styles.js.map +1 -1
  76. package/lib/client/types.js.map +1 -1
  77. package/lib/client/use-chat-code-source.js +156 -0
  78. package/lib/client/use-chat-code-source.js.map +1 -0
  79. package/lib/client/use-history-organization.js +48 -0
  80. package/lib/client/use-history-organization.js.map +1 -0
  81. package/lib/client/use-model-selection.js +96 -0
  82. package/lib/client/use-model-selection.js.map +1 -0
  83. package/lib/client/use-qa-file-drop.js +81 -0
  84. package/lib/client/use-qa-file-drop.js.map +1 -0
  85. package/lib/client/user-settings/IntegrationTokensPage.js +42 -6
  86. package/lib/client/user-settings/IntegrationTokensPage.js.map +1 -1
  87. package/lib/client/user-settings/UserSettingsDialog.js +1 -1
  88. package/lib/client/user-settings/UserSettingsDialog.js.map +1 -1
  89. package/lib/client.js +123 -25
  90. package/lib/client.js.map +1 -1
  91. package/lib/code-source-selection.js +102 -0
  92. package/lib/code-source-selection.js.map +1 -0
  93. package/lib/config-resolvers/accounts.js +26 -1
  94. package/lib/config-resolvers/accounts.js.map +1 -1
  95. package/lib/config-resolvers/defaults.js +5 -0
  96. package/lib/config-resolvers/defaults.js.map +1 -1
  97. package/lib/config-resolvers/integration.js +8 -1
  98. package/lib/config-resolvers/integration.js.map +1 -1
  99. package/lib/config-resolvers/session.js +2 -0
  100. package/lib/config-resolvers/session.js.map +1 -1
  101. package/lib/config.js +51 -3
  102. package/lib/config.js.map +1 -1
  103. package/lib/enforcement/skill-policy.js +37 -2
  104. package/lib/enforcement/skill-policy.js.map +1 -1
  105. package/lib/forms/errors.js +6 -1
  106. package/lib/forms/errors.js.map +1 -1
  107. package/lib/forms/gate.js +28 -2
  108. package/lib/forms/gate.js.map +1 -1
  109. package/lib/forms/schema-errors.js +47 -0
  110. package/lib/forms/schema-errors.js.map +1 -0
  111. package/lib/forms/schema.js +29 -20
  112. package/lib/forms/schema.js.map +1 -1
  113. package/lib/index.js +148 -9
  114. package/lib/index.js.map +1 -1
  115. package/lib/integration/http.js +9 -10
  116. package/lib/integration/http.js.map +1 -1
  117. package/lib/integration/service.js +9 -0
  118. package/lib/integration/service.js.map +1 -1
  119. package/lib/personal-skills/provider.js +9 -1
  120. package/lib/personal-skills/provider.js.map +1 -1
  121. package/lib/personal-skills/service.js +4 -0
  122. package/lib/personal-skills/service.js.map +1 -1
  123. package/lib/personal-skills/shared-seed.js +65 -0
  124. package/lib/personal-skills/shared-seed.js.map +1 -0
  125. package/lib/prompt-notes.js +19 -1
  126. package/lib/prompt-notes.js.map +1 -1
  127. package/lib/provenance/collector.js +1 -0
  128. package/lib/provenance/collector.js.map +1 -1
  129. package/lib/provenance/extractors.js +6 -1
  130. package/lib/provenance/extractors.js.map +1 -1
  131. package/lib/qa-tools/catalog.js +18 -1
  132. package/lib/qa-tools/catalog.js.map +1 -1
  133. package/lib/qa-tools/code-files.js +207 -0
  134. package/lib/qa-tools/code-files.js.map +1 -0
  135. package/lib/qa-tools/code-tools.js +158 -0
  136. package/lib/qa-tools/code-tools.js.map +1 -0
  137. package/lib/qa-tools/docs-tools.js +49 -12
  138. package/lib/qa-tools/docs-tools.js.map +1 -1
  139. package/lib/qa-tools/index.js +4 -0
  140. package/lib/qa-tools/index.js.map +1 -1
  141. package/lib/qa-tools/request-user-form.js +26 -6
  142. package/lib/qa-tools/request-user-form.js.map +1 -1
  143. package/lib/request-scheduler.js +32 -5
  144. package/lib/request-scheduler.js.map +1 -1
  145. package/lib/resolve-config.js +9 -1
  146. package/lib/resolve-config.js.map +1 -1
  147. package/lib/secure-session.js +16 -4
  148. package/lib/secure-session.js.map +1 -1
  149. package/lib/session-model.js +43 -1
  150. package/lib/session-model.js.map +1 -1
  151. package/lib/shared/history-folder.js +18 -0
  152. package/lib/shared/history-folder.js.map +1 -0
  153. package/lib/typert.host.js +749 -162
  154. package/lib/typert.remote-client.d.ts +19 -7
  155. package/lib/typert.remote-client.js +684 -153
  156. package/lib/types/access/model-choices.d.ts +16 -0
  157. package/lib/types/access/model-policy.d.ts +13 -7
  158. package/lib/types/access/model.d.ts +9 -0
  159. package/lib/types/access/queue-policy.d.ts +30 -0
  160. package/lib/types/access/service.d.ts +27 -0
  161. package/lib/types/account-remotes.d.ts +5 -4
  162. package/lib/types/accounts/database.d.ts +5 -0
  163. package/lib/types/accounts/store.d.ts +6 -0
  164. package/lib/types/chat-sharing/transport.d.ts +1 -1
  165. package/lib/types/client/QaAccountsController.d.ts +3 -1
  166. package/lib/types/client/QaSessionController.d.ts +19 -5
  167. package/lib/types/client/QaSurface.d.ts +2 -0
  168. package/lib/types/client/admin/ModelPolicyEditor.d.ts +2 -0
  169. package/lib/types/client/code-source-styles.d.ts +2 -0
  170. package/lib/types/client/components/QaChatActions.d.ts +3 -1
  171. package/lib/types/client/components/QaCodeSourcePicker.d.ts +9 -0
  172. package/lib/types/client/components/QaComposer.d.ts +2 -0
  173. package/lib/types/client/components/QaComposerSettings.d.ts +16 -0
  174. package/lib/types/client/components/QaFormItem.d.ts +4 -2
  175. package/lib/types/client/components/QaHistoryCatalog.d.ts +19 -0
  176. package/lib/types/client/components/QaInputForm.d.ts +3 -2
  177. package/lib/types/client/components/QaModelSelector.d.ts +4 -0
  178. package/lib/types/client/components/QaSidebar.d.ts +3 -0
  179. package/lib/types/client/composer-settings-styles.d.ts +2 -0
  180. package/lib/types/client/forms-styles.d.ts +1 -1
  181. package/lib/types/client/history-organization-styles.d.ts +3 -0
  182. package/lib/types/client/history-organization.d.ts +38 -0
  183. package/lib/types/client/types.d.ts +12 -4
  184. package/lib/types/client/use-chat-code-source.d.ts +20 -0
  185. package/lib/types/client/use-history-organization.d.ts +8 -0
  186. package/lib/types/client/use-model-selection.d.ts +24 -0
  187. package/lib/types/client/use-qa-file-drop.d.ts +12 -0
  188. package/lib/types/code-source-selection.d.ts +28 -0
  189. package/lib/types/code-sources.js +2 -0
  190. package/lib/types/code-sources.js.map +1 -0
  191. package/lib/types/config-resolvers/integration.d.ts +7 -1
  192. package/lib/types/forms/errors.d.ts +3 -2
  193. package/lib/types/forms/gate.d.ts +4 -2
  194. package/lib/types/forms/schema-errors.d.ts +7 -0
  195. package/lib/types/forms/types.d.ts +14 -0
  196. package/lib/types/index.d.ts +38 -5
  197. package/lib/types/integration/http.d.ts +1 -3
  198. package/lib/types/integration/service.d.ts +2 -0
  199. package/lib/types/personal-skills/shared-seed.d.ts +12 -0
  200. package/lib/types/prompt-notes.d.ts +5 -1
  201. package/lib/types/qa-tools/catalog.d.ts +3 -2
  202. package/lib/types/qa-tools/code-files.d.ts +59 -0
  203. package/lib/types/qa-tools/code-tools.d.ts +7 -0
  204. package/lib/types/qa-tools/docs-tools.d.ts +4 -0
  205. package/lib/types/qa-tools/index.d.ts +2 -0
  206. package/lib/types/request-scheduler.d.ts +21 -2
  207. package/lib/types/session-model.d.ts +11 -2
  208. package/lib/types/shared/history-folder.d.ts +4 -0
  209. package/lib/types/types/accounts.d.ts +11 -0
  210. package/lib/types/types/capability.d.ts +31 -4
  211. package/lib/types/types/code-sources.d.ts +12 -0
  212. package/lib/types/types/config.d.ts +20 -0
  213. package/lib/types/types.d.ts +1 -0
  214. package/lib/user-workspace.js +7 -4
  215. package/lib/user-workspace.js.map +1 -1
  216. package/package.json +6 -5
@@ -0,0 +1,4 @@
1
+ import type { QaHistoryFolderTarget } from "../types/accounts.js";
2
+ /** Bound both fields at the server boundary; identifiers are opaque UI keys. */
3
+ export declare function normalizeHistoryFolder(input: unknown): QaHistoryFolderTarget | null;
4
+ //# sourceMappingURL=history-folder.d.ts.map
@@ -128,12 +128,22 @@ export interface QaClaimResult {
128
128
  * questions cannot read back conversations it was never given.
129
129
  */
130
130
  export type QaServiceTokenScope = "ask" | "sessions:read";
131
+ /** Virtual UI destination, never a workspace or filesystem path. */
132
+ export interface QaHistoryFolderTarget {
133
+ readonly id: string;
134
+ readonly name: string;
135
+ }
136
+ export interface QaOwnedSessionsResult {
137
+ readonly ids: readonly string[];
138
+ readonly integrationFolders?: Readonly<Record<string, QaHistoryFolderTarget>>;
139
+ }
131
140
  /**
132
141
  * What an account asks a new integration token to be. The credential is always
133
142
  * issued to the caller: nothing a browser sends may name another account, so
134
143
  * this shape has no owner field and the administrative path keeps its own.
135
144
  */
136
145
  export interface QaServiceTokenCreateInput {
146
+ readonly historyFolder?: QaHistoryFolderTarget | null;
137
147
  /** A note the operator's list shows; empty becomes a generic label. */
138
148
  readonly label?: string;
139
149
  /** Requested scopes; unknown ones are dropped, explicit empty grants none. */
@@ -149,6 +159,7 @@ export interface QaServiceTokenCreateInput {
149
159
  * that could repeat it would be a list that leaks it.
150
160
  */
151
161
  export interface QaServiceTokenSummary {
162
+ readonly historyFolder?: QaHistoryFolderTarget | null;
152
163
  readonly id: string;
153
164
  readonly label: string;
154
165
  readonly scopes: readonly QaServiceTokenScope[];
@@ -120,8 +120,7 @@ export interface QaSkillActivationRecord {
120
120
  readonly reason?: string;
121
121
  }
122
122
  /**
123
- * One provider and model pair, fixed by policy rather than chosen in the
124
- * interface. `provider` and `model` are named together or not at all, because
123
+ * One provider and model pair. `provider` and `model` are named together, because
125
124
  * the Host refuses either of them alone.
126
125
  */
127
126
  export interface QaModelPair {
@@ -129,6 +128,11 @@ export interface QaModelPair {
129
128
  readonly model: string;
130
129
  readonly reasoningEffort?: string;
131
130
  }
131
+ /** Operator-defined replacement of one exact provider/model pair. */
132
+ export interface QaModelReplacement {
133
+ readonly from: QaModelPair;
134
+ readonly to: QaModelPair;
135
+ }
132
136
  /** One agent capability profile. It never grants administrative access. */
133
137
  export interface QaSubrole {
134
138
  readonly id: string;
@@ -137,11 +141,19 @@ export interface QaSubrole {
137
141
  readonly enabled: boolean;
138
142
  readonly capabilities: QaCapabilitySelection;
139
143
  /**
140
- * The pair every chat of this role is opened on, whatever the visitor picks
141
- * in the interface. Absent means the role keeps no opinion and the
144
+ * The default pair every new chat of this role opens on.
145
+ * Absent means the role keeps no opinion and the
142
146
  * deployment's pair serves it.
143
147
  */
144
148
  readonly model?: QaModelPair;
149
+ /** Additional user-selectable pairs. The default model stays available. */
150
+ readonly allowedModels?: readonly QaModelPair[];
151
+ /**
152
+ * How many of the stand's slots this role's turns may fill at once, ahead of
153
+ * the deployment's `session.maxActiveRequests`. 0 lifts the ceiling for this
154
+ * role's turns; absent keeps the deployment's number.
155
+ */
156
+ readonly maxActiveRequests?: number;
145
157
  readonly ui?: {
146
158
  readonly icon?: string;
147
159
  readonly accent?: string;
@@ -178,6 +190,21 @@ export interface QaUserAccess {
178
190
  * deployment shares. Absent means the account keeps no opinion.
179
191
  */
180
192
  readonly model?: QaModelPair;
193
+ /** Overrides the role's alternatives; [] permits only the default model. */
194
+ readonly allowedModels?: readonly QaModelPair[];
195
+ /**
196
+ * How many of the stand's slots this account's turns may fill at once,
197
+ * ahead of what its role says. 0 lifts the ceiling for this account's
198
+ * turns; absent keeps the role's or the deployment's number.
199
+ */
200
+ readonly maxActiveRequests?: number;
201
+ }
202
+ /** Filtered model choices for one owned chat or the caller's next chat. */
203
+ export interface QaModelOptions {
204
+ readonly models: readonly QaModelCatalogEntry[];
205
+ readonly choices: readonly QaModelPair[];
206
+ readonly defaultModel?: QaModelPair;
207
+ readonly selected?: QaModelPair;
181
208
  }
182
209
  export type QaCapabilitySourceKind = "core" | "plugin" | "mcp" | "filesystem" | "runtime";
183
210
  /** One capability currently installed, or retained as a missing selection. */
@@ -0,0 +1,12 @@
1
+ /** Browser-safe source selection state; filesystem access is configured separately. */
2
+ export interface QaChatCodeSources {
3
+ readonly selectedSource: string | null;
4
+ readonly effectiveSource: string | null;
5
+ readonly entries: readonly {
6
+ readonly id: string;
7
+ readonly label: string;
8
+ }[];
9
+ readonly writable: boolean;
10
+ readonly unavailable: boolean;
11
+ }
12
+ //# sourceMappingURL=code-sources.d.ts.map
@@ -1,4 +1,6 @@
1
1
  import type { QaAccountIdentityField } from "./accounts.js";
2
+ import type { QaModelReplacement } from "./capability.js";
3
+ import type { CodeSourcesConfig, CodeSourcesCatalog } from "@yadsh/dsh-plugin-kit/code-sources";
2
4
  import type { QaApprovalInteraction, QaApprovalPolicy, QaQuestionInteraction, QaQuestionInteractionInput, QaSandboxMode, QaSessionPolicy, QaToolActivationMode, QaToolPolicyMode } from "./policy.js";
3
5
  import type { QaSlashCommandsConfig, ResolvedQaSlashCommands } from "./slash.js";
4
6
  export interface QaSourcesConfig {
@@ -94,6 +96,8 @@ export interface QaNotesConfig {
94
96
  };
95
97
  }
96
98
  export interface QaSurfaceConfig {
99
+ /** Named code trees shared with Git; access is granted separately. */
100
+ readonly codeSources?: CodeSourcesConfig;
97
101
  readonly forms?: Partial<import("../forms/types.js").QaFormPolicy>;
98
102
  readonly enabled?: boolean;
99
103
  readonly route?: {
@@ -120,6 +124,8 @@ export interface QaSurfaceConfig {
120
124
  readonly provider?: string | null;
121
125
  readonly model?: string | null;
122
126
  readonly reasoningEffort?: string | null;
127
+ /** Exact central redirects applied after account/role/deployment precedence. */
128
+ readonly modelReplacements?: readonly QaModelReplacement[];
123
129
  /**
124
130
  * How many chat turns the deployment answers at once. A ceiling is what a
125
131
  * locally hosted model needs: the card runs out long before the queue does,
@@ -274,6 +280,11 @@ export interface QaSurfaceConfig {
274
280
  readonly enabled?: boolean;
275
281
  /** Directory below the personal root; relative, never escaping it. */
276
282
  readonly relativeRoot?: string;
283
+ /** Copy only these deployment skills into shared storage once. */
284
+ readonly sharedSeed?: {
285
+ readonly root: string;
286
+ readonly names: readonly string[];
287
+ } | null;
277
288
  /** Follow manual file edits and refresh the DSH catalog. */
278
289
  readonly watch?: boolean;
279
290
  readonly maxSkillBytes?: number;
@@ -347,6 +358,8 @@ export interface QaIntegrationConfig {
347
358
  readonly maxRequestBytes?: number;
348
359
  /** Ceiling on one inline image attachment, in bytes. */
349
360
  readonly maxAttachmentBytes?: number;
361
+ /** Files per integration request; 0 inherits attachments.maxPending. */
362
+ readonly maxAttachments?: number;
350
363
  /**
351
364
  * Ceiling on the published answer, in characters. The caller posts it into a
352
365
  * ticket comment, whose own budget is smaller than a model's answer, and a
@@ -375,6 +388,7 @@ export interface QaAttachmentsConfig {
375
388
  readonly extensions?: readonly string[];
376
389
  }
377
390
  export interface ResolvedQaSurfaceConfig {
391
+ readonly codeSources: CodeSourcesCatalog;
378
392
  readonly forms: Readonly<import("../forms/types.js").QaFormPolicy>;
379
393
  readonly enabled: boolean;
380
394
  readonly route: {
@@ -399,6 +413,7 @@ export interface ResolvedQaSurfaceConfig {
399
413
  readonly provider: string | null;
400
414
  readonly model: string | null;
401
415
  readonly reasoningEffort: string | null;
416
+ readonly modelReplacements: readonly QaModelReplacement[];
402
417
  readonly maxActiveRequests: number;
403
418
  };
404
419
  readonly ui: {
@@ -477,6 +492,10 @@ export interface ResolvedQaSurfaceConfig {
477
492
  skills: {
478
493
  readonly enabled: boolean;
479
494
  readonly relativeRoot: string;
495
+ readonly sharedSeed: {
496
+ readonly root: string;
497
+ readonly names: readonly string[];
498
+ } | null;
480
499
  readonly watch: boolean;
481
500
  readonly maxSkillBytes: number;
482
501
  readonly allowResourceEditing: boolean;
@@ -597,6 +616,7 @@ export interface ResolvedQaSurfaceConfig {
597
616
  readonly requestsPerMinute: number;
598
617
  readonly maxRequestBytes: number;
599
618
  readonly maxAttachmentBytes: number;
619
+ readonly maxAttachments: number;
600
620
  readonly maxAnswerCharacters: number;
601
621
  };
602
622
  }
@@ -10,6 +10,7 @@ export type * from "./types/config.js";
10
10
  export type * from "./types/slash.js";
11
11
  export type * from "./types/documents.js";
12
12
  export type * from "./types/session.js";
13
+ export type * from "./types/code-sources.js";
13
14
  export type * from "./types/answer-review.js";
14
15
  export type * from "./types/quality.js";
15
16
  export type * from "./types/admin.js";
@@ -135,10 +135,13 @@ function directoryBytes(root, stopAfter) {
135
135
  */
136
136
  export function qaUserWorkspaceDenial(execution, root, attachmentRoot, readPolicy = {}) {
137
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.";
138
141
  if (args?.sandbox_permissions !== undefined ||
139
142
  (execution.name === "edit" &&
140
143
  (args?.replace_all === true || args?.replaceAll === true))) {
141
- return PATH_DENIAL;
144
+ return pathDenial;
142
145
  }
143
146
  if (execution.name === "bash" ||
144
147
  execution.name === "shell" ||
@@ -147,7 +150,7 @@ export function qaUserWorkspaceDenial(execution, root, attachmentRoot, readPolic
147
150
  execution.name === "run_code" ||
148
151
  execution.name === "lsp" ||
149
152
  execution.name === "apply_patch") {
150
- return PATH_DENIAL;
153
+ return pathDenial;
151
154
  }
152
155
  const intent = qaFilesystemIntent(execution.name, args);
153
156
  try {
@@ -173,7 +176,7 @@ export function qaUserWorkspaceDenial(execution, root, attachmentRoot, readPolic
173
176
  statSync(canonical).isFile()) {
174
177
  continue;
175
178
  }
176
- return PATH_DENIAL;
179
+ return pathDenial;
177
180
  }
178
181
  if (intent?.kind === "write") {
179
182
  const requested = intent.bytes;
@@ -186,7 +189,7 @@ export function qaUserWorkspaceDenial(execution, root, attachmentRoot, readPolic
186
189
  return undefined;
187
190
  }
188
191
  catch {
189
- return PATH_DENIAL;
192
+ return pathDenial;
190
193
  }
191
194
  }
192
195
  //# sourceMappingURL=user-workspace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-workspace.js","sourceRoot":"","sources":["../src/user-workspace.ts"],"names":[],"mappings":"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"}
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.19.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",
@@ -138,10 +138,10 @@
138
138
  "yaml": "^2.9.0",
139
139
  "zod": "^4.4.3",
140
140
  "@yadsh/dsh-audit-core": "^0.1.3",
141
- "@yadsh/dsh-plugin-kit": "^0.7.0",
142
- "@yadsh/dsh-audit-ui": "^0.1.4",
143
141
  "@yadsh/dsh-plugin-log": "^0.4.3",
144
- "@yadsh/dsh-documents": "^0.8.2"
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",
@@ -204,7 +204,8 @@
204
204
  "test": "vitest run",
205
205
  "test:coverage": "vitest run --coverage",
206
206
  "verify:package": "node scripts/verify-package.mjs",
207
- "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",
208
209
  "verify:consumer": "tsc -p scripts/fixtures/tsconfig.json --noEmit",
209
210
  "smoke:packed": "node scripts/smoke-packed-dsh.mjs",
210
211
  "e2e:browser": "node scripts/smoke-packed-dsh.mjs --browser",