@deepseek-harness-tui/dsh-tui 0.15.0 → 0.16.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 (301) hide show
  1. package/README.md +92 -5
  2. package/guide/dsh-tui-guide/codex-backend.en.md +13 -3
  3. package/guide/dsh-tui-guide/codex-backend.md +9 -2
  4. package/guide/dsh-tui-guide/configuration.en.md +39 -2
  5. package/guide/dsh-tui-guide/configuration.md +34 -2
  6. package/guide/dsh-tui-guide/getting-started.en.md +15 -0
  7. package/guide/dsh-tui-guide/getting-started.md +15 -0
  8. package/guide/dsh-tui-guide/interaction.en.md +8 -1
  9. package/guide/dsh-tui-guide/interaction.md +8 -1
  10. package/guide/dsh-tui-guide/plugins.en.md +66 -5
  11. package/guide/dsh-tui-guide/plugins.md +37 -3
  12. package/guide/dsh-tui-guide/user-guide.en.md +3 -2
  13. package/guide/dsh-tui-guide/user-guide.md +3 -2
  14. package/lib/settings.json +1 -1
  15. package/lib/types/adapter/channel/projection.d.ts.map +1 -1
  16. package/lib/types/adapter/channel/projection.js +1 -0
  17. package/lib/types/adapter/channel/ui-policy.d.ts +1 -1
  18. package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -1
  19. package/lib/types/adapter/channel/ui-policy.js +1 -0
  20. package/lib/types/adapter/ports/channel-catalog.d.ts +5 -1
  21. package/lib/types/adapter/ports/channel-catalog.d.ts.map +1 -1
  22. package/lib/types/adapter/ports/channel-settings.d.ts +5 -3
  23. package/lib/types/adapter/ports/channel-settings.d.ts.map +1 -1
  24. package/lib/types/adapter/ports/channel-ui.d.ts +7 -1
  25. package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -1
  26. package/lib/types/adapter/ports/channel-view.d.ts +47 -0
  27. package/lib/types/adapter/ports/channel-view.d.ts.map +1 -1
  28. package/lib/types/adapter/ports/channel.d.ts +2 -0
  29. package/lib/types/adapter/ports/channel.d.ts.map +1 -1
  30. package/lib/types/agent/events.d.ts +3 -2
  31. package/lib/types/agent/events.d.ts.map +1 -1
  32. package/lib/types/backends/codex/contract.d.ts +3 -0
  33. package/lib/types/backends/codex/contract.d.ts.map +1 -1
  34. package/lib/types/backends/codex/contract.js +3 -0
  35. package/lib/types/backends/codex/session/async-questions.d.ts +17 -0
  36. package/lib/types/backends/codex/session/async-questions.d.ts.map +1 -0
  37. package/lib/types/backends/codex/session/async-questions.js +89 -0
  38. package/lib/types/backends/codex/session/session.d.ts.map +1 -1
  39. package/lib/types/backends/codex/session/session.js +35 -9
  40. package/lib/types/backends/codex/text.d.ts +3 -3
  41. package/lib/types/backends/codex/text.js +1 -1
  42. package/lib/types/backends/codex/translate/items.d.ts.map +1 -1
  43. package/lib/types/backends/codex/translate/items.js +3 -1
  44. package/lib/types/backends/codex/translate/question-reply.d.ts +11 -0
  45. package/lib/types/backends/codex/translate/question-reply.d.ts.map +1 -0
  46. package/lib/types/backends/codex/translate/question-reply.js +53 -0
  47. package/lib/types/channel/projection.d.ts.map +1 -1
  48. package/lib/types/channel/projection.js +10 -0
  49. package/lib/types/commands.d.ts +10 -0
  50. package/lib/types/commands.d.ts.map +1 -1
  51. package/lib/types/commands.js +11 -2
  52. package/lib/types/components/CommandSuggestions.d.ts.map +1 -1
  53. package/lib/types/components/CommandSuggestions.js +4 -1
  54. package/lib/types/components/LogoV2.d.ts +4 -1
  55. package/lib/types/components/LogoV2.d.ts.map +1 -1
  56. package/lib/types/components/LogoV2.js +5 -3
  57. package/lib/types/components/MessageList.d.ts.map +1 -1
  58. package/lib/types/components/MessageList.js +95 -14
  59. package/lib/types/components/PermissionsPicker.d.ts +10 -1
  60. package/lib/types/components/PermissionsPicker.d.ts.map +1 -1
  61. package/lib/types/components/PermissionsPicker.js +24 -16
  62. package/lib/types/components/PluginInstallPane.d.ts +21 -0
  63. package/lib/types/components/PluginInstallPane.d.ts.map +1 -0
  64. package/lib/types/components/PluginInstallPane.js +84 -0
  65. package/lib/types/components/PluginManagePane.d.ts +21 -0
  66. package/lib/types/components/PluginManagePane.d.ts.map +1 -0
  67. package/lib/types/components/PluginManagePane.js +69 -0
  68. package/lib/types/components/PromptInput.d.ts.map +1 -1
  69. package/lib/types/components/PromptInput.js +7 -3
  70. package/lib/types/components/SubagentCard.d.ts +13 -1
  71. package/lib/types/components/SubagentCard.d.ts.map +1 -1
  72. package/lib/types/components/SubagentCard.js +27 -12
  73. package/lib/types/components/SubagentDashboard.d.ts +8 -1
  74. package/lib/types/components/SubagentDashboard.d.ts.map +1 -1
  75. package/lib/types/components/SubagentDashboard.js +58 -16
  76. package/lib/types/components/launchpadLayout.d.ts +14 -1
  77. package/lib/types/components/launchpadLayout.d.ts.map +1 -1
  78. package/lib/types/components/launchpadLayout.js +36 -17
  79. package/lib/types/components/messages/TeamMessageBubble.d.ts +20 -0
  80. package/lib/types/components/messages/TeamMessageBubble.d.ts.map +1 -0
  81. package/lib/types/components/messages/TeamMessageBubble.js +15 -0
  82. package/lib/types/components/sidePanel/PanelHost.d.ts.map +1 -1
  83. package/lib/types/components/sidePanel/PanelHost.js +5 -1
  84. package/lib/types/components/sidePanel/PanelStore.d.ts +8 -0
  85. package/lib/types/components/sidePanel/PanelStore.d.ts.map +1 -1
  86. package/lib/types/components/sidePanel/PanelStore.js +11 -0
  87. package/lib/types/components/sidePanel/SidePanelColumn.d.ts.map +1 -1
  88. package/lib/types/components/sidePanel/SidePanelColumn.js +13 -1
  89. package/lib/types/components/sidePanel/SidePanelRuntimeContext.d.ts +7 -0
  90. package/lib/types/components/sidePanel/SidePanelRuntimeContext.d.ts.map +1 -1
  91. package/lib/types/components/sidePanel/SidePanelRuntimeContext.js +4 -0
  92. package/lib/types/components/sidePanel/btw/BtwComposer.d.ts +3 -0
  93. package/lib/types/components/sidePanel/btw/BtwComposer.d.ts.map +1 -1
  94. package/lib/types/components/sidePanel/btw/BtwComposer.js +20 -8
  95. package/lib/types/components/sidePanel/btw/BtwPanelAdapter.d.ts +2 -1
  96. package/lib/types/components/sidePanel/btw/BtwPanelAdapter.d.ts.map +1 -1
  97. package/lib/types/components/sidePanel/btw/BtwPanelAdapter.js +104 -13
  98. package/lib/types/components/sidePanel/btw/BtwThreadScene.d.ts +6 -2
  99. package/lib/types/components/sidePanel/btw/BtwThreadScene.d.ts.map +1 -1
  100. package/lib/types/components/sidePanel/btw/BtwThreadScene.js +61 -15
  101. package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts +14 -4
  102. package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts.map +1 -1
  103. package/lib/types/components/sidePanel/btw/BtwThreadView.js +90 -5
  104. package/lib/types/components/sidePanel/btw/threads.d.ts +18 -0
  105. package/lib/types/components/sidePanel/btw/threads.d.ts.map +1 -1
  106. package/lib/types/components/sidePanel/btw/threads.js +51 -0
  107. package/lib/types/components/sidePanel/builtinPanels.d.ts.map +1 -1
  108. package/lib/types/components/sidePanel/builtinPanels.js +5 -1
  109. package/lib/types/components/sidePanel/companion/SplashMascot.d.ts +5 -1
  110. package/lib/types/components/sidePanel/companion/SplashMascot.d.ts.map +1 -1
  111. package/lib/types/components/sidePanel/companion/SplashMascot.js +19 -4
  112. package/lib/types/components/sidePanel/companion/skins.d.ts +8 -0
  113. package/lib/types/components/sidePanel/companion/skins.d.ts.map +1 -1
  114. package/lib/types/components/sidePanel/companion/skins.js +57 -12
  115. package/lib/types/components/sidePanel/types.d.ts +6 -0
  116. package/lib/types/components/sidePanel/types.d.ts.map +1 -1
  117. package/lib/types/components/splashArtRows.d.ts +29 -0
  118. package/lib/types/components/splashArtRows.d.ts.map +1 -0
  119. package/lib/types/components/splashArtRows.js +31 -0
  120. package/lib/types/components/teamRoster.d.ts +70 -0
  121. package/lib/types/components/teamRoster.d.ts.map +1 -0
  122. package/lib/types/components/teamRoster.js +78 -0
  123. package/lib/types/dsh-adapter/admission-loader.d.ts +82 -0
  124. package/lib/types/dsh-adapter/admission-loader.d.ts.map +1 -1
  125. package/lib/types/dsh-adapter/admission-loader.js +73 -28
  126. package/lib/types/dsh-adapter/agent-view.d.ts.map +1 -1
  127. package/lib/types/dsh-adapter/agent-view.js +3 -1
  128. package/lib/types/dsh-adapter/approvals.d.ts +7 -0
  129. package/lib/types/dsh-adapter/approvals.d.ts.map +1 -1
  130. package/lib/types/dsh-adapter/approvals.js +45 -1
  131. package/lib/types/dsh-adapter/backend/translate.d.ts.map +1 -1
  132. package/lib/types/dsh-adapter/backend/translate.js +68 -8
  133. package/lib/types/dsh-adapter/backend-assembly.d.ts +31 -0
  134. package/lib/types/dsh-adapter/backend-assembly.d.ts.map +1 -0
  135. package/lib/types/dsh-adapter/backend-assembly.js +225 -0
  136. package/lib/types/dsh-adapter/backend-contribution.d.ts +36 -0
  137. package/lib/types/dsh-adapter/backend-contribution.d.ts.map +1 -1
  138. package/lib/types/dsh-adapter/backend-contribution.js +41 -0
  139. package/lib/types/dsh-adapter/backend-registry.d.ts.map +1 -1
  140. package/lib/types/dsh-adapter/backend-registry.js +22 -3
  141. package/lib/types/dsh-adapter/backends.d.ts.map +1 -1
  142. package/lib/types/dsh-adapter/backends.js +4 -5
  143. package/lib/types/dsh-adapter/bundled-presets.d.ts.map +1 -1
  144. package/lib/types/dsh-adapter/bundled-presets.js +60 -3
  145. package/lib/types/dsh-adapter/channel/binding-events.d.ts +1 -0
  146. package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -1
  147. package/lib/types/dsh-adapter/channel/binding-events.js +1 -0
  148. package/lib/types/dsh-adapter/channel/command-completions.d.ts.map +1 -1
  149. package/lib/types/dsh-adapter/channel/command-completions.js +64 -7
  150. package/lib/types/dsh-adapter/channel/compaction.d.ts +7 -2
  151. package/lib/types/dsh-adapter/channel/compaction.d.ts.map +1 -1
  152. package/lib/types/dsh-adapter/channel/compaction.js +100 -26
  153. package/lib/types/dsh-adapter/channel/core/binding-feed.d.ts +3 -0
  154. package/lib/types/dsh-adapter/channel/core/binding-feed.d.ts.map +1 -1
  155. package/lib/types/dsh-adapter/channel/core/binding-feed.js +2 -1
  156. package/lib/types/dsh-adapter/channel/core/compose.d.ts.map +1 -1
  157. package/lib/types/dsh-adapter/channel/core/compose.js +12 -0
  158. package/lib/types/dsh-adapter/channel/extensions.d.ts.map +1 -1
  159. package/lib/types/dsh-adapter/channel/extensions.js +68 -8
  160. package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts +6 -0
  161. package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts.map +1 -1
  162. package/lib/types/dsh-adapter/channel/mode-permission-actions.js +104 -12
  163. package/lib/types/dsh-adapter/channel/model-actions.d.ts.map +1 -1
  164. package/lib/types/dsh-adapter/channel/model-actions.js +8 -1
  165. package/lib/types/dsh-adapter/channel/permissions.d.ts.map +1 -1
  166. package/lib/types/dsh-adapter/channel/permissions.js +4 -1
  167. package/lib/types/dsh-adapter/channel/projection-helpers.d.ts.map +1 -1
  168. package/lib/types/dsh-adapter/channel/projection-helpers.js +2 -0
  169. package/lib/types/dsh-adapter/channel/session-metadata.d.ts.map +1 -1
  170. package/lib/types/dsh-adapter/channel/session-metadata.js +4 -3
  171. package/lib/types/dsh-adapter/channel/session-reset.js +2 -2
  172. package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -1
  173. package/lib/types/dsh-adapter/channel/session-resume.js +7 -0
  174. package/lib/types/dsh-adapter/channel/settings-host.d.ts +3 -0
  175. package/lib/types/dsh-adapter/channel/settings-host.d.ts.map +1 -1
  176. package/lib/types/dsh-adapter/channel/settings-host.js +135 -5
  177. package/lib/types/dsh-adapter/channel/state.d.ts +6 -0
  178. package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -1
  179. package/lib/types/dsh-adapter/channel/subagent-projection.d.ts.map +1 -1
  180. package/lib/types/dsh-adapter/channel/subagent-projection.js +18 -6
  181. package/lib/types/dsh-adapter/channel/transcript.d.ts +7 -0
  182. package/lib/types/dsh-adapter/channel/transcript.d.ts.map +1 -1
  183. package/lib/types/dsh-adapter/channel/transcript.js +19 -2
  184. package/lib/types/dsh-adapter/compat/agent-team-0.2.0.d.ts +55 -0
  185. package/lib/types/dsh-adapter/compat/agent-team-0.2.0.d.ts.map +1 -0
  186. package/lib/types/dsh-adapter/compat/agent-team-0.2.0.js +96 -0
  187. package/lib/types/dsh-adapter/contract.d.ts +4 -4
  188. package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
  189. package/lib/types/dsh-adapter/contract.js +5 -5
  190. package/lib/types/dsh-adapter/effect-ledger.d.ts +7 -0
  191. package/lib/types/dsh-adapter/effect-ledger.d.ts.map +1 -1
  192. package/lib/types/dsh-adapter/effect-ledger.js +8 -1
  193. package/lib/types/dsh-adapter/entry-slot.d.ts +3 -1
  194. package/lib/types/dsh-adapter/entry-slot.d.ts.map +1 -1
  195. package/lib/types/dsh-adapter/entry-slot.js +2 -2
  196. package/lib/types/dsh-adapter/fresh-agent.d.ts.map +1 -1
  197. package/lib/types/dsh-adapter/fresh-agent.js +6 -1
  198. package/lib/types/dsh-adapter/host-access.d.ts.map +1 -1
  199. package/lib/types/dsh-adapter/host-access.js +95 -0
  200. package/lib/types/dsh-adapter/host-contract.d.ts +1 -1
  201. package/lib/types/dsh-adapter/host-contract.d.ts.map +1 -1
  202. package/lib/types/dsh-adapter/host-contract.js +3 -2
  203. package/lib/types/dsh-adapter/host-dsh.d.ts +8 -2
  204. package/lib/types/dsh-adapter/host-dsh.d.ts.map +1 -1
  205. package/lib/types/dsh-adapter/host-dsh.js +45 -30
  206. package/lib/types/dsh-adapter/host-entry.js +35 -10
  207. package/lib/types/dsh-adapter/index.d.ts +9 -10
  208. package/lib/types/dsh-adapter/index.d.ts.map +1 -1
  209. package/lib/types/dsh-adapter/index.js +8 -6
  210. package/lib/types/dsh-adapter/invariant.d.ts +7 -2
  211. package/lib/types/dsh-adapter/invariant.d.ts.map +1 -1
  212. package/lib/types/dsh-adapter/invariant.js +6 -3
  213. package/lib/types/dsh-adapter/migrate/index.js +2 -2
  214. package/lib/types/dsh-adapter/panels.d.ts.map +1 -1
  215. package/lib/types/dsh-adapter/panels.js +6 -0
  216. package/lib/types/dsh-adapter/plugin-declaration.d.ts +99 -1
  217. package/lib/types/dsh-adapter/plugin-declaration.d.ts.map +1 -1
  218. package/lib/types/dsh-adapter/plugin-declaration.js +132 -2
  219. package/lib/types/dsh-adapter/plugin-feed.d.ts +94 -0
  220. package/lib/types/dsh-adapter/plugin-feed.d.ts.map +1 -0
  221. package/lib/types/dsh-adapter/plugin-feed.js +135 -0
  222. package/lib/types/dsh-adapter/plugin-guard.d.ts +115 -0
  223. package/lib/types/dsh-adapter/plugin-guard.d.ts.map +1 -0
  224. package/lib/types/dsh-adapter/plugin-guard.js +108 -0
  225. package/lib/types/dsh-adapter/plugin-install.d.ts +160 -0
  226. package/lib/types/dsh-adapter/plugin-install.d.ts.map +1 -0
  227. package/lib/types/dsh-adapter/plugin-install.js +545 -0
  228. package/lib/types/dsh-adapter/plugin-manage.d.ts +178 -0
  229. package/lib/types/dsh-adapter/plugin-manage.d.ts.map +1 -0
  230. package/lib/types/dsh-adapter/plugin-manage.js +468 -0
  231. package/lib/types/dsh-adapter/plugin-manager.d.ts +78 -2
  232. package/lib/types/dsh-adapter/plugin-manager.d.ts.map +1 -1
  233. package/lib/types/dsh-adapter/plugin-manager.js +32 -0
  234. package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
  235. package/lib/types/dsh-adapter/plugin.js +49 -2
  236. package/lib/types/dsh-adapter/plugins-info.d.ts +87 -1
  237. package/lib/types/dsh-adapter/plugins-info.d.ts.map +1 -1
  238. package/lib/types/dsh-adapter/plugins-info.js +131 -26
  239. package/lib/types/dsh-adapter/process-exit.d.ts +1 -1
  240. package/lib/types/dsh-adapter/process-exit.d.ts.map +1 -1
  241. package/lib/types/dsh-adapter/process-exit.js +1 -1
  242. package/lib/types/dsh-adapter/session-projection-store.d.ts +66 -0
  243. package/lib/types/dsh-adapter/session-projection-store.d.ts.map +1 -0
  244. package/lib/types/dsh-adapter/session-projection-store.js +149 -0
  245. package/lib/types/dsh-adapter/settingsEditor.js +2 -2
  246. package/lib/types/dsh-adapter/sideQuestion.d.ts +21 -0
  247. package/lib/types/dsh-adapter/sideQuestion.d.ts.map +1 -1
  248. package/lib/types/dsh-adapter/sideQuestion.js +53 -0
  249. package/lib/types/dsh-adapter/subagents.d.ts.map +1 -1
  250. package/lib/types/dsh-adapter/subagents.js +2 -1
  251. package/lib/types/dsh-adapter/team-mode.d.ts +74 -0
  252. package/lib/types/dsh-adapter/team-mode.d.ts.map +1 -0
  253. package/lib/types/dsh-adapter/team-mode.js +188 -0
  254. package/lib/types/dsh-adapter/team-roster.d.ts +67 -0
  255. package/lib/types/dsh-adapter/team-roster.d.ts.map +1 -0
  256. package/lib/types/dsh-adapter/team-roster.js +136 -0
  257. package/lib/types/dsh-adapter/team-tools.d.ts +58 -0
  258. package/lib/types/dsh-adapter/team-tools.d.ts.map +1 -0
  259. package/lib/types/dsh-adapter/team-tools.js +208 -0
  260. package/lib/types/dsh-adapter/types.d.ts +1 -1
  261. package/lib/types/dsh-adapter/types.d.ts.map +1 -1
  262. package/lib/types/i18n.d.ts +607 -16
  263. package/lib/types/i18n.d.ts.map +1 -1
  264. package/lib/types/i18n.js +295 -9
  265. package/lib/types/ink/components/ScrollBox.d.ts +9 -0
  266. package/lib/types/ink/components/ScrollBox.d.ts.map +1 -1
  267. package/lib/types/ink/components/ScrollBox.js +23 -0
  268. package/lib/types/ink/dom.d.ts.map +1 -1
  269. package/lib/types/kernelPrefs.d.ts +1 -1
  270. package/lib/types/kernelPrefs.d.ts.map +1 -1
  271. package/lib/types/native-ts/yoga-layout/index.d.ts.map +1 -1
  272. package/lib/types/native-ts/yoga-layout/index.js +8 -1
  273. package/lib/types/permissionPresetLabels.d.ts +25 -0
  274. package/lib/types/permissionPresetLabels.d.ts.map +1 -0
  275. package/lib/types/permissionPresetLabels.js +33 -0
  276. package/lib/types/preset-patch.d.ts +22 -0
  277. package/lib/types/preset-patch.d.ts.map +1 -0
  278. package/lib/types/preset-patch.js +14 -0
  279. package/lib/types/screens/Chat.d.ts +33 -1
  280. package/lib/types/screens/Chat.d.ts.map +1 -1
  281. package/lib/types/screens/Chat.js +301 -9
  282. package/lib/types/screens/Launchpad.d.ts +7 -1
  283. package/lib/types/screens/Launchpad.d.ts.map +1 -1
  284. package/lib/types/screens/Launchpad.js +19 -4
  285. package/lib/types/screens/Settings.d.ts.map +1 -1
  286. package/lib/types/screens/Settings.js +1 -0
  287. package/lib/types/screens/chat/usePluginWriteFlow.d.ts +68 -0
  288. package/lib/types/screens/chat/usePluginWriteFlow.d.ts.map +1 -0
  289. package/lib/types/screens/chat/usePluginWriteFlow.js +92 -0
  290. package/lib/types/screens/chatOverlay.d.ts +19 -1
  291. package/lib/types/screens/chatOverlay.d.ts.map +1 -1
  292. package/lib/types/sessionModes.d.ts +5 -3
  293. package/lib/types/sessionModes.d.ts.map +1 -1
  294. package/lib/types/sessionModes.js +9 -3
  295. package/lib/types/tips.js +2 -2
  296. package/lib/types/utils/paths.d.ts +11 -0
  297. package/lib/types/utils/paths.d.ts.map +1 -1
  298. package/lib/types/utils/paths.js +13 -0
  299. package/package.json +126 -120
  300. package/tui-profile/feed/README.md +63 -0
  301. package/tui-profile/feed/first-party.json +10 -0
@@ -13,9 +13,18 @@
13
13
  * structurally so a regression can hand in a fake. The record types come from
14
14
  * the host package's own published declarations, so a field rename on the
15
15
  * upstream line fails the build rather than the screen.
16
+ *
17
+ * Types only: a profile has no copy of the package at run time (the dsh CLI
18
+ * ships it), so importing a value from it — `parseInstallSpec`, say — would
19
+ * fail on exactly the machines this code runs on. Anything this package needs
20
+ * to compute (a spec's name, a version) it takes from `inspect()` instead.
21
+ *
22
+ * The view covers the write half as well (install / cancel / enable / disable /
23
+ * remove / version exemptions), because both write flows reach the same probe:
24
+ * a second manager lookup could only drift from this one.
16
25
  */
17
26
  import type { Context } from '@deepseek-ai/cordis';
18
- import type { BundleInfo, InspectOptions, PluginInfo, PluginRegistries, PluginSpecInspection } from '@deepseek-ai/dsh-plugin-manager/types';
27
+ import type { BundleInfo, ChangeResult, InspectOptions, InstallBundleOptions, PluginEntryId, PluginInfo, PluginInstallCancellation, PluginInstallLogChunk, PluginInstallProgress, PluginInstallRequestId, PluginRegistries, PluginSpecInspection } from '@deepseek-ai/dsh-plugin-manager/types';
19
28
  import { type Lang } from '../i18n.js';
20
29
  /** The host service operations this package consumes. */
21
30
  export interface PluginManagerView {
@@ -25,8 +34,51 @@ export interface PluginManagerView {
25
34
  listPlugins(): Promise<PluginInfo[]>;
26
35
  /** The registries an installation asks, in order. */
27
36
  registries(): Promise<PluginRegistries>;
28
- /** What a spec names, read before installing it. */
37
+ /**
38
+ * What a spec names, read before installing it. The host bounds the lookup
39
+ * with its own timeout; nothing here passes an `AbortSignal`, so a cancel
40
+ * during the read stops the flow rather than the request (there is nothing to
41
+ * install yet either way).
42
+ */
29
43
  inspect(spec: string, options?: InspectOptions): Promise<PluginSpecInspection>;
44
+ /**
45
+ * Install one spec into the profile. The call owns the whole run: it resolves
46
+ * only once pnpm (or the git check) has finished and the profile was restored
47
+ * or changed, so the returned promise IS the result — `waitForInstall` is the
48
+ * recovery path for a caller that lost it, not the way to collect it.
49
+ */
50
+ installBundle(spec: string, options?: InstallBundleOptions): Promise<ChangeResult>;
51
+ /** Stop an installation this manager owns and wait until its files are back. */
52
+ cancelInstall(requestId: PluginInstallRequestId): Promise<PluginInstallCancellation>;
53
+ /**
54
+ * Select or drop one bundle's composition layer, keeping its installed
55
+ * dependencies. Dropping a layer the manager itself lives in is refused by
56
+ * the host (`management-required`), and selecting one re-checks the running
57
+ * version (`incompatible-version`); both arrive in-band as
58
+ * `application: 'failed'`.
59
+ */
60
+ setBundleEnabled(name: string, enabled: boolean): Promise<ChangeResult>;
61
+ /**
62
+ * Persist one loader entry's desired enablement, by the `entryId`
63
+ * `listPlugins()` reports. An entry the host cannot address
64
+ * (`readOnlyReason`) is refused before anything is written.
65
+ */
66
+ setPluginEnabled(id: PluginEntryId, enabled: boolean): Promise<ChangeResult>;
67
+ /**
68
+ * Uninstall one bundle: drop its layer and remove it from the profile's
69
+ * dependencies. The host refuses a bundle it did not install
70
+ * (`not-removable`), one whose rows are live on a profile without hot reload
71
+ * (`stop-profile`), and one whose contributions are still running
72
+ * (`bundle-in-use`). Restores `package.json` and the lockfile on failure.
73
+ */
74
+ removeBundle(name: string): Promise<ChangeResult>;
75
+ /** The exact-version exemptions the profile's compatibility file carries. */
76
+ listVersionExemptions(): {
77
+ exemptions: Record<string, string[]>;
78
+ warnings: string[];
79
+ };
80
+ /** Grant or revoke one `package@version` × runtime exemption. */
81
+ setVersionExemption(packageVersion: string, runtimeVersion: string, enabled: boolean, acceptRisk?: boolean): Promise<ChangeResult>;
30
82
  }
31
83
  /**
32
84
  * Soft-probe the profile plugin manager. `undefined` when the row is not
@@ -34,6 +86,30 @@ export interface PluginManagerView {
34
86
  * the caller reports what it cannot do instead of throwing.
35
87
  */
36
88
  export declare function pluginManagerOf(ctx: Context): PluginManagerView | undefined;
89
+ /**
90
+ * A fresh id for one installation. `PluginInstallRequestId` is a branded string
91
+ * and no published subpath exports a constructor for the brand, so this is the
92
+ * one place that asserts one into existence; the counter is per process, which
93
+ * is all an id has to be for the service to correlate a cancel or a recovery
94
+ * with the run that asked.
95
+ */
96
+ export declare function newInstallRequestId(): PluginInstallRequestId;
97
+ /** The manager's install events, narrowed to the install that asked for them. */
98
+ export interface PluginInstallEvents {
99
+ /** One installation's pnpm output, chunk by chunk. */
100
+ onLog(requestId: PluginInstallRequestId, listener: (chunk: PluginInstallLogChunk) => void): () => void;
101
+ /** One installation's phase changes. */
102
+ onState(requestId: PluginInstallRequestId, listener: (progress: PluginInstallProgress) => void): () => void;
103
+ }
104
+ /**
105
+ * Subscribe to the manager's install events for one request. The events are
106
+ * emitted on the shared context, so a profile running two installations would
107
+ * otherwise render both in one report; the request id is the only thing that
108
+ * tells them apart. Chunks the service leaves unidentified (its git connection
109
+ * check runs without a request) are not one installation's output and are
110
+ * dropped with the rest.
111
+ */
112
+ export declare function pluginInstallEvents(ctx: Context): PluginInstallEvents;
37
113
  /**
38
114
  * The bundles a person added to this profile: the ones its own dependencies
39
115
  * hold (`installed`), minus the composition itself. The installation-supplied
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-manager.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/plugin-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAW,KAAK,IAAI,EAAE,MAAM,YAAY,CAAA;AAG/C,yDAAyD;AACzD,MAAM,WAAW,iBAAiB;IAChC,+EAA+E;IAC/E,WAAW,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;IACpC,kFAAkF;IAClF,WAAW,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;IACpC,qDAAqD;IACrD,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACvC,oDAAoD;IACpD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;CAC/E;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,iBAAiB,GAAG,SAAS,CAI3E;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,GAAG,UAAU,EAAE,CAEzE;AAED,oFAAoF;AACpF,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAA;AAErG;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMlF"}
1
+ {"version":3,"file":"plugin-manager.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/plugin-manager.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,38 @@ export function pluginManagerOf(ctx) {
11
11
  return undefined;
12
12
  return manager;
13
13
  }
14
+ let installRequestSeq = 0;
15
+ /**
16
+ * A fresh id for one installation. `PluginInstallRequestId` is a branded string
17
+ * and no published subpath exports a constructor for the brand, so this is the
18
+ * one place that asserts one into existence; the counter is per process, which
19
+ * is all an id has to be for the service to correlate a cancel or a recovery
20
+ * with the run that asked.
21
+ */
22
+ export function newInstallRequestId() {
23
+ installRequestSeq += 1;
24
+ return `dsh-tui-${process.pid}-${installRequestSeq}`;
25
+ }
26
+ /**
27
+ * Subscribe to the manager's install events for one request. The events are
28
+ * emitted on the shared context, so a profile running two installations would
29
+ * otherwise render both in one report; the request id is the only thing that
30
+ * tells them apart. Chunks the service leaves unidentified (its git connection
31
+ * check runs without a request) are not one installation's output and are
32
+ * dropped with the rest.
33
+ */
34
+ export function pluginInstallEvents(ctx) {
35
+ return {
36
+ onLog: (requestId, listener) => ctx.on('plugin-manager/install-log', (chunk) => {
37
+ if (chunk.requestId === requestId)
38
+ listener(chunk);
39
+ }),
40
+ onState: (requestId, listener) => ctx.on('plugin-manager/install-state', (progress) => {
41
+ if (progress.requestId === requestId)
42
+ listener(progress);
43
+ }),
44
+ };
45
+ }
14
46
  /**
15
47
  * The bundles a person added to this profile: the ones its own dependencies
16
48
  * hold (`installed`), minus the composition itself. The installation-supplied
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/plugin.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,8 @@ import { EDITABLE_CONFIG_KEYS } from '../settings/definitions.js';
13
13
  import { kernelEntriesOf } from '../components/kernelCatalog.js';
14
14
  import { openBackendStartup, prepareBackendStartup, probeKernels, installSurfaceFor } from './backends.js';
15
15
  import { backendLabel, isBackendIdSyntax, isRegisteredBackend, listBackends, listOfferedBackends, loadBackend, parseBackendChoice, unloadBackends } from './backend-registry.js';
16
+ import { createPluginInstallEntry } from './plugin-install.js';
17
+ import { createPluginManageEntry } from './plugin-manage.js';
16
18
  import { formatSessionRef } from '../agent/refs.js';
17
19
  import { createStartingSession } from '../agent/starting-session.js';
18
20
  import { createChannelSceneOutlet } from './channel-scene-outlet.js';
@@ -65,6 +67,8 @@ import { getHostStatusStore } from './status.js';
65
67
  import { attachSessionListMetadata } from './session-list-metadata.js';
66
68
  import { createActivityStore } from './activity-store.js';
67
69
  import { createContextOccupancyStore } from './context-occupancy.js';
70
+ import { createTeamRosterStore } from './team-roster.js';
71
+ import { createTeamCommandEntry, filterTeamReplacedTools } from './team-mode.js';
68
72
  import { getHostToastStore } from './toast.js';
69
73
  import { getHostShortcuts } from './shortcuts.js';
70
74
  import { getHostThemes } from './themes.js';
@@ -73,6 +77,7 @@ import { createLocalWorkspaceRuntime, getHostWorkspaceRuntime } from './workspac
73
77
  import { getHostSettingsSections, getLocalSettingsSectionsHost } from './settings-sections.js';
74
78
  import { compositionRoot, withHostRootCapability } from './host-access.js';
75
79
  import { armAdmissionLoader } from './admission-loader.js';
80
+ import { assembleBackendsFromProfile } from './backend-assembly.js';
76
81
  import { applyConfiguredSidePanelPanels, applySidePanelPanelsFromSettings } from './panels.js';
77
82
  import { disposeRootSettled } from './root-dispose.js';
78
83
  import { render, ThemeProvider, AlternateScreen } from '../ui.js';
@@ -332,8 +337,12 @@ export async function apply(ctx, runtimeConfig, configOwner = ctx, runtimeOption
332
337
  // persistent shell: bash on POSIX, pwsh on Windows). Filter only that preset
333
338
  // at the final assembly boundary. Reading the session on every assembly also
334
339
  // makes blank-session /preset switches and resumed sessions behave correctly.
340
+ // Agent Teams is decided at the same boundary: presets keep their legacy
341
+ // delegation rows, and a request that carries `spawn_teammate` drops
342
+ // `subagent` / `subagent_fork` (team-mode.ts), so a team bundle switched
343
+ // at run time reaches the sessions already running.
335
344
  dshCtx.on('system-prompt/assemble', async (_assembly, context, next) => {
336
- const assembled = await next();
345
+ const assembled = filterTeamReplacedTools(await next());
337
346
  const presetId = context.agent === undefined ? undefined : runningPresetOf(context.agent.session);
338
347
  return filterMinimalPresetTools(assembled, presetId);
339
348
  });
@@ -457,6 +466,13 @@ export async function apply(ctx, runtimeConfig, configOwner = ctx, runtimeOption
457
466
  }
458
467
  // Admit third-party activations from their package-root `dsh-plugin.json`.
459
468
  armAdmissionLoader(ctx);
469
+ // Stage D-1: the backends installed bundles declare join the registry *here*,
470
+ // before anything below parses a backend choice (`parseBackendChoice` reads the
471
+ // registry for membership, so an id registered later reads as unknown: dsh plus a
472
+ // warning). Synchronous on purpose — a bundle's own rows are composed after this
473
+ // one, so waiting for them would be waiting past the parse. This is the caller
474
+ // notes 0009's "Wired (W-2)" section was still missing.
475
+ assembleBackendsFromProfile(ctx);
460
476
  // The in-process DSH kernel mounts before the profile's workspace providers
461
477
  // exist: a provider URI resolves in `attachDsh`, and an unresolvable one
462
478
  // fails the startup session there instead of the mount.
@@ -606,8 +622,10 @@ export async function apply(ctx, runtimeConfig, configOwner = ctx, runtimeOption
606
622
  * Whether a Config row or DSH_TUI_BACKEND overrides the selector's
607
623
  * remembered kernel. The selector then says so: a switch still restarts
608
624
  * onto the chosen kernel, but the next plain launch follows the override.
625
+ * Only a registered Config choice pins: the schema keeps syntactically
626
+ * valid but uninstalled ids too, which must not prevent a memory fallback.
609
627
  */
610
- const backendPinned = config.backend !== undefined
628
+ const backendPinned = configuredBackend !== undefined
611
629
  || (rawBackend !== undefined && rawBackend.trim() !== '');
612
630
  // A remembered kernel whose backend cannot open (its SDK uninstalled, its
613
631
  // session store unreadable, …) must not kill the boot: without an explicit
@@ -772,6 +790,9 @@ export async function apply(ctx, runtimeConfig, configOwner = ctx, runtimeOption
772
790
  // empty and the channel falls back to the last-request sample — as does a
773
791
  // non-DSH session, whose id the DSH meter never projects.
774
792
  const contextOccupancyStore = createContextOccupancyStore(ctx);
793
+ // Read side of the Agent Teams `agentTeam` projection, for the same TDZ
794
+ // reason; empty unless the profile mounts the team service.
795
+ const teamRosterStore = createTeamRosterStore(ctx);
775
796
  // The channel holds a backend session; this DSH one owns the resolved
776
797
  // handle (disposed by the binding when a later adoption replaces it).
777
798
  let startupSession;
@@ -843,6 +864,8 @@ export async function apply(ctx, runtimeConfig, configOwner = ctx, runtimeOption
843
864
  // change, so a resumed session reads one baseline at bind time.
844
865
  contextPressure: contextOccupancyStore,
845
866
  seedContextOccupancy: session => contextOccupancyStore.seed(session),
867
+ team: teamRosterStore,
868
+ seedTeam: session => teamRosterStore.seed(session),
846
869
  // A RESUMED session keeps its persisted header cwd (issue #96 review):
847
870
  // pre-upgrade sessions recorded the launch directory, and re-resolving
848
871
  // from the current launch directory would split @ expansion / file
@@ -2261,6 +2284,30 @@ export async function apply(ctx, runtimeConfig, configOwner = ctx, runtimeOption
2261
2284
  // whichever row the user picked, looked up by id — the manifest says what to
2262
2285
  // install and with which executor, this host holds the actions.
2263
2286
  onResolveSdkInstall: installSurfaceFor,
2287
+ // `/plugin install <spec>` (C-4): the write path. The wiring lives beside
2288
+ // the flow (`createPluginInstallEntry`) so a regression can drive the real
2289
+ // feed load, declaration read and profile-relative path resolution with a
2290
+ // fixture context. `undefined` ⇒ not an install form, or no service to
2291
+ // install through; the screen then runs the read-only report instead.
2292
+ onPluginInstall: createPluginInstallEntry(ctx, {
2293
+ ownVersion: installedTuiVersion(),
2294
+ profileName: profile ?? resolveDshProfileName(),
2295
+ }),
2296
+ // `/plugin remove|enable|disable` (C-5): the lifecycle write path. Wired the
2297
+ // same way and for the same reason — the entry is where the real profile, the
2298
+ // declaration read and the data directory meet, so a regression can drive
2299
+ // them with a fixture context. `undefined` ⇒ not one of those forms, or no
2300
+ // service to act through; the screen then runs the read-only report.
2301
+ onPluginManage: createPluginManageEntry(ctx, {
2302
+ profileName: profile ?? resolveDshProfileName(),
2303
+ }),
2304
+ // `/team [status] | on | off`: the Agent Teams bundle through the same
2305
+ // lifecycle flow (team-mode.ts).
2306
+ onTeamCommand: createTeamCommandEntry(ctx, {
2307
+ profileName: profile ?? resolveDshProfileName(),
2308
+ // The host reports `unknown` when it has no version: read the installed one.
2309
+ kernelVersion: entrySlot?.kernelVersion === 'unknown' ? undefined : entrySlot?.kernelVersion,
2310
+ }),
2264
2311
  kernelPinned: backendPinned,
2265
2312
  // Only a `dsh --profile <name>` launch has a profile installation for
2266
2313
  // `/update` to act on; source checkouts and `--config` overlays get the
@@ -33,7 +33,7 @@
33
33
  */
34
34
  import type { GrantStore } from '../adapter/standard/grants.js';
35
35
  import type { HostDescriptorBuild } from '../adapter/standard/descriptor.js';
36
- import { type PluginDeclaration } from './plugin-declaration.js';
36
+ import { type PluginDeclaration, type PluginInstallNotice } from './plugin-declaration.js';
37
37
  import { type PluginManagerView } from './plugin-manager.js';
38
38
  /** How many plugins the matrix shows before an overflow note. */
39
39
  export declare const PLUGINS_MATRIX_MAX_ROWS = 20;
@@ -51,6 +51,43 @@ export interface PluginsInfoDeps {
51
51
  ledgerFile?: string;
52
52
  storageDir?: string;
53
53
  }
54
+ /**
55
+ * One report cell: credentials redacted first, then sanitized, then capped —
56
+ * truncation comes last, or a cut URL keeps the head of its own secret.
57
+ *
58
+ * Exported for the install flow (C-4): pnpm's output and the service's error
59
+ * text are foreign input reaching the same transcript, and one renderer means
60
+ * the two surfaces cannot disagree about what a cell is.
61
+ */
62
+ export declare const cell: (value: unknown) => string;
63
+ /** Where the three footprint sources live. */
64
+ export interface PluginFootprintPaths {
65
+ readonly dataDir: string;
66
+ readonly ledgerFile: string;
67
+ readonly storageDir: string;
68
+ }
69
+ /** Test overrides for {@link pluginFootprintPaths}; the report's own deps satisfy it. */
70
+ export interface PluginFootprintOverrides {
71
+ readonly dataDir?: string | undefined;
72
+ readonly ledgerFile?: string | undefined;
73
+ readonly storageDir?: string | undefined;
74
+ }
75
+ /** The plugin set for the matrix: grants-file keys ∪ ledger pluginIds ∪
76
+ * storage namespaces ('host'/'undeclared' ledger identities are not
77
+ * plugins and are excluded). */
78
+ export declare function pluginFootprints(paths: PluginFootprintPaths): string[];
79
+ /**
80
+ * The three footprint sources, resolved the way the diagnostics resolve them
81
+ * (test overrides first, else the packaged locations under `~/.dsh-tui`).
82
+ */
83
+ export declare function pluginFootprintPaths(overrides?: PluginFootprintOverrides): PluginFootprintPaths;
84
+ /**
85
+ * Whether one plugin id still has a footprint in this profile: a grants-file
86
+ * key, an effect-ledger record, or a storage namespace. The same three sources
87
+ * the matrix unions — a removal that left something behind is read here rather
88
+ * than by a second reader that could disagree with the report (C-5).
89
+ */
90
+ export declare function pluginFootprintContains(pluginId: string, overrides?: PluginFootprintOverrides): boolean;
54
91
  /** Which form of the command the raw argument text asks for. */
55
92
  export type PluginArgs = {
56
93
  readonly kind: 'overview';
@@ -64,6 +101,27 @@ export type PluginArgs = {
64
101
  readonly spec: string;
65
102
  } | {
66
103
  readonly kind: 'registries';
104
+ }
105
+ /** `/plugin install <spec>`: the write path (C-4), which the UI drives. */
106
+ | {
107
+ readonly kind: 'install';
108
+ readonly spec: string;
109
+ }
110
+ /**
111
+ * The three lifecycle forms (C-5), which the UI drives through
112
+ * `dsh-adapter/plugin-manage.ts`. `target` is the raw argument: a bundle name
113
+ * or a row identity, resolved by the flow against the profile it reads rather
114
+ * than by a grammar here.
115
+ */
116
+ | {
117
+ readonly kind: 'remove';
118
+ readonly target: string;
119
+ } | {
120
+ readonly kind: 'enable';
121
+ readonly target: string;
122
+ } | {
123
+ readonly kind: 'disable';
124
+ readonly target: string;
67
125
  } | {
68
126
  readonly kind: 'unknown';
69
127
  readonly sub: string;
@@ -72,6 +130,34 @@ export type PluginArgs = {
72
130
  export declare function parsePluginArgs(args: string): PluginArgs;
73
131
  /** The `/plugin` overview lines (banner always first). */
74
132
  export declare function pluginsInfoLines(args: string, deps: PluginsInfoDeps): string[];
133
+ /**
134
+ * Gate 1's pre-install statement about an install target (C-4), as data.
135
+ *
136
+ * It runs the same parse/project/validate pipeline `check <path>` and the list
137
+ * tags run — one implementation, so the surfaces cannot disagree — over the
138
+ * declaration of the target directory the caller resolved. It deliberately stops
139
+ * before `negotiate`: admission's five states are a statement about a *running*
140
+ * host, and the standing tag in `/plugin` is where they are reported after the
141
+ * install. What a person needs before installing is narrower and decidable: is
142
+ * there a declaration at all, and does this profile's catalog accept it.
143
+ *
144
+ * The evidence is the target directory and nothing else. A declaration resolved
145
+ * by package name would be the profile's already-installed copy of that name —
146
+ * a different artifact from the one being installed (another version, or a local
147
+ * directory), which is how a stale same-name package used to answer for a new
148
+ * target.
149
+ *
150
+ * The two empty answers are not the same thing, and that is the point:
151
+ *
152
+ * - a directory the caller resolved (`install <path>` specs) either carries a
153
+ * package-root `dsh-plugin.json` or does not, so no file is `undeclared`;
154
+ * - a target with no directory to read (a registry name, a tarball, a git spec)
155
+ * ships no file this machine can read, so an empty answer there is `unjudged`
156
+ * — the flow cannot honestly claim a package it has never seen fails gate 1.
157
+ */
158
+ export declare function declarationNoticeFor(target: {
159
+ readonly directory?: string | undefined;
160
+ }): PluginInstallNotice;
75
161
  /** The service-backed half of the report (empty for a form that needs no service). */
76
162
  export declare function pluginServiceLines(args: string, deps: PluginsInfoDeps, manager: PluginManagerView | undefined): Promise<string[]>;
77
163
  /** `/plugin`: the diagnostics half plus the profile's own bundles and rows. */
@@ -1 +1 @@
1
- {"version":3,"file":"plugins-info.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/plugins-info.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAYH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAC5E,OAAO,EAAsB,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AACpF,OAAO,EAAqC,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAI/F,iEAAiE;AACjE,eAAO,MAAM,uBAAuB,KAAK,CAAA;AACzC,sDAAsD;AACtD,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAIpC,MAAM,WAAW,eAAe;IAC9B,0EAA0E;IAC1E,MAAM,EAAE,UAAU,CAAA;IAClB,2EAA2E;IAC3E,IAAI,CAAC,EAAE,mBAAmB,CAAA;IAC1B,sEAAsE;IACtE,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,iBAAiB,GAAG,SAAS,CAAA;IACpE,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAmOD,gEAAgE;AAChE,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GAC/B;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtD,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CASxD;AAED,0DAA0D;AAC1D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,MAAM,EAAE,CA8F9E;AAyMD,sFAAsF;AACtF,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,iBAAiB,GAAG,SAAS,GACrC,OAAO,CAAC,MAAM,EAAE,CAAC,CAmBnB;AAED,+EAA+E;AAC/E,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,iBAAiB,GAAG,SAAS,GACrC,OAAO,CAAC,MAAM,EAAE,CAAC,CAEnB"}
1
+ {"version":3,"file":"plugins-info.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/plugins-info.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAYH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAC5E,OAAO,EAA2C,KAAK,iBAAiB,EAAE,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AACnI,OAAO,EAAqC,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAI/F,iEAAiE;AACjE,eAAO,MAAM,uBAAuB,KAAK,CAAA;AACzC,sDAAsD;AACtD,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAIpC,MAAM,WAAW,eAAe;IAC9B,0EAA0E;IAC1E,MAAM,EAAE,UAAU,CAAA;IAClB,2EAA2E;IAC3E,IAAI,CAAC,EAAE,mBAAmB,CAAA;IAC1B,sEAAsE;IACtE,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,iBAAiB,GAAG,SAAS,CAAA;IACpE,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AA+DD;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,GAAI,OAAO,OAAO,KAAG,MAAsE,CAAA;AA0B5G,8CAA8C;AAC9C,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B;AAED,yFAAyF;AACzF,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACzC;AAED;;iCAEiC;AACjC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,EAAE,CA+BtE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,GAAE,wBAA6B,GAAG,oBAAoB,CAOnG;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAE,wBAA6B,GAAG,OAAO,CAE3G;AAqGD,gEAAgE;AAChE,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;CAAE;AACjC,2EAA2E;GACzE;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AACrD;;;;;GAKG;GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtD,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAaxD;AAED,0DAA0D;AAC1D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,MAAM,EAAE,CAuG9E;AA4DD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE;IAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAClD,mBAAmB,CAMrB;AAmKD,sFAAsF;AACtF,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,iBAAiB,GAAG,SAAS,GACrC,OAAO,CAAC,MAAM,EAAE,CAAC,CA0BnB;AAED,+EAA+E;AAC/E,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,iBAAiB,GAAG,SAAS,GACrC,OAAO,CAAC,MAAM,EAAE,CAAC,CAEnB"}