@chainingintention/pi-web-cn 1.202610.4 → 2.202610.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 (299) hide show
  1. package/README.md +2 -2
  2. package/dist/cli.js +31 -7
  3. package/dist/cli.js.map +1 -1
  4. package/dist/client/assets/PiWebApp-BXSziMEg.js +4921 -0
  5. package/dist/client/assets/classic-CyM97Akm.css +54 -0
  6. package/dist/client/assets/external-B9K8duyP.js +2 -0
  7. package/dist/client/assets/graphite-DquaqFXU.css +54 -0
  8. package/dist/client/assets/index-cdtUOfOW.js +2 -0
  9. package/dist/client/assets/paper-CB1oLuRr.css +54 -0
  10. package/dist/client/assets/pi-web-dark-D_KtbM95.css +54 -0
  11. package/dist/client/assets/pi-web-light-DSNLMIBI.css +54 -0
  12. package/dist/client/assets/vendor-editor-core-BfnHL1Dg.js +10 -0
  13. package/dist/client/assets/{vendor-editor-languages-DOCw3vc9.js → vendor-editor-languages-bNquDJP0.js} +1 -1
  14. package/dist/client/index.html +3 -47
  15. package/dist/config.js +11 -2
  16. package/dist/config.js.map +1 -1
  17. package/dist/nativeServices/installedServiceDefinitions.js +10 -7
  18. package/dist/nativeServices/installedServiceDefinitions.js.map +1 -1
  19. package/dist/pi-packages/captains-log/dist/browser/index.js +43 -47
  20. package/dist/pi-packages/captains-log/dist/browser/panel.js +6 -10
  21. package/dist/pi-packages/captains-log/dist/companion.js +1 -1
  22. package/dist/pi-packages/captains-log/package.json +4 -4
  23. package/dist/pi-packages/relays/extensions/index.js +61 -0
  24. package/dist/pi-packages/relays/package.json +10 -1
  25. package/dist/pi-packages/relays/pi-web-plugin.js +52 -2
  26. package/dist/pi-packages/relays/prompts/relay-worktree.md +6 -16
  27. package/dist/pi-packages/relays/prompts/relay.md +6 -33
  28. package/dist/pi-packages/relays/relayDispatch.js +67 -0
  29. package/dist/pi-packages/relays/relayIdentity.js +37 -0
  30. package/dist/pi-packages/relays/relaysPanelElement.js +75 -37
  31. package/dist/pi-packages/relays/skills/relay/SKILL.md +24 -68
  32. package/dist/pi-packages/relays/skills/relay-runner/SKILL.md +40 -219
  33. package/dist/pi-packages/workflows/browser/pi-web-plugin.js +42 -0
  34. package/dist/pi-packages/workflows/browser/worktreeDialog.js +170 -0
  35. package/dist/pi-packages/workflows/package.json +23 -0
  36. package/dist/pi-packages/workflows/prompts/worktree.md +21 -0
  37. package/dist/pi-packages/workflows/server-plugin.js +586 -0
  38. package/dist/pi-packages/workflows/vite.config.mjs +17 -0
  39. package/dist/pi-web-plugins/code-highlight/browser/pi-web-plugin.js +22 -0
  40. package/dist/pi-web-plugins/code-highlight/package.json +13 -0
  41. package/dist/pi-web-plugins/files/browser/pi-web-plugin.js +115 -105
  42. package/dist/pi-web-plugins/git/browser/git-panel.js +60 -46
  43. package/dist/pi-web-plugins/git/browser/pi-web-plugin.js +23 -3
  44. package/dist/pi-web-plugins/git/git-backend.js +20 -1
  45. package/dist/pi-web-plugins/git/server-plugin.js +20 -3
  46. package/dist/pi-web-plugins/git/workspace-discovery-notify.cjs +14 -0
  47. package/dist/pi-web-plugins/git/workspaceDiscoveryHooks.js +186 -0
  48. package/dist/pi-web-plugins/info/infoInternals.js +3 -3
  49. package/dist/pi-web-plugins/info/pi-web-plugin.js +1 -1
  50. package/dist/pi-web-plugins/mermaid/browser/mermaid-engine.js +1087 -422
  51. package/dist/pi-web-plugins/mermaid/browser/pi-web-plugin.js +8 -3
  52. package/dist/pi-web-plugins/terminal/browser/pi-web-plugin.js +39 -33
  53. package/dist/pi-web-plugins/updates/pi-web-plugin.js +13 -13
  54. package/dist/pi-web-plugins/updates/updatesLogic.js +4 -5
  55. package/dist/pi-web-plugins/workspace-tasks/pi-web-plugin.js +21 -1
  56. package/dist/pi-web-plugins/workspace-tasks/tasksPanelElement.js +39 -22
  57. package/dist/pi-web-plugins/zh-cn/bundled.json +44 -1
  58. package/dist/pi-web-plugins/zh-cn/cli.json +60 -1
  59. package/dist/pi-web-plugins/zh-cn/client.json +7 -1
  60. package/dist/pi-web-plugins/zh-cn/components.json +252 -2
  61. package/dist/pi-web-plugins/zh-cn/config-errors.json +17 -1
  62. package/dist/pi-web-plugins/zh-cn/files.json +10 -1
  63. package/dist/pi-web-plugins/zh-cn/main.json +1 -1
  64. package/dist/pi-web-plugins/zh-cn/provider-auth.json +2 -1
  65. package/dist/pi-web-plugins/zh-cn/server.json +83 -1
  66. package/dist/piAi.js +4 -0
  67. package/dist/piAi.js.map +1 -0
  68. package/dist/piRuntime.js +150 -0
  69. package/dist/piRuntime.js.map +1 -0
  70. package/dist/piSdk.js +5 -0
  71. package/dist/piSdk.js.map +1 -0
  72. package/dist/piWebUpdate.js +508 -0
  73. package/dist/piWebUpdate.js.map +1 -0
  74. package/dist/piWebVersionReport.js +43 -1
  75. package/dist/piWebVersionReport.js.map +1 -1
  76. package/dist/plugin-api.d.ts +393 -51
  77. package/dist/server/activity/workspaceActivityService.js +8 -1
  78. package/dist/server/activity/workspaceActivityService.js.map +1 -1
  79. package/dist/server/app.js +19 -4
  80. package/dist/server/app.js.map +1 -1
  81. package/dist/server/browserMessageProjection.js +39 -20
  82. package/dist/server/browserMessageProjection.js.map +1 -1
  83. package/dist/server/configRoutes.js +8 -0
  84. package/dist/server/configRoutes.js.map +1 -1
  85. package/dist/server/index.js +10 -1
  86. package/dist/server/index.js.map +1 -1
  87. package/dist/server/knownAutoInstallPiPackages.js +6 -0
  88. package/dist/server/knownAutoInstallPiPackages.js.map +1 -1
  89. package/dist/server/machines/machineProxyRoutes.js +37 -2
  90. package/dist/server/machines/machineProxyRoutes.js.map +1 -1
  91. package/dist/server/navigationPreferenceRoutes.js +59 -0
  92. package/dist/server/navigationPreferenceRoutes.js.map +1 -0
  93. package/dist/server/piPackageService.js +1 -1
  94. package/dist/server/piPackageService.js.map +1 -1
  95. package/dist/server/piWebPluginCatalog.js +1 -1
  96. package/dist/server/piWebPluginCatalog.js.map +1 -1
  97. package/dist/server/piWebPluginService.js +7 -1
  98. package/dist/server/piWebPluginService.js.map +1 -1
  99. package/dist/server/piWebStatus.js +17 -56
  100. package/dist/server/piWebStatus.js.map +1 -1
  101. package/dist/server/plugins/pluginBackendChannelProxyAdmission.js +1 -1
  102. package/dist/server/plugins/pluginBackendChannelProxyAdmission.js.map +1 -1
  103. package/dist/server/plugins/pluginBackendChannelProxyRoutes.js +40 -42
  104. package/dist/server/plugins/pluginBackendChannelProxyRoutes.js.map +1 -1
  105. package/dist/server/plugins/pluginBackendProxyRoutes.js +40 -44
  106. package/dist/server/plugins/pluginBackendProxyRoutes.js.map +1 -1
  107. package/dist/server/plugins/pluginBackendRegistry.js +66 -35
  108. package/dist/server/plugins/pluginBackendRegistry.js.map +1 -1
  109. package/dist/server/plugins/projectPluginSettings.js +95 -0
  110. package/dist/server/plugins/projectPluginSettings.js.map +1 -0
  111. package/dist/server/plugins/serverPluginCatalogCapability.js +106 -0
  112. package/dist/server/plugins/serverPluginCatalogCapability.js.map +1 -0
  113. package/dist/server/plugins/serverPluginRuntime.js +47 -11
  114. package/dist/server/plugins/serverPluginRuntime.js.map +1 -1
  115. package/dist/server/projectTrustRoutes.js +1 -1
  116. package/dist/server/projectTrustRoutes.js.map +1 -1
  117. package/dist/server/projects/projectLifecycleService.js +17 -7
  118. package/dist/server/projects/projectLifecycleService.js.map +1 -1
  119. package/dist/server/realtime/sessionEventHub.js +22 -9
  120. package/dist/server/realtime/sessionEventHub.js.map +1 -1
  121. package/dist/server/sessiond/agentHttpDispatcher.js +1 -1
  122. package/dist/server/sessiond/agentHttpDispatcher.js.map +1 -1
  123. package/dist/server/sessiond/autoInstallPiPackages.js +3 -3
  124. package/dist/server/sessiond/pluginBackendChannelRoutes.js +27 -14
  125. package/dist/server/sessiond/pluginBackendChannelRoutes.js.map +1 -1
  126. package/dist/server/sessiond/pluginBackendRoutes.js +56 -49
  127. package/dist/server/sessiond/pluginBackendRoutes.js.map +1 -1
  128. package/dist/server/sessiond/pluginCatalogRoutes.js +41 -0
  129. package/dist/server/sessiond/pluginCatalogRoutes.js.map +1 -0
  130. package/dist/server/sessiond/sessionProxyRoutes.js +46 -1
  131. package/dist/server/sessiond/sessionProxyRoutes.js.map +1 -1
  132. package/dist/server/sessiond/sessionServiceDependencies.js +1 -0
  133. package/dist/server/sessiond/sessionServiceDependencies.js.map +1 -1
  134. package/dist/server/sessiond/workspaceCatalogRoutes.js +6 -2
  135. package/dist/server/sessiond/workspaceCatalogRoutes.js.map +1 -1
  136. package/dist/server/sessiond/workspaceNotificationRoutes.js +55 -0
  137. package/dist/server/sessiond/workspaceNotificationRoutes.js.map +1 -0
  138. package/dist/server/sessiond.js +58 -8
  139. package/dist/server/sessiond.js.map +1 -1
  140. package/dist/server/sessions/askUserDomain.js +232 -0
  141. package/dist/server/sessions/askUserDomain.js.map +1 -0
  142. package/dist/server/sessions/askUserTool.js +18 -18
  143. package/dist/server/sessions/askUserTool.js.map +1 -1
  144. package/dist/server/sessions/attachmentService.js +1 -1
  145. package/dist/server/sessions/attachmentService.js.map +1 -1
  146. package/dist/server/sessions/authRoutes.js +12 -0
  147. package/dist/server/sessions/authRoutes.js.map +1 -1
  148. package/dist/server/sessions/authService.js +11 -1
  149. package/dist/server/sessions/authService.js.map +1 -1
  150. package/dist/server/sessions/builtinExtensionFactories.js +36 -0
  151. package/dist/server/sessions/builtinExtensionFactories.js.map +1 -0
  152. package/dist/server/sessions/companionBackend.js +286 -0
  153. package/dist/server/sessions/companionBackend.js.map +1 -0
  154. package/dist/server/sessions/dockerEnvironmentFacts.js +16 -1
  155. package/dist/server/sessions/dockerEnvironmentFacts.js.map +1 -1
  156. package/dist/server/sessions/extensionSessionDispatch.js +76 -0
  157. package/dist/server/sessions/extensionSessionDispatch.js.map +1 -0
  158. package/dist/server/sessions/globalProviderPolicy.js +88 -19
  159. package/dist/server/sessions/globalProviderPolicy.js.map +1 -1
  160. package/dist/server/sessions/managementAgentTools.js +2 -2
  161. package/dist/server/sessions/managementAgentTools.js.map +1 -1
  162. package/dist/server/sessions/mcpAuthFlowService.js +289 -0
  163. package/dist/server/sessions/mcpAuthFlowService.js.map +1 -0
  164. package/dist/server/sessions/mcpAuthRoutes.js +104 -0
  165. package/dist/server/sessions/mcpAuthRoutes.js.map +1 -0
  166. package/dist/server/sessions/mcpOAuthCredentialAdapter.js +92 -0
  167. package/dist/server/sessions/mcpOAuthCredentialAdapter.js.map +1 -0
  168. package/dist/server/sessions/messageHistoryTarget.js +79 -0
  169. package/dist/server/sessions/messageHistoryTarget.js.map +1 -0
  170. package/dist/server/sessions/piSessionEventConnections.js +5 -2
  171. package/dist/server/sessions/piSessionEventConnections.js.map +1 -1
  172. package/dist/server/sessions/piSessionManagerGateway.js +32 -27
  173. package/dist/server/sessions/piSessionManagerGateway.js.map +1 -1
  174. package/dist/server/sessions/piSessionService.js +1296 -341
  175. package/dist/server/sessions/piSessionService.js.map +1 -1
  176. package/dist/server/sessions/plainTextTheme.js +1 -1
  177. package/dist/server/sessions/plainTextTheme.js.map +1 -1
  178. package/dist/server/sessions/projectAuthService.js +1 -1
  179. package/dist/server/sessions/projectAuthService.js.map +1 -1
  180. package/dist/server/sessions/projectSettingsScope.js +1 -1
  181. package/dist/server/sessions/projectSettingsScope.js.map +1 -1
  182. package/dist/server/sessions/projectTrust.js +1 -1
  183. package/dist/server/sessions/projectTrust.js.map +1 -1
  184. package/dist/server/sessions/queuedMessageMutation.js +170 -0
  185. package/dist/server/sessions/queuedMessageMutation.js.map +1 -0
  186. package/dist/server/sessions/relaySkill.js +57 -7
  187. package/dist/server/sessions/relaySkill.js.map +1 -1
  188. package/dist/server/sessions/sessionArchiveMapping.js +6 -0
  189. package/dist/server/sessions/sessionArchiveMapping.js.map +1 -1
  190. package/dist/server/sessions/sessionArchiveStore.js +5 -1
  191. package/dist/server/sessions/sessionArchiveStore.js.map +1 -1
  192. package/dist/server/sessions/sessionArchiveTree.js +2 -2
  193. package/dist/server/sessions/sessionArchiveTree.js.map +1 -1
  194. package/dist/server/sessions/sessionCommandService.js +11 -24
  195. package/dist/server/sessions/sessionCommandService.js.map +1 -1
  196. package/dist/server/sessions/sessionImageDimensions.js +31 -0
  197. package/dist/server/sessions/sessionImageDimensions.js.map +1 -0
  198. package/dist/server/sessions/sessionMediaIndex.js +191 -0
  199. package/dist/server/sessions/sessionMediaIndex.js.map +1 -0
  200. package/dist/server/sessions/sessionMetadata.js +51 -0
  201. package/dist/server/sessions/sessionMetadata.js.map +1 -0
  202. package/dist/server/sessions/sessionModelScope.js +2 -2
  203. package/dist/server/sessions/sessionModelScope.js.map +1 -1
  204. package/dist/server/sessions/sessionNameGenerator.js +13 -33
  205. package/dist/server/sessions/sessionNameGenerator.js.map +1 -1
  206. package/dist/server/sessions/sessionReadAccess.js +41 -0
  207. package/dist/server/sessions/sessionReadAccess.js.map +1 -0
  208. package/dist/server/sessions/sessionRoutes.js +61 -6
  209. package/dist/server/sessions/sessionRoutes.js.map +1 -1
  210. package/dist/server/sessions/sessionSummaryScanner.js +62 -5
  211. package/dist/server/sessions/sessionSummaryScanner.js.map +1 -1
  212. package/dist/server/sessions/sessionUiEvents.js +17 -4
  213. package/dist/server/sessions/sessionUiEvents.js.map +1 -1
  214. package/dist/server/sessions/spawnSessionTool.js +11 -3
  215. package/dist/server/sessions/spawnSessionTool.js.map +1 -1
  216. package/dist/server/sessions/spawnSubsessionTool.js +35 -19
  217. package/dist/server/sessions/spawnSubsessionTool.js.map +1 -1
  218. package/dist/server/sessions/subsessionCompletionDelivery.js +15 -0
  219. package/dist/server/sessions/subsessionCompletionDelivery.js.map +1 -0
  220. package/dist/server/sessions/subsessionCompletionInbox.js +134 -0
  221. package/dist/server/sessions/subsessionCompletionInbox.js.map +1 -0
  222. package/dist/server/sessions/subsessionProvenance.js +27 -0
  223. package/dist/server/sessions/subsessionProvenance.js.map +1 -0
  224. package/dist/server/sessions/transcriptMarkdown.js +48 -0
  225. package/dist/server/sessions/transcriptMarkdown.js.map +1 -0
  226. package/dist/server/sessions/transcriptMessages.js +3 -0
  227. package/dist/server/sessions/transcriptMessages.js.map +1 -1
  228. package/dist/server/startupLogger.js +13 -0
  229. package/dist/server/startupLogger.js.map +1 -0
  230. package/dist/server/startupUrls.js +27 -0
  231. package/dist/server/startupUrls.js.map +1 -0
  232. package/dist/server/status/machineStatusService.js +15 -9
  233. package/dist/server/status/machineStatusService.js.map +1 -1
  234. package/dist/server/storage/navigationPreferenceStore.js +138 -0
  235. package/dist/server/storage/navigationPreferenceStore.js.map +1 -0
  236. package/dist/server/webSocketBridge.js +9 -0
  237. package/dist/server/webSocketBridge.js.map +1 -1
  238. package/dist/server/workbench/skillSync.js +1 -1
  239. package/dist/server/workbench/skillSync.js.map +1 -1
  240. package/dist/server/workbench/workbenchTools.js +2 -2
  241. package/dist/server/workbench/workbenchTools.js.map +1 -1
  242. package/dist/server/workspaces/filePreviewService.js +5 -2
  243. package/dist/server/workspaces/filePreviewService.js.map +1 -1
  244. package/dist/server/workspaces/projectPiWebConfig.js +87 -6
  245. package/dist/server/workspaces/projectPiWebConfig.js.map +1 -1
  246. package/dist/server/workspaces/workspaceChangeNotifier.js +12 -0
  247. package/dist/server/workspaces/workspaceChangeNotifier.js.map +1 -0
  248. package/dist/server/workspaces/workspaceNotificationCommand.js +64 -0
  249. package/dist/server/workspaces/workspaceNotificationCommand.js.map +1 -0
  250. package/dist/server/workspaces/workspaceProviderRegistry.js +53 -0
  251. package/dist/server/workspaces/workspaceProviderRegistry.js.map +1 -1
  252. package/dist/server-plugin-api.d.ts +83 -15
  253. package/dist/server-plugin-api.js +25 -0
  254. package/dist/server-plugin-api.js.map +1 -1
  255. package/dist/sessiond/sessionDaemonClient.js +27 -3
  256. package/dist/sessiond/sessionDaemonClient.js.map +1 -1
  257. package/dist/shared/apiTypes.js +3 -2
  258. package/dist/shared/apiTypes.js.map +1 -1
  259. package/dist/shared/capabilities.js +3 -0
  260. package/dist/shared/capabilities.js.map +1 -1
  261. package/dist/shared/federatedRoutes.js +25 -5
  262. package/dist/shared/federatedRoutes.js.map +1 -1
  263. package/dist/shared/machineStatus.js +11 -2
  264. package/dist/shared/machineStatus.js.map +1 -1
  265. package/dist/shared/navigationPreferences.js +6 -0
  266. package/dist/shared/navigationPreferences.js.map +1 -0
  267. package/dist/shared/piWebConfigParsing.js +54 -0
  268. package/dist/shared/piWebConfigParsing.js.map +1 -1
  269. package/dist/shared/pluginApiTypes.d.ts +55 -0
  270. package/dist/shared/pluginBackendProtocol.js +56 -1
  271. package/dist/shared/pluginBackendProtocol.js.map +1 -1
  272. package/dist/shared/pluginCatalogTypes.d.ts +49 -0
  273. package/dist/shared/pluginCatalogTypes.js +156 -0
  274. package/dist/shared/pluginCatalogTypes.js.map +1 -0
  275. package/dist/shared/sessionMedia.js +12 -0
  276. package/dist/shared/sessionMedia.js.map +1 -0
  277. package/dist/shared/streamingBehavior.js +8 -0
  278. package/dist/shared/streamingBehavior.js.map +1 -0
  279. package/dist/shared/themePreference.js +24 -0
  280. package/dist/shared/themePreference.js.map +1 -0
  281. package/dist/workspaceNotificationCli.js +95 -0
  282. package/dist/workspaceNotificationCli.js.map +1 -0
  283. package/docs/README.md +31 -0
  284. package/docs/config.md +77 -4
  285. package/docs/plugins.md +60 -11
  286. package/examples/session-bridge-plugin/package.json +2 -2
  287. package/examples/session-bridge-plugin/src/browser/index.ts +1 -1
  288. package/examples/session-bridge-plugin/src/companion.ts +1 -1
  289. package/extensions/pi-web.ts +3 -1
  290. package/package.json +46 -34
  291. package/skills/README.md +10 -9
  292. package/skills/relay/SKILL.md +24 -68
  293. package/skills/relay-runner/SKILL.md +40 -219
  294. package/dist/client/assets/PiWebApp-CN3g7SqA.js +0 -4362
  295. package/dist/client/assets/external-DUGCSDhZ.js +0 -2
  296. package/dist/client/assets/index-JduZlbIF.js +0 -2
  297. package/dist/client/assets/vendor-editor-core-YWog6mAR.js +0 -10
  298. package/dist/server/sessions/pendingAskStore.js +0 -275
  299. package/dist/server/sessions/pendingAskStore.js.map +0 -1
@@ -1,51 +1,51 @@
1
- var e;function t(t){e=t}var n=(t,n,r)=>e?.(t,n,r)??n.replace(/\{([A-Za-z0-9_]+)\}/g,(e,t)=>String(r?.[t]??e)),r=48e3,i=/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;function a(e){return typeof e!=`object`||!e?!1:`id`in e&&typeof e.id==`string`&&i.test(e.id)&&`createdAt`in e&&typeof e.createdAt==`string`&&`sessionId`in e&&typeof e.sessionId==`string`&&e.sessionId.length<=512&&(!(`sourceSessionId`in e)||e.sourceSessionId===void 0||typeof e.sourceSessionId==`string`&&!!e.sourceSessionId.trim()&&e.sourceSessionId.length<=512)&&`question`in e&&typeof e.question==`string`&&e.question.length<=8e3&&`status`in e&&[`running`,`completed`,`failed`,`interrupted`].includes(String(e.status))&&(!(`failureCode`in e)||e.failureCode===void 0||typeof e.failureCode==`string`&&[`session-unavailable`,`request-failed`,`interrupted`].includes(e.failureCode))&&`stages`in e&&Array.isArray(e.stages)&&e.stages.length<=16&&e.stages.every(e=>typeof e==`string`&&e.length<=256)&&`text`in e&&typeof e.text==`string`&&e.text.length<=48e3}function o(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var s=o();function c(e){s=e}var l={exec:()=>null};function u(e){let t=[];return n=>{let r=Math.max(0,Math.min(3,n-1)),i=t[r];return i||(i=e(r),t[r]=i),i}}function d(e,t=``){let n=typeof e==`string`?e:e.source,r={replace:(e,t)=>{let i=typeof t==`string`?t:t.source;return i=i.replace(p.caret,`$1`),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};return r}var f=((e=``)=>{try{return!!RegExp(`(?<=1)(?<!1)`+e)}catch{return!1}})(),p={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,endingSpaceTabChar:/[ \t]$/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:u(e=>RegExp(`^ {0,${e}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:u(e=>RegExp(`^ {0,${e}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`)),fencesBeginRegex:u(e=>RegExp(`^ {0,${e}}(?:\`\`\`|~~~)`)),headingBeginRegex:u(e=>RegExp(`^ {0,${e}}#`)),htmlBeginRegex:u(e=>RegExp(`^ {0,${e}}<(?:[a-z].*>|!--)`,`i`)),blockquoteBeginRegex:u(e=>RegExp(`^ {0,${e}}>`))},m=/^(?:[ \t]*(?:\n|$))+/,h=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,g=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,_=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,ee=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,v=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,y=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,b=d(y).replace(/bull/g,v).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,``).getRegex(),te=d(y).replace(/bull/g,v).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),x=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,ne=/^[^\n]+/,S=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,re=d(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace(`label`,S).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),ie=d(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,v).getRegex(),C=`address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul`,w=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,ae=d(`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][a-z0-9-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][a-z0-9-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))`,`i`).replace(`comment`,w).replace(`tag`,C).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),T=e=>d(x).replace(`hr`,_).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,e).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,C).getRegex(),oe=T(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),se=T(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),E={blockquote:d(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,se).getRegex(),code:h,def:re,fences:g,heading:ee,hr:_,html:ae,lheading:b,list:ie,newline:m,paragraph:oe,table:l,text:ne},D=d(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,_).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`blockquote`,` {0,3}>`).replace(`code`,`(?: {4}| {0,3} )[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,C).getRegex(),ce={...E,lheading:te,table:D,paragraph:d(x).replace(`hr`,_).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,D).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,C).getRegex()},le={...E,html:d(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,w).replace(/tag/g,`(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b`).getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:l,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:d(x).replace(`hr`,_).replace(`heading`,` *#{1,6} *[^
2
- ]`).replace(`lheading`,b).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).replace(`|tag`,``).getRegex()},ue=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,de=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,fe=/^( {2,}|\\)\n(?!\s*$)/,pe=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,O=/[\p{P}\p{S}]/u,k=/[\s\p{P}\p{S}]/u,A=/[^\s\p{P}\p{S}]/u,me=d(/^((?![*_])punctSpace)/,`u`).replace(/punctSpace/g,k).getRegex(),he=/[\p{Pi}\p{Ps}"']/u,ge=/(?!~)[\p{P}\p{S}]/u,_e=/(?!~)[\s\p{P}\p{S}]/u,ve=/(?:[^\s\p{P}\p{S}]|~)/u,ye=d(/link|precode-code|html/,`g`).replace(`link`,/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace(`precode-`,f?"(?<!`)()":"(^^|[^`])").replace(`code`,/(?<b>`+)[^`]+\k<b>(?!`)/).replace(`html`,/<(?! )[^<>]*?>/).getRegex(),be=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,xe=d(be,`u`).replace(/punct/g,O).getRegex(),Se=d(be,`u`).replace(/punct/g,ge).getRegex(),Ce=d(/^(?:\*+(?:((?!\*)(?!openQuote)punct)|([^\s*]))?)|^_+(?:((?!_)(?!openQuote)punct)|([^\s_]))?/,`u`).replace(/openQuote/g,he).replace(/punct/g,O).getRegex(),we=`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)`,Te=d(we,`gu`).replace(/notPunctSpace/g,A).replace(/punctSpace/g,k).replace(/punct/g,O).getRegex(),Ee=d(we,`gu`).replace(/notPunctSpace/g,ve).replace(/punctSpace/g,_e).replace(/punct/g,ge).getRegex(),De=d(`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)[\\s](\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|(?:(?!\\*)punct|notPunctSpace)(\\*+)(?!\\*)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,A).replace(/punctSpace/g,k).replace(/punct/g,O).getRegex(),Oe=d(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)`,`gu`).replace(/notPunctSpace/g,A).replace(/punctSpace/g,k).replace(/punct/g,O).getRegex(),ke=d(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)[\\s](_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)|(?:(?!_)punct|notPunctSpace)(_+)(?!_)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,A).replace(/punctSpace/g,k).replace(/punct/g,O).getRegex(),Ae=d(/^~~?(?:((?!~)punct)|[^\s~])/,`u`).replace(/punct/g,O).getRegex(),je=d(`^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,A).replace(/punctSpace/g,k).replace(/punct/g,O).getRegex(),Me=d(/\\(punct)/,`gu`).replace(/punct/g,O).getRegex(),Ne=d(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace(`scheme`,/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(`email`,/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Pe=d(w).replace(`(?:-->|$)`,`-->`).getRegex(),Fe=d(`^comment|^</[a-zA-Z][a-zA-Z0-9-]*\\s*>|^<[a-zA-Z][a-zA-Z0-9-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>`).replace(`comment`,Pe).replace(`attribute`,/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),j=d(/(?:\[(?:brackets|\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/).replace(`brackets`,/\[(?:\\[\s\S]|[^\[\]\\])*\]/).getRegex(),Ie=d(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace(`label`,j).replace(`href`,/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace(`title`,/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),M=d(/^!?\[(label)\]\[(ref)\]/).replace(`label`,j).replace(`ref`,S).getRegex(),N=d(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,S).getRegex(),Le=d(`reflink|nolink(?!\\()`,`g`).replace(`reflink`,M).replace(`nolink`,N).getRegex(),P=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,F={_backpedal:l,anyPunctuation:Me,autolink:Ne,blockSkip:ye,br:fe,code:de,del:l,delLDelim:l,delRDelim:l,emStrongLDelim:xe,emStrongRDelimAst:Te,emStrongRDelimUnd:Oe,escape:ue,link:Ie,nolink:N,punctuation:me,reflink:M,reflinkSearch:Le,tag:Fe,text:pe,url:l},Re={...F,emStrongLDelim:Ce,emStrongRDelimAst:De,emStrongRDelimUnd:ke,link:d(/^!?\[(label)\]\((.*?)\)/).replace(`label`,j).getRegex(),reflink:d(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,j).getRegex()},I={...F,emStrongRDelimAst:Ee,emStrongLDelim:Se,delLDelim:Ae,delRDelim:je,url:d(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace(`protocol`,P).replace(`email`,/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![\w-])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:d(/^(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace(`protocol`,P).getRegex()},ze={...I,br:d(fe).replace(`{2,}`,`*`).getRegex(),text:d(I.text).replace(`\\b_`,`\\b_| {2,}\\n`).replace(/\{2,\}/g,`*`).getRegex()},L={normal:E,gfm:ce,pedantic:le},R={normal:F,gfm:I,breaks:ze,pedantic:Re},Be={"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&#39;`},Ve=e=>Be[e];function z(e,t){if(t){if(p.escapeTest.test(e))return e.replace(p.escapeReplace,Ve)}else if(p.escapeTestNoEncode.test(e))return e.replace(p.escapeReplaceNoEncode,Ve);return e}function B(e){try{e=encodeURI(e).replace(p.percentDecode,`%`)}catch{return null}return e}function V(e,t){let n=e.replace(p.findPipe,(e,t,n)=>{let r=!1,i=t;for(;--i>=0&&n[i]===`\\`;)r=!r;return r?`|`:` |`}).split(p.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t){if(n.length>t)n.splice(t);else for(;n.length<t;)n.push(``)}for(;r<n.length;r++)n[r]=n[r].trim().replace(p.slashPipe,`|`);return n}function H(e,t,n){let r=e.length;if(r===0)return``;let i=0;for(;i<r;){let a=e.charAt(r-i-1);if(a===t&&!n)i++;else if(a!==t&&n)i++;else break}return e.slice(0,r-i)}function U(e){let t=e.split(`
1
+ var e;function t(t){e=t}var n=(t,n,r)=>e?.(t,n,r)??n.replace(/\{([A-Za-z0-9_]+)\}/g,(e,t)=>String(r?.[t]??e)),r=48e3,i=/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;function a(e){return typeof e!=`object`||!e?!1:`id`in e&&typeof e.id==`string`&&i.test(e.id)&&`createdAt`in e&&typeof e.createdAt==`string`&&`sessionId`in e&&typeof e.sessionId==`string`&&e.sessionId.length<=512&&(!(`sourceSessionId`in e)||e.sourceSessionId===void 0||typeof e.sourceSessionId==`string`&&!!e.sourceSessionId.trim()&&e.sourceSessionId.length<=512)&&`question`in e&&typeof e.question==`string`&&e.question.length<=8e3&&`status`in e&&[`running`,`completed`,`failed`,`interrupted`].includes(String(e.status))&&(!(`failureCode`in e)||e.failureCode===void 0||typeof e.failureCode==`string`&&[`session-unavailable`,`request-failed`,`interrupted`].includes(e.failureCode))&&`stages`in e&&Array.isArray(e.stages)&&e.stages.length<=16&&e.stages.every(e=>typeof e==`string`&&e.length<=256)&&`text`in e&&typeof e.text==`string`&&e.text.length<=48e3}function o(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var s=o();function c(e){s=e}var l={exec:()=>null};function u(e){let t=[];return n=>{let r=Math.max(0,Math.min(3,n-1)),i=t[r];return i||(i=e(r),t[r]=i),i}}function d(e,t=``){let n=typeof e==`string`?e:e.source,r={replace:(e,t)=>{let i=typeof t==`string`?t:t.source;return i=i.replace(p.caret,`$1`),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};return r}var f=((e=``)=>{try{return!!RegExp(`(?<=1)(?<!1)`+e)}catch{return!1}})(),p={codeRemoveIndent:/^(?: {0,3}\t| {1,4})/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,endingSpaceTabChar:/[ \t]$/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,leadingSpaceTab:/^[ \t]+/,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,numericCharacterReference:/&#(?:(\d{1,7})|[Xx]([A-Fa-f0-9]{1,6}));/,numericCharacterReferenceOrAmpersand:/&#(?:(\d{1,7})|[Xx]([A-Fa-f0-9]{1,6}));|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:u(e=>RegExp(`^ {0,${e}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:u(e=>RegExp(`^ {0,${e}}((?:-[ ]*){3,}|(?:_[ ]*){3,}|(?:\\*[ ]*){3,})(?:\\n+|$)`)),fencesBeginRegex:u(e=>RegExp(`^ {0,${e}}(?:\`\`\`|~~~)`)),headingBeginRegex:u(e=>RegExp(`^ {0,${e}}#`)),htmlBeginRegex:u(e=>RegExp(`^ {0,${e}}(?:</?(?:${S})(?: +|$|/?>)|<(?:(?:script|pre|style|textarea)(?:[\\s>]|$)|!--)|<\\?|<![A-Za-z]|<!\\[CDATA\\[)`,`i`)),blockquoteBeginRegex:u(e=>RegExp(`^ {0,${e}}>`))},m=/^(?:[ \t]*(?:\n|$))+/,h=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,g=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,_=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,ee=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,v=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,y=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |fences|blockquote|heading|hr|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,te=d(y).replace(/bull/g,v).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/hr/g,/ {0,3}(?:(?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,``).getRegex(),ne=d(y).replace(/bull/g,v).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/hr/g,/ {0,3}(?:(?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),b=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,re=/^[^\n]+/,x=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,ie=d(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace(`label`,x).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),ae=d(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,v).getRegex(),S=`address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul`,C=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,oe=d(`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!(?:script|pre|style|textarea)(?![a-z0-9-]))([a-z][a-z0-9-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</[a-z][a-z0-9-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))`,`i`).replace(`comment`,C).replace(`tag`,S).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),w=e=>d(b).replace(`hr`,_).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,e).replace(`html`,` {0,3}(?:</?(?:tag)(?: +|\\n|/?>)|<(?:(?:script|pre|style|textarea)(?:[\\s>]|$)|!--)|<\\?|<![A-Za-z]|<!\\[CDATA\\[)`).replace(`tag`,S).getRegex(),se=w(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),ce=w(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),T={blockquote:d(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,ce).getRegex(),code:h,def:ie,fences:g,heading:ee,hr:_,html:oe,lheading:te,list:ae,newline:m,paragraph:se,table:l,text:re},le=d(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,_).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`blockquote`,` {0,3}>`).replace(`code`,`(?: {4}| {0,3} )[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,` {0,3}(?:</?(?:tag)(?: +|\\n|/?>)|<(?:(?:script|pre|style|textarea)(?:[\\s>]|$)|!--)|<\\?|<![A-Za-z]|<!\\[CDATA\\[)`).replace(`tag`,S).getRegex(),ue={...T,lheading:ne,table:le,paragraph:d(b).replace(`hr`,_).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,le).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]`).replace(`html`,` {0,3}(?:</?(?:tag)(?: +|\\n|/?>)|<(?:(?:script|pre|style|textarea)(?:[\\s>]|$)|!--)|<\\?|<![A-Za-z]|<!\\[CDATA\\[)`).replace(`tag`,S).getRegex()},de={...T,html:d(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,C).replace(/tag/g,`(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b`).getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:l,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:d(b).replace(`hr`,_).replace(`heading`,` *#{1,6} *[^
2
+ ]`).replace(`lheading`,te).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).replace(`|tag`,``).getRegex()},fe=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,pe=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,me=/^( {2,}|\\)\n(?!\s*$)[ \t]*/,he=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,E=/[\p{P}\p{S}]/u,D=/[\s\p{P}\p{S}]/u,O=/[^\s\p{P}\p{S}]/u,ge=d(/^((?![*_])punctSpace)/,`u`).replace(/punctSpace/g,D).getRegex(),_e=/[\p{Pi}\p{Ps}"']/u,ve=/(?!~)[\p{P}\p{S}]/u,ye=/(?!~)[\s\p{P}\p{S}]/u,be=/(?:[^\s\p{P}\p{S}]|~)/u,xe=d(/link|precode-code|html/,`g`).replace(`link`,/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace(`precode-`,f?"(?<!`)()":"(^^|[^`])").replace(`code`,/(?<b>`+)[^`]+\k<b>(?!`)/).replace(`html`,/<(?! )[^<>]*?>/).getRegex(),Se=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,Ce=d(Se,`u`).replace(/punct/g,E).getRegex(),we=d(Se,`u`).replace(/punct/g,ve).getRegex(),Te=d(/^(?:\*+(?:((?!\*)(?!openQuote)punct)|([^\s*]))?)|^_+(?:((?!_)(?!openQuote)punct)|([^\s_]))?/,`u`).replace(/openQuote/g,_e).replace(/punct/g,E).getRegex(),Ee=`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)`,De=d(Ee,`gu`).replace(/notPunctSpace/g,O).replace(/punctSpace/g,D).replace(/punct/g,E).getRegex(),Oe=d(Ee,`gu`).replace(/notPunctSpace/g,be).replace(/punctSpace/g,ye).replace(/punct/g,ve).getRegex(),ke=d(`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)[\\s](\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|(?:(?!\\*)punct|notPunctSpace)(\\*+)(?!\\*)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,O).replace(/punctSpace/g,D).replace(/punct/g,E).getRegex(),Ae=d(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)`,`gu`).replace(/notPunctSpace/g,O).replace(/punctSpace/g,D).replace(/punct/g,E).getRegex(),je=d(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)[\\s](_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)|(?:(?!_)punct|notPunctSpace)(_+)(?!_)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,O).replace(/punctSpace/g,D).replace(/punct/g,E).getRegex(),Me=d(/^~~?(?:((?!~)punct)|[^\s~])/,`u`).replace(/punct/g,E).getRegex(),Ne=d(`^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,O).replace(/punctSpace/g,D).replace(/punct/g,E).getRegex(),Pe=d(/\\(punct)/,`gu`).replace(/punct/g,E).getRegex(),Fe=d(/(`+)(?:[^`]|[^`][\s\S]*?[^`])\1(?!`)|`+|\\(punct)/,`gu`).replace(/punct/g,E).getRegex(),Ie=d(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace(`scheme`,/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(`email`,/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Le=d(C).replace(`(?:-->|$)`,`-->`).getRegex(),Re=d(`^comment|^</[a-zA-Z][a-zA-Z0-9-]*\\s*>|^<[a-zA-Z][a-zA-Z0-9-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>`).replace(`comment`,Le).replace(`attribute`,/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),ze=/\[(?:\\[\s\S]|[^\[\]\\])*\]/,k=d(/(?:\[(?:brackets|\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/).replace(`brackets`,ze).getRegex(),Be=d(/^!?\[(label)\]\([ \t\n]*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?[ \t\n]*\)/).replace(`label`,k).replace(`href`,/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace(`title`,/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Ve=d(/^!?\[(label)\]\[(ref)\]/).replace(`label`,k).replace(`ref`,x).getRegex(),He=d(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,x).getRegex(),A=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\]){1,999}/,Ue=d(/(?:[^\[\]\\`]*(?:\[(?:brackets|\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\]))){0,999}?[^\[\]\\`]*?/).replace(`brackets`,ze).getRegex(),We=d(`reflink|nolink(?!\\()`,`g`).replace(`reflink`,d(/^!?\[(label)\]\[(ref)\]/).replace(`label`,Ue).replace(`ref`,A).getRegex()).replace(`nolink`,d(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,A).getRegex()).getRegex(),j=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Ge=d(/(?:mailto:email|xmpp:email(?:\/[A-Za-z0-9@.]+)?)/).replace(/email/g,/[A-Za-z0-9._+-]+@[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![\w-])/).getRegex(),M={_backpedal:l,anyPunctuation:Pe,anyPunctuationOutsideCode:Fe,autolink:Ie,blockSkip:xe,br:me,code:pe,del:l,delLDelim:l,delRDelim:l,emStrongLDelim:Ce,emStrongRDelimAst:De,emStrongRDelimUnd:Ae,escape:fe,link:Be,nolink:He,punctuation:ge,reflink:Ve,reflinkSearch:We,tag:Re,text:he,url:l},Ke={...M,emStrongLDelim:Te,emStrongRDelimAst:ke,emStrongRDelimUnd:je,link:d(/^!?\[(label)\]\((.*?)\)/).replace(`label`,k).getRegex(),reflink:d(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,k).getRegex()},N={...M,emStrongRDelimAst:Oe,emStrongLDelim:we,delLDelim:Me,delRDelim:Ne,url:d(/^emailProtocol|^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace(`emailProtocol`,Ge).replace(`protocol`,j).replace(`email`,/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![\w-])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:d(/^(?:[^a-zA-Z0-9](?=emailProtocol)|(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9](?=emailProtocol)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))))/).replace(`protocol`,j).replace(/emailProtocol/g,/(?:mailto|xmpp):/).getRegex()},qe={...N,br:d(me).replace(`{2,}`,`*`).getRegex(),text:d(N.text).replace(`\\b_`,`\\b_| {2,}\\n`).replace(/\{2,\}/g,`*`).getRegex()},P={normal:T,gfm:ue,pedantic:de},F={normal:M,gfm:N,breaks:qe,pedantic:Ke},Je={"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&#39;`},Ye=e=>Je[e];function I(e,t){if(t){if(p.escapeTest.test(e))return e.replace(p.escapeReplace,Ye)}else if(p.escapeTestNoEncode.test(e))return e.replace(p.escapeReplaceNoEncode,Ye);return e}function Xe(e){return p.numericCharacterReference.test(e)?e.replace(p.numericCharacterReferenceOrAmpersand,(e,t,n)=>{if(t===void 0&&n===void 0)return`&amp;`;let r=t===void 0?Number.parseInt(n,16):Number.parseInt(t,10);return r===0||r>1114111||r>=55296&&r<=57343?`�`:r===38?`&amp;`:String.fromCodePoint(r)}):e}function Ze(e){try{e=encodeURI(e).replace(p.percentDecode,`%`)}catch{return null}return e}function Qe(e,t){let n=e.replace(p.findPipe,(e,t,n)=>{let r=!1,i=t;for(;--i>=0&&n[i]===`\\`;)r=!r;return r?`|`:` |`}).split(p.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t){if(n.length>t)n.splice(t);else for(;n.length<t;)n.push(``)}for(;r<n.length;r++)n[r]=n[r].trim().replace(p.slashPipe,`|`);return n}function L(e,t,n){let r=e.length;if(r===0)return``;let i=0;for(;i<r;){let a=e.charAt(r-i-1);if(a===t&&!n)i++;else if(a!==t&&n)i++;else break}return e.slice(0,r-i)}function R(e){let t=e.split(`
3
3
  `),n=t.length-1;for(;n>=0&&p.blankLine.test(t[n]);)n--;return t.length-n<=2?e:t.slice(0,n+1).join(`
4
- `)}function He(e,t){if(e.indexOf(t[1])===-1)return-1;let n=0;for(let r=0;r<e.length;r++)if(e[r]===`\\`)r++;else if(e[r]===t[0])n++;else if(e[r]===t[1]&&(n--,n<0))return r;return n>0?-2:-1}function Ue(e,t=0){let n=t,r=``;for(let t of e)if(t===` `){let e=4-n%4;r+=` `.repeat(e),n+=e}else r+=t,n++;return r}function W(e,t,n,r,i){let a=t.href,o=t.title||null,s=e[1].replace(i.other.outputLinkReplace,`$1`),c=e[0].charAt(0)===`!`;r.state.inLink=!0;let l=r.state.linkEmitted,u=r.state.inRawBlock;r.state.linkEmitted=!1;let d=r.inlineTokens(s),f=r.state.linkEmitted;if(r.state.linkEmitted=l,r.state.inLink=!1,!c){if(f){r.state.inRawBlock=u;return}r.state.linkEmitted=!0}return{type:c?`image`:`link`,raw:n,href:a,title:o,text:s,tokens:d}}function We(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(r===null)return t;let i=r[1];return t.split(`
4
+ `)}function z(e){return e.trim().toLowerCase().toUpperCase().toLowerCase()}function B(e,t){if(e.indexOf(t[0])===-1&&e.indexOf(t[1])===-1)return-1;let n=0;for(let r=0;r<e.length;r++)if(e[r]===`\\`)r++;else if(e[r]===t[0])n++;else if(e[r]===t[1]&&(n--,n<0))return r;return n>0?-2:-1}function V(e,t=0){let n=t,r=``;for(let t of e)if(t===` `){let e=4-n%4;r+=` `.repeat(e),n+=e}else r+=t,n++;return r}function H(e,t,n,r,i){let a=t.href,o=t.title||null,s=e[1].replace(i.other.outputLinkReplace,`$1`),c=e[0].charAt(0)===`!`,l=r.state.inLink,u=r.state.linkEmitted,d=r.state.inRawBlock;r.state.inLink=!0,r.state.linkEmitted=!1;let f=r.inlineTokens(s),p=r.state.linkEmitted;if(r.state.linkEmitted=u,r.state.inLink=l,!c){if(p){r.state.inRawBlock=d;return}r.state.linkEmitted=!0}return{type:c?`image`:`link`,raw:n,href:a,title:o,text:s,tokens:f}}function $e(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(r===null)return t;let i=r[1];return t.split(`
5
5
  `).map(e=>{let t=e.match(n.other.beginningSpace);if(t===null)return e;let[r]=t;return e.slice(Math.min(r.length,i.length))}).join(`
6
- `)}var G=class{options;rules;lexer;constructor(e){this.options=e||s}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:`space`,raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let e=this.options.pedantic?t[0]:U(t[0]);return{type:`code`,raw:e,codeBlockStyle:`indented`,text:e.replace(this.rules.other.codeRemoveIndent,``)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let e=t[0],n=We(e,t[3]||``,this.rules);return{type:`code`,raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,`$1`):t[2],text:n}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(this.rules.other.endingHash.test(e)){let t=H(e,`#`);(this.options.pedantic||!t||this.rules.other.endingSpaceTabChar.test(t))&&(e=t.trim())}return{type:`heading`,raw:H(t[0],`
7
- `),depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:`hr`,raw:H(t[0],`
8
- `)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let e=H(t[0],`
6
+ `)}function U(e,t,n,r){if(!t.includes(`<`))return!1;for(let i=0;i<t.length;i++){if(t[i]===`\\`){i++;continue}if(t[i]==="`"){let e=r.inline.code.exec(t.slice(i));if(e){i+=e[0].length-1;continue}}if(t[i]!==`<`)continue;let a=e.slice(n+i),o=r.inline.tag.exec(a)||r.inline.autolink.exec(a);if(o){if(o[0].length>t.length-i)return!0;i+=o[0].length-1}}return!1}var W=class{options;rules;lexer;constructor(e){this.options=e||s}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:`space`,raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let e=this.options.pedantic?t[0]:R(t[0]);return{type:`code`,raw:e,codeBlockStyle:`indented`,text:e.replace(this.rules.other.codeRemoveIndent,``)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let e=t[0],n=$e(e,t[3]||``,this.rules);return{type:`code`,raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,`$1`):t[2],text:n}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(this.rules.other.endingHash.test(e)){let t=L(e,`#`);(this.options.pedantic||!t||this.rules.other.endingSpaceTabChar.test(t))&&(e=t.trim())}return{type:`heading`,raw:L(t[0],`
7
+ `),depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:`hr`,raw:L(t[0],`
8
+ `)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let e=L(t[0],`
9
9
  `).split(`
10
10
  `),n=``,r=``,i=[];for(;e.length>0;){let t=!1,a=[],o=0;for(;o<e.length;o++)if(this.rules.other.blockquoteStart.test(e[o]))a.push(e[o]),t=!0;else if(!t)a.push(e[o]);else break;e=e.slice(o);let s=a.join(`
11
11
  `),c=s.replace(this.rules.other.blockquoteSetextReplace,`
12
12
  $1`).replace(this.rules.other.blockquoteSetextReplace2,``);n=n?`${n}
13
13
  ${s}`:s,r=r?`${r}
14
- ${c}`:c;let l=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(c,i,!0),this.lexer.state.top=l,e.length===0)break;let u=i.at(-1);if(u?.type===`code`)break;if(u?.type===`blockquote`){let t=u,a=e.join(`
14
+ ${c}`:c;let l=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(c,i,!0),this.lexer.state.top=l,e.length===0)break;let u=i.at(-1);if(u?.type===`code`||u?.type===`heading`||u?.type===`hr`||u?.type===`html`)break;if(u?.type===`blockquote`){let t=u,a=e.join(`
15
15
  `),o=t.raw+`
16
- `+a.replace(this.rules.other.blockquoteSetextReplace2,``),s=this.blockquote(o);i[i.length-1]=s,n=`${n}
17
- ${a}`,r=r.substring(0,r.length-t.text.length)+s.text;break}if(u?.type===`list`){let t=u,a=t.raw+`
16
+ `+a.replace(this.rules.other.blockquoteSetextReplace2,``),s=this.blockquote(o);i[i.length-1]=s;let c=o.substring(s.raw.length).replace(/^\n/,``),l=c?c.split(`
17
+ `).length:0,d=l?e.slice(0,-l):e;d.length>0&&(n=`${n}
18
+ ${d.join(`
19
+ `)}`),r=r.substring(0,r.length-t.text.length)+s.text;break}if(u?.type===`list`){let t=u,a=t.raw+`
18
20
  `+e.join(`
19
21
  `),o=this.list(a);i[i.length-1]=o,n=n.substring(0,n.length-u.raw.length)+o.raw,r=r.substring(0,r.length-t.raw.length)+o.raw,e=a.substring(i.at(-1).raw.length).split(`
20
- `);continue}}return{type:`blockquote`,raw:n,tokens:i,text:r}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),r=n.length>1,i={type:`list`,raw:``,ordered:r,start:r?+n.slice(0,-1):``,loose:!1,items:[]};n=r?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=r?n:`[*+-]`);let a=this.rules.other.listItemRegex(n),o=!1;for(;e;){let n=!1,r=``,s=``;if(!(t=a.exec(e))||this.rules.block.hr.test(e))break;r=t[0],e=e.substring(r.length);let c=Ue(t[2].split(`
21
- `,1)[0],t[1].length),l=e.split(`
22
- `,1)[0],u=!c.trim(),d=0;if(this.options.pedantic?(d=2,s=c.trimStart()):u?d=t[1].length+1:(d=c.search(this.rules.other.nonSpaceChar),d=d>4?1:d,s=c.slice(d),d+=t[1].length),u&&this.rules.other.blankLine.test(l)&&(r+=l+`
23
- `,e=e.substring(l.length+1),n=!0),!n){let t=this.rules.other.nextBulletRegex(d),n=this.rules.other.hrRegex(d),i=this.rules.other.fencesBeginRegex(d),a=this.rules.other.headingBeginRegex(d),o=this.rules.other.htmlBeginRegex(d),f=this.rules.other.blockquoteBeginRegex(d);for(;e;){let p=e.split(`
24
- `,1)[0],m;if(l=p,this.options.pedantic?(l=l.replace(this.rules.other.listReplaceNesting,` `),m=l):m=l.replace(this.rules.other.tabCharGlobal,` `),i.test(l)||a.test(l)||o.test(l)||f.test(l)||t.test(l)||n.test(l))break;if(m.search(this.rules.other.nonSpaceChar)>=d||!l.trim())s+=`
25
- `+m.slice(d);else{if(u||c.replace(this.rules.other.tabCharGlobal,` `).search(this.rules.other.nonSpaceChar)>=4||i.test(c)||a.test(c)||n.test(c))break;s+=`
26
- `+l}u=!l.trim(),r+=p+`
27
- `,e=e.substring(p.length+1),c=m.slice(d)}}i.loose||(o?i.loose=!0:this.rules.other.doubleBlankLine.test(r)&&(o=!0)),i.items.push({type:`list_item`,raw:r,task:!!this.options.gfm&&this.rules.other.listIsTask.test(s),loose:!1,text:s,tokens:[]}),i.raw+=r}let s=i.items.at(-1);if(s)s.raw=s.raw.trimEnd(),s.text=s.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let e of i.items)if(this.lexer.state.top=!1,e.tokens=this.lexer.blockTokens(e.text,[]),!i.loose){let t=e.tokens.filter(e=>e.type===`space`);i.loose=t.length>0&&t.some(e=>this.rules.other.anyLine.test(e.raw))}for(let e of i.items){let t=e.tokens[0];if(e.task&&(t?.type===`text`||t?.type===`paragraph`)){e.text=e.text.replace(this.rules.other.listReplaceTask,``),t.raw=t.raw.replace(this.rules.other.listReplaceTask,``),t.text=t.text.replace(this.rules.other.listReplaceTask,``);for(let e=this.lexer.inlineQueue.length-1;e>=0;e--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[e].src)){this.lexer.inlineQueue[e].src=this.lexer.inlineQueue[e].src.replace(this.rules.other.listReplaceTask,``);break}let n=this.rules.other.listTaskCheckbox.exec(e.raw);if(n){let t={type:`checkbox`,raw:n[0]+` `,checked:n[0]!==`[ ]`};e.checked=t.checked,i.loose?e.tokens[0]&&[`paragraph`,`text`].includes(e.tokens[0].type)&&`tokens`in e.tokens[0]&&e.tokens[0].tokens?(e.tokens[0].raw=t.raw+e.tokens[0].raw,e.tokens[0].text=t.raw+e.tokens[0].text,e.tokens[0].tokens.unshift(t)):e.tokens.unshift({type:`paragraph`,raw:t.raw,text:t.raw,tokens:[t]}):e.tokens.unshift(t)}}else e.task&&=!1}if(i.loose)for(let e of i.items){e.loose=!0;for(let t of e.tokens)t.type===`text`&&(t.type=`paragraph`)}return i}}html(e){let t=this.rules.block.html.exec(e);if(t){let e=U(t[0]);return{type:`html`,block:!0,raw:e,pre:t[1]===`pre`||t[1]===`script`||t[1]===`style`,text:e}}}def(e){let t=this.rules.block.def.exec(e);if(t){let e=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal,` `),n=t[2]?t[2].replace(this.rules.other.hrefBrackets,`$1`).replace(this.rules.inline.anyPunctuation,`$1`):``,r=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,`$1`):t[3];return{type:`def`,tag:e,raw:H(t[0],`
28
- `),href:n,title:r}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=V(t[1]),r=t[2].replace(this.rules.other.tableAlignChars,``).split(`|`),i=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,``).split(`
29
- `):[],a={type:`table`,raw:H(t[0],`
30
- `),header:[],align:[],rows:[]};if(n.length===r.length){for(let e of r)this.rules.other.tableAlignRight.test(e)?a.align.push(`right`):this.rules.other.tableAlignCenter.test(e)?a.align.push(`center`):this.rules.other.tableAlignLeft.test(e)?a.align.push(`left`):a.align.push(null);for(let e=0;e<n.length;e++)a.header.push({text:n[e],tokens:this.lexer.inline(n[e]),header:!0,align:a.align[e]});for(let e of i)a.rows.push(V(e,a.header.length).map((e,t)=>({text:e,tokens:this.lexer.inline(e),header:!1,align:a.align[t]})));return a}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let e=t[1].trim();return{type:`heading`,raw:H(t[0],`
22
+ `)}}return{type:`blockquote`,raw:n,tokens:i,text:r}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=e,r=()=>n.length-e.length,i=t[1].trim(),a=i.length>1,o={type:`list`,raw:``,ordered:a,start:a?+i.slice(0,-1):``,loose:!1,items:[]};i=a?`\\d{1,9}\\${i.slice(-1)}`:`\\${i}`,this.options.pedantic&&(i=a?i:`[*+-]`);let s=this.rules.other.listItemRegex(i),c=!1;for(;e;){let i=!1,a=``;if(!(t=s.exec(e))||this.rules.block.hr.test(e))break;let l=r();e=e.substring(t[0].length);let u=t[2].split(`
23
+ `,1)[0],d=t[1].length,f=this.options.pedantic?V(u,d):u.replace(this.rules.other.leadingSpaceTab,e=>V(e,d)),p=e.split(`
24
+ `,1)[0],m=!f.trim(),h=0;if(this.options.pedantic?(h=2,a=f.trimStart()):m?h=d+1:(h=f.search(this.rules.other.nonSpaceChar),h=h>4?1:h,a=f.slice(h),h+=d),m&&this.rules.other.blankLine.test(p)&&(e=e.substring(p.length+1),i=!0),!i){let t=this.rules.other.nextBulletRegex(h),n=this.rules.other.hrRegex(h),r=this.rules.other.fencesBeginRegex(h),i=this.rules.other.headingBeginRegex(h),o=this.rules.other.htmlBeginRegex(h),s=this.rules.other.blockquoteBeginRegex(h);for(;e;){let c=e.split(`
25
+ `,1)[0],l;if(p=c,this.options.pedantic?(p=p.replace(this.rules.other.listReplaceNesting,` `),l=p):l=p.replace(this.rules.other.leadingSpaceTab,e=>V(e)),r.test(p)||i.test(p)||o.test(p)||s.test(p)||t.test(p)||n.test(p))break;if(l.search(this.rules.other.nonSpaceChar)>=h||!p.trim())a+=`
26
+ `+l.slice(h);else{if(m||f.replace(this.rules.other.tabCharGlobal,` `).search(this.rules.other.nonSpaceChar)>=4||r.test(f)||i.test(f)||n.test(f))break;a+=`
27
+ `+p}m=!p.trim(),e=e.substring(c.length+1),f=l.slice(h)}}let g=n.slice(l,r());o.loose||(c?o.loose=!0:this.rules.other.doubleBlankLine.test(g)&&(c=!0)),o.items.push({type:`list_item`,raw:g,task:!!this.options.gfm&&this.rules.other.listIsTask.test(a),loose:!1,text:a,tokens:[]})}let l=o.items.at(-1);if(l)l.raw=l.raw.trimEnd(),l.text=l.text.trimEnd();else return;o.raw=n.slice(0,r()).trimEnd();for(let e of o.items)if(this.lexer.state.top=!1,e.tokens=this.lexer.blockTokens(e.text,[]),!o.loose){let t=e.tokens.filter(e=>e.type===`space`);o.loose=t.length>0&&t.some(e=>this.rules.other.anyLine.test(e.raw))}for(let e of o.items){let t=e.tokens[0];if(e.task&&(t?.type===`text`||t?.type===`paragraph`)){e.text=e.text.replace(this.rules.other.listReplaceTask,``),t.raw=t.raw.replace(this.rules.other.listReplaceTask,``),t.text=t.text.replace(this.rules.other.listReplaceTask,``);for(let e=this.lexer.inlineQueue.length-1;e>=0;e--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[e].src)){this.lexer.inlineQueue[e].src=this.lexer.inlineQueue[e].src.replace(this.rules.other.listReplaceTask,``);break}let n=this.rules.other.listTaskCheckbox.exec(e.raw);if(n){let t={type:`checkbox`,raw:n[0]+` `,checked:n[0]!==`[ ]`};e.checked=t.checked,o.loose?e.tokens[0]&&[`paragraph`,`text`].includes(e.tokens[0].type)&&`tokens`in e.tokens[0]&&e.tokens[0].tokens?(e.tokens[0].raw=t.raw+e.tokens[0].raw,e.tokens[0].text=t.raw+e.tokens[0].text,e.tokens[0].tokens.unshift(t)):e.tokens.unshift({type:`paragraph`,raw:t.raw,text:t.raw,tokens:[t]}):e.tokens.unshift(t)}}else e.task&&=!1}if(o.loose)for(let e of o.items){e.loose=!0;for(let t of e.tokens)t.type===`text`&&(t.type=`paragraph`)}return o}}html(e){let t=this.rules.block.html.exec(e);if(t){let e=R(t[0]);return{type:`html`,block:!0,raw:e,pre:t[1]===`pre`||t[1]===`script`||t[1]===`style`,text:e}}}def(e){let t=this.rules.block.def.exec(e);if(t){if(!this.rules.other.startAngleBracket.test(t[2])&&B(t[2],`()`)!==-1)return;let e=z(t[1]).replace(this.rules.other.multipleSpaceGlobal,` `),n=t[2]?t[2].replace(this.rules.other.hrefBrackets,`$1`).replace(this.rules.inline.anyPunctuation,`$1`):``,r=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,`$1`):t[3];return{type:`def`,tag:e,raw:L(t[0],`
28
+ `),href:n,title:r}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=Qe(t[1]),r=t[2].replace(this.rules.other.tableAlignChars,``).split(`|`),i=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,``).split(`
29
+ `):[],a={type:`table`,raw:L(t[0],`
30
+ `),header:[],align:[],rows:[]};if(n.length===r.length){for(let e of r)this.rules.other.tableAlignRight.test(e)?a.align.push(`right`):this.rules.other.tableAlignCenter.test(e)?a.align.push(`center`):this.rules.other.tableAlignLeft.test(e)?a.align.push(`left`):a.align.push(null);for(let e=0;e<n.length;e++)a.header.push({text:n[e],tokens:this.lexer.inline(n[e]),header:!0,align:a.align[e]});for(let e of i)a.rows.push(Qe(e,a.header.length).map((e,t)=>({text:e,tokens:this.lexer.inline(e),header:!1,align:a.align[t]})));return a}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let e=t[1].trim();return{type:`heading`,raw:L(t[0],`
31
31
  `),depth:t[2].charAt(0)===`=`?1:2,text:e,tokens:this.lexer.inline(e)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let e=t[1].charAt(t[1].length-1)===`
32
- `?t[1].slice(0,-1):t[1];return{type:`paragraph`,raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:`text`,raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:`escape`,raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:`html`,raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let e=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(e)){if(!this.rules.other.endAngleBracket.test(e))return;let t=H(e.slice(0,-1),`\\`);if((e.length-t.length)%2==0)return}else{let e=He(t[2],`()`);if(e===-2)return;if(e>-1){let n=(t[0].indexOf(`!`)===0?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,n).trim(),t[3]=``}}let n=t[2],r=``;if(this.options.pedantic){let e=this.rules.other.pedanticHrefTitle.exec(n);e&&(n=e[1],r=e[3])}else r=t[3]?t[3].slice(1,-1):``;return n=n.trim(),this.rules.other.startAngleBracket.test(n)&&(n=this.options.pedantic&&!this.rules.other.endAngleBracket.test(e)?n.slice(1):n.slice(1,-1)),W(t,{href:n&&n.replace(this.rules.inline.anyPunctuation,`$1`),title:r&&r.replace(this.rules.inline.anyPunctuation,`$1`)},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let e=t[(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal,` `).toLowerCase()];if(!e){let e=n[0].charAt(0);return{type:`text`,raw:e,text:e}}return W(n,e,n[0],this.lexer,this.rules)}}emStrong(e,t,n=``){let r=this.rules.inline.emStrongLDelim.exec(e);if(!(!r||!r[1]&&!r[2]&&!r[3]&&!r[4]||r[4]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[3])||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,a,o,s=i,c=0,l=r[0][0],u=n===l,d=l===`*`?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(d.lastIndex=0,t=t.slice(-1*e.length+i);(r=d.exec(t))!==null;){if(a=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!a)continue;if(o=[...a].length,r[3]||r[4]){s+=o;continue}if(r[5]||r[6]){if(i%3&&!((i+o)%3)){c+=o;continue}if(u)break}if(s-=o,s>0)continue;o=Math.min(o,o+s+c);let t=[...r[0]][0].length,n=e.slice(0,i+r.index+t+o);if(Math.min(i,o)%2){let e=n.slice(1,-1);return{type:`em`,raw:n,text:e,tokens:this.lexer.inlineTokens(e)}}let l=n.slice(2,-2);return{type:`strong`,raw:n,text:l,tokens:this.lexer.inlineTokens(l)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal,` `),n=this.rules.other.nonSpaceChar.test(e),r=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return n&&r&&(e=e.substring(1,e.length-1)),{type:`codespan`,raw:t[0],text:e}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:`br`,raw:t[0]}}del(e,t,n=``){let r=this.rules.inline.delLDelim.exec(e);if(r&&(!r[1]||!n||this.rules.inline.punctuation.exec(n))){let n=[...r[0]].length-1,i,a,o=n,s=this.rules.inline.delRDelim;for(s.lastIndex=0,t=t.slice(-1*e.length+n);(r=s.exec(t))!==null;){if(i=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!i||(a=[...i].length,a!==n))continue;if(r[3]||r[4]){o+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o);let t=[...r[0]][0].length,s=e.slice(0,n+r.index+t+a),c=s.slice(n,-n);return{type:`del`,raw:s,text:c,tokens:this.lexer.inlineTokens(c)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let e,n;return t[2]===`@`?(e=t[1],n=`mailto:`+e):(e=t[1],n=e),{type:`link`,raw:t[0],text:e,href:n,autolink:!0,tokens:[{type:`text`,raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,n;if(t[2]===`@`)e=t[0],n=`mailto:`+e;else{let r;do r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??``;while(r!==t[0]);e=t[0],n=t[1]===`www.`?`http://`+t[0]:t[0]}return{type:`link`,raw:t[0],text:e,href:n,autolink:!0,tokens:[{type:`text`,raw:e,text:e}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let e=this.lexer.state.inRawBlock;return{type:`text`,raw:t[0],text:t[0],escaped:e}}}},K=class e{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||s,this.options.tokenizer=this.options.tokenizer||new G,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,linkEmitted:!1,top:!0};let t={other:p,block:L.normal,inline:R.normal};this.options.pedantic?(t.block=L.pedantic,t.inline=R.pedantic):this.options.gfm&&(t.block=L.gfm,t.inline=this.options.breaks?R.breaks:R.gfm),this.tokenizer.rules=t}static get rules(){return{block:L,inline:R}}static lex(t,n){return new e(n).lex(t)}static lexInline(t,n){return new e(n).inlineTokens(t)}lex(e){e=e.replace(p.carriageReturn,`
32
+ `?t[1].slice(0,-1):t[1];return{type:`paragraph`,raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:`text`,raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:`escape`,raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:`html`,raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){if(this.lexer.state.linkParenPossible===!1)return;let t=this.rules.inline.link.exec(e);if(t){let n=t[0].charAt(0)===`!`?2:1;if(!this.options.pedantic&&U(e,t[1],n,this.rules))return;let r=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(r)){if(!this.rules.other.endAngleBracket.test(r))return;let e=L(r.slice(0,-1),`\\`);if((r.length-e.length)%2==0)return}else{let e=B(t[2],`()`);if(e===-2)return;if(e>-1){let n=(t[0].indexOf(`!`)===0?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,n).trim(),t[3]=``}}let i=t[2],a=``;if(this.options.pedantic){let e=this.rules.other.pedanticHrefTitle.exec(i);e&&(i=e[1],a=e[3])}else a=t[3]?t[3].slice(1,-1):``;return i=i.trim(),this.rules.other.startAngleBracket.test(i)&&(i=this.options.pedantic&&!this.rules.other.endAngleBracket.test(r)?i.slice(1):i.slice(1,-1)),H(t,{href:i&&i.replace(this.rules.inline.anyPunctuation,`$1`),title:a&&a.replace(this.rules.inline.anyPunctuation,`$1`)},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let r=n[0].charAt(0)===`!`?2:1;if(!this.options.pedantic&&U(e,n[1],r,this.rules))return;let i=t[z((n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal,` `))];if(!i){let e=n[0].charAt(0);return{type:`text`,raw:e,text:e}}return H(n,i,n[0],this.lexer,this.rules)}}emStrong(e,t,n=``){let r=this.rules.inline.emStrongLDelim.exec(e);if(!(!r||!r[1]&&!r[2]&&!r[3]&&!r[4]||r[4]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[3])||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,a,o,s=i,c=0,l=r[0][0],u=n===l,d=l===`*`?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(d.lastIndex=0,t=t.slice(-1*e.length+i);(r=d.exec(t))!==null;){if(a=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!a)continue;if(o=[...a].length,r[3]||r[4]){s+=o;continue}if(r[5]||r[6]){if(i%3&&!((i+o)%3)){c+=o;continue}if(u)break}if(s-=o,s>0)continue;o=Math.min(o,o+s+c);let t=[...r[0]][0].length,n=e.slice(0,i+r.index+t+o);if(Math.min(i,o)%2){let e=n.slice(1,-1);return{type:`em`,raw:n,text:e,tokens:this.lexer.inlineTokens(e)}}let l=n.slice(2,-2);return{type:`strong`,raw:n,text:l,tokens:this.lexer.inlineTokens(l)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal,` `),n=this.rules.other.nonSpaceChar.test(e),r=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return n&&r&&(e=e.substring(1,e.length-1)),{type:`codespan`,raw:t[0],text:e}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:`br`,raw:t[0]}}del(e,t,n=``){let r=this.rules.inline.delLDelim.exec(e);if(r&&(!r[1]||!n||this.rules.inline.punctuation.exec(n))){let n=[...r[0]].length-1,i,a,o=n,s=this.rules.inline.delRDelim;for(s.lastIndex=0,t=t.slice(-1*e.length+n);(r=s.exec(t))!==null;){if(i=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!i||(a=[...i].length,a!==n))continue;if(r[3]||r[4]){o+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o);let t=[...r[0]][0].length,s=e.slice(0,n+r.index+t+a),c=s.slice(n,-n);return{type:`del`,raw:s,text:c,tokens:this.lexer.inlineTokens(c)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let e,n;return t[2]===`@`?(e=t[1],n=`mailto:`+e):(e=t[1],n=e),{type:`link`,raw:t[0],text:e,href:n,autolink:!0,tokens:[{type:`text`,raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,n;if(t[2]===`@`)e=t[0],n=`mailto:`+e;else{let r;do r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??``;while(r!==t[0]);e=t[0],n=t[1]===`www.`?`http://`+t[0]:t[0]}return{type:`link`,raw:t[0],text:e,href:n,autolink:!0,tokens:[{type:`text`,raw:e,text:e}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let e=this.lexer.state.inRawBlock;return{type:`text`,raw:t[0],text:e?t[0]:Xe(t[0]),escaped:e}}}},G=class e{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||s,this.options.tokenizer=this.options.tokenizer||new W,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,linkEmitted:!1,linkParenPossible:!0,top:!0};let t={other:p,block:P.normal,inline:F.normal};this.options.pedantic?(t.block=P.pedantic,t.inline=F.pedantic):this.options.gfm&&(t.block=P.gfm,t.inline=this.options.breaks?F.breaks:F.gfm),this.tokenizer.rules=t}static get rules(){return{block:P,inline:F}}static lex(t,n){return new e(n).lex(t)}static lexInline(t,n){return new e(n).inlineTokens(t)}lex(e){e=e.replace(p.carriageReturn,`
33
33
  `),this.blockTokens(e,this.tokens);for(let e=0;e<this.inlineQueue.length;e++){let t=this.inlineQueue[e];this.inlineTokens(t.src,t.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],n=!1){this.tokenizer.lexer=this,this.options.pedantic&&(e=e.replace(p.tabCharGlobal,` `).replace(p.spaceLine,``));let r=1/0;for(;e;){if(e.length<r)r=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}let i;if(this.options.extensions?.block?.some(n=>(i=n.call({lexer:this},e,t))?(e=e.substring(i.raw.length),t.push(i),!0):!1))continue;if(i=this.tokenizer.space(e)){e=e.substring(i.raw.length);let n=t.at(-1);i.raw.length===1&&n!==void 0?n.raw+=`
34
34
  `:t.push(i);continue}if(i=this.tokenizer.code(e)){e=e.substring(i.raw.length);let n=t.at(-1);n?.type===`paragraph`||n?.type===`text`?(n.raw+=(n.raw.endsWith(`
35
35
  `)?``:`
36
36
  `)+i.raw,n.text+=`
37
- `+i.text,this.inlineQueue.at(-1).src=n.text):t.push(i);continue}if(i=this.tokenizer.fences(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.heading(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.hr(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.blockquote(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.list(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.html(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.def(e)){e=e.substring(i.raw.length);let n=t.at(-1);n?.type===`paragraph`||n?.type===`text`?(n.raw+=(n.raw.endsWith(`
37
+ `+i.text,this.inlineQueue.at(-1).src=n.text):t.push(i);continue}if((i=this.tokenizer.fences(e))||(i=this.tokenizer.heading(e))||(i=this.tokenizer.hr(e))||(i=this.tokenizer.blockquote(e))||(i=this.tokenizer.list(e))||(i=this.tokenizer.html(e))){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.def(e)){e=e.substring(i.raw.length);let n=t.at(-1);n?.type===`paragraph`||n?.type===`text`?(n.raw+=(n.raw.endsWith(`
38
38
  `)?``:`
39
39
  `)+i.raw,n.text+=`
40
- `+i.raw,this.inlineQueue.at(-1).src=n.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title},t.push(i));continue}if(i=this.tokenizer.table(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.lheading(e)){e=e.substring(i.raw.length),t.push(i);continue}let a=e;if(this.options.extensions?.startBlock){let t=1/0,n=e.slice(1),r;this.options.extensions.startBlock.forEach(e=>{r=e.call({lexer:this},n),typeof r==`number`&&r>=0&&(t=Math.min(t,r))}),t<1/0&&t>=0&&(a=e.substring(0,t+1))}if(this.state.top&&(i=this.tokenizer.paragraph(a))){let r=t.at(-1);n&&r?.type===`paragraph`?(r.raw+=(r.raw.endsWith(`
40
+ `+i.raw,this.inlineQueue.at(-1).src=n.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title},t.push(i));continue}if((i=this.tokenizer.table(e))||(i=this.tokenizer.lheading(e))){e=e.substring(i.raw.length),t.push(i);continue}let a=e;if(this.options.extensions?.startBlock){let t=1/0,n=e.slice(1),r;this.options.extensions.startBlock.forEach(e=>{r=e.call({lexer:this},n),typeof r==`number`&&r>=0&&(t=Math.min(t,r))}),t<1/0&&t>=0&&(a=e.substring(0,t+1))}if(this.state.top&&(i=this.tokenizer.paragraph(a))){let r=t.at(-1);n&&r?.type===`paragraph`?(r.raw+=(r.raw.endsWith(`
41
41
  `)?``:`
42
42
  `)+i.raw,r.text+=`
43
- `+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):t.push(i),n=a.length!==e.length,e=e.substring(i.raw.length);continue}if(i=this.tokenizer.text(e)){e=e.substring(i.raw.length);let n=t.at(-1);n?.type===`text`?(n.raw+=(n.raw.endsWith(`
43
+ `+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):t.push(i),n=a.length!==e.length,e=e.substring(i.raw.length)}else if(i=this.tokenizer.text(e)){e=e.substring(i.raw.length);let n=t.at(-1);n?.type===`text`?(n.raw+=(n.raw.endsWith(`
44
44
  `)?``:`
45
45
  `)+i.raw,n.text+=`
46
- `+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=n.text):t.push(i);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}linkInText(e){if(!e.includes(`[`))return!1;let t=this.tokenizer.rules.inline.link;for(let n of e.matchAll(this.tokenizer.rules.inline.blockSkip))if(t.test(n[0])&&e.charAt(n.index-1)!==`!`)return!0;for(let t of e.matchAll(this.tokenizer.rules.inline.reflinkSearch)){let e=t[0],n=e.lastIndexOf(`[`);if(e.charAt(0)!==`!`&&Object.hasOwn(this.tokens.links,e.slice(n+1,-1))&&!(n>1&&this.linkInText(e.slice(1,n-1))))return!0}return!1}inlineTokens(e,t=[]){this.tokenizer.lexer=this;let n=e;if(this.tokens.links&&e.includes(`[`)){let e=this.tokenizer.rules.inline.reflinkSearch,t=n=>{let r=n.lastIndexOf(`[`);if(!Object.hasOwn(this.tokens.links,n.slice(r+1,-1)))return n;if(r>1&&n.charAt(0)!==`!`){let i=n.slice(1,r-1);if(this.linkInText(i))return`[`+i.replace(e,t)+`][`+`a`.repeat(n.length-r-2)+`]`}return`[`+`a`.repeat(n.length-2)+`]`};n=n.replace(e,t)}n=n.replace(this.tokenizer.rules.inline.anyPunctuation,e=>`+`.repeat(e.length)),n=n.replace(this.tokenizer.rules.inline.blockSkip,(e,t,n)=>{let r=n?n.length:0;return e.slice(0,r)+`[`+`a`.repeat(e.length-r-2)+`]`}),n=this.options.hooks?.emStrongMask?.call({lexer:this},n)??n;let r=!1,i=``,a=1/0;for(;e;){if(e.length<a)a=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}r||(i=``),r=!1;let o;if(this.options.extensions?.inline?.some(n=>(o=n.call({lexer:this},e,t))?(e=e.substring(o.raw.length),t.push(o),!0):!1))continue;if(o=this.tokenizer.escape(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.tag(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.link(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(o.raw.length);let n=t.at(-1);o.type===`text`&&n?.type===`text`?(n.raw+=o.raw,n.text+=o.text):t.push(o);continue}if(o=this.tokenizer.emStrong(e,n,i)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.codespan(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.br(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.del(e,n,i)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.autolink(e)){e=e.substring(o.raw.length),t.push(o);continue}if(!this.state.inLink&&(o=this.tokenizer.url(e))){e=e.substring(o.raw.length),t.push(o);continue}let s=e;if(this.options.extensions?.startInline){let t=1/0,n=e.slice(1),r;this.options.extensions.startInline.forEach(e=>{r=e.call({lexer:this},n),typeof r==`number`&&r>=0&&(t=Math.min(t,r))}),t<1/0&&t>=0&&(s=e.substring(0,t+1))}if(o=this.tokenizer.inlineText(s)){e=e.substring(o.raw.length),o.raw.slice(-1)!==`_`&&(i=o.raw.slice(-1)),r=!0;let n=t.at(-1);n?.type===`text`?(n.raw+=o.raw,n.text+=o.text):t.push(o);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return t}infiniteLoopError(e){let t=`Infinite loop on byte: `+e;if(this.options.silent)console.error(t);else throw Error(t)}},q=class{options;parser;constructor(e){this.options=e||s}space(e){return``}code({text:e,lang:t,escaped:n}){let r=(t||``).match(p.notSpaceStart)?.[0],i=e?e.replace(p.endingNewline,``)+`
47
- `:``;return r?`<pre><code class="language-`+z(r)+`">`+(n?i:z(i,!0))+`</code></pre>
48
- `:`<pre><code>`+(n?i:z(i,!0))+`</code></pre>
46
+ `+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=n.text):t.push(i)}else if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}linkInText(e){if(!e.includes(`[`))return!1;let t=this.tokenizer.rules.inline.link;for(let n of e.matchAll(this.tokenizer.rules.inline.blockSkip))if(t.test(n[0])&&e.charAt(n.index-1)!==`!`)return!0;for(let t of e.matchAll(this.tokenizer.rules.inline.reflinkSearch)){let e=t[0],n=e.lastIndexOf(`[`);if(e.charAt(0)!==`!`&&Object.hasOwn(this.tokens.links,z(e.slice(n+1,-1)))&&!(n>1&&this.linkInText(e.slice(1,n-1))))return!0}return!1}inlineTokens(e,t=[]){this.tokenizer.lexer=this;let n=this.state.linkParenPossible;this.state.linkParenPossible=n&&e.includes(`)`);try{return this.#e(e,t)}finally{this.state.linkParenPossible=n}}#e(e,t){let n=e;if(this.tokens.links&&e.includes(`[`)){let e=this.tokenizer.rules.inline.reflinkSearch,t=n=>{let r=n.lastIndexOf(`[`);if(!Object.hasOwn(this.tokens.links,z(n.slice(r+1,-1))))return n;if(r>1&&n.charAt(0)!==`!`){let i=n.slice(1,r-1);if(this.linkInText(i))return`[`+i.replace(e,t)+`][`+`a`.repeat(n.length-r-2)+`]`}return`[`+`a`.repeat(n.length-2)+`]`};n=n.replace(e,t)}n=n.replace(this.tokenizer.rules.inline.anyPunctuationOutsideCode,(e,t,n)=>n?`+`.repeat(e.length):t?t+e.slice(t.length,-t.length).replace(/`/g,`+`)+t:e),n=n.replace(this.tokenizer.rules.inline.blockSkip,(e,t,n)=>{let r=n?n.length:0;return e.slice(0,r)+`[`+`a`.repeat(e.length-r-2)+`]`}),n=this.options.hooks?.emStrongMask?.call({lexer:this},n)??n;let r=!1,i=``,a=1/0;for(;e;){if(e.length<a)a=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}r||(i=``),r=!1;let o;if(this.options.extensions?.inline?.some(n=>(o=n.call({lexer:this},e,t))?(e=e.substring(o.raw.length),t.push(o),!0):!1))continue;if((o=this.tokenizer.escape(e))||(o=this.tokenizer.tag(e))||(o=this.tokenizer.link(e))){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(o.raw.length);let n=t.at(-1);o.type===`text`&&n?.type===`text`?(n.raw+=o.raw,n.text+=o.text):t.push(o);continue}if((o=this.tokenizer.emStrong(e,n,i))||(o=this.tokenizer.codespan(e))||(o=this.tokenizer.br(e))||(o=this.tokenizer.del(e,n,i))||(o=this.tokenizer.autolink(e))||!this.state.inLink&&(o=this.tokenizer.url(e))){e=e.substring(o.raw.length),t.push(o);continue}let s=e;if(this.options.extensions?.startInline){let t=1/0,n=e.slice(1),r;this.options.extensions.startInline.forEach(e=>{r=e.call({lexer:this},n),typeof r==`number`&&r>=0&&(t=Math.min(t,r))}),t<1/0&&t>=0&&(s=e.substring(0,t+1))}if(o=this.tokenizer.inlineText(s)){e=e.substring(o.raw.length),o.raw.slice(-1)!==`_`&&(i=o.raw.slice(-1)),r=!0;let n=t.at(-1);n?.type===`text`?(n.raw+=o.raw,n.text+=o.text):t.push(o)}else if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return t}infiniteLoopError(e){let t=`Infinite loop on byte: `+e;if(this.options.silent)console.error(t);else throw Error(t)}},K=class{options;parser;constructor(e){this.options=e||s}space(e){return``}code({text:e,lang:t,escaped:n}){let r=(t||``).match(p.notSpaceStart)?.[0],i=e?e.replace(p.endingNewline,``)+`
47
+ `:``;return r?`<pre><code class="language-`+I(r)+`">`+(n?i:I(i,!0))+`</code></pre>
48
+ `:`<pre><code>`+(n?i:I(i,!0))+`</code></pre>
49
49
  `}blockquote({tokens:e}){return`<blockquote>
50
50
  ${this.parser.parse(e)}</blockquote>
51
51
  `}html({text:e}){return e}def(e){return``}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>
@@ -61,48 +61,44 @@ ${this.parser.parse(e)}</blockquote>
61
61
  `}tablerow({text:e}){return`<tr>
62
62
  ${e}</tr>
63
63
  `}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?`th`:`td`;return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}>
64
- `}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${z(e,!0)}</code>`}br(e){return`<br>`}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,text:n,tokens:r,autolink:i}){let a=i?z(n,!0):this.parser.parseInline(r),o=B(e);if(o===null)return a;e=z(o,i);let s=`<a href="`+e+`"`;return t&&(s+=` title="`+z(t)+`"`),s+=`>`+a+`</a>`,s}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=B(e);if(i===null)return z(n);e=i;let a=`<img src="${z(e)}" alt="${z(n)}"`;return t&&(a+=` title="${z(t)}"`),a+=`>`,a}text(e){return`tokens`in e&&e.tokens?this.parser.parseInline(e.tokens):`escaped`in e&&e.escaped?e.text:z(e.text)}},J=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return``+e}image({text:e}){return``+e}br(){return``}checkbox({raw:e}){return e}},Y=class e{options;renderer;textRenderer;constructor(e){this.options=e||s,this.options.renderer=this.options.renderer||new q,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new J}static parse(t,n){return new e(n).parse(t)}static parseInline(t,n){return new e(n).parseInline(t)}parse(e){this.renderer.parser=this;let t=``;for(let n=0;n<e.length;n++){let r=e[n];if(this.options.extensions?.renderers?.[r.type]){let e=r,n=this.options.extensions.renderers[e.type].call({parser:this},e);if(n!==!1||![`space`,`hr`,`heading`,`code`,`table`,`blockquote`,`list`,`checkbox`,`html`,`def`,`paragraph`,`text`].includes(e.type)){t+=n||``;continue}}let i=r;switch(i.type){case`space`:t+=this.renderer.space(i);break;case`hr`:t+=this.renderer.hr(i);break;case`heading`:t+=this.renderer.heading(i);break;case`code`:t+=this.renderer.code(i);break;case`table`:t+=this.renderer.table(i);break;case`blockquote`:t+=this.renderer.blockquote(i);break;case`list`:t+=this.renderer.list(i);break;case`checkbox`:t+=this.renderer.checkbox(i);break;case`html`:t+=this.renderer.html(i);break;case`def`:t+=this.renderer.def(i);break;case`paragraph`:t+=this.renderer.paragraph(i);break;case`text`:t+=this.renderer.text(i);break;default:{let e=`Token with "`+i.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let e=this.options.extensions.renderers[i.type].call({parser:this},i);if(e!==!1||![`escape`,`html`,`link`,`image`,`checkbox`,`strong`,`em`,`codespan`,`br`,`del`,`text`].includes(i.type)){n+=e||``;continue}}let a=i;switch(a.type){case`escape`:n+=t.text(a);break;case`html`:n+=t.html(a);break;case`link`:n+=t.link(a);break;case`image`:n+=t.image(a);break;case`checkbox`:n+=t.checkbox(a);break;case`strong`:n+=t.strong(a);break;case`em`:n+=t.em(a);break;case`codespan`:n+=t.codespan(a);break;case`br`:n+=t.br(a);break;case`del`:n+=t.del(a);break;case`text`:n+=t.text(a);break;default:{let e=`Token with "`+a.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return n}},X=class{options;block;constructor(e){this.options=e||s}static passThroughHooks=new Set([`preprocess`,`postprocess`,`processAllTokens`,`emStrongMask`]);static passThroughHooksRespectAsync=new Set([`preprocess`,`postprocess`,`processAllTokens`]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?K.lex:K.lexInline}provideParser(e=this.block){return e?Y.parse:Y.parseInline}},Z=new class{defaults=o();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=Y;Renderer=q;TextRenderer=J;Lexer=K;Tokenizer=G;Hooks=X;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case`table`:{let e=r;for(let r of e.header)n=n.concat(this.walkTokens(r.tokens,t));for(let r of e.rows)for(let e of r)n=n.concat(this.walkTokens(e.tokens,t));break}case`list`:{let e=r;n=n.concat(this.walkTokens(e.items,t));break}default:{let e=r;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach(r=>{let i=e[r].flat(1/0);n=n.concat(this.walkTokens(i,t))}):e.tokens&&(n=n.concat(this.walkTokens(e.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(e=>{let n={...e};if(n.async=this.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error(`extension name required`);if(`renderer`in e){let n=t.renderers[e.name];n?t.renderers[e.name]=function(...t){let r=e.renderer.apply(this,t);return r===!1&&(r=n.apply(this,t)),r}:t.renderers[e.name]=e.renderer}if(`tokenizer`in e){if(!e.level||e.level!==`block`&&e.level!==`inline`)throw Error(`extension level must be 'block' or 'inline'`);let n=t[e.level];n?n.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&(e.level===`block`?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:e.level===`inline`&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}`childTokens`in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),n.extensions=t),e.renderer){let t=this.defaults.renderer||new q(this.defaults);for(let n in e.renderer){if(!(n in t))throw Error(`renderer '${n}' does not exist`);if([`options`,`parser`].includes(n))continue;let r=n,i=e.renderer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n||``}}n.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new G(this.defaults);for(let n in e.tokenizer){if(!(n in t))throw Error(`tokenizer '${n}' does not exist`);if([`options`,`rules`,`lexer`].includes(n))continue;let r=n,i=e.tokenizer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new X;for(let n in e.hooks){if(!(n in t))throw Error(`hook '${n}' does not exist`);if([`options`,`block`].includes(n))continue;let r=n,i=e.hooks[r],a=t[r];t[r]=X.passThroughHooks.has(n)?e=>{if(this.defaults.async&&X.passThroughHooksRespectAsync.has(n))return(async()=>{let n=await i.call(t,e);return a.call(t,n)})();let r=i.call(t,e);return a.call(t,r)}:(...e)=>{if(this.defaults.async)return(async()=>{let n=await i.apply(t,e);return n===!1&&(n=await a.apply(t,e)),n})();let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,r=e.walkTokens;n.walkTokens=function(e){let n=[];return n.push(r.call(this,e)),t&&(n=n.concat(t.call(this,e))),n}}this.defaults={...this.defaults,...n}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return K.lex(e,t??this.defaults)}parser(e,t){return Y.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},i={...this.defaults,...r},a=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return a(Error(`marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.`));if(typeof t>`u`||t===null)return a(Error(`marked(): input parameter is undefined or null`));if(typeof t!=`string`)return a(Error(`marked(): input parameter is of type `+Object.prototype.toString.call(t)+`, string expected`));if(i.hooks&&(i.hooks.options=i,i.hooks.block=e),i.async)return(async()=>{let n=i.hooks?await i.hooks.preprocess(t):t,r=await(i.hooks?await i.hooks.provideLexer(e):e?K.lex:K.lexInline)(n,i),a=i.hooks?await i.hooks.processAllTokens(r):r;i.walkTokens&&await Promise.all(this.walkTokens(a,i.walkTokens));let o=await(i.hooks?await i.hooks.provideParser(e):e?Y.parse:Y.parseInline)(a,i);return i.hooks?await i.hooks.postprocess(o):o})().catch(a);try{i.hooks&&(t=i.hooks.preprocess(t));let n=(i.hooks?i.hooks.provideLexer(e):e?K.lex:K.lexInline)(t,i);i.hooks&&(n=i.hooks.processAllTokens(n)),i.walkTokens&&this.walkTokens(n,i.walkTokens);let r=(i.hooks?i.hooks.provideParser(e):e?Y.parse:Y.parseInline)(n,i);return i.hooks&&(r=i.hooks.postprocess(r)),r}catch(e){return a(e)}}}onError(e,t){return n=>{if(n.message+=`
65
- Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error occurred:</p><pre>`+z(n.message+``,!0)+`</pre>`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}};function Q(e,t){return Z.parse(e,t)}Q.options=Q.setOptions=function(e){return Z.setOptions(e),Q.defaults=Z.defaults,c(Q.defaults),Q},Q.getDefaults=o,Q.defaults=s;function Ge(...e){return Z.use(...e),Q.defaults=Z.defaults,c(Q.defaults),Q}Q.use=Ge,Q.walkTokens=function(e,t){return Z.walkTokens(e,t)},Q.parseInline=Z.parseInline,Q.Parser=Y,Q.parser=Y.parse,Q.Renderer=q,Q.TextRenderer=J,Q.Lexer=K,Q.lexer=K.lex,Q.Tokenizer=G,Q.Hooks=X,Q.parse=Q,Q.options,Q.setOptions,Q.walkTokens,Q.parseInline,Y.parse,K.lex;function Ke(e){return[`space`,`def`,`heading`,`paragraph`,`text`,`escape`,`html`,`strong`,`em`,`del`,`codespan`,`code`,`blockquote`,`br`,`hr`,`list`,`list_item`,`checkbox`,`link`,`image`,`table`].includes(e.type)}function qe(e){try{let t=new URL(e);return t.protocol===`https:`||t.protocol===`http:`?t.href:void 0}catch{return}}function Je(e,t){let r=e=>e.map(i);function i(t){if(!Ke(t))return t.raw;let i=t;switch(i.type){case`space`:case`def`:return null;case`heading`:{let t=r(i.tokens);switch(i.depth){case 1:return e`<h1>${t}</h1>`;case 2:return e`<h2>${t}</h2>`;case 3:return e`<h3>${t}</h3>`;case 4:return e`<h4>${t}</h4>`;case 5:return e`<h5>${t}</h5>`;default:return e`<h6>${t}</h6>`}}case`paragraph`:return e`<p>${r(i.tokens)}</p>`;case`text`:return i.tokens?r(i.tokens):i.text;case`escape`:return i.text;case`html`:return i.raw;case`strong`:return e`<strong>${r(i.tokens)}</strong>`;case`em`:return e`<em>${r(i.tokens)}</em>`;case`del`:return e`<del>${r(i.tokens)}</del>`;case`codespan`:return e`<code>${i.text}</code>`;case`code`:return e`<pre><code>${i.text}</code></pre>`;case`blockquote`:return e`<blockquote>${r(i.tokens)}</blockquote>`;case`br`:return e`<br>`;case`hr`:return e`<hr>`;case`list`:return i.ordered?e`<ol start=${i.start}>${r(i.items)}</ol>`:e`<ul>${r(i.items)}</ul>`;case`list_item`:return e`<li>${r(i.tokens)}</li>`;case`checkbox`:return e`<input type="checkbox" disabled ?checked=${i.checked} aria-label="${n(`ui.main.109177cfd281`,`Task completion status`)}">`;case`link`:{let t=qe(i.href),n=r(i.tokens);return t===void 0?n:e`<a href=${t} target="_blank" rel="noreferrer noopener">${n}</a>`}case`image`:return i.text;case`table`:return e`<div class="captain-table-scroll"><table><thead><tr>${i.header.map(t=>e`<th scope="col">${r(t.tokens)}</th>`)}</tr></thead><tbody>${i.rows.map(t=>e`<tr>${t.map(t=>e`<td>${r(t.tokens)}</td>`)}</tr>`)}</tbody></table></div>`;default:return t.raw}}return r(new K({gfm:!0}).lex(t))}function Ye(e){if(e.state?.selectedMachine&&e.state.selectedMachine.id!==e.machine.id)return;let t=e.state?.selectedSession;if(!(!t||t.archived||t.pending||t.cwd!==e.workspace.path))return{id:t.id,name:t.name!==void 0&&t.name.trim()!==``?t.name:n(`ui.main.19976e58bf31`,`Session {arg0}`,{arg0:t.id.slice(0,8)})}}function Xe(e){return{running:n(`ui.main.fcb979ef0b91`,`Working`),completed:n(`ui.main.e99b48a29bdf`,`Done`),failed:n(`ui.toolExecutionView.failed`,`Failed`),interrupted:n(`ui.main.8dd5ad764e4b`,`Interrupted`)}[e]}var Ze={"Backend admitted translation":n(`ui.main.21e0dc881126`,`Backend accepted the relay request`),"Backend sent request to native companion":n(`ui.main.269ce066984c`,`Backend sent the request to the native companion extension`),"Native companion received request":n(`ui.main.2666275c64be`,`Native companion extension received the request`),"Native Pi agent running":n(`ui.main.880fe7bb6b95`,`Native Pi agent is running`),"Backend received correlated final reply":n(`ui.main.a7da535ace12`,`Backend received the final reply matching the request`),"Source reply read without changing source":n(`ui.main.0883bfa9c8ef`,`Source reply read; source session unchanged`),"Pirate conversation selected":n(`ui.main.9def3f08ac2e`,`Captain session selected`),"Backend recorded failure (not success)":n(`ui.main.157309c7e4ca`,`Backend recorded a failure, not a successful result`),"Backend saved completed roundtrip":n(`ui.main.f33a027a96b7`,`Backend saved the completed result`)},Qe={"Captain is already working.":n(`ui.main.09d17019ed2e`,`Captain is working; wait for the current relay to complete.`),"Select a source session other than the pirate conversation.":n(`ui.main.e4e81b805cf5`,`Choose another source session; the Captain session cannot relay itself.`),"Selected session is not hosted in this workspace on this machine":n(`ui.main.17dbe57aba6b`,`The selected session is not running in this workspace on the current machine.`),"Source session must be idle with no pending messages. Wait for it to finish, then translate again.":n(`ui.main.977c98d1294e`,`The source session must be idle with no pending messages. Wait for it to finish before relaying.`),"Source session has no completed assistant text reply on its active branch.":n(`ui.main.14ddd1ef21f6`,`The current source branch has no completed assistant text reply.`),"Source reply exceeds the translation limit (48000 characters).":n(`ui.main.eed449c7ce8e`,`The source reply exceeds the relay limit of 48000 characters.`),"Companion not ready or session busy; open Captain's Log in Sessions, wait for idle, then retry":n(`ui.main.c562cb9f79cb`,`The companion extension is not ready or the session is busy. Open the Captain session and wait until idle before retrying.`),"Captain request interrupted by session shutdown or reload":n(`ui.main.08ad1fcd5abc`,`Closing or reloading the session interrupted the Captain request.`),"Another prompt interfered with this Captain request; translation was not saved":n(`ui.main.ba11baa65750`,`Another prompt interfered with the Captain request; the relay result was not saved.`),"Another user message interfered with this Captain request":n(`ui.main.da152c51dbd7`,`Another user message interfered with the Captain request.`),"Captain request error":n(`ui.main.09896d6c5119`,`The Captain request encountered an error.`),"Captain request aborted":n(`ui.main.cf3f914e3924`,`The Captain request was aborted.`),"Captain request failed":n(`ui.main.b34409c59ab5`,`The Captain request failed.`),"Captain request ended without a successful final text response":n(`ui.main.e5b2393b01a1`,`The Captain request ended without a successful final text reply.`),"Captain reply exceeded the storage limit":n(`ui.main.3ea3beebb303`,`The Captain reply exceeds the storage length limit.`),"Invalid translation text":n(`ui.main.6f70b118900c`,`Invalid relay text.`),"Invalid companion reply":n(`ui.main.af43aa465d0a`,`Invalid companion extension reply.`),"Captain connection interrupted; agent work may continue in Sessions":n(`ui.main.dc807ddd54fa`,`The Captain connection was interrupted; the agent may still be working in the session.`),"No companion receipt within 5 seconds. Check package enablement/trust; inspect Sessions before retrying.":n(`ui.main.afdcdd4b929c`,`No companion acknowledgement arrived within 5 seconds. Check that the package is enabled and trusted, and inspect the session before retrying.`),"Captain request exceeded 10 minutes; agent work may continue in Sessions. No translation saved.":n(`ui.main.d2cd15752866`,`The Captain request exceeded 10 minutes. The agent may still be working; the relay result was not saved.`),"Captain's Log stopped before recording completion. Inspect the previous session before retrying. Nothing was resent automatically.":n(`ui.main.b8e0a313e94a`,`Captain's Log stopped before recording a completed result. Inspect the previous session before retrying; no request was resent automatically.`)};function $(e){return e.startsWith(`Captain could not finish this request. Inspect the session before retrying; nothing was resent automatically.
64
+ `}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${I(e,!0)}</code>`}br(e){return`<br>`}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,text:n,tokens:r,autolink:i}){let a=i?I(n,!0):this.parser.parseInline(r),o=Ze(e);if(o===null)return a;e=I(o,i);let s=`<a href="`+e+`"`;return t&&(s+=` title="`+I(t)+`"`),s+=`>`+a+`</a>`,s}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=Ze(e);if(i===null)return I(n);e=i;let a=`<img src="${I(e)}" alt="${I(n)}"`;return t&&(a+=` title="${I(t)}"`),a+=`>`,a}text(e){return`tokens`in e&&e.tokens?this.parser.parseInline(e.tokens):`escaped`in e&&e.escaped?e.text:I(e.text)}},q=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return``+e}image({text:e}){return``+e}br(){return``}checkbox({raw:e}){return e}},J=class e{options;renderer;textRenderer;constructor(e){this.options=e||s,this.options.renderer=this.options.renderer||new K,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new q}static parse(t,n){return new e(n).parse(t)}static parseInline(t,n){return new e(n).parseInline(t)}parse(e){this.renderer.parser=this;let t=``;for(let n=0;n<e.length;n++){let r=e[n];if(this.options.extensions?.renderers?.[r.type]){let e=r,n=this.options.extensions.renderers[e.type].call({parser:this},e);if(n!==!1||![`space`,`hr`,`heading`,`code`,`table`,`blockquote`,`list`,`checkbox`,`html`,`def`,`paragraph`,`text`].includes(e.type)){t+=n||``;continue}}let i=r;switch(i.type){case`space`:t+=this.renderer.space(i);break;case`hr`:t+=this.renderer.hr(i);break;case`heading`:t+=this.renderer.heading(i);break;case`code`:t+=this.renderer.code(i);break;case`table`:t+=this.renderer.table(i);break;case`blockquote`:t+=this.renderer.blockquote(i);break;case`list`:t+=this.renderer.list(i);break;case`checkbox`:t+=this.renderer.checkbox(i);break;case`html`:t+=this.renderer.html(i);break;case`def`:t+=this.renderer.def(i);break;case`paragraph`:t+=this.renderer.paragraph(i);break;case`text`:t+=this.renderer.text(i);break;default:{let e=`Token with "`+i.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let e=this.options.extensions.renderers[i.type].call({parser:this},i);if(e!==!1||![`escape`,`html`,`link`,`image`,`checkbox`,`strong`,`em`,`codespan`,`br`,`del`,`text`].includes(i.type)){n+=e||``;continue}}let a=i;switch(a.type){case`escape`:n+=t.text(a);break;case`html`:n+=t.html(a);break;case`link`:n+=t.link(a);break;case`image`:n+=t.image(a);break;case`checkbox`:n+=t.checkbox(a);break;case`strong`:n+=t.strong(a);break;case`em`:n+=t.em(a);break;case`codespan`:n+=t.codespan(a);break;case`br`:n+=t.br(a);break;case`del`:n+=t.del(a);break;case`text`:n+=t.text(a);break;default:{let e=`Token with "`+a.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return n}},Y=class{options;block;constructor(e){this.options=e||s}static passThroughHooks=new Set([`preprocess`,`postprocess`,`processAllTokens`,`emStrongMask`]);static passThroughHooksRespectAsync=new Set([`preprocess`,`postprocess`,`processAllTokens`]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?G.lex:G.lexInline}provideParser(e=this.block){return e?J.parse:J.parseInline}};function X(e,t){if(Array.isArray(t))for(let n=0;n<t.length;n++)e.push(t[n]);else e.push(t)}var Z=new class{defaults=o();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=J;Renderer=K;TextRenderer=q;Lexer=G;Tokenizer=W;Hooks=Y;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(X(n,t.call(this,r)),r.type){case`table`:{let e=r;for(let r of e.header)X(n,this.walkTokens(r.tokens,t));for(let r of e.rows)for(let e of r)X(n,this.walkTokens(e.tokens,t));break}case`list`:{let e=r;X(n,this.walkTokens(e.items,t));break}default:{let e=r;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach(r=>{let i=e[r].flat(1/0);X(n,this.walkTokens(i,t))}):e.tokens&&X(n,this.walkTokens(e.tokens,t))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(e=>{let n={...e};if(n.async=this.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error(`extension name required`);if(`renderer`in e){let n=t.renderers[e.name];n?t.renderers[e.name]=function(...t){let r=e.renderer.apply(this,t);return r===!1&&(r=n.apply(this,t)),r}:t.renderers[e.name]=e.renderer}if(`tokenizer`in e){if(!e.level||e.level!==`block`&&e.level!==`inline`)throw Error(`extension level must be 'block' or 'inline'`);let n=t[e.level];n?n.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&(e.level===`block`?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:e.level===`inline`&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}`childTokens`in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),n.extensions=t),e.renderer){let t=this.defaults.renderer||new K(this.defaults);for(let n in e.renderer){if(!(n in t))throw Error(`renderer '${n}' does not exist`);if([`options`,`parser`].includes(n))continue;let r=n,i=e.renderer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n||``}}n.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new W(this.defaults);for(let n in e.tokenizer){if(!(n in t))throw Error(`tokenizer '${n}' does not exist`);if([`options`,`rules`,`lexer`].includes(n))continue;let r=n,i=e.tokenizer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new Y;for(let n in e.hooks){if(!(n in t))throw Error(`hook '${n}' does not exist`);if([`options`,`block`].includes(n))continue;let r=n,i=e.hooks[r],a=t[r];t[r]=Y.passThroughHooks.has(n)?e=>{if(this.defaults.async&&Y.passThroughHooksRespectAsync.has(n))return(async()=>{let n=await i.call(t,e);return a.call(t,n)})();let r=i.call(t,e);return a.call(t,r)}:(...e)=>{if(this.defaults.async)return(async()=>{let n=await i.apply(t,e);return n===!1&&(n=await a.apply(t,e)),n})();let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,r=e.walkTokens;n.walkTokens=function(e){let n=[];return n.push(r.call(this,e)),t&&X(n,t.call(this,e)),n}}this.defaults={...this.defaults,...n}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return G.lex(e,t??this.defaults)}parser(e,t){return J.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},i={...this.defaults,...r},a=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return a(Error(`marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.`));if(typeof t>`u`||t===null)return a(Error(`marked(): input parameter is undefined or null`));if(typeof t!=`string`)return a(Error(`marked(): input parameter is of type `+Object.prototype.toString.call(t)+`, string expected`));if(i.hooks&&(i.hooks.options=i,i.hooks.block=e),i.async)return(async()=>{let n=i.hooks?await i.hooks.preprocess(t):t,r=await(i.hooks?await i.hooks.provideLexer(e):e?G.lex:G.lexInline)(n,i),a=i.hooks?await i.hooks.processAllTokens(r):r;i.walkTokens&&await Promise.all(this.walkTokens(a,i.walkTokens));let o=await(i.hooks?await i.hooks.provideParser(e):e?J.parse:J.parseInline)(a,i);return i.hooks?await i.hooks.postprocess(o):o})().catch(a);try{i.hooks&&(t=i.hooks.preprocess(t));let n=(i.hooks?i.hooks.provideLexer(e):e?G.lex:G.lexInline)(t,i);i.hooks&&(n=i.hooks.processAllTokens(n)),i.walkTokens&&this.walkTokens(n,i.walkTokens);let r=(i.hooks?i.hooks.provideParser(e):e?J.parse:J.parseInline)(n,i);return i.hooks&&(r=i.hooks.postprocess(r)),r}catch(e){return a(e)}}}onError(e,t){return n=>{if(n.message+=`
65
+ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error occurred:</p><pre>`+I(n.message+``,!0)+`</pre>`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}};function Q(e,t){return Z.parse(e,t)}Q.options=Q.setOptions=function(e){return Z.setOptions(e),Q.defaults=Z.defaults,c(Q.defaults),Q},Q.getDefaults=o,Q.defaults=s;function et(...e){return Z.use(...e),Q.defaults=Z.defaults,c(Q.defaults),Q}Q.use=et,Q.walkTokens=function(e,t){return Z.walkTokens(e,t)},Q.parseInline=Z.parseInline,Q.Parser=J,Q.parser=J.parse,Q.Renderer=K,Q.TextRenderer=q,Q.Lexer=G,Q.lexer=G.lex,Q.Tokenizer=W,Q.Hooks=Y,Q.parse=Q,Q.options,Q.setOptions,Q.walkTokens,Q.parseInline,J.parse,G.lex;function tt(e){return[`space`,`def`,`heading`,`paragraph`,`text`,`escape`,`html`,`strong`,`em`,`del`,`codespan`,`code`,`blockquote`,`br`,`hr`,`list`,`list_item`,`checkbox`,`link`,`image`,`table`].includes(e.type)}function nt(e){try{let t=new URL(e);return t.protocol===`https:`||t.protocol===`http:`?t.href:void 0}catch{return}}function rt(e,t){let r=e=>e.map(i);function i(t){if(!tt(t))return t.raw;let i=t;switch(i.type){case`space`:case`def`:return null;case`heading`:{let t=r(i.tokens);switch(i.depth){case 1:return e`<h1>${t}</h1>`;case 2:return e`<h2>${t}</h2>`;case 3:return e`<h3>${t}</h3>`;case 4:return e`<h4>${t}</h4>`;case 5:return e`<h5>${t}</h5>`;default:return e`<h6>${t}</h6>`}}case`paragraph`:return e`<p>${r(i.tokens)}</p>`;case`text`:return i.tokens?r(i.tokens):i.text;case`escape`:return i.text;case`html`:return i.raw;case`strong`:return e`<strong>${r(i.tokens)}</strong>`;case`em`:return e`<em>${r(i.tokens)}</em>`;case`del`:return e`<del>${r(i.tokens)}</del>`;case`codespan`:return e`<code>${i.text}</code>`;case`code`:return e`<pre><code>${i.text}</code></pre>`;case`blockquote`:return e`<blockquote>${r(i.tokens)}</blockquote>`;case`br`:return e`<br>`;case`hr`:return e`<hr>`;case`list`:return i.ordered?e`<ol start=${i.start}>${r(i.items)}</ol>`:e`<ul>${r(i.items)}</ul>`;case`list_item`:return e`<li>${r(i.tokens)}</li>`;case`checkbox`:return e`<input type="checkbox" disabled ?checked=${i.checked} aria-label="${n(`ui.main.109177cfd281`,`Task completion status`)}">`;case`link`:{let t=nt(i.href),n=r(i.tokens);return t===void 0?n:e`<a href=${t} target="_blank" rel="noreferrer noopener">${n}</a>`}case`image`:return i.text;case`table`:return e`<div class="captain-table-scroll"><table><thead><tr>${i.header.map(t=>e`<th scope="col">${r(t.tokens)}</th>`)}</tr></thead><tbody>${i.rows.map(t=>e`<tr>${t.map(t=>e`<td>${r(t.tokens)}</td>`)}</tr>`)}</tbody></table></div>`;default:return t.raw}}return r(new G({gfm:!0}).lex(t))}function it(e){if(e.state?.selectedMachine&&e.state.selectedMachine.id!==e.machine.id)return;let t=e.state?.selectedSession;if(!(!t||t.archived||t.pending||t.cwd!==e.workspace.path))return{id:t.id,name:t.name!==void 0&&t.name.trim()!==``?t.name:n(`ui.main.19976e58bf31`,`Session {arg0}`,{arg0:t.id.slice(0,8)})}}function at(e){return{running:n(`ui.main.fcb979ef0b91`,`Working`),completed:n(`ui.main.e99b48a29bdf`,`Done`),failed:n(`ui.toolExecutionView.failed`,`Failed`),interrupted:n(`ui.main.8dd5ad764e4b`,`Interrupted`)}[e]}var ot={"Backend admitted translation":n(`ui.main.21e0dc881126`,`Backend accepted the relay request`),"Backend sent request to native companion":n(`ui.main.269ce066984c`,`Backend sent the request to the native companion extension`),"Native companion received request":n(`ui.main.2666275c64be`,`Native companion extension received the request`),"Native Pi agent running":n(`ui.main.880fe7bb6b95`,`Native Pi agent is running`),"Backend received correlated final reply":n(`ui.main.a7da535ace12`,`Backend received the final reply matching the request`),"Source reply read without changing source":n(`ui.main.0883bfa9c8ef`,`Source reply read; source session unchanged`),"Pirate conversation selected":n(`ui.main.9def3f08ac2e`,`Captain session selected`),"Backend recorded failure (not success)":n(`ui.main.157309c7e4ca`,`Backend recorded a failure, not a successful result`),"Backend saved completed roundtrip":n(`ui.main.f33a027a96b7`,`Backend saved the completed result`)},st={"Captain is already working.":n(`ui.main.09d17019ed2e`,`Captain is working; wait for the current relay to complete.`),"Select a source session other than the pirate conversation.":n(`ui.main.e4e81b805cf5`,`Choose another source session; the Captain session cannot relay itself.`),"Selected session is not hosted in this workspace on this machine":n(`ui.main.17dbe57aba6b`,`The selected session is not running in this workspace on the current machine.`),"Source session must be idle with no pending messages. Wait for it to finish, then translate again.":n(`ui.main.977c98d1294e`,`The source session must be idle with no pending messages. Wait for it to finish before relaying.`),"Source session has no completed assistant text reply on its active branch.":n(`ui.main.14ddd1ef21f6`,`The current source branch has no completed assistant text reply.`),"Source reply exceeds the translation limit (48000 characters).":n(`ui.main.eed449c7ce8e`,`The source reply exceeds the relay limit of 48000 characters.`),"Companion not ready or session busy; open Captain's Log in Sessions, wait for idle, then retry":n(`ui.main.c562cb9f79cb`,`The companion extension is not ready or the session is busy. Open the Captain session and wait until idle before retrying.`),"Captain request interrupted by session shutdown or reload":n(`ui.main.08ad1fcd5abc`,`Closing or reloading the session interrupted the Captain request.`),"Another prompt interfered with this Captain request; translation was not saved":n(`ui.main.ba11baa65750`,`Another prompt interfered with the Captain request; the relay result was not saved.`),"Another user message interfered with this Captain request":n(`ui.main.da152c51dbd7`,`Another user message interfered with the Captain request.`),"Captain request error":n(`ui.main.09896d6c5119`,`The Captain request encountered an error.`),"Captain request aborted":n(`ui.main.cf3f914e3924`,`The Captain request was aborted.`),"Captain request failed":n(`ui.main.b34409c59ab5`,`The Captain request failed.`),"Captain request ended without a successful final text response":n(`ui.main.e5b2393b01a1`,`The Captain request ended without a successful final text reply.`),"Captain reply exceeded the storage limit":n(`ui.main.3ea3beebb303`,`The Captain reply exceeds the storage length limit.`),"Invalid translation text":n(`ui.main.6f70b118900c`,`Invalid relay text.`),"Invalid companion reply":n(`ui.main.af43aa465d0a`,`Invalid companion extension reply.`),"Captain connection interrupted; agent work may continue in Sessions":n(`ui.main.dc807ddd54fa`,`The Captain connection was interrupted; the agent may still be working in the session.`),"No companion receipt within 5 seconds. Check package enablement/trust; inspect Sessions before retrying.":n(`ui.main.afdcdd4b929c`,`No companion acknowledgement arrived within 5 seconds. Check that the package is enabled and trusted, and inspect the session before retrying.`),"Captain request exceeded 10 minutes; agent work may continue in Sessions. No translation saved.":n(`ui.main.d2cd15752866`,`The Captain request exceeded 10 minutes. The agent may still be working; the relay result was not saved.`),"Captain's Log stopped before recording completion. Inspect the previous session before retrying. Nothing was resent automatically.":n(`ui.main.b8e0a313e94a`,`Captain's Log stopped before recording a completed result. Inspect the previous session before retrying; no request was resent automatically.`)};function $(e){return e.startsWith(`Captain could not finish this request. Inspect the session before retrying; nothing was resent automatically.
66
66
  `)?n(`ui.main.250d9fb3b162`,`Captain could not complete the request. Inspect the session before retrying; no request was resent automatically.
67
- {arg0}`,{arg0:$(e.slice(110))}):Qe[e.startsWith(`Error: `)?e.slice(7):e]??e}function $e(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}function et(e,t){let r=t.entries.some(e=>e.status===`running`),i=t.source!==void 0&&t.entries.some(e=>e.sessionId===t.source?.id),a=!t.connected||t.connecting||t.pending||r||!t.source||i,o=t.selected,s=o?.sourceSessionId,c=t.connecting?n(`ui.main.9d02d121573c`,`Connecting…`):t.connected?t.pending?n(`ui.main.482617a8c265`,`Fetching the last reply…`):r?n(`ui.main.c13e5f4963ff`,`The captain is translating…`):t.source?i?n(`ui.main.80a96f7d125e`,`Select a different session — this one is the pirate.`):n(`ui.main.12fc65d7525d`,`Ready to translate`):n(`ui.main.3c86e23d60ea`,`Select a session in this workspace first.`):n(`ui.main.570f6d331cce`,`Connection lost`);return e`<style>${tt}</style>
67
+ {arg0}`,{arg0:$(e.slice(110))}):st[e.startsWith(`Error: `)?e.slice(7):e]??e}function ct(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}function lt(e,t){let r=t.entries.some(e=>e.status===`running`),i=t.source!==void 0&&t.entries.some(e=>e.sessionId===t.source?.id),a=!t.connected||t.connecting||t.pending||r||!t.source||i,o=t.selected,s=o?.sourceSessionId,c=t.connecting?n(`ui.main.9d02d121573c`,`Connecting…`):t.connected?t.pending?n(`ui.main.482617a8c265`,`Fetching the last reply…`):r?n(`ui.main.c13e5f4963ff`,`The captain is translating…`):t.source?i?n(`ui.main.80a96f7d125e`,`Select a different session — this one is the pirate.`):n(`ui.main.12fc65d7525d`,`Ready to translate`):n(`ui.main.3c86e23d60ea`,`Select a session in this workspace first.`):n(`ui.main.570f6d331cce`,`Connection lost`);return e`<style>${ut}</style>
68
68
  <section class="captains-log" aria-label="${n(`ui.main.40c450439267`,`Captain's Log`)}">
69
69
  <div class="captain-heading"><h2>${n(`ui.main.e841f99d77f0`,`Captain's Log`)}</h2><p class="muted">${n(`ui.main.1c3532df737d`,`Have a dramatic pirate captain relay the last reply.`)}</p></div>
70
70
  <div class="captain-source"><span class="muted">${n(`ui.main.84521ab1f774`,`Selected session`)}</span><strong>${t.source?.name??n(`ui.sessionList.noSessionSelected`,`No session selected`)}</strong></div>
71
- <button class="captain-primary" ?disabled=${a} @click=${t.onTranslate}>${n(`ui.main.09ee4046866f`,`Let the Captain tell it`)}</button>
71
+ <button class="captain-primary ui-button ui-button--primary" ?disabled=${a} @click=${t.onTranslate}>${n(`ui.main.09ee4046866f`,`Let the Captain tell it`)}</button>
72
72
  <p class="captain-status" role="status" aria-live="polite">${c}
73
- ${!t.connected&&!t.connecting?e`<button @click=${t.onReconnect}>${n(`ui.main.bac95e1e52fe`,`Reconnect`)}</button>`:null}
73
+ ${!t.connected&&!t.connecting?e`<button class="ui-button" @click=${t.onReconnect}>${n(`ui.main.bac95e1e52fe`,`Reconnect`)}</button>`:null}
74
74
  </p>
75
75
  ${!t.connected&&!t.connecting?e`<p class="captain-notice">${n(`ui.main.3c3a8d4bb0ab`,`Reconnect to see the result. The captain may still be working; your request will not be sent again.`)}</p>`:null}
76
76
  ${t.notice!==void 0&&t.notice!==``?e`<p class="captain-notice" role="alert">${$(t.notice)}</p>`:null}
77
77
  ${o?e`<article class="captain-reply" aria-label="${n(`ui.main.e572c45a01a6`,`Pirate translation`)}">
78
- <div class="captain-reply-heading"><strong>${o.status===`running`?n(`ui.main.a3e678a94720`,`Translating…`):o.id===t.entries[0]?.id?n(`ui.main.aa1bf7a5ddbe`,`Last translation`):n(`ui.main.91515d50cc9e`,`Earlier translation`)}</strong><time datetime=${o.createdAt}>${$e(o.createdAt)}</time></div>
79
- ${o.status===`completed`?e`<div class="captain-answer">${o.text?Je(e,o.text):n(`ui.main.648d8128e3c7`,`Receiving the captain's reply…`)}</div>`:o.status===`running`?e`<p class="muted">${n(`ui.main.c61214cbad46`,`Reading the source reply and turning it into pirate. No message is sent to the source conversation.`)}</p>`:e`<div class="captain-notice" role="alert"><strong>${o.status===`interrupted`?n(`ui.main.8ac60a0f0b8e`,`Translation interrupted`):n(`ui.main.fe0e672c27d4`,`Couldn't translate that reply`)}</strong><p>${$(o.text)||n(`ui.main.72a4ca9f0124`,`Check Diagnostics for details, then try again when the session is ready.`)}</p></div>`}
80
- ${s!==void 0&&s!==``?e`<button @click=${()=>{t.onOpenSource(s)}}>${n(`ui.main.58ea40f79134`,`Open source session`)}</button>`:null}
78
+ <div class="captain-reply-heading"><strong>${o.status===`running`?n(`ui.main.a3e678a94720`,`Translating…`):o.id===t.entries[0]?.id?n(`ui.main.aa1bf7a5ddbe`,`Last translation`):n(`ui.main.91515d50cc9e`,`Earlier translation`)}</strong><time datetime=${o.createdAt}>${ct(o.createdAt)}</time></div>
79
+ ${o.status===`completed`?e`<div class="captain-answer">${o.text?rt(e,o.text):n(`ui.main.648d8128e3c7`,`Receiving the captain's reply…`)}</div>`:o.status===`running`?e`<p class="muted">${n(`ui.main.c61214cbad46`,`Reading the source reply and turning it into pirate. No message is sent to the source conversation.`)}</p>`:e`<div class="captain-notice" role="alert"><strong>${o.status===`interrupted`?n(`ui.main.8ac60a0f0b8e`,`Translation interrupted`):n(`ui.main.fe0e672c27d4`,`Couldn't translate that reply`)}</strong><p>${$(o.text)||n(`ui.main.72a4ca9f0124`,`Check Diagnostics for details, then try again when the session is ready.`)}</p></div>`}
80
+ ${s!==void 0&&s!==``?e`<button class="ui-button" @click=${()=>{t.onOpenSource(s)}}>${n(`ui.main.58ea40f79134`,`Open source session`)}</button>`:null}
81
81
  </article>`:e`<p class="captain-empty muted">${n(`ui.main.34a6d480c665`,`Pick a conversation, then translate its latest finished assistant reply. The original stays untouched.`)}</p>`}
82
82
  <div class="captain-secondary">
83
83
  ${t.entries.length>1?e`<details><summary>${n(`ui.main.91515d50cc9e`,`Earlier translation`)} <span class="muted">(${t.entries.length})</span></summary>
84
84
  <div class="captain-history">${t.entries.map(r=>e`<button class=${r.id===o?.id?`selected`:``} ?disabled=${!t.connected} @click=${()=>{t.onRead(r.id)}}>
85
- <span>${$e(r.createdAt)} · ${r.status===`completed`?n(`ui.main.9f66d2a4d6f7`,`Translated`):r.status===`running`?n(`ui.main.fcb979ef0b91`,`Working`):n(`ui.main.b61b08aec3a9`,`Not completed`)}</span>
85
+ <span>${ct(r.createdAt)} · ${r.status===`completed`?n(`ui.main.9f66d2a4d6f7`,`Translated`):r.status===`running`?n(`ui.main.fcb979ef0b91`,`Working`):n(`ui.main.b61b08aec3a9`,`Not completed`)}</span>
86
86
  </button>`)}</div>
87
87
  </details>`:null}
88
88
  <details class="captain-diagnostics"><summary>${n(`ui.main.e0b478941707`,`Diagnostics`)}</summary>
89
89
  <p>${$(t.status)}</p>
90
90
  ${o?e`<dl><dt>${n(`bundled.info.machine.ece969`,`Machine`)}</dt><dd>${t.machineName}</dd><dt>${n(`ui.main.b92dc0c2297a`,`Source session`)}</dt><dd>${o.sourceSessionId??n(`bundled.updates.unknown.4d8c1c`,`Unknown`)}</dd><dt>${n(`ui.main.62b811ff4549`,`Pirate session`)}</dt><dd>${o.sessionId||n(`ui.main.db03d9974969`,`Not created`)}</dd><dt>${n(`ui.main.926f6b6b6a93`,`Request`)}</dt><dd>${o.id}</dd></dl>
91
- <p>${o.question===`Translate last reply`?n(`ui.main.fc69d95b95b3`,`Relay the last reply`):o.question}</p><ol>${o.stages.map(t=>e`<li>${Ze[t]??t}</li>`)}</ol>`:null}
91
+ <p>${o.question===`Translate last reply`?n(`ui.main.fc69d95b95b3`,`Relay the last reply`):o.question}</p><ol>${o.stages.map(t=>e`<li>${ot[t]??t}</li>`)}</ol>`:null}
92
92
  </details>
93
93
  <p class="captain-footnote muted">${n(`ui.main.8dbbd44d148a`,`Uses your configured model. Reuses the pirate while it's available; otherwise starts one automatically.`)}</p>
94
94
  </div>
95
- </section>`}var tt=`
95
+ </section>`}var ut=`
96
96
  captains-log-lifetime { display: block; min-width: 0; }
97
97
  .captains-log { box-sizing: border-box; padding: 16px; min-width: 0; color: inherit; font: inherit; line-height: 1.5; }
98
98
  .captains-log *, .captains-log *::before, .captains-log *::after { box-sizing: border-box; }
99
99
  .captains-log h2, .captains-log p { margin: 0; }
100
100
  .captains-log h2 { font-size: 15px; }
101
- .captains-log button { font: inherit; }
102
- .captains-log button:hover:not(:disabled) { background: var(--pi-surface-hover); }
103
- .captains-log button:disabled { opacity: .5; cursor: not-allowed; }
104
- .captains-log button:focus-visible, .captains-log summary:focus-visible { outline: 2px solid var(--pi-accent); outline-offset: 2px; }
105
- .captains-log .captain-primary { border-color: var(--pi-accent-border); background: var(--pi-selection-bg); padding: 8px 12px; }
101
+ .captains-log summary:focus-visible { outline: 2px solid var(--pi-accent); outline-offset: 2px; }
106
102
  .captains-log .captain-source { display: grid; gap: 3px; margin: 18px 0 12px; padding: 10px 12px; background: var(--pi-surface); border: 1px solid var(--pi-border-muted); border-radius: 8px; overflow-wrap: anywhere; }
107
103
  .captains-log .captain-source span { font-size: 11px; }
108
104
  .captains-log .captain-status { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 10px 0 16px; color: var(--pi-muted); font-size: 12px; }
@@ -138,10 +134,10 @@ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error
138
134
  .captains-log summary { cursor: pointer; color: var(--pi-muted); }
139
135
  .captains-log details p { margin: 8px 0; overflow-wrap: anywhere; }
140
136
  .captains-log .captain-history { display: grid; gap: 6px; padding-top: 8px; }
141
- .captains-log .captain-history button { text-align: left; min-width: 0; }
137
+ .captains-log .captain-history button { justify-content: flex-start; text-align: left; min-width: 0; }
142
138
  .captains-log dl { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 10px; font-size: 11px; }
143
139
  .captains-log dd { margin: 0; overflow-wrap: anywhere; }
144
140
  .captains-log .captain-footnote { font-size: 11px; margin-top: 10px; }
145
- `;function nt(e){if(typeof e!=`object`||!e||!(`type`in e))return!1;switch(e.type){case`entry`:return`entry`in e&&a(e.entry)&&`saved`in e&&typeof e.saved==`boolean`;case`text`:return`id`in e&&typeof e.id==`string`&&i.test(e.id)&&`text`in e&&typeof e.text==`string`&&e.text.length<=4e3;case`admitted`:return`requestId`in e&&typeof e.requestId==`string`&&i.test(e.requestId)&&`id`in e&&typeof e.id==`string`&&i.test(e.id);case`rejected`:return`requestId`in e&&typeof e.requestId==`string`&&i.test(e.requestId)&&`message`in e&&typeof e.message==`string`;default:return!1}}var rt={apiVersion:4,name:n(`ui.main.40c450439267`,`Captain's Log`),activate({html:e,runtimePluginId:i,lifetimeSignal:o,translate:s}){t(s),customElements.get(`captains-log-lifetime`)||customElements.define(`captains-log-lifetime`,class extends HTMLElement{mount;unmount;currentScope;set scope(e){e!==this.currentScope&&(this.currentScope=e,this.isConnected&&queueMicrotask(()=>{this.isConnected&&this.mount?.()}))}connectedCallback(){queueMicrotask(()=>{this.isConnected&&this.mount?.()})}disconnectedCallback(){this.unmount?.()}});let c=new Map,l;function u(e){e.revision++,e.controller?.abort(),e.channel?.close(),delete e.channel,delete e.controller,e.connecting=!1,e.pending!==void 0&&(e.status=n(`ui.main.f396b70620bc`,`Channel closed. Admission is uncertain; reconnect before retrying. Questions are never resent automatically.`))}let d=()=>{for(let e of c.values())u(e)};o.addEventListener(`abort`,d,{once:!0});function f(e){let t=JSON.stringify([e.machine.id,e.workspace.projectId,e.workspace.id]),r=c.get(t);return r||(r={entries:[],status:n(`ui.main.b53dd9c80b8e`,`Connecting to Captain's Log…`),connecting:!1,revision:0,readRevision:0,updates:new Map},c.set(t,r)),l!==r&&(l&&u(l),l=r),r}function p(e,t){e.updates.set(t.id,t),e.entries=[t,...e.entries.filter(e=>e.id!==t.id)].sort((e,t)=>t.createdAt.localeCompare(e.createdAt)),(!e.selected||e.selected.id===t.id||t.status===`running`)&&(e.selected?.id!==t.id&&e.readRevision++,e.selected=t)}async function m(e,t,r){let i=t.revision,s=++t.readRevision,c=t.updates.get(r);try{if(!e.peer?.request)throw Error(n(`ui.main.1f43dcbac9b1`,`Captain saved records unavailable`));let l=await e.peer.request(`read`,r,{signal:t.controller?.signal??o});if(i!==t.revision||s!==t.readRevision||o.aborted)return;if(!a(l))throw Error(n(`ui.main.66223db3b219`,`Invalid Captain record`));let u=t.updates.get(r)===c?l:t.updates.get(r)??l;t.selected=u,t.updates.set(r,u),t.entries=t.entries.map(e=>e.id===r?u:e),e.host.requestRender()}catch(n){if(i!==t.revision||s!==t.readRevision||o.aborted)return;t.status=String(n),e.host.requestRender()}}async function h(e,t){if(t.channel||t.connecting||o.aborted)return;u(t);let i=t.revision,s=new AbortController;t.controller=s,t.connecting=!0,t.updates.clear();let c=()=>i===t.revision&&!s.signal.aborted&&!o.aborted;t.status=n(`ui.main.b53dd9c80b8e`,`Connecting to Captain's Log…`),e.host.requestRender();try{if(!e.peer?.openChannel||!e.peer.request)throw Error(n(`ui.main.8c0382b8ace3`,`Captain backend channels unavailable on this machine`));let i=await e.peer.openChannel(`log`,null,{signal:s.signal,onData(i){if(c()){if(!nt(i)){t.status=n(`ui.main.009b398507ef`,`Invalid Captain channel frame`),u(t),e.host.requestRender();return}if(i.type===`admitted`&&i.requestId===t.pending)delete t.pending,t.status=n(`ui.main.39c27a5c621c`,`The backend accepted {arg0}; acceptance is not completion.`,{arg0:i.id});else if(i.type===`rejected`&&i.requestId===t.pending)delete t.pending,t.status=i.message,t.notice=i.message;else if(i.type===`entry`)p(t,i.entry),t.status=i.saved&&i.entry.status!==`running`?n(`ui.main.ba9cee805bff`,`The backend saved the result with status {arg0}.`,{arg0:Xe(i.entry.status)}):n(`ui.main.330b2b9daff1`,`Captain's Log is receiving progress.`);else if(i.type===`text`){let e=t.updates.get(i.id);if(e){let n={...e,text:(e.text+i.text).slice(0,r)};t.updates.set(i.id,n),t.entries=t.entries.map(e=>e.id===i.id?n:e),t.selected?.id===i.id&&(t.selected=n)}}e.host.requestRender()}}});if(!c()){i.close();return}t.channel=i,i.closed.then(r=>{c()&&(u(t),t.status=n(`ui.main.59bb9b623aa3`,`{arg0}. Request acceptance may be uncertain; reconnect to restore saved state. Requests are not resent automatically.`,{arg0:r.error?.message??n(`ui.main.5de098bdc01f`,`Channel closed`)}),e.host.requestRender())});let o=await e.peer.request(`list`,null,{signal:s.signal});if(!c())return;if(!Array.isArray(o)||!o.every(a))throw Error(n(`ui.main.e18b3550af5f`,`Invalid Captain snapshot`));t.entries=[...t.updates.values(),...o.filter(e=>e.sourceSessionId!==void 0&&!t.updates.has(e.id))].sort((e,t)=>t.createdAt.localeCompare(e.createdAt)),delete t.pending;let l=t.selected?.id??t.entries[0]?.id;if(l!==void 0&&t.entries.some(e=>e.id===l)){let n=t.updates.get(l);n?t.selected=n:await m(e,t,l)}else delete t.selected;if(!c())return;t.status=n(`ui.main.a1fa58242a2e`,`Connected. Live updates arrive from the backend.`),delete t.notice,t.connecting=!1,e.host.requestRender()}catch(r){if(!c())return;u(t),t.status=n(`ui.main.b74852b31c3b`,`{arg0}. Reconnect manually; the relay request has not been resent.`,{arg0:String(r)}),e.host.requestRender()}}function g(e,t){let r=Ye(e);if(!r||!t.channel||t.connecting||t.pending!==void 0||o.aborted||t.entries.some(e=>e.status===`running`||e.sessionId===r.id))return;t.pending=crypto.randomUUID(),delete t.notice,t.status=n(`ui.main.f0eb1567fb8f`,`Relay for source session {arg0} is queued, awaiting backend acceptance.`,{arg0:r.id});let i={type:`translate`,requestId:t.pending,sourceSessionId:r.id};try{t.channel.send(i)}catch(e){u(t),t.status=n(`ui.main.737a9ae0b915`,`{arg0}. Request acceptance is uncertain; reconnect before retrying.`,{arg0:String(e)})}e.host.requestRender()}return{contributions:{actions:[{id:`summon`,title:n(`ui.main.77d215cd18a6`,`Open pirate translator`),group:n(`ui.main.40c450439267`,`Captain's Log`),enabled:({state:e})=>!!e.selectedWorkspace,run:({selectWorkspaceTool:e})=>{e(`${i}:log`)}}],workspacePanels:[{id:`log`,title:n(`ui.main.40c450439267`,`Captain's Log`),render(t){let n=f(t),r=Ye(t);return e`<captains-log-lifetime .mount=${()=>{h(t,n)}} .unmount=${()=>{u(n)}} .scope=${n}>
146
- ${et(e,{...n,connected:n.channel!==void 0&&t.peer?.openChannel!==void 0,pending:n.pending!==void 0,machineName:t.machine.name,...r?{source:r}:{},onTranslate(){g(t,n)},onReconnect(){h(t,n)},onRead(e){m(t,n,e)},onOpenSource(e){t.navigate({machineId:t.machine.id,projectId:t.workspace.projectId,workspaceId:t.workspace.id,sessionId:e,view:`chat`})}})}
147
- </captains-log-lifetime>`}}]},dispose(){d(),o.removeEventListener(`abort`,d),c.clear()}}}};export{rt as default};
141
+ `;function dt(e){if(typeof e!=`object`||!e||!(`type`in e))return!1;switch(e.type){case`entry`:return`entry`in e&&a(e.entry)&&`saved`in e&&typeof e.saved==`boolean`;case`text`:return`id`in e&&typeof e.id==`string`&&i.test(e.id)&&`text`in e&&typeof e.text==`string`&&e.text.length<=4e3;case`admitted`:return`requestId`in e&&typeof e.requestId==`string`&&i.test(e.requestId)&&`id`in e&&typeof e.id==`string`&&i.test(e.id);case`rejected`:return`requestId`in e&&typeof e.requestId==`string`&&i.test(e.requestId)&&`message`in e&&typeof e.message==`string`;default:return!1}}var ft={pluginId:`pi-web`,id:`stylesheet-integration`,version:1,parse(e){if(!pt(e))throw Error(`Invalid PI WEB stylesheet integration capability v1`);return e}};function pt(e){return typeof e==`object`&&!!e&&`registerRoot`in e&&typeof e.registerRoot==`function`&&`subscribe`in e&&typeof e.subscribe==`function`&&`createController`in e&&typeof e.createController==`function`}var mt={apiVersion:4,name:n(`ui.main.40c450439267`,`Captain's Log`),requires:[ft],activate({html:e,runtimePluginId:i,lifetimeSignal:o,translate:s}){t(s);let c;customElements.get(`captains-log-lifetime`)||customElements.define(`captains-log-lifetime`,class extends HTMLElement{mount;unmount;currentScope;integration;releaseStyles;set stylesheetIntegration(e){this.integration!==e&&(this.releaseStyles?.(),this.releaseStyles=void 0,this.integration=e,this.registerStyles())}registerStyles(){if(!this.isConnected||this.releaseStyles!==void 0)return;let e=this.getRootNode();e instanceof ShadowRoot&&(this.releaseStyles=this.integration?.registerRoot(e,{sharedUi:!0}))}set scope(e){e!==this.currentScope&&(this.currentScope=e,this.isConnected&&queueMicrotask(()=>{this.isConnected&&this.mount?.()}))}connectedCallback(){this.registerStyles(),queueMicrotask(()=>{this.isConnected&&this.mount?.()})}disconnectedCallback(){this.releaseStyles?.(),this.releaseStyles=void 0,this.unmount?.()}});let l=new Map,u;function d(e){e.revision++,e.controller?.abort(),e.channel?.close(),delete e.channel,delete e.controller,e.connecting=!1,e.pending!==void 0&&(e.status=n(`ui.main.f396b70620bc`,`Channel closed. Admission is uncertain; reconnect before retrying. Questions are never resent automatically.`))}let f=()=>{for(let e of l.values())d(e)};o.addEventListener(`abort`,f,{once:!0});function p(e){let t=JSON.stringify([e.machine.id,e.workspace.projectId,e.workspace.id]),r=l.get(t);return r||(r={entries:[],status:n(`ui.main.b53dd9c80b8e`,`Connecting to Captain's Log…`),connecting:!1,revision:0,readRevision:0,updates:new Map},l.set(t,r)),u!==r&&(u&&d(u),u=r),r}function m(e,t){e.updates.set(t.id,t),e.entries=[t,...e.entries.filter(e=>e.id!==t.id)].sort((e,t)=>t.createdAt.localeCompare(e.createdAt)),e.selected&&e.selected.id!==t.id&&t.status!==`running`||(e.selected?.id!==t.id&&e.readRevision++,e.selected=t)}async function h(e,t,r){let i=t.revision,s=++t.readRevision,c=t.updates.get(r);try{if(!e.peer?.request)throw Error(n(`ui.main.1f43dcbac9b1`,`Captain saved records unavailable`));let l=await e.peer.request(`read`,r,{signal:t.controller?.signal??o});if(i!==t.revision||s!==t.readRevision||o.aborted)return;if(!a(l))throw Error(n(`ui.main.66223db3b219`,`Invalid Captain record`));let u=t.updates.get(r)===c?l:t.updates.get(r)??l;t.selected=u,t.updates.set(r,u),t.entries=t.entries.map(e=>e.id===r?u:e),e.host.requestRender()}catch(n){if(i!==t.revision||s!==t.readRevision||o.aborted)return;t.status=String(n),e.host.requestRender()}}async function g(e,t){if(t.channel||t.connecting||o.aborted)return;d(t);let i=t.revision,s=new AbortController;t.controller=s,t.connecting=!0,t.updates.clear();let c=()=>i===t.revision&&!s.signal.aborted&&!o.aborted;t.status=n(`ui.main.b53dd9c80b8e`,`Connecting to Captain's Log…`),e.host.requestRender();try{if(!e.peer?.openChannel||!e.peer.request)throw Error(n(`ui.main.8c0382b8ace3`,`Captain backend channels unavailable on this machine`));let i=await e.peer.openChannel(`log`,null,{signal:s.signal,onData(i){if(c()){if(!dt(i))t.status=n(`ui.main.009b398507ef`,`Invalid Captain channel frame`),d(t),e.host.requestRender();else{if(i.type===`admitted`&&i.requestId===t.pending)delete t.pending,t.status=n(`ui.main.39c27a5c621c`,`The backend accepted {arg0}; acceptance is not completion.`,{arg0:i.id});else if(i.type===`rejected`&&i.requestId===t.pending)delete t.pending,t.status=i.message,t.notice=i.message;else if(i.type===`entry`)m(t,i.entry),t.status=i.saved&&i.entry.status!==`running`?n(`ui.main.ba9cee805bff`,`The backend saved the result with status {arg0}.`,{arg0:at(i.entry.status)}):n(`ui.main.330b2b9daff1`,`Captain's Log is receiving progress.`);else if(i.type===`text`){let e=t.updates.get(i.id);if(e){let n={...e,text:(e.text+i.text).slice(0,r)};t.updates.set(i.id,n),t.entries=t.entries.map(e=>e.id===i.id?n:e),t.selected?.id===i.id&&(t.selected=n)}}e.host.requestRender()}}}});if(!c()){i.close();return}t.channel=i,i.closed.then(r=>{c()&&(d(t),t.status=n(`ui.main.59bb9b623aa3`,`{arg0}. Request acceptance may be uncertain; reconnect to restore saved state. Requests are not resent automatically.`,{arg0:r.error?.message??n(`ui.main.5de098bdc01f`,`Channel closed`)}),e.host.requestRender())});let o=await e.peer.request(`list`,null,{signal:s.signal});if(!c())return;if(!Array.isArray(o)||!o.every(a))throw Error(n(`ui.main.e18b3550af5f`,`Invalid Captain snapshot`));t.entries=[...t.updates.values(),...o.filter(e=>e.sourceSessionId!==void 0&&!t.updates.has(e.id))].sort((e,t)=>t.createdAt.localeCompare(e.createdAt)),delete t.pending;let l=t.selected?.id??t.entries[0]?.id;if(l!==void 0&&t.entries.some(e=>e.id===l)){let n=t.updates.get(l);n?t.selected=n:await h(e,t,l)}else delete t.selected;if(!c())return;t.status=n(`ui.main.a1fa58242a2e`,`Connected. Live updates arrive from the backend.`),delete t.notice,t.connecting=!1,e.host.requestRender()}catch(r){if(!c())return;d(t),t.status=n(`ui.main.b74852b31c3b`,`{arg0}. Reconnect manually; the relay request has not been resent.`,{arg0:String(r)}),e.host.requestRender()}}function _(e,t){let r=it(e);if(!r||!t.channel||t.connecting||t.pending!==void 0||o.aborted||t.entries.some(e=>e.status===`running`||e.sessionId===r.id))return;t.pending=crypto.randomUUID(),delete t.notice,t.status=n(`ui.main.f0eb1567fb8f`,`Relay for source session {arg0} is queued, awaiting backend acceptance.`,{arg0:r.id});let i={type:`translate`,requestId:t.pending,sourceSessionId:r.id};try{t.channel.send(i)}catch(e){d(t),t.status=n(`ui.main.737a9ae0b915`,`{arg0}. Request acceptance is uncertain; reconnect before retrying.`,{arg0:String(e)})}e.host.requestRender()}return{start({capabilities:e}){c=e.resolve(ft)},contributions:{actions:[{id:`summon`,title:n(`ui.main.77d215cd18a6`,`Open pirate translator`),group:n(`ui.main.40c450439267`,`Captain's Log`),enabled:({state:e})=>!!e.selectedWorkspace,run:({selectWorkspaceTool:e})=>{e(`${i}:log`)}}],workspacePanels:[{id:`log`,title:n(`ui.main.40c450439267`,`Captain's Log`),render(t){let n=p(t),r=it(t);return e`<captains-log-lifetime .stylesheetIntegration=${c} .mount=${()=>{g(t,n)}} .unmount=${()=>{d(n)}} .scope=${n}>
142
+ ${lt(e,{...n,connected:n.channel!==void 0&&t.peer?.openChannel!==void 0,pending:n.pending!==void 0,machineName:t.machine.name,...r?{source:r}:{},onTranslate(){_(t,n)},onReconnect(){g(t,n)},onRead(e){h(t,n,e)},onOpenSource(e){t.navigate({machineId:t.machine.id,projectId:t.workspace.projectId,workspaceId:t.workspace.id,sessionId:e,view:`chat`})}})}
143
+ </captains-log-lifetime>`}}]},dispose(){f(),o.removeEventListener(`abort`,f),l.clear()}}}};export{mt as default};
@@ -70,9 +70,9 @@ export function renderCaptainPanel(html, view) {
70
70
  <section class="captains-log" aria-label="${t("ui.main.40c450439267", "Captain's Log")}">
71
71
  <div class="captain-heading"><h2>${t("ui.main.e841f99d77f0", "Captain's Log")}</h2><p class="muted">${t("ui.main.1c3532df737d", "Have a dramatic pirate captain relay the last reply.")}</p></div>
72
72
  <div class="captain-source"><span class="muted">${t("ui.main.84521ab1f774", "Selected session")}</span><strong>${view.source?.name ?? t("ui.sessionList.noSessionSelected", "No session selected")}</strong></div>
73
- <button class="captain-primary" ?disabled=${disabled} @click=${view.onTranslate}>${t("ui.main.09ee4046866f", "Let the Captain tell it")}</button>
73
+ <button class="captain-primary ui-button ui-button--primary" ?disabled=${disabled} @click=${view.onTranslate}>${t("ui.main.09ee4046866f", "Let the Captain tell it")}</button>
74
74
  <p class="captain-status" role="status" aria-live="polite">${status}
75
- ${!view.connected && !view.connecting ? html `<button @click=${view.onReconnect}>${t("ui.main.bac95e1e52fe", "Reconnect")}</button>` : null}
75
+ ${!view.connected && !view.connecting ? html `<button class="ui-button" @click=${view.onReconnect}>${t("ui.main.bac95e1e52fe", "Reconnect")}</button>` : null}
76
76
  </p>
77
77
  ${!view.connected && !view.connecting ? html `<p class="captain-notice">${t("ui.main.3c3a8d4bb0ab", "Reconnect to see the result. The captain may still be working; your request will not be sent again.")}</p>` : null}
78
78
  ${view.notice !== undefined && view.notice !== "" ? html `<p class="captain-notice" role="alert">${displayCaptainError(view.notice)}</p>` : null}
@@ -81,7 +81,7 @@ export function renderCaptainPanel(html, view) {
81
81
  ${selected.status === "completed" ? html `<div class="captain-answer">${selected.text ? renderCaptainMarkdown(html, selected.text) : t("ui.main.648d8128e3c7", "Receiving the captain's reply…")}</div>`
82
82
  : selected.status === "running" ? html `<p class="muted">${t("ui.main.c61214cbad46", "Reading the source reply and turning it into pirate. No message is sent to the source conversation.")}</p>`
83
83
  : html `<div class="captain-notice" role="alert"><strong>${selected.status === "interrupted" ? t("ui.main.8ac60a0f0b8e", "Translation interrupted") : t("ui.main.fe0e672c27d4", "Couldn't translate that reply")}</strong><p>${displayCaptainError(selected.text) || t("ui.main.72a4ca9f0124", "Check Diagnostics for details, then try again when the session is ready.")}</p></div>`}
84
- ${sourceSessionId !== undefined && sourceSessionId !== "" ? html `<button @click=${() => { view.onOpenSource(sourceSessionId); }}>${t("ui.main.58ea40f79134", "Open source session")}</button>` : null}
84
+ ${sourceSessionId !== undefined && sourceSessionId !== "" ? html `<button class="ui-button" @click=${() => { view.onOpenSource(sourceSessionId); }}>${t("ui.main.58ea40f79134", "Open source session")}</button>` : null}
85
85
  </article>` : html `<p class="captain-empty muted">${t("ui.main.34a6d480c665", "Pick a conversation, then translate its latest finished assistant reply. The original stays untouched.")}</p>`}
86
86
  <div class="captain-secondary">
87
87
  ${view.entries.length > 1 ? html `<details><summary>${t("ui.main.91515d50cc9e", "Earlier translation")} <span class="muted">(${view.entries.length})</span></summary>
@@ -98,18 +98,14 @@ export function renderCaptainPanel(html, view) {
98
98
  </div>
99
99
  </section>`;
100
100
  }
101
- // Light DOM inherits workspace typography/buttons. Extra rules are package-scoped and use host themes.
101
+ // Content layout stays package-scoped; native buttons use the host UI styles capability.
102
102
  const styles = `
103
103
  captains-log-lifetime { display: block; min-width: 0; }
104
104
  .captains-log { box-sizing: border-box; padding: 16px; min-width: 0; color: inherit; font: inherit; line-height: 1.5; }
105
105
  .captains-log *, .captains-log *::before, .captains-log *::after { box-sizing: border-box; }
106
106
  .captains-log h2, .captains-log p { margin: 0; }
107
107
  .captains-log h2 { font-size: 15px; }
108
- .captains-log button { font: inherit; }
109
- .captains-log button:hover:not(:disabled) { background: var(--pi-surface-hover); }
110
- .captains-log button:disabled { opacity: .5; cursor: not-allowed; }
111
- .captains-log button:focus-visible, .captains-log summary:focus-visible { outline: 2px solid var(--pi-accent); outline-offset: 2px; }
112
- .captains-log .captain-primary { border-color: var(--pi-accent-border); background: var(--pi-selection-bg); padding: 8px 12px; }
108
+ .captains-log summary:focus-visible { outline: 2px solid var(--pi-accent); outline-offset: 2px; }
113
109
  .captains-log .captain-source { display: grid; gap: 3px; margin: 18px 0 12px; padding: 10px 12px; background: var(--pi-surface); border: 1px solid var(--pi-border-muted); border-radius: 8px; overflow-wrap: anywhere; }
114
110
  .captains-log .captain-source span { font-size: 11px; }
115
111
  .captains-log .captain-status { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 10px 0 16px; color: var(--pi-muted); font-size: 12px; }
@@ -145,7 +141,7 @@ const styles = `
145
141
  .captains-log summary { cursor: pointer; color: var(--pi-muted); }
146
142
  .captains-log details p { margin: 8px 0; overflow-wrap: anywhere; }
147
143
  .captains-log .captain-history { display: grid; gap: 6px; padding-top: 8px; }
148
- .captains-log .captain-history button { text-align: left; min-width: 0; }
144
+ .captains-log .captain-history button { justify-content: flex-start; text-align: left; min-width: 0; }
149
145
  .captains-log dl { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 10px; font-size: 11px; }
150
146
  .captains-log dd { margin: 0; overflow-wrap: anywhere; }
151
147
  .captains-log .captain-footnote { font-size: 11px; margin-top: 10px; }
@@ -14,7 +14,7 @@ export default function companion(pi) {
14
14
  pi.on("before_agent_start", (event) => {
15
15
  if (!active)
16
16
  return;
17
- if (!active.started && event.prompt === active.prompt) {
17
+ if (!active.started && "prompt" in event && event.prompt === active.prompt) {
18
18
  active.started = true;
19
19
  if (event.prompt === PIRATE_INTRO)
20
20
  pi.appendEntry(PIRATE_MARKER, {});
@@ -8,14 +8,14 @@
8
8
  "files": ["dist", "src", "docs", "test", "tsconfig.json", "vite.config.mjs"],
9
9
  "scripts": { "build": "tsc -p tsconfig.json && vite build", "test": "node --test test/*.test.mjs" },
10
10
  "dependencies": {
11
- "marked": "^18.0.6"
11
+ "marked": "^18.1.1"
12
12
  },
13
13
  "devDependencies": {
14
14
  "@chainingintention/pi-web-cn": "^1.202609.1",
15
- "@earendil-works/pi-coding-agent": "^0.87.0",
16
- "@types/node": "^24.13.3",
15
+ "@earendil-works/pi-coding-agent": "1.3.0",
16
+ "@types/node": "^24.19.2",
17
17
  "typescript": "^6.0.3",
18
- "vite": "^8.1.4"
18
+ "vite": "^8.3.4"
19
19
  },
20
20
  "peerDependencies": {
21
21
  "@earendil-works/pi-coding-agent": "*",