@octostar/platform-types 0.5.37 → 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 (466) 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 +380 -204
  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 +199 -122
  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 -38
  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 +1692 -663
  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/JavascriptFileStylerDefinition.html +0 -2
  442. package/dist/docs/types/JavascriptInlineStylerDefinition.html +0 -2
  443. package/dist/docs/types/PasteContextOptions.html +0 -8
  444. package/dist/docs/types/RecordFetchOptions.html +0 -1
  445. package/dist/docs/types/SearchFilter.html +0 -2
  446. package/dist/docs/types/Styler.html +0 -19
  447. package/dist/docs/types/StylerConfig.html +0 -6
  448. package/dist/docs/types/StylerDefinition.html +0 -2
  449. package/dist/docs/types/StylerDefinitions.html +0 -2
  450. package/dist/docs/types/StylerOption.html +0 -4
  451. package/dist/docs/types/StylerProducer.html +0 -4
  452. package/dist/docs/types/Watcher.html +0 -11
  453. package/dist/docs/types/Workspace.html +0 -8
  454. package/dist/docs/types/WorkspaceItems.html +0 -2
  455. package/dist/docs/types/WorkspaceRecordInfo.html +0 -6
  456. package/dist/docs/types/WorkspaceRecords.html +0 -2
  457. package/dist/docs/variables/SAVED_SEARCH_MESSAGE_TYPES.html +0 -1
  458. package/dist/docs/variables/SAVED_SEARCH_PREFIX.html +0 -1
  459. package/dist/savedSearch.d.ts +0 -128
  460. package/dist/savedSearch.d.ts.map +0 -1
  461. package/dist/savedSearch.js +0 -16
  462. package/dist/savedSearch.js.map +0 -1
  463. package/dist/styling.d.ts +0 -100
  464. package/dist/styling.d.ts.map +0 -1
  465. package/dist/styling.js +0 -2
  466. 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
  /**
@@ -922,6 +990,11 @@ export declare interface Desktop extends DesktopSettings, WorkspaceChangeEmitter
922
990
  * Fetches an entity from the index, or from the ontology if not found in the index.
923
991
  */
924
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>;
925
998
  /**
926
999
  * Extracts entities from some text which may be json or a list of urls.
927
1000
  */
@@ -930,14 +1003,87 @@ export declare interface Desktop extends DesktopSettings, WorkspaceChangeEmitter
930
1003
  * Gets a file tree for a workspace or folder with optional file tree options.
931
1004
  */
932
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[]>;
933
1010
  /**
934
1011
  * Show the search modal and return the selected results.
935
1012
  */
936
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>;
937
1020
  /**
938
1021
  * Opens records with default action or as specified in the optional desktop action options.
939
1022
  */
940
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>;
941
1087
  /**
942
1088
  * Deletes an item or items recursively.
943
1089
  */
@@ -950,6 +1096,12 @@ export declare interface Desktop extends DesktopSettings, WorkspaceChangeEmitter
950
1096
  * Deletes local concept records in a workspace by base concept.
951
1097
  */
952
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>;
953
1105
  /**
954
1106
  * Searches the index using the query string
955
1107
  * @param query OpenSearch qeuery string.
@@ -968,7 +1120,7 @@ export declare interface Desktop extends DesktopSettings, WorkspaceChangeEmitter
968
1120
  /**
969
1121
  * Renames a tab by its id.
970
1122
  */
971
- renameTab: (tabId: string, newName: string) => Promise<void>;
1123
+ renameTab: (props: RenameTabProps) => Promise<void>;
972
1124
  /**
973
1125
  * Closes a tab with given properties.
974
1126
  */
@@ -997,10 +1149,17 @@ export declare interface Desktop extends DesktopSettings, WorkspaceChangeEmitter
997
1149
  * Gets a system setting.
998
1150
  */
999
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[]>;
1000
1159
  /**
1001
1160
  * Wraps a promise with a progress bar.
1002
1161
  */
1003
- withProgressBar: <T>(promise: Promise<T>, options?: WithProgressBarOptions) => Promise<T>;
1162
+ withProgressBar: <T>(promise: Promise<T>, options?: WithProgressBarOptions) => Promise<T | undefined>;
1004
1163
  /**
1005
1164
  * Shows a confirmation modal.
1006
1165
  */
@@ -1009,6 +1168,13 @@ export declare interface Desktop extends DesktopSettings, WorkspaceChangeEmitter
1009
1168
  * Shows a file upload dialog.
1010
1169
  */
1011
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>;
1012
1178
  /**
1013
1179
  * Shows a form for creating an entity.
1014
1180
  */
@@ -1021,10 +1187,6 @@ export declare interface Desktop extends DesktopSettings, WorkspaceChangeEmitter
1021
1187
  * Shows a modal for saving as.
1022
1188
  */
1023
1189
  showSaveAsModal: (props: SaveAsModalProps) => Promise<WorkspaceItem | undefined>;
1024
- /**
1025
- * @deprecated This method is deprecated and will be removed in a future version. Use {@link createSetsFromItems} or {@link expandSet} instead.
1026
- */
1027
- getPasteContext: (options: PasteContextOptions) => Promise<Entity[]>;
1028
1190
  /**
1029
1191
  * Expands a set with optional options.
1030
1192
  */
@@ -1049,14 +1211,6 @@ export declare interface Desktop extends DesktopSettings, WorkspaceChangeEmitter
1049
1211
  * Adds a comment to an entity.
1050
1212
  */
1051
1213
  addComment: (about: Entity, comment: AddCommentParams) => Promise<Entity>;
1052
- /**
1053
- * Adds a watch intent to an entity.
1054
- */
1055
- addWatchIntent: (entity: Entity, watcher: Watcher) => Promise<Entity>;
1056
- /**
1057
- * Removes a watch intent by workspace and intent ID.
1058
- */
1059
- removeWatchIntent: (os_workspace: string, intent_id: string) => Promise<void>;
1060
1214
  /**
1061
1215
  * Gets workspace permissions by IDs.
1062
1216
  */
@@ -1070,9 +1224,9 @@ export declare interface Desktop extends DesktopSettings, WorkspaceChangeEmitter
1070
1224
  */
1071
1225
  deployApp: (app: WorkspaceItem | App, initialSecrets?: Record<string, string>) => Promise<WorkspaceItem>;
1072
1226
  /**
1073
- * Undeploys an application.
1227
+ * Undeploys an application. `appId` is the k8s app id; without it the id is looked up from the apps API.
1074
1228
  */
1075
- undeployApp: (app: WorkspaceItem | App) => Promise<WorkspaceItem>;
1229
+ undeployApp: (app: WorkspaceItem | App, appId?: string) => Promise<WorkspaceItem>;
1076
1230
  /**
1077
1231
  * Gets information about the current user.
1078
1232
  */
@@ -1094,13 +1248,25 @@ export declare interface Desktop extends DesktopSettings, WorkspaceChangeEmitter
1094
1248
  */
1095
1249
  removeFromFocusList: (entities: Entity[], type?: 'single' | 'group', tabName?: string) => Promise<FocusListItem[]>;
1096
1250
  /**
1097
- * 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.
1098
1255
  */
1099
- getImageUrl: (entity: EntityBase) => Promise<string>;
1256
+ getImageUrl: (entity: EntityBase, options?: {
1257
+ maxWidth?: number;
1258
+ }) => Promise<string>;
1100
1259
  /**
1101
1260
  * Gets images for an entity.
1102
1261
  */
1103
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
+ }[]>;
1104
1270
  /**
1105
1271
  * Gets icon code for an entity, concept, or string.
1106
1272
  */
@@ -1124,10 +1290,6 @@ export declare interface Desktop extends DesktopSettings, WorkspaceChangeEmitter
1124
1290
  * Get config files
1125
1291
  */
1126
1292
  getConfigFiles: (name: string) => Promise<WorkspaceItem[]>;
1127
- /**
1128
- * "Cache" for workspaces, avoiding to return a modal error, if this workspace was fetched before
1129
- */
1130
- workspaceStore: Record<string, Workspace>;
1131
1293
  getWhitelabelingInfo: () => Promise<{
1132
1294
  OCTOSTAR_MAIN_LOGO: string;
1133
1295
  OCTOSTAR_FAVICON: string;
@@ -1179,6 +1341,10 @@ export declare type DesktopActionMenuItem = {
1179
1341
  * Key for the menu item.
1180
1342
  */
1181
1343
  key: string;
1344
+ /**
1345
+ * Test id for the rendered menu item. Defaults to `menuitem-<key>`.
1346
+ */
1347
+ testId?: string;
1182
1348
  /**
1183
1349
  * Icon for the menu item.
1184
1350
  */
@@ -1211,6 +1377,12 @@ export declare type DesktopActionMenuItem = {
1211
1377
  * Filter for accepting the menu item.
1212
1378
  */
1213
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;
1214
1386
  /**
1215
1387
  * Function to invoke the action.
1216
1388
  */
@@ -1288,6 +1460,23 @@ export declare type DesktopActionOptions = {
1288
1460
  * Open tab in a new tabset
1289
1461
  */
1290
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;
1291
1480
  /**
1292
1481
  * Wait for the tab to open
1293
1482
  */
@@ -1296,6 +1485,15 @@ export declare type DesktopActionOptions = {
1296
1485
  * Custom name of the tab.
1297
1486
  */
1298
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;
1299
1497
  };
1300
1498
 
1301
1499
  /**
@@ -1337,21 +1535,6 @@ export declare interface DesktopSettings {
1337
1535
  getDeveloperSettings: () => Promise<DeveloperSettings>;
1338
1536
  }
1339
1537
 
1340
- /**
1341
- * Context for desktop styler.
1342
- * @beta
1343
- */
1344
- export declare type DesktopStylerContext = {
1345
- /**
1346
- * Graph specification.
1347
- */
1348
- graph: GraphSpec;
1349
- /**
1350
- * Selected graph specification.
1351
- */
1352
- selected?: GraphSpec;
1353
- };
1354
-
1355
1538
  /**
1356
1539
  * Developer settings exposed to micro-frontends.
1357
1540
  * @beta
@@ -1361,10 +1544,6 @@ export declare interface DeveloperSettings {
1361
1544
  * Override URL for the API server.
1362
1545
  */
1363
1546
  octostarAPIServer?: string;
1364
- /**
1365
- * Override URL for the search app.
1366
- */
1367
- searchAppUrl?: string;
1368
1547
  }
1369
1548
 
1370
1549
  export declare interface DownloadOptions {
@@ -1373,17 +1552,6 @@ export declare interface DownloadOptions {
1373
1552
  redirect?: boolean;
1374
1553
  }
1375
1554
 
1376
- /**
1377
- * Represents a draft workspace item.
1378
- * @beta
1379
- */
1380
- export declare type DraftWorkspaceItem = WorkspaceItem & {
1381
- /**
1382
- * Indicates if the item is a draft. The attribute is not saved in persistence.
1383
- */
1384
- os_draft_item: true;
1385
- };
1386
-
1387
1555
  /**
1388
1556
  * Parameters for drag end.
1389
1557
  * @beta
@@ -1545,6 +1713,17 @@ export declare type EntityPasteContext = {
1545
1713
  fetch: (limit?: number) => Promise<Entity[]>;
1546
1714
  };
1547
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
+
1548
1727
  export declare interface EntityUiState {
1549
1728
  rename?: boolean;
1550
1729
  [key: string]: any;
@@ -1775,7 +1954,10 @@ export declare interface FilesAPIClient {
1775
1954
  * @param item - The file item to create
1776
1955
  * @returns The created entity
1777
1956
  */
1778
- 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>;
1779
1961
  /**
1780
1962
  * Get a download URL for a file
1781
1963
  *
@@ -1806,6 +1988,41 @@ export declare interface FilesAPIClient {
1806
1988
  * @returns The upload URL and fields
1807
1989
  */
1808
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>;
1809
2026
  }
1810
2027
 
1811
2028
  /**
@@ -1835,28 +2052,6 @@ export declare type FileTreeOptions = {
1835
2052
  structure?: boolean;
1836
2053
  };
1837
2054
 
1838
- export declare type Filter = {
1839
- cascadeParentIds: string[];
1840
- defaultDataMask: DataMask;
1841
- id: string;
1842
- name: string;
1843
- scope: NativeFilterScope;
1844
- filterType: string;
1845
- targets: [Partial<NativeFilterTarget>];
1846
- controlValues: Record<string, any>;
1847
- sortMetric?: string | null;
1848
- adhoc_filters?: Record<any, any>[];
1849
- granularity_sqla?: string;
1850
- granularity?: string;
1851
- time_grain_sqla?: string;
1852
- time_range?: string;
1853
- requiredFirst?: boolean;
1854
- tabsInScope?: string[];
1855
- chartsInScope?: number[];
1856
- type: 'NATIVE_FILTER';
1857
- description: string;
1858
- };
1859
-
1860
2055
  /**
1861
2056
  * @beta
1862
2057
  * Type representing a filter definition, which can be one of several specific filter types.
@@ -1891,11 +2086,6 @@ export declare type FilterReference = string | {
1891
2086
  ['require_all']: FilterReference[];
1892
2087
  };
1893
2088
 
1894
- export declare type FilterState = {
1895
- value?: any;
1896
- [key: string]: any;
1897
- };
1898
-
1899
2089
  /**
1900
2090
  * Type for filter values.
1901
2091
  * @beta
@@ -1921,29 +2111,99 @@ export declare type FocusListItem = {
1921
2111
  } | NamedEntityGroup;
1922
2112
 
1923
2113
  /**
1924
- * Options for pasting folders.
2114
+ * Metadata fields extracted from a fragment entity.
1925
2115
  * @beta
1926
2116
  */
1927
- export declare type FolderPasteOptions = {
1928
- /**
1929
- * Whether to include folders in the paste.
1930
- */
1931
- folders?: boolean;
1932
- /**
1933
- * Whether to include files in the paste.
1934
- */
1935
- files?: boolean;
1936
- /**
1937
- * Whether to paste recursively.
1938
- */
1939
- 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;
1940
2175
  };
1941
2176
 
1942
- declare enum GenericDataType {
1943
- NUMERIC = 0,
1944
- STRING = 1,
1945
- TEMPORAL = 2,
1946
- 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;
1947
2207
  }
1948
2208
 
1949
2209
  /**
@@ -1971,6 +2231,12 @@ export declare type GetSystemSettingResponse<T extends string | boolean = string
1971
2231
  security: boolean;
1972
2232
  type: string;
1973
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;
1974
2240
  };
1975
2241
 
1976
2242
  export declare type GraphDataSpec = {
@@ -1991,6 +2257,28 @@ export declare type GraphSpec = {
1991
2257
  edges: EdgeSpec[];
1992
2258
  };
1993
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
+
1994
2282
  /**
1995
2283
  * @beta
1996
2284
  * Type representing an HTTP transform definition.
@@ -2105,6 +2393,13 @@ export declare type IframeTransformDefinition = {
2105
2393
  tab_name?: string;
2106
2394
  };
2107
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
+
2108
2403
  /**
2109
2404
  * Represents information about an image.
2110
2405
  * @beta
@@ -2125,29 +2420,139 @@ export declare type ImageInfo = {
2125
2420
  };
2126
2421
 
2127
2422
  /**
2128
- * Options for importing folders/files from a ZIP file.
2129
- * @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.
2130
2427
  */
2131
- export declare type ImportFoldersOptions = {
2132
- /**
2133
- * Target folder or workspace for the import.
2134
- */
2135
- target: string;
2136
- /**
2137
- * Whether to overwrite existing items.
2138
- */
2139
- overwrite?: boolean;
2140
- /**
2141
- * Whether to include content in the import.
2142
- */
2143
- include_content?: boolean;
2144
- };
2428
+ export declare function imageLabelCandidateAggs(fields: ImageLabelFamilyFields, { size, include, exclude }: ImageLabelCandidateOptions): Record<string, unknown>;
2145
2429
 
2146
- export declare interface IndexSearchHitSource {
2147
- annotations?: {
2148
- data?: string;
2149
- crossFilters?: string;
2150
- 'extract:metadata'?: string;
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';
2505
+
2506
+ /**
2507
+ * Options for importing folders/files from a ZIP file.
2508
+ * @beta
2509
+ */
2510
+ export declare type ImportFoldersOptions = {
2511
+ /**
2512
+ * Target folder or workspace for the import.
2513
+ */
2514
+ target: string;
2515
+ /**
2516
+ * Whether to overwrite existing items.
2517
+ */
2518
+ overwrite?: boolean;
2519
+ /**
2520
+ * Whether to include content in the import.
2521
+ */
2522
+ include_content?: boolean;
2523
+ };
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
+
2551
+ export declare interface IndexSearchHitSource {
2552
+ annotations?: {
2553
+ data?: string;
2554
+ crossFilters?: string;
2555
+ 'extract:metadata'?: string;
2151
2556
  'extract:src'?: string;
2152
2557
  'extract:txt'?: string;
2153
2558
  'extract:txtLang'?: string;
@@ -2168,6 +2573,19 @@ export declare interface IndexSearchHitSource {
2168
2573
  'image:annotations-setting'?: {
2169
2574
  label?: string;
2170
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
+ };
2171
2589
  'ner:entities'?: {
2172
2590
  person?: string[];
2173
2591
  org?: string[];
@@ -2179,6 +2597,11 @@ export declare interface IndexSearchHitSource {
2179
2597
  email?: string[];
2180
2598
  ip_address?: string[];
2181
2599
  url?: string[];
2600
+ address?: string[];
2601
+ license_plate?: string[];
2602
+ iban?: string[];
2603
+ credit_card?: string[];
2604
+ crypto?: string[];
2182
2605
  };
2183
2606
  'rag:chunks'?: {
2184
2607
  metadata?: {
@@ -2361,15 +2784,30 @@ export declare type InlineCode = {
2361
2784
  code: string;
2362
2785
  };
2363
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
+
2364
2800
  export declare function isWorkspaceFileItem(item: WorkspaceItem): item is WorkspaceItem & {
2365
2801
  os_has_attachment: true;
2366
2802
  };
2367
2803
 
2368
2804
  /**
2805
+ * True when `entity` is a workspace root.
2369
2806
  * @beta
2370
- * Type representing a JavaScript file styler definition.
2371
2807
  */
2372
- export declare type JavascriptFileStylerDefinition = JavascriptType & FileCode;
2808
+ export declare function isWorkspaceRoot(entity?: EntityBase | WorkspaceRecordIdentifier | {
2809
+ os_item_type?: string;
2810
+ } | null): boolean;
2373
2811
 
2374
2812
  /**
2375
2813
  * @beta
@@ -2388,12 +2826,6 @@ export declare type JavascriptFilterDefinition = {
2388
2826
  code: string;
2389
2827
  };
2390
2828
 
2391
- /**
2392
- * @beta
2393
- * Type representing an inline JavaScript styler definition.
2394
- */
2395
- export declare type JavascriptInlineStylerDefinition = JavascriptType & InlineCode;
2396
-
2397
2829
  /**
2398
2830
  * @beta
2399
2831
  * Type representing an inline JavaScript transform definition.
@@ -2405,7 +2837,7 @@ export declare type JavascriptInlineTransformDefinition = JavascriptType & Inlin
2405
2837
  * Type representing a JavaScript transform definition.
2406
2838
  */
2407
2839
  export declare type JavascriptType = {
2408
- /** The type of the transform or styler, always 'javascript' for this type. */
2840
+ /** The type of the transform, always 'javascript' for this type. */
2409
2841
  type: 'javascript';
2410
2842
  };
2411
2843
 
@@ -2427,13 +2859,15 @@ export declare type JobManifest = {
2427
2859
  /** Optional image for the job. */
2428
2860
  image?: string;
2429
2861
  /** Optional engine for the job. */
2430
- engine?: 'k8s' | 's3' | 'reactlive';
2862
+ engine?: 'k8s' | 's3';
2431
2863
  /** Optional template for the job. */
2432
2864
  template?: string;
2433
2865
  /** Optional variant for the job. */
2434
2866
  variant?: string;
2435
2867
  /** Optional instance type for the job. */
2436
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;
2437
2871
  /** Whether to skip archiving the job. */
2438
2872
  no_archive?: boolean;
2439
2873
  /** Whether to generate a URL from logs. */
@@ -2446,8 +2880,6 @@ export declare type JobManifest = {
2446
2880
  transforms?: TransformDefinitions;
2447
2881
  /** Optional collection of filters for the job. */
2448
2882
  filters?: FilterDefinitions;
2449
- /** Optional collection of stylers for the job. */
2450
- stylers?: StylerDefinitions;
2451
2883
  /** Optional collection of services for the job. */
2452
2884
  services?: ServiceDefinitions;
2453
2885
  secrets?: ManifestSecrets;
@@ -2542,6 +2974,24 @@ export declare type ManifestSecrets = Record<string, {
2542
2974
  required?: boolean;
2543
2975
  }>;
2544
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
+
2545
2995
  export declare type MkdirResponse = WorkspaceItem;
2546
2996
 
2547
2997
  /**
@@ -2566,6 +3016,106 @@ export declare type ModalTemplateProps = CustomTemplateIframeProps & {
2566
3016
  taskID?: string;
2567
3017
  };
2568
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
+
2569
3119
  export declare interface MoveOptions {
2570
3120
  to_path?: string;
2571
3121
  entity_id?: string;
@@ -2601,21 +3151,6 @@ export declare type NamedEntityGroup = {
2601
3151
  type: 'group';
2602
3152
  };
2603
3153
 
2604
- export declare interface NativeFilterColumn {
2605
- name: string;
2606
- displayName?: string;
2607
- }
2608
-
2609
- export declare interface NativeFilterScope {
2610
- rootPath: string[];
2611
- excluded: number[];
2612
- }
2613
-
2614
- export declare interface NativeFilterTarget {
2615
- datasetId: number;
2616
- column: NativeFilterColumn;
2617
- }
2618
-
2619
3154
  /**
2620
3155
  * @beta
2621
3156
  * Type representing a Nunjucks file transform definition. Not yet supported.
@@ -2636,7 +3171,7 @@ export declare type NunjucksInlineTransformDefinition = NunjucksType & {
2636
3171
  * Type representing a Nunjucks transform definition.
2637
3172
  */
2638
3173
  export declare type NunjucksType = {
2639
- /** The type of the transform or styler, always 'nunjucks' for this type. */
3174
+ /** The type of the transform, always 'nunjucks' for this type. */
2640
3175
  type: 'nunjucks';
2641
3176
  };
2642
3177
 
@@ -2658,11 +3193,77 @@ export declare interface Ontology {
2658
3193
  getAvailableOntologies: () => Promise<string[]>;
2659
3194
  /**
2660
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
+ *
2661
3203
  * @param entity - The entity for which to get relationship records.
2662
3204
  * @param rel - The relationship or relationship name.
3205
+ * @param pagination - Optional `{ limit, offset }`. When set, bypasses cache.
2663
3206
  * @returns A promise that resolves to an array of workspace relationships.
2664
3207
  */
2665
- 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[]>>;
2666
3267
  /**
2667
3268
  * Clears the relationship cache for a given entity and relationship.
2668
3269
  * @param entity - The entity for which to clear the cache.
@@ -2676,16 +3277,29 @@ export declare interface Ontology {
2676
3277
  * @param entity - The entity for which to get connected entities.
2677
3278
  * @param relationship - The relationship or relationship name.
2678
3279
  * @param forceRefresh - Whether to force a refresh of the data.
3280
+ * @param inverse - Whether to resolve the relationship in the inverse direction.
2679
3281
  * @returns A promise that resolves to an array of connected entities.
2680
3282
  */
2681
- 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[]>;
2682
3284
  /**
2683
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
+ *
2684
3294
  * @param entity - The entity for which to get connections.
2685
3295
  * @param concept - The concept for which to get connections.
2686
- * @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.
2687
3298
  */
2688
- 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
+ }>;
2689
3303
  /**
2690
3304
  * Gets the concept names.
2691
3305
  * @returns A promise that resolves to an array concept names.
@@ -2733,6 +3347,19 @@ export declare interface Ontology {
2733
3347
  * @returns A promise that resolves to either the actual entity data OR the input entity if not found.
2734
3348
  */
2735
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>;
2736
3363
  /**
2737
3364
  * Gets the name of the ontology.
2738
3365
  * @returns A promise that resolves to the name of the ontology.
@@ -2746,6 +3373,13 @@ export declare interface Ontology {
2746
3373
  * @returns A promise that resolves to the relationship count result.
2747
3374
  */
2748
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[]>;
2749
3383
  /**
2750
3384
  * Gets the concept for a given entity.
2751
3385
  * @param entity - The entity for which to get the concept.
@@ -2775,10 +3409,9 @@ export declare interface Ontology {
2775
3409
  * Sends a query with a typed response.
2776
3410
  * @param query - The query string.
2777
3411
  * @param options - Optional options for sending the query.
2778
- * @param force_refresh - Whether to force a refresh of the data.
2779
3412
  * @returns A promise that resolves to an array of results.
2780
3413
  */
2781
- sendQueryT: <T>(query: string, options?: SendQueryOptions, force_refresh?: boolean) => Promise<T[]>;
3414
+ sendQueryT: <T>(query: string, options?: SendQueryOptions) => Promise<T[]>;
2782
3415
  /**
2783
3416
  * Gets the system inheritance.
2784
3417
  * @returns A promise that resolves to an array of inheritances.
@@ -2805,9 +3438,10 @@ export declare interface Ontology {
2805
3438
  * @param entity - The entity to subscribe to.
2806
3439
  * @param callback - The callback to invoke on changes.
2807
3440
  * @param skipInitialCallback - Whether to skip the initial callback.
3441
+ * @param options - Which notices to receive; by default every notice for the entity.
2808
3442
  * @returns A promise that resolves to an unsubscribe function.
2809
3443
  */
2810
- 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>;
2811
3445
  /**
2812
3446
  * Generates a consistent UUID.
2813
3447
  * @param name - The name for which to generate the UUID.
@@ -2823,6 +3457,29 @@ export declare interface Ontology {
2823
3457
  updateCache: (entities: (Entity & WorkspaceItem)[]) => Promise<(Entity & WorkspaceItem)[]>;
2824
3458
  }
2825
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
+
2826
3483
  /**
2827
3484
  * @beta
2828
3485
  * Type representing tags associated with an ontology.
@@ -2838,6 +3495,46 @@ export declare type OntologyTags = {
2838
3495
  tag_value: string;
2839
3496
  };
2840
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
+
2841
3538
  export declare const ORIGINAL_OS_PARENT_FOLDER = "#original_os_parent_folder";
2842
3539
 
2843
3540
  /**
@@ -3057,6 +3754,26 @@ export declare type OsProgress = {
3057
3754
  * Persist until complete for the progress item.
3058
3755
  */
3059
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;
3060
3777
  };
3061
3778
 
3062
3779
  /**
@@ -3093,42 +3810,30 @@ declare type ParentFolderOption = {
3093
3810
  os_parent_folder: string;
3094
3811
  };
3095
3812
 
3096
- /**
3097
- * Options for pasting context.
3098
- * @beta
3099
- */
3100
- export declare type PasteContextOptions = {
3101
- /**
3102
- * First limit for the context.
3103
- */
3104
- limit1?: number;
3105
- /**
3106
- * Second limit for the context.
3107
- */
3108
- limit2?: number;
3109
- /**
3110
- * Record for the context.
3111
- */
3112
- record?: Entity;
3113
- /**
3114
- * Records for the context.
3115
- */
3116
- records?: Entity[];
3117
- /**
3118
- * Query for the context.
3119
- */
3120
- query?: ConceptFilter;
3121
- /**
3122
- * Whether to return a SavedSet entity when a folder is dropped.
3123
- */
3124
- preferSavedSet?: boolean;
3125
- };
3126
-
3127
3813
  declare type PathOption = {
3128
3814
  path: string;
3129
3815
  os_parent_folder?: never;
3130
3816
  };
3131
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
+
3132
3837
  /**
3133
3838
  * @beta
3134
3839
  * Type representing a permission for a workspace item.
@@ -3144,6 +3849,22 @@ export declare type Permission = WorkspaceItem & {
3144
3849
  os_flags?: number;
3145
3850
  };
3146
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
+
3147
3868
  /**
3148
3869
  * @beta
3149
3870
  * Type representing a point in 2D space.
@@ -3155,6 +3876,44 @@ export declare type Point = {
3155
3876
  y: number;
3156
3877
  };
3157
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
+
3158
3917
  /**
3159
3918
  * Represents the status of a processing operation.
3160
3919
  * @beta
@@ -3169,41 +3928,70 @@ export declare interface ProcessingStatus extends EntityBase {
3169
3928
  * The timeout for the processing operation.
3170
3929
  */
3171
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[];
3172
3982
  }
3173
3983
 
3174
3984
  /**
3175
- * Possible statuses of a NiFi pipeline task.
3985
+ * Processing status codes returned for indexed / pipeline processing state.
3176
3986
  * @beta
3177
3987
  */
3178
3988
  export declare enum ProcessingStatusCode {
3179
- /** Queued and awaiting execution */
3180
- QUEUED = "QUEUED",
3181
- /** Currently running */
3182
3989
  RUNNING = "RUNNING",
3183
- /** Stopped manually */
3184
- STOPPED = "STOPPED",
3185
- /** Paused and can be resumed */
3186
- PAUSED = "PAUSED",
3187
- /** Completed successfully */
3188
3990
  COMPLETED = "COMPLETED",
3189
- /** Encountered a failure */
3190
3991
  FAILED = "FAILED",
3191
- /** Scheduled to run */
3192
- SCHEDULED = "SCHEDULED",
3193
- /** Starting up */
3194
- STARTING = "STARTING",
3195
- /** Shutting down */
3196
- STOPPING = "STOPPING",
3197
- /** Disabled and cannot run */
3198
- DISABLED = "DISABLED",
3199
- /** Invalid configuration */
3200
- INVALID = "INVALID",
3201
- /** Waiting for an external event */
3202
- WAITING = "WAITING",
3203
- /** Retrying after failure */
3204
- RETRYING = "RETRYING",
3205
- /** Status is unknown */
3206
- UNKNOWN = "UNKNOWN"
3992
+ UNKNOWN = "UNKNOWN",
3993
+ CANCELED = "CANCELED",
3994
+ PARTIALLY_COMPLETED = "PARTIALLY_COMPLETED"
3207
3995
  }
3208
3996
 
3209
3997
  /**
@@ -3211,13 +3999,13 @@ export declare enum ProcessingStatusCode {
3211
3999
  */
3212
4000
  export declare type PromptOptions = {
3213
4001
  noThink?: boolean;
3214
- model?: string;
3215
- apiKey?: string;
3216
- stream?: boolean;
3217
- enableRag?: boolean;
3218
- cohereKey?: string;
3219
4002
  temperature?: number;
3220
- /** 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
+ */
3221
4009
  context?: {
3222
4010
  entity_id: string;
3223
4011
  entity_label: string;
@@ -3242,6 +4030,10 @@ export declare interface Property {
3242
4030
  * The type of the property.
3243
4031
  */
3244
4032
  property_type: string;
4033
+ /**
4034
+ * The display label from the ontology schema.
4035
+ */
4036
+ label?: OntologyLabel;
3245
4037
  }
3246
4038
 
3247
4039
  /**
@@ -3278,6 +4070,16 @@ export declare type QueryBatchResult<T> = (QuerySuccessResult<T> | QueryErrorRes
3278
4070
  query_id: string;
3279
4071
  };
3280
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
+
3281
4083
  /**
3282
4084
  * @beta
3283
4085
  * Type representing an error query result.
@@ -3303,6 +4105,35 @@ export declare type QueryExecutor = {
3303
4105
  sendQuery: (query: Query, options?: SendQueryOptions) => Promise<QueryResponse>;
3304
4106
  };
3305
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
+
3306
4137
  /**
3307
4138
  * @beta
3308
4139
  * A union type that represents all possible filter clauses in a query object.
@@ -3322,11 +4153,6 @@ export declare type QueryResponse = any[];
3322
4153
  */
3323
4154
  export declare type QueryResult = ApiResult<any[]>;
3324
4155
 
3325
- declare type QueryResult_2 = {
3326
- language: string;
3327
- query: string;
3328
- };
3329
-
3330
4156
  /**
3331
4157
  * @beta
3332
4158
  * Type representing a successful query result.
@@ -3357,6 +4183,15 @@ export declare type ReactNode = any;
3357
4183
  */
3358
4184
  export declare type ReactRef<T> = RefCallback<T> | RefObject<T> | null;
3359
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
+
3360
4195
  /**
3361
4196
  * Represents a boolean value with an optional reason.
3362
4197
  * @beta
@@ -3368,17 +4203,6 @@ export declare type ReasonedBoolean = {
3368
4203
  reason: string;
3369
4204
  };
3370
4205
 
3371
- export declare interface RecordData extends ChartDataResponseResult {
3372
- data: Record<string, any>[];
3373
- }
3374
-
3375
- export declare type RecordFetchOptions = {
3376
- all_columns: string[];
3377
- order_by_cols: string[];
3378
- row_limit: number;
3379
- server_page_length: number;
3380
- };
3381
-
3382
4206
  /**
3383
4207
  * Interface for providing records.
3384
4208
  * @beta
@@ -3408,6 +4232,19 @@ export declare interface RecordProvider {
3408
4232
  getMessage: () => Promise<string | undefined>;
3409
4233
  }
3410
4234
 
4235
+ /**
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
+
3411
4248
  /**
3412
4249
  * @beta
3413
4250
  * Type representing a React ref callback.
@@ -3424,6 +4261,41 @@ export declare interface RefObject<T> {
3424
4261
  readonly current: T | null;
3425
4262
  }
3426
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
+
3427
4299
  /**
3428
4300
  * Represents a relationship between concepts.
3429
4301
  * @beta
@@ -3445,6 +4317,10 @@ export declare interface Relationship {
3445
4317
  * Name of the relationship.
3446
4318
  */
3447
4319
  relationship_name: string;
4320
+ /**
4321
+ * The display label from the ontology schema.
4322
+ */
4323
+ label?: OntologyLabel;
3448
4324
  /**
3449
4325
  * Inverse name of the relationship.
3450
4326
  */
@@ -3478,13 +4354,13 @@ export declare interface Relationship {
3478
4354
  */
3479
4355
  mapping_json: string;
3480
4356
  /**
3481
- * 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.
3482
4358
  */
3483
4359
  is_inverse: number;
3484
4360
  /**
3485
4361
  * Indicates if the relationship is many-to-many (1 for true, 0 for false).
3486
4362
  */
3487
- is_mtm: number;
4363
+ is_mtm: number | boolean;
3488
4364
  /**
3489
4365
  * Transitivity property of the relationship.
3490
4366
  */
@@ -3503,6 +4379,25 @@ export declare interface Relationship {
3503
4379
  description?: string;
3504
4380
  }
3505
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
+
3506
4401
  /**
3507
4402
  * @beta
3508
4403
  * Type representing the result of a relationship count operation.
@@ -3514,6 +4409,12 @@ export declare type RelationshipCountResult = {
3514
4409
  expired?: boolean;
3515
4410
  };
3516
4411
 
4412
+ /**
4413
+ * @beta
4414
+ * Type representing how complete a relationship count is.
4415
+ */
4416
+ export declare type RelationshipCountState = 'ok' | 'partial' | 'unknown';
4417
+
3517
4418
  export declare type RemoteAppApi = {
3518
4419
  subscribeToContext: SubscribeToContextFn;
3519
4420
  unsubscribeFromContext: UnsubscribeFromContextFn;
@@ -3534,11 +4435,90 @@ export declare type RenameTabProps = {
3534
4435
  newName: string;
3535
4436
  };
3536
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
+
3537
4493
  declare type RootOption = {
3538
4494
  path?: never;
3539
4495
  os_parent_folder?: never;
3540
4496
  };
3541
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
+
3542
4522
  export declare interface S3Headers {
3543
4523
  key: string;
3544
4524
  policy: string;
@@ -3580,45 +4560,9 @@ export declare type SaveAsModalProps = {
3580
4560
  omitFilename?: boolean;
3581
4561
  };
3582
4562
 
3583
- export declare const SAVED_SEARCH_MESSAGE_TYPES: Readonly<{
3584
- getRecordsCount: "octostar:savedSearch:getRecordsCount";
3585
- getRecordsCountQuery: "octostar:savedSearch:getRecordsCountQuery";
3586
- getRecords: "octostar:savedSearch:getRecords";
3587
- getRecordsQuery: "octostar:savedSearch:getRecordsQuery";
3588
- getSavedSearchPasteContext: "octostar:savedSearch:getSavedSearchPasteContext";
3589
- }>;
3590
-
3591
- export declare const SAVED_SEARCH_PREFIX = "octostar:savedSearch:";
3592
-
3593
- export declare interface SavedDatasource {
3594
- uid: string;
3595
- id: number;
3596
- name?: string;
3597
- table_name: string;
3598
- type: string;
3599
- main_dttm_col: string;
3600
- }
3601
-
3602
- export declare interface SavedSearchAPIInterface {
3603
- getRecordsCount: (savedSearchIdn: WorkspaceItemIdentifier<SavedSearchContent>) => Promise<BigNumber | number | null>;
3604
- getRecordsCountQuery: (savedSearchIdn: WorkspaceItemIdentifier<SavedSearchContent>) => Promise<number | null>;
3605
- getRecords: (savedSearchIdn: WorkspaceItemIdentifier<SavedSearchContent>, options?: Partial<RecordFetchOptions>) => Promise<RecordData | null>;
3606
- getRecordsQuery: (savedSearchIdn: WorkspaceItemIdentifier<SavedSearchContent>, options?: RecordFetchOptions) => Promise<QueryResult_2 | null>;
3607
- getSavedSearchPasteContext: (savedSearchIdn: WorkspaceItemIdentifier<SavedSearchContent>) => Promise<EntityPasteContext>;
3608
- }
3609
-
3610
- export declare interface SavedSearchContent {
3611
- concept: string;
3612
- dataset: true;
3613
- filters: Filter[];
3614
- crossFilters: DataMask[];
3615
- datasourcesInScope: Record<string, SavedDatasource>;
3616
- initialCount?: number;
3617
- }
3618
-
3619
4563
  export declare interface SavedSetContent {
3620
4564
  lastFiredQuery: string;
3621
- uiState: Record<string, any>;
4565
+ uiState: Record<string, unknown>;
3622
4566
  }
3623
4567
 
3624
4568
  /**
@@ -3630,8 +4574,6 @@ export declare type SavedTemplate = CustomTemplate & {
3630
4574
  os_entity_uid: string;
3631
4575
  /** The workspace to which the template belongs. */
3632
4576
  os_workspace: string;
3633
- /** The CSS content of the template. */
3634
- css_content?: string;
3635
4577
  };
3636
4578
 
3637
4579
  /**
@@ -3650,10 +4592,6 @@ export declare type SaveFileOptions = {
3650
4592
  * @beta
3651
4593
  */
3652
4594
  export declare type SaveOptions = SaveFileOptions & {
3653
- /**
3654
- * Whether to save as a draft.
3655
- */
3656
- draft?: boolean;
3657
4595
  /**
3658
4596
  * Whether to save as a new file.
3659
4597
  */
@@ -3668,12 +4606,69 @@ export declare type SaveOptions = SaveFileOptions & {
3668
4606
  * @beta
3669
4607
  * Type representing the search filter.
3670
4608
  */
3671
- export declare type SearchFilter = {
4609
+ export declare interface SearchFilter {
3672
4610
  label?: string;
3673
4611
  entity?: Entity;
3674
4612
  query?: QueryDslQueryContainer;
3675
4613
  imageUrl?: string;
3676
- };
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
+ }
3677
4672
 
3678
4673
  /**
3679
4674
  * @beta
@@ -3685,6 +4680,36 @@ export declare interface SearchOptions {
3685
4680
  */
3686
4681
  limit?: number;
3687
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
+ };
3688
4713
  }
3689
4714
 
3690
4715
  /**
@@ -3708,6 +4733,7 @@ export declare interface SearchProps {
3708
4733
  * the default image to use for the search.
3709
4734
  */
3710
4735
  image?: WorkspaceItem;
4736
+ selectMode?: 'single' | 'multi';
3711
4737
  /**
3712
4738
  * disable ask AI
3713
4739
  */
@@ -3726,6 +4752,30 @@ export declare interface SearchProps {
3726
4752
  searchInfoDescription?: React.ReactNode;
3727
4753
  }
3728
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
+
3729
4779
  /**
3730
4780
  * @beta
3731
4781
  * Interface representing the properties for the SearchXperienceModal component, extending SearchXperienceProps.
@@ -3794,6 +4844,19 @@ export declare type SemanticBinding = {
3794
4844
  props?: SemanticBindingProps;
3795
4845
  };
3796
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
+
3797
4860
  /**
3798
4861
  * @beta
3799
4862
  * Type representing the properties for a template binding.
@@ -3805,17 +4868,25 @@ export declare interface SemanticBindingProps {
3805
4868
  priority?: number;
3806
4869
  /** Whether the result should be shown in large mode by default */
3807
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>;
3808
4873
  /** Other properties */
3809
4874
  [key: string]: any;
3810
4875
  }
3811
4876
 
3812
4877
  /**
3813
4878
  * @beta
3814
- * 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).
3815
4881
  */
3816
- export declare type SemanticBindings = {
3817
- [k in SemanticBindingType]: (ConceptName | SemanticBinding)[];
3818
- };
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>;
3819
4890
 
3820
4891
  /**
3821
4892
  * @beta
@@ -3887,58 +4958,48 @@ export declare type ServiceDefinitions = Record<string, ServiceDefinition>;
3887
4958
  export declare type ServiceRole = 'context_menu' | 'record_view' | 'set_view';
3888
4959
 
3889
4960
  export declare type SetsOptions = {
3890
- /**
3891
- * Workspace items for the context.
3892
- */
3893
4961
  workspace_items?: WorkspaceItem[];
3894
- /**
3895
- * Limit for the context.
3896
- */
3897
4962
  limit?: number;
3898
- /**
3899
- * Offset for the context.
3900
- */
3901
4963
  offset?: number;
4964
+ datasource?: 'timbr' | 'opensearch';
3902
4965
  /**
3903
- * Datasource for the context.
3904
- */
3905
- datasource?: string;
3906
- /**
3907
- * Recursive for the context.
3908
- */
3909
- recursive?: boolean;
3910
- /**
3911
- * 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.
3912
4970
  */
4971
+ recursive?: boolean | number;
3913
4972
  include_count?: boolean;
3914
- /**
3915
- * Include root for the context.
3916
- */
3917
4973
  include_root?: boolean;
3918
- /**
3919
- * Include all fields for the context.
3920
- */
3921
4974
  include_all_fields?: boolean;
3922
- /**
3923
- * OS exact concept filter for the context.
3924
- */
3925
- os_exact_concept_filter?: string[];
3926
- /**
3927
- * When limit1 and limit2 are provided,
3928
- * the user will be prompted to choose the number of records to add
3929
- * if the count is greater than limit1.
3930
- */
4975
+ include_types?: string[];
4976
+ exclude_types?: string[];
4977
+ expand_types?: string[];
4978
+ no_expand_types?: string[];
4979
+ /** UI-only prompt threshold. */
3931
4980
  limit1?: number;
3932
- /**
3933
- * When limit1 and limit2 are provided,
3934
- * the user will be prompted to choose the number of records to add
3935
- * if the count is greater than limit1.
3936
- */
4981
+ /** UI-only prompt threshold. */
3937
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';
3938
4992
  };
3939
4993
 
3940
4994
  export declare type SetTransformResultFn = (args: any[]) => Promise<void>;
3941
4995
 
4996
+ export declare interface SharedCredentialsInput {
4997
+ cred_type?: CredType;
4998
+ username: string;
4999
+ password: string;
5000
+ domain?: string | null;
5001
+ }
5002
+
3942
5003
  /**
3943
5004
  * @beta
3944
5005
  * Type representing the details of an ontology to be shown.
@@ -3993,138 +5054,97 @@ export declare enum SortOrder {
3993
5054
  HIDE = -1
3994
5055
  }
3995
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
+
3996
5063
  /**
3997
- * @beta
3998
- * 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.
3999
5068
  */
4000
- export declare interface StreamJsonOptions<T> extends FetchOptions {
4001
- /**
4002
- * The asynchronous function to process each JSON object.
4003
- */
4004
- jsonHandler: (value: T) => Promise<void>;
5069
+ export declare interface SourceExportRequest {
5070
+ entity_id: string;
5071
+ inner_paths: string[];
5072
+ target_parent_folder: string;
4005
5073
  }
4006
5074
 
4007
5075
  /**
4008
- * @beta
4009
- * 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).
4010
5079
  */
4011
- export declare interface StreamTextOptions extends FetchOptions {
4012
- /**
4013
- * The asynchronous function to process each line of text.
4014
- */
4015
- handler: (line: string) => Promise<void>;
5080
+ export declare interface SourceExportResponse {
5081
+ created_folder_ids: string[];
5082
+ created_file_ids: string[];
5083
+ errors: SourceExportError[];
4016
5084
  }
4017
5085
 
4018
5086
  /**
4019
- * @beta
4020
- * Type representing a styler with methods for getting G6 node and edge styles.
4021
- * 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).
4022
5091
  */
4023
- export declare type Styler = {
4024
- /**
4025
- * Use this function to modify style of a node from outside the graph.
4026
- * You can overwrite the style, but DO NOT merge currentStyle or originStyle when returning new styling (or rather styling patch).
4027
- * This can lead do recursive clone error later on.
4028
- * Merging with actual style will be handled automatically!
4029
- * Use them just as a reference:
4030
- * - @param originStyle for eg original node radius (if its a circural node), so you want to eg multiply it by amount of connections.
4031
- * - @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.
4032
- * @param entity - The entity for which to get the node style.
4033
- * @param originStyle - The original style (the one passed to node during it's initialization). See '@antv/graphin' -> NodeStyle
4034
- * @param currentStyle - The current style. See '@antv/graphin' -> NodeStyle
4035
- * @returns A promise that resolves to the style patch. See '@antv/graphin' -> NodeStyle
4036
- */
4037
- getG6NodeStyle?: (entity: Entity, originStyle: TODO, currentStyle: TODO) => Promise<TODO>;
4038
- /**
4039
- * Use this function to modify style of a edge from outside the graph.
4040
- * You can overwrite the style, but DO NOT merge currentStyle or originStyle when returning new styling (or rather styling patch).
4041
- * This can lead do recursive clone error later on.
4042
- * Merging with actual style will be handled automatically!
4043
- * Use them just as a reference, eg edge width to multiply.
4044
- * @param edge - The edge specification for which to get the edge style.
4045
- * @param originStyle - The original style (the one passed to edge during it's initialization). See '@antv/graphin' -> EdgeStyle
4046
- * @param currentStyle - The current style. See '@antv/graphin' -> EdgeStyle
4047
- * @returns A promise that resolves to the style patch. See '@antv/graphin' -> EdgeStyle
4048
- */
4049
- getG6EdgeStyle?: (edge: EdgeSpec, originStyle: TODO, currentStyle: TODO) => Promise<TODO>;
4050
- };
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
+ }
4051
5101
 
4052
5102
  /**
4053
- * @beta
4054
- * 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).
4055
5106
  */
4056
- export declare type StylerConfig = StylerOption & {
4057
- /** The name of the styler configuration. */
4058
- name: string;
4059
- /** The description of the styler configuration. */
4060
- description: string;
4061
- /** The initialization function for the styler. */
4062
- init: StylerProducer;
4063
- /** The optional destroy function for the styler. */
4064
- destroy?: () => Promise<void>;
4065
- };
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
+ }
4066
5115
 
4067
5116
  /**
4068
5117
  * @beta
4069
- * Interface representing the context for a styler.
5118
+ * Options for streaming JSON line data from an API.
4070
5119
  */
4071
- export declare interface StylerContext {
4072
- /** The graph specification. */
4073
- graph: GraphSpec;
4074
- /** The selected graph specification. */
4075
- selected: GraphSpec;
4076
- /** The ontology API instance. */
4077
- OntologyAPI: Ontology;
4078
- /** The desktop API instance. */
4079
- DesktopAPI: Desktop;
4080
- /** The event emitter instance. */
4081
- ee: EventEmitterType;
4082
- /** The event topic prefix. */
4083
- eventTopicPrefix: string;
5120
+ export declare interface StreamJsonOptions<T> extends FetchOptions {
4084
5121
  /**
4085
- * @beta
4086
- * Callback function to be called when the task is complete.
4087
- * @param x - The styler instance.
5122
+ * The asynchronous function to process each JSON object.
4088
5123
  */
4089
- onTaskComplete?: (x: Styler) => void;
4090
- /** Callback function to be called when the task is canceled. */
4091
- onTaskCanceled?: () => void;
4092
- /** The task ID associated with the styler. */
4093
- taskID?: string;
5124
+ jsonHandler: (value: T) => Promise<void>;
4094
5125
  }
4095
5126
 
4096
5127
  /**
4097
5128
  * @beta
4098
- * Type representing a styler definition, which can be one of several specific types.
4099
- */
4100
- export declare type StylerDefinition = JavascriptFileStylerDefinition | JavascriptInlineStylerDefinition;
4101
-
4102
- /**
4103
- * @beta
4104
- * Type representing a collection of styler definitions.
5129
+ * Options for streaming text data from an API.
4105
5130
  */
4106
- 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
+ }
4107
5137
 
4108
- /**
4109
- * @beta
4110
- * Type representing an option for a styler.
4111
- */
4112
- export declare type StylerOption = {
4113
- /** The name of the styler option. */
4114
- name: string;
4115
- /** The description of the styler option. */
4116
- description: string;
4117
- };
5138
+ export declare type SubscribeDragStartFn = (id: string, callback: Callback<unknown>) => void;
4118
5139
 
4119
5140
  /**
4120
5141
  * @beta
4121
- * Type representing a function that produces a styler.
4122
- * @param context - The context for the styler.
4123
- * @returns A promise that resolves to the styler.
5142
+ * Options for {@link Ontology.subscribe}.
4124
5143
  */
4125
- export declare type StylerProducer = (context: StylerContext) => Promise<Styler>;
4126
-
4127
- 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
+ }
4128
5148
 
4129
5149
  export declare type SubscribeToContextFn = (id: string, callback: Callback<unknown>) => void;
4130
5150
 
@@ -4228,10 +5248,10 @@ export declare type TemplateMetadata = {
4228
5248
  style?: ReactCssProperties;
4229
5249
  /** Whether the template renders multiple records. */
4230
5250
  rendersMultipleRecords?: boolean;
4231
- /** Whether the template is an app. */
4232
- isApp?: boolean;
4233
5251
  /** details for semantic bindings. These can be app-specific */
4234
5252
  bindings?: SemanticBinding[];
5253
+ /** Optional CSS injected when the template renders. */
5254
+ css_content?: string;
4235
5255
  };
4236
5256
 
4237
5257
  /**
@@ -4246,7 +5266,30 @@ export declare type TemplateType = 'nunjucks' | 'javascript';
4246
5266
  */
4247
5267
  export declare type TemplateVariant = 'antd';
4248
5268
 
4249
- 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';
4250
5293
 
4251
5294
  /**
4252
5295
  * @beta
@@ -4323,6 +5366,41 @@ export declare interface UnzipOptions {
4323
5366
  extract_to_new_folder?: boolean;
4324
5367
  }
4325
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
+
4326
5404
  export declare interface UploadOptions {
4327
5405
  content_type: string;
4328
5406
  ttl_minutes?: number;
@@ -4349,6 +5427,13 @@ export declare type UserProfile = {
4349
5427
  */
4350
5428
  export declare type uuid = string;
4351
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
+
4352
5437
  declare type VectorKey = `vector_${string}_${number}_${string}`;
4353
5438
 
4354
5439
  /**
@@ -4359,49 +5444,6 @@ export declare type VirtualEntity = Entity & {
4359
5444
  '#virtual': true;
4360
5445
  };
4361
5446
 
4362
- export declare type Watcher = {
4363
- /**
4364
- * Application ID.
4365
- */
4366
- app_id: string;
4367
- /**
4368
- * Application name.
4369
- */
4370
- app_name: string;
4371
- /**
4372
- * Watcher name.
4373
- */
4374
- watcher_name: string;
4375
- /**
4376
- * Constants for the watcher.
4377
- */
4378
- const: [key: string, value: any][];
4379
- /**
4380
- * Description of the watcher.
4381
- */
4382
- description: string;
4383
- /**
4384
- * File associated with the watcher.
4385
- */
4386
- file: string;
4387
- /**
4388
- * Interval for the watcher.
4389
- */
4390
- interval: string;
4391
- /**
4392
- * Name of the watcher.
4393
- */
4394
- name: string;
4395
- /**
4396
- * Parameters for the watcher.
4397
- */
4398
- params: [key: string, value: any][];
4399
- /**
4400
- * Semantically bound items.
4401
- */
4402
- semantically_bound: string[];
4403
- };
4404
-
4405
5447
  /**
4406
5448
  * Represents information about the current user.
4407
5449
  * @beta
@@ -4423,6 +5465,7 @@ export declare type Whoami = {
4423
5465
  * Username of the user.
4424
5466
  */
4425
5467
  username: string;
5468
+ roles?: string[];
4426
5469
  /**
4427
5470
  * Roles of the user.
4428
5471
  */
@@ -4473,26 +5516,6 @@ export declare type WithProgressBarOptions = {
4473
5516
  persistUntilComplete?: boolean;
4474
5517
  };
4475
5518
 
4476
- /**
4477
- * @beta
4478
- * Type representing a workspace.
4479
- */
4480
- export declare type Workspace = {
4481
- /** The workspace item. */
4482
- workspace: WorkspaceItem;
4483
- /** The items in the workspace. */
4484
- items: WorkspaceItems;
4485
- /** Optional records in the workspace. */
4486
- workspace_records?: WorkspaceRecords;
4487
- /** Optional tags in the workspace. */
4488
- tags?: TagInfo[];
4489
- /** Optional permission for the workspace. */
4490
- permission?: WorkspacePermission;
4491
- /** Whether the workspace is active. */
4492
- isActive?: boolean;
4493
- os_flags?: number;
4494
- };
4495
-
4496
5519
  /**
4497
5520
  * @beta
4498
5521
  * Interface representing a workspace change emitter.
@@ -4504,7 +5527,7 @@ export declare interface WorkspaceChangeEmitter {
4504
5527
  * @param callback - The callback to invoke on changes.
4505
5528
  * @returns A promise that resolves to an unsubscribe function.
4506
5529
  */
4507
- onWorkspaceChanged: (ws: WorkspaceIdentifier, callback: Callback<Workspace>) => Promise<Unsubscribe>;
5530
+ onWorkspaceChanged: (ws: WorkspaceIdentifier, callback: Callback<WorkspaceItem>) => Promise<Unsubscribe>;
4508
5531
  /**
4509
5532
  * Subscribes to changes for a given workspace item.
4510
5533
  * @param item - The workspace item identifier.
@@ -4517,7 +5540,7 @@ export declare interface WorkspaceChangeEmitter {
4517
5540
  * @param callback - The callback to invoke with the current open workspaces.
4518
5541
  * @returns A promise that resolves to an unsubscribe function.
4519
5542
  */
4520
- onOpenWorkspacesChanged: AddListener<Workspace[]>;
5543
+ onOpenWorkspacesChanged: AddListener<WorkspaceItem[]>;
4521
5544
  }
4522
5545
 
4523
5546
  /**
@@ -4538,9 +5561,14 @@ export declare type WorkspaceConfig = Partial<{
4538
5561
  */
4539
5562
  color: string;
4540
5563
  /**
4541
- * 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.
4542
5566
  */
4543
5567
  entity_id?: string;
5568
+ /**
5569
+ * Ontology concept to create. Defaults to 'os_workspace'.
5570
+ */
5571
+ entity_type?: string;
4544
5572
  /**
4545
5573
  * Whether to create the workspace quietly, without opening it.
4546
5574
  */
@@ -4599,6 +5627,41 @@ export declare type WorkspaceItem<T = any> = WorkspaceRecord & {
4599
5627
  * Whether the item has an attachment file content.
4600
5628
  */
4601
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;
4602
5665
  /**
4603
5666
  * Optional path from the os_parent_folder or os_workspace to the item.
4604
5667
  * Does not include the item name.
@@ -4614,6 +5677,20 @@ export declare type WorkspaceItem<T = any> = WorkspaceRecord & {
4614
5677
  * Whether the item is readonly or not.
4615
5678
  */
4616
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;
4617
5694
  };
4618
5695
 
4619
5696
  /**
@@ -4699,25 +5776,6 @@ export declare type WorkspaceItemModel = {
4699
5776
  * Indicates if the item is in rename mode.
4700
5777
  */
4701
5778
  rename?: boolean;
4702
- /**
4703
- * A filter applied to concepts.
4704
- */
4705
- query?: ConceptFilter;
4706
- /**
4707
- * Function to get the count of entities.
4708
- * @returns A promise that resolves to the number of entities.
4709
- */
4710
- getEntitiesCount?: () => Promise<number>;
4711
- /**
4712
- * Function to get the entities.
4713
- * @param limit - The maximum number of entities to retrieve.
4714
- * @returns A promise that resolves to an array of entities.
4715
- */
4716
- getEntities?: (limit?: number) => Promise<Entity[]>;
4717
- /**
4718
- * Determines if the count is shown only when the item is closed.
4719
- */
4720
- showCountOnlyWhenClosed?: boolean;
4721
5779
  /**
4722
5780
  * The initial state of the item.
4723
5781
  */
@@ -4726,10 +5784,6 @@ export declare type WorkspaceItemModel = {
4726
5784
  * Indicates if the item should be highlighted.
4727
5785
  */
4728
5786
  highlight?: boolean;
4729
- /**
4730
- * Indicates if the item is in draft mode.
4731
- */
4732
- draft?: boolean;
4733
5787
  /**
4734
5788
  * Indicates if the item is auto open
4735
5789
  */
@@ -4753,12 +5807,6 @@ export declare type WorkspaceItemModel = {
4753
5807
  os_item_type: string;
4754
5808
  };
4755
5809
 
4756
- /**
4757
- * Represents an array of workspace items.
4758
- * @beta
4759
- */
4760
- export declare type WorkspaceItems = WorkspaceItem[];
4761
-
4762
5810
  /**
4763
5811
  * Properties for workspace item title.
4764
5812
  * @beta
@@ -4771,9 +5819,7 @@ export declare type WorkspaceItemTitleProps = DesktopActionContext & {
4771
5819
  /**
4772
5820
  * Menu options with extra action items.
4773
5821
  */
4774
- menuOptions?: ContextMenuOptions & {
4775
- extraActionItems?: DesktopActionMenuItem[];
4776
- };
5822
+ menuOptions?: ContextMenuOptions;
4777
5823
  /**
4778
5824
  * Whether the item is expanded.
4779
5825
  */
@@ -4841,27 +5887,6 @@ export declare interface WorkspaceRecordIdentifier {
4841
5887
  os_workspace: string;
4842
5888
  }
4843
5889
 
4844
- /**
4845
- * @beta
4846
- * Type representing information about records in a workspace.
4847
- */
4848
- export declare type WorkspaceRecordInfo = {
4849
- /** The concept associated with the records. */
4850
- concept: string;
4851
- /** The count of records. */
4852
- count: number;
4853
- /** The last updated timestamp for the records. */
4854
- max_last_updated: string;
4855
- /** The entities associated with the records. */
4856
- entities: Entity[];
4857
- };
4858
-
4859
- /**
4860
- * @beta
4861
- * Type representing a collection of workspace records.
4862
- */
4863
- export declare type WorkspaceRecords = Record<string, WorkspaceRecordInfo>;
4864
-
4865
5890
  /**
4866
5891
  * @beta
4867
5892
  * Type representing a workspace record with its relationships.
@@ -4879,7 +5904,7 @@ export declare type WorkspaceRecordWithRelationships = {
4879
5904
  * Represents a relationship between workspace items.
4880
5905
  * @beta
4881
5906
  */
4882
- export declare type WorkspaceRelationship = WorkspaceItemBase & OsAuditFields & {
5907
+ export declare type WorkspaceRelationship = WorkspaceItemBase & Entity & OsAuditFields & {
4883
5908
  /**
4884
5909
  * Unique identifier for the source entity in the relationship.
4885
5910
  */
@@ -4900,6 +5925,10 @@ export declare type WorkspaceRelationship = WorkspaceItemBase & OsAuditFields &
4900
5925
  * Name of the relationship.
4901
5926
  */
4902
5927
  os_relationship_name: string;
5928
+ /**
5929
+ * Inverse name of the relationship.
5930
+ */
5931
+ os_relationship_inverse_name?: string;
4903
5932
  };
4904
5933
 
4905
5934
  /**