@octostar/platform-types 0.5.36 → 1.0.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 (467) hide show
  1. package/dist/action.d.ts +6 -6
  2. package/dist/action.d.ts.map +1 -1
  3. package/dist/ai.d.ts +7 -6
  4. package/dist/ai.d.ts.map +1 -1
  5. package/dist/desktop.d.ts +384 -234
  6. package/dist/desktop.d.ts.map +1 -1
  7. package/dist/desktop.js.map +1 -1
  8. package/dist/docs/assets/highlight.css +14 -14
  9. package/dist/docs/assets/navigation.js +1 -1
  10. package/dist/docs/assets/search.js +1 -1
  11. package/dist/docs/enums/ProcessingStatusCode.html +5 -27
  12. package/dist/docs/enums/SortOrder.html +3 -3
  13. package/dist/docs/enums/WorkspacePermissionValue.html +3 -3
  14. package/dist/docs/functions/imageLabelCandidateAggs.html +5 -0
  15. package/dist/docs/functions/imageLabelCandidateSize.html +3 -0
  16. package/dist/docs/functions/imageLabelCountAggs.html +2 -0
  17. package/dist/docs/functions/imageLabelFamilyOfField.html +2 -0
  18. package/dist/docs/functions/imageLabelMatchClause.html +3 -0
  19. package/dist/docs/functions/imageLabelSourceIncludes.html +2 -0
  20. package/dist/docs/functions/isDefaultTemplate.html +3 -0
  21. package/dist/docs/functions/isDeletedEntity.html +2 -0
  22. package/dist/docs/functions/isWorkspaceFileItem.html +1 -1
  23. package/dist/docs/functions/isWorkspaceRoot.html +2 -0
  24. package/dist/docs/functions/ontologyLabel-1.html +4 -0
  25. package/dist/docs/functions/readImageLabelCandidates.html +2 -0
  26. package/dist/docs/functions/readImageLabelCounts.html +2 -0
  27. package/dist/docs/hierarchy.html +1 -1
  28. package/dist/docs/index.html +2 -3
  29. package/dist/docs/interfaces/AIClient.html +4 -4
  30. package/dist/docs/interfaces/ActionContext.html +4 -5
  31. package/dist/docs/interfaces/BinaryObjectFilterClause.html +3 -3
  32. package/dist/docs/interfaces/BrowseEntry.html +7 -0
  33. package/dist/docs/interfaces/BrowseRequest.html +4 -0
  34. package/dist/docs/interfaces/BrowseResponse.html +5 -0
  35. package/dist/docs/interfaces/ChatMessage.html +6 -6
  36. package/dist/docs/interfaces/Colorful.html +3 -3
  37. package/dist/docs/interfaces/Concept.html +14 -14
  38. package/dist/docs/interfaces/DeleteResponse.html +2 -2
  39. package/dist/docs/interfaces/Desktop.html +200 -125
  40. package/dist/docs/interfaces/DesktopActionContext.html +7 -8
  41. package/dist/docs/interfaces/DesktopSettings.html +6 -6
  42. package/dist/docs/interfaces/DeveloperSettings.html +3 -5
  43. package/dist/docs/interfaces/DownloadOptions.html +2 -2
  44. package/dist/docs/interfaces/EntityUiState.html +2 -2
  45. package/dist/docs/interfaces/FetchOptions.html +4 -4
  46. package/dist/docs/interfaces/FileListResponse.html +2 -2
  47. package/dist/docs/interfaces/FilesAPIClient.html +48 -24
  48. package/dist/docs/interfaces/FragmentRegion.html +6 -0
  49. package/dist/docs/interfaces/FragmentStatusEntry.html +13 -0
  50. package/dist/docs/interfaces/GeocodingResult.html +9 -0
  51. package/dist/docs/interfaces/GetAttachmentOptions.html +5 -5
  52. package/dist/docs/interfaces/IDataTransfer.html +11 -11
  53. package/dist/docs/interfaces/ImageLabelCandidateOptions.html +4 -0
  54. package/dist/docs/interfaces/ImageLabelFamilyFields.html +13 -0
  55. package/dist/docs/interfaces/ImportDestination.html +3 -0
  56. package/dist/docs/interfaces/ImportItem.html +3 -0
  57. package/dist/docs/interfaces/ImportOptions.html +8 -0
  58. package/dist/docs/interfaces/ImportRequest.html +7 -0
  59. package/dist/docs/interfaces/IndexSearchHitSource.html +5 -3
  60. package/dist/docs/interfaces/Inheritance.html +5 -5
  61. package/dist/docs/interfaces/LiveContext.html +11 -11
  62. package/dist/docs/interfaces/MountAccess.html +3 -0
  63. package/dist/docs/interfaces/MountCreate.html +10 -0
  64. package/dist/docs/interfaces/MountGrantCreate.html +3 -0
  65. package/dist/docs/interfaces/MountGrantResponse.html +7 -0
  66. package/dist/docs/interfaces/MountImportCopyResponse.html +4 -0
  67. package/dist/docs/interfaces/MountImportLinkError.html +4 -0
  68. package/dist/docs/interfaces/MountImportLinkResponse.html +5 -0
  69. package/dist/docs/interfaces/MountResponse.html +20 -0
  70. package/dist/docs/interfaces/MountUpdate.html +13 -0
  71. package/dist/docs/interfaces/MoveOptions.html +2 -2
  72. package/dist/docs/interfaces/MoveResponse.html +58 -37
  73. package/dist/docs/interfaces/Ontology.html +110 -53
  74. package/dist/docs/interfaces/OntologyLabel.html +6 -0
  75. package/dist/docs/interfaces/OsAPIClient.html +8 -8
  76. package/dist/docs/interfaces/PeekSourceOptions.html +4 -0
  77. package/dist/docs/interfaces/PerUserCredentialInput.html +5 -0
  78. package/dist/docs/interfaces/PerUserCredentialStatus.html +7 -0
  79. package/dist/docs/interfaces/ProcessingRecursiveStatus.html +27 -0
  80. package/dist/docs/interfaces/ProcessingStatus.html +40 -9
  81. package/dist/docs/interfaces/Property.html +7 -5
  82. package/dist/docs/interfaces/RecordProvider.html +6 -6
  83. package/dist/docs/interfaces/RecordsSourceScope.html +8 -0
  84. package/dist/docs/interfaces/RefObject.html +3 -3
  85. package/dist/docs/interfaces/Relationship.html +22 -20
  86. package/dist/docs/interfaces/ReportApi.html +13 -0
  87. package/dist/docs/interfaces/S3Headers.html +2 -2
  88. package/dist/docs/interfaces/S3UploadResponse.html +2 -2
  89. package/dist/docs/interfaces/SavedSetContent.html +2 -2
  90. package/dist/docs/interfaces/SearchFilter.html +29 -0
  91. package/dist/docs/interfaces/SearchHit.html +11 -0
  92. package/dist/docs/interfaces/SearchInnerHit.html +3 -0
  93. package/dist/docs/interfaces/SearchOptions.html +21 -4
  94. package/dist/docs/interfaces/SearchProps.html +11 -10
  95. package/dist/docs/interfaces/SearchQueryResult.html +5 -0
  96. package/dist/docs/interfaces/SearchXperienceModalProps.html +9 -9
  97. package/dist/docs/interfaces/SearchXperienceProps.html +7 -7
  98. package/dist/docs/interfaces/SemanticBindingOptions.html +8 -0
  99. package/dist/docs/interfaces/SemanticBindingProps.html +8 -6
  100. package/dist/docs/interfaces/SharedCredentialsInput.html +5 -0
  101. package/dist/docs/interfaces/SourceExportError.html +4 -0
  102. package/dist/docs/interfaces/SourceExportRequest.html +8 -0
  103. package/dist/docs/interfaces/SourceExportResponse.html +7 -0
  104. package/dist/docs/interfaces/SourcePeekEntry.html +12 -0
  105. package/dist/docs/interfaces/SourcePeekResponse.html +10 -0
  106. package/dist/docs/interfaces/StreamJsonOptions.html +5 -5
  107. package/dist/docs/interfaces/StreamTextOptions.html +5 -5
  108. package/dist/docs/interfaces/SubscribeOptions.html +4 -0
  109. package/dist/docs/interfaces/TagAttributes.html +7 -7
  110. package/dist/docs/interfaces/TestConnectionRequest.html +12 -0
  111. package/dist/docs/interfaces/TestConnectionResponse.html +4 -0
  112. package/dist/docs/interfaces/UiStateManager.html +2 -2
  113. package/dist/docs/interfaces/UnaryObjectFilterClause.html +3 -3
  114. package/dist/docs/interfaces/UnzipOptions.html +2 -2
  115. package/dist/docs/interfaces/UploadFromUrlError.html +8 -0
  116. package/dist/docs/interfaces/UploadFromUrlRequest.html +6 -0
  117. package/dist/docs/interfaces/UploadFromUrlResponse.html +6 -0
  118. package/dist/docs/interfaces/UploadOptions.html +2 -2
  119. package/dist/docs/interfaces/WorkspaceChangeEmitter.html +7 -7
  120. package/dist/docs/interfaces/WorkspaceItemConfig.html +6 -6
  121. package/dist/docs/interfaces/WorkspaceRecordIdentifier.html +5 -5
  122. package/dist/docs/modules.html +106 -39
  123. package/dist/docs/types/ActionHandler.html +2 -2
  124. package/dist/docs/types/AddCommentParams.html +2 -2
  125. package/dist/docs/types/AddListener.html +2 -2
  126. package/dist/docs/types/AddToReportBlocksInput.html +6 -0
  127. package/dist/docs/types/AddToReportContentSelection.html +2 -0
  128. package/dist/docs/types/AddToReportEntityInput.html +5 -0
  129. package/dist/docs/types/AddToReportInput.html +2 -0
  130. package/dist/docs/types/AddToReportResult.html +2 -0
  131. package/dist/docs/types/ApiErrorResult.html +2 -2
  132. package/dist/docs/types/ApiResult.html +2 -2
  133. package/dist/docs/types/ApiSuccessResult.html +2 -2
  134. package/dist/docs/types/App.html +2 -2
  135. package/dist/docs/types/AppRegistry.html +3 -4
  136. package/dist/docs/types/AppServiceCallOptions.html +2 -2
  137. package/dist/docs/types/AppServiceCallProps.html +2 -2
  138. package/dist/docs/types/AsyncFilter.html +2 -2
  139. package/dist/docs/types/AttachmentResponseType.html +2 -2
  140. package/dist/docs/types/AttachmentType.html +2 -2
  141. package/dist/docs/types/BinaryOperator.html +2 -2
  142. package/dist/docs/types/BrowseKind.html +1 -0
  143. package/dist/docs/types/Callback.html +2 -2
  144. package/dist/docs/types/ChatApiResponse.html +1 -1
  145. package/dist/docs/types/ChatModel.html +2 -2
  146. package/dist/docs/types/CommentWorkspaceItem.html +2 -2
  147. package/dist/docs/types/CommonOptions.html +1 -1
  148. package/dist/docs/types/Comparator.html +2 -2
  149. package/dist/docs/types/ConceptFilter.html +3 -3
  150. package/dist/docs/types/ConceptMap.html +2 -2
  151. package/dist/docs/types/ConceptName.html +1 -1
  152. package/dist/docs/types/ConceptWithParents.html +2 -2
  153. package/dist/docs/types/ConnectedEntity.html +2 -2
  154. package/dist/docs/types/ContextMenuGroup.html +2 -2
  155. package/dist/docs/types/ContextMenuLabels.html +2 -2
  156. package/dist/docs/types/ContextMenuOptions.html +2 -2
  157. package/dist/docs/types/ContextMenuParams.html +2 -2
  158. package/dist/docs/types/ContextMenuRequest.html +2 -2
  159. package/dist/docs/types/CopyOptions.html +2 -2
  160. package/dist/docs/types/CreateEntityFormProps.html +4 -2
  161. package/dist/docs/types/CreateLinkChartFn.html +1 -1
  162. package/dist/docs/types/CreateLinkChartParams.html +1 -1
  163. package/dist/docs/types/CreateRelationsDialogProps.html +2 -2
  164. package/dist/docs/types/CredType.html +1 -0
  165. package/dist/docs/types/CredentialMode.html +1 -0
  166. package/dist/docs/types/CustomEventListener.html +2 -2
  167. package/dist/docs/types/CustomTemplate.html +9 -3
  168. package/dist/docs/types/CustomTemplateIframeProps.html +2 -2
  169. package/dist/docs/types/DataContextType.html +2 -2
  170. package/dist/docs/types/DefaultLiveContextData.html +1 -1
  171. package/dist/docs/types/DefaultTemplate.html +11 -0
  172. package/dist/docs/types/DefaultTemplateProps.html +5 -0
  173. package/dist/docs/types/DeletedEntity.html +3 -0
  174. package/dist/docs/types/DesktopAction.html +2 -2
  175. package/dist/docs/types/DesktopActionFilter.html +2 -2
  176. package/dist/docs/types/DesktopActionMenuItem.html +6 -2
  177. package/dist/docs/types/DesktopActionMenuItemGroup.html +2 -2
  178. package/dist/docs/types/DesktopActionOptions.html +17 -3
  179. package/dist/docs/types/DesktopOpenParams.html +2 -2
  180. package/dist/docs/types/DragEndParams.html +2 -2
  181. package/dist/docs/types/DragStartParams.html +2 -2
  182. package/dist/docs/types/DropZoneRequestFn.html +1 -1
  183. package/dist/docs/types/DropZoneRequestResult.html +1 -1
  184. package/dist/docs/types/EConnection.html +2 -2
  185. package/dist/docs/types/EdgeSpec.html +2 -2
  186. package/dist/docs/types/EmitEventTransformDefinition.html +2 -2
  187. package/dist/docs/types/Entity.html +2 -2
  188. package/dist/docs/types/EntityBase.html +2 -2
  189. package/dist/docs/types/EntityEdge.html +2 -2
  190. package/dist/docs/types/EntityOTM.html +2 -2
  191. package/dist/docs/types/EntityPasteContext.html +2 -2
  192. package/dist/docs/types/EntityRelationshipCount.html +4 -0
  193. package/dist/docs/types/EvalContext.html +1 -1
  194. package/dist/docs/types/EventContextType.html +2 -2
  195. package/dist/docs/types/EventEmitterType.html +2 -2
  196. package/dist/docs/types/EventName.html +2 -2
  197. package/dist/docs/types/EventProducer.html +2 -2
  198. package/dist/docs/types/EventPublisher.html +2 -2
  199. package/dist/docs/types/EventSubscriber.html +2 -2
  200. package/dist/docs/types/EventUnsubscriber.html +2 -2
  201. package/dist/docs/types/ExportOptions.html +2 -2
  202. package/dist/docs/types/ExtractEntitiesOptions.html +2 -2
  203. package/dist/docs/types/ExtrasApi.html +1 -1
  204. package/dist/docs/types/FetchEntityOptions.html +2 -2
  205. package/dist/docs/types/FileCode.html +2 -2
  206. package/dist/docs/types/FileTreeOptions.html +2 -2
  207. package/dist/docs/types/FilterDefinition.html +2 -2
  208. package/dist/docs/types/FilterDefinitions.html +2 -2
  209. package/dist/docs/types/FilterName.html +2 -2
  210. package/dist/docs/types/FilterQuery.html +2 -2
  211. package/dist/docs/types/FilterReference.html +2 -2
  212. package/dist/docs/types/FilterValue.html +2 -2
  213. package/dist/docs/types/FocusListItem.html +2 -2
  214. package/dist/docs/types/FragmentInfo.html +5 -0
  215. package/dist/docs/types/FragmentLocator.html +5 -0
  216. package/dist/docs/types/FragmentResolution.html +2 -0
  217. package/dist/docs/types/GetSystemSettingResponse.html +4 -1
  218. package/dist/docs/types/GraphDataSpec.html +1 -1
  219. package/dist/docs/types/GraphSpec.html +2 -2
  220. package/dist/docs/types/HttpTransformDefinition.html +2 -2
  221. package/dist/docs/types/Icon.html +2 -2
  222. package/dist/docs/types/IconProps.html +2 -2
  223. package/dist/docs/types/IframeTransformDefinition.html +2 -2
  224. package/dist/docs/types/ImageInfo.html +2 -2
  225. package/dist/docs/types/ImageLabelFamily.html +21 -0
  226. package/dist/docs/types/ImportConflictPolicy.html +1 -0
  227. package/dist/docs/types/ImportEntryKind.html +1 -0
  228. package/dist/docs/types/ImportFoldersOptions.html +2 -2
  229. package/dist/docs/types/ImportMode.html +1 -0
  230. package/dist/docs/types/InlineCode.html +2 -2
  231. package/dist/docs/types/JavascriptFileTransformDefinition.html +2 -2
  232. package/dist/docs/types/JavascriptFilterDefinition.html +2 -2
  233. package/dist/docs/types/JavascriptInlineTransformDefinition.html +2 -2
  234. package/dist/docs/types/JavascriptType.html +3 -3
  235. package/dist/docs/types/JobManifest.html +4 -4
  236. package/dist/docs/types/KnownCounts.html +2 -2
  237. package/dist/docs/types/ListByParentFolder.html +1 -1
  238. package/dist/docs/types/ListByPath.html +1 -1
  239. package/dist/docs/types/ListFolderOptions.html +1 -1
  240. package/dist/docs/types/LiveContextAPISetParams.html +1 -1
  241. package/dist/docs/types/LiveContextListener.html +1 -1
  242. package/dist/docs/types/ManifestSecrets.html +1 -1
  243. package/dist/docs/types/MapSettingKey.html +1 -0
  244. package/dist/docs/types/MkdirResponse.html +1 -1
  245. package/dist/docs/types/ModalTemplateProps.html +2 -2
  246. package/dist/docs/types/MountScheme.html +7 -0
  247. package/dist/docs/types/NamedEntityGroup.html +2 -2
  248. package/dist/docs/types/NunjucksFileTransformDefinition.html +2 -2
  249. package/dist/docs/types/NunjucksInlineTransformDefinition.html +2 -2
  250. package/dist/docs/types/NunjucksType.html +3 -3
  251. package/dist/docs/types/OS_CONFIRM_MODAL_RESPONSE.html +2 -2
  252. package/dist/docs/types/OntologyTags.html +2 -2
  253. package/dist/docs/types/OpenNewAIChatOptions.html +17 -0
  254. package/dist/docs/types/OpenReportSummary.html +6 -0
  255. package/dist/docs/types/OsAuditFields.html +2 -2
  256. package/dist/docs/types/OsConfirmProps.html +2 -2
  257. package/dist/docs/types/OsNotification.html +2 -2
  258. package/dist/docs/types/OsProgress.html +11 -3
  259. package/dist/docs/types/OsTag.html +2 -2
  260. package/dist/docs/types/OsWorkspaceEntity.html +2 -2
  261. package/dist/docs/types/OsWorkspacePickerProps.html +2 -2
  262. package/dist/docs/types/PeekSourceTarget.html +4 -0
  263. package/dist/docs/types/Permission.html +2 -2
  264. package/dist/docs/types/Point.html +2 -2
  265. package/dist/docs/types/PrincipalType.html +1 -0
  266. package/dist/docs/types/PromptOptions.html +6 -3
  267. package/dist/docs/types/ProvidedFilterDefinition.html +2 -2
  268. package/dist/docs/types/ProvidedTransformDefinition.html +2 -2
  269. package/dist/docs/types/Query.html +2 -2
  270. package/dist/docs/types/QueryBatchResult.html +2 -2
  271. package/dist/docs/types/QueryDslQueryContainer.html +6 -0
  272. package/dist/docs/types/QueryErrorResult.html +2 -2
  273. package/dist/docs/types/QueryExecutor.html +2 -2
  274. package/dist/docs/types/QueryFilesystemItemsParams.html +16 -0
  275. package/dist/docs/types/QueryObjectFilterClause.html +2 -2
  276. package/dist/docs/types/QueryResponse.html +2 -2
  277. package/dist/docs/types/QueryResult.html +2 -2
  278. package/dist/docs/types/QuerySuccessResult.html +2 -2
  279. package/dist/docs/types/ReactCssProperties.html +2 -2
  280. package/dist/docs/types/ReactNode.html +2 -2
  281. package/dist/docs/types/ReactRef.html +2 -2
  282. package/dist/docs/types/ReasonedBoolean.html +2 -2
  283. package/dist/docs/types/RefCallback.html +2 -2
  284. package/dist/docs/types/RegisteredActionInfo.html +21 -0
  285. package/dist/docs/types/RelationshipCountEntry.html +8 -0
  286. package/dist/docs/types/RelationshipCountResult.html +2 -2
  287. package/dist/docs/types/RelationshipCountState.html +2 -0
  288. package/dist/docs/types/RemoteAppApi.html +1 -1
  289. package/dist/docs/types/RenameTabProps.html +2 -2
  290. package/dist/docs/types/RenderableTemplate.html +11 -0
  291. package/dist/docs/types/ReportTiptapNode.html +4 -0
  292. package/dist/docs/types/RuntimeAppUrlEntity.html +5 -0
  293. package/dist/docs/types/RuntimeAppUrlWorkspaceItem.html +10 -0
  294. package/dist/docs/types/SaveAsModalProps.html +2 -2
  295. package/dist/docs/types/SaveFileOptions.html +2 -2
  296. package/dist/docs/types/SaveOptions.html +2 -3
  297. package/dist/docs/types/SavedTemplate.html +3 -4
  298. package/dist/docs/types/SearchScope.html +9 -0
  299. package/dist/docs/types/SemanticBinding.html +2 -2
  300. package/dist/docs/types/SemanticBindingSpec.html +3 -0
  301. package/dist/docs/types/SemanticBindingType.html +2 -2
  302. package/dist/docs/types/SemanticBindings.html +3 -2
  303. package/dist/docs/types/SemanticallyBoundApp.html +2 -2
  304. package/dist/docs/types/SemanticallyBoundFilterDefinition.html +2 -2
  305. package/dist/docs/types/SendQueryOptions.html +2 -2
  306. package/dist/docs/types/ServiceDefinition.html +2 -2
  307. package/dist/docs/types/ServiceDefinitions.html +2 -2
  308. package/dist/docs/types/ServiceRole.html +2 -2
  309. package/dist/docs/types/SetTransformResultFn.html +1 -1
  310. package/dist/docs/types/SetsOptions.html +7 -16
  311. package/dist/docs/types/SetsSortBy.html +1 -0
  312. package/dist/docs/types/ShowOntology.html +2 -2
  313. package/dist/docs/types/ShowTabProps.html +2 -2
  314. package/dist/docs/types/SubscribeDragStartFn.html +1 -1
  315. package/dist/docs/types/SubscribeToContextFn.html +1 -1
  316. package/dist/docs/types/Tag.html +2 -2
  317. package/dist/docs/types/TagInfo.html +2 -2
  318. package/dist/docs/types/TagWithRelationship.html +2 -2
  319. package/dist/docs/types/TaskCleanupReason.html +2 -2
  320. package/dist/docs/types/TemplateMetadata.html +3 -3
  321. package/dist/docs/types/TemplateType.html +2 -2
  322. package/dist/docs/types/TemplateVariant.html +2 -2
  323. package/dist/docs/types/TestOutcome.html +2 -0
  324. package/dist/docs/types/TransformAction.html +2 -2
  325. package/dist/docs/types/TransformActionContext.html +2 -2
  326. package/dist/docs/types/TransformDefinition.html +2 -2
  327. package/dist/docs/types/TransformDefinitions.html +2 -2
  328. package/dist/docs/types/Unsubscribe.html +2 -2
  329. package/dist/docs/types/UnsubscribeFn.html +1 -1
  330. package/dist/docs/types/UnsubscribeFromContextFn.html +1 -1
  331. package/dist/docs/types/UnsubscribeFromDragStartFn.html +1 -1
  332. package/dist/docs/types/UploadFromUrlErrorCode.html +4 -0
  333. package/dist/docs/types/UserProfile.html +2 -2
  334. package/dist/docs/types/VirtualEntity.html +2 -2
  335. package/dist/docs/types/Whoami.html +3 -3
  336. package/dist/docs/types/WithProgressBarOptions.html +2 -2
  337. package/dist/docs/types/WorkspaceConfig.html +5 -3
  338. package/dist/docs/types/WorkspaceFlags.html +2 -2
  339. package/dist/docs/types/WorkspaceIdentifier.html +2 -2
  340. package/dist/docs/types/WorkspaceItem.html +21 -2
  341. package/dist/docs/types/WorkspaceItemBase.html +2 -2
  342. package/dist/docs/types/WorkspaceItemDocumentFields.html +1 -1
  343. package/dist/docs/types/WorkspaceItemIdentifier.html +2 -2
  344. package/dist/docs/types/WorkspaceItemModel.html +4 -12
  345. package/dist/docs/types/WorkspaceItemTitleProps.html +3 -3
  346. package/dist/docs/types/WorkspacePermission.html +2 -2
  347. package/dist/docs/types/WorkspaceRecord.html +2 -2
  348. package/dist/docs/types/WorkspaceRecordWithRelationships.html +2 -2
  349. package/dist/docs/types/WorkspaceRelationship.html +3 -2
  350. package/dist/docs/types/WorkspaceSettings.html +2 -2
  351. package/dist/docs/types/trigger.html +2 -2
  352. package/dist/docs/types/uuid.html +2 -2
  353. package/dist/docs/variables/HEAVY_ANNOTATION_FIELDS.html +17 -0
  354. package/dist/docs/variables/IMAGE_LABEL_FAMILIES.html +1 -0
  355. package/dist/docs/variables/IMAGE_LABEL_FIELDS.html +1 -0
  356. package/dist/docs/variables/IMAGE_LABEL_SOURCE_INCLUDES.html +2 -0
  357. package/dist/docs/variables/MAP_SETTINGS_KEYS.html +9 -0
  358. package/dist/docs/variables/ORIGINAL_OS_PARENT_FOLDER.html +1 -1
  359. package/dist/docs/variables/OS_CONFIRM_MODAL_CANCEL.html +2 -2
  360. package/dist/docs/variables/OS_CONFIRM_MODAL_NO.html +2 -2
  361. package/dist/docs/variables/OS_CONFIRM_MODAL_YES.html +2 -2
  362. package/dist/docs/variables/VECTOR_SENTINEL_LABELS.html +4 -0
  363. package/dist/extras.d.ts +0 -1
  364. package/dist/extras.d.ts.map +1 -1
  365. package/dist/files.d.ts +141 -1
  366. package/dist/files.d.ts.map +1 -1
  367. package/dist/files.js.map +1 -1
  368. package/dist/fragmentLocator.d.ts +31 -0
  369. package/dist/fragmentLocator.d.ts.map +1 -0
  370. package/dist/fragmentLocator.js +2 -0
  371. package/dist/fragmentLocator.js.map +1 -0
  372. package/dist/imageLabels.d.ts +84 -0
  373. package/dist/imageLabels.d.ts.map +1 -0
  374. package/dist/imageLabels.js +148 -0
  375. package/dist/imageLabels.js.map +1 -0
  376. package/dist/index.d.ts +6 -3
  377. package/dist/index.d.ts.map +1 -1
  378. package/dist/index.js +6 -3
  379. package/dist/index.js.map +1 -1
  380. package/dist/indexSearch.d.ts +18 -0
  381. package/dist/indexSearch.d.ts.map +1 -1
  382. package/dist/jobManifestTypes.d.ts +5 -25
  383. package/dist/jobManifestTypes.d.ts.map +1 -1
  384. package/dist/mapSettings.d.ts +17 -0
  385. package/dist/mapSettings.d.ts.map +1 -0
  386. package/dist/mapSettings.js +16 -0
  387. package/dist/mapSettings.js.map +1 -0
  388. package/dist/model.d.ts +215 -71
  389. package/dist/model.d.ts.map +1 -1
  390. package/dist/model.js +44 -25
  391. package/dist/model.js.map +1 -1
  392. package/dist/mounts.d.ts +184 -0
  393. package/dist/mounts.d.ts.map +1 -0
  394. package/dist/mounts.js +11 -0
  395. package/dist/mounts.js.map +1 -0
  396. package/dist/ontology.d.ts +148 -8
  397. package/dist/ontology.d.ts.map +1 -1
  398. package/dist/platform-types.d.ts +1680 -678
  399. package/dist/report.d.ts +112 -0
  400. package/dist/report.d.ts.map +1 -0
  401. package/dist/report.js +2 -0
  402. package/dist/report.js.map +1 -0
  403. package/dist/savedSet.d.ts +5 -0
  404. package/dist/savedSet.d.ts.map +1 -0
  405. package/dist/savedSet.js +2 -0
  406. package/dist/savedSet.js.map +1 -0
  407. package/dist/search.d.ts +140 -3
  408. package/dist/search.d.ts.map +1 -1
  409. package/dist/search.js +32 -1
  410. package/dist/search.js.map +1 -1
  411. package/dist/semantic.d.ts +24 -5
  412. package/dist/semantic.d.ts.map +1 -1
  413. package/dist/templates.d.ts +63 -5
  414. package/dist/templates.d.ts.map +1 -1
  415. package/dist/templates.js +8 -1
  416. package/dist/templates.js.map +1 -1
  417. package/dist/workspace.d.ts +25 -41
  418. package/dist/workspace.d.ts.map +1 -1
  419. package/dist/workspace.js.map +1 -1
  420. package/package.json +6 -20
  421. package/dist/behaviour.d.ts +0 -45
  422. package/dist/behaviour.d.ts.map +0 -1
  423. package/dist/behaviour.js +0 -14
  424. package/dist/behaviour.js.map +0 -1
  425. package/dist/docs/interfaces/ChartDataResponseResult.html +0 -20
  426. package/dist/docs/interfaces/NativeFilterColumn.html +0 -3
  427. package/dist/docs/interfaces/NativeFilterScope.html +0 -3
  428. package/dist/docs/interfaces/NativeFilterTarget.html +0 -3
  429. package/dist/docs/interfaces/RecordData.html +0 -20
  430. package/dist/docs/interfaces/SavedDatasource.html +0 -7
  431. package/dist/docs/interfaces/SavedSearchAPIInterface.html +0 -6
  432. package/dist/docs/interfaces/SavedSearchContent.html +0 -7
  433. package/dist/docs/interfaces/StylerContext.html +0 -21
  434. package/dist/docs/types/Behaviour.html +0 -17
  435. package/dist/docs/types/DataMask.html +0 -1
  436. package/dist/docs/types/DesktopStylerContext.html +0 -4
  437. package/dist/docs/types/DraftWorkspaceItem.html +0 -3
  438. package/dist/docs/types/Filter.html +0 -1
  439. package/dist/docs/types/FilterState.html +0 -1
  440. package/dist/docs/types/FolderPasteOptions.html +0 -5
  441. package/dist/docs/types/ImportZipOptions.html +0 -6
  442. package/dist/docs/types/JavascriptFileStylerDefinition.html +0 -2
  443. package/dist/docs/types/JavascriptInlineStylerDefinition.html +0 -2
  444. package/dist/docs/types/PasteContextOptions.html +0 -8
  445. package/dist/docs/types/RecordFetchOptions.html +0 -1
  446. package/dist/docs/types/SearchFilter.html +0 -2
  447. package/dist/docs/types/Styler.html +0 -19
  448. package/dist/docs/types/StylerConfig.html +0 -6
  449. package/dist/docs/types/StylerDefinition.html +0 -2
  450. package/dist/docs/types/StylerDefinitions.html +0 -2
  451. package/dist/docs/types/StylerOption.html +0 -4
  452. package/dist/docs/types/StylerProducer.html +0 -4
  453. package/dist/docs/types/Watcher.html +0 -11
  454. package/dist/docs/types/Workspace.html +0 -8
  455. package/dist/docs/types/WorkspaceItems.html +0 -2
  456. package/dist/docs/types/WorkspaceRecordInfo.html +0 -6
  457. package/dist/docs/types/WorkspaceRecords.html +0 -2
  458. package/dist/docs/variables/SAVED_SEARCH_MESSAGE_TYPES.html +0 -1
  459. package/dist/docs/variables/SAVED_SEARCH_PREFIX.html +0 -1
  460. package/dist/savedSearch.d.ts +0 -128
  461. package/dist/savedSearch.d.ts.map +0 -1
  462. package/dist/savedSearch.js +0 -16
  463. package/dist/savedSearch.js.map +0 -1
  464. package/dist/styling.d.ts +0 -100
  465. package/dist/styling.d.ts.map +0 -1
  466. package/dist/styling.js +0 -2
  467. package/dist/styling.js.map +0 -1
@@ -1,8 +1,7 @@
1
1
  import type { ButtonProps } from 'antd';
2
- import { ItemType } from 'rc-menu/lib/interface';
2
+ import type { ItemType } from 'antd/es/menu/interface';
3
3
  import { ModalProps } from 'antd';
4
4
  import { Properties } from 'csstype';
5
- import { QueryDslQueryContainer } from '@elastic/elasticsearch/lib/api/types';
6
5
  import type { TabNode } from 'flexlayout-react';
7
6
 
8
7
  /**
@@ -14,7 +13,6 @@ export declare interface ActionContext {
14
13
  graph?: GraphSpec & any;
15
14
  item?: WorkspaceItem;
16
15
  items?: WorkspaceItem[];
17
- workspace?: Workspace;
18
16
  dataTransfer?: IDataTransfer;
19
17
  eventTopicPrefix?: string;
20
18
  selectedItems?: WorkspaceItem[];
@@ -68,6 +66,67 @@ export declare type AddCommentParams = {
68
66
  */
69
67
  export declare type AddListener<T> = (callback: Callback<T>) => Promise<Unsubscribe>;
70
68
 
69
+ declare type AddToReportBaseInput = {
70
+ /** Optional: preselect a target report when the flow opens */
71
+ initialTargetUid?: string;
72
+ /** Optional: require a live in-memory insert target instead of silently appending to disk */
73
+ requireLiveInsert?: boolean;
74
+ };
75
+
76
+ /**
77
+ * @beta
78
+ * Arbitrary-content "Add to report" payload. The host app shows the same target-picker UI, but
79
+ * appends the supplied TipTap JSON blocks directly instead of building them from an entity.
80
+ */
81
+ export declare type AddToReportBlocksInput = AddToReportBaseInput & {
82
+ mode: 'blocks';
83
+ /** Arbitrary TipTap JSON blocks to append directly into the target report */
84
+ blocks: ReportTiptapNode[];
85
+ /** Optional: short label shown in the flow and suggested report name */
86
+ sourceLabel?: string;
87
+ /** Optional: explanatory text shown in the flow instead of the entity checkbox section */
88
+ sourceDescription?: string;
89
+ };
90
+
91
+ /**
92
+ * @beta
93
+ * Checkbox payload for "Add to report" content.
94
+ */
95
+ export declare type AddToReportContentSelection = {
96
+ coreData: boolean;
97
+ mainPicture: boolean;
98
+ allPictures: boolean;
99
+ relatedLinks: boolean;
100
+ };
101
+
102
+ /**
103
+ * @beta
104
+ * Entity-driven "Add to report" payload. The host app will build report blocks from the entity plus
105
+ * the usual checkbox selection.
106
+ */
107
+ export declare type AddToReportEntityInput = AddToReportBaseInput & {
108
+ mode?: 'entity';
109
+ /** Entity to snapshot into the report */
110
+ sourceEntity: Entity;
111
+ /** Optional: override default checkbox state */
112
+ initialSelection?: Partial<AddToReportContentSelection>;
113
+ };
114
+
115
+ /**
116
+ * @beta
117
+ * Input for {@link ReportApi.presentAddToReportFlow}.
118
+ */
119
+ export declare type AddToReportInput = AddToReportEntityInput | AddToReportBlocksInput;
120
+
121
+ /**
122
+ * @beta
123
+ * Result after a successful append.
124
+ */
125
+ export declare type AddToReportResult = {
126
+ targetOdocUid: string;
127
+ targetDisplayName: string;
128
+ };
129
+
71
130
  /**
72
131
  * The interface for the AI client.
73
132
  */
@@ -147,11 +206,6 @@ export declare type AppRegistry = {
147
206
  * Registers an action.
148
207
  */
149
208
  registerAction: (action: DesktopActionMenuItem) => void;
150
- /**
151
- * @beta
152
- * Registers a styler.
153
- */
154
- registerStyler: (styler: StylerConfig) => () => void;
155
209
  };
156
210
 
157
211
  /**
@@ -191,51 +245,6 @@ export declare type AttachmentResponseType = 'text' | 'blob' | 'arrayBuffer' | '
191
245
  */
192
246
  export declare type AttachmentType = string | Blob | ArrayBuffer | Record<string, any>;
193
247
 
194
- /**
195
- * @beta
196
- * Type representing a set of behaviors with various methods for entity and graph operations.
197
- */
198
- export declare type Behaviour = {
199
- /**
200
- * Gets the count of entities.
201
- * @returns A promise that resolves to the number of entities.
202
- */
203
- getEntitiesCount?: () => Promise<number>;
204
- /**
205
- * Gets a list of entities.
206
- * @param limit - Optional limit on the number of entities to retrieve.
207
- * @returns A promise that resolves to an array of entities.
208
- */
209
- getEntities?: (limit?: number) => Promise<Entity[]>;
210
- /**
211
- * Gets a single entity.
212
- * @returns A promise that resolves to an entity.
213
- */
214
- getEntity?: () => Promise<Entity>;
215
- /**
216
- * Gets the content associated with the behavior.
217
- * @returns A promise that resolves to the content.
218
- */
219
- getContent?: () => Promise<any>;
220
- /**
221
- * Gets the graph specification.
222
- * @returns A promise that resolves to the graph specification or undefined if not available.
223
- */
224
- getGraph?: () => Promise<GraphSpec | undefined>;
225
- /**
226
- * Opens the associated entity or content with the default action.
227
- * @returns A promise that resolves when the operation is complete.
228
- */
229
- open?: () => Promise<void>;
230
- /**
231
- * Edits the associated entity or content with the default edit action.
232
- * @returns A promise that resolves when the operation is complete.
233
- */
234
- edit?: () => Promise<void>;
235
- };
236
-
237
- declare type BigNumber = any;
238
-
239
248
  /**
240
249
  * @beta
241
250
  * Represents a filter clause with binary operations in a query object.
@@ -253,6 +262,30 @@ export declare interface BinaryObjectFilterClause {
253
262
  */
254
263
  export declare type BinaryOperator = '==' | '!=' | '>' | '>=' | '<' | '<=' | 'IN' | 'NOT IN' | 'regex' | 'LIKE' | 'ILIKE';
255
264
 
265
+ export declare interface BrowseEntry {
266
+ id: string;
267
+ name: string;
268
+ kind: 'file' | 'directory';
269
+ size?: number | null;
270
+ modified_at?: string | null;
271
+ content_type_hint?: string | null;
272
+ }
273
+
274
+ export declare type BrowseKind = 'file' | 'directory' | 'any';
275
+
276
+ export declare interface BrowseRequest {
277
+ path?: string;
278
+ kind?: BrowseKind;
279
+ limit?: number;
280
+ }
281
+
282
+ export declare interface BrowseResponse {
283
+ path: string;
284
+ entries: BrowseEntry[];
285
+ truncated: boolean;
286
+ next_cursor?: string | null;
287
+ }
288
+
256
289
  /**
257
290
  * @beta
258
291
  * Type representing a callback function.
@@ -261,34 +294,6 @@ export declare type BinaryOperator = '==' | '!=' | '>' | '>=' | '<' | '<=' | 'IN
261
294
  */
262
295
  export declare type Callback<T> = (t: T) => void;
263
296
 
264
- export declare interface ChartDataResponseResult {
265
- all_columns?: string[];
266
- annotation_data: Record<string, any> | null;
267
- cache_key: string | null;
268
- cache_timeout: number | null;
269
- cached_dttm: string | null;
270
- /**
271
- * Array of data records as dictionary
272
- */
273
- data: Record<any, any>[];
274
- /**
275
- * Name of each column, for retaining the order of the output columns.
276
- */
277
- colnames: string[];
278
- /**
279
- * Generic data types, based on the final output pandas dataframe.
280
- */
281
- coltypes: GenericDataType[];
282
- error: string | null;
283
- is_cached: boolean;
284
- query: string;
285
- rowcount: number;
286
- stacktrace: string | null;
287
- status: 'stopped' | 'failed' | 'pending' | 'running' | 'scheduled' | 'success' | 'timed_out';
288
- from_dttm: number | null;
289
- to_dttm: number | null;
290
- }
291
-
292
297
  export declare type ChatApiResponse = {
293
298
  response: {
294
299
  content: string;
@@ -353,6 +358,7 @@ export declare interface ChatMessage {
353
358
  export declare type ChatModel = {
354
359
  model_name: string;
355
360
  description: string;
361
+ is_default?: boolean;
356
362
  };
357
363
 
358
364
  /**
@@ -440,9 +446,9 @@ export declare interface Concept {
440
446
  */
441
447
  labelKeys: string[];
442
448
  /**
443
- * All label keys for the concept.
449
+ * The display label from the ontology schema.
444
450
  */
445
- allLabelKeys: string[];
451
+ label?: OntologyLabel;
446
452
  }
447
453
 
448
454
  /**
@@ -457,9 +463,7 @@ export declare type ConceptFilter = {
457
463
  /**
458
464
  * The filters to apply to the records of the concept.
459
465
  */
460
- filters: (QueryObjectFilterClause & {
461
- formattedLabel?: string;
462
- })[];
466
+ filters: QueryObjectFilterClause[];
463
467
  /**
464
468
  * Indicates if the item only should be returned.
465
469
  * If true, only the item itself will be returned.
@@ -499,7 +503,7 @@ export declare type ConnectedEntity = Entity & {
499
503
  * @beta
500
504
  * Type representing the groups for a context menu.
501
505
  */
502
- export declare type ContextMenuGroup = 'add' | 'addto' | 'copy' | 'edit' | 'transform' | 'general' | 'open' | 'danger' | 'tags' | 'relations' | 'search' | 'actions' | 'file' | 'settings';
506
+ export declare type ContextMenuGroup = 'add' | 'addto' | 'report' | 'copy' | 'edit' | 'transform' | 'general' | 'open' | 'danger' | 'tags' | 'relations' | 'search' | 'actions' | 'file' | 'settings';
503
507
 
504
508
  /**
505
509
  * @beta
@@ -519,6 +523,7 @@ export declare type ContextMenuOptions = {
519
523
  labels?: ContextMenuLabels;
520
524
  extras?: ItemType[];
521
525
  excludedKeys?: string[];
526
+ extraActionItems?: DesktopActionMenuItem[];
522
527
  };
523
528
 
524
529
  /**
@@ -582,6 +587,11 @@ export declare type CreateEntityFormProps = {
582
587
  * Concept related to the form.
583
588
  */
584
589
  concept?: string;
590
+ /**
591
+ * Root concept for the concept selector tree. When set, the concept selector
592
+ * only shows this concept and its subtypes. Defaults to 'os_workspace_item'.
593
+ */
594
+ conceptTreeRoot?: string;
585
595
  };
586
596
 
587
597
  export declare type CreateLinkChartFn = (params: CreateLinkChartParams) => Promise<WorkspaceItem | undefined>;
@@ -591,7 +601,6 @@ export declare type CreateLinkChartParams = {
591
601
  name: string;
592
602
  nodes?: Entity[];
593
603
  edges?: EdgeSpec[];
594
- draft?: boolean;
595
604
  os_workspace?: string;
596
605
  };
597
606
 
@@ -626,6 +635,10 @@ export declare type CreateRelationsDialogProps = {
626
635
  defaultTargetConcept?: string;
627
636
  };
628
637
 
638
+ export declare type CredentialMode = 'shared' | 'per_user' | 'either';
639
+
640
+ export declare type CredType = 'password';
641
+
629
642
  /**
630
643
  * @beta
631
644
  * Type representing a custom event listener.
@@ -637,10 +650,19 @@ export declare type CustomEventListener<L> = (payload: L) => void;
637
650
  /**
638
651
  * @beta
639
652
  * Type representing a custom template, extending TemplateMetadata.
653
+ *
654
+ * `os_entity_uid` and `os_workspace` are optional here so an in-memory
655
+ * template built via `newCustomTemplate()` can still flow through
656
+ * `RenderableTemplate`-typed code paths. `SavedTemplate` narrows both
657
+ * to required strings.
640
658
  */
641
659
  export declare type CustomTemplate = TemplateMetadata & {
642
660
  /** The template content. */
643
661
  template: string;
662
+ /** Set once the template is persisted as a workspace item. */
663
+ os_entity_uid?: string;
664
+ /** Set once the template is persisted as a workspace item. */
665
+ os_workspace?: string;
644
666
  };
645
667
 
646
668
  /**
@@ -707,13 +729,50 @@ export declare type DataContextType = {
707
729
  removeFromGraph: (graph: GraphDataSpec) => void;
708
730
  };
709
731
 
710
- export declare type DataMask = {
711
- extraFormData?: Record<string, any>;
712
- filterState?: FilterState;
713
- ownState?: Record<string, any>;
732
+ export declare type DefaultLiveContextData = Record<string, any>;
733
+
734
+ /**
735
+ * @beta
736
+ * A code-resident default template. Carries the same metadata as a
737
+ * `SavedTemplate` so it can flow through the existing template lookup
738
+ * pipeline, but renders via a real React component rather than a
739
+ * `react-live` string.
740
+ *
741
+ * Defaults always have `os_workspace === ''` — that's the marker
742
+ * `isDefaultTemplate` looks for and disambiguates them from workspace
743
+ * templates whose `os_workspace` is always a real UUID.
744
+ */
745
+ export declare type DefaultTemplate = TemplateMetadata & {
746
+ /** Synthetic identifier, e.g. `default-template-PersonInfo`. */
747
+ os_entity_uid: string;
748
+ /** Empty string marks this as a code-resident default. */
749
+ os_workspace: '';
750
+ /** The React component that renders this template. */
751
+ component: (props: DefaultTemplateProps) => ReactNode;
752
+ };
753
+
754
+ /**
755
+ * @beta
756
+ * Props passed to a code-resident default template's React component.
757
+ */
758
+ export declare type DefaultTemplateProps = {
759
+ /** The record this template is rendering for, if any. */
760
+ record?: WorkspaceItem;
761
+ /** The same context object passed to react-live templates. */
762
+ context?: any;
763
+ /** Optional extra scope variables forwarded from `<OsTemplate extraScope>`. */
764
+ extraScope?: Record<string, unknown>;
714
765
  };
715
766
 
716
- export declare type DefaultLiveContextData = Record<string, any>;
767
+ /**
768
+ * Represents a deletion notification payload (from the firehose).
769
+ * Identity fields like `os_entity_uid` and `entity_label` may be empty.
770
+ * @beta
771
+ */
772
+ export declare type DeletedEntity = Entity & {
773
+ '#deleted': true;
774
+ '#updated': number;
775
+ };
717
776
 
718
777
  export declare interface DeleteResponse {
719
778
  tracking_id?: string;
@@ -771,9 +830,9 @@ export declare interface Desktop extends DesktopSettings, WorkspaceChangeEmitter
771
830
  listAllWorkspaces: (permissions?: WorkspacePermissionValue) => Promise<WorkspaceItem[]>;
772
831
  /**
773
832
  * This might not be enough, add a listener to {@link WorkspaceChangeEmitter.onOpenWorkspacesChanged} to keep getting updated.
774
- * In react components, prefer useDesktopWorkspaces hook.
833
+ * In react components, prefer the `useOpenWorkspaces` hook for ids and `getEntity` for per-workspace data.
775
834
  */
776
- getOpenWorkspaces: () => Promise<Workspace[]>;
835
+ getOpenWorkspaces: () => Promise<WorkspaceItem[]>;
777
836
  /**
778
837
  * Gets the OntologyAPI.
779
838
  * @returns a promise that resolves to the current ontology
@@ -791,22 +850,12 @@ export declare interface Desktop extends DesktopSettings, WorkspaceChangeEmitter
791
850
  * @returns A promise that resolves to the attachment of type T.
792
851
  */
793
852
  getAttachment: <T extends AttachmentType>(entity: Entity, options?: GetAttachmentOptions<T>) => Promise<T>;
794
- /**
795
- * @beta
796
- * Gets options for stylers.
797
- */
798
- getStylerOptions: () => Promise<StylerOption[]>;
799
- /**
800
- * @beta
801
- * Gets a styler by name and context.
802
- */
803
- getStyler: (name: string, context: DesktopStylerContext) => Promise<Styler>;
804
853
  /**
805
854
  * Gets a workspace by identifier.
806
855
  */
807
856
  getWorkspace: (ws: WorkspaceIdentifier, options?: {
808
857
  shouldRetry?: boolean;
809
- }) => Promise<Workspace | undefined>;
858
+ }) => Promise<WorkspaceItem | undefined>;
810
859
  /**
811
860
  * Gets items in a workspace by name.
812
861
  */
@@ -860,15 +909,36 @@ export declare interface Desktop extends DesktopSettings, WorkspaceChangeEmitter
860
909
  /**
861
910
  * Gets templates by layout or filter
862
911
  */
863
- getTemplates: (layout?: string | ((template: SavedTemplate) => boolean)) => Promise<SavedTemplate[]>;
912
+ getTemplates: (layout?: string | ((template: SavedTemplate) => boolean)) => Promise<RenderableTemplate[]>;
864
913
  /**
865
914
  * Gets a template by name or entity or filter with an optional default template.
866
915
  */
867
- getTemplate: (name: string | Entity | ((template: SavedTemplate) => boolean), defaultTemplate?: string) => Promise<SavedTemplate>;
916
+ getTemplate: (name: string | Entity | ((template: SavedTemplate) => boolean), defaultTemplate?: string) => Promise<RenderableTemplate>;
868
917
  /**
869
918
  * Gets the named app if it is on the desktop and in a running state.
919
+ *
920
+ * MIGRATION (app authors): the app's iframe URL is no longer on
921
+ * `os_item_content.app_url` — that field is gone. The resolved URL is now
922
+ * exposed on the runtime-only `#appUrl` field of the returned item (see
923
+ * {@link RuntimeAppUrlWorkspaceItem}). It is hydrated from the K8s apps API
924
+ * and is NOT persisted, so don't read it off a stored/restored item.
925
+ */
926
+ getApp: (name: string) => Promise<RuntimeAppUrlWorkspaceItem | undefined>;
927
+ /**
928
+ * Resolve app folders by name within the given workspaces. Match is on
929
+ * `os_item_name`, case-insensitive. Use this instead of hardcoding app
930
+ * `entity_id`s on a home page or launcher — those ids are regenerated per
931
+ * environment, whereas the app name is stable across them.
932
+ *
933
+ * Returns one {@link App} per requested name that exists, in the order the
934
+ * names were given (unknown names are skipped). Each App carries its `folder`
935
+ * (open it via `desktop.open(app.folder)`) and, when found, its
936
+ * `manifest_entity` for loading the app's icon/description.
937
+ *
938
+ * @param names - App folder names to look up.
939
+ * @param workspace_ids - Workspaces to search; defaults to the currently open workspaces.
870
940
  */
871
- getApp: (name: string) => Promise<WorkspaceItem | undefined>;
941
+ getApps: (names: string[], workspace_ids?: string[]) => Promise<App[]>;
872
942
  /**
873
943
  * Gets the context of an app by its octostar channel id.
874
944
  * @param octostarChannelId the id assigned to the app by the octostar platform
@@ -876,12 +946,10 @@ export declare interface Desktop extends DesktopSettings, WorkspaceChangeEmitter
876
946
  */
877
947
  getAppContext: (octostarChannelId: string) => Promise<Record<string, any>>;
878
948
  /**
879
- * Query workspace items by content type directly from the database.
880
- * This ensures all items are retrieved, not just those loaded in memory.
949
+ * Workspace items matching `os_item_content_type`.
950
+ * Hydrated-in-memory types use Redux; others are loaded via an ontology query on the filesystem concept.
881
951
  *
882
- * @param os_item_content_type - The content type to filter by
883
- * @param workspace_ids - Optional list of workspace IDs to filter by. If not provided, searches across all open workspaces
884
- * @returns Promise resolving to array of workspace items matching the content type
952
+ * @param workspace_ids - Optional workspace filter; if omitted, uses currently open workspaces for ontology fallback.
885
953
  */
886
954
  getItemsByContentType: (os_item_content_type: string, workspace_ids?: string[]) => Promise<WorkspaceItem[]>;
887
955
  /**
@@ -903,14 +971,6 @@ export declare interface Desktop extends DesktopSettings, WorkspaceChangeEmitter
903
971
  * Saves a file to an item with optional save options.
904
972
  */
905
973
  saveFile: (item: WorkspaceItem, file: File | string, options?: SaveOptions) => Promise<WorkspaceItem>;
906
- /**
907
- * Imports items.
908
- */
909
- import: (items: any[]) => Promise<void>;
910
- /**
911
- * Imports a ZIP file with optional import options.
912
- */
913
- importZip: (file: File, options?: ImportZipOptions) => Promise<void>;
914
974
  /**
915
975
  * Imports folders/files from a ZIP file using the v1 API.
916
976
  * Use this for importing folders and files (not workspaces).
@@ -930,6 +990,11 @@ export declare interface Desktop extends DesktopSettings, WorkspaceChangeEmitter
930
990
  * Fetches an entity from the index, or from the ontology if not found in the index.
931
991
  */
932
992
  fetchEntity: (entity: EntityBase, options?: FetchEntityOptions) => Promise<Entity>;
993
+ /**
994
+ * Resolves a fragment to the root file its `source_entity_uid` names.
995
+ * Returns null if the source cannot be found.
996
+ */
997
+ fetchFragmentSource: (fragment: Entity) => Promise<(Entity & Partial<WorkspaceItem>) | null>;
933
998
  /**
934
999
  * Extracts entities from some text which may be json or a list of urls.
935
1000
  */
@@ -938,14 +1003,87 @@ export declare interface Desktop extends DesktopSettings, WorkspaceChangeEmitter
938
1003
  * Gets a file tree for a workspace or folder with optional file tree options.
939
1004
  */
940
1005
  getFilesTree: (workspace_or_folder: WorkspaceItem, options?: FileTreeOptions) => Promise<WorkspaceItem[]>;
1006
+ /**
1007
+ * Query workspace filesystem entities by content type / name patterns (ontology SQL).
1008
+ */
1009
+ queryFilesystemItemsInWorkspaces: (params: QueryFilesystemItemsParams) => Promise<WorkspaceItem[]>;
941
1010
  /**
942
1011
  * Show the search modal and return the selected results.
943
1012
  */
944
1013
  getSearchResults: (params: undefined | string | SearchProps, enableSelection?: boolean) => Promise<Entity[] | undefined>;
1014
+ /**
1015
+ * Show the search modal in query-return mode.
1016
+ * The user refines the search and clicks "Return current search (N) results".
1017
+ * Resolves with the underlying Elasticsearch query and total result count.
1018
+ */
1019
+ getSearchQuery: (params: undefined | string | SearchProps) => Promise<SearchQueryResult | undefined>;
945
1020
  /**
946
1021
  * Opens records with default action or as specified in the optional desktop action options.
947
1022
  */
948
1023
  open: (records: Entity | Entity[], options?: DesktopActionOptions) => Promise<void>;
1024
+ /**
1025
+ * Opens a fresh AI Chat seeded with a prompt and, optionally, context
1026
+ * entities — the supported way to launch AI Chat from another application.
1027
+ *
1028
+ * Encapsulates building the chat workspace item (content type
1029
+ * `application/vnd.octostar.chat+json`) in the active workspace and opening
1030
+ * it with the AI Chat app, so callers don't hand-roll that flow. Every call
1031
+ * mints a fresh chat, so the prompt always seeds; seeding is one-shot per
1032
+ * chat, so a browser refresh won't re-send it.
1033
+ *
1034
+ * By default the prompt is auto-sent as the chat's first message (no skill
1035
+ * armed). Pass `{ mode: 'draft' }` to only prefill the chat input and let
1036
+ * the user hit send. Omitting `initialPrompt` (or passing an empty string)
1037
+ * opens the chat unseeded and does not auto-send — useful to just start a
1038
+ * chat over some context entities.
1039
+ *
1040
+ * By default the chat opens as a workbench tab. Pass `{ target: 'sidebar' }`
1041
+ * to open it in the host's AI panel instead (making the panel
1042
+ * visible and switching it to AI Chats); this requires the v3 app.
1043
+ *
1044
+ * @example
1045
+ * ```ts
1046
+ * await desktop.openNewAIChat('Summarize this document', [document]);
1047
+ * await desktop.openNewAIChat('Draft to review', [entity], { mode: 'draft' });
1048
+ * await desktop.openNewAIChat(undefined, [entity]); // unseeded chat over context
1049
+ * await desktop.openNewAIChat('About this record', [entity], { mode: 'draft', target: 'sidebar' });
1050
+ * ```
1051
+ *
1052
+ * @param initialPrompt - The prompt to seed the new chat with; omit to open unseeded.
1053
+ * @param contextEntities - Entities to seed the chat's context.
1054
+ * @param options - Seeding behavior; see {@link OpenNewAIChatOptions}.
1055
+ */
1056
+ openNewAIChat: (initialPrompt?: string, contextEntities?: Entity[], options?: OpenNewAIChatOptions) => Promise<void>;
1057
+ /**
1058
+ * Enumerates the host-registered context-menu actions whose group is in
1059
+ * `groups` AND which accept the given record(s) — i.e. the same set the
1060
+ * host would put under those group sub-menus of the right-click context
1061
+ * menu, returned as plain data so a micro-frontend can render its own
1062
+ * menu instead of triggering the host popup. Pass a single record or
1063
+ * an array; for arrays the host applies the same `accepts({ items })`
1064
+ * filter the context-menu builder uses.
1065
+ *
1066
+ * Typical groupings:
1067
+ * - `['open', 'edit']` — "Open with…" submenu (openers / editors).
1068
+ * - `['addto']` — "Add to…" submenu (link chart, map, set, …).
1069
+ * - `['transform']` — "Transform" submenu (slower; consider lazy).
1070
+ *
1071
+ * The returned items are not executable directly — invoke them with
1072
+ * {@link invokeRegisteredAction} using the `key`. Keys are stable
1073
+ * across registrations of the same action.
1074
+ */
1075
+ getRegisteredActions: (items: WorkspaceItem | WorkspaceItem[], groups: ContextMenuGroup[]) => Promise<RegisteredActionInfo[]>;
1076
+ /**
1077
+ * Invokes a previously-enumerated action (from
1078
+ * {@link getRegisteredActions}) by its `key`, with the records the user
1079
+ * wants to act on. The host resolves the registered action and runs its
1080
+ * `invoke` callback with the same context shape the right-click flow
1081
+ * would have built.
1082
+ *
1083
+ * Rejects when no registered action matches the key OR when the
1084
+ * action's `accepts(...)` filter refuses the given items.
1085
+ */
1086
+ invokeRegisteredAction: (key: string, items: WorkspaceItem | WorkspaceItem[], options?: DesktopActionOptions) => Promise<void>;
949
1087
  /**
950
1088
  * Deletes an item or items recursively.
951
1089
  */
@@ -958,6 +1096,12 @@ export declare interface Desktop extends DesktopSettings, WorkspaceChangeEmitter
958
1096
  * Deletes local concept records in a workspace by base concept.
959
1097
  */
960
1098
  delete_local_concept_records: (workspace_id: string, base_concept: string) => Promise<void>;
1099
+ /**
1100
+ * Deletes the records of ONE import source in a workspace (the per-source
1101
+ * buckets the Content Browser shows under Records). Rejects with a 404 on an
1102
+ * API that predates the endpoint, rather than deleting anything wider.
1103
+ */
1104
+ delete_workspace_records_by_source: (workspace_id: string, scope: RecordsSourceScope) => Promise<void>;
961
1105
  /**
962
1106
  * Searches the index using the query string
963
1107
  * @param query OpenSearch qeuery string.
@@ -976,7 +1120,7 @@ export declare interface Desktop extends DesktopSettings, WorkspaceChangeEmitter
976
1120
  /**
977
1121
  * Renames a tab by its id.
978
1122
  */
979
- renameTab: (tabId: string, newName: string) => Promise<void>;
1123
+ renameTab: (props: RenameTabProps) => Promise<void>;
980
1124
  /**
981
1125
  * Closes a tab with given properties.
982
1126
  */
@@ -1005,10 +1149,17 @@ export declare interface Desktop extends DesktopSettings, WorkspaceChangeEmitter
1005
1149
  * Gets a system setting.
1006
1150
  */
1007
1151
  getSystemSetting: <T extends string | boolean>(key: string, defaultValue: T, show_protected?: boolean) => Promise<GetSystemSettingResponse<T>>;
1152
+ /**
1153
+ * Forward geocodes a query string into geographic coordinates.
1154
+ * @param query - Free-text location query (address, place name, etc.)
1155
+ * @param limit - Maximum number of results to return (default: 5)
1156
+ * @returns Array of geocoding results
1157
+ */
1158
+ geocode: (query: string, limit?: number) => Promise<GeocodingResult[]>;
1008
1159
  /**
1009
1160
  * Wraps a promise with a progress bar.
1010
1161
  */
1011
- withProgressBar: <T>(promise: Promise<T>, options?: WithProgressBarOptions) => Promise<T>;
1162
+ withProgressBar: <T>(promise: Promise<T>, options?: WithProgressBarOptions) => Promise<T | undefined>;
1012
1163
  /**
1013
1164
  * Shows a confirmation modal.
1014
1165
  */
@@ -1017,6 +1168,13 @@ export declare interface Desktop extends DesktopSettings, WorkspaceChangeEmitter
1017
1168
  * Shows a file upload dialog.
1018
1169
  */
1019
1170
  showFileUpload: (folder: WorkspaceItem) => Promise<WorkspaceItem[]>;
1171
+ /**
1172
+ * Shows the "Add to Files" dialog scoped to a workspace: the user picks a
1173
+ * target folder via a tree selector (defaulting to the workspace root),
1174
+ * then uploads files into it. Fire-and-forget — the dialog handles the
1175
+ * upload itself.
1176
+ */
1177
+ showUploadToFolder: (workspace: WorkspaceItem) => Promise<void>;
1020
1178
  /**
1021
1179
  * Shows a form for creating an entity.
1022
1180
  */
@@ -1029,10 +1187,6 @@ export declare interface Desktop extends DesktopSettings, WorkspaceChangeEmitter
1029
1187
  * Shows a modal for saving as.
1030
1188
  */
1031
1189
  showSaveAsModal: (props: SaveAsModalProps) => Promise<WorkspaceItem | undefined>;
1032
- /**
1033
- * @deprecated This method is deprecated and will be removed in a future version. Use {@link createSetsFromItems} or {@link expandSet} instead.
1034
- */
1035
- getPasteContext: (options: PasteContextOptions) => Promise<Entity[]>;
1036
1190
  /**
1037
1191
  * Expands a set with optional options.
1038
1192
  */
@@ -1057,14 +1211,6 @@ export declare interface Desktop extends DesktopSettings, WorkspaceChangeEmitter
1057
1211
  * Adds a comment to an entity.
1058
1212
  */
1059
1213
  addComment: (about: Entity, comment: AddCommentParams) => Promise<Entity>;
1060
- /**
1061
- * Adds a watch intent to an entity.
1062
- */
1063
- addWatchIntent: (entity: Entity, watcher: Watcher) => Promise<Entity>;
1064
- /**
1065
- * Removes a watch intent by workspace and intent ID.
1066
- */
1067
- removeWatchIntent: (os_workspace: string, intent_id: string) => Promise<void>;
1068
1214
  /**
1069
1215
  * Gets workspace permissions by IDs.
1070
1216
  */
@@ -1078,13 +1224,17 @@ export declare interface Desktop extends DesktopSettings, WorkspaceChangeEmitter
1078
1224
  */
1079
1225
  deployApp: (app: WorkspaceItem | App, initialSecrets?: Record<string, string>) => Promise<WorkspaceItem>;
1080
1226
  /**
1081
- * Undeploys an application.
1227
+ * Undeploys an application. `appId` is the k8s app id; without it the id is looked up from the apps API.
1082
1228
  */
1083
- undeployApp: (app: WorkspaceItem | App) => Promise<WorkspaceItem>;
1229
+ undeployApp: (app: WorkspaceItem | App, appId?: string) => Promise<WorkspaceItem>;
1084
1230
  /**
1085
1231
  * Gets information about the current user.
1086
1232
  */
1087
1233
  whoami: () => Promise<Whoami>;
1234
+ /**
1235
+ * Pings the desktop to check connectivity. Used for remote dev mode connection verification.
1236
+ */
1237
+ ping: () => Promise<void>;
1088
1238
  /**
1089
1239
  * Gets the focus list.
1090
1240
  */
@@ -1098,13 +1248,25 @@ export declare interface Desktop extends DesktopSettings, WorkspaceChangeEmitter
1098
1248
  */
1099
1249
  removeFromFocusList: (entities: Entity[], type?: 'single' | 'group', tabName?: string) => Promise<FocusListItem[]>;
1100
1250
  /**
1101
- * Gets the image URL for an entity.
1251
+ * Gets the image URL for an entity: its own bytes when it is an image file,
1252
+ * else its attached image, else its concept icon. With `maxWidth`, image
1253
+ * bytes come as a downscaled server thumbnail (snapped to 512 or 2048 px)
1254
+ * instead of the original.
1102
1255
  */
1103
- getImageUrl: (entity: EntityBase) => Promise<string>;
1256
+ getImageUrl: (entity: EntityBase, options?: {
1257
+ maxWidth?: number;
1258
+ }) => Promise<string>;
1104
1259
  /**
1105
1260
  * Gets images for an entity.
1106
1261
  */
1107
1262
  getImages: (entity: Entity) => Promise<Entity[]>;
1263
+ /**
1264
+ * Gets batch images for an entity.
1265
+ */
1266
+ getBatchImages: (entities: Entity[]) => Promise<{
1267
+ entity: Entity;
1268
+ images: Entity[];
1269
+ }[]>;
1108
1270
  /**
1109
1271
  * Gets icon code for an entity, concept, or string.
1110
1272
  */
@@ -1128,10 +1290,6 @@ export declare interface Desktop extends DesktopSettings, WorkspaceChangeEmitter
1128
1290
  * Get config files
1129
1291
  */
1130
1292
  getConfigFiles: (name: string) => Promise<WorkspaceItem[]>;
1131
- /**
1132
- * "Cache" for workspaces, avoiding to return a modal error, if this workspace was fetched before
1133
- */
1134
- workspaceStore: Record<string, Workspace>;
1135
1293
  getWhitelabelingInfo: () => Promise<{
1136
1294
  OCTOSTAR_MAIN_LOGO: string;
1137
1295
  OCTOSTAR_FAVICON: string;
@@ -1183,6 +1341,10 @@ export declare type DesktopActionMenuItem = {
1183
1341
  * Key for the menu item.
1184
1342
  */
1185
1343
  key: string;
1344
+ /**
1345
+ * Test id for the rendered menu item. Defaults to `menuitem-<key>`.
1346
+ */
1347
+ testId?: string;
1186
1348
  /**
1187
1349
  * Icon for the menu item.
1188
1350
  */
@@ -1215,6 +1377,12 @@ export declare type DesktopActionMenuItem = {
1215
1377
  * Filter for accepting the menu item.
1216
1378
  */
1217
1379
  accepts: DesktopActionFilter;
1380
+ /**
1381
+ * Render the item greyed-out and non-clickable. Use for an action that is
1382
+ * deliberately shown-but-inert in some state (so the user learns it exists and
1383
+ * why it's unavailable) rather than hidden.
1384
+ */
1385
+ disabled?: boolean;
1218
1386
  /**
1219
1387
  * Function to invoke the action.
1220
1388
  */
@@ -1292,6 +1460,23 @@ export declare type DesktopActionOptions = {
1292
1460
  * Open tab in a new tabset
1293
1461
  */
1294
1462
  newTabset?: boolean;
1463
+ /**
1464
+ * Open the tab in a new tabset docked on one side of this tabset, e.g. a view beside the tab it follows.
1465
+ * Falls back to the default placement when the tabset no longer exists.
1466
+ */
1467
+ dockBeside?: {
1468
+ tabsetId: string;
1469
+ side: 'left' | 'right';
1470
+ };
1471
+ /**
1472
+ * When `tabId` matches an existing tab, swap the tab's
1473
+ * `component`/`config`/`name` in place instead of just focusing it.
1474
+ * No delete + re-add, so the tab node stays alive at its current
1475
+ * position and flexlayout re-runs the factory with the new entity —
1476
+ * flicker-free content swap inside a single persistent tab.
1477
+ * Ignored when the tab doesn't exist (falls through to normal open).
1478
+ */
1479
+ replaceContent?: boolean;
1295
1480
  /**
1296
1481
  * Wait for the tab to open
1297
1482
  */
@@ -1300,6 +1485,15 @@ export declare type DesktopActionOptions = {
1300
1485
  * Custom name of the tab.
1301
1486
  */
1302
1487
  tabName?: string;
1488
+ /**
1489
+ * When the open is requested from a global surface with NO active workspace (Home,
1490
+ * Workspaces, …), host the record in the workspace it belongs to — opening that
1491
+ * workspace — instead of the last-active / personal workspace. Set by
1492
+ * entity deep links (`#entity/...`) so a pasted link lands the record in its
1493
+ * own workspace. Ignored when a workspace is already active (the active workspace hosts
1494
+ * it) or when the record carries no concrete workspace (draft / personal).
1495
+ */
1496
+ hostInOwnWorkspace?: boolean;
1303
1497
  };
1304
1498
 
1305
1499
  /**
@@ -1341,21 +1535,6 @@ export declare interface DesktopSettings {
1341
1535
  getDeveloperSettings: () => Promise<DeveloperSettings>;
1342
1536
  }
1343
1537
 
1344
- /**
1345
- * Context for desktop styler.
1346
- * @beta
1347
- */
1348
- export declare type DesktopStylerContext = {
1349
- /**
1350
- * Graph specification.
1351
- */
1352
- graph: GraphSpec;
1353
- /**
1354
- * Selected graph specification.
1355
- */
1356
- selected?: GraphSpec;
1357
- };
1358
-
1359
1538
  /**
1360
1539
  * Developer settings exposed to micro-frontends.
1361
1540
  * @beta
@@ -1365,10 +1544,6 @@ export declare interface DeveloperSettings {
1365
1544
  * Override URL for the API server.
1366
1545
  */
1367
1546
  octostarAPIServer?: string;
1368
- /**
1369
- * Override URL for the search app.
1370
- */
1371
- searchAppUrl?: string;
1372
1547
  }
1373
1548
 
1374
1549
  export declare interface DownloadOptions {
@@ -1377,17 +1552,6 @@ export declare interface DownloadOptions {
1377
1552
  redirect?: boolean;
1378
1553
  }
1379
1554
 
1380
- /**
1381
- * Represents a draft workspace item.
1382
- * @beta
1383
- */
1384
- export declare type DraftWorkspaceItem = WorkspaceItem & {
1385
- /**
1386
- * Indicates if the item is a draft. The attribute is not saved in persistence.
1387
- */
1388
- os_draft_item: true;
1389
- };
1390
-
1391
1555
  /**
1392
1556
  * Parameters for drag end.
1393
1557
  * @beta
@@ -1549,6 +1713,17 @@ export declare type EntityPasteContext = {
1549
1713
  fetch: (limit?: number) => Promise<Entity[]>;
1550
1714
  };
1551
1715
 
1716
+ /**
1717
+ * @beta
1718
+ * Type pairing one of an entity's relationships with its count.
1719
+ */
1720
+ export declare type EntityRelationshipCount = {
1721
+ /** The relationship the count belongs to. */
1722
+ relationship: Relationship;
1723
+ /** The count of the relationship. */
1724
+ count: RelationshipCountEntry;
1725
+ };
1726
+
1552
1727
  export declare interface EntityUiState {
1553
1728
  rename?: boolean;
1554
1729
  [key: string]: any;
@@ -1779,7 +1954,10 @@ export declare interface FilesAPIClient {
1779
1954
  * @param item - The file item to create
1780
1955
  * @returns The created entity
1781
1956
  */
1782
- createFile: (item: WorkspaceItem) => Promise<MkdirResponse>;
1957
+ /** `clientKey`: the upload action's key; the pipeline groups the action's requests under it. */
1958
+ createFile: (item: WorkspaceItem, options?: {
1959
+ clientKey?: string;
1960
+ }) => Promise<MkdirResponse>;
1783
1961
  /**
1784
1962
  * Get a download URL for a file
1785
1963
  *
@@ -1810,6 +1988,41 @@ export declare interface FilesAPIClient {
1810
1988
  * @returns The upload URL and fields
1811
1989
  */
1812
1990
  getUploadUrl: (os_workspace: string, entity_id: string, options: UploadOptions) => Promise<S3UploadResponse>;
1991
+ /**
1992
+ * Ask the server to fetch a public URL and ingest it directly into the
1993
+ * workspace. Streams server-side — no bytes flow through the browser.
1994
+ *
1995
+ * @param os_workspace - The workspace ID
1996
+ * @param body - URL + target parent folder, plus optional filename / content_type / overwrite
1997
+ * @param signal - Optional AbortSignal that cancels the in-flight request (the server-side fetch is best-effort cancelled too)
1998
+ * @returns The newly-created entity's id and resolved metadata
1999
+ * @throws UploadFromUrlError on non-2xx responses, carrying the API's `{ detail.error_code, detail.message }` envelope
2000
+ */
2001
+ uploadFromUrl: (os_workspace: string, body: UploadFromUrlRequest, signal?: AbortSignal) => Promise<UploadFromUrlResponse>;
2002
+ /**
2003
+ * Peek inside a source-backed file (v1: zip archive) without extracting it.
2004
+ * Returns one level of contents from the source at the given `inner` path
2005
+ * (defaults to the source root).
2006
+ *
2007
+ * @param os_workspace - The workspace ID
2008
+ * @param target - Either `{ path }` (workspace path to the source file) or `{ entity_id }` (the source's entity_id)
2009
+ * @param options - Optional `inner` path inside the source to list
2010
+ * @returns Folders + files visible at the inner path
2011
+ */
2012
+ peekSource: (os_workspace: string, target: PeekSourceTarget, options?: PeekSourceOptions) => Promise<SourcePeekResponse>;
2013
+ /**
2014
+ * Bulk-export inner paths from a source-backed archive into a workspace
2015
+ * folder. `inner_paths` may freely mix files and folders; folders are
2016
+ * expanded recursively server-side. The endpoint validates WRITE on the
2017
+ * target workspace up front (HTTP 403 if denied), aborts the batch on
2018
+ * folder-phase failures, and surfaces per-file failures in
2019
+ * `response.errors[]` without aborting.
2020
+ *
2021
+ * @param os_workspace - Target workspace ID (the export destination)
2022
+ * @param body - Source archive entity_id, inner paths, target folder ID
2023
+ * @returns Created folder/file IDs plus per-entry errors
2024
+ */
2025
+ bulkExportSourceSubtree: (os_workspace: string, body: SourceExportRequest) => Promise<SourceExportResponse>;
1813
2026
  }
1814
2027
 
1815
2028
  /**
@@ -1839,28 +2052,6 @@ export declare type FileTreeOptions = {
1839
2052
  structure?: boolean;
1840
2053
  };
1841
2054
 
1842
- export declare type Filter = {
1843
- cascadeParentIds: string[];
1844
- defaultDataMask: DataMask;
1845
- id: string;
1846
- name: string;
1847
- scope: NativeFilterScope;
1848
- filterType: string;
1849
- targets: [Partial<NativeFilterTarget>];
1850
- controlValues: Record<string, any>;
1851
- sortMetric?: string | null;
1852
- adhoc_filters?: Record<any, any>[];
1853
- granularity_sqla?: string;
1854
- granularity?: string;
1855
- time_grain_sqla?: string;
1856
- time_range?: string;
1857
- requiredFirst?: boolean;
1858
- tabsInScope?: string[];
1859
- chartsInScope?: number[];
1860
- type: 'NATIVE_FILTER';
1861
- description: string;
1862
- };
1863
-
1864
2055
  /**
1865
2056
  * @beta
1866
2057
  * Type representing a filter definition, which can be one of several specific filter types.
@@ -1895,11 +2086,6 @@ export declare type FilterReference = string | {
1895
2086
  ['require_all']: FilterReference[];
1896
2087
  };
1897
2088
 
1898
- export declare type FilterState = {
1899
- value?: any;
1900
- [key: string]: any;
1901
- };
1902
-
1903
2089
  /**
1904
2090
  * Type for filter values.
1905
2091
  * @beta
@@ -1925,29 +2111,99 @@ export declare type FocusListItem = {
1925
2111
  } | NamedEntityGroup;
1926
2112
 
1927
2113
  /**
1928
- * Options for pasting folders.
2114
+ * Metadata fields extracted from a fragment entity.
1929
2115
  * @beta
1930
2116
  */
1931
- export declare type FolderPasteOptions = {
1932
- /**
1933
- * Whether to include folders in the paste.
1934
- */
1935
- folders?: boolean;
1936
- /**
1937
- * Whether to include files in the paste.
1938
- */
1939
- files?: boolean;
1940
- /**
1941
- * Whether to paste recursively.
1942
- */
1943
- recursive?: boolean;
2117
+ export declare type FragmentInfo = {
2118
+ fragment_page_number?: number;
2119
+ /** Seconds for audio/video collections, a page for `document_*`, a row for `table_*`; the pipeline writes numbers, older indexes strings. */
2120
+ fragment_start?: string | number;
2121
+ fragment_end?: string | number;
2122
+ fragment_index?: number;
2123
+ fragment_count?: number;
2124
+ fragment_collection_type?: string;
2125
+ /** `[x1, y1, x2, y2]` in the parent image's pixels, as an array of numeric strings or comma-joined. */
2126
+ fragment_image_bbox?: string | string[];
2127
+ fragment_x_offset?: number;
2128
+ fragment_y_offset?: number;
2129
+ fragment_z_offset?: number;
2130
+ fragment_keyframe_number?: number;
2131
+ fragment_path_expression?: string;
2132
+ /** Content type of the original file the fragment chain starts from, not of the direct parent. */
2133
+ parent_os_item_content_type?: string;
2134
+ };
2135
+
2136
+ /**
2137
+ * Where inside its parent a fragment sits. A union, not a bag of optional
2138
+ * offsets, because `fragment_start` is polymorphic: the pipeline emits seconds
2139
+ * for `audio_split`/`video_*`, row ordinals for `table_row*`, and a repeat of
2140
+ * the page for `document_*`.
2141
+ */
2142
+ export declare type FragmentLocator = {
2143
+ kind: 'page';
2144
+ page: number;
2145
+ } | {
2146
+ kind: 'time';
2147
+ start: number;
2148
+ end?: number;
2149
+ } | {
2150
+ kind: 'rows';
2151
+ start: number;
2152
+ end?: number;
2153
+ } | {
2154
+ kind: 'region';
2155
+ box: FragmentRegion;
2156
+ } | {
2157
+ kind: 'none';
2158
+ };
2159
+
2160
+ /** Detected-region corners in the SOURCE image's pixel space. */
2161
+ export declare interface FragmentRegion {
2162
+ x1: number;
2163
+ y1: number;
2164
+ x2: number;
2165
+ y2: number;
2166
+ }
2167
+
2168
+ /**
2169
+ * Result of resolving a fragment entity to its source entity.
2170
+ * @beta
2171
+ */
2172
+ export declare type FragmentResolution = {
2173
+ entity: Entity;
2174
+ fragment: FragmentInfo | undefined;
1944
2175
  };
1945
2176
 
1946
- declare enum GenericDataType {
1947
- NUMERIC = 0,
1948
- STRING = 1,
1949
- TEMPORAL = 2,
1950
- BOOLEAN = 3
2177
+ /**
2178
+ * One entry in {@link ProcessingStatus.fragment_errors} /
2179
+ * {@link ProcessingStatus.fragment_warnings} / {@link ProcessingStatus.warnings}.
2180
+ *
2181
+ * All fields are optional to match the backend `ChildProcessingStatus` contract:
2182
+ * the pipeline serializes entries with `exclude_none=True`, so partial entries
2183
+ * (e.g. a lenient-merge gap that only knows `entity_id`, or a processor that
2184
+ * omits `reason`) are valid wire payloads.
2185
+ * @beta
2186
+ */
2187
+ export declare interface FragmentStatusEntry {
2188
+ reason?: string;
2189
+ status_code?: string;
2190
+ timestamp?: string;
2191
+ entity_id?: string;
2192
+ entity_label?: string;
2193
+ entity_type?: string;
2194
+ }
2195
+
2196
+ /**
2197
+ * Result from a geocoding query.
2198
+ */
2199
+ export declare interface GeocodingResult {
2200
+ latitude: number;
2201
+ longitude: number;
2202
+ address: string;
2203
+ name: string;
2204
+ country: string;
2205
+ city: string;
2206
+ type: string;
1951
2207
  }
1952
2208
 
1953
2209
  /**
@@ -1975,6 +2231,12 @@ export declare type GetSystemSettingResponse<T extends string | boolean = string
1975
2231
  security: boolean;
1976
2232
  type: string;
1977
2233
  value: T;
2234
+ /**
2235
+ * Set when `value` is the caller's default because the setting could not be
2236
+ * fetched. `DesktopAPI.getSystemSetting` swallows the error, so callers that
2237
+ * must tell "unset" from "unreadable" check this instead.
2238
+ */
2239
+ unavailable?: boolean;
1978
2240
  };
1979
2241
 
1980
2242
  export declare type GraphDataSpec = {
@@ -1995,6 +2257,28 @@ export declare type GraphSpec = {
1995
2257
  edges: EdgeSpec[];
1996
2258
  };
1997
2259
 
2260
+ /**
2261
+ * Annotation keys never worth shipping with a hit list: `rag:fulltext` and
2262
+ * `rag:chunks` carry every document's extracted text (a 200-hit search shipped
2263
+ * ~10 MB of it to draw a list of names), `ner:entities` is a long array nothing
2264
+ * renders, and the heavy `materialized` children are the detection copies with
2265
+ * their vectors and the NER and geo rollups. The small
2266
+ * `materialized.image:labels*` arrays ride along: they are how a card learns
2267
+ * that a document holds a flagged image on one of its pages.
2268
+ *
2269
+ * An exclude list rather than an allowlist, deliberately: the small card-shaped
2270
+ * annotations (`summary:txt`, `image:annotations-*`) have to ride along, and a
2271
+ * field nobody thought of must arrive rather than vanish. Exported so any caller
2272
+ * that shapes its own `_source` trims the same things — two lists would drift,
2273
+ * and the drift shows up as a blank cell nobody can explain.
2274
+ *
2275
+ * Lives here with the rest of the wire contract — not in a UI package, and not
2276
+ * in platform-api (whose barrel several test suites blanket-mock; a constant
2277
+ * read at module scope must survive that). The Content Browser re-exports it
2278
+ * for back-compat.
2279
+ */
2280
+ export declare const HEAVY_ANNOTATION_FIELDS: readonly string[];
2281
+
1998
2282
  /**
1999
2283
  * @beta
2000
2284
  * Type representing an HTTP transform definition.
@@ -2109,6 +2393,13 @@ export declare type IframeTransformDefinition = {
2109
2393
  tab_name?: string;
2110
2394
  };
2111
2395
 
2396
+ export declare const IMAGE_LABEL_FAMILIES: readonly ImageLabelFamilyFields[];
2397
+
2398
+ export declare const IMAGE_LABEL_FIELDS: Readonly<Record<ImageLabelFamily, ImageLabelFamilyFields>>;
2399
+
2400
+ /** `_source` paths for every family's own and rolled-up arrays. Small strings, never vectors. */
2401
+ export declare const IMAGE_LABEL_SOURCE_INCLUDES: readonly string[];
2402
+
2112
2403
  /**
2113
2404
  * Represents information about an image.
2114
2405
  * @beta
@@ -2129,47 +2420,134 @@ export declare type ImageInfo = {
2129
2420
  };
2130
2421
 
2131
2422
  /**
2132
- * Options for importing folders/files from a ZIP file.
2133
- * @beta
2423
+ * Step one of an exact label count: a plain terms aggregation per representation
2424
+ * (own, rolled up, legacy nested), read for their keys only. Their counts would
2425
+ * count a record once per representation, so step two recounts the keys. The
2426
+ * nested leg ranks its keys by the records holding them, not by detections.
2134
2427
  */
2135
- export declare type ImportFoldersOptions = {
2136
- /**
2137
- * Target folder or workspace for the import.
2138
- */
2139
- target: string;
2140
- /**
2141
- * Whether to overwrite existing items.
2142
- */
2143
- overwrite?: boolean;
2144
- /**
2145
- * Whether to include content in the import.
2146
- */
2147
- include_content?: boolean;
2148
- };
2428
+ export declare function imageLabelCandidateAggs(fields: ImageLabelFamilyFields, { size, include, exclude }: ImageLabelCandidateOptions): Record<string, unknown>;
2429
+
2430
+ export declare interface ImageLabelCandidateOptions {
2431
+ size: number;
2432
+ include?: string;
2433
+ exclude?: string;
2434
+ }
2435
+
2436
+ /**
2437
+ * Candidate keys to ask each representation for, to rank `displaySize` labels: the
2438
+ * general family's long tail needs headroom, the other vocabularies fit whole.
2439
+ */
2440
+ export declare function imageLabelCandidateSize(fields: ImageLabelFamilyFields, displaySize: number): number;
2441
+
2442
+ /** Step two: one `filters` entry per candidate, each the clause a pick of it matches. */
2443
+ export declare function imageLabelCountAggs(fields: ImageLabelFamilyFields, keys: readonly string[]): Record<string, unknown>;
2444
+
2445
+ /**
2446
+ * The image label contract shared with the index mapping (octostar-init-datasources)
2447
+ * and the pipeline that writes it (octostar-api, TEAM-9205).
2448
+ *
2449
+ * Four families of image labels, each a nested detection array the pipeline
2450
+ * writes (`image:annotations*`, boxes, confidence, vectors) and, derived from
2451
+ * it, a keyword array of the record's own distinct labels (`image:labels*`).
2452
+ * A record's descendants roll their labels up into
2453
+ * `annotations.materialized.image:labels*`, strings only, so a document is
2454
+ * discoverable by a label on a page or frame inside it without the nested
2455
+ * objects.
2456
+ *
2457
+ * A query reads the two arrays directly, plus the nested detections of a
2458
+ * record not reprocessed since the arrays existed. A fragment binds on its own
2459
+ * labels only, so a page never matches on the labels of the images inside it;
2460
+ * a top-level record binds on its own and its rolled-up labels. A count runs in
2461
+ * two steps, candidates then one `filters` entry per candidate, so a record
2462
+ * counts once per label whichever representations hold it.
2463
+ *
2464
+ * Label-only readers go through the shared reader in `@octostar/ui`
2465
+ * (`readImageLabels`), which unions the own and rolled-up arrays with the
2466
+ * legacy entries' labels while records written before the arrays existed are
2467
+ * still around. Readers that need geometry, confidence or vectors keep reading
2468
+ * `image:annotations*`.
2469
+ */
2470
+ export declare type ImageLabelFamily = 'general' | 'key' | 'sensitive' | 'setting';
2471
+
2472
+ export declare interface ImageLabelFamilyFields {
2473
+ family: ImageLabelFamily;
2474
+ /** The nested detection array the labels are derived from (`annotations.<key>`). */
2475
+ annotationsKey: string;
2476
+ /** The owner's own distinct labels (`annotations.<key>`); descendants' under `annotations.materialized.<key>`. */
2477
+ labelsKey: string;
2478
+ /** The record's own labels, keyword. */
2479
+ ownField: string;
2480
+ /** The labels rolled up from the record's descendants, keyword. */
2481
+ rolledUpField: string;
2482
+ /** The nested path and label keyword a query reached before the arrays existed. */
2483
+ legacyNestedPath: string;
2484
+ legacyLabelField: string;
2485
+ }
2486
+
2487
+ /** The family whose own label array `field` is, if it is one. */
2488
+ export declare function imageLabelFamilyOfField(field: string): ImageLabelFamilyFields | undefined;
2489
+
2490
+ /** What a pick of `values` matches: own labels, rolled-up labels on a top-level
2491
+ * record, or the legacy detections. A record matching several legs is one hit. */
2492
+ export declare function imageLabelMatchClause(fields: ImageLabelFamilyFields, values: readonly string[]): Record<string, unknown>;
2493
+
2494
+ /** `_source` paths a label-only reader needs: the own and rolled-up arrays of one family. */
2495
+ export declare function imageLabelSourceIncludes(name: ImageLabelFamily): string[];
2496
+
2497
+ export declare type ImportConflictPolicy = 'rename' | 'skip' | 'overwrite';
2498
+
2499
+ export declare interface ImportDestination {
2500
+ /** Parent folder entity UUID; null = workspace root. */
2501
+ os_parent_folder?: string | null;
2502
+ }
2503
+
2504
+ export declare type ImportEntryKind = 'file' | 'directory';
2149
2505
 
2150
2506
  /**
2151
- * Options for importing ZIP files.
2507
+ * Options for importing folders/files from a ZIP file.
2152
2508
  * @beta
2153
2509
  */
2154
- export declare type ImportZipOptions = {
2510
+ export declare type ImportFoldersOptions = {
2155
2511
  /**
2156
- * Whether to overwrite existing items.
2512
+ * Target folder or workspace for the import.
2157
2513
  */
2158
- overwrite?: boolean;
2514
+ target: string;
2159
2515
  /**
2160
- * Target location for the import.
2516
+ * Whether to overwrite existing items.
2161
2517
  */
2162
- target?: string;
2518
+ overwrite?: boolean;
2163
2519
  /**
2164
2520
  * Whether to include content in the import.
2165
2521
  */
2166
2522
  include_content?: boolean;
2167
- /**
2168
- * Whether to include dashboards in the import.
2169
- */
2170
- include_dashboards?: boolean | 'if_missing';
2171
2523
  };
2172
2524
 
2525
+ export declare interface ImportItem {
2526
+ path: string;
2527
+ kind: ImportEntryKind;
2528
+ }
2529
+
2530
+ export declare type ImportMode = 'copy' | 'link';
2531
+
2532
+ export declare interface ImportOptions {
2533
+ /** `copy` streams bytes into S3 (durable); `link` references the mount live. */
2534
+ mode?: ImportMode;
2535
+ recursive?: boolean;
2536
+ max_total_bytes?: number | null;
2537
+ max_files?: number | null;
2538
+ on_conflict?: ImportConflictPolicy;
2539
+ preserve_modified_at?: boolean;
2540
+ }
2541
+
2542
+ export declare interface ImportRequest {
2543
+ os_workspace: string;
2544
+ destination?: ImportDestination;
2545
+ items: ImportItem[];
2546
+ options?: ImportOptions;
2547
+ /** Idempotency key (copy mode). A retry with the same id returns the existing task. */
2548
+ tracking_id?: string | null;
2549
+ }
2550
+
2173
2551
  export declare interface IndexSearchHitSource {
2174
2552
  annotations?: {
2175
2553
  data?: string;
@@ -2195,6 +2573,19 @@ export declare interface IndexSearchHitSource {
2195
2573
  'image:annotations-setting'?: {
2196
2574
  label?: string;
2197
2575
  }[];
2576
+ /** The record's own distinct labels per family, derived from the arrays above. */
2577
+ 'image:labels'?: string[];
2578
+ 'image:labels-key'?: string[];
2579
+ 'image:labels-sensitive'?: string[];
2580
+ 'image:labels-setting'?: string[];
2581
+ /** Rolled up from the record's descendants. */
2582
+ materialized?: {
2583
+ 'image:labels'?: string[];
2584
+ 'image:labels-key'?: string[];
2585
+ 'image:labels-sensitive'?: string[];
2586
+ 'image:labels-setting'?: string[];
2587
+ 'ner:entities'?: Record<string, string[]>;
2588
+ };
2198
2589
  'ner:entities'?: {
2199
2590
  person?: string[];
2200
2591
  org?: string[];
@@ -2206,6 +2597,11 @@ export declare interface IndexSearchHitSource {
2206
2597
  email?: string[];
2207
2598
  ip_address?: string[];
2208
2599
  url?: string[];
2600
+ address?: string[];
2601
+ license_plate?: string[];
2602
+ iban?: string[];
2603
+ credit_card?: string[];
2604
+ crypto?: string[];
2209
2605
  };
2210
2606
  'rag:chunks'?: {
2211
2607
  metadata?: {
@@ -2388,15 +2784,30 @@ export declare type InlineCode = {
2388
2784
  code: string;
2389
2785
  };
2390
2786
 
2787
+ /**
2788
+ * @beta
2789
+ * Type guard distinguishing code-resident default templates from
2790
+ * workspace-stored ones.
2791
+ */
2792
+ export declare function isDefaultTemplate(t: RenderableTemplate | undefined | null): t is DefaultTemplate;
2793
+
2794
+ /**
2795
+ * Type guard for {@link DeletedEntity}.
2796
+ * @beta
2797
+ */
2798
+ export declare function isDeletedEntity(value: unknown): value is DeletedEntity;
2799
+
2391
2800
  export declare function isWorkspaceFileItem(item: WorkspaceItem): item is WorkspaceItem & {
2392
2801
  os_has_attachment: true;
2393
2802
  };
2394
2803
 
2395
2804
  /**
2805
+ * True when `entity` is a workspace root.
2396
2806
  * @beta
2397
- * Type representing a JavaScript file styler definition.
2398
2807
  */
2399
- export declare type JavascriptFileStylerDefinition = JavascriptType & FileCode;
2808
+ export declare function isWorkspaceRoot(entity?: EntityBase | WorkspaceRecordIdentifier | {
2809
+ os_item_type?: string;
2810
+ } | null): boolean;
2400
2811
 
2401
2812
  /**
2402
2813
  * @beta
@@ -2415,12 +2826,6 @@ export declare type JavascriptFilterDefinition = {
2415
2826
  code: string;
2416
2827
  };
2417
2828
 
2418
- /**
2419
- * @beta
2420
- * Type representing an inline JavaScript styler definition.
2421
- */
2422
- export declare type JavascriptInlineStylerDefinition = JavascriptType & InlineCode;
2423
-
2424
2829
  /**
2425
2830
  * @beta
2426
2831
  * Type representing an inline JavaScript transform definition.
@@ -2432,7 +2837,7 @@ export declare type JavascriptInlineTransformDefinition = JavascriptType & Inlin
2432
2837
  * Type representing a JavaScript transform definition.
2433
2838
  */
2434
2839
  export declare type JavascriptType = {
2435
- /** The type of the transform or styler, always 'javascript' for this type. */
2840
+ /** The type of the transform, always 'javascript' for this type. */
2436
2841
  type: 'javascript';
2437
2842
  };
2438
2843
 
@@ -2454,13 +2859,15 @@ export declare type JobManifest = {
2454
2859
  /** Optional image for the job. */
2455
2860
  image?: string;
2456
2861
  /** Optional engine for the job. */
2457
- engine?: 'k8s' | 's3' | 'reactlive';
2862
+ engine?: 'k8s' | 's3';
2458
2863
  /** Optional template for the job. */
2459
2864
  template?: string;
2460
2865
  /** Optional variant for the job. */
2461
2866
  variant?: string;
2462
2867
  /** Optional instance type for the job. */
2463
2868
  instance_type?: string;
2869
+ /** Seconds the app declares it needs to start serving. The backend does not enforce it on a deploy. */
2870
+ startup_timeout?: number;
2464
2871
  /** Whether to skip archiving the job. */
2465
2872
  no_archive?: boolean;
2466
2873
  /** Whether to generate a URL from logs. */
@@ -2473,8 +2880,6 @@ export declare type JobManifest = {
2473
2880
  transforms?: TransformDefinitions;
2474
2881
  /** Optional collection of filters for the job. */
2475
2882
  filters?: FilterDefinitions;
2476
- /** Optional collection of stylers for the job. */
2477
- stylers?: StylerDefinitions;
2478
2883
  /** Optional collection of services for the job. */
2479
2884
  services?: ServiceDefinitions;
2480
2885
  secrets?: ManifestSecrets;
@@ -2569,6 +2974,24 @@ export declare type ManifestSecrets = Record<string, {
2569
2974
  required?: boolean;
2570
2975
  }>;
2571
2976
 
2977
+ /**
2978
+ * System-setting keys for the map surfaces. Every basemap the app offers comes
2979
+ * from one of these; a key with no configured value means that basemap is not
2980
+ * available and is not offered. Keys must match the definitions registered in
2981
+ * `octostar-api` (`app/api/v1/settings/settings_definitions.py`), where admins
2982
+ * edit them from the system settings page.
2983
+ */
2984
+ export declare const MAP_SETTINGS_KEYS: {
2985
+ /** Vector style JSON URL; backs the Streets basemap. */
2986
+ readonly vectorTileStyleUrl: "os.general.vector_tile_style_url";
2987
+ /** Raster tile URL template ({z}/{x}/{y}); backs the Tiles basemap. */
2988
+ readonly rasterTileServerUrl: "os.general.tile_map_server_url";
2989
+ /** Dark vector style JSON URL; backs the Dark basemap. */
2990
+ readonly darkTileStyleUrl: "os.general.dark_tile_style_url";
2991
+ };
2992
+
2993
+ export declare type MapSettingKey = (typeof MAP_SETTINGS_KEYS)[keyof typeof MAP_SETTINGS_KEYS];
2994
+
2572
2995
  export declare type MkdirResponse = WorkspaceItem;
2573
2996
 
2574
2997
  /**
@@ -2593,6 +3016,106 @@ export declare type ModalTemplateProps = CustomTemplateIframeProps & {
2593
3016
  taskID?: string;
2594
3017
  };
2595
3018
 
3019
+ export declare interface MountAccess {
3020
+ is_admin: boolean;
3021
+ has_use_grant: boolean;
3022
+ }
3023
+
3024
+ export declare interface MountCreate {
3025
+ name: string;
3026
+ description?: string | null;
3027
+ scheme: MountScheme;
3028
+ host: string;
3029
+ port?: number | null;
3030
+ share?: string | null;
3031
+ base_path?: string;
3032
+ credential_mode: CredentialMode;
3033
+ shared_credentials?: SharedCredentialsInput;
3034
+ }
3035
+
3036
+ export declare interface MountGrantCreate {
3037
+ principal_type: PrincipalType;
3038
+ principal_id: string;
3039
+ }
3040
+
3041
+ export declare interface MountGrantResponse {
3042
+ id: string;
3043
+ mount_id: string;
3044
+ principal_type: PrincipalType;
3045
+ principal_id: string;
3046
+ granted_by: string;
3047
+ created_at: string;
3048
+ }
3049
+
3050
+ /** Async result of a `mode="copy"` import (HTTP 202) — poll the task by tracking_id. */
3051
+ export declare interface MountImportCopyResponse {
3052
+ tracking_id: string;
3053
+ status_url: string;
3054
+ }
3055
+
3056
+ /** One per-entry failure from a `link` import that did not abort the batch. */
3057
+ export declare interface MountImportLinkError {
3058
+ path: string;
3059
+ reason: string;
3060
+ }
3061
+
3062
+ /** Synchronous result of a `mode="link"` import (HTTP 200). */
3063
+ export declare interface MountImportLinkResponse {
3064
+ created_folder_ids: string[];
3065
+ created_file_ids: string[];
3066
+ errors: MountImportLinkError[];
3067
+ }
3068
+
3069
+ export declare interface MountResponse {
3070
+ id: string;
3071
+ name: string;
3072
+ description: string | null;
3073
+ scheme: MountScheme;
3074
+ enabled: boolean;
3075
+ host: string;
3076
+ port: number | null;
3077
+ share: string | null;
3078
+ base_path: string;
3079
+ credential_mode: CredentialMode;
3080
+ cred_type: CredType;
3081
+ shared_credentials_set: boolean;
3082
+ credentials_required: boolean;
3083
+ last_validation_outcome: string | null;
3084
+ last_validated_at: string | null;
3085
+ created_by: string;
3086
+ created_at: string;
3087
+ last_updated_at: string;
3088
+ my_access: MountAccess | null;
3089
+ }
3090
+
3091
+ /**
3092
+ * Mounts API DTOs (`/api/v2/mounts`, octostar-api #774 + #785).
3093
+ *
3094
+ * The request/response shapes for the Mounts admin + per-user-credential API.
3095
+ * These live in the published SDK surface so any app (the admin UI, a future
3096
+ * data explorer, …) consumes one shared vocabulary rather than redeclaring it.
3097
+ * App-internal concerns — the typed fetch client, its error class, friendly-copy
3098
+ * mapping — stay in the consuming app (`apps/octostar/src/lib/mountsApi.ts`).
3099
+ */
3100
+ export declare type MountScheme = 'smb';
3101
+
3102
+ /**
3103
+ * PATCH body. Every field is optional, but `name`, `enabled`, `base_path` and
3104
+ * `credential_mode` may NOT be sent as explicit `null` (omit to leave
3105
+ * unchanged) — the backend returns 422 for an explicit null. `scheme`/`host`
3106
+ * are immutable and are not part of this body.
3107
+ */
3108
+ export declare interface MountUpdate {
3109
+ name?: string;
3110
+ description?: string | null;
3111
+ enabled?: boolean;
3112
+ port?: number | null;
3113
+ share?: string | null;
3114
+ base_path?: string;
3115
+ credential_mode?: CredentialMode;
3116
+ shared_credentials?: SharedCredentialsInput;
3117
+ }
3118
+
2596
3119
  export declare interface MoveOptions {
2597
3120
  to_path?: string;
2598
3121
  entity_id?: string;
@@ -2628,21 +3151,6 @@ export declare type NamedEntityGroup = {
2628
3151
  type: 'group';
2629
3152
  };
2630
3153
 
2631
- export declare interface NativeFilterColumn {
2632
- name: string;
2633
- displayName?: string;
2634
- }
2635
-
2636
- export declare interface NativeFilterScope {
2637
- rootPath: string[];
2638
- excluded: number[];
2639
- }
2640
-
2641
- export declare interface NativeFilterTarget {
2642
- datasetId: number;
2643
- column: NativeFilterColumn;
2644
- }
2645
-
2646
3154
  /**
2647
3155
  * @beta
2648
3156
  * Type representing a Nunjucks file transform definition. Not yet supported.
@@ -2663,7 +3171,7 @@ export declare type NunjucksInlineTransformDefinition = NunjucksType & {
2663
3171
  * Type representing a Nunjucks transform definition.
2664
3172
  */
2665
3173
  export declare type NunjucksType = {
2666
- /** The type of the transform or styler, always 'nunjucks' for this type. */
3174
+ /** The type of the transform, always 'nunjucks' for this type. */
2667
3175
  type: 'nunjucks';
2668
3176
  };
2669
3177
 
@@ -2685,11 +3193,77 @@ export declare interface Ontology {
2685
3193
  getAvailableOntologies: () => Promise<string[]>;
2686
3194
  /**
2687
3195
  * Gets workspace relationship records for a given entity and relationship.
3196
+ *
3197
+ * When `pagination` is omitted the call uses the batched LRU and returns
3198
+ * all rows (subject to `CONNECTIONS_QUERY_CAP_PER_ENTITY`). When provided,
3199
+ * the call bypasses the cache and issues a single-entity targeted SQL with
3200
+ * `ORDER BY os_entity_uid LIMIT/OFFSET` — used for progressive expansion
3201
+ * on hyper-connected entities.
3202
+ *
2688
3203
  * @param entity - The entity for which to get relationship records.
2689
3204
  * @param rel - The relationship or relationship name.
3205
+ * @param pagination - Optional `{ limit, offset }`. When set, bypasses cache.
2690
3206
  * @returns A promise that resolves to an array of workspace relationships.
2691
3207
  */
2692
- getWorkspaceRelationshipRecords: (entity: Entity, rel: string | Relationship) => Promise<WorkspaceRelationship[]>;
3208
+ getWorkspaceRelationshipRecords: (entity: Entity, rel: string | Relationship, pagination?: {
3209
+ limit: number;
3210
+ offset: number;
3211
+ }) => Promise<WorkspaceRelationship[]>;
3212
+ /**
3213
+ * Paginated counterpart to {@link Ontology.getConnectedEntities}. Pulls one
3214
+ * page using local-first → bigData spillover and returns `total` so the
3215
+ * caller can drive a "Load more" affordance without a separate count call.
3216
+ *
3217
+ * @param entity - The entity for which to get connected entities.
3218
+ * @param rel - The relationship or relationship name.
3219
+ * @param pagination - `{ limit, offset }` for the page.
3220
+ * @returns A promise resolving to `{ entities, total, hasMore }`.
3221
+ */
3222
+ getConnectedEntitiesPage: (entity: Entity, rel: string | Relationship, pagination: {
3223
+ limit: number;
3224
+ offset: number;
3225
+ }) => Promise<{
3226
+ entities: Entity[];
3227
+ total: number;
3228
+ hasMore: boolean;
3229
+ }>;
3230
+ /**
3231
+ * @beta
3232
+ * Edge-stream counterpart to {@link Ontology.getConnectedEntitiesPage}. Pages
3233
+ * over a single `projection=edge` stream whose rows carry their target entity,
3234
+ * so no per-entity fetch follows.
3235
+ *
3236
+ * @param entity - The entity for which to get connected entities.
3237
+ * @param rel - The relationship or relationship name.
3238
+ * @param pagination - `{ limit, offset }` for the page.
3239
+ * @param knownTotal - Count the caller already holds, reported back as `total`.
3240
+ * @returns A promise resolving to `{ entities, total, hasMore }`.
3241
+ */
3242
+ getConnectedEntitiesPageFromEdgeQuery: (entity: Entity, rel: string | Relationship, pagination: {
3243
+ limit: number;
3244
+ offset: number;
3245
+ }, knownTotal: number) => Promise<{
3246
+ entities: Entity[];
3247
+ total: number;
3248
+ hasMore: boolean;
3249
+ }>;
3250
+ /**
3251
+ * @beta
3252
+ * Batched edge-endpoint counterpart to {@link Ontology.getConnectedEntities},
3253
+ * scoped to the Positions-map full-relationship sweep. Fetches every name in
3254
+ * `relationshipNames` for `entity` in one batched request, grouping results
3255
+ * by relationship name, instead of one request per relationship.
3256
+ *
3257
+ * Keyed by the names actually fetched: a name that is unknown or hidden by
3258
+ * the relationship mapping is absent, so read it as `result[name] ?? []`.
3259
+ *
3260
+ * @param entity - The entity for which to get connected entities.
3261
+ * @param relationshipNames - The relationship names to fetch, in one batch.
3262
+ * @returns A promise resolving to an object keyed by relationship name. Plain
3263
+ * object rather than a `Map` so it survives the post-robot bridge that serves
3264
+ * embedded apps.
3265
+ */
3266
+ getConnectedEntitiesForRelationships: (entity: Entity, relationshipNames: string[]) => Promise<Record<string, Entity[]>>;
2693
3267
  /**
2694
3268
  * Clears the relationship cache for a given entity and relationship.
2695
3269
  * @param entity - The entity for which to clear the cache.
@@ -2703,16 +3277,29 @@ export declare interface Ontology {
2703
3277
  * @param entity - The entity for which to get connected entities.
2704
3278
  * @param relationship - The relationship or relationship name.
2705
3279
  * @param forceRefresh - Whether to force a refresh of the data.
3280
+ * @param inverse - Whether to resolve the relationship in the inverse direction.
2706
3281
  * @returns A promise that resolves to an array of connected entities.
2707
3282
  */
2708
- getConnectedEntities: <T extends Entity>(entity: Entity, relationship: Relationship | string, forceRefresh?: boolean) => Promise<T[]>;
3283
+ getConnectedEntities: <T extends Entity>(entity: Entity, relationship: Relationship | string, forceRefresh?: boolean, inverse?: boolean) => Promise<T[]>;
2709
3284
  /**
2710
3285
  * Gets connections by type for a given entity and concept.
3286
+ *
3287
+ * The underlying SQL is capped at `CONNECTIONS_QUERY_CAP` rows to prevent
3288
+ * the backend from materialising hyper-connected entities' relationships
3289
+ * (which would OOM the FastAPI pod). When the cap is hit, `truncated` is
3290
+ * `true` and `connections` contains the first `CONNECTIONS_QUERY_CAP`
3291
+ * entries; consumers should surface a "showing first N" notice and
3292
+ * direct users to filter via Search.
3293
+ *
2711
3294
  * @param entity - The entity for which to get connections.
2712
3295
  * @param concept - The concept for which to get connections.
2713
- * @returns A promise that resolves to an array of connections.
3296
+ * @param handler - Optional callback invoked with the (possibly truncated) connection list.
3297
+ * @returns A promise that resolves to the connections and whether the result was truncated.
2714
3298
  */
2715
- getConnectionsByType: <T extends Entity>(entity: Entity, concept: string, handler?: (connections: EConnection[]) => Promise<void>) => Promise<EConnection[]>;
3299
+ getConnectionsByType: (entity: Entity, concept: string, handler?: (connections: EConnection[]) => Promise<void>) => Promise<{
3300
+ connections: EConnection[];
3301
+ truncated: boolean;
3302
+ }>;
2716
3303
  /**
2717
3304
  * Gets the concept names.
2718
3305
  * @returns A promise that resolves to an array concept names.
@@ -2760,6 +3347,19 @@ export declare interface Ontology {
2760
3347
  * @returns A promise that resolves to either the actual entity data OR the input entity if not found.
2761
3348
  */
2762
3349
  getEntity: <T extends Entity>(e: Entity, refresh?: boolean, skipSideEffects?: boolean) => Promise<T>;
3350
+ /**
3351
+ * Resolves an entity to its stored ontology record, or `undefined` if it
3352
+ * does not exist in the database.
3353
+ *
3354
+ * Unlike {@link getEntity} — which echoes its input back unchanged on a
3355
+ * miss — this distinguishes "found" from "not found" by tagging the probe
3356
+ * with a `'#original'` flag that only survives the round trip when the
3357
+ * entity was not persisted.
3358
+ *
3359
+ * @param entity - The entity to resolve (only `entity_type` / `entity_id` are required).
3360
+ * @returns The stored entity, or `undefined` if it was not found.
3361
+ */
3362
+ findEntity: <T extends Entity = Entity>(entity: EntityBase) => Promise<T | undefined>;
2763
3363
  /**
2764
3364
  * Gets the name of the ontology.
2765
3365
  * @returns A promise that resolves to the name of the ontology.
@@ -2773,6 +3373,13 @@ export declare interface Ontology {
2773
3373
  * @returns A promise that resolves to the relationship count result.
2774
3374
  */
2775
3375
  getRelationshipCount: (entity: Entity, rel: Relationship | string, forceRefresh?: boolean) => Promise<RelationshipCountResult>;
3376
+ /**
3377
+ * Gets the counts of every relationship of a given entity in a single request.
3378
+ * @param entity - The entity for which to get the relationship counts.
3379
+ * @param forceRefresh - Whether to force a refresh of the data.
3380
+ * @returns A promise that resolves to one count per relationship of the entity.
3381
+ */
3382
+ getEntityRelationshipCounts: (entity: Entity, forceRefresh?: boolean) => Promise<EntityRelationshipCount[]>;
2776
3383
  /**
2777
3384
  * Gets the concept for a given entity.
2778
3385
  * @param entity - The entity for which to get the concept.
@@ -2802,10 +3409,9 @@ export declare interface Ontology {
2802
3409
  * Sends a query with a typed response.
2803
3410
  * @param query - The query string.
2804
3411
  * @param options - Optional options for sending the query.
2805
- * @param force_refresh - Whether to force a refresh of the data.
2806
3412
  * @returns A promise that resolves to an array of results.
2807
3413
  */
2808
- sendQueryT: <T>(query: string, options?: SendQueryOptions, force_refresh?: boolean) => Promise<T[]>;
3414
+ sendQueryT: <T>(query: string, options?: SendQueryOptions) => Promise<T[]>;
2809
3415
  /**
2810
3416
  * Gets the system inheritance.
2811
3417
  * @returns A promise that resolves to an array of inheritances.
@@ -2832,9 +3438,10 @@ export declare interface Ontology {
2832
3438
  * @param entity - The entity to subscribe to.
2833
3439
  * @param callback - The callback to invoke on changes.
2834
3440
  * @param skipInitialCallback - Whether to skip the initial callback.
3441
+ * @param options - Which notices to receive; by default every notice for the entity.
2835
3442
  * @returns A promise that resolves to an unsubscribe function.
2836
3443
  */
2837
- subscribe: <T>(entity: Entity, callback: Callback<T>, skipInitialCallback?: boolean) => Promise<Unsubscribe>;
3444
+ subscribe: <T>(entity: Entity, callback: Callback<T>, skipInitialCallback?: boolean, options?: SubscribeOptions) => Promise<Unsubscribe>;
2838
3445
  /**
2839
3446
  * Generates a consistent UUID.
2840
3447
  * @param name - The name for which to generate the UUID.
@@ -2850,6 +3457,29 @@ export declare interface Ontology {
2850
3457
  updateCache: (entities: (Entity & WorkspaceItem)[]) => Promise<(Entity & WorkspaceItem)[]>;
2851
3458
  }
2852
3459
 
3460
+ /**
3461
+ * The display label the ontology schema resolves for a concept, property or relationship.
3462
+ * @beta
3463
+ */
3464
+ export declare interface OntologyLabel {
3465
+ /**
3466
+ * The label in the session language.
3467
+ */
3468
+ text: string;
3469
+ /**
3470
+ * One form per CLDR plural category; sent for concepts only.
3471
+ */
3472
+ plural?: Record<string, string>;
3473
+ }
3474
+
3475
+ /**
3476
+ * Returns the display name of an ontology term: its schema label, or the English default the
3477
+ * backend derives from the machine name. The server always sends `label.text`, so the fallback is
3478
+ * reached only against a backend predating the label fields or with a fixture-built model.
3479
+ * @beta
3480
+ */
3481
+ export declare function ontologyLabel(label: OntologyLabel | undefined, machineName: string | undefined): string;
3482
+
2853
3483
  /**
2854
3484
  * @beta
2855
3485
  * Type representing tags associated with an ontology.
@@ -2865,6 +3495,46 @@ export declare type OntologyTags = {
2865
3495
  tag_value: string;
2866
3496
  };
2867
3497
 
3498
+ /**
3499
+ * Options for {@link Desktop.openNewAIChat}.
3500
+ * @beta
3501
+ */
3502
+ export declare type OpenNewAIChatOptions = {
3503
+ /**
3504
+ * How the prompt seeds the new chat:
3505
+ * - `'send'` (default): the prompt is auto-sent as the chat's first message
3506
+ * on first mount.
3507
+ * - `'draft'`: the prompt only prefills the chat input, leaving the user to
3508
+ * review and hit send.
3509
+ */
3510
+ mode?: 'send' | 'draft';
3511
+ /**
3512
+ * Where the new chat opens:
3513
+ * - `'tab'` (default): as a workbench tab, via the AI Chat app.
3514
+ * - `'sidebar'`: in the host's AI panel (making it visible and
3515
+ * switching it to AI Chats). Requires the v3 app to be present — a host
3516
+ * without an AI panel ignores it. The chat is seeded identically either
3517
+ * way (same one-shot `os_item_content` prompt/context fields).
3518
+ */
3519
+ target?: 'tab' | 'sidebar';
3520
+ };
3521
+
3522
+ /**
3523
+ * @beta
3524
+ * A report (.odoc) that is open in the app (Composer tab and/or sidebar).
3525
+ */
3526
+ export declare type OpenReportSummary = {
3527
+ /** Workspace item entity uid */
3528
+ os_entity_uid: string;
3529
+ /** Display title (without .odoc when applicable) */
3530
+ displayName: string;
3531
+ /** Timestamp when the report was last updated, if known */
3532
+ os_last_updated_at?: string;
3533
+ surface: 'tab' | 'sidebar';
3534
+ /** True when this is the document selected in the Composer sidebar */
3535
+ isSidebarSelected?: boolean;
3536
+ };
3537
+
2868
3538
  export declare const ORIGINAL_OS_PARENT_FOLDER = "#original_os_parent_folder";
2869
3539
 
2870
3540
  /**
@@ -3084,6 +3754,26 @@ export declare type OsProgress = {
3084
3754
  * Persist until complete for the progress item.
3085
3755
  */
3086
3756
  persistUntilComplete?: boolean;
3757
+ /**
3758
+ * Milliseconds after which a finished row clears. 0 removes it outright
3759
+ * (its outcome is narrated elsewhere). Unset falls back to the
3760
+ * persistUntilComplete behavior.
3761
+ */
3762
+ clearAfterMs?: number;
3763
+ /**
3764
+ * Why a job stopped before finishing, where `status` alone cannot tell: an
3765
+ * upload batch reports `exception` whether it was cancelled, failed, or
3766
+ * stopped by its failure breaker.
3767
+ */
3768
+ outcome?: 'cancelled' | 'failed' | 'stopped';
3769
+ /**
3770
+ * How many of a batch's items failed so far, where the label only says it in prose.
3771
+ */
3772
+ failedCount?: number;
3773
+ /**
3774
+ * How many of a batch's items have finished so far, where the label only says it in prose.
3775
+ */
3776
+ doneCount?: number;
3087
3777
  };
3088
3778
 
3089
3779
  /**
@@ -3120,42 +3810,30 @@ declare type ParentFolderOption = {
3120
3810
  os_parent_folder: string;
3121
3811
  };
3122
3812
 
3123
- /**
3124
- * Options for pasting context.
3125
- * @beta
3126
- */
3127
- export declare type PasteContextOptions = {
3128
- /**
3129
- * First limit for the context.
3130
- */
3131
- limit1?: number;
3132
- /**
3133
- * Second limit for the context.
3134
- */
3135
- limit2?: number;
3136
- /**
3137
- * Record for the context.
3138
- */
3139
- record?: Entity;
3140
- /**
3141
- * Records for the context.
3142
- */
3143
- records?: Entity[];
3144
- /**
3145
- * Query for the context.
3146
- */
3147
- query?: ConceptFilter;
3148
- /**
3149
- * Whether to return a SavedSet entity when a folder is dropped.
3150
- */
3151
- preferSavedSet?: boolean;
3152
- };
3153
-
3154
3813
  declare type PathOption = {
3155
3814
  path: string;
3156
3815
  os_parent_folder?: never;
3157
3816
  };
3158
3817
 
3818
+ /** Options for peeking into a source-backed file (e.g. a zip). */
3819
+ export declare interface PeekSourceOptions {
3820
+ /** Path inside the source to list. Defaults to '/' (the source root). */
3821
+ inner?: string;
3822
+ }
3823
+
3824
+ /**
3825
+ * Address a source by either workspace path or entity_id (exactly one).
3826
+ * The frontend usually has an entity_id from the workspace tree and skips
3827
+ * the path-resolution dance; the path form remains for shell-style callers.
3828
+ */
3829
+ export declare type PeekSourceTarget = {
3830
+ path: string;
3831
+ entity_id?: never;
3832
+ } | {
3833
+ path?: never;
3834
+ entity_id: string;
3835
+ };
3836
+
3159
3837
  /**
3160
3838
  * @beta
3161
3839
  * Type representing a permission for a workspace item.
@@ -3171,6 +3849,22 @@ export declare type Permission = WorkspaceItem & {
3171
3849
  os_flags?: number;
3172
3850
  };
3173
3851
 
3852
+ /** Write-only credential blob a user PUTs for their own per-user access. */
3853
+ export declare interface PerUserCredentialInput {
3854
+ username: string;
3855
+ password: string;
3856
+ domain?: string | null;
3857
+ }
3858
+
3859
+ /** Metadata-only status of a user's saved per-user credential — never the secret. */
3860
+ export declare interface PerUserCredentialStatus {
3861
+ set: boolean;
3862
+ cred_type: CredType | null;
3863
+ created_at: string | null;
3864
+ last_updated_at: string | null;
3865
+ last_used_at: string | null;
3866
+ }
3867
+
3174
3868
  /**
3175
3869
  * @beta
3176
3870
  * Type representing a point in 2D space.
@@ -3182,6 +3876,44 @@ export declare type Point = {
3182
3876
  y: number;
3183
3877
  };
3184
3878
 
3879
+ export declare type PrincipalType = 'user' | 'role';
3880
+
3881
+ /**
3882
+ * Fragment-tree completion payload persisted by the backend's debounced
3883
+ * recursive-rollup job. Returned in-line as
3884
+ * {@link ProcessingStatus.detailed_status} for any entity whose subtree
3885
+ * has been rolled up at least once. Mirrors
3886
+ * `app/api/v1/pipeline/processing_status_models.py::ProcessingRecursiveStatus`.
3887
+ * @beta
3888
+ */
3889
+ export declare interface ProcessingRecursiveStatus {
3890
+ total_indexed: number;
3891
+ total_terminal: number;
3892
+ total_running: number;
3893
+ total_missing: number;
3894
+ total_failed: number;
3895
+ known_floor: number;
3896
+ remaining_floor: number;
3897
+ fully_complete: boolean;
3898
+ tree_live: boolean;
3899
+ has_missing_branches: boolean;
3900
+ partial: boolean;
3901
+ /**
3902
+ * Sparse rollup-effective status code override.
3903
+ * Consumers should compute the effective status as
3904
+ * `detailed_status?.status_code ?? status_code`.
3905
+ */
3906
+ status_code?: ProcessingStatusCode;
3907
+ /**
3908
+ * Fragments left by PRIOR pipeline runs that the latest run did not
3909
+ * re-create. They remain indexed and searchable in full — this count only
3910
+ * flags that they are NOT counted toward this (last-run-scoped) completion
3911
+ * rollup. Sparse: present only when > 0. Cleared by a reprocess that
3912
+ * re-creates the whole tree, or by an explicit fragment cleanup.
3913
+ */
3914
+ orphaned_prior_fragments?: number;
3915
+ }
3916
+
3185
3917
  /**
3186
3918
  * Represents the status of a processing operation.
3187
3919
  * @beta
@@ -3196,41 +3928,70 @@ export declare interface ProcessingStatus extends EntityBase {
3196
3928
  * The timeout for the processing operation.
3197
3929
  */
3198
3930
  timeout: number;
3931
+ /**
3932
+ * Number of direct child fragments declared by this entity. Used by the
3933
+ * recursive rollup to detect declared-but-not-yet-indexed children.
3934
+ */
3935
+ n_child_fragments?: number;
3936
+ /**
3937
+ * UID of the global root this entity belongs to (the originally fragmented
3938
+ * entity). `undefined` for global roots themselves.
3939
+ */
3940
+ source_entity_uid?: string;
3941
+ /**
3942
+ * UID of the direct parent in the fragment tree. `undefined` for global
3943
+ * roots. Mirrors `document_fields.os_parent_uid`; pair with
3944
+ * `source_entity_uid` on every fragment write.
3945
+ */
3946
+ os_parent_uid?: string;
3947
+ /**
3948
+ * UID of the workspace this entity belongs to. Mirrors
3949
+ * `document_fields.os_workspace`. Set
3950
+ * on every status write (roots and fragments).
3951
+ */
3952
+ os_workspace?: string;
3953
+ /**
3954
+ * Persisted recursive rollup for the root's fragment subtree.
3955
+ * Always returned in-line by `/api/v1/pipeline/processing-status/get`
3956
+ * when the debounced rollup job has written it; there is no separate
3957
+ * "ask for recursive numbers" request flag.
3958
+ */
3959
+ detailed_status?: ProcessingRecursiveStatus;
3960
+ /**
3961
+ * SHA-256 of the canonical serialization of `detailed_status`. Used by the
3962
+ * backend scripted update to short-circuit no-op writes.
3963
+ */
3964
+ detailed_status_hash?: string;
3965
+ /**
3966
+ * Per-fragment error entries collected by the recursive rollup.
3967
+ * Each entry mirrors the offending fragment's `processing_status`
3968
+ * (reason, status_code, timestamp, plus identity fields).
3969
+ */
3970
+ fragment_errors?: FragmentStatusEntry[];
3971
+ /**
3972
+ * Per-fragment warning entries collected by the recursive rollup
3973
+ * (e.g. lenient-defragmentation gaps). Combine with `warnings` to
3974
+ * get the user-facing total.
3975
+ */
3976
+ fragment_warnings?: FragmentStatusEntry[];
3977
+ /**
3978
+ * Warning entries raised on this entity's own processing (excluding
3979
+ * its fragments). Pair with `fragment_warnings` for the total.
3980
+ */
3981
+ warnings?: FragmentStatusEntry[];
3199
3982
  }
3200
3983
 
3201
3984
  /**
3202
- * Possible statuses of a NiFi pipeline task.
3985
+ * Processing status codes returned for indexed / pipeline processing state.
3203
3986
  * @beta
3204
3987
  */
3205
3988
  export declare enum ProcessingStatusCode {
3206
- /** Queued and awaiting execution */
3207
- QUEUED = "QUEUED",
3208
- /** Currently running */
3209
3989
  RUNNING = "RUNNING",
3210
- /** Stopped manually */
3211
- STOPPED = "STOPPED",
3212
- /** Paused and can be resumed */
3213
- PAUSED = "PAUSED",
3214
- /** Completed successfully */
3215
3990
  COMPLETED = "COMPLETED",
3216
- /** Encountered a failure */
3217
3991
  FAILED = "FAILED",
3218
- /** Scheduled to run */
3219
- SCHEDULED = "SCHEDULED",
3220
- /** Starting up */
3221
- STARTING = "STARTING",
3222
- /** Shutting down */
3223
- STOPPING = "STOPPING",
3224
- /** Disabled and cannot run */
3225
- DISABLED = "DISABLED",
3226
- /** Invalid configuration */
3227
- INVALID = "INVALID",
3228
- /** Waiting for an external event */
3229
- WAITING = "WAITING",
3230
- /** Retrying after failure */
3231
- RETRYING = "RETRYING",
3232
- /** Status is unknown */
3233
- UNKNOWN = "UNKNOWN"
3992
+ UNKNOWN = "UNKNOWN",
3993
+ CANCELED = "CANCELED",
3994
+ PARTIALLY_COMPLETED = "PARTIALLY_COMPLETED"
3234
3995
  }
3235
3996
 
3236
3997
  /**
@@ -3238,13 +3999,13 @@ export declare enum ProcessingStatusCode {
3238
3999
  */
3239
4000
  export declare type PromptOptions = {
3240
4001
  noThink?: boolean;
3241
- model?: string;
3242
- apiKey?: string;
3243
- stream?: boolean;
3244
- enableRag?: boolean;
3245
- cohereKey?: string;
3246
4002
  temperature?: number;
3247
- /** Importing Entity from model.ts breaks the build. */
4003
+ /**
4004
+ * Deprecated — completion mode does not fetch entity content. Passing a
4005
+ * non-empty array throws at runtime. Kept in the type only so legacy
4006
+ * callers in the Fusion subtree (broken, pending refactor) still compile.
4007
+ * Importing Entity from model.ts breaks the build.
4008
+ */
3248
4009
  context?: {
3249
4010
  entity_id: string;
3250
4011
  entity_label: string;
@@ -3269,6 +4030,10 @@ export declare interface Property {
3269
4030
  * The type of the property.
3270
4031
  */
3271
4032
  property_type: string;
4033
+ /**
4034
+ * The display label from the ontology schema.
4035
+ */
4036
+ label?: OntologyLabel;
3272
4037
  }
3273
4038
 
3274
4039
  /**
@@ -3305,6 +4070,16 @@ export declare type QueryBatchResult<T> = (QuerySuccessResult<T> | QueryErrorRes
3305
4070
  query_id: string;
3306
4071
  };
3307
4072
 
4073
+ /**
4074
+ * @beta
4075
+ * An opaque Elasticsearch query-DSL fragment. Previously imported from
4076
+ * `@elastic/elasticsearch`, but that type is an `any`-sea and pulling the whole
4077
+ * ES client (with its OpenTelemetry/undici transitive advisories) into the dev
4078
+ * tree to type a single field wasn't worth it — consumers treat `query`
4079
+ * opaquely (see content-browser queryComposition.ts / createEmbeddingFilter.ts).
4080
+ */
4081
+ export declare type QueryDslQueryContainer = Record<string, unknown>;
4082
+
3308
4083
  /**
3309
4084
  * @beta
3310
4085
  * Type representing an error query result.
@@ -3330,6 +4105,35 @@ export declare type QueryExecutor = {
3330
4105
  sendQuery: (query: Query, options?: SendQueryOptions) => Promise<QueryResponse>;
3331
4106
  };
3332
4107
 
4108
+ /**
4109
+ * Filtered listing of `os_wsfs_object` rows via ontology (not from hydrated workspace.items).
4110
+ * Supply at least one of `contentTypes`, `nameLikeLower`, `labelLikeLower` or `itemTypes`; with
4111
+ * none it returns `[]`.
4112
+ */
4113
+ export declare type QueryFilesystemItemsParams = {
4114
+ workspaceIds: string[];
4115
+ /** OR: os_item_content_type equals one of these */
4116
+ contentTypes?: string[];
4117
+ /** OR: lower(os_item_name) LIKE pattern (SQL LIKE, e.g. '%.odoc') */
4118
+ nameLikeLower?: string[];
4119
+ /** OR: lower(entity_label) LIKE pattern, for the name a row displays when it has a label */
4120
+ labelLikeLower?: string[];
4121
+ /** AND: os_item_type is one of these (`['os_file']` leaves folders out); enough on its own.
4122
+ * Applied before `limit`, so excluded rows don't use up the cap. */
4123
+ itemTypes?: string[];
4124
+ /**
4125
+ * Cap the rows returned, most-recently-updated first (the listing is always
4126
+ * `ORDER BY os_last_updated_at DESC`).
4127
+ *
4128
+ * Unbounded by default because the pickers want the whole set. Pass it for any
4129
+ * high-cardinality listing — the query selects every concept field and the
4130
+ * workspace list is a fan-out, so an uncapped Files or Records section would
4131
+ * pull every matching row of every workspace into memory. A caller that caps
4132
+ * is showing a subset and should say so in its UI.
4133
+ */
4134
+ limit?: number;
4135
+ };
4136
+
3333
4137
  /**
3334
4138
  * @beta
3335
4139
  * A union type that represents all possible filter clauses in a query object.
@@ -3349,11 +4153,6 @@ export declare type QueryResponse = any[];
3349
4153
  */
3350
4154
  export declare type QueryResult = ApiResult<any[]>;
3351
4155
 
3352
- declare type QueryResult_2 = {
3353
- language: string;
3354
- query: string;
3355
- };
3356
-
3357
4156
  /**
3358
4157
  * @beta
3359
4158
  * Type representing a successful query result.
@@ -3384,6 +4183,15 @@ export declare type ReactNode = any;
3384
4183
  */
3385
4184
  export declare type ReactRef<T> = RefCallback<T> | RefObject<T> | null;
3386
4185
 
4186
+ /** The distinct candidate keys of a step-one response, own first. */
4187
+ export declare function readImageLabelCandidates(aggregations: Record<string, unknown> | undefined): string[];
4188
+
4189
+ /** The non-zero counts of a step-two response, largest first, at most `size`. */
4190
+ export declare function readImageLabelCounts(aggregations: Record<string, unknown> | undefined, size: number): Array<{
4191
+ key: string;
4192
+ count: number;
4193
+ }>;
4194
+
3387
4195
  /**
3388
4196
  * Represents a boolean value with an optional reason.
3389
4197
  * @beta
@@ -3395,17 +4203,6 @@ export declare type ReasonedBoolean = {
3395
4203
  reason: string;
3396
4204
  };
3397
4205
 
3398
- export declare interface RecordData extends ChartDataResponseResult {
3399
- data: Record<string, any>[];
3400
- }
3401
-
3402
- export declare type RecordFetchOptions = {
3403
- all_columns: string[];
3404
- order_by_cols: string[];
3405
- row_limit: number;
3406
- server_page_length: number;
3407
- };
3408
-
3409
4206
  /**
3410
4207
  * Interface for providing records.
3411
4208
  * @beta
@@ -3436,8 +4233,21 @@ export declare interface RecordProvider {
3436
4233
  }
3437
4234
 
3438
4235
  /**
3439
- * @beta
3440
- * Type representing a React ref callback.
4236
+ * Which per-source bucket of a workspace's records to act on.
4237
+ *
4238
+ * `source_name` is the exact import origin; `null` targets the records that
4239
+ * carry none (the "(No source)" bucket). Absent is not a value here — an
4240
+ * unscoped bulk delete is a different call.
4241
+ */
4242
+ export declare interface RecordsSourceScope {
4243
+ source_name: string | null;
4244
+ /** Narrow to one concept hierarchy inside the bucket, e.g. `Person`. */
4245
+ concept?: string;
4246
+ }
4247
+
4248
+ /**
4249
+ * @beta
4250
+ * Type representing a React ref callback.
3441
4251
  */
3442
4252
  export declare type RefCallback<T> = {
3443
4253
  bivarianceHack(instance: T | null): void;
@@ -3451,6 +4261,41 @@ export declare interface RefObject<T> {
3451
4261
  readonly current: T | null;
3452
4262
  }
3453
4263
 
4264
+ /**
4265
+ * Serializable descriptor of a host-registered context-menu action — the
4266
+ * subset of {@link DesktopActionMenuItem} that survives a structured-clone
4267
+ * round-trip across the event-emitter bridge. Returned by
4268
+ * {@link Desktop.getRegisteredActions} so micro-frontends can render their
4269
+ * own group submenus ("Open with…", "Add to…", …) without taking a
4270
+ * dependency on the host's registry.
4271
+ *
4272
+ * The `invoke` callback lives only in the host — call
4273
+ * {@link Desktop.invokeRegisteredAction} with `key` to fire it.
4274
+ * @beta
4275
+ */
4276
+ export declare type RegisteredActionInfo = {
4277
+ /** Stable identifier of the underlying registered action. Pass back
4278
+ * to {@link Desktop.invokeRegisteredAction} to invoke. */
4279
+ key: string;
4280
+ /** Display label as registered. Always coerced to a string here
4281
+ * (React-node labels are not serialisable across the bridge). */
4282
+ label: string;
4283
+ /** Icon hint — either a font-icon name or the full {@link IconProps}. */
4284
+ icon?: Icon;
4285
+ /** Group the action was registered under. Callers narrow by passing a
4286
+ * specific group list to {@link Desktop.getRegisteredActions}. */
4287
+ group: ContextMenuGroup;
4288
+ /** Lower order = first in the rendered list. */
4289
+ order?: number;
4290
+ /** Builtin opener key when the action declares one (mirrors the host's
4291
+ * `DesktopActionOptions.with` matching). Optional. */
4292
+ with?: string;
4293
+ /** App-service identifier when the action was registered by an app. */
4294
+ service?: string;
4295
+ /** AI description from the app manifest, when present. */
4296
+ aiDescription?: string;
4297
+ };
4298
+
3454
4299
  /**
3455
4300
  * Represents a relationship between concepts.
3456
4301
  * @beta
@@ -3472,6 +4317,10 @@ export declare interface Relationship {
3472
4317
  * Name of the relationship.
3473
4318
  */
3474
4319
  relationship_name: string;
4320
+ /**
4321
+ * The display label from the ontology schema.
4322
+ */
4323
+ label?: OntologyLabel;
3475
4324
  /**
3476
4325
  * Inverse name of the relationship.
3477
4326
  */
@@ -3505,13 +4354,13 @@ export declare interface Relationship {
3505
4354
  */
3506
4355
  mapping_json: string;
3507
4356
  /**
3508
- * Indicates if the relationship is inverse (1 for true, 0 for false).
4357
+ * Indicates if the relationship is inverse (1 for true, 0 for false). Numeric only at the API.
3509
4358
  */
3510
4359
  is_inverse: number;
3511
4360
  /**
3512
4361
  * Indicates if the relationship is many-to-many (1 for true, 0 for false).
3513
4362
  */
3514
- is_mtm: number;
4363
+ is_mtm: number | boolean;
3515
4364
  /**
3516
4365
  * Transitivity property of the relationship.
3517
4366
  */
@@ -3530,6 +4379,25 @@ export declare interface Relationship {
3530
4379
  description?: string;
3531
4380
  }
3532
4381
 
4382
+ /**
4383
+ * @beta
4384
+ * Type representing a relationship count together with its completeness.
4385
+ */
4386
+ export declare type RelationshipCountEntry = {
4387
+ /** The count, `null` if and only if `state` is `'unknown'`. */
4388
+ value: number | null;
4389
+ /** How complete the count is. */
4390
+ state: RelationshipCountState;
4391
+ /** How the count was derived. */
4392
+ precision?: string;
4393
+ /** The part of the count contributed by workspace-local relationships. */
4394
+ workspace_value?: number;
4395
+ /** The guaranteed lower bound of the count. */
4396
+ at_least: number;
4397
+ /** Stored records behind `value`; `null` when `value` is, absent from servers that predate it. */
4398
+ record_count?: number | null;
4399
+ };
4400
+
3533
4401
  /**
3534
4402
  * @beta
3535
4403
  * Type representing the result of a relationship count operation.
@@ -3541,6 +4409,12 @@ export declare type RelationshipCountResult = {
3541
4409
  expired?: boolean;
3542
4410
  };
3543
4411
 
4412
+ /**
4413
+ * @beta
4414
+ * Type representing how complete a relationship count is.
4415
+ */
4416
+ export declare type RelationshipCountState = 'ok' | 'partial' | 'unknown';
4417
+
3544
4418
  export declare type RemoteAppApi = {
3545
4419
  subscribeToContext: SubscribeToContextFn;
3546
4420
  unsubscribeFromContext: UnsubscribeFromContextFn;
@@ -3561,11 +4435,90 @@ export declare type RenameTabProps = {
3561
4435
  newName: string;
3562
4436
  };
3563
4437
 
4438
+ /**
4439
+ * @beta
4440
+ * Union of every shape a template lookup may return:
4441
+ * - workspace-stored `SavedTemplate` (rendered via `react-live`),
4442
+ * - code-resident `DefaultTemplate` (rendered as a real React component),
4443
+ * - in-memory `CustomTemplate` produced by `newCustomTemplate()` before
4444
+ * it has been persisted.
4445
+ *
4446
+ * `SavedTemplate ⊂ CustomTemplate`, so this is structurally equivalent
4447
+ * to `CustomTemplate | DefaultTemplate`; the explicit list is kept for
4448
+ * readability.
4449
+ */
4450
+ export declare type RenderableTemplate = SavedTemplate | DefaultTemplate | CustomTemplate;
4451
+
4452
+ /**
4453
+ * @beta
4454
+ * Report / Composer integration API (Octostar app).
4455
+ */
4456
+ export declare interface ReportApi {
4457
+ /**
4458
+ * Lists .odoc reports that are currently open (tabs and/or Composer sidebar), with metadata.
4459
+ */
4460
+ getOpenReportSummaries: () => Promise<OpenReportSummary[]>;
4461
+ /**
4462
+ * Lists .odoc files in open workspaces (same discovery as Composer empty state).
4463
+ */
4464
+ listWorkspaceReports: () => Promise<WorkspaceItem[]>;
4465
+ /**
4466
+ * Opens the shared "Add to report" modal.
4467
+ *
4468
+ * Supported payload modes:
4469
+ * - `entity`/default: pick target, choose the usual checkboxes, and append a snapshot of an entity.
4470
+ * - `blocks`: pick target, then append arbitrary TipTap JSON blocks directly.
4471
+ */
4472
+ presentAddToReportFlow: (input: AddToReportInput) => Promise<AddToReportResult | void>;
4473
+ }
4474
+
4475
+ /**
4476
+ * @beta
4477
+ * Minimal TipTap/ProseMirror JSON node shape used by the report append APIs.
4478
+ *
4479
+ * This intentionally mirrors the recursive JSON structure without depending on TipTap packages
4480
+ * from the public platform-types package.
4481
+ */
4482
+ export declare type ReportTiptapNode = {
4483
+ type?: string;
4484
+ attrs?: Record<string, unknown>;
4485
+ text?: string;
4486
+ marks?: {
4487
+ type: string;
4488
+ attrs?: Record<string, unknown>;
4489
+ }[];
4490
+ content?: ReportTiptapNode[];
4491
+ };
4492
+
3564
4493
  declare type RootOption = {
3565
4494
  path?: never;
3566
4495
  os_parent_folder?: never;
3567
4496
  };
3568
4497
 
4498
+ /** {@link RuntimeAppUrlWorkspaceItem} for the raw `Entity` shape (e.g. the
4499
+ * synthetic iframe-transform items built in the job services). Same
4500
+ * runtime-only `#appUrl` contract — never persisted, never read off a
4501
+ * restored item. */
4502
+ export declare type RuntimeAppUrlEntity = Entity & {
4503
+ '#appUrl'?: string;
4504
+ };
4505
+
4506
+ /**
4507
+ * A `WorkspaceItem` carrying the app's resolved iframe URL on the runtime-only
4508
+ * `#appUrl` field.
4509
+ *
4510
+ * IMPORTANT: `#appUrl` is **runtime-only and never persisted**. It is hydrated
4511
+ * in-memory from the K8s apps API (e.g. by `DesktopAPI.getApp` /
4512
+ * `hydrateWithK8sState`) and is **stripped on any JSON round-trip** — notably
4513
+ * the flexlayout tab-config serialization. Never read `#appUrl` off an item
4514
+ * that was restored or deserialized; resolve the live URL via
4515
+ * `useAppDeploymentState` instead. `os_item_content.app_url` no longer carries
4516
+ * the URL — it is gone.
4517
+ */
4518
+ export declare type RuntimeAppUrlWorkspaceItem = WorkspaceItem & {
4519
+ '#appUrl'?: string;
4520
+ };
4521
+
3569
4522
  export declare interface S3Headers {
3570
4523
  key: string;
3571
4524
  policy: string;
@@ -3607,45 +4560,9 @@ export declare type SaveAsModalProps = {
3607
4560
  omitFilename?: boolean;
3608
4561
  };
3609
4562
 
3610
- export declare const SAVED_SEARCH_MESSAGE_TYPES: Readonly<{
3611
- getRecordsCount: "octostar:savedSearch:getRecordsCount";
3612
- getRecordsCountQuery: "octostar:savedSearch:getRecordsCountQuery";
3613
- getRecords: "octostar:savedSearch:getRecords";
3614
- getRecordsQuery: "octostar:savedSearch:getRecordsQuery";
3615
- getSavedSearchPasteContext: "octostar:savedSearch:getSavedSearchPasteContext";
3616
- }>;
3617
-
3618
- export declare const SAVED_SEARCH_PREFIX = "octostar:savedSearch:";
3619
-
3620
- export declare interface SavedDatasource {
3621
- uid: string;
3622
- id: number;
3623
- name?: string;
3624
- table_name: string;
3625
- type: string;
3626
- main_dttm_col: string;
3627
- }
3628
-
3629
- export declare interface SavedSearchAPIInterface {
3630
- getRecordsCount: (savedSearchIdn: WorkspaceItemIdentifier<SavedSearchContent>) => Promise<BigNumber | number | null>;
3631
- getRecordsCountQuery: (savedSearchIdn: WorkspaceItemIdentifier<SavedSearchContent>) => Promise<number | null>;
3632
- getRecords: (savedSearchIdn: WorkspaceItemIdentifier<SavedSearchContent>, options?: Partial<RecordFetchOptions>) => Promise<RecordData | null>;
3633
- getRecordsQuery: (savedSearchIdn: WorkspaceItemIdentifier<SavedSearchContent>, options?: RecordFetchOptions) => Promise<QueryResult_2 | null>;
3634
- getSavedSearchPasteContext: (savedSearchIdn: WorkspaceItemIdentifier<SavedSearchContent>) => Promise<EntityPasteContext>;
3635
- }
3636
-
3637
- export declare interface SavedSearchContent {
3638
- concept: string;
3639
- dataset: true;
3640
- filters: Filter[];
3641
- crossFilters: DataMask[];
3642
- datasourcesInScope: Record<string, SavedDatasource>;
3643
- initialCount?: number;
3644
- }
3645
-
3646
4563
  export declare interface SavedSetContent {
3647
4564
  lastFiredQuery: string;
3648
- uiState: Record<string, any>;
4565
+ uiState: Record<string, unknown>;
3649
4566
  }
3650
4567
 
3651
4568
  /**
@@ -3657,8 +4574,6 @@ export declare type SavedTemplate = CustomTemplate & {
3657
4574
  os_entity_uid: string;
3658
4575
  /** The workspace to which the template belongs. */
3659
4576
  os_workspace: string;
3660
- /** The CSS content of the template. */
3661
- css_content?: string;
3662
4577
  };
3663
4578
 
3664
4579
  /**
@@ -3677,10 +4592,6 @@ export declare type SaveFileOptions = {
3677
4592
  * @beta
3678
4593
  */
3679
4594
  export declare type SaveOptions = SaveFileOptions & {
3680
- /**
3681
- * Whether to save as a draft.
3682
- */
3683
- draft?: boolean;
3684
4595
  /**
3685
4596
  * Whether to save as a new file.
3686
4597
  */
@@ -3695,12 +4606,69 @@ export declare type SaveOptions = SaveFileOptions & {
3695
4606
  * @beta
3696
4607
  * Type representing the search filter.
3697
4608
  */
3698
- export declare type SearchFilter = {
4609
+ export declare interface SearchFilter {
3699
4610
  label?: string;
3700
4611
  entity?: Entity;
3701
4612
  query?: QueryDslQueryContainer;
3702
4613
  imageUrl?: string;
3703
- };
4614
+ /**
4615
+ * Optional long-form descriptor for this filter. Chips in the UI use
4616
+ * the short `label` on their face and surface `tooltip` in a hover
4617
+ * tooltip — useful when the label alone is ambiguous (for example a
4618
+ * "Folder: Reports" chip whose `tooltip` disambiguates to the full
4619
+ * breadcrumb "WorkspaceName / Projects / 2025 / Reports").
4620
+ */
4621
+ tooltip?: string;
4622
+ /**
4623
+ * Optional classification of how this filter participates in the final
4624
+ * Elasticsearch query. Filters tagged `'scope'` (i.e. those produced by
4625
+ * "Open with the Search Engine" or by dropping items onto search-app) are
4626
+ * combined with OR (`bool.should`); other kinds combine with AND
4627
+ * (`bool.must`). When omitted, the filter behaves as a `bool.must` clause
4628
+ * for backwards compatibility.
4629
+ */
4630
+ kind?: 'scope' | 'concept' | 'text' | 'image';
4631
+ /**
4632
+ * When `true`, this filter is a **hard browsing scope** that must survive a
4633
+ * facet's self-exclusion: it represents the universe the user opened into
4634
+ * (e.g. the "Files" or "Records" section they launched the Search Engine
4635
+ * from), not a pivotable facet pick. Normally an AND-combined (`'concept'`)
4636
+ * filter whose query references a facet's own field is dropped from that
4637
+ * facet's bucket counts so the user can pivot between sibling values; a
4638
+ * pinned scope is kept regardless, so the by-type facet stays constrained to
4639
+ * the section you opened. No effect on OR-combined (`'scope'`) filters, which
4640
+ * already survive self-exclusion. Defaults to unpinned.
4641
+ */
4642
+ pinned?: boolean;
4643
+ }
4644
+
4645
+ /**
4646
+ * One raw engine hit, the subset of the ES/OpenSearch hit shape Octostar
4647
+ * reads. Lives here — not in a UI package — because both the Content
4648
+ * Browser and the app's search layer consume the same hits; the UI
4649
+ * package re-exports it for back-compat.
4650
+ */
4651
+ export declare interface SearchHit {
4652
+ _id: string;
4653
+ _index?: string;
4654
+ _score?: number;
4655
+ _source: Record<string, unknown>;
4656
+ highlight?: Record<string, string[]>;
4657
+ inner_hits?: Record<string, {
4658
+ hits: {
4659
+ total?: {
4660
+ value: number;
4661
+ relation: 'eq' | 'gte';
4662
+ } | number;
4663
+ hits: SearchInnerHit[];
4664
+ };
4665
+ }>;
4666
+ }
4667
+
4668
+ export declare interface SearchInnerHit {
4669
+ _score?: number | null;
4670
+ _source?: Record<string, unknown>;
4671
+ }
3704
4672
 
3705
4673
  /**
3706
4674
  * @beta
@@ -3712,6 +4680,36 @@ export declare interface SearchOptions {
3712
4680
  */
3713
4681
  limit?: number;
3714
4682
  workspace_ids?: string[];
4683
+ /** Cheaper than listing everywhere-else; neither grants access. */
4684
+ exclude_workspace_ids?: string[];
4685
+ /**
4686
+ * Entity types to exclude.
4687
+ */
4688
+ exclude_entity_types?: string[];
4689
+ /**
4690
+ * Narrow to these types. {@link limit} is applied on `_score` alone, so without
4691
+ * this a broad term spends the whole result set on types the caller discards.
4692
+ */
4693
+ entity_types?: string[];
4694
+ /**
4695
+ * Look up these entities by uid, with an empty query. Treat an absent one as
4696
+ * "ask again".
4697
+ */
4698
+ os_entity_uids?: string[];
4699
+ /**
4700
+ * How wide to match. See {@link SearchScope}.
4701
+ */
4702
+ scope?: SearchScope;
4703
+ /**
4704
+ * Override the response shape. The default ships every field except the heavy
4705
+ * annotation blobs (extracted text, chunks, NER arrays), which is what a hit
4706
+ * list needs; pass this only when a caller genuinely wants something narrower
4707
+ * or one of the excluded keys.
4708
+ */
4709
+ source?: {
4710
+ includes?: string[];
4711
+ excludes?: string[];
4712
+ };
3715
4713
  }
3716
4714
 
3717
4715
  /**
@@ -3735,6 +4733,7 @@ export declare interface SearchProps {
3735
4733
  * the default image to use for the search.
3736
4734
  */
3737
4735
  image?: WorkspaceItem;
4736
+ selectMode?: 'single' | 'multi';
3738
4737
  /**
3739
4738
  * disable ask AI
3740
4739
  */
@@ -3753,6 +4752,30 @@ export declare interface SearchProps {
3753
4752
  searchInfoDescription?: React.ReactNode;
3754
4753
  }
3755
4754
 
4755
+ /**
4756
+ * @beta
4757
+ * Represents the result of a query-mode search: the raw Elasticsearch query
4758
+ * plus the total number of matching documents.
4759
+ */
4760
+ export declare interface SearchQueryResult {
4761
+ query: Record<string, unknown>;
4762
+ numberOfResults: number;
4763
+ }
4764
+
4765
+ /**
4766
+ * How wide a text search matches — THE declaration; every other scope type
4767
+ * derives from it (`FinderSearchScope` adds an `'off'` rung on top).
4768
+ *
4769
+ * `names` is a filter-a-list surface: the name only, and also *inside* it
4770
+ * (`atch` → `match.pdf`), which the analyzed tiers cannot do — a hit whose
4771
+ * text mentions the term but whose name does not reads as wrong there.
4772
+ * `names+contents` is the full relevance ladder, extracted text included.
4773
+ *
4774
+ * One value rather than two flags: they were only ever set together, and a
4775
+ * caller asking for substring matching without names-only meant nothing.
4776
+ */
4777
+ export declare type SearchScope = 'names' | 'names+contents';
4778
+
3756
4779
  /**
3757
4780
  * @beta
3758
4781
  * Interface representing the properties for the SearchXperienceModal component, extending SearchXperienceProps.
@@ -3821,6 +4844,19 @@ export declare type SemanticBinding = {
3821
4844
  props?: SemanticBindingProps;
3822
4845
  };
3823
4846
 
4847
+ /**
4848
+ * @beta
4849
+ * Options of one concept in an app manifest's `semantic_bindings`.
4850
+ */
4851
+ export declare interface SemanticBindingOptions {
4852
+ /** Order among the bindings for an entity. Lower comes first. */
4853
+ priority?: number;
4854
+ /** `record_viewer` only: open the tab full screen. */
4855
+ maximized?: boolean;
4856
+ /** Sift-compatible query evaluated against the entity. The binding applies only when it matches. */
4857
+ filter?: Record<string, unknown>;
4858
+ }
4859
+
3824
4860
  /**
3825
4861
  * @beta
3826
4862
  * Type representing the properties for a template binding.
@@ -3832,17 +4868,25 @@ export declare interface SemanticBindingProps {
3832
4868
  priority?: number;
3833
4869
  /** Whether the result should be shown in large mode by default */
3834
4870
  maximized?: boolean;
4871
+ /** Sift-compatible query evaluated against the entity. When present, the binding only matches if the filter passes. */
4872
+ filter?: Record<string, any>;
3835
4873
  /** Other properties */
3836
4874
  [key: string]: any;
3837
4875
  }
3838
4876
 
3839
4877
  /**
3840
4878
  * @beta
3841
- * Type representing multiple semantic bindings.
4879
+ * An app manifest's `semantic_bindings`: the bindings per role. The platform reads `opener`
4880
+ * (a double-click on a matching entity opens the app) and `record_viewer` (the app is a Record Viewer tab).
3842
4881
  */
3843
- export declare type SemanticBindings = {
3844
- [k in SemanticBindingType]: (ConceptName | SemanticBinding)[];
3845
- };
4882
+ export declare type SemanticBindings = Partial<Record<SemanticBindingType, SemanticBindingSpec>>;
4883
+
4884
+ /**
4885
+ * @beta
4886
+ * The bindings of one role: a concept name, a list of concept names and one-key maps of concept to options,
4887
+ * or a map of concept to options.
4888
+ */
4889
+ export declare type SemanticBindingSpec = ConceptName | (ConceptName | Record<ConceptName, SemanticBindingOptions | null>)[] | Record<ConceptName, SemanticBindingOptions | null>;
3846
4890
 
3847
4891
  /**
3848
4892
  * @beta
@@ -3914,58 +4958,48 @@ export declare type ServiceDefinitions = Record<string, ServiceDefinition>;
3914
4958
  export declare type ServiceRole = 'context_menu' | 'record_view' | 'set_view';
3915
4959
 
3916
4960
  export declare type SetsOptions = {
3917
- /**
3918
- * Workspace items for the context.
3919
- */
3920
4961
  workspace_items?: WorkspaceItem[];
3921
- /**
3922
- * Limit for the context.
3923
- */
3924
4962
  limit?: number;
3925
- /**
3926
- * Offset for the context.
3927
- */
3928
4963
  offset?: number;
4964
+ datasource?: 'timbr' | 'opensearch';
3929
4965
  /**
3930
- * Datasource for the context.
3931
- */
3932
- datasource?: string;
3933
- /**
3934
- * Recursive for the context.
3935
- */
3936
- recursive?: boolean;
3937
- /**
3938
- * Include count for the context.
4966
+ * Controls recursion depth for hierarchical expansion.
4967
+ * true = flatten mode (bulk query, all descendants at once).
4968
+ * false = direct children only.
4969
+ * number(N) = incremental expansion up to N levels deep.
3939
4970
  */
4971
+ recursive?: boolean | number;
3940
4972
  include_count?: boolean;
3941
- /**
3942
- * Include root for the context.
3943
- */
3944
4973
  include_root?: boolean;
3945
- /**
3946
- * Include all fields for the context.
3947
- */
3948
4974
  include_all_fields?: boolean;
3949
- /**
3950
- * OS exact concept filter for the context.
3951
- */
3952
- os_exact_concept_filter?: string[];
3953
- /**
3954
- * When limit1 and limit2 are provided,
3955
- * the user will be prompted to choose the number of records to add
3956
- * if the count is greater than limit1.
3957
- */
4975
+ include_types?: string[];
4976
+ exclude_types?: string[];
4977
+ expand_types?: string[];
4978
+ no_expand_types?: string[];
4979
+ /** UI-only prompt threshold. */
3958
4980
  limit1?: number;
3959
- /**
3960
- * When limit1 and limit2 are provided,
3961
- * the user will be prompted to choose the number of records to add
3962
- * if the count is greater than limit1.
3963
- */
4981
+ /** UI-only prompt threshold. */
3964
4982
  limit2?: number;
4983
+ workspace_sidebar_set?: boolean;
4984
+ expand_abstract_sets_recursively?: boolean;
4985
+ deduplicate?: boolean;
4986
+ sort_by?: SetsSortBy[];
4987
+ };
4988
+
4989
+ export declare type SetsSortBy = {
4990
+ field: string;
4991
+ direction: 'asc' | 'desc';
3965
4992
  };
3966
4993
 
3967
4994
  export declare type SetTransformResultFn = (args: any[]) => Promise<void>;
3968
4995
 
4996
+ export declare interface SharedCredentialsInput {
4997
+ cred_type?: CredType;
4998
+ username: string;
4999
+ password: string;
5000
+ domain?: string | null;
5001
+ }
5002
+
3969
5003
  /**
3970
5004
  * @beta
3971
5005
  * Type representing the details of an ontology to be shown.
@@ -4020,138 +5054,97 @@ export declare enum SortOrder {
4020
5054
  HIDE = -1
4021
5055
  }
4022
5056
 
5057
+ /** A per-entry failure surfaced in the bulk-export response. */
5058
+ export declare interface SourceExportError {
5059
+ inner_path: string;
5060
+ reason: string;
5061
+ }
5062
+
4023
5063
  /**
4024
- * @beta
4025
- * Options for streaming JSON line data from an API.
5064
+ * Request body for `POST /api/v1/files/source/export/{ws}` — bulk export of
5065
+ * multiple inner paths (files and/or folders) from a source-backed archive
5066
+ * into a workspace folder. Folders expand recursively server-side; dedup and
5067
+ * the two-phase folder-then-file upsert also happen server-side.
4026
5068
  */
4027
- export declare interface StreamJsonOptions<T> extends FetchOptions {
4028
- /**
4029
- * The asynchronous function to process each JSON object.
4030
- */
4031
- jsonHandler: (value: T) => Promise<void>;
5069
+ export declare interface SourceExportRequest {
5070
+ entity_id: string;
5071
+ inner_paths: string[];
5072
+ target_parent_folder: string;
4032
5073
  }
4033
5074
 
4034
5075
  /**
4035
- * @beta
4036
- * Options for streaming text data from an API.
5076
+ * Response from `POST /api/v1/files/source/export/{ws}`. `errors[]` collects
5077
+ * per-file failures that did NOT abort the batch (folder-phase failures
5078
+ * abort with a 4xx/5xx instead of surfacing here).
4037
5079
  */
4038
- export declare interface StreamTextOptions extends FetchOptions {
4039
- /**
4040
- * The asynchronous function to process each line of text.
4041
- */
4042
- handler: (line: string) => Promise<void>;
5080
+ export declare interface SourceExportResponse {
5081
+ created_folder_ids: string[];
5082
+ created_file_ids: string[];
5083
+ errors: SourceExportError[];
4043
5084
  }
4044
5085
 
4045
5086
  /**
4046
- * @beta
4047
- * Type representing a styler with methods for getting G6 node and edge styles.
4048
- * See ColorByType.ts for an example
5087
+ * One entry inside a peeked source (a zip in v1). Mirrors the existing
5088
+ * /list envelope so the same UI components can render it. `source_url` is the
5089
+ * osfs:// URI for this entry — pass it back to peek deeper (for folders), or
5090
+ * use it as `os_source_url` when exporting to the workspace (v2).
4049
5091
  */
4050
- export declare type Styler = {
4051
- /**
4052
- * Use this function to modify style of a node from outside the graph.
4053
- * You can overwrite the style, but DO NOT merge currentStyle or originStyle when returning new styling (or rather styling patch).
4054
- * This can lead do recursive clone error later on.
4055
- * Merging with actual style will be handled automatically!
4056
- * Use them just as a reference:
4057
- * - @param originStyle for eg original node radius (if its a circural node), so you want to eg multiply it by amount of connections.
4058
- * - @param currentStyle for eg current node radius (if its a circural node), so you want to eg apply a holor like a heatmap by amount of connections.
4059
- * @param entity - The entity for which to get the node style.
4060
- * @param originStyle - The original style (the one passed to node during it's initialization). See '@antv/graphin' -> NodeStyle
4061
- * @param currentStyle - The current style. See '@antv/graphin' -> NodeStyle
4062
- * @returns A promise that resolves to the style patch. See '@antv/graphin' -> NodeStyle
4063
- */
4064
- getG6NodeStyle?: (entity: Entity, originStyle: TODO, currentStyle: TODO) => Promise<TODO>;
4065
- /**
4066
- * Use this function to modify style of a edge from outside the graph.
4067
- * You can overwrite the style, but DO NOT merge currentStyle or originStyle when returning new styling (or rather styling patch).
4068
- * This can lead do recursive clone error later on.
4069
- * Merging with actual style will be handled automatically!
4070
- * Use them just as a reference, eg edge width to multiply.
4071
- * @param edge - The edge specification for which to get the edge style.
4072
- * @param originStyle - The original style (the one passed to edge during it's initialization). See '@antv/graphin' -> EdgeStyle
4073
- * @param currentStyle - The current style. See '@antv/graphin' -> EdgeStyle
4074
- * @returns A promise that resolves to the style patch. See '@antv/graphin' -> EdgeStyle
4075
- */
4076
- getG6EdgeStyle?: (edge: EdgeSpec, originStyle: TODO, currentStyle: TODO) => Promise<TODO>;
4077
- };
5092
+ export declare interface SourcePeekEntry {
5093
+ entity_label: string;
5094
+ is_folder: boolean;
5095
+ is_source_entry?: boolean;
5096
+ '#path': string;
5097
+ source_url: string;
5098
+ os_item_content_type?: string | null;
5099
+ os_content_size?: number | null;
5100
+ }
4078
5101
 
4079
5102
  /**
4080
- * @beta
4081
- * Type representing the configuration for a styler.
5103
+ * Response envelope from `GET /api/v1/files/source/list/...`. Lists one
5104
+ * directory level inside a source (zip). `inner_path` is the path that was
5105
+ * listed (`/` for the source root).
4082
5106
  */
4083
- export declare type StylerConfig = StylerOption & {
4084
- /** The name of the styler configuration. */
4085
- name: string;
4086
- /** The description of the styler configuration. */
4087
- description: string;
4088
- /** The initialization function for the styler. */
4089
- init: StylerProducer;
4090
- /** The optional destroy function for the styler. */
4091
- destroy?: () => Promise<void>;
4092
- };
5107
+ export declare interface SourcePeekResponse {
5108
+ folders: SourcePeekEntry[];
5109
+ files: SourcePeekEntry[];
5110
+ total_folders: number;
5111
+ total_files: number;
5112
+ source_entity_id: string;
5113
+ inner_path: string;
5114
+ }
4093
5115
 
4094
5116
  /**
4095
5117
  * @beta
4096
- * Interface representing the context for a styler.
5118
+ * Options for streaming JSON line data from an API.
4097
5119
  */
4098
- export declare interface StylerContext {
4099
- /** The graph specification. */
4100
- graph: GraphSpec;
4101
- /** The selected graph specification. */
4102
- selected: GraphSpec;
4103
- /** The ontology API instance. */
4104
- OntologyAPI: Ontology;
4105
- /** The desktop API instance. */
4106
- DesktopAPI: Desktop;
4107
- /** The event emitter instance. */
4108
- ee: EventEmitterType;
4109
- /** The event topic prefix. */
4110
- eventTopicPrefix: string;
5120
+ export declare interface StreamJsonOptions<T> extends FetchOptions {
4111
5121
  /**
4112
- * @beta
4113
- * Callback function to be called when the task is complete.
4114
- * @param x - The styler instance.
5122
+ * The asynchronous function to process each JSON object.
4115
5123
  */
4116
- onTaskComplete?: (x: Styler) => void;
4117
- /** Callback function to be called when the task is canceled. */
4118
- onTaskCanceled?: () => void;
4119
- /** The task ID associated with the styler. */
4120
- taskID?: string;
5124
+ jsonHandler: (value: T) => Promise<void>;
4121
5125
  }
4122
5126
 
4123
5127
  /**
4124
5128
  * @beta
4125
- * Type representing a styler definition, which can be one of several specific types.
4126
- */
4127
- export declare type StylerDefinition = JavascriptFileStylerDefinition | JavascriptInlineStylerDefinition;
4128
-
4129
- /**
4130
- * @beta
4131
- * Type representing a collection of styler definitions.
5129
+ * Options for streaming text data from an API.
4132
5130
  */
4133
- export declare type StylerDefinitions = Record<string, StylerDefinition>;
5131
+ export declare interface StreamTextOptions extends FetchOptions {
5132
+ /**
5133
+ * The asynchronous function to process each line of text.
5134
+ */
5135
+ handler: (line: string) => Promise<void>;
5136
+ }
4134
5137
 
4135
- /**
4136
- * @beta
4137
- * Type representing an option for a styler.
4138
- */
4139
- export declare type StylerOption = {
4140
- /** The name of the styler option. */
4141
- name: string;
4142
- /** The description of the styler option. */
4143
- description: string;
4144
- };
5138
+ export declare type SubscribeDragStartFn = (id: string, callback: Callback<unknown>) => void;
4145
5139
 
4146
5140
  /**
4147
5141
  * @beta
4148
- * Type representing a function that produces a styler.
4149
- * @param context - The context for the styler.
4150
- * @returns A promise that resolves to the styler.
5142
+ * Options for {@link Ontology.subscribe}.
4151
5143
  */
4152
- export declare type StylerProducer = (context: StylerContext) => Promise<Styler>;
4153
-
4154
- export declare type SubscribeDragStartFn = (id: string, callback: Callback<unknown>) => void;
5144
+ export declare interface SubscribeOptions {
5145
+ /** Skip notices that are not content changes: processing status, the `#active` flag and entity reads. */
5146
+ contentOnly?: boolean;
5147
+ }
4155
5148
 
4156
5149
  export declare type SubscribeToContextFn = (id: string, callback: Callback<unknown>) => void;
4157
5150
 
@@ -4255,10 +5248,10 @@ export declare type TemplateMetadata = {
4255
5248
  style?: ReactCssProperties;
4256
5249
  /** Whether the template renders multiple records. */
4257
5250
  rendersMultipleRecords?: boolean;
4258
- /** Whether the template is an app. */
4259
- isApp?: boolean;
4260
5251
  /** details for semantic bindings. These can be app-specific */
4261
5252
  bindings?: SemanticBinding[];
5253
+ /** Optional CSS injected when the template renders. */
5254
+ css_content?: string;
4262
5255
  };
4263
5256
 
4264
5257
  /**
@@ -4273,7 +5266,30 @@ export declare type TemplateType = 'nunjucks' | 'javascript';
4273
5266
  */
4274
5267
  export declare type TemplateVariant = 'antd';
4275
5268
 
4276
- declare type TODO = any;
5269
+ /**
5270
+ * Test-connection body. All fields optional: an empty body tests the SAVED
5271
+ * mount config. The override fields let an admin dry-run UNSAVED form edits
5272
+ * before persisting them (octostar-api #785) — their shapes mirror the
5273
+ * corresponding {@link MountCreate} / {@link MountUpdate} fields.
5274
+ */
5275
+ export declare interface TestConnectionRequest {
5276
+ credentials_override?: PerUserCredentialInput;
5277
+ host?: string;
5278
+ port?: number | null;
5279
+ share?: string;
5280
+ base_path?: string;
5281
+ scheme?: MountScheme;
5282
+ credential_mode?: CredentialMode;
5283
+ }
5284
+
5285
+ export declare interface TestConnectionResponse {
5286
+ outcome: TestOutcome;
5287
+ latency_ms?: number | null;
5288
+ details?: string | null;
5289
+ }
5290
+
5291
+ /** Closed set of test-connection outcomes from the SMB handler. */
5292
+ export declare type TestOutcome = 'ok' | 'auth_failed' | 'network_error' | 'permission_denied' | 'not_found';
4277
5293
 
4278
5294
  /**
4279
5295
  * @beta
@@ -4350,6 +5366,41 @@ export declare interface UnzipOptions {
4350
5366
  extract_to_new_folder?: boolean;
4351
5367
  }
4352
5368
 
5369
+ /**
5370
+ * Error thrown by `FilesAPIClient.uploadFromUrl` when the API returns a
5371
+ * non-2xx response. Carries the parsed `{ detail.error_code, detail.message }`
5372
+ * envelope (exposed on this object as `code`/`detailMessage`) so callers can
5373
+ * render code-specific messages without re-parsing.
5374
+ */
5375
+ export declare interface UploadFromUrlError extends Error {
5376
+ status: number;
5377
+ code?: UploadFromUrlErrorCode | string;
5378
+ detailMessage?: string;
5379
+ }
5380
+
5381
+ /**
5382
+ * Structured error code returned by /api/v2/files/upload-from-url when the
5383
+ * server-side fetch fails. The string is opaque to the API client; UI code is
5384
+ * expected to map it to a user-friendly message.
5385
+ */
5386
+ export declare type UploadFromUrlErrorCode = 'INVALID_URL' | 'SSRF_BLOCKED' | 'UPSTREAM_TIMEOUT' | 'BODY_TOO_LARGE' | 'UPSTREAM_ERROR' | 'NAME_CONFLICT';
5387
+
5388
+ export declare interface UploadFromUrlRequest {
5389
+ url: string;
5390
+ filename?: string;
5391
+ os_parent_folder: string;
5392
+ content_type?: string;
5393
+ overwrite?: boolean;
5394
+ }
5395
+
5396
+ export declare interface UploadFromUrlResponse {
5397
+ entity_id: string;
5398
+ filename: string;
5399
+ content_type: string;
5400
+ byte_count: number;
5401
+ os_parent_folder: string;
5402
+ }
5403
+
4353
5404
  export declare interface UploadOptions {
4354
5405
  content_type: string;
4355
5406
  ttl_minutes?: number;
@@ -4376,6 +5427,13 @@ export declare type UserProfile = {
4376
5427
  */
4377
5428
  export declare type uuid = string;
4378
5429
 
5430
+ /**
5431
+ * Entries of the general family that mark a kNN vector (one per detected face,
5432
+ * one per image) rather than name what the image shows. The pipeline keeps
5433
+ * them out of the label arrays; a reader of the legacy entries drops them too.
5434
+ */
5435
+ export declare const VECTOR_SENTINEL_LABELS: readonly string[];
5436
+
4379
5437
  declare type VectorKey = `vector_${string}_${number}_${string}`;
4380
5438
 
4381
5439
  /**
@@ -4386,49 +5444,6 @@ export declare type VirtualEntity = Entity & {
4386
5444
  '#virtual': true;
4387
5445
  };
4388
5446
 
4389
- export declare type Watcher = {
4390
- /**
4391
- * Application ID.
4392
- */
4393
- app_id: string;
4394
- /**
4395
- * Application name.
4396
- */
4397
- app_name: string;
4398
- /**
4399
- * Watcher name.
4400
- */
4401
- watcher_name: string;
4402
- /**
4403
- * Constants for the watcher.
4404
- */
4405
- const: [key: string, value: any][];
4406
- /**
4407
- * Description of the watcher.
4408
- */
4409
- description: string;
4410
- /**
4411
- * File associated with the watcher.
4412
- */
4413
- file: string;
4414
- /**
4415
- * Interval for the watcher.
4416
- */
4417
- interval: string;
4418
- /**
4419
- * Name of the watcher.
4420
- */
4421
- name: string;
4422
- /**
4423
- * Parameters for the watcher.
4424
- */
4425
- params: [key: string, value: any][];
4426
- /**
4427
- * Semantically bound items.
4428
- */
4429
- semantically_bound: string[];
4430
- };
4431
-
4432
5447
  /**
4433
5448
  * Represents information about the current user.
4434
5449
  * @beta
@@ -4450,6 +5465,7 @@ export declare type Whoami = {
4450
5465
  * Username of the user.
4451
5466
  */
4452
5467
  username: string;
5468
+ roles?: string[];
4453
5469
  /**
4454
5470
  * Roles of the user.
4455
5471
  */
@@ -4500,26 +5516,6 @@ export declare type WithProgressBarOptions = {
4500
5516
  persistUntilComplete?: boolean;
4501
5517
  };
4502
5518
 
4503
- /**
4504
- * @beta
4505
- * Type representing a workspace.
4506
- */
4507
- export declare type Workspace = {
4508
- /** The workspace item. */
4509
- workspace: WorkspaceItem;
4510
- /** The items in the workspace. */
4511
- items: WorkspaceItems;
4512
- /** Optional records in the workspace. */
4513
- workspace_records?: WorkspaceRecords;
4514
- /** Optional tags in the workspace. */
4515
- tags?: TagInfo[];
4516
- /** Optional permission for the workspace. */
4517
- permission?: WorkspacePermission;
4518
- /** Whether the workspace is active. */
4519
- isActive?: boolean;
4520
- os_flags?: number;
4521
- };
4522
-
4523
5519
  /**
4524
5520
  * @beta
4525
5521
  * Interface representing a workspace change emitter.
@@ -4531,7 +5527,7 @@ export declare interface WorkspaceChangeEmitter {
4531
5527
  * @param callback - The callback to invoke on changes.
4532
5528
  * @returns A promise that resolves to an unsubscribe function.
4533
5529
  */
4534
- onWorkspaceChanged: (ws: WorkspaceIdentifier, callback: Callback<Workspace>) => Promise<Unsubscribe>;
5530
+ onWorkspaceChanged: (ws: WorkspaceIdentifier, callback: Callback<WorkspaceItem>) => Promise<Unsubscribe>;
4535
5531
  /**
4536
5532
  * Subscribes to changes for a given workspace item.
4537
5533
  * @param item - The workspace item identifier.
@@ -4544,7 +5540,7 @@ export declare interface WorkspaceChangeEmitter {
4544
5540
  * @param callback - The callback to invoke with the current open workspaces.
4545
5541
  * @returns A promise that resolves to an unsubscribe function.
4546
5542
  */
4547
- onOpenWorkspacesChanged: AddListener<Workspace[]>;
5543
+ onOpenWorkspacesChanged: AddListener<WorkspaceItem[]>;
4548
5544
  }
4549
5545
 
4550
5546
  /**
@@ -4565,9 +5561,14 @@ export declare type WorkspaceConfig = Partial<{
4565
5561
  */
4566
5562
  color: string;
4567
5563
  /**
4568
- * ID of the workspace.
5564
+ * ID of the workspace. The server accepts only the caller's own personal
5565
+ * workspace id; omit it and the server mints the id.
4569
5566
  */
4570
5567
  entity_id?: string;
5568
+ /**
5569
+ * Ontology concept to create. Defaults to 'os_workspace'.
5570
+ */
5571
+ entity_type?: string;
4571
5572
  /**
4572
5573
  * Whether to create the workspace quietly, without opening it.
4573
5574
  */
@@ -4626,6 +5627,41 @@ export declare type WorkspaceItem<T = any> = WorkspaceRecord & {
4626
5627
  * Whether the item has an attachment file content.
4627
5628
  */
4628
5629
  os_has_attachment?: boolean;
5630
+ /**
5631
+ * The source entity uid of the item.
5632
+ */
5633
+ source_entity_uid?: string;
5634
+ /**
5635
+ * The fragment keyframe number of the item.
5636
+ */
5637
+ fragment_keyframe_number?: number;
5638
+ /**
5639
+ * The source entity type of the item.
5640
+ */
5641
+ source_entity_type?: string;
5642
+ /**
5643
+ * The fragment page number of the item.
5644
+ */
5645
+ fragment_page_number?: number;
5646
+ /**
5647
+ * The fragment start: seconds for audio/video collections, a page for
5648
+ * `document_*`, a row for `table_*`. Numbers from the pipeline, strings in
5649
+ * older indexes — resolve through `resolveFragmentLocator`.
5650
+ */
5651
+ fragment_start?: string | number;
5652
+ /**
5653
+ * The fragment end, in the same unit as `fragment_start`.
5654
+ */
5655
+ fragment_end?: string | number;
5656
+ /**
5657
+ * Content type of the original file a fragment chain starts from, not of
5658
+ * the direct parent. Missing on fragments indexed before the API wrote it.
5659
+ */
5660
+ parent_os_item_content_type?: string;
5661
+ /**
5662
+ * The fragment index of the item.
5663
+ */
5664
+ fragment_index?: number;
4629
5665
  /**
4630
5666
  * Optional path from the os_parent_folder or os_workspace to the item.
4631
5667
  * Does not include the item name.
@@ -4641,6 +5677,20 @@ export declare type WorkspaceItem<T = any> = WorkspaceRecord & {
4641
5677
  * Whether the item is readonly or not.
4642
5678
  */
4643
5679
  os_readonly?: boolean;
5680
+ /**
5681
+ * For source-backed files: the `osfs://` URI pointing INTO a parent source
5682
+ * (e.g. a zip). When set, the file's bytes live inside another entity
5683
+ * rather than directly in S3. Streaming GET on `/files/attachments` knows
5684
+ * how to resolve this transparently.
5685
+ */
5686
+ os_source_url?: string;
5687
+ /**
5688
+ * Set by the backend stat path to indicate the file is a peekable source
5689
+ * (zip, ufdr, jar, apk, ipa, epub, …). The UI uses this to decide whether
5690
+ * to surface "Browse contents" and related affordances rather than
5691
+ * re-deriving from content_type + filename extension.
5692
+ */
5693
+ is_peekable_source?: boolean;
4644
5694
  };
4645
5695
 
4646
5696
  /**
@@ -4726,25 +5776,6 @@ export declare type WorkspaceItemModel = {
4726
5776
  * Indicates if the item is in rename mode.
4727
5777
  */
4728
5778
  rename?: boolean;
4729
- /**
4730
- * A filter applied to concepts.
4731
- */
4732
- query?: ConceptFilter;
4733
- /**
4734
- * Function to get the count of entities.
4735
- * @returns A promise that resolves to the number of entities.
4736
- */
4737
- getEntitiesCount?: () => Promise<number>;
4738
- /**
4739
- * Function to get the entities.
4740
- * @param limit - The maximum number of entities to retrieve.
4741
- * @returns A promise that resolves to an array of entities.
4742
- */
4743
- getEntities?: (limit?: number) => Promise<Entity[]>;
4744
- /**
4745
- * Determines if the count is shown only when the item is closed.
4746
- */
4747
- showCountOnlyWhenClosed?: boolean;
4748
5779
  /**
4749
5780
  * The initial state of the item.
4750
5781
  */
@@ -4753,10 +5784,6 @@ export declare type WorkspaceItemModel = {
4753
5784
  * Indicates if the item should be highlighted.
4754
5785
  */
4755
5786
  highlight?: boolean;
4756
- /**
4757
- * Indicates if the item is in draft mode.
4758
- */
4759
- draft?: boolean;
4760
5787
  /**
4761
5788
  * Indicates if the item is auto open
4762
5789
  */
@@ -4780,12 +5807,6 @@ export declare type WorkspaceItemModel = {
4780
5807
  os_item_type: string;
4781
5808
  };
4782
5809
 
4783
- /**
4784
- * Represents an array of workspace items.
4785
- * @beta
4786
- */
4787
- export declare type WorkspaceItems = WorkspaceItem[];
4788
-
4789
5810
  /**
4790
5811
  * Properties for workspace item title.
4791
5812
  * @beta
@@ -4798,9 +5819,7 @@ export declare type WorkspaceItemTitleProps = DesktopActionContext & {
4798
5819
  /**
4799
5820
  * Menu options with extra action items.
4800
5821
  */
4801
- menuOptions?: ContextMenuOptions & {
4802
- extraActionItems?: DesktopActionMenuItem[];
4803
- };
5822
+ menuOptions?: ContextMenuOptions;
4804
5823
  /**
4805
5824
  * Whether the item is expanded.
4806
5825
  */
@@ -4868,27 +5887,6 @@ export declare interface WorkspaceRecordIdentifier {
4868
5887
  os_workspace: string;
4869
5888
  }
4870
5889
 
4871
- /**
4872
- * @beta
4873
- * Type representing information about records in a workspace.
4874
- */
4875
- export declare type WorkspaceRecordInfo = {
4876
- /** The concept associated with the records. */
4877
- concept: string;
4878
- /** The count of records. */
4879
- count: number;
4880
- /** The last updated timestamp for the records. */
4881
- max_last_updated: string;
4882
- /** The entities associated with the records. */
4883
- entities: Entity[];
4884
- };
4885
-
4886
- /**
4887
- * @beta
4888
- * Type representing a collection of workspace records.
4889
- */
4890
- export declare type WorkspaceRecords = Record<string, WorkspaceRecordInfo>;
4891
-
4892
5890
  /**
4893
5891
  * @beta
4894
5892
  * Type representing a workspace record with its relationships.
@@ -4906,7 +5904,7 @@ export declare type WorkspaceRecordWithRelationships = {
4906
5904
  * Represents a relationship between workspace items.
4907
5905
  * @beta
4908
5906
  */
4909
- export declare type WorkspaceRelationship = WorkspaceItemBase & OsAuditFields & {
5907
+ export declare type WorkspaceRelationship = WorkspaceItemBase & Entity & OsAuditFields & {
4910
5908
  /**
4911
5909
  * Unique identifier for the source entity in the relationship.
4912
5910
  */
@@ -4927,6 +5925,10 @@ export declare type WorkspaceRelationship = WorkspaceItemBase & OsAuditFields &
4927
5925
  * Name of the relationship.
4928
5926
  */
4929
5927
  os_relationship_name: string;
5928
+ /**
5929
+ * Inverse name of the relationship.
5930
+ */
5931
+ os_relationship_inverse_name?: string;
4930
5932
  };
4931
5933
 
4932
5934
  /**