@yadsh/dsh-qa-surface 0.2.0 → 0.4.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 (325) hide show
  1. package/README.md +236 -20
  2. package/compatibility.json +11 -3
  3. package/lib/account-remotes.js +100 -0
  4. package/lib/account-remotes.js.map +1 -0
  5. package/lib/accounts/credentials.js +27 -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/index.js +2 -0
  12. package/lib/accounts/index.js.map +1 -0
  13. package/lib/accounts/store.js +461 -0
  14. package/lib/accounts/store.js.map +1 -0
  15. package/lib/accounts/token.js +61 -0
  16. package/lib/accounts/token.js.map +1 -0
  17. package/lib/attachment-rules.js +111 -0
  18. package/lib/attachment-rules.js.map +1 -0
  19. package/lib/attestation.js.map +1 -1
  20. package/lib/cli.js +256 -0
  21. package/lib/cli.js.map +1 -0
  22. package/lib/client/QaAccountsController.js +359 -0
  23. package/lib/client/QaAccountsController.js.map +1 -0
  24. package/lib/client/QaSessionController.js +238 -180
  25. package/lib/client/QaSessionController.js.map +1 -1
  26. package/lib/client/QaSurface.js +281 -105
  27. package/lib/client/QaSurface.js.map +1 -1
  28. package/lib/client/QaTranscriptAdapter.js +95 -244
  29. package/lib/client/QaTranscriptAdapter.js.map +1 -1
  30. package/lib/client/attachments.js +150 -0
  31. package/lib/client/attachments.js.map +1 -0
  32. package/lib/client/attestation.js +7 -1
  33. package/lib/client/attestation.js.map +1 -1
  34. package/lib/client/base64.js +16 -0
  35. package/lib/client/base64.js.map +1 -0
  36. package/lib/client/chat-files.js +48 -0
  37. package/lib/client/chat-files.js.map +1 -0
  38. package/lib/client/components/Markdown.js +54 -13
  39. package/lib/client/components/Markdown.js.map +1 -1
  40. package/lib/client/components/QaAuthGate.js +40 -0
  41. package/lib/client/components/QaAuthGate.js.map +1 -0
  42. package/lib/client/components/QaChangelog.js +131 -0
  43. package/lib/client/components/QaChangelog.js.map +1 -0
  44. package/lib/client/components/QaComposer.js +56 -74
  45. package/lib/client/components/QaComposer.js.map +1 -1
  46. package/lib/client/components/QaFileAttachment.js +19 -0
  47. package/lib/client/components/QaFileAttachment.js.map +1 -0
  48. package/lib/client/components/QaFilesPanel.js +45 -0
  49. package/lib/client/components/QaFilesPanel.js.map +1 -0
  50. package/lib/client/components/QaHeader.js +34 -0
  51. package/lib/client/components/QaHeader.js.map +1 -0
  52. package/lib/client/components/QaMessage.js +61 -18
  53. package/lib/client/components/QaMessage.js.map +1 -1
  54. package/lib/client/components/QaModal.js +31 -0
  55. package/lib/client/components/QaModal.js.map +1 -0
  56. package/lib/client/components/QaProfile.js +64 -0
  57. package/lib/client/components/QaProfile.js.map +1 -0
  58. package/lib/client/components/QaRightRail.js +15 -0
  59. package/lib/client/components/QaRightRail.js.map +1 -0
  60. package/lib/client/components/QaSidebar.js +68 -20
  61. package/lib/client/components/QaSidebar.js.map +1 -1
  62. package/lib/client/components/QaSourcesPanel.js +127 -0
  63. package/lib/client/components/QaSourcesPanel.js.map +1 -0
  64. package/lib/client/components/QaTurnRail.js +296 -0
  65. package/lib/client/components/QaTurnRail.js.map +1 -0
  66. package/lib/client/components/QaWelcomeNotice.js +125 -0
  67. package/lib/client/components/QaWelcomeNotice.js.map +1 -0
  68. package/lib/client/components/QaWidthHandle.js +147 -0
  69. package/lib/client/components/QaWidthHandle.js.map +1 -0
  70. package/lib/client/components/QaWorkGroup.js +19 -20
  71. package/lib/client/components/QaWorkGroup.js.map +1 -1
  72. package/lib/client/components/source-refs.js +78 -0
  73. package/lib/client/components/source-refs.js.map +1 -0
  74. package/lib/client/components/surface-utils.js +28 -0
  75. package/lib/client/components/surface-utils.js.map +1 -0
  76. package/lib/client/components/thinking-phrases.js +24 -0
  77. package/lib/client/components/thinking-phrases.js.map +1 -0
  78. package/lib/client/create-session.js +26 -0
  79. package/lib/client/create-session.js.map +1 -0
  80. package/lib/client/failure-copy.js +63 -0
  81. package/lib/client/failure-copy.js.map +1 -0
  82. package/lib/client/index.js +135 -16
  83. package/lib/client/index.js.map +1 -1
  84. package/lib/client/project-session-state.js +78 -0
  85. package/lib/client/project-session-state.js.map +1 -0
  86. package/lib/client/prompt-content.js +54 -0
  87. package/lib/client/prompt-content.js.map +1 -0
  88. package/lib/client/session-admission.js +38 -0
  89. package/lib/client/session-admission.js.map +1 -0
  90. package/lib/client/session-assets.js +52 -0
  91. package/lib/client/session-assets.js.map +1 -0
  92. package/lib/client/session-sources.js +61 -0
  93. package/lib/client/session-sources.js.map +1 -0
  94. package/lib/client/settings/card.js +143 -0
  95. package/lib/client/settings/card.js.map +1 -0
  96. package/lib/client/settings/fields.js +145 -0
  97. package/lib/client/settings/fields.js.map +1 -0
  98. package/lib/client/settings/format.js +255 -0
  99. package/lib/client/settings/format.js.map +1 -0
  100. package/lib/client/settings/sections/access.js +25 -0
  101. package/lib/client/settings/sections/access.js.map +1 -0
  102. package/lib/client/settings/sections/accounts.js +47 -0
  103. package/lib/client/settings/sections/accounts.js.map +1 -0
  104. package/lib/client/settings/sections/attachments.js +46 -0
  105. package/lib/client/settings/sections/attachments.js.map +1 -0
  106. package/lib/client/settings/sections/branding.js +28 -0
  107. package/lib/client/settings/sections/branding.js.map +1 -0
  108. package/lib/client/settings/sections/common.js +20 -0
  109. package/lib/client/settings/sections/common.js.map +1 -0
  110. package/lib/client/settings/sections/embedding.js +19 -0
  111. package/lib/client/settings/sections/embedding.js.map +1 -0
  112. package/lib/client/settings/sections/interface.js +60 -0
  113. package/lib/client/settings/sections/interface.js.map +1 -0
  114. package/lib/client/settings/sections/lockdown.js +82 -0
  115. package/lib/client/settings/sections/lockdown.js.map +1 -0
  116. package/lib/client/settings/sections/session.js +53 -0
  117. package/lib/client/settings/sections/session.js.map +1 -0
  118. package/lib/client/settings/sections/sources.js +72 -0
  119. package/lib/client/settings/sections/sources.js.map +1 -0
  120. package/lib/client/settings/sections/status.js +37 -0
  121. package/lib/client/settings/sections/status.js.map +1 -0
  122. package/lib/client/settings/sections.js +23 -0
  123. package/lib/client/settings/sections.js.map +1 -0
  124. package/lib/client/settings/styles.js +57 -0
  125. package/lib/client/settings/styles.js.map +1 -0
  126. package/lib/client/settlement.js +24 -0
  127. package/lib/client/settlement.js.map +1 -0
  128. package/lib/client/stream-publisher.js +47 -0
  129. package/lib/client/stream-publisher.js.map +1 -0
  130. package/lib/client/styles.js +225 -17
  131. package/lib/client/styles.js.map +1 -1
  132. package/lib/client/tool-presentation.js +102 -0
  133. package/lib/client/tool-presentation.js.map +1 -0
  134. package/lib/client/turn-sources.js +98 -0
  135. package/lib/client/turn-sources.js.map +1 -0
  136. package/lib/client/types.js +2 -0
  137. package/lib/client/types.js.map +1 -1
  138. package/lib/client/use-right-rail.js +96 -0
  139. package/lib/client/use-right-rail.js.map +1 -0
  140. package/lib/client/use-session-ui-state.js +75 -0
  141. package/lib/client/use-session-ui-state.js.map +1 -0
  142. package/lib/client/use-transcript-view.js +44 -0
  143. package/lib/client/use-transcript-view.js.map +1 -0
  144. package/lib/client.js +9052 -1345
  145. package/lib/client.js.map +1 -1
  146. package/lib/config-resolvers/accounts.js +60 -0
  147. package/lib/config-resolvers/accounts.js.map +1 -0
  148. package/lib/config-resolvers/attachments.js +28 -0
  149. package/lib/config-resolvers/attachments.js.map +1 -0
  150. package/lib/config-resolvers/basics.js +59 -0
  151. package/lib/config-resolvers/basics.js.map +1 -0
  152. package/lib/config-resolvers/defaults.js +132 -0
  153. package/lib/config-resolvers/defaults.js.map +1 -0
  154. package/lib/config-resolvers/lockdown.js +79 -0
  155. package/lib/config-resolvers/lockdown.js.map +1 -0
  156. package/lib/config-resolvers/session.js +42 -0
  157. package/lib/config-resolvers/session.js.map +1 -0
  158. package/lib/config-resolvers/shared.js +42 -0
  159. package/lib/config-resolvers/shared.js.map +1 -0
  160. package/lib/config-resolvers/sources.js +81 -0
  161. package/lib/config-resolvers/sources.js.map +1 -0
  162. package/lib/config-resolvers/ui.js +20 -0
  163. package/lib/config-resolvers/ui.js.map +1 -0
  164. package/lib/config.js +279 -102
  165. package/lib/config.js.map +1 -1
  166. package/lib/entry-redirect.js +45 -0
  167. package/lib/entry-redirect.js.map +1 -0
  168. package/lib/host-route.js +25 -1
  169. package/lib/host-route.js.map +1 -1
  170. package/lib/index.js +258 -23
  171. package/lib/index.js.map +1 -1
  172. package/lib/launch-token.js +42 -0
  173. package/lib/launch-token.js.map +1 -0
  174. package/lib/profile.js +214 -0
  175. package/lib/profile.js.map +1 -0
  176. package/lib/prompt-notes.js +231 -0
  177. package/lib/prompt-notes.js.map +1 -0
  178. package/lib/provenance/collector.js +40 -0
  179. package/lib/provenance/collector.js.map +1 -0
  180. package/lib/provenance/connectors.js +147 -0
  181. package/lib/provenance/connectors.js.map +1 -0
  182. package/lib/provenance/dedupe.js +89 -0
  183. package/lib/provenance/dedupe.js.map +1 -0
  184. package/lib/provenance/extractors.js +340 -0
  185. package/lib/provenance/extractors.js.map +1 -0
  186. package/lib/provenance/file-preview.js +39 -0
  187. package/lib/provenance/file-preview.js.map +1 -0
  188. package/lib/provenance/host-store.js +387 -0
  189. package/lib/provenance/host-store.js.map +1 -0
  190. package/lib/provenance/index.js +9 -0
  191. package/lib/provenance/index.js.map +1 -0
  192. package/lib/provenance/normalize.js +128 -0
  193. package/lib/provenance/normalize.js.map +1 -0
  194. package/lib/provenance/reported.js +53 -0
  195. package/lib/provenance/reported.js.map +1 -0
  196. package/lib/provenance/types.js +2 -0
  197. package/lib/provenance/types.js.map +1 -0
  198. package/lib/resolve-config.js +35 -249
  199. package/lib/resolve-config.js.map +1 -1
  200. package/lib/secure-session.js +122 -14
  201. package/lib/secure-session.js.map +1 -1
  202. package/lib/shared/session-key.js +18 -0
  203. package/lib/shared/session-key.js.map +1 -0
  204. package/lib/shared/settings.js +10 -0
  205. package/lib/shared/settings.js.map +1 -0
  206. package/lib/thinking-phrases.js +68 -0
  207. package/lib/thinking-phrases.js.map +1 -0
  208. package/lib/typert.host.js +749 -11
  209. package/lib/typert.remote-client.d.ts +23 -3
  210. package/lib/typert.remote-client.js +593 -6
  211. package/lib/types/account-remotes.d.ts +42 -0
  212. package/lib/types/accounts/credentials.d.ts +14 -0
  213. package/lib/types/accounts/errors.d.ts +11 -0
  214. package/lib/types/accounts/file.d.ts +82 -0
  215. package/lib/types/accounts/index.d.ts +2 -0
  216. package/lib/types/accounts/store.d.ts +144 -0
  217. package/lib/types/accounts/token.d.ts +31 -0
  218. package/lib/types/attachment-rules.d.ts +44 -0
  219. package/lib/types/attestation.d.ts +1 -1
  220. package/lib/types/cli.d.ts +9 -0
  221. package/lib/types/client/QaAccountsController.d.ts +102 -0
  222. package/lib/types/client/QaConfigController.d.ts +1 -1
  223. package/lib/types/client/QaSessionController.d.ts +61 -22
  224. package/lib/types/client/QaSurface.d.ts +14 -3
  225. package/lib/types/client/QaTranscriptAdapter.d.ts +5 -10
  226. package/lib/types/client/attachments.d.ts +54 -0
  227. package/lib/types/client/base64.d.ts +10 -0
  228. package/lib/types/client/chat-files.d.ts +30 -0
  229. package/lib/types/client/components/Markdown.d.ts +11 -1
  230. package/lib/types/client/components/QaAgentsDrawer.d.ts +1 -1
  231. package/lib/types/client/components/QaAuthGate.d.ts +15 -0
  232. package/lib/types/client/components/QaChangelog.d.ts +21 -0
  233. package/lib/types/client/components/QaComposer.d.ts +8 -4
  234. package/lib/types/client/components/QaFileAttachment.d.ts +14 -0
  235. package/lib/types/client/components/QaFilesPanel.d.ts +15 -0
  236. package/lib/types/client/components/QaHeader.d.ts +41 -0
  237. package/lib/types/client/components/QaMessage.d.ts +12 -3
  238. package/lib/types/client/components/QaModal.d.ts +26 -0
  239. package/lib/types/client/components/QaProfile.d.ts +25 -0
  240. package/lib/types/client/components/QaRightRail.d.ts +23 -0
  241. package/lib/types/client/components/QaSidebar.d.ts +44 -2
  242. package/lib/types/client/components/QaSourcesPanel.d.ts +23 -0
  243. package/lib/types/client/components/QaTurnRail.d.ts +65 -0
  244. package/lib/types/client/components/QaWelcomeNotice.d.ts +27 -0
  245. package/lib/types/client/components/QaWidthHandle.d.ts +43 -0
  246. package/lib/types/client/components/QaWorkGroup.d.ts +5 -3
  247. package/lib/types/client/components/source-refs.d.ts +16 -0
  248. package/lib/types/client/components/surface-utils.d.ts +11 -0
  249. package/lib/types/client/components/thinking-phrases.d.ts +9 -0
  250. package/lib/types/client/create-session.d.ts +13 -0
  251. package/lib/types/client/failure-copy.d.ts +19 -0
  252. package/lib/types/client/index.d.ts +1 -0
  253. package/lib/types/client/project-session-state.d.ts +30 -0
  254. package/lib/types/client/prompt-content.d.ts +30 -0
  255. package/lib/types/client/session-admission.d.ts +23 -0
  256. package/lib/types/client/session-assets.d.ts +20 -0
  257. package/lib/types/client/session-sources.d.ts +28 -0
  258. package/lib/types/client/settings/card.d.ts +23 -0
  259. package/lib/types/client/settings/fields.d.ts +139 -0
  260. package/lib/types/client/settings/format.d.ts +108 -0
  261. package/lib/types/client/settings/sections/access.d.ts +9 -0
  262. package/lib/types/client/settings/sections/accounts.d.ts +9 -0
  263. package/lib/types/client/settings/sections/attachments.d.ts +15 -0
  264. package/lib/types/client/settings/sections/branding.d.ts +8 -0
  265. package/lib/types/client/settings/sections/common.d.ts +28 -0
  266. package/lib/types/client/settings/sections/embedding.d.ts +8 -0
  267. package/lib/types/client/settings/sections/interface.d.ts +9 -0
  268. package/lib/types/client/settings/sections/lockdown.d.ts +9 -0
  269. package/lib/types/client/settings/sections/session.d.ts +9 -0
  270. package/lib/types/client/settings/sections/sources.d.ts +9 -0
  271. package/lib/types/client/settings/sections/status.d.ts +22 -0
  272. package/lib/types/client/settings/sections.d.ts +25 -0
  273. package/lib/types/client/settings/styles.d.ts +8 -0
  274. package/lib/types/client/settlement.d.ts +6 -0
  275. package/lib/types/client/stream-publisher.d.ts +28 -0
  276. package/lib/types/client/tool-presentation.d.ts +6 -0
  277. package/lib/types/client/turn-sources.d.ts +14 -0
  278. package/lib/types/client/types.d.ts +101 -9
  279. package/lib/types/client/use-right-rail.d.ts +56 -0
  280. package/lib/types/client/use-session-ui-state.d.ts +41 -0
  281. package/lib/types/client/use-transcript-view.d.ts +20 -0
  282. package/lib/types/config-resolvers/accounts.d.ts +15 -0
  283. package/lib/types/config-resolvers/attachments.d.ts +6 -0
  284. package/lib/types/config-resolvers/basics.d.ts +8 -0
  285. package/lib/types/config-resolvers/defaults.d.ts +4 -0
  286. package/lib/types/config-resolvers/lockdown.d.ts +10 -0
  287. package/lib/types/config-resolvers/session.d.ts +6 -0
  288. package/lib/types/config-resolvers/shared.d.ts +16 -0
  289. package/lib/types/config-resolvers/sources.d.ts +6 -0
  290. package/lib/types/config-resolvers/ui.d.ts +6 -0
  291. package/lib/types/entry-redirect.d.ts +20 -0
  292. package/lib/types/host-route.d.ts +14 -1
  293. package/lib/types/index.d.ts +54 -3
  294. package/lib/types/launch-token.d.ts +21 -0
  295. package/lib/types/profile.d.ts +76 -0
  296. package/lib/types/prompt-notes.d.ts +110 -0
  297. package/lib/types/provenance/collector.d.ts +26 -0
  298. package/lib/types/provenance/connectors.d.ts +11 -0
  299. package/lib/types/provenance/dedupe.d.ts +6 -0
  300. package/lib/types/provenance/extractors.d.ts +14 -0
  301. package/lib/types/provenance/file-preview.d.ts +10 -0
  302. package/lib/types/provenance/host-store.d.ts +54 -0
  303. package/lib/types/provenance/index.d.ts +10 -0
  304. package/lib/types/provenance/normalize.d.ts +13 -0
  305. package/lib/types/provenance/reported.d.ts +5 -0
  306. package/lib/types/provenance/types.d.ts +78 -0
  307. package/lib/types/resolve-config.d.ts +8 -3
  308. package/lib/types/secure-session.d.ts +36 -2
  309. package/lib/types/shared/session-key.d.ts +23 -0
  310. package/lib/types/shared/settings.d.ts +10 -0
  311. package/lib/types/thinking-phrases.d.ts +17 -0
  312. package/lib/types/types.d.ts +290 -16
  313. package/lib/types/user-workspace.d.ts +38 -0
  314. package/lib/user-workspace.js +231 -0
  315. package/lib/user-workspace.js.map +1 -0
  316. package/package.json +71 -47
  317. package/CHANGELOG.md +0 -93
  318. package/SPEC-dsh-qa-surface.md +0 -2425
  319. package/docs/ARCHITECTURE.md +0 -66
  320. package/docs/COMPATIBILITY.md +0 -14
  321. package/docs/CONFIGURATION.md +0 -112
  322. package/docs/EMBEDDING.md +0 -13
  323. package/lib/client/components/QaSourcesDrawer.js +0 -46
  324. package/lib/client/components/QaSourcesDrawer.js.map +0 -1
  325. package/lib/types/client/components/QaSourcesDrawer.d.ts +0 -8
package/lib/index.js CHANGED
@@ -32,37 +32,85 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
32
32
  if (target) Object.defineProperty(target, contextIn.name, descriptor);
33
33
  done = true;
34
34
  };
35
+ import { randomUUID } from "node:crypto";
35
36
  import { Remote, TypertRemoteService } from "@deepseek-ai/dsh-typert-protocol";
36
- import { installSettingsSection, settingsNamespace, } from "@deepseek-ai/dsh-settings";
37
+ import { SessionId } from "@deepseek-ai/dsh-session/types";
38
+ import { WorkspaceId } from "@deepseek-ai/dsh-workspace";
37
39
  import { createHostLoggerSink, getPluginLogger, } from "@yadsh/dsh-plugin-log";
38
40
  import { ConfigSchema, resolveConfig } from "./config.js";
41
+ import { createQaAccountRemotes } from "./account-remotes.js";
39
42
  import { QaAttestationError } from "./attestation.js";
43
+ import { entryRedirectRow } from "./entry-redirect.js";
40
44
  import { registerQaNavigationRoute } from "./host-route.js";
45
+ import { makeLaunchTokenSource } from "./launch-token.js";
41
46
  import { QaPolicyAdmission } from "./secure-session.js";
47
+ import { QaPromptNotes } from "./prompt-notes.js";
48
+ import { QaProvenanceHost } from "./provenance/host-store.js";
49
+ import { readSourceFilePreview } from "./provenance/file-preview.js";
50
+ import { existingQaUserWorkspace, prepareQaUserWorkspace, } from "./user-workspace.js";
42
51
  export const name = "qa-surface";
43
52
  export const inject = [
44
53
  "agents",
54
+ "sessions",
45
55
  "agentPresets",
46
56
  "permissionPresets",
47
57
  "tools",
58
+ "systemPrompt",
48
59
  "workspaceRegistry",
60
+ "sessionController",
49
61
  ];
50
- export const QA_SURFACE_SETTINGS_NAMESPACE = settingsNamespace("qa-surface");
62
+ // One home for the namespace: the browser card binds to the same constant
63
+ // through `src/shared/settings.ts`, which avoids importing this module (and
64
+ // schemastery with it) into the page.
65
+ import { QA_SURFACE_SETTINGS_NAMESPACE } from "./shared/settings.js";
66
+ export { QA_SURFACE_SETTINGS_NAMESPACE };
51
67
  export const Config = ConfigSchema;
52
68
  const CONFIGURATION_ERROR = "Assistant configuration is unavailable.";
69
+ /** The `(reason: <code>)` marker contract shared with the attestation path. */
70
+ const ACCOUNTS_REASON_MARKER = /\(reason: ([a-z-]+)\)/u;
53
71
  /** Host companion: validates config, owns the admission boundary and the route. */
54
72
  let QaSurface = (() => {
55
73
  let _classSuper = TypertRemoteService;
56
74
  let _instanceExtraInitializers = [];
75
+ let _accountsRegister_decorators;
76
+ let _accountsLogin_decorators;
77
+ let _accountsWhoami_decorators;
78
+ let _accountsClaimSessions_decorators;
79
+ let _accountsOwnedSessions_decorators;
80
+ let _accountsListOwnership_decorators;
81
+ let _accountsUpdateProfile_decorators;
57
82
  let _describe_decorators;
83
+ let _createSession_decorators;
58
84
  let _secureSession_decorators;
85
+ let _sources_decorators;
86
+ let _readSourceFile_decorators;
59
87
  return class QaSurface extends _classSuper {
60
88
  static {
61
89
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
90
+ _accountsRegister_decorators = [Remote("accountsRegister")];
91
+ _accountsLogin_decorators = [Remote("accountsLogin")];
92
+ _accountsWhoami_decorators = [Remote("accountsWhoami")];
93
+ _accountsClaimSessions_decorators = [Remote("accountsClaimSessions")];
94
+ _accountsOwnedSessions_decorators = [Remote("accountsOwnedSessions")];
95
+ _accountsListOwnership_decorators = [Remote("accountsListOwnership")];
96
+ _accountsUpdateProfile_decorators = [Remote("accountsUpdateProfile")];
62
97
  _describe_decorators = [Remote("describe")];
98
+ _createSession_decorators = [Remote("createSession")];
63
99
  _secureSession_decorators = [Remote("secureSession")];
100
+ _sources_decorators = [Remote("sources")];
101
+ _readSourceFile_decorators = [Remote("readSourceFile")];
102
+ __esDecorate(this, null, _accountsRegister_decorators, { kind: "method", name: "accountsRegister", static: false, private: false, access: { has: obj => "accountsRegister" in obj, get: obj => obj.accountsRegister }, metadata: _metadata }, null, _instanceExtraInitializers);
103
+ __esDecorate(this, null, _accountsLogin_decorators, { kind: "method", name: "accountsLogin", static: false, private: false, access: { has: obj => "accountsLogin" in obj, get: obj => obj.accountsLogin }, metadata: _metadata }, null, _instanceExtraInitializers);
104
+ __esDecorate(this, null, _accountsWhoami_decorators, { kind: "method", name: "accountsWhoami", static: false, private: false, access: { has: obj => "accountsWhoami" in obj, get: obj => obj.accountsWhoami }, metadata: _metadata }, null, _instanceExtraInitializers);
105
+ __esDecorate(this, null, _accountsClaimSessions_decorators, { kind: "method", name: "accountsClaimSessions", static: false, private: false, access: { has: obj => "accountsClaimSessions" in obj, get: obj => obj.accountsClaimSessions }, metadata: _metadata }, null, _instanceExtraInitializers);
106
+ __esDecorate(this, null, _accountsOwnedSessions_decorators, { kind: "method", name: "accountsOwnedSessions", static: false, private: false, access: { has: obj => "accountsOwnedSessions" in obj, get: obj => obj.accountsOwnedSessions }, metadata: _metadata }, null, _instanceExtraInitializers);
107
+ __esDecorate(this, null, _accountsListOwnership_decorators, { kind: "method", name: "accountsListOwnership", static: false, private: false, access: { has: obj => "accountsListOwnership" in obj, get: obj => obj.accountsListOwnership }, metadata: _metadata }, null, _instanceExtraInitializers);
108
+ __esDecorate(this, null, _accountsUpdateProfile_decorators, { kind: "method", name: "accountsUpdateProfile", static: false, private: false, access: { has: obj => "accountsUpdateProfile" in obj, get: obj => obj.accountsUpdateProfile }, metadata: _metadata }, null, _instanceExtraInitializers);
64
109
  __esDecorate(this, null, _describe_decorators, { kind: "method", name: "describe", static: false, private: false, access: { has: obj => "describe" in obj, get: obj => obj.describe }, metadata: _metadata }, null, _instanceExtraInitializers);
110
+ __esDecorate(this, null, _createSession_decorators, { kind: "method", name: "createSession", static: false, private: false, access: { has: obj => "createSession" in obj, get: obj => obj.createSession }, metadata: _metadata }, null, _instanceExtraInitializers);
65
111
  __esDecorate(this, null, _secureSession_decorators, { kind: "method", name: "secureSession", static: false, private: false, access: { has: obj => "secureSession" in obj, get: obj => obj.secureSession }, metadata: _metadata }, null, _instanceExtraInitializers);
112
+ __esDecorate(this, null, _sources_decorators, { kind: "method", name: "sources", static: false, private: false, access: { has: obj => "sources" in obj, get: obj => obj.sources }, metadata: _metadata }, null, _instanceExtraInitializers);
113
+ __esDecorate(this, null, _readSourceFile_decorators, { kind: "method", name: "readSourceFile", static: false, private: false, access: { has: obj => "readSourceFile" in obj, get: obj => obj.readSourceFile }, metadata: _metadata }, null, _instanceExtraInitializers);
66
114
  if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
67
115
  }
68
116
  static inject = inject;
@@ -70,6 +118,11 @@ let QaSurface = (() => {
70
118
  source = __runInitializers(this, _instanceExtraInitializers);
71
119
  logger;
72
120
  admission;
121
+ provenance;
122
+ notes;
123
+ /** Account-remote bodies; the wire signatures stay on this class. */
124
+ accountRemotes;
125
+ launchToken;
73
126
  webServer;
74
127
  disposeRoute;
75
128
  routeKey;
@@ -81,25 +134,65 @@ let QaSurface = (() => {
81
134
  pluginId: "dsh-qa-surface",
82
135
  consoleSink: createHostLoggerSink(ctx.logger),
83
136
  });
84
- this.admission = new QaPolicyAdmission(ctx, () => this.getConfig(), this.logger);
137
+ this.accountRemotes = createQaAccountRemotes({
138
+ getConfig: () => this.getConfig(),
139
+ logger: this.logger,
140
+ });
141
+ this.admission = new QaPolicyAdmission(ctx, () => this.getConfig(), this.logger,
142
+ // Identity half of admission; no-ops while accounts stay disabled.
143
+ {
144
+ enforceSessionAccess: (token, sessionId) => {
145
+ return this.accountRemotes
146
+ .resolve(this.getConfig())
147
+ ?.ensureSessionAccess(token, sessionId);
148
+ },
149
+ userWorkspace: (userId, registeredWorkspacePath) => existingQaUserWorkspace(registeredWorkspacePath, userId),
150
+ });
151
+ this.provenance = new QaProvenanceHost(ctx, () => this.getConfig());
152
+ // The identity note and the provenance rule ride the conversation as
153
+ // durable context messages, delegated experts included: the QA preset's
154
+ // complete persona closes the system prompt to plugins, the conversation
155
+ // stays open.
156
+ this.notes = new QaPromptNotes(ctx, {
157
+ config: () => this.getConfig(),
158
+ accounts: () => this.accountRemotes.resolve(this.getConfig()),
159
+ isQaSession: (sessionId) => this.admission.knowsSession(sessionId),
160
+ logger: this.logger,
161
+ });
162
+ // The /qa route hands cookie-less browsers to the one-time host token
163
+ // exchange; the proxy in the deploy kit does the same and either alone
164
+ // suffices. Resolved lazily and once per process; unavailable bridges
165
+ // warn once and leave the old marker hand-off in place.
166
+ this.launchToken = makeLaunchTokenSource(() => ctx.get("connection"), (message) => this.logger.warn("entry.token-bridge", { message }));
85
167
  ctx.effect(() => async () => this.logger.close(), "dsh-qa-surface.logger");
86
168
  ctx.effect(() => () => this.admission.dispose(), "dsh-qa-surface.lockdown-policies");
87
- installSettingsSection(ctx, QA_SURFACE_SETTINGS_NAMESPACE, ConfigSchema, entry, {
88
- setSource: (source) => {
89
- this.source = source;
90
- },
91
- onChange: () => {
92
- const config = this.getConfig();
93
- this.refreshRoute();
94
- this.logger.info("config.updated", {
95
- enabled: config.enabled,
96
- route: config.route.path,
97
- sessionPolicy: config.session.policy,
98
- });
99
- },
100
- validate: (value) => {
101
- resolveConfig(value);
102
- },
169
+ ctx.effect(() => () => this.provenance.dispose(), "dsh-qa-surface.provenance");
170
+ ctx.effect(() => () => this.notes.dispose(), "dsh-qa-surface.prompt-notes");
171
+ // The root index gains one head script: non-loopback hostnames continue
172
+ // into /qa, the loopback operator keeps the full harness UI.
173
+ ctx.on("webserver/index-inject", (table) => {
174
+ const row = entryRedirectRow(this.getConfig());
175
+ if (row !== undefined)
176
+ table.push(row);
177
+ });
178
+ ctx.inject(["settings"], (settingsCtx) => {
179
+ settingsCtx.settings.installSection(ctx, QA_SURFACE_SETTINGS_NAMESPACE, ConfigSchema, entry, {
180
+ setSource: (source) => {
181
+ this.source = source;
182
+ },
183
+ onChange: () => {
184
+ const config = this.getConfig();
185
+ this.refreshRoute();
186
+ this.logger.info("config.updated", {
187
+ enabled: config.enabled,
188
+ route: config.route.path,
189
+ sessionPolicy: config.session.policy,
190
+ });
191
+ },
192
+ validate: (value) => {
193
+ resolveConfig(value);
194
+ },
195
+ });
103
196
  });
104
197
  ctx.inject(["webServer"], (webContext) => {
105
198
  this.webServer = webContext.webServer;
@@ -120,6 +213,46 @@ let QaSurface = (() => {
120
213
  getConfig() {
121
214
  return resolveConfig(this.source());
122
215
  }
216
+ /**
217
+ * Self-service signup; the first account ever created becomes admin. The
218
+ * display name derives from the email: the generated client enforces exact
219
+ * wire arity, so an optional name parameter would still be required.
220
+ */
221
+ accountsRegister(email, password) {
222
+ return this.accountRemotes.register(email, password);
223
+ }
224
+ accountsLogin(email, password) {
225
+ return this.accountRemotes.login(email, password);
226
+ }
227
+ /** Identity probe; safe to call with an empty or expired token. */
228
+ accountsWhoami(token) {
229
+ return this.accountRemotes.whoami(token);
230
+ }
231
+ /** Migrate a browser's local chat index into server-side ownership. */
232
+ accountsClaimSessions(token, sessionIds) {
233
+ return this.accountRemotes.claimSessions(token, sessionIds);
234
+ }
235
+ /** The token user's owned session ids; the sidebar list authority. */
236
+ accountsOwnedSessions(token) {
237
+ return this.accountRemotes.ownedSessions(token);
238
+ }
239
+ /**
240
+ * Every chat-ownership entry with owner display names; the cross-user view
241
+ * admin browsers group the sidebar by. Ordinary accounts are refused with
242
+ * the dedicated reason, anonymous ones with auth-required.
243
+ */
244
+ accountsListOwnership(token) {
245
+ return this.accountRemotes.listOwnership(token);
246
+ }
247
+ /**
248
+ * Replace the caller's own self-declared profile. The token is the only
249
+ * identity the wire carries: a browser can never name a profile but its own,
250
+ * and the deployment's declared fields and length limits are enforced in the
251
+ * store before anything is written.
252
+ */
253
+ accountsUpdateProfile(token, input) {
254
+ return this.accountRemotes.updateProfile(token, input);
255
+ }
123
256
  /**
124
257
  * Serve the effective QA configuration to the browser. The DSH gateway pins
125
258
  * settings RPCs to loopback, so a browser served over the LAN always sees
@@ -130,10 +263,77 @@ let QaSurface = (() => {
130
263
  describe() {
131
264
  return this.getConfig();
132
265
  }
266
+ /**
267
+ * Create a QA session from Host-owned inputs. With account workspaces on,
268
+ * cwd is `<configured workspace>/.qa-users/<account UUID>` and the child is
269
+ * intentionally not registered or attached as another DSH workspace.
270
+ */
271
+ async createSession(token) {
272
+ const config = this.getConfig();
273
+ if (config.session.policy === "fixed") {
274
+ throw new Error("Fixed QA sessions cannot be created.");
275
+ }
276
+ const id = SessionId(`session-${randomUUID()}`);
277
+ const accounts = this.accountRemotes.resolve(config);
278
+ const owner = accounts === undefined
279
+ ? undefined
280
+ : this.accountRemotes.run(() => accounts.reserveSession(token, String(id)));
281
+ let hostCreated = false;
282
+ try {
283
+ let userCwd;
284
+ if (config.accounts.perUserWorkspace) {
285
+ const workspaceId = config.session.workspaceId;
286
+ if (owner === undefined || workspaceId === null) {
287
+ throw new Error("Per-user QA workspace configuration is unavailable.");
288
+ }
289
+ const workspace = this.ctx.workspaceRegistry.get(WorkspaceId(workspaceId));
290
+ if (workspace === undefined) {
291
+ throw new Error(`Configured QA workspace ${workspaceId} is unavailable.`);
292
+ }
293
+ userCwd = prepareQaUserWorkspace(workspace.path, owner.id);
294
+ }
295
+ const created = await this.ctx.sessionController.create({
296
+ sessionId: id,
297
+ ...(userCwd !== undefined
298
+ ? { cwd: userCwd }
299
+ : config.session.workspaceId !== null
300
+ ? { workspaceId: WorkspaceId(config.session.workspaceId) }
301
+ : config.session.cwd !== null
302
+ ? { cwd: config.session.cwd }
303
+ : {}),
304
+ ...(config.session.agentPreset === null
305
+ ? {}
306
+ : { agentPreset: config.session.agentPreset }),
307
+ });
308
+ hostCreated = true;
309
+ if (config.session.provider !== null && config.session.model !== null) {
310
+ await this.ctx.sessionController.selectModel({
311
+ sessionId: created.sessionId,
312
+ provider: config.session.provider,
313
+ model: config.session.model,
314
+ ...(config.session.reasoningEffort === null
315
+ ? {}
316
+ : { reasoningEffort: config.session.reasoningEffort }),
317
+ });
318
+ }
319
+ this.admission.secureSession(token, String(created.sessionId));
320
+ return String(created.sessionId);
321
+ }
322
+ catch (error) {
323
+ if (!hostCreated && owner !== undefined) {
324
+ accounts?.releaseSessionReservation(owner.id, String(id));
325
+ }
326
+ this.logger.error("session.create-rejected", {
327
+ sessionId: String(id),
328
+ error: error instanceof Error ? error.message : String(error),
329
+ });
330
+ throw new Error("Unable to create a QA session.", { cause: error });
331
+ }
332
+ }
133
333
  /** Pin and attest the effective policy. The browser supplies identity only. */
134
- secureSession(sessionId) {
334
+ secureSession(token, sessionId) {
135
335
  try {
136
- return this.admission.secureSession(sessionId);
336
+ return this.admission.secureSession(token, sessionId);
137
337
  }
138
338
  catch (error) {
139
339
  // The carrier empties error.details, so the coarse reason rides the
@@ -141,7 +341,7 @@ let QaSurface = (() => {
141
341
  // stay in this log only.
142
342
  const reason = error instanceof QaAttestationError
143
343
  ? error.reason
144
- : "attestation-failed";
344
+ : (ACCOUNTS_REASON_MARKER.exec(error instanceof Error ? error.message : "")?.at(1) ?? "attestation-failed");
145
345
  this.logger.error("lockdown.rejected", {
146
346
  sessionId,
147
347
  reason,
@@ -152,6 +352,35 @@ let QaSurface = (() => {
152
352
  });
153
353
  }
154
354
  }
355
+ /** Return canonical Host snapshots; replay is rebuilt from qa/sources events. */
356
+ sources(token, sessionId) {
357
+ this.admission.secureSession(token, sessionId);
358
+ return this.provenance.bundles(sessionId);
359
+ }
360
+ /** Narrow read-only preview capability for files already present as sources. */
361
+ async readSourceFile(token, sessionId, sourcePath) {
362
+ this.admission.secureSession(token, sessionId);
363
+ const config = this.getConfig().sources.filePreview;
364
+ if (!config.enabled ||
365
+ !this.provenance.sourceAllowed(sessionId, sourcePath)) {
366
+ throw new Error("Source preview is unavailable.");
367
+ }
368
+ const agent = this.ctx.agents.get((await import("@deepseek-ai/dsh-session/types")).SessionId(sessionId));
369
+ const root = agent?.session.header.cwd;
370
+ if (root === undefined)
371
+ throw new Error("Source preview is unavailable.");
372
+ try {
373
+ return await readSourceFilePreview({
374
+ root,
375
+ sourcePath,
376
+ maxBytes: config.maxBytes,
377
+ maxMarkdownRenderBytes: config.maxMarkdownRenderBytes,
378
+ });
379
+ }
380
+ catch {
381
+ throw new Error("Source preview is unavailable.");
382
+ }
383
+ }
155
384
  refreshRoute() {
156
385
  const config = this.getConfig();
157
386
  const key = config.enabled
@@ -164,7 +393,9 @@ let QaSurface = (() => {
164
393
  this.routeKey = undefined;
165
394
  if (key === undefined || this.webServer === undefined)
166
395
  return;
167
- this.disposeRoute = registerQaNavigationRoute(this.webServer, config);
396
+ this.disposeRoute = registerQaNavigationRoute(this.webServer, config, {
397
+ launchToken: this.launchToken,
398
+ });
168
399
  this.routeKey = key;
169
400
  }
170
401
  };
@@ -172,8 +403,12 @@ let QaSurface = (() => {
172
403
  export { QaSurface };
173
404
  export { ConfigSchema, DEFAULT_QA_SURFACE_CONFIG, normalizeRoutePath, resolveConfig, } from "./config.js";
174
405
  export { QaAttestationError } from "./attestation.js";
406
+ export { QaAccounts, QaAccountsError } from "./accounts/store.js";
407
+ export { entryRedirectRow, entryRedirectScript } from "./entry-redirect.js";
175
408
  export { registerQaNavigationRoute } from "./host-route.js";
176
409
  export { qaToolDenial, qaToolPolicyPlan } from "./lockdown-policy.js";
177
410
  export { QaPolicyAdmission } from "./secure-session.js";
411
+ export { QaPromptNotes, renderUserIdentity, QA_IDENTITY_NOTE, QA_SOURCES_NOTE, } from "./prompt-notes.js";
412
+ export * from "./provenance/index.js";
178
413
  export default QaSurface;
179
414
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Resolve the launch token once per process (it is stable for the process
3
+ * lifetime); a missing connection service or an unusable answer warns once
4
+ * and permanently disables the bridge instead of retrying per request.
5
+ */
6
+ export function makeLaunchTokenSource(getConnection, warn) {
7
+ let cached = null;
8
+ let warned = false;
9
+ const warnOnce = (message) => {
10
+ if (warned)
11
+ return;
12
+ warned = true;
13
+ warn(message);
14
+ };
15
+ return () => {
16
+ if (cached !== null)
17
+ return cached;
18
+ try {
19
+ const connection = getConnection();
20
+ if (connection === undefined ||
21
+ typeof connection.authenticatedUrl !== "function") {
22
+ warnOnce("launch-token bridge inactive: no connection.authenticatedUrl on the host");
23
+ cached = undefined;
24
+ return cached;
25
+ }
26
+ // The loopback base only feeds the URL parsing; host/scheme are dropped.
27
+ const token = new URL(connection.authenticatedUrl("http://127.0.0.1")).searchParams.get("token");
28
+ if (token === null || token === "") {
29
+ warnOnce("launch-token bridge inactive: authenticatedUrl carries no token");
30
+ cached = undefined;
31
+ return cached;
32
+ }
33
+ cached = token;
34
+ }
35
+ catch (error) {
36
+ warnOnce(`launch-token bridge failed: ${error instanceof Error ? error.message : String(error)}`);
37
+ cached = undefined;
38
+ }
39
+ return cached;
40
+ };
41
+ }
42
+ //# sourceMappingURL=launch-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch-token.js","sourceRoot":"","sources":["../src/launch-token.ts"],"names":[],"mappings":"AAeA;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,aAAqD,EACrD,IAA+B;IAE/B,IAAI,MAAM,GAA8B,IAAI,CAAC;IAC7C,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAQ,EAAE;QACzC,IAAI,MAAM;YAAE,OAAO;QACnB,MAAM,GAAG,IAAI,CAAC;QACd,IAAI,CAAC,OAAO,CAAC,CAAC;IAChB,CAAC,CAAC;IACF,OAAO,GAAG,EAAE;QACV,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,MAAM,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;YACnC,IACE,UAAU,KAAK,SAAS;gBACxB,OAAO,UAAU,CAAC,gBAAgB,KAAK,UAAU,EACjD,CAAC;gBACD,QAAQ,CACN,0EAA0E,CAC3E,CAAC;gBACF,MAAM,GAAG,SAAS,CAAC;gBACnB,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,yEAAyE;YACzE,MAAM,KAAK,GAAG,IAAI,GAAG,CACnB,UAAU,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAChD,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;gBACnC,QAAQ,CACN,iEAAiE,CAClE,CAAC;gBACF,MAAM,GAAG,SAAS,CAAC;gBACnB,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,MAAM,GAAG,KAAK,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CACN,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACxF,CAAC;YACF,MAAM,GAAG,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}