@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,14 +1,88 @@
1
- import type { TemplateResult } from "lit";
1
+ import type { ReactiveControllerHost, TemplateResult } from "lit";
2
2
  import type { LocalizationContribution, Translator } from "./shared/pluginApiTypes.js";
3
- import type { DeleteWorkspaceFileResponse, FileContentResponse, FileTreeResponse, JsonValue, MachineKind, MoveWorkspaceFileOptions, MoveWorkspaceFileResponse, PiWebStatusResponse, PluginCapability, PluginCapabilityProvision, TerminalCommandRunHandle, WorkspaceProviderMetadata, WorkspaceRemovalPresentation, WriteWorkspaceFileOptions, WriteWorkspaceFileResponse } from "./shared/pluginApiTypes.js";
4
- export type { LocalizationContribution, TranslationMessages, TranslationParameters, Translator, FileContentMediaType, FileContentResponse, FileTreeEntry, FileTreeResponse, JsonObject, JsonPrimitive, JsonValue, MachineKind, PiWebComponentStatus, PiWebDockerMode, PiWebInstallationInfo, PiWebInstallationKind, PiWebReleaseStatus, PiWebServiceComponent, PiWebStatusMessage, PiWebStatusResponse, PiWebStatusSeverity, PiWebVersionResponse, PluginCapability, PluginCapabilityProvision, TerminalCommandRun, TerminalCommandRunHandle, TerminalCommandRunStatus, WorkspaceProviderCapabilities, WorkspaceProviderMetadata, WorkspaceRemovalPresentation, WriteWorkspaceFileOptions, WriteWorkspaceFileResponse, DeleteWorkspaceFileResponse, MoveWorkspaceFileOptions, MoveWorkspaceFileResponse, } from "./shared/pluginApiTypes.js";
3
+ import type { DeleteWorkspaceFileResponse, FileContentResponse, FileTreeResponse, JsonValue, MachineKind, PluginBackend, PluginPeer, MoveWorkspaceFileOptions, MoveWorkspaceFileResponse, PiWebStatusResponse, PluginCapability, PluginCapabilityProvision, TerminalCommandRunHandle, WorkspaceProviderMetadata, WorkspaceRemovalPresentation, WriteWorkspaceFileOptions, WriteWorkspaceFileResponse } from "./shared/pluginApiTypes.js";
4
+ export type { LocalizationContribution, TranslationMessages, TranslationParameters, Translator, FileContentMediaType, FileContentResponse, FileTreeEntry, FileTreeResponse, JsonObject, JsonPrimitive, JsonValue, PluginBackend, PluginBackendScope, PluginPeer, PluginPeerRequestOptions, PluginPeerChannelOptions, PluginPeerChannelClose, PluginPeerChannel, MachineKind, PiWebComponentStatus, PiWebDockerMode, PiWebInstallationInfo, PiWebInstallationKind, PiWebReleaseStatus, PiWebServiceComponent, PiWebStatusMessage, PiWebStatusResponse, PiWebStatusSeverity, PiWebVersionResponse, PluginCapability, PluginCapabilityProvision, SessionUiMetadata, TerminalCommandRun, TerminalCommandRunHandle, TerminalCommandRunStatus, WorkspaceProviderCapabilities, WorkspaceProviderMetadata, WorkspaceRemovalPresentation, WriteWorkspaceFileOptions, WriteWorkspaceFileResponse, DeleteWorkspaceFileResponse, MoveWorkspaceFileOptions, MoveWorkspaceFileResponse, } from "./shared/pluginApiTypes.js";
5
+ export type { PluginCatalogV1, PluginCatalogProject, PluginCatalogWorkspace, PluginSessionSnapshot, PluginWorkspaceSelection, PluginSessionSelection, PluginCatalogReadOptions } from "./shared/pluginCatalogTypes.js";
6
+ import type { PluginCatalogV1 } from "./shared/pluginCatalogTypes.js";
7
+ export type PiWebPlugin = LegacyPiWebPlugin | PiWebPluginV5;
8
+ /** Current browser entrypoint. Existing contribution kinds and lifecycle behavior are unchanged. */
9
+ export interface PiWebPluginV5 {
10
+ apiVersion: 5;
11
+ name: string;
12
+ requires?: readonly PluginCapability[];
13
+ activate(context: PluginActivationContextV5): MaybePromise<PluginActivationResultV5>;
14
+ }
15
+ export type PluginActivationContextV5 = Omit<PluginActivationContext, "apiVersion"> & {
16
+ readonly apiVersion: 5;
17
+ };
18
+ export type PluginActivationResultV5 = Omit<PluginActivationResult, "contributions"> & {
19
+ contributions: PluginContributionsV5;
20
+ };
21
+ /** Captured machine target; changing selection never retargets this catalog. */
22
+ export interface PluginCatalog extends PluginCatalogV1 {
23
+ readonly machineId: string;
24
+ }
25
+ export interface PluginDiscoveryContext {
26
+ readonly catalog: PluginCatalog;
27
+ readonly backend?: PluginBackend;
28
+ }
29
+ export type PluginRuntimeContextV5 = PluginRuntimeContext & PluginDiscoveryContext;
30
+ export type ApplicationPanelContextV5 = ApplicationPanelContext & PluginDiscoveryContext;
31
+ export type WorkspacePanelContextV5 = Omit<WorkspacePanelContext, "backend"> & PluginDiscoveryContext;
32
+ export type WorkspaceLabelContextV5 = Omit<WorkspaceLabelContext, "backend"> & PluginDiscoveryContext;
33
+ export type SessionLabelContextV5 = SessionLabelContext & PluginDiscoveryContext;
34
+ export type MessageActionContextV5 = MessageActionContext & PluginDiscoveryContext;
35
+ export type DisplayedMessageActionContextV5 = DisplayedMessageActionContext & PluginDiscoveryContext;
36
+ export interface PluginContributionsV5 extends Omit<PluginContributions, "actions" | "applicationPanels" | "workspacePanels" | "workspaceLabels" | "sessionLabels" | "messageActions" | "contentRenderers" | "themes"> {
37
+ stylesheets?: StylesheetContribution[];
38
+ syntaxHighlighters?: SyntaxHighlighterContribution[];
39
+ contentRenderers?: ContentRendererContributionV5[];
40
+ themes?: ThemeContributionV5[];
41
+ actions?: PluginActionV5[];
42
+ applicationPanels?: ApplicationPanelContributionV5[];
43
+ workspacePanels?: WorkspacePanelContributionV5[];
44
+ workspaceLabels?: WorkspaceLabelContributionV5[];
45
+ sessionLabels?: SessionLabelContributionV5[];
46
+ messageActions?: MessageActionContributionV5[];
47
+ }
48
+ export type PluginActionV5 = Omit<PluginAction, "enabled" | "disabledReason" | "run"> & {
49
+ enabled?: (context: PluginRuntimeContextV5) => boolean;
50
+ disabledReason?: (context: PluginRuntimeContextV5) => string | undefined;
51
+ run: (context: PluginRuntimeContextV5) => MaybePromise<void>;
52
+ };
53
+ export type ApplicationPanelContributionV5 = Omit<ApplicationPanelContribution, "visible" | "badge" | "render"> & {
54
+ visible?: (context: ApplicationPanelContextV5) => boolean;
55
+ badge?: (context: ApplicationPanelContextV5) => string | number | TemplateResult | undefined;
56
+ render: (context: ApplicationPanelContextV5) => TemplateResult;
57
+ };
58
+ export type WorkspacePanelContributionV5 = Omit<WorkspacePanelContribution, "visible" | "badge" | "render" | "fileOpenQuery" | "onInvalidate"> & {
59
+ visible?: (context: WorkspacePanelContextV5) => boolean;
60
+ badge?: (context: WorkspacePanelContextV5) => string | number | TemplateResult | undefined;
61
+ render: (context: WorkspacePanelContextV5) => TemplateResult;
62
+ fileOpenQuery?: (context: WorkspacePanelContextV5, path: string) => Readonly<Record<string, ContributionQueryValue>> | undefined;
63
+ onInvalidate?: (context: WorkspacePanelContextV5, invalidation?: WorkspaceInvalidation) => MaybePromise<void>;
64
+ };
65
+ export type WorkspaceLabelContributionV5 = Omit<WorkspaceLabelContribution, "visible" | "items"> & {
66
+ visible?: (context: WorkspaceLabelContextV5) => boolean;
67
+ items: (context: WorkspaceLabelContextV5) => WorkspaceLabelItem[];
68
+ };
69
+ export type SessionLabelContributionV5 = Omit<SessionLabelContribution, "visible" | "items"> & {
70
+ visible?: (context: SessionLabelContextV5) => boolean;
71
+ items: (context: SessionLabelContextV5) => SessionLabelItem[];
72
+ };
73
+ export type MessageActionContributionV5 = (Omit<EntryMessageActionContribution, "run"> & {
74
+ run: (context: MessageActionContextV5) => MaybePromise<MessageActionResult>;
75
+ }) | (Omit<DisplayedMessageActionContribution, "run"> & {
76
+ run: (context: DisplayedMessageActionContextV5) => MaybePromise<MessageActionResult>;
77
+ });
5
78
  export type PluginId = string;
6
79
  export type LocalContributionId = string;
7
80
  export type QualifiedContributionId = string;
8
81
  export type HtmlTemplateTag = (strings: TemplateStringsArray, ...values: unknown[]) => TemplateResult;
9
82
  export type SvgTemplateTag = (strings: TemplateStringsArray, ...values: unknown[]) => TemplateResult;
10
83
  type MaybePromise<T> = T | Promise<T>;
11
- export interface PiWebPlugin {
84
+ /** @deprecated Browser API v4 remains supported; use PiWebPluginV5 for catalog and scoped backend access. */
85
+ export interface LegacyPiWebPlugin {
12
86
  apiVersion: 4;
13
87
  name: string;
14
88
  /** Exact capability versions that must be active before this plugin starts. */
@@ -29,6 +103,8 @@ export interface PluginActivationContext {
29
103
  readonly signal: AbortSignal;
30
104
  /** Aborted before failed-start rollback or browser-host shutdown disposal. */
31
105
  readonly lifetimeSignal: AbortSignal;
106
+ /** Current browser selection, independent of panel mounting. Omitted by older hosts. */
107
+ readonly selection?: PluginSelectionService;
32
108
  }
33
109
  /** Resolver containing only the exact capability requirements declared by a plugin. */
34
110
  export interface PluginCapabilityResolver {
@@ -66,6 +142,48 @@ export interface ContentRendererContribution {
66
142
  /** Synchronous Lit template; own async work and activation efficiency in a component and honor signal. */
67
143
  render(input: ContentRendererInput): TemplateResult;
68
144
  }
145
+ export interface ContentRendererInputV5 extends ContentRendererInput {
146
+ readonly machineId?: string;
147
+ readonly language?: string;
148
+ readonly filePath?: string;
149
+ }
150
+ export interface ContentRendererContributionV5 extends Omit<ContentRendererContribution, "render"> {
151
+ /** Human-readable name used for renderer view buttons. */
152
+ title?: string;
153
+ /** Synchronous eligibility; replaces absent selectors or further restricts declared selectors. */
154
+ supports?(request: Readonly<ContentRenderRequest>): boolean;
155
+ render(input: ContentRendererInputV5): TemplateResult;
156
+ }
157
+ export type SyntaxHighlightTokenKind = "keyword" | "string" | "number" | "comment" | "type" | "function" | "variable" | "operator" | "punctuation" | "property" | "literal" | "meta";
158
+ export interface SyntaxHighlightToken {
159
+ /** UTF-16 code-unit offsets: inclusive start, exclusive end. Sorted and nonoverlapping. */
160
+ readonly from: number;
161
+ readonly to: number;
162
+ readonly kind: SyntaxHighlightTokenKind;
163
+ }
164
+ export interface SyntaxHighlighterContribution {
165
+ id: LocalContributionId;
166
+ languages?: readonly string[];
167
+ /** Extensions without a leading dot, matched case-insensitively. */
168
+ fileExtensions?: readonly string[];
169
+ highlight(input: {
170
+ readonly text: string;
171
+ readonly signal: AbortSignal;
172
+ }): readonly SyntaxHighlightToken[] | Promise<readonly SyntaxHighlightToken[]>;
173
+ }
174
+ export interface SyntaxHighlightRequest {
175
+ machineId: string;
176
+ text: string;
177
+ language?: string;
178
+ filePath?: string;
179
+ signal: AbortSignal;
180
+ }
181
+ /** Host capability token: { pluginId: "pi-web", id: "syntax-highlighting", version: 1, parse }. */
182
+ export interface SyntaxHighlightingCapability {
183
+ supports(request: Pick<ContentRenderRequest, "machineId" | "language" | "filePath">): boolean;
184
+ /** Last discovered match; undefined when no match or over 100,000 UTF-16 units. Errors reject. */
185
+ highlight(request: SyntaxHighlightRequest): Promise<readonly SyntaxHighlightToken[] | undefined>;
186
+ }
69
187
  export interface ContentRenderRequest {
70
188
  machineId: string;
71
189
  text: string;
@@ -76,6 +194,7 @@ export interface ContentRenderRequest {
76
194
  export interface ContentRendererOption {
77
195
  readonly id: string;
78
196
  readonly label: string;
197
+ readonly title?: string;
79
198
  readonly renderMode: "manual" | "automatic";
80
199
  }
81
200
  export type ContentTextRenderRequest = ContentRenderRequest & {
@@ -98,12 +217,12 @@ export interface ContentMarkdownRenderRequest {
98
217
  }
99
218
  /** Host capability token: { pluginId: "pi-web", id: "content-rendering", version: 1, parse }. */
100
219
  export interface ContentRenderingCapability {
101
- /** Eligible choices in source plugin ID order, then local contribution ID order. */
220
+ /** Eligible choices in plugin discovery order, then contribution declaration order. */
102
221
  listRenderers(request: ContentRenderRequest): readonly ContentRendererOption[];
103
222
  /**
104
223
  * Undefined when no renderer claims the complete text file.
105
224
  * External controls require the caller to provide raw-source access, mode switching and a renderer chooser.
106
- * Only external controls accept rendererId; absent or unavailable IDs use the first match.
225
+ * Only external controls accept rendererId; absent or unavailable IDs use the last automatic match, otherwise the first manual match.
107
226
  * Consumers authorize manual previews according to their own user-intent policy.
108
227
  * Listing and creating templates never call render.
109
228
  */
@@ -117,9 +236,12 @@ export interface ContentRenderingCapability {
117
236
  export interface PluginContributions {
118
237
  localizations?: LocalizationContribution[];
119
238
  contentRenderers?: ContentRendererContribution[];
239
+ messageActions?: MessageActionContribution[];
120
240
  actions?: PluginAction[];
241
+ applicationPanels?: ApplicationPanelContribution[];
121
242
  workspacePanels?: WorkspacePanelContribution[];
122
243
  workspaceLabels?: WorkspaceLabelContribution[];
244
+ sessionLabels?: SessionLabelContribution[];
123
245
  themes?: ThemeContribution[];
124
246
  themePairs?: ThemePairContribution[];
125
247
  }
@@ -128,25 +250,74 @@ export interface PluginMachine {
128
250
  name: string;
129
251
  kind: MachineKind;
130
252
  }
253
+ /** Basic registered project information on a host-bound machine. */
254
+ export interface PluginProject {
255
+ readonly id: string;
256
+ readonly name: string;
257
+ readonly path: string;
258
+ }
259
+ /** A directory suggested by the target machine's project directory search. */
260
+ export interface PluginProjectDirectorySuggestion {
261
+ readonly path: string;
262
+ }
263
+ /** Read-only project discovery with a fixed machine target, independent of later selection. */
264
+ export interface PluginProjects {
265
+ readonly machineId: string;
266
+ /** List registered projects, not every directory on the machine. */
267
+ listProjects(): Promise<readonly PluginProject[]>;
268
+ /** Suggest directories matching a path query using the host's project picker rules. */
269
+ suggestDirectories(query: string): Promise<readonly PluginProjectDirectorySuggestion[]>;
270
+ }
131
271
  /** Selected conversation snapshot, scoped to PluginRuntimeState.selectedMachine. */
132
272
  export interface PluginSelectedSession {
133
273
  id: string;
134
274
  /** Workspace working directory. */
135
275
  cwd: string;
136
276
  name?: string;
277
+ /** Detached, explicitly UI-safe data by package/plugin namespace. Absent on older hosts. */
278
+ metadata?: import("./shared/pluginApiTypes.js").SessionUiMetadata;
137
279
  archived: boolean;
138
280
  /** True while the browser is waiting for session creation to finish. */
139
281
  pending: boolean;
140
282
  }
283
+ /** Basic selection only; no transcript, route query, or status data. */
284
+ export interface PluginSelectionSnapshot {
285
+ /** Undefined before machines load. */
286
+ readonly selectedMachine?: Readonly<PluginMachine>;
287
+ readonly selectedProject?: PluginProject;
288
+ readonly selectedWorkspace?: Readonly<Workspace>;
289
+ readonly selectedSession?: Readonly<PluginSelectedSession>;
290
+ }
291
+ export interface PluginSelectionService {
292
+ /** Read a fresh, detached snapshot synchronously. */
293
+ getSnapshot(): PluginSelectionSnapshot;
294
+ /**
295
+ * Notify after host UI commits that change basic selection; does not call immediately.
296
+ * Multiple changes within one commit may be coalesced.
297
+ * Works while panels are closed. Ends at plugin lifetime abort, or earlier via
298
+ * the returned idempotent unsubscribe. Subscriber failures are logged in isolation.
299
+ */
300
+ subscribe(listener: (snapshot: PluginSelectionSnapshot) => void | Promise<void>): () => void;
301
+ }
141
302
  export interface PluginRuntimeState {
142
303
  /** Identity of the currently selected machine. Undefined only on older hosts or before machines load. */
143
304
  selectedMachine?: PluginMachine;
305
+ selectedProject?: PluginProject;
144
306
  selectedWorkspace?: Workspace;
145
307
  selectedSession?: PluginSelectedSession;
146
308
  workspaceTool?: string;
147
309
  mainView?: "navigation" | "chat" | "workspace";
148
310
  piWebStatus?: PiWebStatusResponse;
149
311
  }
312
+ export interface PluginPromptChip {
313
+ /** Plugin-local identity; setting the same id replaces its data and callback. */
314
+ readonly id: string;
315
+ readonly label: string;
316
+ /** Non-empty text appended verbatim to the message, separated by blank lines. */
317
+ readonly text: string;
318
+ /** User removal or server-accepted submission; programmatic withdrawal is silent. */
319
+ readonly onRemove?: (reason: "user" | "submitted") => void | Promise<void>;
320
+ }
150
321
  export interface PluginPromptEditor {
151
322
  /** Insert text at the current cursor position. Replaces any selection.
152
323
  * If the editor is not focused, focuses it first.
@@ -160,20 +331,64 @@ export interface PluginPromptEditor {
160
331
  end: number;
161
332
  text: string;
162
333
  } | null;
334
+ /**
335
+ * Stage or replace this plugin's chip in the machine/conversation captured by
336
+ * this context. Requires a ready, non-archived selected conversation when the
337
+ * context is created. Throws when that target or plugin is unavailable.
338
+ * Browser memory only; survives panel closure/navigation, not page reload.
339
+ * Omitted by older hosts. Call from event handlers, not render callbacks.
340
+ */
341
+ setChip?(chip: PluginPromptChip): void;
342
+ /** Withdraw this plugin's chip from the captured conversation without notification. */
343
+ removeChip?(id: string): void;
163
344
  }
164
- /** A complete navigation destination, not a patch of the current route. */
345
+ /** A non-null destination: complete by default, or a current-URL patch with mode: "patch". */
165
346
  export interface PluginNavigationDestination {
166
347
  machineId?: string;
167
348
  projectId?: string;
168
349
  workspaceId?: string;
350
+ /** Full, exact session ID in the target workspace; prefixes are not resolved. */
169
351
  sessionId?: string;
170
352
  view?: "navigation" | "chat" | "workspace";
171
353
  tool?: QualifiedContributionId;
354
+ /** Local query keys for tool. Requires a tool/project/workspace
355
+ * (explicit in replace mode, optionally inherited in patch mode).
356
+ * Replace mode replaces all contribution query state; patch mode merges only these keys. */
357
+ query?: Readonly<Record<string, ContributionQueryValue>>;
358
+ }
359
+ /** Current-URL patch, accepted only with mode: "patch". Undefined fields are preserved. */
360
+ export interface PluginNavigationPatchDestination {
361
+ /** Null resets the machine to local; other null route fields remove that URL field. */
362
+ machineId?: string | null;
363
+ projectId?: string | null;
364
+ workspaceId?: string | null;
365
+ /** Full, exact session ID in the target workspace; prefixes are not resolved. */
366
+ sessionId?: string | null;
367
+ view?: "navigation" | "chat" | "workspace" | null;
368
+ tool?: QualifiedContributionId | null;
369
+ /** Merge local keys into the effective tool/project/workspace query; null values remove keys. */
370
+ query?: Readonly<Record<string, ContributionQueryValue | null>>;
371
+ }
372
+ export interface PluginNavigationOptions {
373
+ /** Defaults to replace. Patch preserves omitted fields and clears inherited descendants
374
+ * when their machine/project/workspace changes. Null route fields are valid only in patch mode. */
375
+ mode?: "replace" | "patch";
376
+ /** Browser history behavior, independent of mode. Defaults to push. */
377
+ history?: "push" | "replace";
378
+ }
379
+ /** Shared navigation callable; nullable destinations require explicit patch options. */
380
+ export interface PluginNavigate {
381
+ (destination: PluginNavigationDestination, options?: PluginNavigationOptions): Promise<void>;
382
+ (destination: PluginNavigationPatchDestination, options: PluginNavigationOptions & {
383
+ mode: "patch";
384
+ }): Promise<void>;
172
385
  }
173
386
  export interface PluginRuntimeContext {
174
387
  /** Navigate using host restoration defaults. Route failures appear in the host UI. */
175
- navigate: (destination: PluginNavigationDestination) => Promise<void>;
388
+ navigate: PluginNavigate;
176
389
  state: PluginRuntimeState;
390
+ /** Read-only discovery on this context's machine. Omitted by older hosts. */
391
+ projects?: PluginProjects;
177
392
  prompt: PluginPromptEditor;
178
393
  openActionPalette: () => void;
179
394
  focusPrompt: () => void;
@@ -200,6 +415,79 @@ export interface PluginRuntimeContext {
200
415
  archiveSession: () => void | Promise<void>;
201
416
  stopActiveWork: () => void | Promise<void>;
202
417
  }
418
+ /** A durable message displayed in the transcript; text excludes thinking and tool payloads. */
419
+ export interface MessageActionMessage {
420
+ readonly entryId: string;
421
+ readonly role: "user" | "assistant" | "tool" | "system" | "bash" | "skill";
422
+ readonly text: string;
423
+ /** True for the durable ask_user result that can be reopened through history. */
424
+ readonly isQuestion?: boolean;
425
+ }
426
+ /** Small, detached inputs for synchronous, side-effect-free availability checks. */
427
+ export interface MessageActionAvailabilityContext {
428
+ readonly machine: Readonly<PluginMachine>;
429
+ readonly session: Readonly<PluginSelectedSession & {
430
+ busy: boolean;
431
+ }>;
432
+ readonly message: MessageActionMessage;
433
+ }
434
+ /** Created on invocation, with helpers scoped to the initiating machine/conversation. */
435
+ export interface MessageActionContext extends MessageActionAvailabilityContext {
436
+ readonly prompt: PluginPromptEditor;
437
+ readonly navigate: PluginNavigate;
438
+ readonly projects: PluginProjects;
439
+ readonly workspace?: Workspace;
440
+ readonly files?: WorkspaceFilesContextValue;
441
+ readonly peer?: PluginPeer;
442
+ readonly terminal?: WorkspacePanelTerminal;
443
+ /** Guarded, fresh-history operations on this message; confirmation is the plugin's choice. */
444
+ readonly history: {
445
+ readonly fork: () => Promise<void>;
446
+ readonly goBack: () => Promise<void>;
447
+ };
448
+ }
449
+ /** Optional successful-action presentation, shown by the host for 1.2 seconds. */
450
+ export interface MessageActionFeedback {
451
+ readonly title: string;
452
+ readonly ariaLabel?: string;
453
+ readonly icon?: TemplateResult;
454
+ }
455
+ export type MessageActionResult = void | MessageActionFeedback;
456
+ interface MessageActionDefinition<AvailabilityContext, Context> {
457
+ id: LocalContributionId;
458
+ title: string;
459
+ icon?: TemplateResult;
460
+ /** Defaults to title. Synchronous and side-effect-free, like availability checks. */
461
+ ariaLabel?: (context: AvailabilityContext) => string;
462
+ /** Checks run only when their message/session inputs or active contributions change. No I/O. */
463
+ visible?: (context: AvailabilityContext) => boolean;
464
+ enabled?: (context: AvailabilityContext) => boolean;
465
+ /** Plugin-defined workflow; the host does not add a confirmation. */
466
+ run: (context: Context) => MaybePromise<MessageActionResult>;
467
+ }
468
+ /** Default action target: an identified transcript entry with guarded history helpers. */
469
+ export interface EntryMessageActionContribution extends MessageActionDefinition<MessageActionAvailabilityContext, MessageActionContext> {
470
+ target?: "entry";
471
+ }
472
+ /** The ordinary original text in one displayed header's slice, excluding thinking/tool payloads. */
473
+ export interface DisplayedMessageActionMessage {
474
+ /** Absent for optimistic or streaming messages. */
475
+ readonly entryId?: string;
476
+ readonly role: MessageActionMessage["role"];
477
+ /** Nonempty original text parts, trimmed individually and joined with blank lines. */
478
+ readonly text: string;
479
+ }
480
+ export interface DisplayedMessageActionAvailabilityContext extends Omit<MessageActionAvailabilityContext, "message"> {
481
+ readonly message: DisplayedMessageActionMessage;
482
+ }
483
+ /** Display-only workflows have no history helpers and can run alongside entry actions. */
484
+ export interface DisplayedMessageActionContext extends Omit<MessageActionContext, "message" | "history"> {
485
+ readonly message: DisplayedMessageActionMessage;
486
+ }
487
+ export interface DisplayedMessageActionContribution extends MessageActionDefinition<DisplayedMessageActionAvailabilityContext, DisplayedMessageActionContext> {
488
+ target: "display";
489
+ }
490
+ export type MessageActionContribution = EntryMessageActionContribution | DisplayedMessageActionContribution;
203
491
  export interface PluginAction {
204
492
  id: LocalContributionId;
205
493
  title: string;
@@ -307,44 +595,6 @@ export type WorkspacePanelFiles = WorkspaceFiles;
307
595
  export interface WorkspaceBackend {
308
596
  request(operation: string, input: JsonValue): Promise<JsonValue>;
309
597
  }
310
- export interface PluginPeerRequestOptions {
311
- /** Cancels this bounded request through local or federated host transport. */
312
- readonly signal?: AbortSignal;
313
- }
314
- /** Callbacks and cancellation for one bounded package-peer channel. */
315
- export interface PluginPeerChannelOptions {
316
- /** Cancels the channel open or closes the live channel through every host hop. */
317
- readonly signal?: AbortSignal;
318
- /** Receives one plugin-authored JSON frame after the channel is ready. */
319
- readonly onData: (data: JsonValue) => void;
320
- }
321
- export interface PluginPeerChannelClose {
322
- readonly code: number;
323
- readonly reason: string;
324
- readonly wasClean: boolean;
325
- /** Attributed host or server-plugin failure when one preceded the close. */
326
- readonly error?: Readonly<{
327
- code: string;
328
- message: string;
329
- }>;
330
- }
331
- export interface PluginPeerChannel {
332
- readonly closed: Promise<PluginPeerChannelClose>;
333
- /** Queue one bounded JSON frame or throw. Success means queue acceptance, not remote receipt. */
334
- send(data: JsonValue): void;
335
- close(reason?: string): void;
336
- }
337
- /**
338
- * Exact revision-paired path to this browser package's active server entry.
339
- * A peer supplies a request handler, a channel handler, or both, but never neither.
340
- */
341
- export type PluginPeer = {
342
- request(operation: string, input: JsonValue, options?: PluginPeerRequestOptions): Promise<JsonValue>;
343
- openChannel?(operation: string, input: JsonValue, options: PluginPeerChannelOptions): Promise<PluginPeerChannel>;
344
- } | {
345
- request?: undefined;
346
- openChannel(operation: string, input: JsonValue, options: PluginPeerChannelOptions): Promise<PluginPeerChannel>;
347
- };
348
598
  export interface WorkspaceHost {
349
599
  requestRender(): void;
350
600
  }
@@ -356,6 +606,8 @@ export interface WorkspaceContext {
356
606
  files: WorkspaceFilesContextValue;
357
607
  /** Legacy request path to the server module that owns this workspace. */
358
608
  backend?: WorkspaceBackend;
609
+ /** Read-only discovery on this context's machine. Omitted by older hosts. */
610
+ projects?: PluginProjects;
359
611
  /** Exact package-paired request/channel capabilities, independent of workspace ownership. */
360
612
  peer?: PluginPeer;
361
613
  host: WorkspaceHost;
@@ -383,12 +635,37 @@ export interface WorkspacePanelNavigationV1 {
383
635
  }
384
636
  export interface WorkspacePanelContext extends WorkspaceContext {
385
637
  /** Navigate using host restoration defaults. Route failures appear in the host UI. */
386
- navigate: (destination: PluginNavigationDestination) => Promise<void>;
638
+ navigate: PluginNavigate;
387
639
  prompt: PluginPromptEditor;
388
640
  terminal: WorkspacePanelTerminal;
389
641
  /** Contribution-scoped address-bar state for deep links and browser history. */
390
642
  navigation?: WorkspacePanelNavigationV1;
391
643
  }
644
+ /** Fresh selection context; available even when no project, workspace, or session is selected. */
645
+ export interface ApplicationPanelContext {
646
+ machine: PluginMachine;
647
+ state: PluginRuntimeState;
648
+ /** Read-only discovery on this context's machine. Omitted by older hosts. */
649
+ projects?: PluginProjects;
650
+ /** Present only when a workspace is selected on this machine. */
651
+ workspace?: Workspace;
652
+ /** Workspace-bound terminal; present only with a selected workspace and an available Terminal provider. */
653
+ terminal?: WorkspacePanelTerminal;
654
+ navigate: PluginNavigate;
655
+ prompt: PluginPromptEditor;
656
+ host: WorkspaceHost;
657
+ }
658
+ /** A third-column tool tab that does not require a workspace. */
659
+ export interface ApplicationPanelContribution {
660
+ id: LocalContributionId;
661
+ title: string;
662
+ icon?: TemplateResult;
663
+ order?: number;
664
+ routeAliases?: string[];
665
+ visible?: (context: ApplicationPanelContext) => boolean;
666
+ badge?: (context: ApplicationPanelContext) => string | number | TemplateResult | undefined;
667
+ render: (context: ApplicationPanelContext) => TemplateResult;
668
+ }
392
669
  export type WorkspacePanelIcon = TemplateResult;
393
670
  export type WorkspaceResource = "workspace.files";
394
671
  export type WorkspaceInvalidationReason = "manual" | "mutation" | "agent-activity";
@@ -397,14 +674,12 @@ export interface WorkspaceInvalidation {
397
674
  readonly resources: readonly WorkspaceResource[];
398
675
  }
399
676
  export interface WorkspacePanelContribution {
677
+ routeAliases?: string[];
678
+ navigationAliases?: string[];
400
679
  id: LocalContributionId;
401
680
  title: string;
402
681
  icon?: WorkspacePanelIcon;
403
682
  order?: number;
404
- /** Former URL tool/view values that should resolve to this panel. */
405
- routeAliases?: string[];
406
- /** Former qualified contribution ids whose namespaced query keys remain readable. */
407
- navigationAliases?: QualifiedContributionId[];
408
683
  visible?: (context: WorkspacePanelContext) => boolean;
409
684
  /** Return a deep-link query to open a workspace-relative file, or undefined if unsupported. */
410
685
  fileOpenQuery?: (context: WorkspacePanelContext, path: string) => Readonly<Record<string, ContributionQueryValue>> | undefined;
@@ -445,6 +720,36 @@ export interface WorkspaceLabelContribution {
445
720
  visible?: (context: WorkspaceLabelContext) => boolean;
446
721
  items: (context: WorkspaceLabelContext) => WorkspaceLabelItem[];
447
722
  }
723
+ /** Context for one session-list row, including unselected and archived sessions. */
724
+ export interface SessionLabelContext extends WorkspaceContext {
725
+ /** Basic detached row snapshot, not necessarily state.selectedSession. */
726
+ session: Readonly<PluginSelectedSession>;
727
+ navigate: PluginNavigate;
728
+ }
729
+ export type SessionLabelItem = SessionLabelTextItem | SessionLabelLinkItem | SessionLabelRenderItem;
730
+ export interface SessionLabelTextItem {
731
+ type: "text";
732
+ text: string;
733
+ title?: string;
734
+ }
735
+ export interface SessionLabelLinkItem {
736
+ type: "link";
737
+ text: string;
738
+ href: string;
739
+ title?: string;
740
+ target?: "_blank" | "_self";
741
+ }
742
+ export interface SessionLabelRenderItem {
743
+ type: "render";
744
+ render: () => TemplateResult;
745
+ }
746
+ /** Indicators on session-list rows only. Callbacks are synchronous and side-effect-free. */
747
+ export interface SessionLabelContribution {
748
+ id: LocalContributionId;
749
+ order?: number;
750
+ visible?: (context: SessionLabelContext) => boolean;
751
+ items: (context: SessionLabelContext) => SessionLabelItem[];
752
+ }
448
753
  export type ThemeColorScheme = "dark" | "light";
449
754
  export type ThemeTokens = Record<string, string>;
450
755
  export interface ThemeContribution {
@@ -463,3 +768,40 @@ export interface ThemePairContribution {
463
768
  light: LocalContributionId;
464
769
  dark: LocalContributionId;
465
770
  }
771
+ /** Styling is experimental: shared classes, tokens and presentation may change between releases. */
772
+ export interface StylesheetRootOptions {
773
+ /** Inject the host's shared controls and file/tree-row styles into this root. Defaults to false. */
774
+ readonly sharedUi?: boolean;
775
+ }
776
+ /**
777
+ * Host capability token: { pluginId: "pi-web", id: "stylesheet-integration", version: 1, parse }.
778
+ * Direct stylesheet rules reach only explicitly registered roots; custom properties can inherit further.
779
+ * Opt into shared UI styles per root; the host owns injection, ordering and cleanup.
780
+ * Styling, including shared classes and internal host markup, is experimental rather than a stable API.
781
+ */
782
+ export interface StylesheetIntegrationCapabilityV1 {
783
+ /** Register a retained open or closed root. Release on disconnect; register again on reconnect. */
784
+ readonly registerRoot: (root: ShadowRoot, options?: StylesheetRootOptions) => () => void;
785
+ /**
786
+ * Subscribe to active stylesheet changes after adoption in all registered roots.
787
+ * Includes removal, not initial subscription or root registration. Read initial values
788
+ * after registering your root. Listeners run synchronously; failures are logged in isolation.
789
+ * Release on disconnect. This does not observe arbitrary CSS mutations or media queries.
790
+ */
791
+ readonly subscribe: (listener: () => void) => () => void;
792
+ /** Installs a Lit lifecycle controller; call once when constructing the component. */
793
+ readonly createController: (host: ReactiveControllerHost & {
794
+ readonly renderRoot?: HTMLElement | DocumentFragment;
795
+ }, options?: StylesheetRootOptions) => void;
796
+ }
797
+ /** A CSS file, normally new URL("./custom.css", import.meta.url).href. Inline CSS and runtime @import are unsupported. */
798
+ export interface StylesheetContribution {
799
+ id: string;
800
+ /** Absolute HTTP(S) URL. Assets resolve relative to the CSS file, including redirects. */
801
+ url: string;
802
+ /** Lower numbers load first; default 1000. Ties use qualified contribution IDs. */
803
+ order?: number;
804
+ }
805
+ export interface ThemeContributionV5 extends Omit<ThemeContribution, "tokens"> {
806
+ stylesheets?: StylesheetContribution[];
807
+ }
@@ -9,7 +9,14 @@ export class WorkspaceActivityService {
9
9
  }
10
10
  /** Activity projection consumed by the daemon-owned machine status tree. */
11
11
  activeSnapshot(scope = NORMAL_SESSION_EVENT_SCOPE) {
12
- return { workspaces: this.activeCwds(scope).map((cwd) => this.summaryForCwd(cwd, scope)) };
12
+ return {
13
+ workspaces: this.activeCwds(scope).map((cwd) => this.summaryForCwd(cwd, scope)),
14
+ sessions: [...this.sessions].flatMap(([key, record]) => {
15
+ const identity = unscopedKey(key);
16
+ return identity.scope === scope && isSessionActive(record.status, record.activity)
17
+ ? [{ sessionId: identity.id, cwd: record.cwd }] : [];
18
+ }),
19
+ };
13
20
  }
14
21
  applySessionStatus(cwd, status, scope = NORMAL_SESSION_EVENT_SCOPE) {
15
22
  const key = scopedKey(status.sessionId, scope);
@@ -1 +1 @@
1
- {"version":3,"file":"workspaceActivityService.js","sourceRoot":"","sources":["../../../src/server/activity/workspaceActivityService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspaceActivityService.js","sourceRoot":"","sources":["../../../src/server/activity/workspaceActivityService.ts"],"names":[],"mappings":"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"}