@yadsh/dsh-qa-surface 0.9.0 → 0.11.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 (250) hide show
  1. package/README.md +269 -2
  2. package/lib/access/service.js +49 -10
  3. package/lib/access/service.js.map +1 -1
  4. package/lib/account-remotes.js +41 -0
  5. package/lib/account-remotes.js.map +1 -1
  6. package/lib/accounts/database.js +140 -0
  7. package/lib/accounts/database.js.map +1 -1
  8. package/lib/accounts/errors.js.map +1 -1
  9. package/lib/accounts/service-token.js +103 -0
  10. package/lib/accounts/service-token.js.map +1 -0
  11. package/lib/accounts/store.js +291 -5
  12. package/lib/accounts/store.js.map +1 -1
  13. package/lib/admin/conversation-log.js +14 -8
  14. package/lib/admin/conversation-log.js.map +1 -1
  15. package/lib/admin/permissions.js +5 -0
  16. package/lib/admin/permissions.js.map +1 -1
  17. package/lib/admin/quality-store.js +4 -0
  18. package/lib/admin/quality-store.js.map +1 -1
  19. package/lib/admin/service.js +180 -7
  20. package/lib/admin/service.js.map +1 -1
  21. package/lib/admin/session-log.js +39 -8
  22. package/lib/admin/session-log.js.map +1 -1
  23. package/lib/attachment-rules.js +39 -6
  24. package/lib/attachment-rules.js.map +1 -1
  25. package/lib/cli.js +83 -1
  26. package/lib/cli.js.map +1 -1
  27. package/lib/client/QaAccountsController.js +213 -4
  28. package/lib/client/QaAccountsController.js.map +1 -1
  29. package/lib/client/QaSessionController.js +49 -21
  30. package/lib/client/QaSessionController.js.map +1 -1
  31. package/lib/client/QaSurface.js +51 -9
  32. package/lib/client/QaSurface.js.map +1 -1
  33. package/lib/client/QaSurfaceGuard.js +12 -5
  34. package/lib/client/QaSurfaceGuard.js.map +1 -1
  35. package/lib/client/admin/QaAdmin.js +14 -2
  36. package/lib/client/admin/QaAdmin.js.map +1 -1
  37. package/lib/client/admin/pages/SkillFiles.js +78 -0
  38. package/lib/client/admin/pages/SkillFiles.js.map +1 -0
  39. package/lib/client/admin/pages/Users.js +74 -3
  40. package/lib/client/admin/pages/Users.js.map +1 -1
  41. package/lib/client/admin/routes.js +8 -1
  42. package/lib/client/admin/routes.js.map +1 -1
  43. package/lib/client/admin/shared.js +5 -1
  44. package/lib/client/admin/shared.js.map +1 -1
  45. package/lib/client/admin/styles.js +2 -0
  46. package/lib/client/admin/styles.js.map +1 -1
  47. package/lib/client/attachments.js +41 -11
  48. package/lib/client/attachments.js.map +1 -1
  49. package/lib/client/base64.js +22 -1
  50. package/lib/client/base64.js.map +1 -1
  51. package/lib/client/components/QaAgentsDrawer.js +9 -6
  52. package/lib/client/components/QaAgentsDrawer.js.map +1 -1
  53. package/lib/client/components/QaApproval.js +1 -1
  54. package/lib/client/components/QaApproval.js.map +1 -1
  55. package/lib/client/components/QaAuthGate.js +19 -10
  56. package/lib/client/components/QaAuthGate.js.map +1 -1
  57. package/lib/client/components/QaChangelog.js +56 -0
  58. package/lib/client/components/QaChangelog.js.map +1 -1
  59. package/lib/client/components/QaFilesPanel.js +17 -11
  60. package/lib/client/components/QaFilesPanel.js.map +1 -1
  61. package/lib/client/components/QaHeader.js +3 -11
  62. package/lib/client/components/QaHeader.js.map +1 -1
  63. package/lib/client/components/QaModal.js.map +1 -1
  64. package/lib/client/components/QaQuestions.js +4 -4
  65. package/lib/client/components/QaQuestions.js.map +1 -1
  66. package/lib/client/components/QaSidebar.js +10 -2
  67. package/lib/client/components/QaSidebar.js.map +1 -1
  68. package/lib/client/components/QaWidthHandle.js +111 -5
  69. package/lib/client/components/QaWidthHandle.js.map +1 -1
  70. package/lib/client/components/QaWorkspaceBrowser.js +231 -0
  71. package/lib/client/components/QaWorkspaceBrowser.js.map +1 -0
  72. package/lib/client/index.js +122 -53
  73. package/lib/client/index.js.map +1 -1
  74. package/lib/client/kiosk.js +51 -0
  75. package/lib/client/kiosk.js.map +1 -0
  76. package/lib/client/lineage.js +64 -0
  77. package/lib/client/lineage.js.map +1 -1
  78. package/lib/client/markdown/blocks.js +122 -7
  79. package/lib/client/markdown/blocks.js.map +1 -1
  80. package/lib/client/markdown/inline.js +108 -12
  81. package/lib/client/markdown/inline.js.map +1 -1
  82. package/lib/client/markdown/katex-css.js +12 -0
  83. package/lib/client/markdown/katex-css.js.map +1 -0
  84. package/lib/client/markdown/math.js +84 -0
  85. package/lib/client/markdown/math.js.map +1 -0
  86. package/lib/client/markdown/render.js +74 -5
  87. package/lib/client/markdown/render.js.map +1 -1
  88. package/lib/client/settings/card.js +2 -2
  89. package/lib/client/settings/card.js.map +1 -1
  90. package/lib/client/settings/sections/attachments.js +6 -5
  91. package/lib/client/settings/sections/attachments.js.map +1 -1
  92. package/lib/client/settings/sections/notes.js +64 -0
  93. package/lib/client/settings/sections/notes.js.map +1 -0
  94. package/lib/client/settings/sections/sources.js +4 -1
  95. package/lib/client/settings/sections/sources.js.map +1 -1
  96. package/lib/client/settings/sections.js +1 -0
  97. package/lib/client/settings/sections.js.map +1 -1
  98. package/lib/client/settlement.js +1 -1
  99. package/lib/client/settlement.js.map +1 -1
  100. package/lib/client/source-preview.js +3 -0
  101. package/lib/client/source-preview.js.map +1 -1
  102. package/lib/client/styles.js +106 -18
  103. package/lib/client/styles.js.map +1 -1
  104. package/lib/client/types.js.map +1 -1
  105. package/lib/client/user-settings/IntegrationTokensPage.js +150 -0
  106. package/lib/client/user-settings/IntegrationTokensPage.js.map +1 -0
  107. package/lib/client/user-settings/PasswordSettingsPage.js +48 -0
  108. package/lib/client/user-settings/PasswordSettingsPage.js.map +1 -0
  109. package/lib/client/user-settings/SkillCatalog.js +2 -2
  110. package/lib/client/user-settings/SkillCatalog.js.map +1 -1
  111. package/lib/client/user-settings/UserSettingsDialog.js +17 -2
  112. package/lib/client/user-settings/UserSettingsDialog.js.map +1 -1
  113. package/lib/client/user-settings/copy.js +20 -0
  114. package/lib/client/user-settings/copy.js.map +1 -1
  115. package/lib/client.js +31007 -686
  116. package/lib/client.js.map +1 -1
  117. package/lib/config-resolvers/attachments.js +6 -5
  118. package/lib/config-resolvers/attachments.js.map +1 -1
  119. package/lib/config-resolvers/defaults.js +33 -2
  120. package/lib/config-resolvers/defaults.js.map +1 -1
  121. package/lib/config-resolvers/integration.js +94 -0
  122. package/lib/config-resolvers/integration.js.map +1 -0
  123. package/lib/config-resolvers/notes.js +26 -0
  124. package/lib/config-resolvers/notes.js.map +1 -0
  125. package/lib/config-resolvers/sources.js +4 -0
  126. package/lib/config-resolvers/sources.js.map +1 -1
  127. package/lib/config.js +107 -0
  128. package/lib/config.js.map +1 -1
  129. package/lib/index.js +348 -12
  130. package/lib/index.js.map +1 -1
  131. package/lib/integration/answer.js +100 -0
  132. package/lib/integration/answer.js.map +1 -0
  133. package/lib/integration/attachments.js +231 -0
  134. package/lib/integration/attachments.js.map +1 -0
  135. package/lib/integration/contract.js +53 -0
  136. package/lib/integration/contract.js.map +1 -0
  137. package/lib/integration/host-runner.js +243 -0
  138. package/lib/integration/host-runner.js.map +1 -0
  139. package/lib/integration/http.js +538 -0
  140. package/lib/integration/http.js.map +1 -0
  141. package/lib/integration/service.js +331 -0
  142. package/lib/integration/service.js.map +1 -0
  143. package/lib/integration/transcript-reader.js +202 -0
  144. package/lib/integration/transcript-reader.js.map +1 -0
  145. package/lib/integration/transcript.js +148 -0
  146. package/lib/integration/transcript.js.map +1 -0
  147. package/lib/personal-skills/index.js +2 -2
  148. package/lib/personal-skills/index.js.map +1 -1
  149. package/lib/personal-skills/paths.js +14 -8
  150. package/lib/personal-skills/paths.js.map +1 -1
  151. package/lib/personal-skills/provider.js +16 -4
  152. package/lib/personal-skills/provider.js.map +1 -1
  153. package/lib/personal-skills/service.js +240 -30
  154. package/lib/personal-skills/service.js.map +1 -1
  155. package/lib/prompt-notes.js +103 -6
  156. package/lib/prompt-notes.js.map +1 -1
  157. package/lib/provenance/document-preview.js +60 -0
  158. package/lib/provenance/document-preview.js.map +1 -0
  159. package/lib/provenance/file-preview.js +191 -19
  160. package/lib/provenance/file-preview.js.map +1 -1
  161. package/lib/qa-tools/catalog.js +18 -1
  162. package/lib/qa-tools/catalog.js.map +1 -1
  163. package/lib/qa-tools/docs-tools.js +563 -0
  164. package/lib/qa-tools/docs-tools.js.map +1 -0
  165. package/lib/qa-tools/file-delete-gate.js +60 -0
  166. package/lib/qa-tools/file-delete-gate.js.map +1 -0
  167. package/lib/qa-tools/file-delete.js +156 -0
  168. package/lib/qa-tools/file-delete.js.map +1 -0
  169. package/lib/resolve-config.js +6 -0
  170. package/lib/resolve-config.js.map +1 -1
  171. package/lib/secure-session.js +83 -3
  172. package/lib/secure-session.js.map +1 -1
  173. package/lib/shared/documents.js +22 -0
  174. package/lib/shared/documents.js.map +1 -0
  175. package/lib/shared/integration-tokens.js +23 -0
  176. package/lib/shared/integration-tokens.js.map +1 -0
  177. package/lib/typert.host.js +1320 -134
  178. package/lib/typert.remote-client.d.ts +33 -1
  179. package/lib/typert.remote-client.js +1102 -74
  180. package/lib/types/access/service.d.ts +33 -2
  181. package/lib/types/account-remotes.d.ts +30 -1
  182. package/lib/types/accounts/database.d.ts +53 -0
  183. package/lib/types/accounts/errors.d.ts +5 -1
  184. package/lib/types/accounts/service-token.d.ts +70 -0
  185. package/lib/types/accounts/store.d.ts +131 -1
  186. package/lib/types/admin/conversation-log.d.ts +12 -0
  187. package/lib/types/admin/service.d.ts +56 -1
  188. package/lib/types/admin/session-log.d.ts +21 -0
  189. package/lib/types/attachment-rules.d.ts +26 -3
  190. package/lib/types/client/QaAccountsController.d.ts +64 -5
  191. package/lib/types/client/QaSessionController.d.ts +24 -2
  192. package/lib/types/client/admin/pages/SkillFiles.d.ts +17 -0
  193. package/lib/types/client/admin/routes.d.ts +2 -0
  194. package/lib/types/client/admin/shared.d.ts +2 -0
  195. package/lib/types/client/attachments.d.ts +21 -4
  196. package/lib/types/client/base64.d.ts +13 -1
  197. package/lib/types/client/components/QaAgentsDrawer.d.ts +2 -1
  198. package/lib/types/client/components/QaFilesPanel.d.ts +16 -4
  199. package/lib/types/client/components/QaHeader.d.ts +9 -3
  200. package/lib/types/client/components/QaModal.d.ts +4 -3
  201. package/lib/types/client/components/QaWidthHandle.d.ts +48 -2
  202. package/lib/types/client/components/QaWorkspaceBrowser.d.ts +15 -0
  203. package/lib/types/client/index.d.ts +1 -1
  204. package/lib/types/client/kiosk.d.ts +34 -0
  205. package/lib/types/client/lineage.d.ts +42 -0
  206. package/lib/types/client/markdown/blocks.d.ts +14 -1
  207. package/lib/types/client/markdown/inline.d.ts +23 -7
  208. package/lib/types/client/markdown/katex-css.d.ts +11 -0
  209. package/lib/types/client/markdown/math.d.ts +23 -0
  210. package/lib/types/client/markdown/render.d.ts +2 -1
  211. package/lib/types/client/settings/sections/notes.d.ts +12 -0
  212. package/lib/types/client/settings/sections.d.ts +1 -0
  213. package/lib/types/client/settlement.d.ts +4 -1
  214. package/lib/types/client/styles.d.ts +15 -2
  215. package/lib/types/client/types.d.ts +120 -1
  216. package/lib/types/client/user-settings/IntegrationTokensPage.d.ts +21 -0
  217. package/lib/types/client/user-settings/PasswordSettingsPage.d.ts +19 -0
  218. package/lib/types/client/user-settings/UserSettingsDialog.d.ts +11 -2
  219. package/lib/types/client/user-settings/copy.d.ts +10 -1
  220. package/lib/types/config-resolvers/integration.d.ts +47 -0
  221. package/lib/types/config-resolvers/notes.d.ts +10 -0
  222. package/lib/types/config.d.ts +10 -0
  223. package/lib/types/index.d.ts +111 -1
  224. package/lib/types/integration/answer.d.ts +65 -0
  225. package/lib/types/integration/attachments.d.ts +85 -0
  226. package/lib/types/integration/contract.d.ts +196 -0
  227. package/lib/types/integration/host-runner.d.ts +44 -0
  228. package/lib/types/integration/http.d.ts +79 -0
  229. package/lib/types/integration/service.d.ts +120 -0
  230. package/lib/types/integration/transcript-reader.d.ts +100 -0
  231. package/lib/types/integration/transcript.d.ts +59 -0
  232. package/lib/types/personal-skills/index.d.ts +2 -2
  233. package/lib/types/personal-skills/paths.d.ts +15 -3
  234. package/lib/types/personal-skills/provider.d.ts +14 -2
  235. package/lib/types/personal-skills/service.d.ts +89 -14
  236. package/lib/types/prompt-notes.d.ts +37 -0
  237. package/lib/types/provenance/document-preview.d.ts +28 -0
  238. package/lib/types/provenance/file-preview.d.ts +69 -2
  239. package/lib/types/qa-tools/catalog.d.ts +1 -1
  240. package/lib/types/qa-tools/docs-tools.d.ts +160 -0
  241. package/lib/types/qa-tools/file-delete-gate.d.ts +42 -0
  242. package/lib/types/qa-tools/file-delete.d.ts +32 -0
  243. package/lib/types/secure-session.d.ts +52 -1
  244. package/lib/types/shared/documents.d.ts +20 -0
  245. package/lib/types/shared/integration-tokens.d.ts +24 -0
  246. package/lib/types/types.d.ts +263 -3
  247. package/lib/types/ui-mode.d.ts +18 -0
  248. package/lib/ui-mode.js +22 -0
  249. package/lib/ui-mode.js.map +1 -0
  250. package/package.json +12 -10
@@ -7,7 +7,8 @@ import { QaChatIndex } from "./chat-index.js";
7
7
  import { isDelegatedSession } from "./lineage.js";
8
8
  import { QaSurfaceGuard } from "./QaSurfaceGuard.js";
9
9
  import { QaWelcomeNoticeStep } from "./components/QaWelcomeNotice.js";
10
- import { QA_OVERLAY_STYLES } from "./styles.js";
10
+ import { QA_OVERLAY_STYLES, QA_ROOT_STYLES } from "./styles.js";
11
+ import { qaKioskBasePath, qaKioskMode } from "./kiosk.js";
11
12
  import { QaAuditController } from "./audit/controller.js";
12
13
  import { createQaAuditApi } from "./audit/types.js";
13
14
  import { QA_SURFACE_SETTINGS_NAMESPACE } from "../shared/settings.js";
@@ -18,6 +19,15 @@ import { QaSurfacePanelRegistry } from "./panels/registry.js";
18
19
  import { QaUserSettingsSectionRegistry } from "./settings-extensions/index.js";
19
20
  import { QaUserSessionMirror } from "./settings-extensions/user-session.js";
20
21
  const QA_WELCOME_SLOT_ID = "welcome-notice";
22
+ /**
23
+ * Priority of the kiosk root registration. 'root' is a single slot whose
24
+ * lowest-priority entry renders, so this must sit below the ui-layout
25
+ * fail-safe occupant's priority (1000 in the kiosk branch) — the surface
26
+ * shadows the static error screen the moment it registers, and if this
27
+ * registration never happens, the error screen is what the user sees instead
28
+ * of a native shell.
29
+ */
30
+ const QA_ROOT_OWNER_PRIORITY = -1000;
21
31
  function qaWelcomeStorageKey(config) {
22
32
  return `${qaStorageNamespace(config)}:welcome-notice`;
23
33
  }
@@ -29,8 +39,14 @@ export const inject = [
29
39
  "settingsScope",
30
40
  "remote",
31
41
  ];
32
- /** Register the route-aware, full-frame QA entry in the additive overlay slot. */
42
+ /** Register the route-aware, full-frame QA entry: root owner in the kiosk, additive overlay slot otherwise. */
33
43
  export async function apply(ctx) {
44
+ // The presentation is a property of the deployment, published once in the
45
+ // document prelude: kiosk = the surface owns the 'root' slot, overlay = the
46
+ // surface covers the native shell from 'shell.overlay'. Read once here —
47
+ // the prelude runs before any application script, so the answer is final
48
+ // for this page load.
49
+ const kiosk = qaKioskMode();
34
50
  const panels = new QaSurfacePanelRegistry();
35
51
  const settingsSections = new QaUserSettingsSectionRegistry();
36
52
  // Cards that mount outside the QA overlay (the host's plugin settings) read
@@ -99,6 +115,8 @@ export async function apply(ctx) {
99
115
  users: (token, query, cursor, limit) => policyRemote.adminUsers(token, query, cursor, limit),
100
116
  user: (token, userId) => policyRemote.adminUser(token, userId),
101
117
  updateUser: (token, userId, update) => policyRemote.adminUpdateUser(token, userId, update),
118
+ passwordResetRequests: (token) => policyRemote.adminPasswordResetRequests(token),
119
+ resetPassword: (token, userId, password) => policyRemote.adminResetPassword(token, userId, password),
102
120
  conversations: (token, query, cursor, limit) => policyRemote.adminConversations(token, query, cursor, limit),
103
121
  conversation: (token, conversationId) => policyRemote.adminConversation(token, conversationId),
104
122
  deleteConversation: (token, conversationId) => policyRemote.adminDeleteConversation(token, conversationId),
@@ -109,10 +127,24 @@ export async function apply(ctx) {
109
127
  saveReview: (token, input) => policyRemote.adminSaveReview(token, input),
110
128
  metrics: (token) => policyRemote.adminMetrics(token),
111
129
  audit: (token, query, cursor, limit) => policyRemote.adminAudit(token, query, cursor, limit),
130
+ skills: (token, scope) => policyRemote.adminSkills(token, scope),
131
+ skill: (token, scope, name) => policyRemote.adminSkill(token, scope, name),
132
+ saveSkill: (token, scope, name, input) => policyRemote.adminSkillSave(token, scope, name, input),
133
+ deleteSkill: (token, scope, name, expectedRevision) => policyRemote.adminSkillDelete(token, scope, name, expectedRevision),
134
+ validateSkill: (token, scope, name, input) => policyRemote.adminSkillValidate(token, scope, name, input),
135
+ skillTools: async (token, scope) => {
136
+ const result = await policyRemote.adminSkillTools(token, scope);
137
+ return result.ok
138
+ ? { ok: true, value: result.value.tools }
139
+ : { ok: false, error: result.error };
140
+ },
112
141
  };
113
142
  const sourceApi = {
114
143
  sources: (token, sessionId) => policyRemote.sources(token, sessionId),
115
144
  readSourceFile: (token, sessionId, sourcePath) => policyRemote.readSourceFile(token, sessionId, sourcePath),
145
+ listWorkspaceFiles: (token, sessionId, path) => policyRemote.listWorkspaceFiles(token, sessionId, path),
146
+ readWorkspaceFile: (token, sessionId, path) => policyRemote.readWorkspaceFile(token, sessionId, path),
147
+ previewWorkspaceDocument: (token, sessionId, path) => policyRemote.previewWorkspaceDocument(token, sessionId, path),
116
148
  };
117
149
  const questionApi = {
118
150
  pendingQuestions: (token, sessionId) => policyRemote.pendingQuestions(token, sessionId),
@@ -207,7 +239,17 @@ export async function apply(ctx) {
207
239
  }, "dsh-qa-surface: settings-card");
208
240
  const syncRoute = () => {
209
241
  const snapshot = config.getSnapshot();
210
- route.configure(snapshot.config, snapshot.status === "ready" || snapshot.status === "unavailable");
242
+ // Kiosk: the harness route policy serves the application under the
243
+ // base path it published in the prelude, so the route the page
244
+ // matches is that path — the plugin config row is the overlay
245
+ // composition's setting and would diverge from the server policy.
246
+ const effective = kiosk
247
+ ? {
248
+ ...snapshot.config,
249
+ route: { path: qaKioskBasePath(), matchChildren: true },
250
+ }
251
+ : snapshot.config;
252
+ route.configure(effective, snapshot.status === "ready" || snapshot.status === "unavailable");
211
253
  };
212
254
  syncRoute();
213
255
  const unsubscribeConfig = config.subscribe(syncRoute);
@@ -272,7 +314,9 @@ export async function apply(ctx) {
272
314
  ctx.effect(() => {
273
315
  const style = document.createElement("style");
274
316
  style.dataset.dshQaSurface = "styles";
275
- style.textContent = QA_OVERLAY_STYLES;
317
+ // The kiosk sheet carries no host-hiding rules: nothing native mounts
318
+ // beneath the surface in that composition, so there is nothing to hide.
319
+ style.textContent = kiosk ? QA_ROOT_STYLES : QA_OVERLAY_STYLES;
276
320
  document.head.append(style);
277
321
  return () => style.remove();
278
322
  }, "dsh-qa-surface: styles");
@@ -282,55 +326,80 @@ export async function apply(ctx) {
282
326
  config.dispose();
283
327
  route.dispose();
284
328
  }, "dsh-qa-surface: controllers");
285
- ctx.slots.inject("shell.overlay", () => ctx.slots.register({
286
- name: "shell.overlay",
287
- id: "dsh-qa-surface",
288
- order: -10_000,
289
- children: {
290
- "qa.surface.panel": { kind: "keyed", scope: "root" },
291
- },
292
- inject: () => {
293
- try {
294
- return {
295
- route,
296
- config,
297
- // The host dsh-session merge types ctx.sessions as SessionStore in
298
- // this program; the client assembly provides the ISessions face.
299
- sessions: ctx.sessions,
300
- conversation: ctx.uiConversation,
301
- api: qaApi,
302
- connection: ctx.connection.generation,
303
- secureSession,
304
- createSession: (token, subroleId, adminPreview) => policyRemote.createSession(token, subroleId, adminPreview),
305
- accessApi,
306
- adminApi,
307
- sourceApi,
308
- skillApi,
309
- approvalApi,
310
- questionApi,
311
- slashApi,
312
- accounts,
313
- panels,
314
- settingsSections,
315
- audit,
316
- // The upload service is optional on the page: a deployment that
317
- // does not serve it keeps images, and a staged file refuses the
318
- // send with a message instead of losing the draft. Read through
319
- // the untyped service lookup on purpose — the QA bundle does not
320
- // link the upload package.
321
- fileUpload: () => ctx.get("fileUpload"),
322
- };
323
- }
324
- catch {
325
- // The face reads host services lazily (cordis service
326
- // visibility), so assembly can fail here. Hand the guard an
327
- // empty face: it renders the fullscreen failure card instead
328
- // of the entry crashing, which would retire the overlay and
329
- // uncover the host shell beneath it.
330
- return {};
331
- }
332
- },
333
- }, QaSurfaceGuard));
329
+ // The face both presentations hand to the guard. Read host services
330
+ // lazily (cordis service visibility), so assembly can fail here — the
331
+ // guard then renders the failure card instead of the entry crashing.
332
+ const qaFace = () => {
333
+ try {
334
+ return {
335
+ route,
336
+ config,
337
+ // The host dsh-session merge types ctx.sessions as SessionStore in
338
+ // this program; the client assembly provides the ISessions face.
339
+ sessions: ctx.sessions,
340
+ conversation: ctx.uiConversation,
341
+ api: qaApi,
342
+ connection: ctx.connection.generation,
343
+ secureSession,
344
+ createSession: (token, subroleId, adminPreview) => policyRemote.createSession(token, subroleId, adminPreview),
345
+ accessApi,
346
+ adminApi,
347
+ sourceApi,
348
+ skillApi,
349
+ approvalApi,
350
+ questionApi,
351
+ slashApi,
352
+ accounts,
353
+ panels,
354
+ settingsSections,
355
+ audit,
356
+ // The upload service is optional on the page: a deployment that
357
+ // does not serve it keeps images, and a staged file refuses the
358
+ // send with a message instead of losing the draft. Read through
359
+ // the untyped service lookup on purpose — the QA bundle does not
360
+ // link the upload package.
361
+ fileUpload: () => ctx.get("fileUpload"),
362
+ };
363
+ }
364
+ catch {
365
+ return {};
366
+ }
367
+ };
368
+ if (kiosk) {
369
+ // The kiosk composition: the surface IS the application. Registering
370
+ // into 'root' (the runtime's single root slot) shadows the host's
371
+ // fail-safe occupant — a static error screen the ui-layout kiosk
372
+ // branch holds at a higher priority exactly for the case where this
373
+ // registration never happens. The panel seat is declared here so the
374
+ // extension panels keep resolving under the root owner.
375
+ //
376
+ // The call MUST stay attached to ctx.slots: the register
377
+ // implementation is a prototype function reading this.ctx (bound by
378
+ // the cordis service proxy at property-access time), so extracting
379
+ // it into a variable lands in a fiber-less context and throws. This
380
+ // program's type contract does not know the root's children seat
381
+ // (that is the host program's knowledge), hence the argument casts —
382
+ // they widen the arguments, never detach the receiver.
383
+ ctx.slots.register({
384
+ name: "root",
385
+ priority: QA_ROOT_OWNER_PRIORITY,
386
+ children: {
387
+ "qa.surface.panel": { kind: "keyed", scope: "root" },
388
+ },
389
+ inject: qaFace,
390
+ }, QaSurfaceGuard);
391
+ }
392
+ else {
393
+ ctx.slots.inject("shell.overlay", () => ctx.slots.register({
394
+ name: "shell.overlay",
395
+ id: "dsh-qa-surface",
396
+ order: -10_000,
397
+ children: {
398
+ "qa.surface.panel": { kind: "keyed", scope: "root" },
399
+ },
400
+ inject: qaFace,
401
+ }, QaSurfaceGuard));
402
+ }
334
403
  });
335
404
  return disposeRemote;
336
405
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * The QA kiosk presentation mode, as the client half of the plugin sees it.
3
+ *
4
+ * The harness publishes the deployment's UI mode into every served document
5
+ * ahead of the first application script (the index prelude injected for
6
+ * `DSH_UI_MODE=qa`): `window.DSH_UI_MODE` and, alongside it, the QA base path
7
+ * the server-side route policy serves the application under. The mode — not
8
+ * `location.pathname` — is what the client branches on: the route policy owns
9
+ * which paths carry a document at all, and a client that keyed off the
10
+ * pathname would re-introduce exactly the paths the policy closed.
11
+ *
12
+ * A document without the globals (a host without the kiosk patches, a plugin
13
+ * bundle served into an overlay deployment) reads as the overlay
14
+ * presentation: the `shell.overlay` registration this plugin has always
15
+ * used. That keeps one plugin build compatible with both compositions.
16
+ */
17
+ /** Window global the harness prelude publishes for `DSH_UI_MODE=qa`. */
18
+ const UI_MODE_GLOBAL = "DSH_UI_MODE";
19
+ /** Window global naming the QA surface's base path in kiosk mode. */
20
+ const QA_BASE_PATH_GLOBAL = "DSH_QA_BASE_PATH";
21
+ /** The QA base path when the prelude published none. */
22
+ const DEFAULT_QA_BASE_PATH = "/qa";
23
+ /**
24
+ * Whether one URL pathname lives on a surface: the surface path itself or any
25
+ * child of it. A plain prefix check would also match `/qadmin` or `/qa-test`.
26
+ */
27
+ export function matchesSurface(pathname, surface) {
28
+ return pathname === surface || pathname.startsWith(`${surface}/`);
29
+ }
30
+ /**
31
+ * Whether this browser was served by a QA kiosk deployment.
32
+ * @param target - the global object; overridable for tests.
33
+ */
34
+ export function qaKioskMode(target = window) {
35
+ return target[UI_MODE_GLOBAL] === "qa";
36
+ }
37
+ /**
38
+ * The QA surface's base path of a kiosk deployment, normalized: single
39
+ * leading slash, no trailing slash. A malformed value falls back to the
40
+ * default rather than disabling the mode.
41
+ * @param target - the global object; overridable for tests.
42
+ */
43
+ export function qaKioskBasePath(target = window) {
44
+ const raw = target[QA_BASE_PATH_GLOBAL];
45
+ const value = typeof raw === "string" ? raw.trim() : "";
46
+ if (value === "" || !value.startsWith("/") || value.endsWith("/")) {
47
+ return DEFAULT_QA_BASE_PATH;
48
+ }
49
+ return value;
50
+ }
51
+ //# sourceMappingURL=kiosk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kiosk.js","sourceRoot":"","sources":["../../src/client/kiosk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,wEAAwE;AACxE,MAAM,cAAc,GAAG,aAAa,CAAC;AACrC,qEAAqE;AACrE,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AAC/C,wDAAwD;AACxD,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAEnC;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,OAAe;IAC9D,OAAO,QAAQ,KAAK,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;AACpE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,MAAM,GAAsC,MAE3C;IAED,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;AACzC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAM,GAAsC,MAE3C;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,IAAI,KAAK,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAClE,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -15,4 +15,68 @@ export function isDelegatedSession(summary) {
15
15
  return false;
16
16
  return summary.origin === "subagent" || summary.parentId !== undefined;
17
17
  }
18
+ /**
19
+ * The chat a session belongs to: itself when nothing delegated it, otherwise
20
+ * the root of its parent chain.
21
+ *
22
+ * A nested child names its own delegated parent in `parentId`, so one hop is
23
+ * not the chat. The walk stops at the first entry the host list does not know,
24
+ * which keeps a partially hydrated list from inventing a chat that is not
25
+ * there; a repeated id (a hostile or broken list) resolves to the id it
26
+ * repeated on instead of hanging.
27
+ */
28
+ export function chatRootOf(byId, sessionId) {
29
+ let current = sessionId;
30
+ const seen = new Set();
31
+ while (!seen.has(current)) {
32
+ seen.add(current);
33
+ const parent = byId[current]?.parentId;
34
+ if (parent === undefined)
35
+ return current;
36
+ current = String(parent);
37
+ }
38
+ return current;
39
+ }
40
+ /**
41
+ * Delegated sessions whose names a page may sign its notices with: the
42
+ * children of the chats it lists, catalog labels first and list titles after.
43
+ *
44
+ * `chats` is the visible chat set — the account's own chats while accounts are
45
+ * on, and `undefined` for a deployment without accounts, where every chat on
46
+ * the Host is the browser's own. Ownership is checked against the chat, never
47
+ * against the child: a delegated session has no owner of its own, so a child
48
+ * is visible exactly when the chat it belongs to is. Another account's chat
49
+ * therefore contributes no id and no label — a foreign chat can neither sign
50
+ * a notice nor be named by one.
51
+ */
52
+ export function visibleSubagentCandidates(byId, catalogs, chats) {
53
+ const visible = (chatId) => chats === undefined || chats.has(chatId);
54
+ const candidates = [];
55
+ const seen = new Set();
56
+ for (const [parentId, catalog] of Object.entries(catalogs)) {
57
+ if (!visible(parentId))
58
+ continue;
59
+ for (const entry of catalog?.entries ?? []) {
60
+ if (entry.kind !== "child")
61
+ continue;
62
+ const id = entry.id;
63
+ if (id === undefined || seen.has(id))
64
+ continue;
65
+ seen.add(id);
66
+ candidates.push({ id, label: entry.label ?? "" });
67
+ }
68
+ }
69
+ for (const [key, summary] of Object.entries(byId)) {
70
+ if (summary.origin !== "subagent")
71
+ continue;
72
+ const id = String(summary.id ?? key);
73
+ if (seen.has(id))
74
+ continue;
75
+ if (!visible(chatRootOf(byId, id)))
76
+ continue;
77
+ seen.add(id);
78
+ candidates.push({ id, label: summary.displayTitle });
79
+ }
80
+ return candidates;
81
+ }
18
82
  //# sourceMappingURL=lineage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lineage.js","sourceRoot":"","sources":["../../src/client/lineage.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAgE;IAEhE,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC;AACzE,CAAC"}
1
+ {"version":3,"file":"lineage.js","sourceRoot":"","sources":["../../src/client/lineage.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAgE;IAEhE,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC;AACzE,CAAC;AAOD;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CAAC,IAAoB,EAAE,SAAiB;IAChE,IAAI,OAAO,GAAG,SAAS,CAAC;IACxB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC;QACvC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC;QACzC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAwBD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAA8C,EAC9C,QAA0B,EAC1B,KAAsC;IAEtC,MAAM,OAAO,GAAG,CAAC,MAAc,EAAW,EAAE,CAC1C,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,SAAS;QACjC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC;YAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;gBAAE,SAAS;YACrC,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;YACpB,IAAI,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,SAAS;YAC/C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACb,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU;YAAE,SAAS;QAC5C,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QAC3B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAAE,SAAS;QAC7C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACb,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -9,6 +9,13 @@
9
9
  * blocks, setext inside lists, link reference definitions spanning lines) stay
10
10
  * out. Raw HTML never becomes a block: a tag line is a paragraph whose inline
11
11
  * pass leaves the tag as literal text.
12
+ *
13
+ * Math follows the Host transcript's settled grammar: display TeX is a
14
+ * `$$`-delimited block (a fence on its own lines or one line
15
+ * `$$…$$`) or a ```math fence, and nothing else — the `\(…\)` and `\[…\]`
16
+ * delimiters stay literal text, exactly as the Host renders them. Footnote
17
+ * definitions (`[^id]: …`) are collected the way GitHub's dialect does, with
18
+ * lazy and indented continuation lines.
12
19
  */
13
20
  /** Container depth ceiling: enough for real answers, too low to recurse away.
14
21
  * Past it a marker stays literal text — the content is never dropped. */
@@ -22,6 +29,14 @@ const LIST_MARKER = /^( {0,3})([-+*]|\d{1,9}[.)])([ \t]+|$)/u;
22
29
  const DEFINITION = /^ {0,3}\[([^\]^][^\]]*)\]:[ \t]*<?([^\s>]+)>?[ \t]*$/u;
23
30
  const ALIGNMENT_CELL = /^:?-+:?$/u;
24
31
  const CHECKBOX = /^\[([ xX])\][ \t]+/u;
32
+ /** Display math opener: `$$` with the rest of the line as same-line content. */
33
+ const MATH_FLOW = /^ {0,3}\$\$(.*)$/u;
34
+ /** Display math closing fence: `$$` alone on its line. */
35
+ const MATH_FLOW_CLOSE = /^ {0,3}\$\$\s*$/u;
36
+ /** Footnote definition: `[^label]:` with the first body line inline. */
37
+ const FOOTNOTE_DEFINITION = /^ {0,3}\[\^([^\]\s]+)\]:[ \t]*(.*)$/u;
38
+ /** Continuation lines of a footnote body are indented this far. */
39
+ const FOOTNOTE_INDENT = 4;
25
40
  function isBlank(line) {
26
41
  return line.trim() === "";
27
42
  }
@@ -34,7 +49,9 @@ function startsBlock(line) {
34
49
  ATX_HEADING.test(line) ||
35
50
  RULE.test(line) ||
36
51
  QUOTE.test(line) ||
37
- LIST_MARKER.test(line));
52
+ LIST_MARKER.test(line) ||
53
+ MATH_FLOW.test(line) ||
54
+ FOOTNOTE_DEFINITION.test(line));
38
55
  }
39
56
  /** Split one table row into trimmed cells, honoring escaped pipes. */
40
57
  export function splitTableRow(line) {
@@ -91,17 +108,23 @@ function closesFence(line, marker) {
91
108
  */
92
109
  export function parseMarkdown(text) {
93
110
  const definitions = new Map();
111
+ const footnotes = new Map();
94
112
  const lines = text.replace(/\r\n?/gu, "\n").split("\n");
95
- return { blocks: parseBlocks(lines, definitions, 0), definitions };
113
+ return {
114
+ blocks: parseBlocks(lines, definitions, footnotes, 0),
115
+ definitions,
116
+ footnotes,
117
+ };
96
118
  }
97
119
  /**
98
120
  * Parse the blocks of one container (document, quote, or list item).
99
121
  * @param lines - Container lines, already de-indented by the caller.
100
122
  * @param definitions - Document-wide definition accumulator.
123
+ * @param footnotes - Document-wide footnote accumulator.
101
124
  * @param depth - Container nesting depth.
102
125
  * @returns The container's blocks.
103
126
  */
104
- export function parseBlocks(lines, definitions, depth) {
127
+ export function parseBlocks(lines, definitions, footnotes, depth) {
105
128
  const blocks = [];
106
129
  let index = 0;
107
130
  while (index < lines.length) {
@@ -130,6 +153,17 @@ export function parseBlocks(lines, definitions, depth) {
130
153
  });
131
154
  continue;
132
155
  }
156
+ const math = MATH_FLOW.exec(line);
157
+ if (math !== null) {
158
+ const parsed = parseMathFlow(lines, index, math[1] ?? "");
159
+ if (parsed !== undefined) {
160
+ blocks.push({ kind: "math", text: parsed.text });
161
+ index = parsed.next;
162
+ continue;
163
+ }
164
+ // Unclosed or content-bearing without a same-line close: the line stays
165
+ // a paragraph, whose inline pass leaves the dollars literal.
166
+ }
133
167
  const heading = ATX_HEADING.exec(line);
134
168
  if (heading !== null) {
135
169
  blocks.push({
@@ -164,7 +198,7 @@ export function parseBlocks(lines, definitions, depth) {
164
198
  }
165
199
  blocks.push({
166
200
  kind: "quote",
167
- blocks: parseBlocks(body, definitions, depth + 1),
201
+ blocks: parseBlocks(body, definitions, footnotes, depth + 1),
168
202
  });
169
203
  continue;
170
204
  }
@@ -185,7 +219,7 @@ export function parseBlocks(lines, definitions, depth) {
185
219
  continue;
186
220
  }
187
221
  if (depth < MAX_DEPTH && LIST_MARKER.test(line)) {
188
- const list = parseList(lines, index, definitions, depth);
222
+ const list = parseList(lines, index, definitions, footnotes, depth);
189
223
  blocks.push(list.list);
190
224
  index = list.next;
191
225
  continue;
@@ -198,6 +232,16 @@ export function parseBlocks(lines, definitions, depth) {
198
232
  index += 1;
199
233
  continue;
200
234
  }
235
+ const footnote = FOOTNOTE_DEFINITION.exec(line);
236
+ if (footnote !== null) {
237
+ const id = (footnote[1] ?? "").toUpperCase();
238
+ const body = footnoteBody(lines, index, footnote[2] ?? "");
239
+ if (!footnotes.has(id)) {
240
+ footnotes.set(id, parseBlocks(body.lines, definitions, footnotes, depth + 1));
241
+ }
242
+ index = body.next;
243
+ continue;
244
+ }
201
245
  const paragraph = collectParagraph(lines, index);
202
246
  blocks.push(paragraph.block);
203
247
  index = paragraph.next;
@@ -243,6 +287,75 @@ function collectParagraph(lines, start) {
243
287
  next: index,
244
288
  };
245
289
  }
290
+ /**
291
+ * Parse display math opening at `start` (the `$$` opener line), returning its
292
+ * TeX payload and the index after the block — or undefined when the opener
293
+ * does not begin a math block, in which case the line stays paragraph text.
294
+ * A same-line `$$…$$` closes immediately; otherwise the rest of the opener
295
+ * line must be empty and the content runs to a `$$` fence line, as GitHub's
296
+ * dialect reads it. The Host drops content written after a fence opener's
297
+ * `$$`; here such a line stays a paragraph instead, so no text is lost.
298
+ * @param lines - Container lines.
299
+ * @param start - Index of the opener line.
300
+ * @param rest - The opener line after its `$$`.
301
+ * @returns The math text and the index after the closing fence.
302
+ */
303
+ function parseMathFlow(lines, start, rest) {
304
+ const sameLine = rest.indexOf("$$");
305
+ if (sameLine >= 0 && rest.slice(sameLine + 2).trim() === "") {
306
+ return { text: rest.slice(0, sameLine), next: start + 1 };
307
+ }
308
+ if (rest.trim() !== "")
309
+ return undefined;
310
+ const body = [];
311
+ let index = start + 1;
312
+ while (index < lines.length && !MATH_FLOW_CLOSE.test(lines[index] ?? "")) {
313
+ body.push(lines[index] ?? "");
314
+ index += 1;
315
+ }
316
+ if (index >= lines.length)
317
+ return undefined;
318
+ return { text: body.join("\n"), next: index + 1 };
319
+ }
320
+ /**
321
+ * Collect a footnote definition's body: the opener line's inline tail plus
322
+ * the indented and lazy-continuation lines GitHub's dialect keeps inside it.
323
+ * @param lines - Container lines.
324
+ * @param start - Index of the `[^label]:` opener line.
325
+ * @param rest - The opener line after its `]:`.
326
+ * @returns The body lines and the index after the definition.
327
+ */
328
+ function footnoteBody(lines, start, rest) {
329
+ const body = [rest];
330
+ let index = start + 1;
331
+ while (index < lines.length) {
332
+ const current = lines[index] ?? "";
333
+ if (isBlank(current)) {
334
+ // A blank line only continues the definition when an indented line
335
+ // really follows it (a second body paragraph).
336
+ let next = index + 1;
337
+ while (next < lines.length && isBlank(lines[next] ?? ""))
338
+ next += 1;
339
+ if (next >= lines.length || indentOf(lines[next] ?? "") < FOOTNOTE_INDENT)
340
+ break;
341
+ body.push("");
342
+ index += 1;
343
+ continue;
344
+ }
345
+ if (indentOf(current) >= FOOTNOTE_INDENT) {
346
+ body.push(current.slice(FOOTNOTE_INDENT));
347
+ index += 1;
348
+ continue;
349
+ }
350
+ // A lazy continuation line belongs to the definition's last paragraph;
351
+ // anything that opens a block of its own ends the definition instead.
352
+ if (startsBlock(current))
353
+ break;
354
+ body.push(current.trimStart());
355
+ index += 1;
356
+ }
357
+ return { lines: body, next: index };
358
+ }
246
359
  /**
247
360
  * Parse one list: sibling items at the same level, their nested blocks
248
361
  * recursively parsed.
@@ -252,7 +365,7 @@ function collectParagraph(lines, start) {
252
365
  * @param depth - Container nesting depth.
253
366
  * @returns The list block and the index after its last item.
254
367
  */
255
- function parseList(lines, start, definitions, depth) {
368
+ function parseList(lines, start, definitions, footnotes, depth) {
256
369
  const first = LIST_MARKER.exec(lines[start] ?? "");
257
370
  const ordered = /^\d/u.test(first?.[2] ?? "-");
258
371
  const bullet = first?.[2] ?? "-";
@@ -317,7 +430,9 @@ function parseList(lines, start, definitions, depth) {
317
430
  if (checkbox !== null) {
318
431
  itemLines[0] = (itemLines[0] ?? "").slice(checkbox[0].length);
319
432
  }
320
- const itemBlocks = depth >= MAX_DEPTH ? [] : parseBlocks(itemLines, definitions, depth + 1);
433
+ const itemBlocks = depth >= MAX_DEPTH
434
+ ? []
435
+ : parseBlocks(itemLines, definitions, footnotes, depth + 1);
321
436
  // Only a blank line inside the item spreads it: an item that merely carries
322
437
  // a nested list or a fence still renders as a tight item, as GFM says.
323
438
  if (itemSpread)