@puredesktop/puredesktop-ui-bridge 1.0.0-beta.1

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 (412) hide show
  1. package/package.json +96 -0
  2. package/src/agents/runtime/agentLiveReducer.test.ts +72 -0
  3. package/src/agents/runtime/agentLiveReducer.ts +139 -0
  4. package/src/agents/runtime/agentRunEventTypes.ts +115 -0
  5. package/src/agents/runtime/contextWindowUsage.test.ts +38 -0
  6. package/src/agents/runtime/contextWindowUsage.ts +25 -0
  7. package/src/agents/runtime/index.ts +24 -0
  8. package/src/agents/runtime/mapAgentMessages.ts +54 -0
  9. package/src/agents/runtime/mapAgentSnapshot.ts +71 -0
  10. package/src/agents/runtime/mergeUsageTurn.ts +23 -0
  11. package/src/agents/runtime/pendingToolCalls.test.ts +85 -0
  12. package/src/agents/runtime/pendingToolCalls.ts +14 -0
  13. package/src/agents/runtime/toolRequiresApproval.ts +20 -0
  14. package/src/agents/runtime/unresolvedToolCalls.ts +42 -0
  15. package/src/bridge/agentModelTiers.ts +50 -0
  16. package/src/bridge/agentToolHandlers.ts +23 -0
  17. package/src/bridge/agentToolHelpers.test.ts +27 -0
  18. package/src/bridge/agentToolHelpers.ts +20 -0
  19. package/src/bridge/agentTypes.ts +294 -0
  20. package/src/bridge/agents.d.mts +113 -0
  21. package/src/bridge/agents.mjs +233 -0
  22. package/src/bridge/agents.ts +62 -0
  23. package/src/bridge/appSettings.d.mts +9 -0
  24. package/src/bridge/appSettings.mjs +18 -0
  25. package/src/bridge/appSettings.ts +4 -0
  26. package/src/bridge/applyThemeFromHost.d.mts +7 -0
  27. package/src/bridge/applyThemeFromHost.mjs +33 -0
  28. package/src/bridge/assets.d.mts +66 -0
  29. package/src/bridge/assets.mjs +121 -0
  30. package/src/bridge/catalog.d.mts +5 -0
  31. package/src/bridge/catalog.mjs +24 -0
  32. package/src/bridge/catalog.ts +1 -0
  33. package/src/bridge/client.d.mts +19 -0
  34. package/src/bridge/client.mjs +147 -0
  35. package/src/bridge/collectionAssetAdapter.ts +63 -0
  36. package/src/bridge/collectionAssets.d.mts +1 -0
  37. package/src/bridge/collectionAssets.mjs +2 -0
  38. package/src/bridge/collectionAssets.ts +1 -0
  39. package/src/bridge/collectionDocumentHtml.test.ts +71 -0
  40. package/src/bridge/collectionDocumentHtml.ts +118 -0
  41. package/src/bridge/collectionImagePaste.test.ts +32 -0
  42. package/src/bridge/collectionImagePaste.ts +130 -0
  43. package/src/bridge/context.mjs +12 -0
  44. package/src/bridge/credentials.mjs +22 -0
  45. package/src/bridge/dialog.d.mts +5 -0
  46. package/src/bridge/dialog.mjs +13 -0
  47. package/src/bridge/events.d.mts +14 -0
  48. package/src/bridge/events.mjs +12 -0
  49. package/src/bridge/filePreviewKind.test.ts +43 -0
  50. package/src/bridge/filePreviewKind.ts +76 -0
  51. package/src/bridge/fs.d.mts +41 -0
  52. package/src/bridge/fs.mjs +82 -0
  53. package/src/bridge/fs.test.ts +16 -0
  54. package/src/bridge/fs.ts +10 -0
  55. package/src/bridge/index.ts +12 -0
  56. package/src/bridge/inlinePreview.d.mts +35 -0
  57. package/src/bridge/inlinePreview.mjs +99 -0
  58. package/src/bridge/inlinePreview.test.ts +56 -0
  59. package/src/bridge/inlinePreview.ts +13 -0
  60. package/src/bridge/methods.d.mts +115 -0
  61. package/src/bridge/methods.mjs +132 -0
  62. package/src/bridge/os.d.mts +11 -0
  63. package/src/bridge/os.mjs +26 -0
  64. package/src/bridge/plugins.d.mts +9 -0
  65. package/src/bridge/plugins.mjs +31 -0
  66. package/src/bridge/plugins.ts +5 -0
  67. package/src/bridge/preferences.d.mts +7 -0
  68. package/src/bridge/preferences.mjs +17 -0
  69. package/src/bridge/preferences.ts +13 -0
  70. package/src/bridge/printDocument.test.ts +47 -0
  71. package/src/bridge/printDocument.ts +75 -0
  72. package/src/bridge/pureRender/adapters.test.ts +144 -0
  73. package/src/bridge/pureRender/adapters.ts +175 -0
  74. package/src/bridge/pureRender/assets.test.ts +44 -0
  75. package/src/bridge/pureRender/base.css +76 -0
  76. package/src/bridge/pureRender/compiler.test.ts +279 -0
  77. package/src/bridge/pureRender/compiler.ts +660 -0
  78. package/src/bridge/pureRender/document.test.ts +283 -0
  79. package/src/bridge/pureRender/document.ts +35 -0
  80. package/src/bridge/pureRender/extraction.test.ts +432 -0
  81. package/src/bridge/pureRender/extraction.ts +1023 -0
  82. package/src/bridge/pureRender/flow.css +3 -0
  83. package/src/bridge/pureRender/index.ts +66 -0
  84. package/src/bridge/pureRender/normalize.test.ts +442 -0
  85. package/src/bridge/pureRender/normalize.ts +682 -0
  86. package/src/bridge/pureRender/presets.ts +365 -0
  87. package/src/bridge/pureRender/profiles/book.css +19 -0
  88. package/src/bridge/pureRender/profiles/manuscript.css +11 -0
  89. package/src/bridge/pureRender/profiles/writer.css +10 -0
  90. package/src/bridge/pureRender/reset.css +5 -0
  91. package/src/bridge/pureRender/samples.ts +94 -0
  92. package/src/bridge/pureRender/styles.ts +164 -0
  93. package/src/bridge/pureRender/theme.test.ts +53 -0
  94. package/src/bridge/pureRender/theme.ts +258 -0
  95. package/src/bridge/pureRender/tokens/default.css +36 -0
  96. package/src/bridge/pureRender/tokens/default.json +32 -0
  97. package/src/bridge/pureRender/types.ts +264 -0
  98. package/src/bridge/pureRender/visualLayoutInspection.test.ts +57 -0
  99. package/src/bridge/pureRender/visualLayoutInspection.ts +161 -0
  100. package/src/bridge/react/useDebouncedEffect.ts +21 -0
  101. package/src/bridge/react/useIpc.tsx +75 -0
  102. package/src/bridge/react/usePlatformAgentRunLiveState.tsx +78 -0
  103. package/src/bridge/react/usePlatformAgentSessionDrive.tsx +729 -0
  104. package/src/bridge/react/usePlatformAgentSessions.tsx +60 -0
  105. package/src/bridge/react/usePlatformAgentTools.tsx +82 -0
  106. package/src/bridge/react/usePlatformAppManifest.tsx +32 -0
  107. package/src/bridge/react/usePlatformBridge.tsx +56 -0
  108. package/src/bridge/react/usePlatformDeepLink.tsx +57 -0
  109. package/src/bridge/react/usePlatformFileBinaryDataUrl.tsx +54 -0
  110. package/src/bridge/react/usePlatformFilePreview.tsx +92 -0
  111. package/src/bridge/react/usePlatformPreferences.tsx +77 -0
  112. package/src/bridge/react/usePlatformThemeDocumentAttrs.ts +35 -0
  113. package/src/bridge/react/usePlatformThemeFromBridge.tsx +16 -0
  114. package/src/bridge/react/usePlatformViewportResource.test.tsx +106 -0
  115. package/src/bridge/react/usePlatformViewportResource.tsx +72 -0
  116. package/src/bridge/react/useScheduledTask.tsx +59 -0
  117. package/src/bridge/render.d.mts +31 -0
  118. package/src/bridge/render.mjs +62 -0
  119. package/src/bridge/render.ts +8 -0
  120. package/src/bridge/screenAnnotation.test.ts +103 -0
  121. package/src/bridge/screenAnnotation.ts +269 -0
  122. package/src/bridge/theme.d.mts +3 -0
  123. package/src/bridge/theme.mjs +9 -0
  124. package/src/bridge/types.ts +439 -0
  125. package/src/bridge/watch.d.mts +9 -0
  126. package/src/bridge/watch.mjs +34 -0
  127. package/src/bridge/watch.ts +1 -0
  128. package/src/bridge/window.d.mts +44 -0
  129. package/src/bridge/window.mjs +33 -0
  130. package/src/chrome/index.ts +1 -0
  131. package/src/components/accessibility/AccessibilityReviewDialog.test.tsx +104 -0
  132. package/src/components/accessibility/AccessibilityReviewDialog.tsx +350 -0
  133. package/src/components/accessibility/accessibilityReview.test.ts +101 -0
  134. package/src/components/accessibility/accessibilityReview.ts +639 -0
  135. package/src/components/accessibility/index.ts +16 -0
  136. package/src/components/agent-feedback/ScreenAnnotationAgentDialog.tsx +509 -0
  137. package/src/components/agent-feedback/index.ts +5 -0
  138. package/src/components/agents/AgentComposer.tsx +34 -0
  139. package/src/components/agents/AgentContextUsageBar.tsx +127 -0
  140. package/src/components/agents/AgentDrawerPanel.tsx +82 -0
  141. package/src/components/agents/AgentMarkdown.tsx +12 -0
  142. package/src/components/agents/AgentMessageBubble.tsx +82 -0
  143. package/src/components/agents/AgentMessageList.tsx +47 -0
  144. package/src/components/agents/AgentModelMenu.tsx +55 -0
  145. package/src/components/agents/AgentThinkingBlock.tsx +66 -0
  146. package/src/components/agents/AgentToolApprovalActions.tsx +65 -0
  147. package/src/components/agents/AgentToolCallCard.tsx +26 -0
  148. package/src/components/agents/AgentToolPendingList.tsx +39 -0
  149. package/src/components/agents/AgentToolPendingReview.tsx +118 -0
  150. package/src/components/agents/agentPanelStyles.ts +79 -0
  151. package/src/components/agents/agentTypes.ts +96 -0
  152. package/src/components/agents/formatToolCallArguments.test.ts +16 -0
  153. package/src/components/agents/formatToolCallArguments.ts +9 -0
  154. package/src/components/agents/index.ts +40 -0
  155. package/src/components/assets/AssetLibraryDialog.tsx +5 -0
  156. package/src/components/assets/asset-library/AssetLibraryDialog.tsx +43 -0
  157. package/src/components/assets/asset-library/AssetLibraryWorkspace.tsx +54 -0
  158. package/src/components/assets/asset-library/detail/AssetLibraryDetailActions.tsx +68 -0
  159. package/src/components/assets/asset-library/detail/AssetLibraryDetailHeader.tsx +56 -0
  160. package/src/components/assets/asset-library/detail/AssetLibraryDetailPane.tsx +90 -0
  161. package/src/components/assets/asset-library/detail/AssetLibraryDetailPreview.tsx +67 -0
  162. package/src/components/assets/asset-library/detail/AssetLibraryInlinePreview.tsx +87 -0
  163. package/src/components/assets/asset-library/detail/AssetLibraryInlineSourceField.tsx +29 -0
  164. package/src/components/assets/asset-library/detail/AssetLibraryMetadataFields.tsx +34 -0
  165. package/src/components/assets/asset-library/detail/AssetLibraryUsagePanel.tsx +46 -0
  166. package/src/components/assets/asset-library/detail/AssetLibraryVersionsPanel.tsx +145 -0
  167. package/src/components/assets/asset-library/helpers/assetKind.ts +74 -0
  168. package/src/components/assets/asset-library/helpers.ts +41 -0
  169. package/src/components/assets/asset-library/hooks/useAssetDetailDraft.ts +81 -0
  170. package/src/components/assets/asset-library/hooks/useAssetLibraryDialog.ts +233 -0
  171. package/src/components/assets/asset-library/hooks/useAssetLibraryMutations.ts +266 -0
  172. package/src/components/assets/asset-library/hooks/useAssetLibrarySelectionSync.ts +24 -0
  173. package/src/components/assets/asset-library/hooks/useAssetLibraryVersions.ts +145 -0
  174. package/src/components/assets/asset-library/hooks/useInlineAssetPreview.ts +44 -0
  175. package/src/components/assets/asset-library/index.ts +19 -0
  176. package/src/components/assets/asset-library/layout/assetLibraryLayout.ts +201 -0
  177. package/src/components/assets/asset-library/shared/fieldStyles.ts +62 -0
  178. package/src/components/assets/asset-library/sidebar/AssetLibraryFilterPills.tsx +89 -0
  179. package/src/components/assets/asset-library/sidebar/AssetLibraryList.tsx +91 -0
  180. package/src/components/assets/asset-library/sidebar/AssetLibraryListRow.tsx +99 -0
  181. package/src/components/assets/asset-library/sidebar/AssetLibraryListStatus.tsx +24 -0
  182. package/src/components/assets/asset-library/sidebar/AssetLibrarySidebar.tsx +48 -0
  183. package/src/components/assets/asset-library/sidebar/AssetLibrarySidebarActions.tsx +38 -0
  184. package/src/components/assets/asset-library/sidebar/AssetLibrarySidebarToolbar.tsx +78 -0
  185. package/src/components/assets/asset-library/sidebar/AssetListThumbnail.tsx +86 -0
  186. package/src/components/assets/asset-library/types.ts +128 -0
  187. package/src/components/assets/asset-library/utils/assetLibraryUtils.ts +181 -0
  188. package/src/components/assets/asset-library/utils/pathBasename.ts +5 -0
  189. package/src/components/assets/asset-library/utils/sanitizeUploadFileName.ts +7 -0
  190. package/src/components/assets/asset-library/utils/uploadCollectionAsset.ts +52 -0
  191. package/src/components/chrome/OverlayActionCapsule.test.tsx +82 -0
  192. package/src/components/chrome/OverlayActionCapsule.tsx +90 -0
  193. package/src/components/chrome/PanelTabStrip.tsx +113 -0
  194. package/src/components/chrome/PlatformIcon.tsx +27 -0
  195. package/src/components/chrome/PureAppWordmark.tsx +89 -0
  196. package/src/components/chrome/ShellWindowControls.tsx +51 -0
  197. package/src/components/chrome/ThemeModeButton.tsx +16 -0
  198. package/src/components/chrome/Titlebar.tsx +79 -0
  199. package/src/components/chrome/WorkspaceTabStrip.tsx +300 -0
  200. package/src/components/chrome/index.ts +31 -0
  201. package/src/components/chrome/workspaceTabTypes.ts +29 -0
  202. package/src/components/common/buttons/Button.tsx +241 -0
  203. package/src/components/common/buttons/ChoiceChip.tsx +73 -0
  204. package/src/components/common/buttons/CleanButton.tsx +34 -0
  205. package/src/components/common/buttons/IconButton.tsx +89 -0
  206. package/src/components/common/buttons/QuietAction.tsx +29 -0
  207. package/src/components/common/buttons/SegmentedControl.tsx +67 -0
  208. package/src/components/common/buttons/TextActionButton.tsx +55 -0
  209. package/src/components/common/buttons/TextLink.tsx +38 -0
  210. package/src/components/common/canvas/CanvasElementFrame.test.tsx +79 -0
  211. package/src/components/common/canvas/CanvasElementFrame.tsx +182 -0
  212. package/src/components/common/canvas/canvasGeometry.test.ts +66 -0
  213. package/src/components/common/canvas/canvasGeometry.ts +133 -0
  214. package/src/components/common/canvas/index.ts +27 -0
  215. package/src/components/common/canvas/useCanvasDragResize.test.tsx +152 -0
  216. package/src/components/common/canvas/useCanvasDragResize.ts +161 -0
  217. package/src/components/common/chat/ChatAssistantMessage.tsx +81 -0
  218. package/src/components/common/chat/ChatBox.tsx +189 -0
  219. package/src/components/common/chat/ChatMarkdown.tsx +109 -0
  220. package/src/components/common/chat/ChatModelMenu.tsx +258 -0
  221. package/src/components/common/chat/ChatStatusRow.tsx +24 -0
  222. package/src/components/common/chat/ChatThinkingIndicator.tsx +54 -0
  223. package/src/components/common/chat/ChatThread.tsx +59 -0
  224. package/src/components/common/chat/ChatToolRow.tsx +141 -0
  225. package/src/components/common/chat/ChatUserBubble.tsx +45 -0
  226. package/src/components/common/chat/chatUtils.ts +7 -0
  227. package/src/components/common/chat/index.ts +24 -0
  228. package/src/components/common/connections/ConnectionSetup.tsx +529 -0
  229. package/src/components/common/connections/index.ts +26 -0
  230. package/src/components/common/containers/AppFrame.test.tsx +47 -0
  231. package/src/components/common/containers/AppFrame.tsx +65 -0
  232. package/src/components/common/containers/AppHeader.tsx +60 -0
  233. package/src/components/common/containers/AutoFillGrid.tsx +37 -0
  234. package/src/components/common/containers/Collapsible.tsx +43 -0
  235. package/src/components/common/containers/CollapsibleGrid.tsx +174 -0
  236. package/src/components/common/containers/MotionScope.tsx +32 -0
  237. package/src/components/common/containers/PageHeader.tsx +35 -0
  238. package/src/components/common/containers/PanelToolbarHeader.tsx +113 -0
  239. package/src/components/common/containers/QuietDisclosure.tsx +91 -0
  240. package/src/components/common/containers/QuietSurface.tsx +41 -0
  241. package/src/components/common/containers/ScrollPanel.tsx +33 -0
  242. package/src/components/common/containers/StatusBar.tsx +42 -0
  243. package/src/components/common/containers/SurfacePanel.tsx +66 -0
  244. package/src/components/common/containers/ToolbarStrip.tsx +80 -0
  245. package/src/components/common/containers/flex.ts +117 -0
  246. package/src/components/common/containers/useOpenTransition.ts +33 -0
  247. package/src/components/common/context/ContextSelector.tsx +269 -0
  248. package/src/components/common/context/index.ts +7 -0
  249. package/src/components/common/desk/ActionReader.tsx +270 -0
  250. package/src/components/common/desk/ActivityLedger.tsx +143 -0
  251. package/src/components/common/desk/CreationDesk.tsx +139 -0
  252. package/src/components/common/desk/DailyBrief.tsx +160 -0
  253. package/src/components/common/desk/DeskCard.tsx +157 -0
  254. package/src/components/common/desk/index.ts +30 -0
  255. package/src/components/common/dropdown/ContextMenu.tsx +87 -0
  256. package/src/components/common/dropdown/MenuButtonDropdown.tsx +121 -0
  257. package/src/components/common/dropdown/MenuDropdown.tsx +63 -0
  258. package/src/components/common/dropdown/MenuDropdownEntry.tsx +51 -0
  259. package/src/components/common/dropdown/MenuDropdownItem.tsx +82 -0
  260. package/src/components/common/dropdown/MenuDropdownSubmenu.tsx +145 -0
  261. package/src/components/common/dropdown/MenuPanel.tsx +69 -0
  262. package/src/components/common/dropdown/MenuPortal.tsx +162 -0
  263. package/src/components/common/dropdown/MenuPortalLayer.tsx +6 -0
  264. package/src/components/common/dropdown/SelectMenu.tsx +243 -0
  265. package/src/components/common/dropdown/SelectMenuControl.tsx +23 -0
  266. package/src/components/common/dropdown/SelectMenuOptions.tsx +38 -0
  267. package/src/components/common/dropdown/menuPortalConstants.ts +11 -0
  268. package/src/components/common/dropdown/menuTypes.ts +71 -0
  269. package/src/components/common/dropdown/menuViewportPosition.test.ts +139 -0
  270. package/src/components/common/dropdown/menuViewportPosition.ts +122 -0
  271. package/src/components/common/dropdown/selectMenuLayout.test.ts +42 -0
  272. package/src/components/common/dropdown/selectMenuLayout.ts +123 -0
  273. package/src/components/common/dropdown/useMenuAnchorPosition.ts +109 -0
  274. package/src/components/common/dropdown/useSelectMenuAnchor.ts +30 -0
  275. package/src/components/common/evidence/StructuredEvidenceView.test.tsx +77 -0
  276. package/src/components/common/evidence/StructuredEvidenceView.tsx +312 -0
  277. package/src/components/common/evidence/index.ts +13 -0
  278. package/src/components/common/feedback/Badge.tsx +33 -0
  279. package/src/components/common/feedback/CapabilityPills.tsx +36 -0
  280. package/src/components/common/feedback/EmptyState.tsx +132 -0
  281. package/src/components/common/feedback/InfoHint.tsx +67 -0
  282. package/src/components/common/feedback/InlineBanner.tsx +82 -0
  283. package/src/components/common/feedback/PlatformChip.tsx +104 -0
  284. package/src/components/common/feedback/QuietPill.tsx +75 -0
  285. package/src/components/common/feedback/WorkProgressPanel.tsx +156 -0
  286. package/src/components/common/feedback/index.ts +33 -0
  287. package/src/components/common/inputs/BareInput.tsx +31 -0
  288. package/src/components/common/inputs/BareTextarea.tsx +10 -0
  289. package/src/components/common/inputs/Checkbox.tsx +13 -0
  290. package/src/components/common/inputs/FieldControlShell.tsx +49 -0
  291. package/src/components/common/inputs/FormField.tsx +40 -0
  292. package/src/components/common/inputs/HybridSearchField.tsx +280 -0
  293. package/src/components/common/inputs/InlineComposer.tsx +197 -0
  294. package/src/components/common/inputs/PaletteCirclePicker.tsx +26 -0
  295. package/src/components/common/inputs/PaletteDropdown.tsx +413 -0
  296. package/src/components/common/inputs/Radio.tsx +19 -0
  297. package/src/components/common/inputs/SearchField.tsx +128 -0
  298. package/src/components/common/inputs/SelectField.tsx +169 -0
  299. package/src/components/common/inputs/SurfacePalettePicker.tsx +54 -0
  300. package/src/components/common/inputs/TextAreaField.tsx +22 -0
  301. package/src/components/common/inputs/TextField.tsx +51 -0
  302. package/src/components/common/inputs/ToggleSwitch.tsx +110 -0
  303. package/src/components/common/inputs/WorkspacePicker.tsx +349 -0
  304. package/src/components/common/inputs/fieldStyles.ts +137 -0
  305. package/src/components/common/layout/PanelGroup.tsx +479 -0
  306. package/src/components/common/layout/index.ts +31 -0
  307. package/src/components/common/layout/panelLayoutConstants.ts +7 -0
  308. package/src/components/common/layout/panelLayoutPersistence.ts +35 -0
  309. package/src/components/common/layout/panelLayoutState.test.ts +38 -0
  310. package/src/components/common/layout/panelLayoutState.ts +174 -0
  311. package/src/components/common/layout/panelLayoutTypes.ts +19 -0
  312. package/src/components/common/layout/tabs/Tabs.tsx +136 -0
  313. package/src/components/common/lists/listRowStyles.ts +32 -0
  314. package/src/components/common/lists/quiet-ledger/QuietActivityList.tsx +64 -0
  315. package/src/components/common/lists/quiet-ledger/QuietLedgerRow.tsx +119 -0
  316. package/src/components/common/lists/quiet-ledger/index.ts +9 -0
  317. package/src/components/common/lists/reorderable/DragHandle.tsx +65 -0
  318. package/src/components/common/lists/reorderable/ReorderableList.tsx +280 -0
  319. package/src/components/common/lists/reorderable/ReorderableListRow.tsx +102 -0
  320. package/src/components/common/lists/reorderable/ReorderableSections.tsx +344 -0
  321. package/src/components/common/lists/reorderable/ReorderableSectionsDemo.tsx +94 -0
  322. package/src/components/common/lists/reorderable/index.ts +15 -0
  323. package/src/components/common/lists/reorderable/reorderableUtils.test.ts +28 -0
  324. package/src/components/common/lists/reorderable/reorderableUtils.ts +23 -0
  325. package/src/components/common/lists/reorderable/types.ts +40 -0
  326. package/src/components/common/lists/reorderable/useReorderableDragState.ts +49 -0
  327. package/src/components/common/media/ImageReferencePicker.tsx +242 -0
  328. package/src/components/common/menubar/MenuBar.tsx +78 -0
  329. package/src/components/common/menubar/MenuBarTrigger.tsx +70 -0
  330. package/src/components/common/narrative/NarrativeMention.tsx +74 -0
  331. package/src/components/common/navigation/PathBreadcrumbs.tsx +78 -0
  332. package/src/components/common/navigation/UnderlineTabs.tsx +83 -0
  333. package/src/components/common/overlays/InstallAppPromptDialog.tsx +59 -0
  334. package/src/components/common/overlays/Modal.tsx +285 -0
  335. package/src/components/common/overlays/ModalChromeHeader.tsx +105 -0
  336. package/src/components/common/overlays/ObjectActionStrip.tsx +80 -0
  337. package/src/components/common/people/AutoUpdateReviewList.tsx +182 -0
  338. package/src/components/common/people/EntityList.tsx +122 -0
  339. package/src/components/common/people/EntityPortrait.tsx +64 -0
  340. package/src/components/common/people/LinkedDossierList.tsx +99 -0
  341. package/src/components/common/people/OpportunityList.tsx +94 -0
  342. package/src/components/common/people/PeopleSourceList.tsx +145 -0
  343. package/src/components/common/people/RelationshipDossier.tsx +168 -0
  344. package/src/components/common/people/RelationshipMap.tsx +362 -0
  345. package/src/components/common/people/index.ts +40 -0
  346. package/src/components/common/preview/FileAudioPreview.tsx +89 -0
  347. package/src/components/common/preview/FileImagePreview.tsx +88 -0
  348. package/src/components/common/preview/FilePdfPreview.tsx +87 -0
  349. package/src/components/common/preview/FileTextPreview.tsx +96 -0
  350. package/src/components/common/preview/FileVideoPreview.tsx +87 -0
  351. package/src/components/common/preview/PlatformFilePreview.tsx +166 -0
  352. package/src/components/common/preview/previewLayout.ts +27 -0
  353. package/src/components/common/render/Each.tsx +42 -0
  354. package/src/components/common/research/EvidenceDossier.tsx +894 -0
  355. package/src/components/common/research/index.ts +7 -0
  356. package/src/components/common/tiles/CatalogCard.tsx +116 -0
  357. package/src/components/common/tiles/Tile.tsx +45 -0
  358. package/src/components/common/tiles/TileGrid.tsx +13 -0
  359. package/src/components/common/typography/Heading.tsx +27 -0
  360. package/src/components/common/typography/Kicker.tsx +30 -0
  361. package/src/components/common/typography/Text.tsx +80 -0
  362. package/src/components/credentials/CredentialsPanel.tsx +169 -0
  363. package/src/components/credentials/credentialsTypes.ts +14 -0
  364. package/src/components/data/DataChart.tsx +913 -0
  365. package/src/components/data/dataTable.ts +99 -0
  366. package/src/components/editor/EditorCommentPromptDialog.tsx +124 -0
  367. package/src/components/editor/EditorLinkPromptDialog.tsx +65 -0
  368. package/src/components/print-design/PrintDesignPanel.test.tsx +1446 -0
  369. package/src/components/print-design/PrintDesignPanel.tsx +3043 -0
  370. package/src/components/print-design/index.ts +9 -0
  371. package/src/components/proofing/PagedProofDialog.tsx +453 -0
  372. package/src/components/proofing/index.ts +4 -0
  373. package/src/editor/DocumentEditor.tsx +28 -0
  374. package/src/editor/EditorViewModeToggle.tsx +35 -0
  375. package/src/editor/index.ts +97 -0
  376. package/src/editor/toolbarOverlays.ts +8 -0
  377. package/src/index.ts +209 -0
  378. package/src/theme/ThemeProvider.tsx +113 -0
  379. package/src/theme/appAccents.ts +87 -0
  380. package/src/theme/buildThemeBridgePayload.ts +23 -0
  381. package/src/theme/composePlatformTheme.test.ts +30 -0
  382. package/src/theme/composePlatformTheme.ts +23 -0
  383. package/src/theme/platformFont.d.mts +7 -0
  384. package/src/theme/platformFont.mjs +20 -0
  385. package/src/theme/platformFont.ts +6 -0
  386. package/src/theme/reportsShellChromeSelectors.ts +136 -0
  387. package/src/theme/styled.d.ts +5 -0
  388. package/src/theme/surfacePalettes.ts +178 -0
  389. package/src/theme/surfaceRoleSelectors.ts +113 -0
  390. package/src/theme/themeVars.ts +13 -0
  391. package/src/theme/themes/dark.ts +59 -0
  392. package/src/theme/themes/light.ts +60 -0
  393. package/src/theme/themes/palette.ts +44 -0
  394. package/src/theme/themes/shared.ts +68 -0
  395. package/src/theme/tokens.ts +114 -0
  396. package/src/theme/utils/GlobalStyles.ts +88 -0
  397. package/src/theme/utils/appFrameDocumentStyles.d.mts +5 -0
  398. package/src/theme/utils/appFrameDocumentStyles.mjs +89 -0
  399. package/src/theme/utils/appFrameDocumentStyles.ts +5 -0
  400. package/src/theme/utils/applyTheme.ts +50 -0
  401. package/src/theme/utils/cssVariables.ts +49 -0
  402. package/src/theme/utils/useInjectThemeIntoIframe.ts +40 -0
  403. package/src/utils/extensionIconMap.ts +123 -0
  404. package/src/utils/generalUtils.ts +157 -0
  405. package/src/writing/DraftAssistantDialog.tsx +279 -0
  406. package/src/writing/WritingStyleManager.tsx +416 -0
  407. package/src/writing/condenseWritingStyle.ts +103 -0
  408. package/src/writing/draftTextWithAgent.ts +134 -0
  409. package/src/writing/index.ts +39 -0
  410. package/src/writing/styleStore.ts +32 -0
  411. package/src/writing/writingStyle.test.ts +122 -0
  412. package/src/writing/writingStyle.ts +217 -0
@@ -0,0 +1,233 @@
1
+ import { bridge } from './client.mjs'
2
+ import { PLATFORM_BRIDGE_EVENTS } from './events.mjs'
3
+ import { PLATFORM_BRIDGE_METHODS } from './methods.mjs'
4
+
5
+ /**
6
+ * Agent session + run bridge SDK for plugin iframes.
7
+ * Requires `agents` permission in plugin.json.
8
+ *
9
+ * Host handlers wire in shell phase S8; constants and client are stable for app authors.
10
+ */
11
+
12
+ /** @param {import('./agentTypes.js').PlatformCreateAgentSessionRequest} request */
13
+ export async function createAgentSession(request) {
14
+ return bridge.call(PLATFORM_BRIDGE_METHODS.AGENTS_SESSIONS_CREATE, [request])
15
+ }
16
+
17
+ /** @param {import('./agentTypes.js').PlatformListAgentSessionsRequest} request */
18
+ export async function listAgentSessions(request) {
19
+ return bridge.call(PLATFORM_BRIDGE_METHODS.AGENTS_SESSIONS_LIST, [request])
20
+ }
21
+
22
+ /** @param {import('./agentTypes.js').PlatformReadAgentSessionRequest} request */
23
+ export async function readAgentSession(request) {
24
+ return bridge.call(PLATFORM_BRIDGE_METHODS.AGENTS_SESSIONS_READ, [request])
25
+ }
26
+
27
+ /** @param {import('./agentTypes.js').PlatformUpdateAgentSessionRequest} request */
28
+ export async function updateAgentSession(request) {
29
+ return bridge.call(PLATFORM_BRIDGE_METHODS.AGENTS_SESSIONS_UPDATE, [request])
30
+ }
31
+
32
+ /** @param {import('./agentTypes.js').PlatformReadAgentSessionRequest} request */
33
+ export async function deleteAgentSession(request) {
34
+ return bridge.call(PLATFORM_BRIDGE_METHODS.AGENTS_SESSIONS_DELETE, [request])
35
+ }
36
+
37
+ /**
38
+ * Send a user message on a session; shell drives the run until awaiting user,
39
+ * manual pending tools, or terminal state.
40
+ * @param {import('./agentTypes.js').PlatformSendAgentSessionMessageRequest} request
41
+ * @returns {Promise<import('./agentTypes.js').PlatformAgentSessionDriveResult>}
42
+ */
43
+ export async function sendAgentSessionMessage(request) {
44
+ return bridge.call(PLATFORM_BRIDGE_METHODS.AGENTS_SESSION_SEND_MESSAGE, [
45
+ request,
46
+ ])
47
+ }
48
+
49
+ /**
50
+ * Approve manual pending tools and continue the run.
51
+ * @param {import('./agentTypes.js').PlatformAgentSessionDriveRequest} request
52
+ * @returns {Promise<import('./agentTypes.js').PlatformAgentSessionDriveResult | null>}
53
+ */
54
+ export async function approveAgentSessionTools(request) {
55
+ return bridge.call(PLATFORM_BRIDGE_METHODS.AGENTS_SESSION_APPROVE_TOOLS, [
56
+ request,
57
+ ])
58
+ }
59
+
60
+ /**
61
+ * Reject manual pending tools and continue the run.
62
+ * @param {import('./agentTypes.js').PlatformRejectAgentSessionToolsRequest} request
63
+ * @returns {Promise<import('./agentTypes.js').PlatformAgentSessionDriveResult | null>}
64
+ */
65
+ export async function rejectAgentSessionTools(request) {
66
+ return bridge.call(PLATFORM_BRIDGE_METHODS.AGENTS_SESSION_REJECT_TOOLS, [
67
+ request,
68
+ ])
69
+ }
70
+
71
+ /**
72
+ * Auto-approve policy-approved pending tools (e.g. after loading a session).
73
+ * @param {import('./agentTypes.js').PlatformAgentSessionDriveRequest} request
74
+ * @returns {Promise<import('./agentTypes.js').PlatformAgentSessionDriveResult | null>}
75
+ */
76
+ export async function advanceAgentSessionPending(request) {
77
+ return bridge.call(PLATFORM_BRIDGE_METHODS.AGENTS_SESSION_ADVANCE_PENDING, [
78
+ request,
79
+ ])
80
+ }
81
+
82
+ /**
83
+ * Stop the in-flight turn for a session and persist interrupted state.
84
+ * @param {import('./agentTypes.js').PlatformInterruptAgentSessionRequest} request
85
+ * @returns {Promise<import('./agentTypes.js').PlatformAgentSessionDriveResult>}
86
+ */
87
+ export async function interruptAgentSession(request) {
88
+ return bridge.call(PLATFORM_BRIDGE_METHODS.AGENTS_SESSION_INTERRUPT, [request])
89
+ }
90
+
91
+ /**
92
+ * Subscribe to streaming agent run events for this plugin tab.
93
+ * Payload shape matches shell `AgentRunEventIpcPayload` (runId, seq, type, …).
94
+ *
95
+ * @param {(payload: import('./agentTypes.js').PlatformAgentRunEvent) => void} listener
96
+ * @returns {() => void}
97
+ */
98
+ export function onAgentRunEvent(listener) {
99
+ return bridge.onEvent(PLATFORM_BRIDGE_EVENTS.AGENT_RUN_EVENT, listener)
100
+ }
101
+
102
+ /**
103
+ * Materialize a run for an existing session and send the first user message.
104
+ * Returns the run snapshot (state 'ready'); drive it with callAgentRunModel
105
+ * and resolveAgentRunToolCalls until 'awaiting_user'.
106
+ *
107
+ * @param {import('./agentTypes.js').PlatformStartAgentRunRequest} request
108
+ * @returns {Promise<import('./agentTypes.js').PlatformAgentRunSnapshot>}
109
+ */
110
+ export async function startAgentRun(request) {
111
+ return bridge.call(PLATFORM_BRIDGE_METHODS.AGENTS_RUN_START, [request])
112
+ }
113
+
114
+ /**
115
+ * @param {import('./agentTypes.js').PlatformCallAgentModelRequest} request
116
+ * @returns {Promise<import('./agentTypes.js').PlatformAgentRunSnapshot>}
117
+ */
118
+ export async function callAgentRunModel(request) {
119
+ return bridge.call(PLATFORM_BRIDGE_METHODS.AGENTS_RUN_CALL_MODEL, [request])
120
+ }
121
+
122
+ /**
123
+ * Route policy-approved pending tool calls to their registered app tabs and
124
+ * resolve them. Tools still pending afterwards need user approval in the
125
+ * agent drawer.
126
+ *
127
+ * @param {import('./agentTypes.js').PlatformResolveAgentToolCallsRequest} request
128
+ * @returns {Promise<import('./agentTypes.js').PlatformAgentRunSnapshot>}
129
+ */
130
+ export async function resolveAgentRunToolCalls(request) {
131
+ return bridge.call(PLATFORM_BRIDGE_METHODS.AGENTS_RUN_RESOLVE_TOOL_CALLS, [
132
+ request,
133
+ ])
134
+ }
135
+
136
+ /**
137
+ * @param {import('./agentTypes.js').PlatformSendAgentRunMessageRequest} request
138
+ * @returns {Promise<import('./agentTypes.js').PlatformAgentRunSnapshot>}
139
+ */
140
+ export async function sendAgentRunMessage(request) {
141
+ return bridge.call(PLATFORM_BRIDGE_METHODS.AGENTS_RUN_SEND, [request])
142
+ }
143
+
144
+ /**
145
+ * @param {import('./agentTypes.js').PlatformReadAgentRunContextRequest} request
146
+ * @returns {Promise<import('./agentTypes.js').PlatformAgentRunContext>}
147
+ */
148
+ export async function readAgentRunContext(request) {
149
+ return bridge.call(PLATFORM_BRIDGE_METHODS.AGENTS_RUN_READ_CONTEXT, [request])
150
+ }
151
+
152
+ /**
153
+ * Credential-filtered catalog entries for model menus (configured booleans only).
154
+ * @param {import('./agentTypes.js').PlatformReadAgentLlmMenuOptionsRequest} [request]
155
+ * @returns {Promise<import('./agentTypes.js').PlatformAgentLlmMenuOption[]>}
156
+ */
157
+ export async function readAgentLlmMenuOptions(request = {}) {
158
+ return bridge.call(PLATFORM_BRIDGE_METHODS.AGENTS_LLM_MENU_OPTIONS, [request])
159
+ }
160
+
161
+ /**
162
+ * @returns {Promise<import('./agentTypes.js').PlatformLocalModelRuntimeStatus>}
163
+ */
164
+ export async function readLocalModelsStatus() {
165
+ return bridge.call(PLATFORM_BRIDGE_METHODS.AGENTS_LOCAL_MODELS_STATUS, [])
166
+ }
167
+
168
+ /**
169
+ * Register tool short names implemented by this tab (after bridge ready).
170
+ * @param {{ tools: string[] }} request
171
+ */
172
+ export async function registerAgentTools(request) {
173
+ return bridge.call(PLATFORM_BRIDGE_METHODS.AGENTS_TOOLS_REGISTER, [request])
174
+ }
175
+
176
+ /**
177
+ * Handle host-initiated tool invocations for this tab.
178
+ * @param {(payload: {
179
+ * invokeId: string
180
+ * toolCallId: string
181
+ * name: string
182
+ * shortName: string
183
+ * arguments: Record<string, unknown>
184
+ * }) => Promise<{ toolCallId: string, content: string, isError?: boolean }>} handler
185
+ */
186
+ export function onAgentToolInvoke(handler) {
187
+ return bridge.onEvent(PLATFORM_BRIDGE_EVENTS.AGENT_TOOL_INVOKE, payload => {
188
+ void (async () => {
189
+ if (!payload || typeof payload !== 'object') return
190
+ const invokeId = payload.invokeId
191
+ const toolCallId = payload.toolCallId
192
+ const name = payload.name
193
+ const shortName = payload.shortName
194
+ if (
195
+ typeof invokeId !== 'string' ||
196
+ typeof toolCallId !== 'string' ||
197
+ typeof name !== 'string' ||
198
+ typeof shortName !== 'string'
199
+ ) {
200
+ return
201
+ }
202
+ try {
203
+ const result = await handler({
204
+ invokeId,
205
+ toolCallId,
206
+ name,
207
+ shortName,
208
+ arguments:
209
+ payload.arguments && typeof payload.arguments === 'object'
210
+ ? payload.arguments
211
+ : {},
212
+ })
213
+ await bridge.call(PLATFORM_BRIDGE_METHODS.AGENTS_TOOLS_COMPLETE, [
214
+ {
215
+ invokeId,
216
+ toolCallId: result.toolCallId ?? toolCallId,
217
+ content: result.content,
218
+ isError: result.isError,
219
+ },
220
+ ])
221
+ } catch (error) {
222
+ await bridge.call(PLATFORM_BRIDGE_METHODS.AGENTS_TOOLS_COMPLETE, [
223
+ {
224
+ invokeId,
225
+ toolCallId,
226
+ content: error instanceof Error ? error.message : String(error),
227
+ isError: true,
228
+ },
229
+ ])
230
+ }
231
+ })()
232
+ })
233
+ }
@@ -0,0 +1,62 @@
1
+ export {
2
+ advanceAgentSessionPending,
3
+ approveAgentSessionTools,
4
+ callAgentRunModel,
5
+ createAgentSession,
6
+ deleteAgentSession,
7
+ interruptAgentSession,
8
+ listAgentSessions,
9
+ onAgentRunEvent,
10
+ onAgentToolInvoke,
11
+ readAgentLlmMenuOptions,
12
+ readAgentRunContext,
13
+ readAgentSession,
14
+ readLocalModelsStatus,
15
+ registerAgentTools,
16
+ rejectAgentSessionTools,
17
+ resolveAgentRunToolCalls,
18
+ sendAgentRunMessage,
19
+ sendAgentSessionMessage,
20
+ startAgentRun,
21
+ updateAgentSession,
22
+ } from './agents.mjs'
23
+ export type {
24
+ PlatformAgentMessage,
25
+ PlatformAgentMessageAttachment,
26
+ PlatformAgentImageAttachment,
27
+ PlatformAgentSessionConfig,
28
+ PlatformAgentSessionConfigPatch,
29
+ PlatformAgentSessionMetadata,
30
+ PlatformAgentSessionRecord,
31
+ PlatformAgentSessionScope,
32
+ PlatformAgentSessionSnapshot,
33
+ PlatformAgentSessionSummary,
34
+ PlatformAgentSessionToolPolicy,
35
+ PlatformAgentUiRunState,
36
+ PlatformAgentUiToolCall,
37
+ PlatformCreateAgentSessionRequest,
38
+ PlatformListAgentSessionsRequest,
39
+ PlatformReadAgentSessionRequest,
40
+ PlatformUpdateAgentSessionRequest,
41
+ } from './agentTypes.js'
42
+
43
+ export type {
44
+ PlatformAgentRunEvent,
45
+ PlatformAgentRunSnapshot,
46
+ PlatformAgentRunContext,
47
+ PlatformAgentRunUsage,
48
+ PlatformAgentLlmMenuOption,
49
+ PlatformCallAgentModelRequest,
50
+ PlatformInterruptAgentSessionRequest,
51
+ PlatformReadAgentLlmMenuOptionsRequest,
52
+ PlatformReadAgentRunContextRequest,
53
+ PlatformResolveAgentToolCallsRequest,
54
+ PlatformSendAgentRunMessageRequest,
55
+ PlatformStartAgentRunRequest,
56
+ PlatformAgentSessionDriveRequest,
57
+ PlatformAgentSessionDriveResult,
58
+ PlatformRejectAgentSessionToolsRequest,
59
+ PlatformSendAgentSessionMessageRequest,
60
+ PlatformLocalModelRuntimeStatus,
61
+ PlatformToolResolution,
62
+ } from './agentTypes.js'
@@ -0,0 +1,9 @@
1
+ import type { PlatformAppSettingsUpdateRequest } from './types.js'
2
+
3
+ export function getPlatformAppSettings(
4
+ appSlug: string,
5
+ ): Promise<Record<string, unknown>>
6
+
7
+ export function updatePlatformAppSettings(
8
+ request: PlatformAppSettingsUpdateRequest,
9
+ ): Promise<Record<string, unknown>>
@@ -0,0 +1,18 @@
1
+ import { bridge } from './client.mjs'
2
+ import { PLATFORM_BRIDGE_METHODS } from './methods.mjs'
3
+
4
+ /**
5
+ * @param {string} appSlug
6
+ * @returns {Promise<Record<string, unknown>>}
7
+ */
8
+ export async function getPlatformAppSettings(appSlug) {
9
+ return bridge.call(PLATFORM_BRIDGE_METHODS.SETTINGS_APP_GET, [appSlug])
10
+ }
11
+
12
+ /**
13
+ * @param {import('./types.ts').PlatformAppSettingsUpdateRequest} request
14
+ * @returns {Promise<Record<string, unknown>>}
15
+ */
16
+ export async function updatePlatformAppSettings(request) {
17
+ return bridge.call(PLATFORM_BRIDGE_METHODS.SETTINGS_APP_UPDATE, [request])
18
+ }
@@ -0,0 +1,4 @@
1
+ export {
2
+ getPlatformAppSettings,
3
+ updatePlatformAppSettings,
4
+ } from './appSettings.mjs'
@@ -0,0 +1,7 @@
1
+ import type { PlatformThemeBridgePayload } from './types.js'
2
+
3
+ export declare const PLATFORM_THEME_STYLE_ID: 'platform-theme-vars-embedded'
4
+
5
+ export function applyThemeFromHost(
6
+ payload: PlatformThemeBridgePayload | null | undefined,
7
+ ): void
@@ -0,0 +1,33 @@
1
+ /** Injected into plugin iframe documents (cross-origin safe via bridge). */
2
+ import { injectAppFrameDocumentStyles } from '../theme/utils/appFrameDocumentStyles.mjs'
3
+
4
+ export const PLATFORM_THEME_STYLE_ID = 'platform-theme-vars-embedded'
5
+
6
+ /**
7
+ * @param {{ mode?: string, css?: string } | null | undefined} payload
8
+ */
9
+ export function applyThemeFromHost(payload) {
10
+ if (!payload || typeof payload.css !== 'string' || !payload.css.trim()) return
11
+
12
+ let el = document.getElementById(PLATFORM_THEME_STYLE_ID)
13
+ if (!el) {
14
+ el = document.createElement('style')
15
+ el.id = PLATFORM_THEME_STYLE_ID
16
+ document.head.appendChild(el)
17
+ }
18
+ el.textContent = payload.css
19
+
20
+ const root = document.documentElement
21
+ if (typeof payload.mode === 'string') {
22
+ root.dataset.platformTheme = payload.mode
23
+ }
24
+
25
+ const paletteId = payload.surfacePaletteId
26
+ if (typeof paletteId === 'string' && paletteId.trim()) {
27
+ root.dataset.platformSurfacePalette = paletteId.trim()
28
+ } else {
29
+ delete root.dataset.platformSurfacePalette
30
+ }
31
+
32
+ injectAppFrameDocumentStyles()
33
+ }
@@ -0,0 +1,66 @@
1
+ import type {
2
+ PlatformAssetContext,
3
+ PlatformAssetDeleteRequest,
4
+ PlatformAssetGetContextRequest,
5
+ PlatformAssetListScopedRequest,
6
+ PlatformAssetReferenceSwapRequest,
7
+ PlatformAssetReferenceSwapScopedRequest,
8
+ PlatformAssetReferenceSwapResult,
9
+ PlatformAssetSelection,
10
+ PlatformAssetSourceUpdateRequest,
11
+ PlatformAssetSourceUpdateScopedRequest,
12
+ PlatformAssetSummary,
13
+ PlatformAssetTransformRequest,
14
+ PlatformAssetUpdateRequest,
15
+ PlatformAssetVersionCreateRequest,
16
+ } from './types.js'
17
+
18
+ export declare function listCollectionAssets(
19
+ collectionPath: string,
20
+ ): Promise<PlatformAssetSummary[]>
21
+
22
+ export declare function listScopedCollectionAssets(
23
+ request: PlatformAssetListScopedRequest,
24
+ ): Promise<PlatformAssetSummary[]>
25
+
26
+ export declare function deleteCollectionAsset(
27
+ request: PlatformAssetDeleteRequest,
28
+ ): Promise<boolean>
29
+
30
+ export declare function updateCollectionAsset(
31
+ request: PlatformAssetUpdateRequest,
32
+ ): Promise<PlatformAssetSummary>
33
+
34
+ export declare function updateCollectionAssetSource(
35
+ request: PlatformAssetSourceUpdateRequest,
36
+ ): Promise<PlatformAssetSummary>
37
+
38
+ export declare function updateCollectionAssetSourceScoped(
39
+ request: PlatformAssetSourceUpdateScopedRequest,
40
+ ): Promise<PlatformAssetSummary>
41
+
42
+ export declare function getSelectedCollectionAsset(): Promise<PlatformAssetSelection | null>
43
+
44
+ export declare function setSelectedCollectionAsset(
45
+ selection: PlatformAssetSelection | null,
46
+ ): Promise<boolean>
47
+
48
+ export declare function createCollectionAssetVersion(
49
+ request: PlatformAssetVersionCreateRequest,
50
+ ): Promise<PlatformAssetSummary>
51
+
52
+ export declare function swapCollectionAssetReferences(
53
+ request: PlatformAssetReferenceSwapRequest,
54
+ ): Promise<PlatformAssetReferenceSwapResult>
55
+
56
+ export declare function swapCollectionAssetReferencesScoped(
57
+ request: PlatformAssetReferenceSwapScopedRequest,
58
+ ): Promise<PlatformAssetReferenceSwapResult>
59
+
60
+ export declare function transformCollectionAsset(
61
+ request: PlatformAssetTransformRequest,
62
+ ): Promise<PlatformAssetSummary>
63
+
64
+ export declare function getCollectionAssetContext(
65
+ request: PlatformAssetGetContextRequest,
66
+ ): Promise<PlatformAssetContext | null>
@@ -0,0 +1,121 @@
1
+ import { bridge } from './client.mjs'
2
+ import { PLATFORM_BRIDGE_METHODS } from './methods.mjs'
3
+
4
+ /**
5
+ * List file + inline assets for a writer workspace or `.document` package root.
6
+ * Requires `assets` permission in plugin.json.
7
+ *
8
+ * @param {string} collectionPath Absolute path to the collection root
9
+ * @returns {Promise<import('./types.js').PlatformAssetSummary[]>}
10
+ */
11
+ export async function listCollectionAssets(collectionPath) {
12
+ return bridge.call(PLATFORM_BRIDGE_METHODS.ASSETS_LIST, [collectionPath])
13
+ }
14
+
15
+ /**
16
+ * List assets when the app supplies manifest-known document paths (e.g. book chapters).
17
+ * Requires `assets` permission in plugin.json.
18
+ *
19
+ * @param {import('./types.js').PlatformAssetListScopedRequest} request
20
+ * @returns {Promise<import('./types.js').PlatformAssetSummary[]>}
21
+ */
22
+ export async function listScopedCollectionAssets(request) {
23
+ return bridge.call(PLATFORM_BRIDGE_METHODS.ASSETS_LIST_SCOPED, [request])
24
+ }
25
+
26
+ /**
27
+ * @param {import('./types.js').PlatformAssetDeleteRequest} request
28
+ * @returns {Promise<boolean>}
29
+ */
30
+ export async function deleteCollectionAsset(request) {
31
+ return bridge.call(PLATFORM_BRIDGE_METHODS.ASSETS_DELETE, [request])
32
+ }
33
+
34
+ /**
35
+ * @param {import('./types.js').PlatformAssetUpdateRequest} request
36
+ * @returns {Promise<import('./types.js').PlatformAssetSummary>}
37
+ */
38
+ export async function updateCollectionAsset(request) {
39
+ return bridge.call(PLATFORM_BRIDGE_METHODS.ASSETS_UPDATE, [request])
40
+ }
41
+
42
+ /**
43
+ * Update inline mermaid / table / math source in document HTML.
44
+ *
45
+ * @param {import('./types.js').PlatformAssetSourceUpdateRequest} request
46
+ * @returns {Promise<import('./types.js').PlatformAssetSummary>}
47
+ */
48
+ export async function updateCollectionAssetSource(request) {
49
+ return bridge.call(PLATFORM_BRIDGE_METHODS.ASSETS_UPDATE_SOURCE, [request])
50
+ }
51
+
52
+ /**
53
+ * Update inline mermaid / table / math source when the app supplies document paths.
54
+ *
55
+ * @param {import('./types.js').PlatformAssetSourceUpdateScopedRequest} request
56
+ * @returns {Promise<import('./types.js').PlatformAssetSummary>}
57
+ */
58
+ export async function updateCollectionAssetSourceScoped(request) {
59
+ return bridge.call(PLATFORM_BRIDGE_METHODS.ASSETS_UPDATE_SOURCE_SCOPED, [
60
+ request,
61
+ ])
62
+ }
63
+
64
+ /** @returns {Promise<import('./types.js').PlatformAssetSelection | null>} */
65
+ export async function getSelectedCollectionAsset() {
66
+ return bridge.call(PLATFORM_BRIDGE_METHODS.ASSETS_GET_SELECTED, [])
67
+ }
68
+
69
+ /**
70
+ * @param {import('./types.js').PlatformAssetSelection | null} selection
71
+ * @returns {Promise<boolean>}
72
+ */
73
+ export async function setSelectedCollectionAsset(selection) {
74
+ return bridge.call(PLATFORM_BRIDGE_METHODS.ASSETS_SET_SELECTED, [selection])
75
+ }
76
+
77
+ /**
78
+ * @param {import('./types.js').PlatformAssetVersionCreateRequest} request
79
+ * @returns {Promise<import('./types.js').PlatformAssetSummary>}
80
+ */
81
+ export async function createCollectionAssetVersion(request) {
82
+ return bridge.call(PLATFORM_BRIDGE_METHODS.ASSETS_CREATE_VERSION, [request])
83
+ }
84
+
85
+ /**
86
+ * @param {import('./types.js').PlatformAssetReferenceSwapRequest} request
87
+ * @returns {Promise<import('./types.js').PlatformAssetReferenceSwapResult>}
88
+ */
89
+ export async function swapCollectionAssetReferences(request) {
90
+ return bridge.call(PLATFORM_BRIDGE_METHODS.ASSETS_SWAP_REFERENCES, [request])
91
+ }
92
+
93
+ /**
94
+ * Swap asset references when the app supplies document paths for collection scope.
95
+ *
96
+ * @param {import('./types.js').PlatformAssetReferenceSwapScopedRequest} request
97
+ * @returns {Promise<import('./types.js').PlatformAssetReferenceSwapResult>}
98
+ */
99
+ export async function swapCollectionAssetReferencesScoped(request) {
100
+ return bridge.call(PLATFORM_BRIDGE_METHODS.ASSETS_SWAP_REFERENCES_SCOPED, [
101
+ request,
102
+ ])
103
+ }
104
+
105
+ /**
106
+ * Local quick-variant transform (filter / rotate / flip) → new version in lineage.
107
+ *
108
+ * @param {import('./types.js').PlatformAssetTransformRequest} request
109
+ * @returns {Promise<import('./types.js').PlatformAssetSummary>}
110
+ */
111
+ export async function transformCollectionAsset(request) {
112
+ return bridge.call(PLATFORM_BRIDGE_METHODS.ASSETS_TRANSFORM, [request])
113
+ }
114
+
115
+ /**
116
+ * @param {import('./types.js').PlatformAssetGetContextRequest} request
117
+ * @returns {Promise<import('./types.js').PlatformAssetContext | null>}
118
+ */
119
+ export async function getCollectionAssetContext(request) {
120
+ return bridge.call(PLATFORM_BRIDGE_METHODS.ASSETS_GET_CONTEXT, [request])
121
+ }
@@ -0,0 +1,5 @@
1
+ import type { PlatformAppInstallState, ResourceOpenEvent } from './types.js'
2
+
3
+ export function consumePendingCatalogOpen(): Promise<ResourceOpenEvent | null>
4
+
5
+ export function isPluginAppInstalled(app: PlatformAppInstallState): boolean
@@ -0,0 +1,24 @@
1
+ import { bridge } from './client.mjs'
2
+ import { PLATFORM_BRIDGE_METHODS } from './methods.mjs'
3
+
4
+ /**
5
+ * Cold-start: pull `catalog.open` intent after bridge + boot (path only; app reads via fs).
6
+ *
7
+ * @returns {Promise<import('./types.ts').ResourceOpenEvent | null>}
8
+ */
9
+ export async function consumePendingCatalogOpen() {
10
+ const result = await bridge.call(
11
+ PLATFORM_BRIDGE_METHODS.CATALOG_CONSUME_PENDING_OPEN,
12
+ )
13
+ return result?.resource ?? null
14
+ }
15
+
16
+ /**
17
+ * Same rule as shell `isAppInstalled` in catalogAppState.ts.
18
+ *
19
+ * @param {import('./types.ts').PlatformAppInstallState} app
20
+ * @returns {boolean}
21
+ */
22
+ export function isPluginAppInstalled(app) {
23
+ return Boolean(app.pluginRoot)
24
+ }
@@ -0,0 +1 @@
1
+ export { consumePendingCatalogOpen, isPluginAppInstalled } from './catalog.mjs'
@@ -0,0 +1,19 @@
1
+ import type { PlatformBridgeClient } from './types.js'
2
+ import type { PlatformBridgeEventName } from './events.mjs'
3
+ import type { PlatformBridgeMethodName } from './methods.mjs'
4
+
5
+ export declare const PLATFORM_BRIDGE_EVENTS: {
6
+ readonly RESOURCE_OPEN: 'resource.open'
7
+ readonly THEME_CHANGED: 'theme.changed'
8
+ readonly RENDER_PROGRESS: 'render.progress'
9
+ readonly DEBUG_TEST: 'debug.test'
10
+ }
11
+
12
+ export {
13
+ PLATFORM_BRIDGE_METHODS,
14
+ PLATFORM_BRIDGE_METHOD_PREFIXES,
15
+ } from './methods.mjs'
16
+
17
+ export const bridge: PlatformBridgeClient
18
+
19
+ export type { PlatformBridgeEventName, PlatformBridgeMethodName }