@chainingintention/pi-web-cn 2.0.0 → 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 (584) hide show
  1. package/README.md +61 -106
  2. package/dist/.plugins-ready +1 -0
  3. package/dist/cli.js +331 -174
  4. package/dist/cli.js.map +1 -1
  5. package/dist/client/apple-touch-icon-dev.png +0 -0
  6. package/dist/client/assets/PiWebApp-BXSziMEg.js +4921 -0
  7. package/dist/client/assets/classic-CyM97Akm.css +54 -0
  8. package/dist/client/assets/external-B9K8duyP.js +2 -0
  9. package/dist/client/assets/graphite-DquaqFXU.css +54 -0
  10. package/dist/client/assets/index-cdtUOfOW.js +2 -0
  11. package/dist/client/assets/paper-CB1oLuRr.css +54 -0
  12. package/dist/client/assets/pi-web-dark-D_KtbM95.css +54 -0
  13. package/dist/client/assets/pi-web-light-DSNLMIBI.css +54 -0
  14. package/dist/client/assets/vendor-editor-core-BfnHL1Dg.js +10 -0
  15. package/dist/client/assets/vendor-editor-languages-bNquDJP0.js +28 -0
  16. package/dist/client/favicon-dev.svg +8 -0
  17. package/dist/client/index.html +7 -51
  18. package/dist/client/manifest.webmanifest +2 -1
  19. package/dist/client/pwa-icon-dev-192.png +0 -0
  20. package/dist/client/pwa-icon-dev-512.png +0 -0
  21. package/dist/config.js +55 -8
  22. package/dist/config.js.map +1 -1
  23. package/dist/docker/piWebDockerCommandPlan.js +13 -4
  24. package/dist/docker/piWebDockerCommandPlan.js.map +1 -1
  25. package/dist/environment.js +4 -0
  26. package/dist/environment.js.map +1 -0
  27. package/dist/localization.js +24 -0
  28. package/dist/localization.js.map +1 -0
  29. package/dist/nativeServices/installedServiceDefinitions.js +617 -0
  30. package/dist/nativeServices/installedServiceDefinitions.js.map +1 -0
  31. package/dist/nativeServices/serviceAction.js +78 -20
  32. package/dist/nativeServices/serviceAction.js.map +1 -1
  33. package/dist/nativeServices/serviceDoctor.js +418 -114
  34. package/dist/nativeServices/serviceDoctor.js.map +1 -1
  35. package/dist/nativeServices/servicePlan.js +2 -2
  36. package/dist/nativeServices/servicePlan.js.map +1 -1
  37. package/dist/pi-packages/captains-log/README.md +11 -0
  38. package/dist/pi-packages/captains-log/dist/browser/channelProtocol.js +29 -0
  39. package/dist/pi-packages/captains-log/dist/browser/index.js +143 -0
  40. package/dist/pi-packages/captains-log/dist/browser/markdown.js +68 -0
  41. package/dist/pi-packages/captains-log/dist/browser/panel.js +148 -0
  42. package/dist/pi-packages/captains-log/dist/browser/protocol.js +26 -0
  43. package/dist/pi-packages/captains-log/dist/companion.js +126 -0
  44. package/dist/pi-packages/captains-log/dist/roundtrip.js +62 -0
  45. package/dist/pi-packages/captains-log/dist/server.js +210 -0
  46. package/dist/pi-packages/captains-log/dist/store.js +75 -0
  47. package/dist/pi-packages/captains-log/docs/usage.md +29 -0
  48. package/dist/pi-packages/captains-log/i18n.js +7 -0
  49. package/dist/pi-packages/captains-log/package.json +35 -0
  50. package/dist/pi-packages/captains-log/tsconfig.json +21 -0
  51. package/dist/pi-packages/captains-log/vite.config.mjs +28 -0
  52. package/dist/pi-packages/relays/extensions/index.js +61 -0
  53. package/dist/pi-packages/relays/i18n.js +7 -0
  54. package/dist/{pi-web-plugins → pi-packages}/relays/markdownDocument.js +3 -2
  55. package/dist/pi-packages/relays/package.json +20 -0
  56. package/dist/pi-packages/relays/pi-web-plugin.js +96 -0
  57. package/dist/pi-packages/relays/prompts/relay-worktree.md +18 -0
  58. package/dist/pi-packages/relays/prompts/relay.md +18 -0
  59. package/dist/{pi-web-plugins → pi-packages}/relays/relayDiscovery.js +2 -2
  60. package/dist/pi-packages/relays/relayDispatch.js +67 -0
  61. package/dist/pi-packages/relays/relayIdentity.js +37 -0
  62. package/dist/{pi-web-plugins → pi-packages}/relays/relaysPanelElement.js +98 -59
  63. package/dist/pi-packages/relays/skills/relay/SKILL.md +50 -0
  64. package/dist/pi-packages/relays/skills/relay-runner/SKILL.md +74 -0
  65. package/dist/pi-packages/workflows/browser/pi-web-plugin.js +42 -0
  66. package/dist/pi-packages/workflows/browser/worktreeDialog.js +170 -0
  67. package/dist/pi-packages/workflows/package.json +23 -0
  68. package/dist/pi-packages/workflows/prompts/worktree.md +21 -0
  69. package/dist/pi-packages/workflows/server-plugin.js +586 -0
  70. package/dist/pi-packages/workflows/vite.config.mjs +17 -0
  71. package/dist/pi-web-plugins/code-highlight/browser/pi-web-plugin.js +22 -0
  72. package/dist/pi-web-plugins/code-highlight/package.json +13 -0
  73. package/dist/pi-web-plugins/files/browser/assets/files-icon-DZObYhxb.svg +3 -0
  74. package/dist/pi-web-plugins/files/browser/pi-web-plugin.js +466 -0
  75. package/dist/pi-web-plugins/files/package.json +15 -0
  76. package/dist/pi-web-plugins/git/browser/git-contract.js +22 -11
  77. package/dist/pi-web-plugins/git/browser/git-panel.js +228 -100
  78. package/dist/pi-web-plugins/git/browser/i18n.js +7 -0
  79. package/dist/pi-web-plugins/git/browser/pi-web-plugin.js +28 -4
  80. package/dist/pi-web-plugins/git/git-backend.js +61 -21
  81. package/dist/pi-web-plugins/git/gitStatusCache.js +48 -0
  82. package/dist/pi-web-plugins/git/i18n.js +7 -0
  83. package/dist/pi-web-plugins/git/package.json +1 -0
  84. package/dist/pi-web-plugins/git/server-plugin.js +45 -24
  85. package/dist/pi-web-plugins/git/workspace-discovery-notify.cjs +14 -0
  86. package/dist/pi-web-plugins/git/workspaceDiscoveryHooks.js +186 -0
  87. package/dist/pi-web-plugins/info/i18n.js +7 -0
  88. package/dist/pi-web-plugins/info/infoInternals.js +76 -65
  89. package/dist/pi-web-plugins/info/package.json +1 -1
  90. package/dist/pi-web-plugins/info/pi-web-plugin.js +40 -42
  91. package/dist/pi-web-plugins/mermaid/browser/mermaid-engine.js +4255 -0
  92. package/dist/pi-web-plugins/mermaid/browser/pi-web-plugin.js +11 -0
  93. package/dist/pi-web-plugins/mermaid/package.json +13 -0
  94. package/dist/pi-web-plugins/terminal/browser/pi-web-plugin.js +219 -0
  95. package/dist/pi-web-plugins/terminal/i18n.js +7 -0
  96. package/dist/pi-web-plugins/terminal/package.json +16 -0
  97. package/dist/pi-web-plugins/terminal/server-plugin.js +367 -0
  98. package/dist/pi-web-plugins/terminal/terminalService.js +436 -0
  99. package/dist/pi-web-plugins/updates/i18n.js +7 -0
  100. package/dist/pi-web-plugins/updates/package.json +1 -1
  101. package/dist/pi-web-plugins/updates/pi-web-plugin.js +143 -140
  102. package/dist/pi-web-plugins/updates/updatesLogic.js +24 -24
  103. package/dist/pi-web-plugins/workspace-tasks/config.js +12 -11
  104. package/dist/pi-web-plugins/workspace-tasks/i18n.js +7 -0
  105. package/dist/pi-web-plugins/workspace-tasks/package.json +1 -1
  106. package/dist/pi-web-plugins/workspace-tasks/pi-web-plugin.js +31 -9
  107. package/dist/pi-web-plugins/workspace-tasks/tasksPanelElement.js +54 -36
  108. package/dist/pi-web-plugins/workspace-tasks/workspaceTasksClient.js +12 -11
  109. package/dist/pi-web-plugins/zh-cn/auth.json +9 -0
  110. package/dist/pi-web-plugins/zh-cn/bundled.json +219 -0
  111. package/dist/pi-web-plugins/zh-cn/cli.json +230 -0
  112. package/dist/pi-web-plugins/zh-cn/client.json +225 -0
  113. package/dist/pi-web-plugins/zh-cn/components.json +1252 -0
  114. package/dist/pi-web-plugins/zh-cn/config-errors.json +188 -0
  115. package/dist/pi-web-plugins/zh-cn/files.json +50 -0
  116. package/dist/pi-web-plugins/zh-cn/machines.json +28 -0
  117. package/dist/pi-web-plugins/zh-cn/main.json +459 -0
  118. package/dist/pi-web-plugins/zh-cn/management-errors.json +23 -0
  119. package/dist/pi-web-plugins/zh-cn/manifest.webmanifest +25 -0
  120. package/dist/pi-web-plugins/zh-cn/metadata.json +3 -0
  121. package/dist/pi-web-plugins/zh-cn/package.json +10 -0
  122. package/dist/pi-web-plugins/zh-cn/pi-web-plugin.js +16 -0
  123. package/dist/pi-web-plugins/zh-cn/projects.json +6 -0
  124. package/dist/pi-web-plugins/zh-cn/provider-auth.json +18 -0
  125. package/dist/pi-web-plugins/zh-cn/routing.json +68 -0
  126. package/dist/pi-web-plugins/zh-cn/server-main.json +99 -0
  127. package/dist/pi-web-plugins/zh-cn/server.json +256 -0
  128. package/dist/piAi.js +4 -0
  129. package/dist/piAi.js.map +1 -0
  130. package/dist/piRuntime.js +150 -0
  131. package/dist/piRuntime.js.map +1 -0
  132. package/dist/piSdk.js +5 -0
  133. package/dist/piSdk.js.map +1 -0
  134. package/dist/piWebUpdate.js +508 -0
  135. package/dist/piWebUpdate.js.map +1 -0
  136. package/dist/piWebVersionReport.js +109 -41
  137. package/dist/piWebVersionReport.js.map +1 -1
  138. package/dist/plugin-api.d.ts +609 -29
  139. package/dist/plugin-api.js +1 -0
  140. package/dist/pluginRecoveryCli.js +27 -25
  141. package/dist/pluginRecoveryCli.js.map +1 -1
  142. package/dist/server/activity/workspaceActivityService.js +13 -6
  143. package/dist/server/activity/workspaceActivityService.js.map +1 -1
  144. package/dist/server/app.js +155 -77
  145. package/dist/server/app.js.map +1 -1
  146. package/dist/server/audit/managementAuditStore.js +6 -1
  147. package/dist/server/audit/managementAuditStore.js.map +1 -1
  148. package/dist/server/audit/normalToolAuditCli.js +45 -43
  149. package/dist/server/audit/normalToolAuditCli.js.map +1 -1
  150. package/dist/server/browserMessageProjection.js +39 -22
  151. package/dist/server/browserMessageProjection.js.map +1 -1
  152. package/dist/server/configRoutes.js +54 -33
  153. package/dist/server/configRoutes.js.map +1 -1
  154. package/dist/server/deploymentIdentity.js +67 -0
  155. package/dist/server/deploymentIdentity.js.map +1 -0
  156. package/dist/server/deploymentIdentityRoutes.js +22 -0
  157. package/dist/server/deploymentIdentityRoutes.js.map +1 -0
  158. package/dist/server/diagnostics/nodePtyNativeModule.js +7 -6
  159. package/dist/server/diagnostics/nodePtyNativeModule.js.map +1 -1
  160. package/dist/server/diagnostics/nodePtySpawnHelper.js +21 -20
  161. package/dist/server/diagnostics/nodePtySpawnHelper.js.map +1 -1
  162. package/dist/server/index.js +10 -1
  163. package/dist/server/index.js.map +1 -1
  164. package/dist/server/knownAutoInstallPiPackages.js +36 -0
  165. package/dist/server/knownAutoInstallPiPackages.js.map +1 -0
  166. package/dist/server/knownPiPackages.js +12 -0
  167. package/dist/server/knownPiPackages.js.map +1 -0
  168. package/dist/server/machines/machineClient.js +23 -19
  169. package/dist/server/machines/machineClient.js.map +1 -1
  170. package/dist/server/machines/machinePluginProxyRoutes.js +131 -31
  171. package/dist/server/machines/machinePluginProxyRoutes.js.map +1 -1
  172. package/dist/server/machines/machineProxyRoutes.js +138 -47
  173. package/dist/server/machines/machineProxyRoutes.js.map +1 -1
  174. package/dist/server/machines/machineRoutes.js +18 -13
  175. package/dist/server/machines/machineRoutes.js.map +1 -1
  176. package/dist/server/machines/machineService.js +40 -18
  177. package/dist/server/machines/machineService.js.map +1 -1
  178. package/dist/server/managementEmbed.js +149 -30
  179. package/dist/server/managementEmbed.js.map +1 -1
  180. package/dist/server/managementPrivileges.js +21 -0
  181. package/dist/server/managementPrivileges.js.map +1 -0
  182. package/dist/server/managementTerminalProxyRoutes.js +124 -0
  183. package/dist/server/managementTerminalProxyRoutes.js.map +1 -0
  184. package/dist/server/navigationPreferenceRoutes.js +59 -0
  185. package/dist/server/navigationPreferenceRoutes.js.map +1 -0
  186. package/dist/server/normalAuth.js +77 -53
  187. package/dist/server/normalAuth.js.map +1 -1
  188. package/dist/server/notices/serverNoticeRoutes.js +43 -0
  189. package/dist/server/notices/serverNoticeRoutes.js.map +1 -0
  190. package/dist/server/notices/serverNoticeService.js +26 -0
  191. package/dist/server/notices/serverNoticeService.js.map +1 -0
  192. package/dist/server/notices/serverNoticeStore.js +122 -0
  193. package/dist/server/notices/serverNoticeStore.js.map +1 -0
  194. package/dist/server/passwordVerifier.js +91 -0
  195. package/dist/server/passwordVerifier.js.map +1 -0
  196. package/dist/server/piPackageIdentity.js +25 -0
  197. package/dist/server/piPackageIdentity.js.map +1 -0
  198. package/dist/server/piPackageService.js +72 -9
  199. package/dist/server/piPackageService.js.map +1 -1
  200. package/dist/server/piWebPluginCatalog.js +212 -35
  201. package/dist/server/piWebPluginCatalog.js.map +1 -1
  202. package/dist/server/piWebPluginLifecycle.js +29 -3
  203. package/dist/server/piWebPluginLifecycle.js.map +1 -1
  204. package/dist/server/piWebPluginService.js +199 -292
  205. package/dist/server/piWebPluginService.js.map +1 -1
  206. package/dist/server/piWebStatus.js +57 -100
  207. package/dist/server/piWebStatus.js.map +1 -1
  208. package/dist/server/pluginCallbackDrain.js +35 -0
  209. package/dist/server/pluginCallbackDrain.js.map +1 -0
  210. package/dist/server/plugins/pluginBackendChannelProxyAdmission.js +84 -0
  211. package/dist/server/plugins/pluginBackendChannelProxyAdmission.js.map +1 -0
  212. package/dist/server/plugins/pluginBackendChannelProxyCoordinator.js +234 -0
  213. package/dist/server/plugins/pluginBackendChannelProxyCoordinator.js.map +1 -0
  214. package/dist/server/plugins/pluginBackendChannelProxyRoutes.js +61 -0
  215. package/dist/server/plugins/pluginBackendChannelProxyRoutes.js.map +1 -0
  216. package/dist/server/plugins/pluginBackendProxyRoutes.js +47 -57
  217. package/dist/server/plugins/pluginBackendProxyRoutes.js.map +1 -1
  218. package/dist/server/plugins/pluginBackendRegistry.js +804 -0
  219. package/dist/server/plugins/pluginBackendRegistry.js.map +1 -0
  220. package/dist/server/plugins/projectPluginSettings.js +95 -0
  221. package/dist/server/plugins/projectPluginSettings.js.map +1 -0
  222. package/dist/server/plugins/serverPluginCatalogCapability.js +106 -0
  223. package/dist/server/plugins/serverPluginCatalogCapability.js.map +1 -0
  224. package/dist/server/plugins/serverPluginPiSessionEventsCapability.js +34 -0
  225. package/dist/server/plugins/serverPluginPiSessionEventsCapability.js.map +1 -0
  226. package/dist/server/plugins/serverPluginPiSessionsCapability.js +185 -0
  227. package/dist/server/plugins/serverPluginPiSessionsCapability.js.map +1 -0
  228. package/dist/server/plugins/serverPluginRuntime.js +1088 -108
  229. package/dist/server/plugins/serverPluginRuntime.js.map +1 -1
  230. package/dist/server/plugins/serverPluginWorkspacesCapability.js +114 -0
  231. package/dist/server/plugins/serverPluginWorkspacesCapability.js.map +1 -0
  232. package/dist/server/projectTrustRoutes.js +86 -0
  233. package/dist/server/projectTrustRoutes.js.map +1 -0
  234. package/dist/server/projects/projectLifecycleService.js +94 -0
  235. package/dist/server/projects/projectLifecycleService.js.map +1 -0
  236. package/dist/server/projects/projectService.js +7 -4
  237. package/dist/server/projects/projectService.js.map +1 -1
  238. package/dist/server/realtime/sessionEventHub.js +58 -39
  239. package/dist/server/realtime/sessionEventHub.js.map +1 -1
  240. package/dist/server/realtime/sessionEventScope.js +4 -0
  241. package/dist/server/realtime/sessionEventScope.js.map +1 -1
  242. package/dist/server/requestCancellation.js +15 -1
  243. package/dist/server/requestCancellation.js.map +1 -1
  244. package/dist/server/sessiond/agentHttpDispatcher.js +108 -0
  245. package/dist/server/sessiond/agentHttpDispatcher.js.map +1 -0
  246. package/dist/server/sessiond/autoInstallPiPackages.js +63 -0
  247. package/dist/server/sessiond/autoInstallPiPackages.js.map +1 -0
  248. package/dist/server/sessiond/pluginBackendChannelRoutes.js +410 -0
  249. package/dist/server/sessiond/pluginBackendChannelRoutes.js.map +1 -0
  250. package/dist/server/sessiond/pluginBackendRoutes.js +64 -47
  251. package/dist/server/sessiond/pluginBackendRoutes.js.map +1 -1
  252. package/dist/server/sessiond/pluginCatalogRoutes.js +41 -0
  253. package/dist/server/sessiond/pluginCatalogRoutes.js.map +1 -0
  254. package/dist/server/sessiond/projectMutationRoutes.js +39 -0
  255. package/dist/server/sessiond/projectMutationRoutes.js.map +1 -0
  256. package/dist/server/sessiond/sessionDaemonShutdown.js +36 -0
  257. package/dist/server/sessiond/sessionDaemonShutdown.js.map +1 -0
  258. package/dist/server/sessiond/sessionDaemonStartup.js +30 -4
  259. package/dist/server/sessiond/sessionDaemonStartup.js.map +1 -1
  260. package/dist/server/sessiond/sessionProxyRoutes.js +263 -91
  261. package/dist/server/sessiond/sessionProxyRoutes.js.map +1 -1
  262. package/dist/server/sessiond/sessionServiceDependencies.js +5 -0
  263. package/dist/server/sessiond/sessionServiceDependencies.js.map +1 -1
  264. package/dist/server/sessiond/sessiondStateOwnership.js +174 -39
  265. package/dist/server/sessiond/sessiondStateOwnership.js.map +1 -1
  266. package/dist/server/sessiond/workspaceCatalogRoutes.js +11 -5
  267. package/dist/server/sessiond/workspaceCatalogRoutes.js.map +1 -1
  268. package/dist/server/sessiond/workspaceNotificationRoutes.js +55 -0
  269. package/dist/server/sessiond/workspaceNotificationRoutes.js.map +1 -0
  270. package/dist/server/sessiond/workspaceRemovalRoutes.js +1 -1
  271. package/dist/server/sessiond/workspaceRemovalRoutes.js.map +1 -1
  272. package/dist/server/sessiond.js +313 -69
  273. package/dist/server/sessiond.js.map +1 -1
  274. package/dist/server/sessions/askUserDomain.js +232 -0
  275. package/dist/server/sessions/askUserDomain.js.map +1 -0
  276. package/dist/server/sessions/askUserTool.js +18 -21
  277. package/dist/server/sessions/askUserTool.js.map +1 -1
  278. package/dist/server/sessions/attachmentService.js +2 -6
  279. package/dist/server/sessions/attachmentService.js.map +1 -1
  280. package/dist/server/sessions/authRoutes.js +32 -19
  281. package/dist/server/sessions/authRoutes.js.map +1 -1
  282. package/dist/server/sessions/authService.js +31 -11
  283. package/dist/server/sessions/authService.js.map +1 -1
  284. package/dist/server/sessions/builtinCommands.js +28 -21
  285. package/dist/server/sessions/builtinCommands.js.map +1 -1
  286. package/dist/server/sessions/builtinExtensionFactories.js +36 -0
  287. package/dist/server/sessions/builtinExtensionFactories.js.map +1 -0
  288. package/dist/server/sessions/clientSessionPreview.js +14 -0
  289. package/dist/server/sessions/clientSessionPreview.js.map +1 -0
  290. package/dist/server/sessions/companionBackend.js +286 -0
  291. package/dist/server/sessions/companionBackend.js.map +1 -0
  292. package/dist/server/sessions/dockerEnvironmentFacts.js +98 -10
  293. package/dist/server/sessions/dockerEnvironmentFacts.js.map +1 -1
  294. package/dist/server/sessions/extensionSessionDispatch.js +76 -0
  295. package/dist/server/sessions/extensionSessionDispatch.js.map +1 -0
  296. package/dist/server/sessions/globalProviderPolicy.js +88 -19
  297. package/dist/server/sessions/globalProviderPolicy.js.map +1 -1
  298. package/dist/server/sessions/managementAgentTools.js +116 -6
  299. package/dist/server/sessions/managementAgentTools.js.map +1 -1
  300. package/dist/server/sessions/managementPermissionSystem.js +36 -14
  301. package/dist/server/sessions/managementPermissionSystem.js.map +1 -1
  302. package/dist/server/sessions/managementSandbox.js +7 -18
  303. package/dist/server/sessions/managementSandbox.js.map +1 -1
  304. package/dist/server/sessions/mcpAuthFlowService.js +289 -0
  305. package/dist/server/sessions/mcpAuthFlowService.js.map +1 -0
  306. package/dist/server/sessions/mcpAuthRoutes.js +104 -0
  307. package/dist/server/sessions/mcpAuthRoutes.js.map +1 -0
  308. package/dist/server/sessions/mcpOAuthCredentialAdapter.js +92 -0
  309. package/dist/server/sessions/mcpOAuthCredentialAdapter.js.map +1 -0
  310. package/dist/server/sessions/messageHistoryTarget.js +79 -0
  311. package/dist/server/sessions/messageHistoryTarget.js.map +1 -0
  312. package/dist/server/sessions/messagePaging.js +2 -2
  313. package/dist/server/sessions/messagePaging.js.map +1 -1
  314. package/dist/server/sessions/modelCatalogRefresher.js +4 -3
  315. package/dist/server/sessions/modelCatalogRefresher.js.map +1 -1
  316. package/dist/server/sessions/oauthLoginFlowService.js +19 -20
  317. package/dist/server/sessions/oauthLoginFlowService.js.map +1 -1
  318. package/dist/server/sessions/piSessionEventConnections.js +68 -0
  319. package/dist/server/sessions/piSessionEventConnections.js.map +1 -0
  320. package/dist/server/sessions/piSessionManagerGateway.js +206 -27
  321. package/dist/server/sessions/piSessionManagerGateway.js.map +1 -1
  322. package/dist/server/sessions/piSessionService.js +2508 -991
  323. package/dist/server/sessions/piSessionService.js.map +1 -1
  324. package/dist/server/sessions/plainTextTheme.js +1 -1
  325. package/dist/server/sessions/plainTextTheme.js.map +1 -1
  326. package/dist/server/sessions/projectAuthService.js +35 -6
  327. package/dist/server/sessions/projectAuthService.js.map +1 -1
  328. package/dist/server/sessions/projectSettingsScope.js +88 -33
  329. package/dist/server/sessions/projectSettingsScope.js.map +1 -1
  330. package/dist/server/sessions/projectTrust.js +119 -0
  331. package/dist/server/sessions/projectTrust.js.map +1 -0
  332. package/dist/server/sessions/queuedMessageMutation.js +170 -0
  333. package/dist/server/sessions/queuedMessageMutation.js.map +1 -0
  334. package/dist/server/sessions/relaySkill.js +169 -0
  335. package/dist/server/sessions/relaySkill.js.map +1 -0
  336. package/dist/server/sessions/sessionActivityMarker.js +105 -0
  337. package/dist/server/sessions/sessionActivityMarker.js.map +1 -0
  338. package/dist/server/sessions/sessionArchiveMapping.js +16 -15
  339. package/dist/server/sessions/sessionArchiveMapping.js.map +1 -1
  340. package/dist/server/sessions/sessionArchiveStore.js +5 -1
  341. package/dist/server/sessions/sessionArchiveStore.js.map +1 -1
  342. package/dist/server/sessions/sessionArchiveTree.js +2 -2
  343. package/dist/server/sessions/sessionArchiveTree.js.map +1 -1
  344. package/dist/server/sessions/sessionCleanup.js +4 -3
  345. package/dist/server/sessions/sessionCleanup.js.map +1 -1
  346. package/dist/server/sessions/sessionCommandService.js +79 -87
  347. package/dist/server/sessions/sessionCommandService.js.map +1 -1
  348. package/dist/server/sessions/sessionEnvironmentFacts.js +5 -4
  349. package/dist/server/sessions/sessionEnvironmentFacts.js.map +1 -1
  350. package/dist/server/sessions/sessionFileHeader.js +41 -0
  351. package/dist/server/sessions/sessionFileHeader.js.map +1 -1
  352. package/dist/server/sessions/sessionImageDimensions.js +31 -0
  353. package/dist/server/sessions/sessionImageDimensions.js.map +1 -0
  354. package/dist/server/sessions/sessionMediaIndex.js +191 -0
  355. package/dist/server/sessions/sessionMediaIndex.js.map +1 -0
  356. package/dist/server/sessions/sessionMetadata.js +51 -0
  357. package/dist/server/sessions/sessionMetadata.js.map +1 -0
  358. package/dist/server/sessions/sessionModelScope.js +160 -0
  359. package/dist/server/sessions/sessionModelScope.js.map +1 -0
  360. package/dist/server/sessions/sessionNameGenerator.js +16 -35
  361. package/dist/server/sessions/sessionNameGenerator.js.map +1 -1
  362. package/dist/server/sessions/sessionNotificationStore.js +14 -11
  363. package/dist/server/sessions/sessionNotificationStore.js.map +1 -1
  364. package/dist/server/sessions/sessionReadAccess.js +41 -0
  365. package/dist/server/sessions/sessionReadAccess.js.map +1 -0
  366. package/dist/server/sessions/sessionRoutes.js +221 -78
  367. package/dist/server/sessions/sessionRoutes.js.map +1 -1
  368. package/dist/server/sessions/sessionSummaryScanner.js +62 -5
  369. package/dist/server/sessions/sessionSummaryScanner.js.map +1 -1
  370. package/dist/server/sessions/sessionTreeProjection.js +50 -49
  371. package/dist/server/sessions/sessionTreeProjection.js.map +1 -1
  372. package/dist/server/sessions/sessionUiEvents.js +22 -10
  373. package/dist/server/sessions/sessionUiEvents.js.map +1 -1
  374. package/dist/server/sessions/sessionUnreadStore.js +53 -3
  375. package/dist/server/sessions/sessionUnreadStore.js.map +1 -1
  376. package/dist/server/sessions/spawnSessionTool.js +14 -6
  377. package/dist/server/sessions/spawnSessionTool.js.map +1 -1
  378. package/dist/server/sessions/spawnSubsessionTool.js +40 -24
  379. package/dist/server/sessions/spawnSubsessionTool.js.map +1 -1
  380. package/dist/server/sessions/spawnTargetResolver.js +1 -1
  381. package/dist/server/sessions/subsessionCompletionDelivery.js +15 -0
  382. package/dist/server/sessions/subsessionCompletionDelivery.js.map +1 -0
  383. package/dist/server/sessions/subsessionCompletionInbox.js +134 -0
  384. package/dist/server/sessions/subsessionCompletionInbox.js.map +1 -0
  385. package/dist/server/sessions/subsessionProvenance.js +27 -0
  386. package/dist/server/sessions/subsessionProvenance.js.map +1 -0
  387. package/dist/server/sessions/transcriptBranchCache.js +81 -0
  388. package/dist/server/sessions/transcriptBranchCache.js.map +1 -0
  389. package/dist/server/sessions/transcriptMarkdown.js +48 -0
  390. package/dist/server/sessions/transcriptMarkdown.js.map +1 -0
  391. package/dist/server/sessions/transcriptMessages.js +57 -0
  392. package/dist/server/sessions/transcriptMessages.js.map +1 -0
  393. package/dist/server/startupLogger.js +13 -0
  394. package/dist/server/startupLogger.js.map +1 -0
  395. package/dist/server/startupUrls.js +27 -0
  396. package/dist/server/startupUrls.js.map +1 -0
  397. package/dist/server/status/machineStatusService.js +15 -7
  398. package/dist/server/status/machineStatusService.js.map +1 -1
  399. package/dist/server/storage/navigationPreferenceStore.js +138 -0
  400. package/dist/server/storage/navigationPreferenceStore.js.map +1 -0
  401. package/dist/server/storage/piPackageDismissalStore.js +78 -0
  402. package/dist/server/storage/piPackageDismissalStore.js.map +1 -0
  403. package/dist/server/terminals/{terminalService.js → managementCommandRunService.js} +98 -102
  404. package/dist/server/terminals/managementCommandRunService.js.map +1 -0
  405. package/dist/server/terminals/managementTerminalRoutes.js +91 -0
  406. package/dist/server/terminals/managementTerminalRoutes.js.map +1 -0
  407. package/dist/server/terminals/requiredTerminalService.js +103 -0
  408. package/dist/server/terminals/requiredTerminalService.js.map +1 -0
  409. package/dist/server/webSocketBridge.js +348 -0
  410. package/dist/server/webSocketBridge.js.map +1 -1
  411. package/dist/server/workbench/accessStateStore.js +33 -5
  412. package/dist/server/workbench/accessStateStore.js.map +1 -1
  413. package/dist/server/workbench/capabilitySearch.js +3 -2
  414. package/dist/server/workbench/capabilitySearch.js.map +1 -1
  415. package/dist/server/workbench/gatewayIntegration.js +40 -13
  416. package/dist/server/workbench/gatewayIntegration.js.map +1 -1
  417. package/dist/server/workbench/knowledgeSearch.js +100 -0
  418. package/dist/server/workbench/knowledgeSearch.js.map +1 -0
  419. package/dist/server/workbench/mcpClient.js +41 -8
  420. package/dist/server/workbench/mcpClient.js.map +1 -1
  421. package/dist/server/workbench/skillSync.js +11 -3
  422. package/dist/server/workbench/skillSync.js.map +1 -1
  423. package/dist/server/workbench/workbenchClient.js +130 -7
  424. package/dist/server/workbench/workbenchClient.js.map +1 -1
  425. package/dist/server/workbench/workbenchTools.js +196 -14
  426. package/dist/server/workbench/workbenchTools.js.map +1 -1
  427. package/dist/server/workingDirectory.js +3 -2
  428. package/dist/server/workingDirectory.js.map +1 -1
  429. package/dist/server/workspaceExplorerRoutes.js +53 -21
  430. package/dist/server/workspaceExplorerRoutes.js.map +1 -1
  431. package/dist/server/workspaces/fileContentService.js +31 -16
  432. package/dist/server/workspaces/fileContentService.js.map +1 -1
  433. package/dist/server/workspaces/fileOperationService.js +11 -9
  434. package/dist/server/workspaces/fileOperationService.js.map +1 -1
  435. package/dist/server/workspaces/filePreviewService.js +10 -6
  436. package/dist/server/workspaces/filePreviewService.js.map +1 -1
  437. package/dist/server/workspaces/fileSuggestions.js +77 -10
  438. package/dist/server/workspaces/fileSuggestions.js.map +1 -1
  439. package/dist/server/workspaces/fileTreeService.js +103 -15
  440. package/dist/server/workspaces/fileTreeService.js.map +1 -1
  441. package/dist/server/workspaces/normalProjectCwdResolver.js +35 -0
  442. package/dist/server/workspaces/normalProjectCwdResolver.js.map +1 -0
  443. package/dist/server/workspaces/pathAccessPolicy.js +24 -18
  444. package/dist/server/workspaces/pathAccessPolicy.js.map +1 -1
  445. package/dist/server/workspaces/pathSafety.js +6 -5
  446. package/dist/server/workspaces/pathSafety.js.map +1 -1
  447. package/dist/server/workspaces/projectPiWebConfig.js +95 -8
  448. package/dist/server/workspaces/projectPiWebConfig.js.map +1 -1
  449. package/dist/server/workspaces/projectWorkspaceCwds.js +0 -5
  450. package/dist/server/workspaces/projectWorkspaceCwds.js.map +1 -1
  451. package/dist/server/workspaces/sessionDaemonWorkspaceCatalog.js +37 -22
  452. package/dist/server/workspaces/sessionDaemonWorkspaceCatalog.js.map +1 -1
  453. package/dist/server/workspaces/workspaceCatalog.js +6 -4
  454. package/dist/server/workspaces/workspaceCatalog.js.map +1 -1
  455. package/dist/server/workspaces/workspaceChangeNotifier.js +12 -0
  456. package/dist/server/workspaces/workspaceChangeNotifier.js.map +1 -0
  457. package/dist/server/workspaces/workspaceDeletionRoutes.js +9 -70
  458. package/dist/server/workspaces/workspaceDeletionRoutes.js.map +1 -1
  459. package/dist/server/workspaces/workspaceNotificationCommand.js +64 -0
  460. package/dist/server/workspaces/workspaceNotificationCommand.js.map +1 -0
  461. package/dist/server/workspaces/workspaceProviderRegistry.js +128 -24
  462. package/dist/server/workspaces/workspaceProviderRegistry.js.map +1 -1
  463. package/dist/server/workspaces/workspaceRemovalService.js +41 -7
  464. package/dist/server/workspaces/workspaceRemovalService.js.map +1 -1
  465. package/dist/server/workspaces/workspaceRouteContext.js +1 -1
  466. package/dist/server/workspaces/workspaceRouteContext.js.map +1 -1
  467. package/dist/server/workspaces/workspaceRouteErrors.js +4 -2
  468. package/dist/server/workspaces/workspaceRouteErrors.js.map +1 -1
  469. package/dist/server/workspaces/workspaceUserError.js +18 -0
  470. package/dist/server/workspaces/workspaceUserError.js.map +1 -0
  471. package/dist/server-plugin-api.d.ts +349 -49
  472. package/dist/server-plugin-api.js +344 -2
  473. package/dist/server-plugin-api.js.map +1 -1
  474. package/dist/serverPluginRecovery.js +6 -1
  475. package/dist/serverPluginRecovery.js.map +1 -1
  476. package/dist/sessiond/activeAgentProfile.js +27 -2
  477. package/dist/sessiond/activeAgentProfile.js.map +1 -1
  478. package/dist/sessiond/config.js +4 -3
  479. package/dist/sessiond/config.js.map +1 -1
  480. package/dist/sessiond/sessionDaemonClient.js +75 -19
  481. package/dist/sessiond/sessionDaemonClient.js.map +1 -1
  482. package/dist/sessiond/sessionDaemonErrors.js +49 -0
  483. package/dist/sessiond/sessionDaemonErrors.js.map +1 -0
  484. package/dist/shared/activeAgentProfile.js +2 -34
  485. package/dist/shared/activeAgentProfile.js.map +1 -1
  486. package/dist/shared/activity.js +0 -3
  487. package/dist/shared/activity.js.map +1 -1
  488. package/dist/shared/apiTypes.js +10 -3
  489. package/dist/shared/apiTypes.js.map +1 -1
  490. package/dist/shared/capabilities.js +8 -0
  491. package/dist/shared/capabilities.js.map +1 -1
  492. package/dist/shared/federatedRoutes.js +77 -11
  493. package/dist/shared/federatedRoutes.js.map +1 -1
  494. package/dist/shared/i18n.js +41 -0
  495. package/dist/shared/i18n.js.map +1 -0
  496. package/dist/shared/machinePluginIds.js +30 -7
  497. package/dist/shared/machinePluginIds.js.map +1 -1
  498. package/dist/shared/machineStatus.js +46 -3
  499. package/dist/shared/machineStatus.js.map +1 -1
  500. package/dist/shared/navigationPreferences.js +6 -0
  501. package/dist/shared/navigationPreferences.js.map +1 -0
  502. package/dist/shared/piWebConfigParsing.js +118 -49
  503. package/dist/shared/piWebConfigParsing.js.map +1 -1
  504. package/dist/shared/piWebStatusParsing.js +33 -0
  505. package/dist/shared/piWebStatusParsing.js.map +1 -1
  506. package/dist/shared/pluginApiTypes.d.ts +87 -8
  507. package/dist/shared/pluginApiTypes.js +2 -0
  508. package/dist/shared/pluginApiTypes.js.map +1 -0
  509. package/dist/shared/pluginBackendProtocol.js +218 -2
  510. package/dist/shared/pluginBackendProtocol.js.map +1 -1
  511. package/dist/shared/pluginCatalogTypes.d.ts +49 -0
  512. package/dist/shared/pluginCatalogTypes.js +156 -0
  513. package/dist/shared/pluginCatalogTypes.js.map +1 -0
  514. package/dist/shared/pluginIds.js +10 -1
  515. package/dist/shared/pluginIds.js.map +1 -1
  516. package/dist/shared/requiredTerminalPlugin.js +6 -0
  517. package/dist/shared/requiredTerminalPlugin.js.map +1 -0
  518. package/dist/shared/serverNoticeContract.js +88 -0
  519. package/dist/shared/serverNoticeContract.js.map +1 -0
  520. package/dist/shared/sessionDefaults.js +42 -0
  521. package/dist/shared/sessionDefaults.js.map +1 -0
  522. package/dist/shared/sessionMedia.js +12 -0
  523. package/dist/shared/sessionMedia.js.map +1 -0
  524. package/dist/shared/streamingBehavior.js +8 -0
  525. package/dist/shared/streamingBehavior.js.map +1 -0
  526. package/dist/shared/themePreference.js +24 -0
  527. package/dist/shared/themePreference.js.map +1 -0
  528. package/dist/shared/thinkingLevels.js +17 -16
  529. package/dist/shared/thinkingLevels.js.map +1 -1
  530. package/dist/shared/workspaceFiles.js.map +1 -1
  531. package/dist/workspaceNotificationCli.js +95 -0
  532. package/dist/workspaceNotificationCli.js.map +1 -0
  533. package/docs/README.md +31 -0
  534. package/docs/config.md +344 -277
  535. package/docs/plugins.md +204 -930
  536. package/examples/session-bridge-plugin/README.md +20 -0
  537. package/examples/session-bridge-plugin/docs/usage.md +54 -0
  538. package/examples/session-bridge-plugin/package.json +26 -0
  539. package/examples/session-bridge-plugin/src/browser/index.ts +87 -0
  540. package/examples/session-bridge-plugin/src/browser/protocol.ts +24 -0
  541. package/examples/session-bridge-plugin/src/companion.ts +65 -0
  542. package/examples/session-bridge-plugin/src/reviewRun.ts +39 -0
  543. package/examples/session-bridge-plugin/src/server.ts +85 -0
  544. package/examples/session-bridge-plugin/src/store.ts +80 -0
  545. package/examples/session-bridge-plugin/tsconfig.json +21 -0
  546. package/examples/workspace-provider-plugin/README.md +39 -0
  547. package/examples/workspace-provider-plugin/package.json +25 -0
  548. package/examples/workspace-provider-plugin/src/browser/index.ts +69 -0
  549. package/examples/workspace-provider-plugin/src/server.ts +68 -0
  550. package/examples/workspace-provider-plugin/tsconfig.json +21 -0
  551. package/extensions/pi-web.ts +3 -1
  552. package/package.json +59 -36
  553. package/skills/README.md +28 -2
  554. package/skills/relay/SKILL.md +24 -89
  555. package/skills/relay-runner/SKILL.md +74 -0
  556. package/dist/client/assets/CodeViewer-DCl56K0Z.js +0 -4
  557. package/dist/client/assets/TerminalPanel-DCvoEjUF.js +0 -187
  558. package/dist/client/assets/index-CMvms5cF.js +0 -4325
  559. package/dist/client/assets/vendor-editor-core-vUi74DnD.js +0 -12
  560. package/dist/client/assets/vendor-editor-languages-DoaXUodB.js +0 -46
  561. package/dist/client/assets/vendor-editor-legacy-CYBnW6ZU.js +0 -1
  562. package/dist/client/assets/vendor-terminal-BrP-ENHg.css +0 -1
  563. package/dist/client/assets/vendor-terminal-D8k4UKM2.js +0 -35
  564. package/dist/pi-web-plugins/relays/package.json +0 -9
  565. package/dist/pi-web-plugins/relays/pi-web-plugin.js +0 -44
  566. package/dist/server/git/gitService.js +0 -290
  567. package/dist/server/git/gitService.js.map +0 -1
  568. package/dist/server/gitRoutes.js +0 -23
  569. package/dist/server/gitRoutes.js.map +0 -1
  570. package/dist/server/sessions/pendingAskStore.js +0 -278
  571. package/dist/server/sessions/pendingAskStore.js.map +0 -1
  572. package/dist/server/terminalProxyRoutes.js +0 -178
  573. package/dist/server/terminalProxyRoutes.js.map +0 -1
  574. package/dist/server/terminals/terminalRoutes.js +0 -164
  575. package/dist/server/terminals/terminalRoutes.js.map +0 -1
  576. package/dist/server/terminals/terminalService.js.map +0 -1
  577. package/dist/server/terminals/terminalSize.js +0 -17
  578. package/dist/server/terminals/terminalSize.js.map +0 -1
  579. package/dist/server/workspaces/gitWorktreeDiscovery.js +0 -43
  580. package/dist/server/workspaces/gitWorktreeDiscovery.js.map +0 -1
  581. package/dist/server/workspaces/workspaceService.js +0 -52
  582. package/dist/server/workspaces/workspaceService.js.map +0 -1
  583. /package/dist/{pi-web-plugins → pi-packages}/relays/vendor/README.md +0 -0
  584. /package/dist/{pi-web-plugins → pi-packages}/relays/vendor/marked.esm.js +0 -0
@@ -1,35 +1,117 @@
1
- /** JSON values accepted across the PI WEB server-plugin boundary. */
2
- export type JsonPrimitive = string | number | boolean | null;
3
- export type JsonValue = JsonPrimitive | JsonObject | readonly JsonValue[];
4
- export interface JsonObject {
5
- readonly [key: string]: JsonValue;
6
- }
1
+ import type { TranslationParameters, Translator } from "./shared/pluginApiTypes.js";
2
+ import type { PluginBackend, JsonObject, JsonPrimitive, JsonValue, PluginCapability, PluginCapabilityProvision, WorkspaceProviderMetadata, WorkspaceRemovalPresentation } from "./shared/pluginApiTypes.js";
3
+ export type { TranslationParameters, Translator, JsonObject, JsonPrimitive, JsonValue, PluginCapability, PluginCapabilityProvision, WorkspaceProviderMetadata, WorkspaceRemovalPresentation, };
4
+ export { PI_WEB_HOST_CATALOG_CAPABILITY, type PluginCatalogProject, type PluginCatalogWorkspace, type PluginSessionSnapshot, type PluginWorkspaceSelection, type PluginSessionSelection, type PluginCatalogReadOptions, type PluginCatalogV1, } from "./shared/pluginCatalogTypes.js";
5
+ /** Discover this package's local v5 backend on a hosted pi.events bus.
6
+ * Throws synchronously outside PI WEB or when the paired backend is unavailable.
7
+ * Extensions are trusted in-process code, not a sandbox.
8
+ */
9
+ export declare function createCompanionBackend(events: {
10
+ emit(channel: string, data: unknown): void;
11
+ }, pluginId: string): PluginBackend;
7
12
  type MaybePromise<T> = T | Promise<T>;
8
13
  /** Public server entry exported by a package's `serverModule`. */
9
- export interface PiWebServerPlugin {
10
- apiVersion: 1;
14
+ export type PiWebServerPlugin = LegacyPiWebServerPlugin | PiWebServerPluginV5;
15
+ export interface PiWebServerPluginV5 {
16
+ apiVersion: 5;
17
+ name: string;
18
+ requires?: readonly PluginCapability[];
19
+ activate(context: ServerPluginActivationContextV5): MaybePromise<ServerPluginActivationV5>;
20
+ }
21
+ /** @deprecated Server API v3 remains supported; use PiWebServerPluginV5 for scoped peers. */
22
+ export interface LegacyPiWebServerPlugin {
23
+ apiVersion: 3;
11
24
  name: string;
12
- activate(context: ServerPluginActivationContext): MaybePromise<ServerPluginActivation>;
13
- }
14
- export interface ServerPluginActivationContext {
15
- apiVersion: 1;
16
- pluginId: string;
17
- packageRoot: string;
18
- logger: ServerPluginLogger;
19
- settings: JsonObject;
25
+ /** Exact capability versions that must be active before this plugin starts. */
26
+ requires?: readonly PluginCapability[];
27
+ activate(context: LegacyServerPluginActivationContext): MaybePromise<LegacyServerPluginActivation>;
28
+ }
29
+ export type LegacyServerPluginActivationContext = Omit<ServerPluginActivationContextV5, "apiVersion"> & {
30
+ readonly apiVersion: 3;
31
+ };
32
+ export type LegacyServerPluginActivation = Omit<ServerPluginActivationV5, "peer"> & {
33
+ peer?: LegacyServerPluginPeer;
34
+ };
35
+ /** Backwards-compatible v3 type names. Scoped v5 entry points use the V5 types. */
36
+ export type ServerPluginActivationContext = LegacyServerPluginActivationContext;
37
+ export type ServerPluginActivation = LegacyServerPluginActivation;
38
+ export type ServerPluginPeer = LegacyServerPluginPeer;
39
+ export type ServerPluginPeerRequestContext = LegacyServerPluginPeerRequestContext;
40
+ export type ServerPluginPeerChannelOpenContext = LegacyServerPluginPeerChannelOpenContext;
41
+ /** Host-owned frozen values supplied during server plugin activation. */
42
+ export interface ServerPluginActivationContextV5 {
43
+ readonly translate?: Translator;
44
+ readonly apiVersion: 5;
45
+ readonly pluginId: string;
46
+ readonly packageRoot: string;
47
+ /** Absolute plugin-specific persistent directory, created by the host before activation. Plugins own all file I/O and data formats. */
48
+ readonly dataDirectory: string;
49
+ readonly logger: ServerPluginLogger;
50
+ readonly settings: JsonObject;
51
+ /** Resolve this plugin's global snapshot plus the registered project's settings snapshot. Settings remain fixed until sessiond restarts. */
52
+ readonly resolveProjectSettings?: (project: ProjectInput, signal: AbortSignal) => Promise<JsonObject>;
53
+ /** Machine-local command used by provider-owned integrations to send a bounded notification to this daemon. */
54
+ readonly workspaceNotifications?: ServerPluginWorkspaceNotifications;
55
+ /** Record a host-attributed application notice when this capability is available. */
56
+ readonly notices?: ServerPluginNoticeReporterV1;
20
57
  /**
21
58
  * Execute an argv-based command through host-owned output and time bounds.
22
59
  * The caller must forward the signal for its current bounded operation.
23
60
  */
24
- execFile(request: ServerPluginExecFileRequest): Promise<ServerPluginExecFileResult>;
25
- /** Aborted when the host's activation deadline expires. */
26
- signal: AbortSignal;
61
+ readonly execFile: (request: ServerPluginExecFileRequest) => Promise<ServerPluginExecFileResult>;
62
+ /**
63
+ * Signal for this activation invocation. It is aborted when activation times
64
+ * out or settles and must not be retained for lifetime cleanup.
65
+ */
66
+ readonly signal: AbortSignal;
67
+ /**
68
+ * Signal for the complete plugin lifetime. It is aborted as soon as host
69
+ * ingress quiesces, before bounded disposal begins.
70
+ */
71
+ readonly lifetimeSignal: AbortSignal;
72
+ }
73
+ export type ServerPluginNoticeSeverity = "info" | "warning" | "error";
74
+ /** Browser-visibility selectors, matched only against the selected machine context; each id is at most 512 characters. */
75
+ export type ServerPluginNoticeScope = {
76
+ readonly projectId: string;
77
+ readonly workspaceId?: string;
78
+ readonly sessionId?: string;
79
+ } | {
80
+ readonly projectId?: string;
81
+ readonly workspaceId: string;
82
+ readonly sessionId?: string;
83
+ } | {
84
+ readonly projectId?: string;
85
+ readonly workspaceId?: string;
86
+ readonly sessionId: string;
87
+ };
88
+ /** Plugin-authored notice data. The host supplies the immutable source identity. */
89
+ export interface ServerPluginNoticeInput {
90
+ readonly severity: ServerPluginNoticeSeverity;
91
+ /** Non-empty human-readable text, limited to 4 KiB of UTF-8. */
92
+ readonly message: string;
93
+ /** Omit for a global notice; a supplied scope must contain at least one id. */
94
+ readonly scope?: ServerPluginNoticeScope;
95
+ /** Detached metadata; keys never affect visibility. Limited to 16 KiB and JSON depth 32. */
96
+ readonly context?: JsonObject;
27
97
  }
98
+ /**
99
+ * Optional versioned capability for recording host-owned server notices.
100
+ * It remains live through activation, start, active operation, and shutdown
101
+ * dependency cleanup, then is revoked before failed-start rollback or this
102
+ * plugin's ordinary disposal begins.
103
+ */
104
+ export interface ServerPluginNoticeReporterV1 {
105
+ readonly version: 1;
106
+ /** Throws after reporter revocation or when the complete input is invalid. */
107
+ readonly record: (input: ServerPluginNoticeInput) => void;
108
+ }
109
+ /** Host-owned logger supplied through the frozen activation context. */
28
110
  export interface ServerPluginLogger {
29
- debug(message: string, details?: JsonObject): void;
30
- info(message: string, details?: JsonObject): void;
31
- warn(message: string, details?: JsonObject): void;
32
- error(message: string, details?: JsonObject): void;
111
+ readonly debug: (message: string, details?: JsonObject) => void;
112
+ readonly info: (message: string, details?: JsonObject) => void;
113
+ readonly warn: (message: string, details?: JsonObject) => void;
114
+ readonly error: (message: string, details?: JsonObject) => void;
33
115
  }
34
116
  export interface ServerPluginExecFileRequest {
35
117
  file: string;
@@ -50,10 +132,109 @@ export interface ServerPluginExecFileResult {
50
132
  stdoutTruncated: boolean;
51
133
  stderrTruncated: boolean;
52
134
  }
53
- export interface ServerPluginActivation {
135
+ /** Current host authority selected only by opaque project and workspace ids. */
136
+ export interface PiWebHostWorkspaceSelection {
137
+ readonly projectId: string;
138
+ readonly workspaceId: string;
139
+ }
140
+ /** Detached project and workspace projections resolved from current host authority. */
141
+ export interface PiWebHostWorkspaceAuthority {
142
+ readonly project: ProjectInput;
143
+ readonly workspace: ServerPluginPeerWorkspace;
144
+ }
145
+ /** Package-attributed resolver for current project/workspace authority. */
146
+ export interface PiWebHostWorkspacesV1 {
147
+ readonly version: 1;
148
+ /** Re-resolve both ids on every call; stale or mismatched selections reject. */
149
+ readonly resolve: (selection: PiWebHostWorkspaceSelection) => Promise<PiWebHostWorkspaceAuthority>;
150
+ }
151
+ /** Exact workspaces v1 capability supplied separately for each declaring server plugin. */
152
+ export declare const PI_WEB_HOST_WORKSPACES_CAPABILITY: PluginCapability<PiWebHostWorkspacesV1, 1>;
153
+ /** Bounded input for one host-owned Pi session run in current workspace authority. */
154
+ export interface PiWebHostPiSessionRunInput {
155
+ /** Opaque current project id, limited to 512 characters. */
156
+ readonly projectId: string;
157
+ /** Opaque current workspace id, limited to 512 characters. */
158
+ readonly workspaceId: string;
159
+ /** Non-empty initial prompt, limited to 64 KiB of UTF-8. */
160
+ readonly prompt: string;
161
+ }
162
+ /** Detached final outcome for one host-owned Pi session run. */
163
+ export type PiWebHostPiSessionRunCompletion = {
164
+ readonly status: "completed";
165
+ } | {
166
+ readonly status: "failed";
167
+ /** Non-empty host-projected failure text, limited to 4 KiB of UTF-8. */
168
+ readonly error: string;
169
+ } | {
170
+ readonly status: "cancelled";
171
+ };
172
+ /** Published host-owned conversation; creation does not open a messaging connection. */
173
+ export interface PiWebHostPiSessionCreated {
174
+ readonly sessionId: string;
175
+ }
176
+ /** Host-owned conversation identity; initial completion never closes the session. */
177
+ export interface PiWebHostPiSessionRun extends PiWebHostPiSessionCreated {
178
+ /** Initial submission outcome, including final provider errors; not later user turns. */
179
+ readonly completion: Promise<PiWebHostPiSessionRunCompletion>;
180
+ }
181
+ /** Bounded initial-run admission. Plugin revocation cancels only unpublished startup. */
182
+ export interface PiWebHostPiSessionsV1 {
183
+ readonly version: 1;
184
+ /** Publish an observed session without a prompt; connect separately before companion kickoff. */
185
+ readonly create: (input: PiWebHostWorkspaceSelection) => Promise<PiWebHostPiSessionCreated>;
186
+ /** Re-resolve current authority, start one session, and admit its initial prompt. */
187
+ readonly run: (input: PiWebHostPiSessionRunInput) => Promise<PiWebHostPiSessionRun>;
188
+ }
189
+ /** Exact PI sessions v1 capability supplied separately for each declaring server plugin. */
190
+ export declare const PI_WEB_HOST_PI_SESSIONS_CAPABILITY: PluginCapability<PiWebHostPiSessionsV1, 1>;
191
+ /** Exact hosted conversation on the selected machine; creation is separate. */
192
+ export interface PiWebHostPiSessionSelection extends PiWebHostWorkspaceSelection {
193
+ readonly sessionId: string;
194
+ }
195
+ /** Ephemeral connection to one hosted session's native pi.events bus. */
196
+ export interface PiWebHostPiSessionConnection {
197
+ /** Aborts on close, plugin disposal, or hosted runtime replacement/close. */
198
+ readonly signal: AbortSignal;
199
+ /** Subscribe before emitting: replies may arrive synchronously. No replay. */
200
+ readonly on: (channel: string, handler: (data: unknown) => void | Promise<void>) => () => void;
201
+ /** Native fire-and-forget delivery; not an acknowledgement or agent completion. */
202
+ readonly emit: (channel: string, data: unknown) => void;
203
+ /** Idempotent; detaches listeners without stopping the conversation. */
204
+ readonly close: () => void;
205
+ }
206
+ export interface PiWebHostPiSessionEventsV1 {
207
+ readonly version: 1;
208
+ readonly connect: (selection: PiWebHostPiSessionSelection) => Promise<PiWebHostPiSessionConnection>;
209
+ }
210
+ /** Session-local package messaging, not an agent-control or SDK capability. */
211
+ export declare const PI_WEB_HOST_PI_SESSION_EVENTS_CAPABILITY: PluginCapability<PiWebHostPiSessionEventsV1, 1>;
212
+ /** Resolver containing only the exact capability requirements declared by a plugin. */
213
+ export interface ServerPluginCapabilityResolver {
214
+ readonly resolve: <Value>(capability: PluginCapability<Value>) => Value;
215
+ }
216
+ /** Frozen values supplied once all declared dependencies are active. */
217
+ export interface ServerPluginStartContext {
218
+ readonly capabilities: ServerPluginCapabilityResolver;
219
+ /** Signal for this bounded start invocation, not the plugin lifetime. */
220
+ readonly signal: AbortSignal;
221
+ }
222
+ /**
223
+ * Signals passed to lifecycle callbacks are scoped to that single invocation
224
+ * and are aborted when it times out or settles. Lifetime cancellation is
225
+ * supplied separately during activation and precedes bounded disposal.
226
+ */
227
+ export interface ServerPluginActivationV5 {
54
228
  workspaceProvider?: WorkspaceProvider;
55
- start?(signal: AbortSignal): MaybePromise<void>;
56
- stop?(signal: AbortSignal): MaybePromise<void>;
229
+ /** Serve bounded requests and optional duplex channels from this package's paired browser entry. */
230
+ peer?: ServerPluginPeerV5;
231
+ /** Typed capability values owned by this plugin and published only after start succeeds. */
232
+ provides?: readonly PluginCapabilityProvision[];
233
+ /** Initialize resources after every exact declared capability requirement is active. */
234
+ start?(context: ServerPluginStartContext): MaybePromise<void>;
235
+ /** Release resources within one host-bounded disposal invocation. */
236
+ dispose?(signal: AbortSignal): MaybePromise<void>;
237
+ /** Inspect health within one host-bounded health invocation. */
57
238
  health?(signal: AbortSignal): MaybePromise<ServerPluginHealth>;
58
239
  }
59
240
  export interface ServerPluginHealth {
@@ -61,19 +242,137 @@ export interface ServerPluginHealth {
61
242
  message?: string;
62
243
  details?: JsonObject;
63
244
  }
245
+ /**
246
+ * Capabilities for this package's matching browser entry. An activation may
247
+ * supply a request handler, a channel handler, or both, but never neither.
248
+ */
249
+ export type LegacyServerPluginPeer = {
250
+ request(context: LegacyServerPluginPeerRequestContext): MaybePromise<JsonValue>;
251
+ openChannel?(context: LegacyServerPluginPeerChannelOpenContext): MaybePromise<ServerPluginPeerChannel>;
252
+ } | {
253
+ request?: undefined;
254
+ openChannel(context: LegacyServerPluginPeerChannelOpenContext): MaybePromise<ServerPluginPeerChannel>;
255
+ };
256
+ export type ServerPluginPeerV5 = {
257
+ request(context: ServerPluginPeerRequestContextV5): MaybePromise<JsonValue>;
258
+ /** Open one finite-lived, host-bounded duplex channel. */
259
+ openChannel?(context: ServerPluginPeerChannelOpenContextV5): MaybePromise<ServerPluginPeerChannel>;
260
+ } | {
261
+ request?: undefined;
262
+ /** Open one finite-lived, host-bounded duplex channel. */
263
+ openChannel(context: ServerPluginPeerChannelOpenContextV5): MaybePromise<ServerPluginPeerChannel>;
264
+ };
265
+ /** Channel instance returned by `openChannel()` after the host validates scope. */
266
+ export interface ServerPluginPeerChannel {
267
+ /** Consume one browser-authored JSON frame in accepted order within a host-bounded invocation. */
268
+ receive(data: JsonValue, signal: AbortSignal): MaybePromise<void>;
269
+ /**
270
+ * Optional plugin-owned completion signal. Resolve it only after the final
271
+ * send; the host boundedly drains accepted transport work before physical
272
+ * close and admission release.
273
+ */
274
+ readonly closed?: PromiseLike<void>;
275
+ /** Release channel resources once after disconnect, failure, expiry, shutdown, or plugin completion. */
276
+ close?(context: ServerPluginPeerChannelCloseContext): MaybePromise<void>;
277
+ }
278
+ export interface ServerPluginPeerChannelCloseContext {
279
+ readonly code: number;
280
+ readonly reason: string;
281
+ /** Signal for this bounded close invocation, not the already-ended channel lifetime. */
282
+ readonly signal: AbortSignal;
283
+ }
284
+ /** Host-resolved, browser-visible workspace projection without provider-private data. */
285
+ export interface ServerPluginPeerWorkspace {
286
+ readonly id: string;
287
+ readonly projectId: string;
288
+ readonly path: string;
289
+ readonly label: string;
290
+ readonly isMain: boolean;
291
+ readonly provider?: WorkspaceProviderMetadata;
292
+ }
293
+ /**
294
+ * Every value is host-derived, cloned, and frozen. The signal belongs only to
295
+ * this callback and is aborted when the request times out, is cancelled, or
296
+ * settles.
297
+ */
298
+ export type ServerPluginPeerScope = {
299
+ readonly kind: "machine";
300
+ } | {
301
+ readonly kind: "project";
302
+ readonly project: ProjectInput;
303
+ } | {
304
+ readonly kind: "workspace";
305
+ readonly project: ProjectInput;
306
+ readonly workspace: ServerPluginPeerWorkspace;
307
+ };
308
+ export type LegacyServerPluginPeerRequestContext = Omit<ServerPluginPeerRequestContextV5, "scope"> & {
309
+ readonly project: ProjectInput;
310
+ readonly workspace: ServerPluginPeerWorkspace;
311
+ };
312
+ export interface ServerPluginPeerRequestContextV5 {
313
+ readonly scope: ServerPluginPeerScope;
314
+ readonly operation: string;
315
+ readonly input: JsonValue;
316
+ readonly signal: AbortSignal;
317
+ }
318
+ /**
319
+ * Host-resolved channel scope. `signal` remains live for the channel lifetime
320
+ * and is aborted on disconnect, failure, expiry, or shutdown. `send()` clones
321
+ * and bounds one JSON frame synchronously; success means queue acceptance, not
322
+ * remote receipt. Invalid data or host queue overflow throws and closes the channel.
323
+ */
324
+ export type LegacyServerPluginPeerChannelOpenContext = LegacyServerPluginPeerRequestContext & {
325
+ readonly send: (data: JsonValue) => void;
326
+ };
327
+ export interface ServerPluginPeerChannelOpenContextV5 {
328
+ readonly scope: ServerPluginPeerScope;
329
+ readonly operation: string;
330
+ readonly input: JsonValue;
331
+ readonly signal: AbortSignal;
332
+ readonly send: (data: JsonValue) => void;
333
+ }
334
+ /** Host-attributed invocation for provider-owned external integrations. */
335
+ export interface ServerPluginWorkspaceNotifications {
336
+ /** An argv invocation attributed to this plugin and registered project; providers own any hook-specific argument filtering. */
337
+ readonly command: (projectId: string) => readonly string[];
338
+ }
339
+ /** Optional external integration maintained only for the project's current provider. */
340
+ export interface WorkspaceProviderIntegration {
341
+ /** Idempotently maintain integration, including removal when plugin settings disable it. Failure never changes discovery authority. */
342
+ reconcile(project: ProjectInput, signal: AbortSignal): Promise<void>;
343
+ /** Apply provider-owned policy to an incoming hint. A true result asks the host to invalidate workspace projections, not register a path. */
344
+ acceptNotification(project: ProjectInput, signal: AbortSignal): Promise<boolean>;
345
+ }
346
+ /**
347
+ * Every signal supplied to a provider is scoped to that single callback
348
+ * invocation. The host aborts it when the operation times out or settles; it
349
+ * must not be retained as a plugin-lifetime shutdown signal.
350
+ */
64
351
  export interface WorkspaceProvider {
352
+ /** External integration lifecycle; separate from side-effect-free probing and listing. */
353
+ integration?: WorkspaceProviderIntegration;
65
354
  /** Fallback providers are considered only after all primary providers pass. */
66
355
  fallback?: boolean;
67
356
  probe(project: ProjectInput, signal: AbortSignal): Promise<ProviderClaim>;
68
357
  list(project: ProjectInput, signal: AbortSignal): Promise<ProviderWorkspace[]>;
358
+ /** Legacy owner request compatibility; new plugins use peer.request. */
69
359
  request?(context: ProviderRequestContext): Promise<ProviderResponse>;
70
360
  prepareRemove?(context: ProviderRemoveContext): Promise<WorkspaceRemovePlan>;
71
361
  }
362
+ /** Legacy owner request context; new plugins use ServerPluginPeerRequestContext. */
363
+ export interface ProviderRequestContext {
364
+ project: ProjectInput;
365
+ workspace: ProviderWorkspace;
366
+ operation: string;
367
+ input: JsonValue;
368
+ signal: AbortSignal;
369
+ }
370
+ export type ProviderResponse = JsonValue;
72
371
  export type ProviderClaim = "claim" | "pass";
73
372
  export interface ProjectInput {
74
- id: string;
75
- name: string;
76
- path: string;
373
+ readonly id: string;
374
+ readonly name: string;
375
+ readonly path: string;
77
376
  }
78
377
  export interface ProviderWorkspace {
79
378
  /** Provider-local stable key; the host derives the public workspace id. */
@@ -84,32 +383,33 @@ export interface ProviderWorkspace {
84
383
  isMain: boolean;
85
384
  /** Opaque provider-private data returned to this provider during the resolution. */
86
385
  data?: JsonValue;
87
- /** Opaque serializable data exposed only to the owning browser plugin. */
386
+ /**
387
+ * Serializable data included in browser workspace responses. It is visible
388
+ * to all browser code and API consumers, so it must never contain secrets.
389
+ */
88
390
  publicMetadata?: JsonObject;
89
391
  removal?: WorkspaceRemovalPresentation;
90
392
  }
91
- export interface ProviderRequestContext {
92
- project: ProjectInput;
93
- workspace: ProviderWorkspace;
94
- operation: string;
95
- input: JsonValue;
96
- signal: AbortSignal;
97
- }
98
- /** Provider-private JSON result returned through the host's scoped bridge. */
99
- export type ProviderResponse = JsonValue;
100
393
  export interface ProviderRemoveContext {
101
- project: ProjectInput;
102
- workspace: ProviderWorkspace;
103
- signal: AbortSignal;
394
+ readonly project: ProjectInput;
395
+ /** Host-validated, frozen projection of one listed provider workspace. */
396
+ readonly workspace: Readonly<ProviderWorkspace>;
397
+ readonly signal: AbortSignal;
104
398
  }
105
- /** Serializable provider wording advertised with a removable workspace. */
106
- export interface WorkspaceRemovalPresentation {
107
- actionLabel: string;
108
- confirmation: string;
109
- }
110
- /** Host-validated plan run as a visible terminal command from a safe workspace. */
399
+ /**
400
+ * Plugin-authored plan for a visible host terminal run. Returning this plan
401
+ * approves the operation; it does not mean removal has completed.
402
+ */
111
403
  export interface WorkspaceRemovePlan {
404
+ /** Human-readable title for the host-owned terminal run. */
112
405
  title: string;
406
+ /**
407
+ * Shell source interpreted by the host's login shell. The host chooses a safe
408
+ * current non-target workspace as the working directory, so any workspace
409
+ * path used here must be the absolute `workspace.path` supplied in the
410
+ * request and must be shell-quoted by the provider. Keep the removal in the
411
+ * foreground: the host records completion when the shell exits, with exit 0
412
+ * meaning the removal succeeded.
413
+ */
113
414
  command: string;
114
415
  }
115
- export {};