@yadsh/dsh-qa-surface 0.3.0 → 0.5.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 (276) hide show
  1. package/README.md +192 -15
  2. package/cordis.patch.yml +8 -0
  3. package/lib/account-remotes.js +100 -0
  4. package/lib/account-remotes.js.map +1 -0
  5. package/lib/accounts/credentials.js +35 -0
  6. package/lib/accounts/credentials.js.map +1 -0
  7. package/lib/accounts/errors.js +9 -0
  8. package/lib/accounts/errors.js.map +1 -0
  9. package/lib/accounts/file.js +101 -0
  10. package/lib/accounts/file.js.map +1 -0
  11. package/lib/accounts/store.js +159 -161
  12. package/lib/accounts/store.js.map +1 -1
  13. package/lib/accounts/token.js +61 -0
  14. package/lib/accounts/token.js.map +1 -0
  15. package/lib/approvals.js +179 -0
  16. package/lib/approvals.js.map +1 -0
  17. package/lib/attachment-rules.js +111 -0
  18. package/lib/attachment-rules.js.map +1 -0
  19. package/lib/cli.js +132 -9
  20. package/lib/cli.js.map +1 -1
  21. package/lib/client/QaAccountsController.js +32 -2
  22. package/lib/client/QaAccountsController.js.map +1 -1
  23. package/lib/client/QaSessionController.js +140 -65
  24. package/lib/client/QaSessionController.js.map +1 -1
  25. package/lib/client/QaSurface.js +134 -107
  26. package/lib/client/QaSurface.js.map +1 -1
  27. package/lib/client/QaTranscriptAdapter.js +71 -6
  28. package/lib/client/QaTranscriptAdapter.js.map +1 -1
  29. package/lib/client/approvals.js +104 -0
  30. package/lib/client/approvals.js.map +1 -0
  31. package/lib/client/attachments.js +150 -0
  32. package/lib/client/attachments.js.map +1 -0
  33. package/lib/client/attestation.js +4 -1
  34. package/lib/client/attestation.js.map +1 -1
  35. package/lib/client/base64.js +16 -0
  36. package/lib/client/base64.js.map +1 -0
  37. package/lib/client/chat-files.js +48 -0
  38. package/lib/client/chat-files.js.map +1 -0
  39. package/lib/client/components/Markdown.js +1 -1
  40. package/lib/client/components/Markdown.js.map +1 -1
  41. package/lib/client/components/QaApproval.js +23 -0
  42. package/lib/client/components/QaApproval.js.map +1 -0
  43. package/lib/client/components/QaChangelog.js +62 -19
  44. package/lib/client/components/QaChangelog.js.map +1 -1
  45. package/lib/client/components/QaComposer.js +56 -74
  46. package/lib/client/components/QaComposer.js.map +1 -1
  47. package/lib/client/components/QaFileAttachment.js +19 -0
  48. package/lib/client/components/QaFileAttachment.js.map +1 -0
  49. package/lib/client/components/QaFilesPanel.js +45 -0
  50. package/lib/client/components/QaFilesPanel.js.map +1 -0
  51. package/lib/client/components/QaHeader.js +34 -0
  52. package/lib/client/components/QaHeader.js.map +1 -0
  53. package/lib/client/components/QaMessage.js +17 -4
  54. package/lib/client/components/QaMessage.js.map +1 -1
  55. package/lib/client/components/QaModal.js +31 -0
  56. package/lib/client/components/QaModal.js.map +1 -0
  57. package/lib/client/components/QaProfile.js +64 -0
  58. package/lib/client/components/QaProfile.js.map +1 -0
  59. package/lib/client/components/QaQuestions.js +96 -0
  60. package/lib/client/components/QaQuestions.js.map +1 -0
  61. package/lib/client/components/QaRightRail.js +15 -0
  62. package/lib/client/components/QaRightRail.js.map +1 -0
  63. package/lib/client/components/QaSidebar.js +6 -1
  64. package/lib/client/components/QaSidebar.js.map +1 -1
  65. package/lib/client/components/{QaSourcesDrawer.js → QaSourcesPanel.js} +3 -3
  66. package/lib/client/components/QaSourcesPanel.js.map +1 -0
  67. package/lib/client/components/QaTurnRail.js +15 -0
  68. package/lib/client/components/QaTurnRail.js.map +1 -1
  69. package/lib/client/components/QaWidthHandle.js +25 -20
  70. package/lib/client/components/QaWidthHandle.js.map +1 -1
  71. package/lib/client/components/QaWorkGroup.js +19 -20
  72. package/lib/client/components/QaWorkGroup.js.map +1 -1
  73. package/lib/client/components/surface-utils.js +28 -0
  74. package/lib/client/components/surface-utils.js.map +1 -0
  75. package/lib/client/components/thinking-phrases.js +24 -0
  76. package/lib/client/components/thinking-phrases.js.map +1 -0
  77. package/lib/client/create-session.js +7 -32
  78. package/lib/client/create-session.js.map +1 -1
  79. package/lib/client/failure-copy.js +63 -0
  80. package/lib/client/failure-copy.js.map +1 -0
  81. package/lib/client/index.js +49 -7
  82. package/lib/client/index.js.map +1 -1
  83. package/lib/client/project-session-state.js +5 -3
  84. package/lib/client/project-session-state.js.map +1 -1
  85. package/lib/client/prompt-content.js +54 -0
  86. package/lib/client/prompt-content.js.map +1 -0
  87. package/lib/client/questions.js +114 -0
  88. package/lib/client/questions.js.map +1 -0
  89. package/lib/client/settings/card.js +143 -0
  90. package/lib/client/settings/card.js.map +1 -0
  91. package/lib/client/settings/fields.js +145 -0
  92. package/lib/client/settings/fields.js.map +1 -0
  93. package/lib/client/settings/format.js +255 -0
  94. package/lib/client/settings/format.js.map +1 -0
  95. package/lib/client/settings/sections/access.js +25 -0
  96. package/lib/client/settings/sections/access.js.map +1 -0
  97. package/lib/client/settings/sections/accounts.js +47 -0
  98. package/lib/client/settings/sections/accounts.js.map +1 -0
  99. package/lib/client/settings/sections/attachments.js +46 -0
  100. package/lib/client/settings/sections/attachments.js.map +1 -0
  101. package/lib/client/settings/sections/branding.js +28 -0
  102. package/lib/client/settings/sections/branding.js.map +1 -0
  103. package/lib/client/settings/sections/common.js +20 -0
  104. package/lib/client/settings/sections/common.js.map +1 -0
  105. package/lib/client/settings/sections/embedding.js +19 -0
  106. package/lib/client/settings/sections/embedding.js.map +1 -0
  107. package/lib/client/settings/sections/interface.js +60 -0
  108. package/lib/client/settings/sections/interface.js.map +1 -0
  109. package/lib/client/settings/sections/lockdown.js +82 -0
  110. package/lib/client/settings/sections/lockdown.js.map +1 -0
  111. package/lib/client/settings/sections/session.js +53 -0
  112. package/lib/client/settings/sections/session.js.map +1 -0
  113. package/lib/client/settings/sections/sources.js +74 -0
  114. package/lib/client/settings/sections/sources.js.map +1 -0
  115. package/lib/client/settings/sections/status.js +37 -0
  116. package/lib/client/settings/sections/status.js.map +1 -0
  117. package/lib/client/settings/sections.js +23 -0
  118. package/lib/client/settings/sections.js.map +1 -0
  119. package/lib/client/settings/styles.js +57 -0
  120. package/lib/client/settings/styles.js.map +1 -0
  121. package/lib/client/stream-publisher.js +47 -0
  122. package/lib/client/stream-publisher.js.map +1 -0
  123. package/lib/client/styles.js +127 -19
  124. package/lib/client/styles.js.map +1 -1
  125. package/lib/client/types.js +2 -0
  126. package/lib/client/types.js.map +1 -1
  127. package/lib/client/use-right-rail.js +96 -0
  128. package/lib/client/use-right-rail.js.map +1 -0
  129. package/lib/client/use-session-ui-state.js +26 -19
  130. package/lib/client/use-session-ui-state.js.map +1 -1
  131. package/lib/client.js +5694 -813
  132. package/lib/client.js.map +1 -1
  133. package/lib/config-resolvers/accounts.js +60 -0
  134. package/lib/config-resolvers/accounts.js.map +1 -0
  135. package/lib/config-resolvers/attachments.js +28 -0
  136. package/lib/config-resolvers/attachments.js.map +1 -0
  137. package/lib/config-resolvers/basics.js +61 -0
  138. package/lib/config-resolvers/basics.js.map +1 -0
  139. package/lib/config-resolvers/defaults.js +136 -0
  140. package/lib/config-resolvers/defaults.js.map +1 -0
  141. package/lib/config-resolvers/lockdown.js +90 -0
  142. package/lib/config-resolvers/lockdown.js.map +1 -0
  143. package/lib/config-resolvers/session.js +42 -0
  144. package/lib/config-resolvers/session.js.map +1 -0
  145. package/lib/config-resolvers/shared.js +51 -0
  146. package/lib/config-resolvers/shared.js.map +1 -0
  147. package/lib/config-resolvers/sources.js +83 -0
  148. package/lib/config-resolvers/sources.js.map +1 -0
  149. package/lib/config-resolvers/ui.js +20 -0
  150. package/lib/config-resolvers/ui.js.map +1 -0
  151. package/lib/config.js +76 -6
  152. package/lib/config.js.map +1 -1
  153. package/lib/entry-redirect.js +2 -1
  154. package/lib/entry-redirect.js.map +1 -1
  155. package/lib/index.js +198 -79
  156. package/lib/index.js.map +1 -1
  157. package/lib/profile.js +214 -0
  158. package/lib/profile.js.map +1 -0
  159. package/lib/prompt-notes.js +231 -0
  160. package/lib/prompt-notes.js.map +1 -0
  161. package/lib/provenance/host-store.js +25 -9
  162. package/lib/provenance/host-store.js.map +1 -1
  163. package/lib/provenance/reported.js +37 -12
  164. package/lib/provenance/reported.js.map +1 -1
  165. package/lib/questions.js +185 -0
  166. package/lib/questions.js.map +1 -0
  167. package/lib/resolve-config.js +35 -410
  168. package/lib/resolve-config.js.map +1 -1
  169. package/lib/secure-session.js +139 -21
  170. package/lib/secure-session.js.map +1 -1
  171. package/lib/session-ownership.js +55 -0
  172. package/lib/session-ownership.js.map +1 -0
  173. package/lib/shared/session-key.js +18 -0
  174. package/lib/shared/session-key.js.map +1 -0
  175. package/lib/shared/settings.js +10 -0
  176. package/lib/shared/settings.js.map +1 -0
  177. package/lib/thinking-phrases.js +68 -0
  178. package/lib/thinking-phrases.js.map +1 -0
  179. package/lib/typert.host.js +506 -21
  180. package/lib/typert.remote-client.d.ts +15 -1
  181. package/lib/typert.remote-client.js +407 -15
  182. package/lib/types/account-remotes.d.ts +42 -0
  183. package/lib/types/accounts/credentials.d.ts +20 -0
  184. package/lib/types/accounts/errors.d.ts +11 -0
  185. package/lib/types/accounts/file.d.ts +82 -0
  186. package/lib/types/accounts/store.d.ts +74 -43
  187. package/lib/types/accounts/token.d.ts +31 -0
  188. package/lib/types/approvals.d.ts +65 -0
  189. package/lib/types/attachment-rules.d.ts +44 -0
  190. package/lib/types/cli.d.ts +2 -2
  191. package/lib/types/client/QaAccountsController.d.ts +8 -1
  192. package/lib/types/client/QaSessionController.d.ts +53 -16
  193. package/lib/types/client/QaSurface.d.ts +14 -1
  194. package/lib/types/client/approvals.d.ts +39 -0
  195. package/lib/types/client/attachments.d.ts +54 -0
  196. package/lib/types/client/base64.d.ts +10 -0
  197. package/lib/types/client/chat-files.d.ts +30 -0
  198. package/lib/types/client/components/QaApproval.d.ts +13 -0
  199. package/lib/types/client/components/QaChangelog.d.ts +1 -1
  200. package/lib/types/client/components/QaComposer.d.ts +8 -4
  201. package/lib/types/client/components/QaFileAttachment.d.ts +14 -0
  202. package/lib/types/client/components/QaFilesPanel.d.ts +15 -0
  203. package/lib/types/client/components/QaHeader.d.ts +41 -0
  204. package/lib/types/client/components/QaMessage.d.ts +3 -1
  205. package/lib/types/client/components/QaModal.d.ts +26 -0
  206. package/lib/types/client/components/QaProfile.d.ts +25 -0
  207. package/lib/types/client/components/QaQuestions.d.ts +13 -0
  208. package/lib/types/client/components/QaRightRail.d.ts +23 -0
  209. package/lib/types/client/components/QaSidebar.d.ts +14 -0
  210. package/lib/types/client/components/{QaSourcesDrawer.d.ts → QaSourcesPanel.d.ts} +7 -4
  211. package/lib/types/client/components/QaTurnRail.d.ts +6 -0
  212. package/lib/types/client/components/QaWidthHandle.d.ts +14 -7
  213. package/lib/types/client/components/QaWorkGroup.d.ts +5 -3
  214. package/lib/types/client/components/surface-utils.d.ts +11 -0
  215. package/lib/types/client/components/thinking-phrases.d.ts +9 -0
  216. package/lib/types/client/create-session.d.ts +6 -9
  217. package/lib/types/client/failure-copy.d.ts +19 -0
  218. package/lib/types/client/project-session-state.d.ts +8 -1
  219. package/lib/types/client/prompt-content.d.ts +30 -0
  220. package/lib/types/client/questions.d.ts +45 -0
  221. package/lib/types/client/settings/card.d.ts +23 -0
  222. package/lib/types/client/settings/fields.d.ts +139 -0
  223. package/lib/types/client/settings/format.d.ts +108 -0
  224. package/lib/types/client/settings/sections/access.d.ts +9 -0
  225. package/lib/types/client/settings/sections/accounts.d.ts +9 -0
  226. package/lib/types/client/settings/sections/attachments.d.ts +15 -0
  227. package/lib/types/client/settings/sections/branding.d.ts +8 -0
  228. package/lib/types/client/settings/sections/common.d.ts +28 -0
  229. package/lib/types/client/settings/sections/embedding.d.ts +8 -0
  230. package/lib/types/client/settings/sections/interface.d.ts +9 -0
  231. package/lib/types/client/settings/sections/lockdown.d.ts +9 -0
  232. package/lib/types/client/settings/sections/session.d.ts +9 -0
  233. package/lib/types/client/settings/sections/sources.d.ts +9 -0
  234. package/lib/types/client/settings/sections/status.d.ts +22 -0
  235. package/lib/types/client/settings/sections.d.ts +25 -0
  236. package/lib/types/client/settings/styles.d.ts +8 -0
  237. package/lib/types/client/stream-publisher.d.ts +28 -0
  238. package/lib/types/client/types.d.ts +76 -1
  239. package/lib/types/client/use-right-rail.d.ts +56 -0
  240. package/lib/types/client/use-session-ui-state.d.ts +13 -7
  241. package/lib/types/config-resolvers/accounts.d.ts +15 -0
  242. package/lib/types/config-resolvers/attachments.d.ts +6 -0
  243. package/lib/types/config-resolvers/basics.d.ts +8 -0
  244. package/lib/types/config-resolvers/defaults.d.ts +4 -0
  245. package/lib/types/config-resolvers/lockdown.d.ts +10 -0
  246. package/lib/types/config-resolvers/session.d.ts +6 -0
  247. package/lib/types/config-resolvers/shared.d.ts +23 -0
  248. package/lib/types/config-resolvers/sources.d.ts +6 -0
  249. package/lib/types/config-resolvers/ui.d.ts +6 -0
  250. package/lib/types/index.d.ts +48 -15
  251. package/lib/types/profile.d.ts +76 -0
  252. package/lib/types/prompt-notes.d.ts +110 -0
  253. package/lib/types/provenance/reported.d.ts +9 -1
  254. package/lib/types/questions.d.ts +83 -0
  255. package/lib/types/resolve-config.d.ts +8 -3
  256. package/lib/types/secure-session.d.ts +46 -2
  257. package/lib/types/session-ownership.d.ts +30 -0
  258. package/lib/types/shared/session-key.d.ts +23 -0
  259. package/lib/types/shared/settings.d.ts +10 -0
  260. package/lib/types/thinking-phrases.d.ts +17 -0
  261. package/lib/types/types.d.ts +203 -9
  262. package/lib/types/user-workspace.d.ts +42 -0
  263. package/lib/user-workspace.js +246 -0
  264. package/lib/user-workspace.js.map +1 -0
  265. package/package.json +15 -8
  266. package/CHANGELOG.md +0 -176
  267. package/SPEC-dsh-qa-surface.md +0 -2425
  268. package/docs/ARCHITECTURE.md +0 -66
  269. package/docs/COMPATIBILITY.md +0 -14
  270. package/docs/CONFIGURATION.md +0 -199
  271. package/docs/EMBEDDING.md +0 -13
  272. package/docs/SOURCES-MIGRATION.md +0 -28
  273. package/docs/SOURCES-PROVENANCE-AUDIT.md +0 -88
  274. package/docs/SPEC-dsh-qa-surface-accounts.md +0 -219
  275. package/docs/SPEC-dsh-qa-surface-sources-provenance.md +0 -1692
  276. package/lib/client/components/QaSourcesDrawer.js.map +0 -1
@@ -1,416 +1,41 @@
1
- export const DEFAULT_QA_SURFACE_CONFIG = Object.freeze({
2
- enabled: true,
3
- route: Object.freeze({ path: "/qa", matchChildren: true }),
4
- branding: Object.freeze({
5
- title: "Помощник",
6
- subtitle: "",
7
- welcomeMessage: "Чем могу помочь?",
8
- placeholder: "Задайте вопрос…",
9
- logoUrl: null,
10
- disclaimer: "Диалоги могут быть видны другим пользователям сервера и используются для улучшения качества ответов.",
11
- }),
12
- session: Object.freeze({
13
- policy: "browser-persistent",
14
- storageKey: "dsh-qa-surface.session",
15
- cwd: null,
16
- workspaceId: null,
17
- fixedSessionId: null,
18
- agentPreset: null,
19
- provider: null,
20
- model: null,
21
- reasoningEffort: null,
22
- }),
23
- ui: Object.freeze({
24
- showHeader: true,
25
- showReset: false,
26
- showStop: true,
27
- showTimestamps: false,
28
- showToolActivity: false,
29
- showReasoning: false,
30
- renderMarkdown: true,
31
- maxContentWidth: 900,
32
- showSessionList: false,
33
- }),
34
- suggestedQuestions: Object.freeze([
35
- "Что ты умеешь?",
36
- "С чего начать?",
37
- "Помоги разобраться с ошибкой",
38
- ]),
39
- interaction: Object.freeze({
40
- approvals: "blocked",
41
- questions: "unsupported",
42
- }),
43
- lockdown: Object.freeze({
44
- enabled: true,
45
- enforceFixedAgentPreset: true,
46
- enforceFixedWorkspace: true,
47
- enforceFixedModel: true,
48
- sandboxMode: "read-only",
49
- approvalPolicy: "never",
50
- permissionPreset: "qa-read-only",
51
- allowPermissionChanges: false,
52
- allowSlashCommands: false,
53
- allowSettingsMutation: false,
54
- allowSessionReset: false,
55
- allowSessionRename: false,
56
- allowSessionDelete: false,
57
- allowArbitrarySessionOpen: false,
58
- toolPolicy: Object.freeze({
59
- mode: "allow-list",
60
- allow: Object.freeze([]),
61
- }),
62
- }),
63
- embedding: Object.freeze({ frameAncestors: null }),
64
- accounts: Object.freeze({
65
- enabled: false,
66
- allowRegistration: true,
67
- sessionTtlDays: 30,
68
- showOtherUsersChats: false,
69
- }),
70
- entry: Object.freeze({
71
- redirectNonLoopback: true,
72
- cookieBootstrap: true,
73
- }),
74
- sources: Object.freeze({
75
- enabled: true,
76
- collect: Object.freeze({
77
- parentAgent: true,
78
- subagents: true,
79
- persistTurnEvent: true,
80
- }),
81
- display: Object.freeze({
82
- sidebar: true,
83
- footer: true,
84
- groupByKind: true,
85
- showDiscovered: false,
86
- showOriginBadges: false,
87
- maxInitiallyVisiblePerGroup: 8,
88
- }),
89
- webSearch: Object.freeze({
90
- promoteSearchResultsWithoutFetch: true,
91
- maxPromotedPerSearch: 5,
92
- }),
93
- dedupe: Object.freeze({
94
- normalizeUrls: true,
95
- stripTrackingParams: true,
96
- mergeFileRanges: true,
97
- }),
98
- filePreview: Object.freeze({
99
- enabled: true,
100
- markdownRenderedByDefault: true,
101
- allowRawToggle: true,
102
- maxBytes: 2_000_000,
103
- maxMarkdownRenderBytes: 1_000_000,
104
- }),
105
- subagents: Object.freeze({
106
- inheritSources: true,
107
- enableReportToolFallback: true,
108
- markIncompleteOpaqueRuns: true,
109
- }),
110
- legacy: Object.freeze({ parseAssistantSourcesBlock: false }),
111
- }),
112
- });
113
- function optionalText(value) {
114
- const trimmed = value?.trim() ?? "";
115
- return trimmed === "" ? null : trimmed;
116
- }
117
- export function normalizeRoutePath(value) {
118
- const trimmed = value.trim();
119
- if (trimmed === "" || !trimmed.startsWith("/")) {
120
- throw new TypeError("dsh-qa-surface: route.path must start with /");
121
- }
122
- const path = trimmed.length > 1 ? trimmed.replace(/\/+$/u, "") : trimmed;
123
- if (path === "/") {
124
- throw new TypeError("dsh-qa-surface: route.path cannot replace the operator root");
125
- }
126
- if (path === "/api" || path.startsWith("/api/")) {
127
- throw new TypeError("dsh-qa-surface: route.path cannot claim /api");
128
- }
129
- if (path === "/plugins" || path.startsWith("/plugins/")) {
130
- throw new TypeError("dsh-qa-surface: route.path cannot claim /plugins");
131
- }
132
- return path;
133
- }
134
- function uniqueQuestions(values) {
135
- const questions = [
136
- ...new Set(values.map((value) => value.trim()).filter(Boolean)),
137
- ];
138
- if (questions.some((value) => value.length > 500)) {
139
- throw new TypeError("dsh-qa-surface: suggested questions must be at most 500 characters");
140
- }
141
- return Object.freeze(questions);
142
- }
143
- function uniqueToolNames(values) {
144
- const names = [
145
- ...new Set(values.map((value) => value.trim()).filter(Boolean)),
146
- ];
147
- if (names.some((value) => value.length > 200)) {
148
- throw new TypeError("dsh-qa-surface: lockdown.toolPolicy.allow names must be at most 200 characters");
149
- }
150
- return Object.freeze(names);
151
- }
152
- /** Materialize defaults and enforce route/session/model safety constraints. */
1
+ import { resolveAccounts } from "./config-resolvers/accounts.js";
2
+ import { resolveAttachments } from "./config-resolvers/attachments.js";
3
+ import { normalizeRoutePath, resolveBasics, } from "./config-resolvers/basics.js";
4
+ import { DEFAULT_QA_SURFACE_CONFIG } from "./config-resolvers/defaults.js";
5
+ import { resolveLockdown } from "./config-resolvers/lockdown.js";
6
+ import { resolveSession } from "./config-resolvers/session.js";
7
+ import { resolveSources } from "./config-resolvers/sources.js";
8
+ import { uniquePhrases, uniqueQuestions } from "./config-resolvers/shared.js";
9
+ import { resolveUi } from "./config-resolvers/ui.js";
10
+ export { DEFAULT_QA_SURFACE_CONFIG, normalizeRoutePath };
11
+ /**
12
+ * Materialize defaults and enforce route/session/model safety constraints by
13
+ * running one resolver per config domain — in the order the checks have
14
+ * always fired — and assembling the frozen result.
15
+ */
153
16
  export function resolveConfig(input = {}) {
154
- const routePath = normalizeRoutePath(input.route?.path ?? DEFAULT_QA_SURFACE_CONFIG.route.path);
155
- const policy = input.session?.policy ?? DEFAULT_QA_SURFACE_CONFIG.session.policy;
156
- const fixedSessionId = optionalText(input.session?.fixedSessionId);
157
- if (policy === "fixed" && fixedSessionId === null) {
158
- throw new TypeError("dsh-qa-surface: session.fixedSessionId is required for fixed policy");
159
- }
160
- // The cwd pin is the no-registry alternative to workspaceId; both pin the
161
- // session to one directory, so together they are a configuration error.
162
- const cwd = optionalText(input.session?.cwd);
163
- if (cwd !== null && !/^([a-zA-Z]:[/\\]|\/)/u.test(cwd)) {
164
- throw new TypeError("dsh-qa-surface: session.cwd must be an absolute directory path");
165
- }
166
- const workspaceId = optionalText(input.session?.workspaceId);
167
- if (workspaceId !== null && cwd !== null) {
168
- throw new TypeError("dsh-qa-surface: session.workspaceId and session.cwd are mutually exclusive");
169
- }
170
- const provider = optionalText(input.session?.provider);
171
- const model = optionalText(input.session?.model);
172
- if ((provider === null) !== (model === null)) {
173
- throw new TypeError("dsh-qa-surface: session.provider and session.model must be set together");
174
- }
175
- const storageKey = input.session?.storageKey?.trim() ??
176
- DEFAULT_QA_SURFACE_CONFIG.session.storageKey;
177
- if (storageKey === "") {
178
- throw new TypeError("dsh-qa-surface: session.storageKey cannot be empty");
179
- }
180
- const maxContentWidth = input.ui?.maxContentWidth ?? DEFAULT_QA_SURFACE_CONFIG.ui.maxContentWidth;
181
- if (!Number.isSafeInteger(maxContentWidth) ||
182
- maxContentWidth < 480 ||
183
- maxContentWidth > 1600) {
184
- throw new TypeError("dsh-qa-surface: ui.maxContentWidth must be an integer from 480 to 1600");
185
- }
186
- const lockdownEnabled = input.lockdown?.enabled ?? DEFAULT_QA_SURFACE_CONFIG.lockdown.enabled;
187
- const rawLockdown = input.lockdown;
188
- const forbiddenCapabilityFlags = [
189
- ["allowPermissionChanges", rawLockdown?.allowPermissionChanges],
190
- ["allowSlashCommands", rawLockdown?.allowSlashCommands],
191
- ["allowSettingsMutation", rawLockdown?.allowSettingsMutation],
192
- ["allowSessionRename", rawLockdown?.allowSessionRename],
193
- ["allowSessionDelete", rawLockdown?.allowSessionDelete],
194
- ["allowArbitrarySessionOpen", rawLockdown?.allowArbitrarySessionOpen],
195
- ];
196
- const weakenedFlag = forbiddenCapabilityFlags.find(([, value]) => value === true);
197
- if (weakenedFlag !== undefined) {
198
- throw new TypeError(`dsh-qa-surface: lockdown.${weakenedFlag[0]} cannot be enabled`);
199
- }
200
- if (input.lockdown?.sandboxMode !== undefined &&
201
- input.lockdown.sandboxMode !== "read-only") {
202
- throw new TypeError("dsh-qa-surface: lockdown.sandboxMode must be read-only");
203
- }
204
- if (input.lockdown?.approvalPolicy !== undefined &&
205
- input.lockdown.approvalPolicy !== "never") {
206
- throw new TypeError("dsh-qa-surface: lockdown.approvalPolicy must be never");
207
- }
208
- if (input.lockdown?.toolPolicy?.mode !== undefined &&
209
- input.lockdown.toolPolicy.mode !== "allow-list") {
210
- throw new TypeError("dsh-qa-surface: lockdown.toolPolicy.mode must be allow-list");
211
- }
212
- const permissionPreset = input.lockdown?.permissionPreset?.trim() ??
213
- DEFAULT_QA_SURFACE_CONFIG.lockdown.permissionPreset;
214
- if (lockdownEnabled && permissionPreset === "") {
215
- throw new TypeError("dsh-qa-surface: lockdown.permissionPreset is required when lockdown is enabled");
216
- }
217
- const allowSessionReset = input.lockdown?.allowSessionReset ??
218
- DEFAULT_QA_SURFACE_CONFIG.lockdown.allowSessionReset;
219
- if (lockdownEnabled &&
220
- (input.ui?.showReset ?? DEFAULT_QA_SURFACE_CONFIG.ui.showReset) &&
221
- !allowSessionReset) {
222
- throw new TypeError("dsh-qa-surface: ui.showReset requires lockdown.allowSessionReset");
223
- }
224
- const maxInitiallyVisiblePerGroup = input.sources?.display?.maxInitiallyVisiblePerGroup ??
225
- DEFAULT_QA_SURFACE_CONFIG.sources.display.maxInitiallyVisiblePerGroup;
226
- const maxPromotedPerSearch = input.sources?.webSearch?.maxPromotedPerSearch ??
227
- DEFAULT_QA_SURFACE_CONFIG.sources.webSearch.maxPromotedPerSearch;
228
- const maxBytes = input.sources?.filePreview?.maxBytes ??
229
- DEFAULT_QA_SURFACE_CONFIG.sources.filePreview.maxBytes;
230
- const maxMarkdownRenderBytes = input.sources?.filePreview?.maxMarkdownRenderBytes ??
231
- DEFAULT_QA_SURFACE_CONFIG.sources.filePreview.maxMarkdownRenderBytes;
232
- for (const [name, value, min, max] of [
233
- [
234
- "sources.display.maxInitiallyVisiblePerGroup",
235
- maxInitiallyVisiblePerGroup,
236
- 1,
237
- 100,
238
- ],
239
- ["sources.webSearch.maxPromotedPerSearch", maxPromotedPerSearch, 0, 50],
240
- ["sources.filePreview.maxBytes", maxBytes, 1_024, 20_000_000],
241
- [
242
- "sources.filePreview.maxMarkdownRenderBytes",
243
- maxMarkdownRenderBytes,
244
- 1_024,
245
- 10_000_000,
246
- ],
247
- ]) {
248
- if (!Number.isSafeInteger(value) || value < min || value > max) {
249
- throw new TypeError(`dsh-qa-surface: ${name} must be an integer from ${min} to ${max}`);
250
- }
251
- }
252
- if (maxMarkdownRenderBytes > maxBytes) {
253
- throw new TypeError("dsh-qa-surface: sources.filePreview.maxMarkdownRenderBytes cannot exceed maxBytes");
254
- }
255
- const sessionTtlDays = input.accounts?.sessionTtlDays ??
256
- DEFAULT_QA_SURFACE_CONFIG.accounts.sessionTtlDays;
257
- if (!Number.isSafeInteger(sessionTtlDays) ||
258
- sessionTtlDays < 1 ||
259
- sessionTtlDays > 365) {
260
- throw new TypeError("dsh-qa-surface: accounts.sessionTtlDays must be an integer from 1 to 365");
261
- }
17
+ const basics = resolveBasics(input);
18
+ const session = resolveSession(input);
19
+ const ui = resolveUi(input);
20
+ const lockdown = resolveLockdown(input, ui);
21
+ const sources = resolveSources(input);
22
+ const attachments = resolveAttachments(input);
23
+ const accounts = resolveAccounts(input, { session, lockdown });
262
24
  return Object.freeze({
263
- enabled: input.enabled ?? DEFAULT_QA_SURFACE_CONFIG.enabled,
264
- route: Object.freeze({
265
- path: routePath,
266
- matchChildren: input.route?.matchChildren ??
267
- DEFAULT_QA_SURFACE_CONFIG.route.matchChildren,
268
- }),
269
- branding: Object.freeze({
270
- title: input.branding?.title?.trim() ||
271
- DEFAULT_QA_SURFACE_CONFIG.branding.title,
272
- subtitle: input.branding?.subtitle?.trim() ?? "",
273
- welcomeMessage: input.branding?.welcomeMessage?.trim() ??
274
- DEFAULT_QA_SURFACE_CONFIG.branding.welcomeMessage,
275
- placeholder: input.branding?.placeholder?.trim() ||
276
- DEFAULT_QA_SURFACE_CONFIG.branding.placeholder,
277
- logoUrl: optionalText(input.branding?.logoUrl),
278
- // Undefined falls back to the default notice; an explicit null or
279
- // empty string hides the plate entirely.
280
- disclaimer: input.branding?.disclaimer === undefined
281
- ? DEFAULT_QA_SURFACE_CONFIG.branding.disclaimer
282
- : (optionalText(input.branding.disclaimer) ?? ""),
283
- }),
284
- session: Object.freeze({
285
- policy,
286
- storageKey,
287
- cwd,
288
- workspaceId: optionalText(input.session?.workspaceId),
289
- fixedSessionId,
290
- agentPreset: optionalText(input.session?.agentPreset),
291
- provider,
292
- model,
293
- reasoningEffort: optionalText(input.session?.reasoningEffort),
294
- }),
295
- ui: Object.freeze({
296
- showHeader: input.ui?.showHeader ?? DEFAULT_QA_SURFACE_CONFIG.ui.showHeader,
297
- showReset: input.ui?.showReset ?? DEFAULT_QA_SURFACE_CONFIG.ui.showReset,
298
- showStop: input.ui?.showStop ?? DEFAULT_QA_SURFACE_CONFIG.ui.showStop,
299
- showTimestamps: input.ui?.showTimestamps ?? DEFAULT_QA_SURFACE_CONFIG.ui.showTimestamps,
300
- showToolActivity: input.ui?.showToolActivity ??
301
- DEFAULT_QA_SURFACE_CONFIG.ui.showToolActivity,
302
- showReasoning: input.ui?.showReasoning ?? DEFAULT_QA_SURFACE_CONFIG.ui.showReasoning,
303
- renderMarkdown: input.ui?.renderMarkdown ?? DEFAULT_QA_SURFACE_CONFIG.ui.renderMarkdown,
304
- maxContentWidth,
305
- showSessionList: input.ui?.showSessionList ??
306
- DEFAULT_QA_SURFACE_CONFIG.ui.showSessionList,
307
- }),
25
+ enabled: basics.enabled,
26
+ route: basics.route,
27
+ branding: basics.branding,
28
+ session,
29
+ ui,
308
30
  suggestedQuestions: uniqueQuestions(input.suggestedQuestions ?? DEFAULT_QA_SURFACE_CONFIG.suggestedQuestions),
309
- interaction: Object.freeze({
310
- approvals: "blocked",
311
- questions: "unsupported",
312
- }),
313
- lockdown: Object.freeze({
314
- enabled: lockdownEnabled,
315
- enforceFixedAgentPreset: input.lockdown?.enforceFixedAgentPreset ??
316
- DEFAULT_QA_SURFACE_CONFIG.lockdown.enforceFixedAgentPreset,
317
- enforceFixedWorkspace: input.lockdown?.enforceFixedWorkspace ??
318
- DEFAULT_QA_SURFACE_CONFIG.lockdown.enforceFixedWorkspace,
319
- enforceFixedModel: input.lockdown?.enforceFixedModel ??
320
- DEFAULT_QA_SURFACE_CONFIG.lockdown.enforceFixedModel,
321
- sandboxMode: "read-only",
322
- approvalPolicy: "never",
323
- permissionPreset,
324
- allowPermissionChanges: false,
325
- allowSlashCommands: false,
326
- allowSettingsMutation: false,
327
- allowSessionReset,
328
- allowSessionRename: false,
329
- allowSessionDelete: false,
330
- allowArbitrarySessionOpen: false,
331
- toolPolicy: Object.freeze({
332
- mode: "allow-list",
333
- allow: uniqueToolNames(input.lockdown?.toolPolicy?.allow ?? []),
334
- }),
335
- }),
336
- embedding: Object.freeze({
337
- frameAncestors: optionalText(input.embedding?.frameAncestors),
338
- }),
339
- accounts: Object.freeze({
340
- enabled: input.accounts?.enabled ?? DEFAULT_QA_SURFACE_CONFIG.accounts.enabled,
341
- allowRegistration: input.accounts?.allowRegistration ??
342
- DEFAULT_QA_SURFACE_CONFIG.accounts.allowRegistration,
343
- sessionTtlDays,
344
- showOtherUsersChats: input.accounts?.showOtherUsersChats ??
345
- DEFAULT_QA_SURFACE_CONFIG.accounts.showOtherUsersChats,
346
- }),
347
- entry: Object.freeze({
348
- redirectNonLoopback: input.entry?.redirectNonLoopback ??
349
- DEFAULT_QA_SURFACE_CONFIG.entry.redirectNonLoopback,
350
- cookieBootstrap: input.entry?.cookieBootstrap ??
351
- DEFAULT_QA_SURFACE_CONFIG.entry.cookieBootstrap,
352
- }),
353
- sources: Object.freeze({
354
- enabled: input.sources?.enabled ?? DEFAULT_QA_SURFACE_CONFIG.sources.enabled,
355
- collect: Object.freeze({
356
- parentAgent: input.sources?.collect?.parentAgent ??
357
- DEFAULT_QA_SURFACE_CONFIG.sources.collect.parentAgent,
358
- subagents: input.sources?.collect?.subagents ??
359
- DEFAULT_QA_SURFACE_CONFIG.sources.collect.subagents,
360
- persistTurnEvent: input.sources?.collect?.persistTurnEvent ??
361
- DEFAULT_QA_SURFACE_CONFIG.sources.collect.persistTurnEvent,
362
- }),
363
- display: Object.freeze({
364
- sidebar: input.sources?.display?.sidebar ??
365
- DEFAULT_QA_SURFACE_CONFIG.sources.display.sidebar,
366
- footer: input.sources?.display?.footer ??
367
- DEFAULT_QA_SURFACE_CONFIG.sources.display.footer,
368
- groupByKind: input.sources?.display?.groupByKind ??
369
- DEFAULT_QA_SURFACE_CONFIG.sources.display.groupByKind,
370
- showDiscovered: input.sources?.display?.showDiscovered ??
371
- DEFAULT_QA_SURFACE_CONFIG.sources.display.showDiscovered,
372
- showOriginBadges: input.sources?.display?.showOriginBadges ??
373
- DEFAULT_QA_SURFACE_CONFIG.sources.display.showOriginBadges,
374
- maxInitiallyVisiblePerGroup,
375
- }),
376
- webSearch: Object.freeze({
377
- promoteSearchResultsWithoutFetch: input.sources?.webSearch?.promoteSearchResultsWithoutFetch ??
378
- DEFAULT_QA_SURFACE_CONFIG.sources.webSearch
379
- .promoteSearchResultsWithoutFetch,
380
- maxPromotedPerSearch,
381
- }),
382
- dedupe: Object.freeze({
383
- normalizeUrls: input.sources?.dedupe?.normalizeUrls ??
384
- DEFAULT_QA_SURFACE_CONFIG.sources.dedupe.normalizeUrls,
385
- stripTrackingParams: input.sources?.dedupe?.stripTrackingParams ??
386
- DEFAULT_QA_SURFACE_CONFIG.sources.dedupe.stripTrackingParams,
387
- mergeFileRanges: input.sources?.dedupe?.mergeFileRanges ??
388
- DEFAULT_QA_SURFACE_CONFIG.sources.dedupe.mergeFileRanges,
389
- }),
390
- filePreview: Object.freeze({
391
- enabled: input.sources?.filePreview?.enabled ??
392
- DEFAULT_QA_SURFACE_CONFIG.sources.filePreview.enabled,
393
- markdownRenderedByDefault: input.sources?.filePreview?.markdownRenderedByDefault ??
394
- DEFAULT_QA_SURFACE_CONFIG.sources.filePreview
395
- .markdownRenderedByDefault,
396
- allowRawToggle: input.sources?.filePreview?.allowRawToggle ??
397
- DEFAULT_QA_SURFACE_CONFIG.sources.filePreview.allowRawToggle,
398
- maxBytes,
399
- maxMarkdownRenderBytes,
400
- }),
401
- subagents: Object.freeze({
402
- inheritSources: input.sources?.subagents?.inheritSources ??
403
- DEFAULT_QA_SURFACE_CONFIG.sources.subagents.inheritSources,
404
- enableReportToolFallback: input.sources?.subagents?.enableReportToolFallback ??
405
- DEFAULT_QA_SURFACE_CONFIG.sources.subagents.enableReportToolFallback,
406
- markIncompleteOpaqueRuns: input.sources?.subagents?.markIncompleteOpaqueRuns ??
407
- DEFAULT_QA_SURFACE_CONFIG.sources.subagents.markIncompleteOpaqueRuns,
408
- }),
409
- legacy: Object.freeze({
410
- parseAssistantSourcesBlock: input.sources?.legacy?.parseAssistantSourcesBlock ??
411
- DEFAULT_QA_SURFACE_CONFIG.sources.legacy.parseAssistantSourcesBlock,
412
- }),
413
- }),
31
+ thinkingPhrases: uniquePhrases(input.thinkingPhrases ?? DEFAULT_QA_SURFACE_CONFIG.thinkingPhrases),
32
+ interaction: basics.interaction,
33
+ lockdown,
34
+ embedding: basics.embedding,
35
+ accounts,
36
+ entry: basics.entry,
37
+ sources,
38
+ attachments,
414
39
  });
415
40
  }
416
41
  //# sourceMappingURL=resolve-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-config.js","sourceRoot":"","sources":["../src/resolve-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve-config.js","sourceRoot":"","sources":["../src/resolve-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EACL,kBAAkB,EAClB,aAAa,GACd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAGrD,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,CAAC;AAEzD;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAK,GAAoB,EAAE;IAE3B,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC5B,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/D,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO;QACP,EAAE;QACF,kBAAkB,EAAE,eAAe,CACjC,KAAK,CAAC,kBAAkB,IAAI,yBAAyB,CAAC,kBAAkB,CACzE;QACD,eAAe,EAAE,aAAa,CAC5B,KAAK,CAAC,eAAe,IAAI,yBAAyB,CAAC,eAAe,CACnE;QACD,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,QAAQ;QACR,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ;QACR,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO;QACP,WAAW;KACZ,CAAC,CAAC;AACL,CAAC"}