@yadsh/dsh-qa-surface 0.4.0 → 0.6.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 (421) hide show
  1. package/README.md +235 -14
  2. package/compatibility.json +10 -1
  3. package/cordis.patch.yml +17 -0
  4. package/lib/account-remotes.js +10 -0
  5. package/lib/account-remotes.js.map +1 -1
  6. package/lib/accounts/credentials.js +12 -4
  7. package/lib/accounts/credentials.js.map +1 -1
  8. package/lib/accounts/errors.js.map +1 -1
  9. package/lib/accounts/file.js.map +1 -1
  10. package/lib/accounts/store.js +38 -1
  11. package/lib/accounts/store.js.map +1 -1
  12. package/lib/approvals.js +179 -0
  13. package/lib/approvals.js.map +1 -0
  14. package/lib/cli.js +10 -0
  15. package/lib/cli.js.map +1 -1
  16. package/lib/client/QaAccountsController.js +29 -0
  17. package/lib/client/QaAccountsController.js.map +1 -1
  18. package/lib/client/QaSessionController.js +261 -48
  19. package/lib/client/QaSessionController.js.map +1 -1
  20. package/lib/client/QaSurface.js +138 -56
  21. package/lib/client/QaSurface.js.map +1 -1
  22. package/lib/client/QaSurfaceGuard.js +96 -0
  23. package/lib/client/QaSurfaceGuard.js.map +1 -0
  24. package/lib/client/QaTranscriptAdapter.js +11 -5
  25. package/lib/client/QaTranscriptAdapter.js.map +1 -1
  26. package/lib/client/approvals.js +104 -0
  27. package/lib/client/approvals.js.map +1 -0
  28. package/lib/client/attestation.js +3 -0
  29. package/lib/client/attestation.js.map +1 -1
  30. package/lib/client/components/QaApproval.js +23 -0
  31. package/lib/client/components/QaApproval.js.map +1 -0
  32. package/lib/client/components/QaChangelog.js +55 -0
  33. package/lib/client/components/QaChangelog.js.map +1 -1
  34. package/lib/client/components/QaComposer.js +1 -1
  35. package/lib/client/components/QaComposer.js.map +1 -1
  36. package/lib/client/components/QaHeader.js +2 -8
  37. package/lib/client/components/QaHeader.js.map +1 -1
  38. package/lib/client/components/QaMessage.js +20 -7
  39. package/lib/client/components/QaMessage.js.map +1 -1
  40. package/lib/client/components/QaModal.js +24 -6
  41. package/lib/client/components/QaModal.js.map +1 -1
  42. package/lib/client/components/QaQuestions.js +96 -0
  43. package/lib/client/components/QaQuestions.js.map +1 -0
  44. package/lib/client/components/QaSidebar.js +2 -6
  45. package/lib/client/components/QaSidebar.js.map +1 -1
  46. package/lib/client/components/QaSourcesPanel.js +6 -5
  47. package/lib/client/components/QaSourcesPanel.js.map +1 -1
  48. package/lib/client/components/QaWidthHandle.js +21 -1
  49. package/lib/client/components/QaWidthHandle.js.map +1 -1
  50. package/lib/client/components/surface-utils.js +2 -0
  51. package/lib/client/components/surface-utils.js.map +1 -1
  52. package/lib/client/index.js +81 -22
  53. package/lib/client/index.js.map +1 -1
  54. package/lib/client/panels/PanelHost.js +209 -0
  55. package/lib/client/panels/PanelHost.js.map +1 -0
  56. package/lib/client/panels/PanelLauncher.js +39 -0
  57. package/lib/client/panels/PanelLauncher.js.map +1 -0
  58. package/lib/client/panels/contract.js +2 -0
  59. package/lib/client/panels/contract.js.map +1 -0
  60. package/lib/client/panels/index.js +2 -0
  61. package/lib/client/panels/index.js.map +1 -0
  62. package/lib/client/panels/registry.js +171 -0
  63. package/lib/client/panels/registry.js.map +1 -0
  64. package/lib/client/project-session-state.js +8 -3
  65. package/lib/client/project-session-state.js.map +1 -1
  66. package/lib/client/questions.js +114 -0
  67. package/lib/client/questions.js.map +1 -0
  68. package/lib/client/settings/card.js +2 -2
  69. package/lib/client/settings/card.js.map +1 -1
  70. package/lib/client/settings/sections/accounts.js +3 -1
  71. package/lib/client/settings/sections/accounts.js.map +1 -1
  72. package/lib/client/settings/sections/documents.js +88 -0
  73. package/lib/client/settings/sections/documents.js.map +1 -0
  74. package/lib/client/settings/sections/interface.js +2 -0
  75. package/lib/client/settings/sections/interface.js.map +1 -1
  76. package/lib/client/settings/sections/sources.js +2 -0
  77. package/lib/client/settings/sections/sources.js.map +1 -1
  78. package/lib/client/settings/sections.js +1 -0
  79. package/lib/client/settings/sections.js.map +1 -1
  80. package/lib/client/settings-extensions/contract.js +2 -0
  81. package/lib/client/settings-extensions/contract.js.map +1 -0
  82. package/lib/client/settings-extensions/index.js +2 -0
  83. package/lib/client/settings-extensions/index.js.map +1 -0
  84. package/lib/client/settings-extensions/registry.js +63 -0
  85. package/lib/client/settings-extensions/registry.js.map +1 -0
  86. package/lib/client/settlement.js +51 -5
  87. package/lib/client/settlement.js.map +1 -1
  88. package/lib/client/source-preview.js +24 -0
  89. package/lib/client/source-preview.js.map +1 -0
  90. package/lib/client/styles.js +199 -32
  91. package/lib/client/styles.js.map +1 -1
  92. package/lib/client/subagent-codenames.js +109 -0
  93. package/lib/client/subagent-codenames.js.map +1 -0
  94. package/lib/client/types.js +3 -0
  95. package/lib/client/types.js.map +1 -1
  96. package/lib/client/user-settings/GeneralSettingsPage.js +13 -0
  97. package/lib/client/user-settings/GeneralSettingsPage.js.map +1 -0
  98. package/lib/client/user-settings/ProfileSettingsPage.js +59 -0
  99. package/lib/client/user-settings/ProfileSettingsPage.js.map +1 -0
  100. package/lib/client/user-settings/SkillCatalog.js +23 -0
  101. package/lib/client/user-settings/SkillCatalog.js.map +1 -0
  102. package/lib/client/user-settings/SkillEditor.js +89 -0
  103. package/lib/client/user-settings/SkillEditor.js.map +1 -0
  104. package/lib/client/user-settings/SkillToolPicker.js +58 -0
  105. package/lib/client/user-settings/SkillToolPicker.js.map +1 -0
  106. package/lib/client/user-settings/SkillsSettingsPage.js +171 -0
  107. package/lib/client/user-settings/SkillsSettingsPage.js.map +1 -0
  108. package/lib/client/user-settings/StartersSettingsPage.js +78 -0
  109. package/lib/client/user-settings/StartersSettingsPage.js.map +1 -0
  110. package/lib/client/user-settings/UserSettingsDialog.js +50 -0
  111. package/lib/client/user-settings/UserSettingsDialog.js.map +1 -0
  112. package/lib/client/user-settings/copy.js +84 -0
  113. package/lib/client/user-settings/copy.js.map +1 -0
  114. package/lib/client/user-settings/draft.js +127 -0
  115. package/lib/client/user-settings/draft.js.map +1 -0
  116. package/lib/client/user-settings/fields.js +24 -0
  117. package/lib/client/user-settings/fields.js.map +1 -0
  118. package/lib/client.js +6629 -1579
  119. package/lib/client.js.map +1 -1
  120. package/lib/config-resolvers/accounts.js +30 -0
  121. package/lib/config-resolvers/accounts.js.map +1 -1
  122. package/lib/config-resolvers/basics.js +4 -2
  123. package/lib/config-resolvers/basics.js.map +1 -1
  124. package/lib/config-resolvers/defaults.js +27 -0
  125. package/lib/config-resolvers/defaults.js.map +1 -1
  126. package/lib/config-resolvers/lockdown.js +11 -0
  127. package/lib/config-resolvers/lockdown.js.map +1 -1
  128. package/lib/config-resolvers/session.js +2 -2
  129. package/lib/config-resolvers/session.js.map +1 -1
  130. package/lib/config-resolvers/shared.js +9 -0
  131. package/lib/config-resolvers/shared.js.map +1 -1
  132. package/lib/config-resolvers/sources.js +2 -0
  133. package/lib/config-resolvers/sources.js.map +1 -1
  134. package/lib/config-resolvers/tools.js +37 -0
  135. package/lib/config-resolvers/tools.js.map +1 -0
  136. package/lib/config-resolvers/ui.js +2 -0
  137. package/lib/config-resolvers/ui.js.map +1 -1
  138. package/lib/config.js +299 -2
  139. package/lib/config.js.map +1 -1
  140. package/lib/documents/artifacts/ids.js +43 -0
  141. package/lib/documents/artifacts/ids.js.map +1 -0
  142. package/lib/documents/artifacts/manifest.js +66 -0
  143. package/lib/documents/artifacts/manifest.js.map +1 -0
  144. package/lib/documents/artifacts/store.js +169 -0
  145. package/lib/documents/artifacts/store.js.map +1 -0
  146. package/lib/documents/capabilities.js +93 -0
  147. package/lib/documents/capabilities.js.map +1 -0
  148. package/lib/documents/config.js +302 -0
  149. package/lib/documents/config.js.map +1 -0
  150. package/lib/documents/defaults.js +78 -0
  151. package/lib/documents/defaults.js.map +1 -0
  152. package/lib/documents/errors.js +101 -0
  153. package/lib/documents/errors.js.map +1 -0
  154. package/lib/documents/index.js +80 -0
  155. package/lib/documents/index.js.map +1 -0
  156. package/lib/documents/inspect/facts.js +161 -0
  157. package/lib/documents/inspect/facts.js.map +1 -0
  158. package/lib/documents/inspect/zip.js +108 -0
  159. package/lib/documents/inspect/zip.js.map +1 -0
  160. package/lib/documents/markdown/directives.js +135 -0
  161. package/lib/documents/markdown/directives.js.map +1 -0
  162. package/lib/documents/markdown/frontmatter.js +35 -0
  163. package/lib/documents/markdown/frontmatter.js.map +1 -0
  164. package/lib/documents/markdown/normalize.js +113 -0
  165. package/lib/documents/markdown/normalize.js.map +1 -0
  166. package/lib/documents/orchestrator/assets.js +243 -0
  167. package/lib/documents/orchestrator/assets.js.map +1 -0
  168. package/lib/documents/orchestrator/convert-document.js +186 -0
  169. package/lib/documents/orchestrator/convert-document.js.map +1 -0
  170. package/lib/documents/orchestrator/create-document.js +292 -0
  171. package/lib/documents/orchestrator/create-document.js.map +1 -0
  172. package/lib/documents/orchestrator/extract-document.js +162 -0
  173. package/lib/documents/orchestrator/extract-document.js.map +1 -0
  174. package/lib/documents/orchestrator/inspect-document.js +89 -0
  175. package/lib/documents/orchestrator/inspect-document.js.map +1 -0
  176. package/lib/documents/orchestrator/runtime-deps.js +59 -0
  177. package/lib/documents/orchestrator/runtime-deps.js.map +1 -0
  178. package/lib/documents/orchestrator/scope.js +132 -0
  179. package/lib/documents/orchestrator/scope.js.map +1 -0
  180. package/lib/documents/providers/docling.js +247 -0
  181. package/lib/documents/providers/docling.js.map +1 -0
  182. package/lib/documents/providers/libreoffice.js +130 -0
  183. package/lib/documents/providers/libreoffice.js.map +1 -0
  184. package/lib/documents/providers/markitdown.js +89 -0
  185. package/lib/documents/providers/markitdown.js.map +1 -0
  186. package/lib/documents/providers/pandoc.js +161 -0
  187. package/lib/documents/providers/pandoc.js.map +1 -0
  188. package/lib/documents/providers/process.js +164 -0
  189. package/lib/documents/providers/process.js.map +1 -0
  190. package/lib/documents/providers/registry.js +152 -0
  191. package/lib/documents/providers/registry.js.map +1 -0
  192. package/lib/documents/providers/shared.js +75 -0
  193. package/lib/documents/providers/shared.js.map +1 -0
  194. package/lib/documents/runtime.js +114 -0
  195. package/lib/documents/runtime.js.map +1 -0
  196. package/lib/documents/security/file-types.js +188 -0
  197. package/lib/documents/security/file-types.js.map +1 -0
  198. package/lib/documents/security/limits.js +78 -0
  199. package/lib/documents/security/limits.js.map +1 -0
  200. package/lib/documents/security/mime.js +43 -0
  201. package/lib/documents/security/mime.js.map +1 -0
  202. package/lib/documents/security/paths.js +133 -0
  203. package/lib/documents/security/paths.js.map +1 -0
  204. package/lib/documents/templates/registry.js +147 -0
  205. package/lib/documents/templates/registry.js.map +1 -0
  206. package/lib/documents/templates/resolver.js +59 -0
  207. package/lib/documents/templates/resolver.js.map +1 -0
  208. package/lib/documents/tools/convert.js +125 -0
  209. package/lib/documents/tools/convert.js.map +1 -0
  210. package/lib/documents/tools/create.js +187 -0
  211. package/lib/documents/tools/create.js.map +1 -0
  212. package/lib/documents/tools/index.js +41 -0
  213. package/lib/documents/tools/index.js.map +1 -0
  214. package/lib/documents/tools/inspect.js +135 -0
  215. package/lib/documents/tools/inspect.js.map +1 -0
  216. package/lib/documents/tools/shared.js +88 -0
  217. package/lib/documents/tools/shared.js.map +1 -0
  218. package/lib/documents/tools/to-markdown.js +125 -0
  219. package/lib/documents/tools/to-markdown.js.map +1 -0
  220. package/lib/documents/types.js +12 -0
  221. package/lib/documents/types.js.map +1 -0
  222. package/lib/index.js +299 -24
  223. package/lib/index.js.map +1 -1
  224. package/lib/integration-principals.js +22 -0
  225. package/lib/integration-principals.js.map +1 -0
  226. package/lib/lockdown-policy.js +15 -3
  227. package/lib/lockdown-policy.js.map +1 -1
  228. package/lib/personal-skills/errors.js +9 -0
  229. package/lib/personal-skills/errors.js.map +1 -0
  230. package/lib/personal-skills/host.js +80 -0
  231. package/lib/personal-skills/host.js.map +1 -0
  232. package/lib/personal-skills/index.js +10 -0
  233. package/lib/personal-skills/index.js.map +1 -0
  234. package/lib/personal-skills/paths.js +127 -0
  235. package/lib/personal-skills/paths.js.map +1 -0
  236. package/lib/personal-skills/provider.js +109 -0
  237. package/lib/personal-skills/provider.js.map +1 -0
  238. package/lib/personal-skills/remotes.js +40 -0
  239. package/lib/personal-skills/remotes.js.map +1 -0
  240. package/lib/personal-skills/service.js +686 -0
  241. package/lib/personal-skills/service.js.map +1 -0
  242. package/lib/personal-skills/skill-file.js +278 -0
  243. package/lib/personal-skills/skill-file.js.map +1 -0
  244. package/lib/personal-skills/skill-format.js +202 -0
  245. package/lib/personal-skills/skill-format.js.map +1 -0
  246. package/lib/personal-skills/watcher.js +96 -0
  247. package/lib/personal-skills/watcher.js.map +1 -0
  248. package/lib/profile.js +6 -4
  249. package/lib/profile.js.map +1 -1
  250. package/lib/prompt-notes.js +19 -0
  251. package/lib/prompt-notes.js.map +1 -1
  252. package/lib/provenance/file-preview.js +68 -21
  253. package/lib/provenance/file-preview.js.map +1 -1
  254. package/lib/provenance/host-store.js +69 -20
  255. package/lib/provenance/host-store.js.map +1 -1
  256. package/lib/provenance/index.js +1 -0
  257. package/lib/provenance/index.js.map +1 -1
  258. package/lib/provenance/normalize.js +3 -1
  259. package/lib/provenance/normalize.js.map +1 -1
  260. package/lib/provenance/reported.js +37 -12
  261. package/lib/provenance/reported.js.map +1 -1
  262. package/lib/provenance/snapshot-store.js +154 -0
  263. package/lib/provenance/snapshot-store.js.map +1 -0
  264. package/lib/qa-tools/activation-detector.js +53 -0
  265. package/lib/qa-tools/activation-detector.js.map +1 -0
  266. package/lib/qa-tools/activation-manager.js +111 -0
  267. package/lib/qa-tools/activation-manager.js.map +1 -0
  268. package/lib/qa-tools/catalog.js +108 -0
  269. package/lib/qa-tools/catalog.js.map +1 -0
  270. package/lib/qa-tools/durable-marker.js +115 -0
  271. package/lib/qa-tools/durable-marker.js.map +1 -0
  272. package/lib/qa-tools/index.js +83 -0
  273. package/lib/qa-tools/index.js.map +1 -0
  274. package/lib/qa-tools/lifecycle.js +64 -0
  275. package/lib/qa-tools/lifecycle.js.map +1 -0
  276. package/lib/qa-tools/types.js +2 -0
  277. package/lib/qa-tools/types.js.map +1 -0
  278. package/lib/questions.js +185 -0
  279. package/lib/questions.js.map +1 -0
  280. package/lib/resolve-config.js +5 -0
  281. package/lib/resolve-config.js.map +1 -1
  282. package/lib/secure-session.js +104 -20
  283. package/lib/secure-session.js.map +1 -1
  284. package/lib/session-ownership.js +55 -0
  285. package/lib/session-ownership.js.map +1 -0
  286. package/lib/starters.js +117 -0
  287. package/lib/starters.js.map +1 -0
  288. package/lib/typert.host.js +1162 -77
  289. package/lib/typert.remote-client.d.ts +27 -1
  290. package/lib/typert.remote-client.js +879 -14
  291. package/lib/types/account-remotes.d.ts +3 -1
  292. package/lib/types/accounts/credentials.d.ts +6 -0
  293. package/lib/types/accounts/errors.d.ts +1 -1
  294. package/lib/types/accounts/file.d.ts +10 -0
  295. package/lib/types/accounts/store.d.ts +15 -1
  296. package/lib/types/approvals.d.ts +65 -0
  297. package/lib/types/client/QaAccountsController.d.ts +7 -1
  298. package/lib/types/client/QaSessionController.d.ts +50 -1
  299. package/lib/types/client/QaSurface.d.ts +21 -4
  300. package/lib/types/client/QaSurfaceGuard.d.ts +27 -0
  301. package/lib/types/client/QaTranscriptAdapter.d.ts +7 -0
  302. package/lib/types/client/approvals.d.ts +39 -0
  303. package/lib/types/client/components/QaApproval.d.ts +13 -0
  304. package/lib/types/client/components/QaComposer.d.ts +3 -1
  305. package/lib/types/client/components/QaHeader.d.ts +3 -1
  306. package/lib/types/client/components/QaModal.d.ts +5 -4
  307. package/lib/types/client/components/QaQuestions.d.ts +13 -0
  308. package/lib/types/client/components/QaSidebar.d.ts +8 -11
  309. package/lib/types/client/components/QaWidthHandle.d.ts +13 -0
  310. package/lib/types/client/index.d.ts +1 -0
  311. package/lib/types/client/panels/PanelHost.d.ts +18 -0
  312. package/lib/types/client/panels/PanelLauncher.d.ts +5 -0
  313. package/lib/types/client/panels/contract.d.ts +83 -0
  314. package/lib/types/client/panels/index.d.ts +3 -0
  315. package/lib/types/client/panels/registry.d.ts +40 -0
  316. package/lib/types/client/project-session-state.d.ts +13 -1
  317. package/lib/types/client/questions.d.ts +45 -0
  318. package/lib/types/client/settings/sections/documents.d.ts +13 -0
  319. package/lib/types/client/settings/sections.d.ts +1 -0
  320. package/lib/types/client/settings-extensions/contract.d.ts +32 -0
  321. package/lib/types/client/settings-extensions/index.d.ts +3 -0
  322. package/lib/types/client/settings-extensions/registry.d.ts +15 -0
  323. package/lib/types/client/settlement.d.ts +41 -5
  324. package/lib/types/client/source-preview.d.ts +8 -0
  325. package/lib/types/client/styles.d.ts +2 -0
  326. package/lib/types/client/subagent-codenames.d.ts +18 -0
  327. package/lib/types/client/types.d.ts +82 -3
  328. package/lib/types/client/user-settings/GeneralSettingsPage.d.ts +14 -0
  329. package/lib/types/client/user-settings/ProfileSettingsPage.d.ts +18 -0
  330. package/lib/types/client/user-settings/SkillCatalog.d.ts +16 -0
  331. package/lib/types/client/user-settings/SkillEditor.d.ts +42 -0
  332. package/lib/types/client/user-settings/SkillToolPicker.d.ts +17 -0
  333. package/lib/types/client/user-settings/SkillsSettingsPage.d.ts +15 -0
  334. package/lib/types/client/user-settings/StartersSettingsPage.d.ts +14 -0
  335. package/lib/types/client/user-settings/UserSettingsDialog.d.ts +43 -0
  336. package/lib/types/client/user-settings/copy.d.ts +25 -0
  337. package/lib/types/client/user-settings/draft.d.ts +51 -0
  338. package/lib/types/client/user-settings/fields.d.ts +43 -0
  339. package/lib/types/config-resolvers/shared.d.ts +7 -0
  340. package/lib/types/config-resolvers/tools.d.ts +6 -0
  341. package/lib/types/documents/artifacts/ids.d.ts +14 -0
  342. package/lib/types/documents/artifacts/manifest.d.ts +32 -0
  343. package/lib/types/documents/artifacts/store.d.ts +67 -0
  344. package/lib/types/documents/capabilities.d.ts +32 -0
  345. package/lib/types/documents/config.d.ts +27 -0
  346. package/lib/types/documents/defaults.d.ts +161 -0
  347. package/lib/types/documents/errors.d.ts +42 -0
  348. package/lib/types/documents/index.d.ts +63 -0
  349. package/lib/types/documents/inspect/facts.d.ts +43 -0
  350. package/lib/types/documents/inspect/zip.d.ts +28 -0
  351. package/lib/types/documents/markdown/directives.d.ts +39 -0
  352. package/lib/types/documents/markdown/frontmatter.d.ts +15 -0
  353. package/lib/types/documents/markdown/normalize.d.ts +30 -0
  354. package/lib/types/documents/orchestrator/assets.d.ts +55 -0
  355. package/lib/types/documents/orchestrator/convert-document.d.ts +25 -0
  356. package/lib/types/documents/orchestrator/create-document.d.ts +18 -0
  357. package/lib/types/documents/orchestrator/extract-document.d.ts +24 -0
  358. package/lib/types/documents/orchestrator/inspect-document.d.ts +12 -0
  359. package/lib/types/documents/orchestrator/runtime-deps.d.ts +43 -0
  360. package/lib/types/documents/orchestrator/scope.d.ts +52 -0
  361. package/lib/types/documents/providers/docling.d.ts +54 -0
  362. package/lib/types/documents/providers/libreoffice.d.ts +40 -0
  363. package/lib/types/documents/providers/markitdown.d.ts +28 -0
  364. package/lib/types/documents/providers/pandoc.d.ts +42 -0
  365. package/lib/types/documents/providers/process.d.ts +54 -0
  366. package/lib/types/documents/providers/registry.d.ts +68 -0
  367. package/lib/types/documents/providers/shared.d.ts +27 -0
  368. package/lib/types/documents/runtime.d.ts +59 -0
  369. package/lib/types/documents/security/file-types.d.ts +39 -0
  370. package/lib/types/documents/security/limits.d.ts +24 -0
  371. package/lib/types/documents/security/mime.d.ts +13 -0
  372. package/lib/types/documents/security/paths.d.ts +38 -0
  373. package/lib/types/documents/templates/registry.d.ts +50 -0
  374. package/lib/types/documents/templates/resolver.d.ts +30 -0
  375. package/lib/types/documents/tools/convert.d.ts +9 -0
  376. package/lib/types/documents/tools/create.d.ts +14 -0
  377. package/lib/types/documents/tools/index.d.ts +33 -0
  378. package/lib/types/documents/tools/inspect.d.ts +9 -0
  379. package/lib/types/documents/tools/shared.d.ts +77 -0
  380. package/lib/types/documents/tools/to-markdown.d.ts +12 -0
  381. package/lib/types/documents/types.d.ts +294 -0
  382. package/lib/types/index.d.ts +103 -5
  383. package/lib/types/integration-principals.d.ts +9 -0
  384. package/lib/types/lockdown-policy.d.ts +12 -2
  385. package/lib/types/personal-skills/errors.d.ts +11 -0
  386. package/lib/types/personal-skills/host.d.ts +42 -0
  387. package/lib/types/personal-skills/index.d.ts +10 -0
  388. package/lib/types/personal-skills/paths.d.ts +39 -0
  389. package/lib/types/personal-skills/provider.d.ts +33 -0
  390. package/lib/types/personal-skills/remotes.d.ts +35 -0
  391. package/lib/types/personal-skills/service.d.ts +131 -0
  392. package/lib/types/personal-skills/skill-file.d.ts +64 -0
  393. package/lib/types/personal-skills/skill-format.d.ts +100 -0
  394. package/lib/types/personal-skills/watcher.d.ts +39 -0
  395. package/lib/types/profile.d.ts +13 -0
  396. package/lib/types/prompt-notes.d.ts +9 -0
  397. package/lib/types/provenance/file-preview.d.ts +47 -4
  398. package/lib/types/provenance/host-store.d.ts +7 -1
  399. package/lib/types/provenance/index.d.ts +1 -0
  400. package/lib/types/provenance/reported.d.ts +9 -1
  401. package/lib/types/provenance/snapshot-store.d.ts +23 -0
  402. package/lib/types/qa-tools/activation-detector.d.ts +29 -0
  403. package/lib/types/qa-tools/activation-manager.d.ts +47 -0
  404. package/lib/types/qa-tools/catalog.d.ts +40 -0
  405. package/lib/types/qa-tools/durable-marker.d.ts +16 -0
  406. package/lib/types/qa-tools/index.d.ts +40 -0
  407. package/lib/types/qa-tools/lifecycle.d.ts +44 -0
  408. package/lib/types/qa-tools/types.d.ts +45 -0
  409. package/lib/types/questions.d.ts +83 -0
  410. package/lib/types/secure-session.d.ts +45 -4
  411. package/lib/types/session-ownership.d.ts +30 -0
  412. package/lib/types/starters.d.ts +45 -0
  413. package/lib/types/types.d.ts +282 -7
  414. package/lib/types/user-workspace.d.ts +5 -1
  415. package/lib/user-workspace.js +21 -6
  416. package/lib/user-workspace.js.map +1 -1
  417. package/package.json +22 -9
  418. package/scripts/repair-session-events.mjs +260 -0
  419. package/lib/client/components/QaProfile.js +0 -64
  420. package/lib/client/components/QaProfile.js.map +0 -1
  421. package/lib/types/client/components/QaProfile.d.ts +0 -25
package/lib/index.js CHANGED
@@ -39,14 +39,23 @@ import { WorkspaceId } from "@deepseek-ai/dsh-workspace";
39
39
  import { createHostLoggerSink, getPluginLogger, } from "@yadsh/dsh-plugin-log";
40
40
  import { ConfigSchema, resolveConfig } from "./config.js";
41
41
  import { createQaAccountRemotes } from "./account-remotes.js";
42
+ import { createQaPersonalSkillRemotes, QaPersonalSkillsHost, } from "./personal-skills/index.js";
43
+ import { QaApprovalGate } from "./approvals.js";
42
44
  import { QaAttestationError } from "./attestation.js";
45
+ import { applyDocumentsEnvOverrides } from "./documents/config.js";
46
+ import { installDocumentSubsystem, } from "./documents/index.js";
47
+ import { QaQuestionGate } from "./questions.js";
48
+ import { QaSessionOwnership } from "./session-ownership.js";
43
49
  import { entryRedirectRow } from "./entry-redirect.js";
44
50
  import { registerQaNavigationRoute } from "./host-route.js";
45
51
  import { makeLaunchTokenSource } from "./launch-token.js";
52
+ import { QaIntegrationPrincipalBindings } from "./integration-principals.js";
46
53
  import { QaPolicyAdmission } from "./secure-session.js";
47
54
  import { QaPromptNotes } from "./prompt-notes.js";
55
+ import { QaTools } from "./qa-tools/index.js";
48
56
  import { QaProvenanceHost } from "./provenance/host-store.js";
49
- import { readSourceFilePreview } from "./provenance/file-preview.js";
57
+ import { FileQaProvenanceSnapshotStore } from "./provenance/snapshot-store.js";
58
+ import { readSourceFilePreview, QaSourcePreviewError, } from "./provenance/file-preview.js";
50
59
  import { existingQaUserWorkspace, prepareQaUserWorkspace, } from "./user-workspace.js";
51
60
  export const name = "qa-surface";
52
61
  export const inject = [
@@ -68,6 +77,10 @@ export const Config = ConfigSchema;
68
77
  const CONFIGURATION_ERROR = "Assistant configuration is unavailable.";
69
78
  /** The `(reason: <code>)` marker contract shared with the attestation path. */
70
79
  const ACCOUNTS_REASON_MARKER = /\(reason: ([a-z-]+)\)/u;
80
+ /** Fold a preview refusal into the shared reason marker. */
81
+ function sourcePreviewRefusal(reason) {
82
+ return new Error(`QA source preview refused the request (reason: ${reason})`);
83
+ }
71
84
  /** Host companion: validates config, owns the admission boundary and the route. */
72
85
  let QaSurface = (() => {
73
86
  let _classSuper = TypertRemoteService;
@@ -79,11 +92,24 @@ let QaSurface = (() => {
79
92
  let _accountsOwnedSessions_decorators;
80
93
  let _accountsListOwnership_decorators;
81
94
  let _accountsUpdateProfile_decorators;
95
+ let _accountsUpdateStarters_decorators;
82
96
  let _describe_decorators;
83
97
  let _createSession_decorators;
84
98
  let _secureSession_decorators;
85
99
  let _sources_decorators;
100
+ let _pendingApprovals_decorators;
101
+ let _answerApproval_decorators;
102
+ let _pendingQuestions_decorators;
103
+ let _answerQuestion_decorators;
104
+ let _cancelQuestion_decorators;
86
105
  let _readSourceFile_decorators;
106
+ let _skillsList_decorators;
107
+ let _skillsGet_decorators;
108
+ let _skillsCreate_decorators;
109
+ let _skillsUpdate_decorators;
110
+ let _skillsRemove_decorators;
111
+ let _skillsValidate_decorators;
112
+ let _skillsTools_decorators;
87
113
  return class QaSurface extends _classSuper {
88
114
  static {
89
115
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
@@ -94,11 +120,24 @@ let QaSurface = (() => {
94
120
  _accountsOwnedSessions_decorators = [Remote("accountsOwnedSessions")];
95
121
  _accountsListOwnership_decorators = [Remote("accountsListOwnership")];
96
122
  _accountsUpdateProfile_decorators = [Remote("accountsUpdateProfile")];
123
+ _accountsUpdateStarters_decorators = [Remote("accountsUpdateStarters")];
97
124
  _describe_decorators = [Remote("describe")];
98
125
  _createSession_decorators = [Remote("createSession")];
99
126
  _secureSession_decorators = [Remote("secureSession")];
100
127
  _sources_decorators = [Remote("sources")];
128
+ _pendingApprovals_decorators = [Remote("pendingApprovals")];
129
+ _answerApproval_decorators = [Remote("answerApproval")];
130
+ _pendingQuestions_decorators = [Remote("pendingQuestions")];
131
+ _answerQuestion_decorators = [Remote("answerQuestion")];
132
+ _cancelQuestion_decorators = [Remote("cancelQuestion")];
101
133
  _readSourceFile_decorators = [Remote("readSourceFile")];
134
+ _skillsList_decorators = [Remote("skillsList")];
135
+ _skillsGet_decorators = [Remote("skillsGet")];
136
+ _skillsCreate_decorators = [Remote("skillsCreate")];
137
+ _skillsUpdate_decorators = [Remote("skillsUpdate")];
138
+ _skillsRemove_decorators = [Remote("skillsRemove")];
139
+ _skillsValidate_decorators = [Remote("skillsValidate")];
140
+ _skillsTools_decorators = [Remote("skillsTools")];
102
141
  __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
142
  __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
143
  __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);
@@ -106,11 +145,24 @@ let QaSurface = (() => {
106
145
  __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
146
  __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
147
  __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);
148
+ __esDecorate(this, null, _accountsUpdateStarters_decorators, { kind: "method", name: "accountsUpdateStarters", static: false, private: false, access: { has: obj => "accountsUpdateStarters" in obj, get: obj => obj.accountsUpdateStarters }, metadata: _metadata }, null, _instanceExtraInitializers);
109
149
  __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
150
  __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);
111
151
  __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
152
  __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);
153
+ __esDecorate(this, null, _pendingApprovals_decorators, { kind: "method", name: "pendingApprovals", static: false, private: false, access: { has: obj => "pendingApprovals" in obj, get: obj => obj.pendingApprovals }, metadata: _metadata }, null, _instanceExtraInitializers);
154
+ __esDecorate(this, null, _answerApproval_decorators, { kind: "method", name: "answerApproval", static: false, private: false, access: { has: obj => "answerApproval" in obj, get: obj => obj.answerApproval }, metadata: _metadata }, null, _instanceExtraInitializers);
155
+ __esDecorate(this, null, _pendingQuestions_decorators, { kind: "method", name: "pendingQuestions", static: false, private: false, access: { has: obj => "pendingQuestions" in obj, get: obj => obj.pendingQuestions }, metadata: _metadata }, null, _instanceExtraInitializers);
156
+ __esDecorate(this, null, _answerQuestion_decorators, { kind: "method", name: "answerQuestion", static: false, private: false, access: { has: obj => "answerQuestion" in obj, get: obj => obj.answerQuestion }, metadata: _metadata }, null, _instanceExtraInitializers);
157
+ __esDecorate(this, null, _cancelQuestion_decorators, { kind: "method", name: "cancelQuestion", static: false, private: false, access: { has: obj => "cancelQuestion" in obj, get: obj => obj.cancelQuestion }, metadata: _metadata }, null, _instanceExtraInitializers);
113
158
  __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);
159
+ __esDecorate(this, null, _skillsList_decorators, { kind: "method", name: "skillsList", static: false, private: false, access: { has: obj => "skillsList" in obj, get: obj => obj.skillsList }, metadata: _metadata }, null, _instanceExtraInitializers);
160
+ __esDecorate(this, null, _skillsGet_decorators, { kind: "method", name: "skillsGet", static: false, private: false, access: { has: obj => "skillsGet" in obj, get: obj => obj.skillsGet }, metadata: _metadata }, null, _instanceExtraInitializers);
161
+ __esDecorate(this, null, _skillsCreate_decorators, { kind: "method", name: "skillsCreate", static: false, private: false, access: { has: obj => "skillsCreate" in obj, get: obj => obj.skillsCreate }, metadata: _metadata }, null, _instanceExtraInitializers);
162
+ __esDecorate(this, null, _skillsUpdate_decorators, { kind: "method", name: "skillsUpdate", static: false, private: false, access: { has: obj => "skillsUpdate" in obj, get: obj => obj.skillsUpdate }, metadata: _metadata }, null, _instanceExtraInitializers);
163
+ __esDecorate(this, null, _skillsRemove_decorators, { kind: "method", name: "skillsRemove", static: false, private: false, access: { has: obj => "skillsRemove" in obj, get: obj => obj.skillsRemove }, metadata: _metadata }, null, _instanceExtraInitializers);
164
+ __esDecorate(this, null, _skillsValidate_decorators, { kind: "method", name: "skillsValidate", static: false, private: false, access: { has: obj => "skillsValidate" in obj, get: obj => obj.skillsValidate }, metadata: _metadata }, null, _instanceExtraInitializers);
165
+ __esDecorate(this, null, _skillsTools_decorators, { kind: "method", name: "skillsTools", static: false, private: false, access: { has: obj => "skillsTools" in obj, get: obj => obj.skillsTools }, metadata: _metadata }, null, _instanceExtraInitializers);
114
166
  if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
115
167
  }
116
168
  static inject = inject;
@@ -118,14 +170,31 @@ let QaSurface = (() => {
118
170
  source = __runInitializers(this, _instanceExtraInitializers);
119
171
  logger;
120
172
  admission;
173
+ approvals;
174
+ userQuestions;
121
175
  provenance;
122
176
  notes;
177
+ /** Assigned after the admission gate; that gate only reads it per execution. */
178
+ tools;
123
179
  /** Account-remote bodies; the wire signatures stay on this class. */
124
180
  accountRemotes;
181
+ /** Personal skills: storage, the DSH provider and the manual-edit watcher. */
182
+ personalSkills;
183
+ /** Personal-skill remote bodies; the wire signatures stay on this class. */
184
+ skillRemotes;
125
185
  launchToken;
186
+ /** Root session principals attested for their owner, never for admin viewing. */
187
+ integrationPrincipals = new QaIntegrationPrincipalBindings();
126
188
  webServer;
127
189
  disposeRoute;
128
190
  routeKey;
191
+ /**
192
+ * The document subsystem: its own runtime and the four tool registrations.
193
+ * Rebuilt when the document configuration changes and torn down while the
194
+ * subsystem or the whole surface is disabled.
195
+ */
196
+ documents;
197
+ documentsKey;
129
198
  constructor(ctx, entry = {}) {
130
199
  super(ctx, "qaSurface", { namespace: "qaSurface" });
131
200
  const resolvedEntry = resolveConfig(entry);
@@ -138,6 +207,17 @@ let QaSurface = (() => {
138
207
  getConfig: () => this.getConfig(),
139
208
  logger: this.logger,
140
209
  });
210
+ this.personalSkills = new QaPersonalSkillsHost({
211
+ ctx,
212
+ getConfig: () => this.getConfig(),
213
+ logger: this.logger,
214
+ });
215
+ this.skillRemotes = createQaPersonalSkillRemotes({
216
+ getConfig: () => this.getConfig(),
217
+ logger: this.logger,
218
+ skills: this.personalSkills.service,
219
+ accounts: this.accountRemotes,
220
+ });
141
221
  this.admission = new QaPolicyAdmission(ctx, () => this.getConfig(), this.logger,
142
222
  // Identity half of admission; no-ops while accounts stay disabled.
143
223
  {
@@ -147,8 +227,22 @@ let QaSurface = (() => {
147
227
  ?.ensureSessionAccess(token, sessionId);
148
228
  },
149
229
  userWorkspace: (userId, registeredWorkspacePath) => existingQaUserWorkspace(registeredWorkspacePath, userId),
150
- });
151
- this.provenance = new QaProvenanceHost(ctx, () => this.getConfig());
230
+ },
231
+ // Dynamically attached QA tools are not operator-configured allow-list
232
+ // entries, so the execution guard reads them per call instead.
233
+ (agent) => this.tools?.activeToolNames(agent) ?? []);
234
+ this.provenance = new QaProvenanceHost(ctx, () => this.getConfig(), new FileQaProvenanceSnapshotStore(), (error) => this.logger.error("sources.persistence-failed", {
235
+ message: error instanceof Error ? error.message : String(error),
236
+ }));
237
+ // The one place a composed gate's `ask` becomes a decision for an attested
238
+ // chat: refused outright while approvals are blocked, parked for the
239
+ // operator's answer while they are interactive. The question seam shares
240
+ // the ownership map: one chat, one surface answering it.
241
+ const ownership = new QaSessionOwnership((sessionId) => this.admission.knowsSession(sessionId));
242
+ this.approvals = new QaApprovalGate(ctx, () => this.getConfig().interaction.approvals === "interactive", ownership, this.logger);
243
+ this.userQuestions = new QaQuestionGate(ctx, () => this.getConfig().interaction.questions === "interactive", ownership, this.logger);
244
+ this.approvals.install();
245
+ this.userQuestions.install();
152
246
  // The identity note and the provenance rule ride the conversation as
153
247
  // durable context messages, delegated experts included: the QA preset's
154
248
  // complete persona closes the system prompt to plugins, the conversation
@@ -164,10 +258,32 @@ let QaSurface = (() => {
164
258
  // suffices. Resolved lazily and once per process; unavailable bridges
165
259
  // warn once and leave the old marker hand-off in place.
166
260
  this.launchToken = makeLaunchTokenSource(() => ctx.get("connection"), (message) => this.logger.warn("entry.token-bridge", { message }));
261
+ ctx.effect(() => () => this.integrationPrincipals.clear(), "dsh-qa-surface.integration-principals");
167
262
  ctx.effect(() => async () => this.logger.close(), "dsh-qa-surface.logger");
168
263
  ctx.effect(() => () => this.admission.dispose(), "dsh-qa-surface.lockdown-policies");
264
+ ctx.effect(() => () => this.approvals.dispose(), "dsh-qa-surface.approvals");
265
+ ctx.effect(() => () => this.userQuestions.dispose(), "dsh-qa-surface.user-questions");
169
266
  ctx.effect(() => () => this.provenance.dispose(), "dsh-qa-surface.provenance");
170
267
  ctx.effect(() => () => this.notes.dispose(), "dsh-qa-surface.prompt-notes");
268
+ ctx.effect(() => () => this.personalSkills.dispose(), "dsh-qa-surface.personal-skills");
269
+ ctx.effect(() => () => {
270
+ this.documents?.dispose();
271
+ this.documents = undefined;
272
+ this.documentsKey = undefined;
273
+ }, "dsh-qa-surface.documents");
274
+ // Registered here rather than from the settings callback alone, so a
275
+ // deployment that never opens the settings page still gets the tools.
276
+ this.refreshDocuments();
277
+ // The QA tool catalog is attached per agent, never at boot: nothing here
278
+ // reaches the model until a managed agent loads the activation skill.
279
+ this.tools = new QaTools(ctx, {
280
+ logger: this.logger,
281
+ dynamicActivation: this.getConfig().tools.dynamicActivation,
282
+ activationSkill: this.getConfig().tools.activationSkill,
283
+ activationMode: this.getConfig().tools.activationMode,
284
+ activationPresets: this.getConfig().tools.activationPresets,
285
+ });
286
+ ctx.effect(() => () => this.tools.dispose(), "dsh-qa-surface.qa-tools");
171
287
  // The root index gains one head script: non-loopback hostnames continue
172
288
  // into /qa, the loopback operator keeps the full harness UI.
173
289
  ctx.on("webserver/index-inject", (table) => {
@@ -183,10 +299,12 @@ let QaSurface = (() => {
183
299
  onChange: () => {
184
300
  const config = this.getConfig();
185
301
  this.refreshRoute();
302
+ this.refreshDocuments();
186
303
  this.logger.info("config.updated", {
187
304
  enabled: config.enabled,
188
305
  route: config.route.path,
189
306
  sessionPolicy: config.session.policy,
307
+ documents: config.documents.enabled,
190
308
  });
191
309
  },
192
310
  validate: (value) => {
@@ -210,6 +328,29 @@ let QaSurface = (() => {
210
328
  sessionPolicy: resolvedEntry.session.policy,
211
329
  });
212
330
  }
331
+ /** Resolve browser authentication to the caller only; never accepts an id. */
332
+ principalForToken(token) {
333
+ const accounts = this.accountRemotes.resolve(this.getConfig());
334
+ if (accounts === undefined)
335
+ return undefined;
336
+ const result = accounts.whoami(token);
337
+ return result.authenticated ? { userId: result.user.id } : undefined;
338
+ }
339
+ /** Resolve only a directly QA-owned root session; delegated children fail closed. */
340
+ principalForSession(sessionId) {
341
+ const accounts = this.accountRemotes.resolve(this.getConfig());
342
+ if (accounts === undefined)
343
+ return undefined;
344
+ const userId = accounts.ownerIdOf(sessionId);
345
+ if (userId === undefined || accounts.identityOf(userId) === undefined) {
346
+ return undefined;
347
+ }
348
+ return this.integrationPrincipals.resolve(sessionId, userId);
349
+ }
350
+ /** Admit tools that independently enforce the same QA principal boundary. */
351
+ registerPrincipalScopedTools(names) {
352
+ return this.admission.registerPrincipalScopedTools(names);
353
+ }
213
354
  getConfig() {
214
355
  return resolveConfig(this.source());
215
356
  }
@@ -253,6 +394,14 @@ let QaSurface = (() => {
253
394
  accountsUpdateProfile(token, input) {
254
395
  return this.accountRemotes.updateProfile(token, input);
255
396
  }
397
+ /**
398
+ * Replace the caller's own starter buttons. Same self-service contract as
399
+ * the profile write: the token names the only editable account, and the
400
+ * deployment's limits are enforced in the store before anything is written.
401
+ */
402
+ accountsUpdateStarters(token, input) {
403
+ return this.accountRemotes.updateStarters(token, input);
404
+ }
256
405
  /**
257
406
  * Serve the effective QA configuration to the browser. The DSH gateway pins
258
407
  * settings RPCs to loopback, so a browser served over the LAN always sees
@@ -316,8 +465,10 @@ let QaSurface = (() => {
316
465
  : { reasoningEffort: config.session.reasoningEffort }),
317
466
  });
318
467
  }
319
- this.admission.secureSession(token, String(created.sessionId));
320
- return String(created.sessionId);
468
+ const sessionId = String(created.sessionId);
469
+ await this.admission.secureSession(token, sessionId);
470
+ this.integrationPrincipals.attest(sessionId, owner?.id, accounts?.ownerIdOf(sessionId));
471
+ return sessionId;
321
472
  }
322
473
  catch (error) {
323
474
  if (!hostCreated && owner !== undefined) {
@@ -331,11 +482,18 @@ let QaSurface = (() => {
331
482
  }
332
483
  }
333
484
  /** Pin and attest the effective policy. The browser supplies identity only. */
334
- secureSession(token, sessionId) {
485
+ async secureSession(token, sessionId) {
335
486
  try {
336
- return this.admission.secureSession(token, sessionId);
487
+ const principal = this.principalForToken(token);
488
+ const proof = await this.admission.secureSession(token, sessionId);
489
+ const accounts = this.accountRemotes.resolve(this.getConfig());
490
+ const ownerId = accounts?.ownerIdOf(sessionId);
491
+ // Admin cross-user viewing is intentionally not credential delegation.
492
+ this.integrationPrincipals.attest(sessionId, principal?.userId, ownerId);
493
+ return proof;
337
494
  }
338
495
  catch (error) {
496
+ this.integrationPrincipals.attest(sessionId, undefined, undefined);
339
497
  // The carrier empties error.details, so the coarse reason rides the
340
498
  // wire message for the browser console; the specific mismatch facts
341
499
  // stay in this log only.
@@ -352,35 +510,126 @@ let QaSurface = (() => {
352
510
  });
353
511
  }
354
512
  }
355
- /** Return canonical Host snapshots; replay is rebuilt from qa/sources events. */
356
- sources(token, sessionId) {
357
- this.admission.secureSession(token, sessionId);
513
+ /** Return canonical Host snapshots from plugin-owned durable provenance. */
514
+ async sources(token, sessionId) {
515
+ await this.admission.secureSession(token, sessionId);
358
516
  return this.provenance.bundles(sessionId);
359
517
  }
360
- /** Narrow read-only preview capability for files already present as sources. */
518
+ /**
519
+ * The tool calls of one chat that wait for the operator. Read-only: a
520
+ * deployment with blocked approvals answers with an empty list.
521
+ */
522
+ async pendingApprovals(token, sessionId) {
523
+ await this.admission.secureSession(token, sessionId);
524
+ return this.approvals.list(sessionId);
525
+ }
526
+ /**
527
+ * Apply the operator's answer to one parked call. The id must belong to a
528
+ * request of this chat; an answer that lost the race (the turn was stopped,
529
+ * the agent went away) is refused with `false`.
530
+ */
531
+ async answerApproval(token, sessionId, requestId, decision) {
532
+ await this.admission.secureSession(token, sessionId);
533
+ return this.approvals.answer(sessionId, requestId, decision);
534
+ }
535
+ /**
536
+ * The questions of one chat that wait for the operator. Read-only: a
537
+ * deployment with unsupported questions answers with an empty list.
538
+ */
539
+ async pendingQuestions(token, sessionId) {
540
+ await this.admission.secureSession(token, sessionId);
541
+ return this.userQuestions.list(sessionId);
542
+ }
543
+ /**
544
+ * Apply the operator's answers to one parked question request. Every question
545
+ * of the request must be present in `answers`; one the browser omits reads as
546
+ * a skip.
547
+ */
548
+ async answerQuestion(token, sessionId, requestId, answers) {
549
+ await this.admission.secureSession(token, sessionId);
550
+ return this.userQuestions.answer(sessionId, requestId, answers);
551
+ }
552
+ /** Close a parked question request without answering it. */
553
+ async cancelQuestion(token, sessionId, requestId) {
554
+ await this.admission.secureSession(token, sessionId);
555
+ return this.userQuestions.cancel(sessionId, requestId);
556
+ }
557
+ /**
558
+ * Narrow read-only preview capability for files already present as sources.
559
+ *
560
+ * The readable roots mirror the per-user execution guard: the chat's own cwd
561
+ * plus the deployment's shared read-only directories and the attachment
562
+ * store. Without that mirroring a source the model was explicitly allowed to
563
+ * read — the normal case for a deployment whose docs and code live beside
564
+ * the per-account scratch directory — could never be opened in the panel.
565
+ */
361
566
  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.");
567
+ await this.admission.secureSession(token, sessionId);
568
+ const config = this.getConfig();
569
+ if (!config.sources.filePreview.enabled) {
570
+ throw sourcePreviewRefusal("unavailable");
367
571
  }
368
572
  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.");
573
+ const cwd = agent?.session.header.cwd;
574
+ if (cwd === undefined)
575
+ throw sourcePreviewRefusal("unavailable");
576
+ const attachmentRoot = this.admission.attachmentRoot();
372
577
  try {
373
578
  return await readSourceFilePreview({
374
- root,
375
579
  sourcePath,
376
- maxBytes: config.maxBytes,
377
- maxMarkdownRenderBytes: config.maxMarkdownRenderBytes,
580
+ cwd,
581
+ isEvidence: (canonicalPath) => this.provenance.sourceAllowed(sessionId, canonicalPath),
582
+ sharedReadOnlyRoots: config.lockdown.sharedReadOnlyRoots,
583
+ ...(attachmentRoot === undefined ? {} : { attachmentRoot }),
584
+ maxBytes: config.sources.filePreview.maxBytes,
585
+ maxMarkdownRenderBytes: config.sources.filePreview.maxMarkdownRenderBytes,
378
586
  });
379
587
  }
380
- catch {
381
- throw new Error("Source preview is unavailable.");
588
+ catch (error) {
589
+ this.logger.debug("source.preview-refused", {
590
+ sessionId,
591
+ reason: error instanceof QaSourcePreviewError ? error.reason : "unavailable",
592
+ });
593
+ throw sourcePreviewRefusal(error instanceof QaSourcePreviewError ? error.reason : "unavailable");
382
594
  }
383
595
  }
596
+ /** Every personal skill of the token's account, sorted by name. */
597
+ skillsList(token) {
598
+ return this.skillRemotes.list(token);
599
+ }
600
+ /** One personal skill with the body, its preserved frontmatter and revision. */
601
+ skillsGet(token, name) {
602
+ return this.skillRemotes.get(token, name);
603
+ }
604
+ /** Create one skill directory below the account's own workspace. */
605
+ skillsCreate(token, input) {
606
+ return this.skillRemotes.create(token, input);
607
+ }
608
+ /**
609
+ * Replace one skill. `expectedRevision` is the revision the editor read; a
610
+ * mismatch is refused rather than overwriting an edit made elsewhere.
611
+ */
612
+ skillsUpdate(token, name, input) {
613
+ return this.skillRemotes.update(token, name, input);
614
+ }
615
+ /** Remove one skill into the account's own trash directory. */
616
+ skillsRemove(token, name, expectedRevision) {
617
+ return this.skillRemotes.remove(token, name, expectedRevision);
618
+ }
619
+ /**
620
+ * Check an unsaved draft: the file a save would write and the diagnostics
621
+ * for it. `name` names the stored skill being edited, or null to create one.
622
+ */
623
+ skillsValidate(token, name, input) {
624
+ return this.skillRemotes.validate(token, name, input);
625
+ }
626
+ /**
627
+ * The tool catalog the picker offers, with availability computed against
628
+ * this deployment's QA scope. Declaring a tool here never grants it.
629
+ */
630
+ skillsTools(token) {
631
+ return this.skillRemotes.tools(token);
632
+ }
384
633
  refreshRoute() {
385
634
  const config = this.getConfig();
386
635
  const key = config.enabled
@@ -398,6 +647,30 @@ let QaSurface = (() => {
398
647
  });
399
648
  this.routeKey = key;
400
649
  }
650
+ /**
651
+ * Install, rebuild or tear down the document subsystem. The raw entry is
652
+ * resolved with the documented environment overrides applied, so a
653
+ * deployment can point `QA_DOCLING_BASE_URL` at its own service without
654
+ * touching the settings namespace; the settings layer stays authoritative
655
+ * for everything it declares.
656
+ */
657
+ refreshDocuments() {
658
+ const config = this.getConfig();
659
+ const enabled = config.enabled && config.documents.enabled;
660
+ const key = enabled ? JSON.stringify(config.documents) : undefined;
661
+ if (key === this.documentsKey)
662
+ return;
663
+ this.documents?.dispose();
664
+ this.documents = undefined;
665
+ this.documentsKey = key;
666
+ if (key === undefined)
667
+ return;
668
+ this.documents = installDocumentSubsystem(this.ctx, {
669
+ config: applyDocumentsEnvOverrides(this.source().documents ?? {}, process.env),
670
+ logger: this.logger,
671
+ register: (definition) => this.ctx.tools.register(definition),
672
+ });
673
+ }
401
674
  };
402
675
  })();
403
676
  export { QaSurface };
@@ -406,7 +679,9 @@ export { QaAttestationError } from "./attestation.js";
406
679
  export { QaAccounts, QaAccountsError } from "./accounts/store.js";
407
680
  export { entryRedirectRow, entryRedirectScript } from "./entry-redirect.js";
408
681
  export { registerQaNavigationRoute } from "./host-route.js";
682
+ export { QaIntegrationPrincipalBindings } from "./integration-principals.js";
409
683
  export { qaToolDenial, qaToolPolicyPlan } from "./lockdown-policy.js";
684
+ export * from "./documents/index.js";
410
685
  export { QaPolicyAdmission } from "./secure-session.js";
411
686
  export { QaPromptNotes, renderUserIdentity, QA_IDENTITY_NOTE, QA_SOURCES_NOTE, } from "./prompt-notes.js";
412
687
  export * from "./provenance/index.js";
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,22 @@
1
+ /** Runtime-only proof that a QA root session was attested by its own user. */
2
+ export class QaIntegrationPrincipalBindings {
3
+ principals = new Map();
4
+ attest(sessionId, actorUserId, ownerUserId) {
5
+ if (actorUserId !== undefined && actorUserId === ownerUserId) {
6
+ this.principals.set(sessionId, actorUserId);
7
+ }
8
+ else {
9
+ this.principals.delete(sessionId);
10
+ }
11
+ }
12
+ resolve(sessionId, currentOwnerUserId) {
13
+ const userId = this.principals.get(sessionId);
14
+ return userId !== undefined && userId === currentOwnerUserId
15
+ ? { userId }
16
+ : undefined;
17
+ }
18
+ clear() {
19
+ this.principals.clear();
20
+ }
21
+ }
22
+ //# sourceMappingURL=integration-principals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration-principals.js","sourceRoot":"","sources":["../src/integration-principals.ts"],"names":[],"mappings":"AAEA,8EAA8E;AAC9E,MAAM,OAAO,8BAA8B;IACxB,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAExD,MAAM,CACJ,SAAiB,EACjB,WAA+B,EAC/B,WAA+B;QAE/B,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,OAAO,CACL,SAAiB,EACjB,kBAAsC;QAEtC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,kBAAkB;YAC1D,CAAC,CAAC,EAAE,MAAM,EAAE;YACZ,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;CACF"}
@@ -13,8 +13,20 @@ export function qaToolPolicyPlan(allow, isMounted) {
13
13
  unknown: allow.filter((toolName) => !isMounted(toolName)),
14
14
  };
15
15
  }
16
- /** Monotonic execution decision shared by inherited, scoped and transport tools. */
17
- export function qaToolDenial(allowed, toolName) {
18
- return allowed.has(toolName) ? undefined : TOOL_DENIAL;
16
+ /**
17
+ * Monotonic execution decision shared by inherited, scoped and transport tools.
18
+ * @param allowed - the operator's configured allow-list for this agent.
19
+ * @param toolName - the tool the model is trying to call.
20
+ * @param dynamicNames - names this plugin attached for the calling agent after
21
+ * a successful skill load. They are deliberately absent from the allow-list:
22
+ * that list is validated against the mounted catalog at attestation time, and
23
+ * a tool that appears only later cannot be named there without failing the
24
+ * check. The guard is therefore where they are authorized — a dynamic tool
25
+ * stays as unchecked as any allow-listed one, and no less.
26
+ */
27
+ export function qaToolDenial(allowed, toolName, dynamicNames = []) {
28
+ return allowed.has(toolName) || dynamicNames.includes(toolName)
29
+ ? undefined
30
+ : TOOL_DENIAL;
19
31
  }
20
32
  //# sourceMappingURL=lockdown-policy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lockdown-policy.js","sourceRoot":"","sources":["../src/lockdown-policy.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG,yDAAyD,CAAC;AAS9E;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAwB,EACxB,SAAwC;IAExC,OAAO;QACL,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;QACjB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;KAC1D,CAAC;AACJ,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,YAAY,CAC1B,OAA4B,EAC5B,QAAgB;IAEhB,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"lockdown-policy.js","sourceRoot":"","sources":["../src/lockdown-policy.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG,yDAAyD,CAAC;AAS9E;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAwB,EACxB,SAAwC;IAExC,OAAO;QACL,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;QACjB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;KAC1D,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAC1B,OAA4B,EAC5B,QAAgB,EAChB,YAAY,GAAsB,EAAE;IAEpC,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC7D,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,WAAW,CAAC;AAClB,CAAC"}