@kortix/ui 0.14.8 → 0.14.10

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 (567) hide show
  1. package/README.md +2 -2
  2. package/dist/_vendor/kortix-shared.js +116 -3
  3. package/dist/_vendor/shared/app-config.d.ts +175 -0
  4. package/dist/_vendor/shared/artifact-comments.d.ts +235 -0
  5. package/dist/_vendor/shared/channel-descriptors.d.ts +96 -0
  6. package/dist/_vendor/shared/channel-message.d.ts +45 -5
  7. package/dist/_vendor/shared/index.d.ts +2 -0
  8. package/dist/_vendor/shared/space-slug.d.ts +37 -0
  9. package/dist/access/access/access-detail-shell.js +1 -1
  10. package/dist/access/access/principal-picker.d.ts +11 -0
  11. package/dist/access/access/principal-picker.js +3 -2
  12. package/dist/apps/app-preview-pool.d.ts +7 -2
  13. package/dist/apps/app-preview-pool.js +30 -7
  14. package/dist/apps/app-shared.d.ts +22 -15
  15. package/dist/apps/app-shared.js +37 -19
  16. package/dist/apps/index.d.ts +2 -2
  17. package/dist/apps/index.js +2 -2
  18. package/dist/artifacts/artifact-frame.d.ts +16 -0
  19. package/dist/artifacts/artifact-frame.js +55 -0
  20. package/dist/artifacts/artifact-session.d.ts +18 -0
  21. package/dist/artifacts/artifact-session.js +101 -0
  22. package/dist/artifacts/frame-policy.d.ts +30 -0
  23. package/dist/artifacts/frame-policy.js +61 -0
  24. package/dist/artifacts/index.d.ts +3 -0
  25. package/dist/artifacts/index.js +5 -0
  26. package/dist/browser/sandbox-browser-chrome.d.ts +4 -1
  27. package/dist/browser/sandbox-browser-chrome.js +2 -2
  28. package/dist/customize/agents/agent-grant-pages.d.ts +5 -1
  29. package/dist/customize/agents/agent-grant-pages.js +30 -4
  30. package/dist/customize/agents/agent-page.js +3 -1
  31. package/dist/customize/agents/agent-policy-sets.d.ts +43 -0
  32. package/dist/customize/agents/agent-policy-sets.js +72 -0
  33. package/dist/customize/agents/agent-triggers-section.js +2 -1
  34. package/dist/customize/connectors/add-mcp/add-mcp-server-dialog.d.ts +6 -1
  35. package/dist/customize/connectors/add-mcp/add-mcp-server-dialog.js +10 -4
  36. package/dist/customize/connectors/agent-access.d.ts +35 -0
  37. package/dist/customize/connectors/agent-access.js +77 -0
  38. package/dist/customize/connectors/catalog/browse-sections.d.ts +2 -29
  39. package/dist/customize/connectors/catalog/browse-sections.js +7 -74
  40. package/dist/customize/connectors/catalog/catalog-entry.d.ts +18 -37
  41. package/dist/customize/connectors/catalog/catalog-entry.js +28 -40
  42. package/dist/customize/connectors/catalog/connector-browse.d.ts +3 -32
  43. package/dist/customize/connectors/catalog/connector-browse.js +19 -50
  44. package/dist/customize/connectors/catalog/use-catalog.d.ts +20 -59
  45. package/dist/customize/connectors/catalog/use-catalog.js +48 -175
  46. package/dist/customize/connectors/connector-identity.d.ts +9 -11
  47. package/dist/customize/connectors/connector-identity.js +13 -42
  48. package/dist/customize/connectors/connector-moves-banner.d.ts +2 -1
  49. package/dist/customize/connectors/connector-moves-banner.js +4 -6
  50. package/dist/customize/connectors/connector-routes.d.ts +21 -9
  51. package/dist/customize/connectors/connector-routes.js +29 -20
  52. package/dist/customize/connectors/connectors-page.js +53 -82
  53. package/dist/customize/connectors/detail/app-page.js +226 -98
  54. package/dist/customize/connectors/detail/computer-app-page.d.ts +16 -0
  55. package/dist/customize/connectors/detail/computer-app-page.js +39 -0
  56. package/dist/customize/connectors/detail/connector-accounts.js +3 -1
  57. package/dist/customize/connectors/detail/connector-advanced-tools.d.ts +4 -1
  58. package/dist/customize/connectors/detail/connector-advanced-tools.js +2 -2
  59. package/dist/customize/connectors/detail/connector-agents.d.ts +14 -0
  60. package/dist/customize/connectors/detail/connector-agents.js +69 -0
  61. package/dist/customize/connectors/detail/connector-detail-tabs.js +2 -1
  62. package/dist/customize/connectors/detail/connector-move-row.d.ts +8 -5
  63. package/dist/customize/connectors/detail/connector-move-row.js +23 -14
  64. package/dist/customize/connectors/detail/connector-page.d.ts +4 -1
  65. package/dist/customize/connectors/detail/connector-page.js +14 -10
  66. package/dist/customize/connectors/detail/connector-policy-sets.d.ts +28 -0
  67. package/dist/customize/connectors/detail/connector-policy-sets.js +203 -0
  68. package/dist/customize/connectors/detail/connector-settings.d.ts +4 -1
  69. package/dist/customize/connectors/detail/connector-settings.js +7 -3
  70. package/dist/customize/connectors/detail/connector-status.d.ts +19 -6
  71. package/dist/customize/connectors/detail/connector-status.js +34 -10
  72. package/dist/customize/connectors/detail/connector-tabs.d.ts +4 -1
  73. package/dist/customize/connectors/detail/connector-tabs.js +8 -2
  74. package/dist/customize/connectors/detail/connector-tools.d.ts +3 -3
  75. package/dist/customize/connectors/detail/connector-tools.js +105 -48
  76. package/dist/customize/connectors/detail/email-inboxes.d.ts +43 -0
  77. package/dist/customize/connectors/detail/email-inboxes.js +184 -0
  78. package/dist/customize/connectors/detail/provider-info.d.ts +1 -1
  79. package/dist/customize/connectors/detail/provider-info.js +2 -2
  80. package/dist/customize/connectors/detail/status-badge.d.ts +1 -1
  81. package/dist/customize/connectors/detail/status-badge.js +4 -5
  82. package/dist/customize/connectors/detail/use-connector-detail.d.ts +6 -0
  83. package/dist/customize/connectors/detail/use-connector-detail.js +14 -4
  84. package/dist/customize/connectors/install/install-dialog.d.ts +23 -0
  85. package/dist/customize/connectors/install/install-dialog.js +40 -0
  86. package/dist/customize/connectors/install/install.d.ts +13 -2
  87. package/dist/customize/connectors/install/install.js +9 -4
  88. package/dist/customize/connectors/install/use-install.d.ts +19 -2
  89. package/dist/customize/connectors/install/use-install.js +65 -37
  90. package/dist/customize/connectors/install/way-kind.d.ts +5 -0
  91. package/dist/customize/connectors/install/way-kind.js +16 -0
  92. package/dist/customize/connectors/provider-label.d.ts +2 -1
  93. package/dist/customize/connectors/provider-label.js +13 -3
  94. package/dist/customize/connectors/tools/pattern-rule-draft.d.ts +4 -0
  95. package/dist/customize/connectors/tools/pattern-rule-draft.js +12 -3
  96. package/dist/customize/connectors/tools/policy-sets.d.ts +27 -0
  97. package/dist/customize/connectors/tools/policy-sets.js +41 -0
  98. package/dist/customize/connectors/tools/tool-groups.d.ts +32 -9
  99. package/dist/customize/connectors/tools/tool-groups.js +78 -16
  100. package/dist/customize/connectors/tools/tool-policy-control.d.ts +11 -10
  101. package/dist/customize/connectors/tools/tool-policy-control.js +15 -16
  102. package/dist/customize/connectors/tools/tool-policy-labels.d.ts +6 -5
  103. package/dist/customize/connectors/tools/tool-policy-labels.js +17 -16
  104. package/dist/customize/connectors/tools/tool-policy.d.ts +50 -4
  105. package/dist/customize/connectors/tools/tool-policy.js +74 -8
  106. package/dist/customize/connectors/use-agent-access.d.ts +85 -0
  107. package/dist/customize/connectors/use-agent-access.js +72 -0
  108. package/dist/customize/migrate-to-v2/index.d.ts +1 -2
  109. package/dist/customize/migrate-to-v2/index.js +1 -2
  110. package/dist/customize/migrate-to-v2/migration-prompt.d.ts +12 -25
  111. package/dist/customize/migrate-to-v2/migration-prompt.js +34 -236
  112. package/dist/customize/migrate-to-v2/upgrade-defs.d.ts +1 -1
  113. package/dist/customize/migrate-to-v2/upgrade-defs.js +7 -6
  114. package/dist/customize/migrate-to-v2/upgrade-view.js +7 -7
  115. package/dist/customize/migrate-to-v2/use-run-upgrade.d.ts +3 -3
  116. package/dist/customize/providers/provider-accordion.js +17 -2
  117. package/dist/customize/sections/component/channel-access-panel.d.ts +16 -0
  118. package/dist/customize/sections/component/channel-access-panel.js +146 -0
  119. package/dist/customize/sections/component/channel-connect-hero.d.ts +3 -2
  120. package/dist/customize/sections/component/channel-connect-hero.js +3 -2
  121. package/dist/customize/sections/component/channel-hero-frame.d.ts +31 -0
  122. package/dist/customize/sections/component/channel-hero-frame.js +40 -0
  123. package/dist/customize/sections/component/channel-mocks.d.ts +6 -0
  124. package/dist/customize/sections/component/channel-mocks.js +46 -0
  125. package/dist/customize/sections/component/channel-row.d.ts +13 -3
  126. package/dist/customize/sections/component/channel-row.js +10 -4
  127. package/dist/customize/sections/component/email-connect-form.d.ts +27 -0
  128. package/dist/customize/sections/component/email-connect-form.js +183 -0
  129. package/dist/customize/sections/component/slack-connect-card.d.ts +7 -0
  130. package/dist/customize/sections/component/slack-connect-card.js +2 -3
  131. package/dist/customize/sections/component/teams-connect-card.d.ts +7 -0
  132. package/dist/customize/sections/component/teams-connect-card.js +2 -3
  133. package/dist/customize/sections/component/telegram-channel-row.js +21 -28
  134. package/dist/customize/sections/connectors-view.d.ts +1 -15
  135. package/dist/customize/sections/connectors-view.js +81 -314
  136. package/dist/customize/sections/view/agent-editor-catalog.js +10 -0
  137. package/dist/customize/sections/view/channels-view.d.ts +6 -1
  138. package/dist/customize/sections/view/channels-view.js +72 -81
  139. package/dist/customize/sections/view/gateway/gateway-overview.js +10 -2
  140. package/dist/customize/settings/rail.js +9 -0
  141. package/dist/customize/settings/settings-tabs.d.ts +1 -1
  142. package/dist/customize/settings/settings-tabs.js +1 -0
  143. package/dist/customize/settings/tabs/chrome-connections-tab.d.ts +6 -0
  144. package/dist/customize/settings/tabs/chrome-connections-tab.js +99 -0
  145. package/dist/customize/settings/tabs/experimental-tab.js +35 -16
  146. package/dist/customize/shared/catalog/catalog-empty-state.d.ts +4 -15
  147. package/dist/customize/shared/catalog/catalog-empty-state.js +9 -7
  148. package/dist/customize/shared/channels-switch-dialog.d.ts +18 -0
  149. package/dist/customize/shared/channels-switch-dialog.js +30 -0
  150. package/dist/customize/shared/feature-gate-screen.js +27 -9
  151. package/dist/customize/shared/use-customize-prefetch.d.ts +2 -3
  152. package/dist/customize/shared/use-customize-prefetch.js +9 -27
  153. package/dist/customize/triggers/schedule/post-to-field.d.ts +18 -0
  154. package/dist/customize/triggers/schedule/post-to-field.js +49 -0
  155. package/dist/customize/triggers/schedule/schedule-copy.d.ts +10 -6
  156. package/dist/customize/triggers/schedule/schedule-copy.js +42 -11
  157. package/dist/customize/triggers/schedule/schedule-detail-sheet.js +2 -1
  158. package/dist/customize/triggers/schedule/trigger-composer-logic.d.ts +22 -0
  159. package/dist/customize/triggers/schedule/trigger-composer-logic.js +25 -0
  160. package/dist/customize/triggers/schedule/trigger-composer.d.ts +5 -0
  161. package/dist/customize/triggers/schedule/trigger-composer.js +23 -14
  162. package/dist/customize/triggers/schedule/trigger-edit-logic.js +3 -0
  163. package/dist/customize/triggers/schedule/trigger-filter.js +1 -1
  164. package/dist/customize/triggers/schedule/trigger-runs-logic.d.ts +2 -2
  165. package/dist/customize/triggers/schedule/trigger-runs-panel.js +1 -0
  166. package/dist/customize/triggers/schedule/trigger-toast.js +2 -1
  167. package/dist/customize/triggers/schedule-view.js +5 -2
  168. package/dist/files/index.d.ts +1 -0
  169. package/dist/files/index.js +1 -0
  170. package/dist/files/project/change-request-recovery.d.ts +1 -26
  171. package/dist/files/project/change-request-recovery.js +1 -59
  172. package/dist/files/project/components/change-request-detail-dialog.js +13 -3
  173. package/dist/files/project/components/drive-explorer.js +15 -15
  174. package/dist/files/project/components/drive-toolbar.d.ts +16 -2
  175. package/dist/files/project/components/drive-toolbar.js +14 -5
  176. package/dist/files/project/hooks/use-change-request-recovery.js +3 -19
  177. package/dist/files/project/hooks/use-change-requests.d.ts +1 -0
  178. package/dist/files/project/hooks/use-change-requests.js +11 -2
  179. package/dist/files/renderers/image-frame.d.ts +48 -0
  180. package/dist/files/renderers/image-frame.js +59 -0
  181. package/dist/files/renderers/image-renderer.d.ts +11 -1
  182. package/dist/files/renderers/image-renderer.js +13 -3
  183. package/dist/files/renderers/pdf/pdf-clipboard.d.ts +2 -0
  184. package/dist/files/renderers/pdf/pdf-clipboard.js +21 -0
  185. package/dist/files/renderers/pdf/pdf-viewer.js +4 -2
  186. package/dist/files/renderers/show-content-renderer.d.ts +9 -1
  187. package/dist/files/renderers/show-content-renderer.js +56 -14
  188. package/dist/files/runtime/file-source.js +2 -0
  189. package/dist/files/runtime/hooks/use-binary-blob.d.ts +10 -1
  190. package/dist/files/runtime/hooks/use-binary-blob.js +10 -4
  191. package/dist/files/runtime/hooks/use-shared-image.d.ts +41 -0
  192. package/dist/files/runtime/hooks/use-shared-image.js +177 -0
  193. package/dist/files/viewer/file-content-renderer.d.ts +22 -1
  194. package/dist/files/viewer/file-content-renderer.js +50 -7
  195. package/dist/files/viewer/file-header.d.ts +7 -3
  196. package/dist/files/viewer/file-header.js +20 -11
  197. package/dist/files/viewer/file-preview-modal.d.ts +1 -1
  198. package/dist/files/viewer/file-preview-modal.js +10 -22
  199. package/dist/files/viewer/file-source.d.ts +13 -0
  200. package/dist/files/viewer/use-file-content-state.d.ts +2 -0
  201. package/dist/files/viewer/use-file-content-state.js +28 -10
  202. package/dist/files/viewer/viewer-actions.d.ts +3 -1
  203. package/dist/files/viewer/viewer-actions.js +2 -2
  204. package/dist/hooks/use-media-query.d.ts +1 -0
  205. package/dist/hooks/use-mobile.d.ts +5 -0
  206. package/dist/hooks/use-mobile.js +8 -0
  207. package/dist/i18n/en.d.ts +1062 -85
  208. package/dist/i18n/en.js +1078 -101
  209. package/dist/i18n/ui-catalog/localize-ui-catalog.js +4 -0
  210. package/dist/i18n/ui-catalog/remaining-ui-translation-keys.generated.js +15 -3
  211. package/dist/index.d.ts +2 -2
  212. package/dist/index.js +2 -2
  213. package/dist/internal/account-hub/account-settings-sidebar.js +1 -1
  214. package/dist/internal/account-hub/hub-sheet.d.ts +9 -1
  215. package/dist/internal/account-hub/hub-sheet.js +21 -5
  216. package/dist/internal/account-hub/sections.d.ts +1 -1
  217. package/dist/internal/account-hub/sections.js +2 -1
  218. package/dist/internal/apps-and-extensions/apps-modal.d.ts +9 -0
  219. package/dist/internal/apps-and-extensions/apps-modal.js +107 -0
  220. package/dist/internal/auth/auth-card-shell.js +3 -3
  221. package/dist/internal/chrome/browser-icon.d.ts +24 -0
  222. package/dist/internal/chrome/browser-icon.js +58 -0
  223. package/dist/internal/chrome/chrome-card-state.d.ts +16 -0
  224. package/dist/internal/chrome/chrome-card-state.js +9 -0
  225. package/dist/internal/chrome/chrome-connect.d.ts +69 -0
  226. package/dist/internal/chrome/chrome-connect.js +178 -0
  227. package/dist/internal/chrome/chrome-mock.d.ts +4 -0
  228. package/dist/internal/chrome/chrome-mock.js +15 -0
  229. package/dist/internal/chrome/chrome-names.d.ts +15 -0
  230. package/dist/internal/chrome/chrome-names.js +35 -0
  231. package/dist/internal/chrome/extension.d.ts +47 -0
  232. package/dist/internal/chrome/extension.js +91 -0
  233. package/dist/internal/chrome/use-chrome-offered.d.ts +11 -0
  234. package/dist/internal/chrome/use-chrome-offered.js +22 -0
  235. package/dist/internal/components/agent-mark.js +5 -2
  236. package/dist/internal/connector-logo/connector-logo-source.d.ts +64 -0
  237. package/dist/internal/connector-logo/connector-logo-source.js +49 -0
  238. package/dist/internal/connector-logo/connector-logo.d.ts +39 -0
  239. package/dist/internal/connector-logo/connector-logo.js +56 -0
  240. package/dist/internal/connector-logo/connector-mark-files.d.ts +11 -0
  241. package/dist/internal/connector-logo/connector-mark-files.js +35 -0
  242. package/dist/internal/files/file-read-retry.d.ts +13 -0
  243. package/dist/internal/files/file-read-retry.js +23 -3
  244. package/dist/internal/files/session-drive-files.d.ts +5 -1
  245. package/dist/internal/files/session-drive-files.js +7 -2
  246. package/dist/internal/hooks/channels/use-channels-installations.d.ts +32 -5
  247. package/dist/internal/hooks/channels/use-channels-installations.js +55 -7
  248. package/dist/internal/hooks/channels/use-email-inboxes.d.ts +19 -0
  249. package/dist/internal/hooks/channels/use-email-inboxes.js +48 -0
  250. package/dist/internal/hooks/connectors/use-add-account.js +1 -1
  251. package/dist/internal/hooks/index.d.ts +1 -1
  252. package/dist/internal/hooks/index.js +1 -1
  253. package/dist/internal/hooks/projects/use-new-project-session.d.ts +9 -0
  254. package/dist/internal/hooks/projects/use-new-project-session.js +28 -12
  255. package/dist/internal/hooks/use-auto-scroll.d.ts +8 -1
  256. package/dist/internal/hooks/use-auto-scroll.js +4 -4
  257. package/dist/internal/icons/edge.d.ts +5 -0
  258. package/dist/internal/icons/edge.js +10 -0
  259. package/dist/internal/icons/telegram.d.ts +5 -0
  260. package/dist/internal/icons/telegram.js +6 -1
  261. package/dist/internal/layout/nav-hover-card.d.ts +35 -0
  262. package/dist/internal/layout/nav-hover-card.js +84 -0
  263. package/dist/internal/layout/project-nav-row.d.ts +3 -1
  264. package/dist/internal/layout/project-nav-row.js +3 -2
  265. package/dist/internal/layout/project-page-header.d.ts +4 -2
  266. package/dist/internal/layout/project-page-header.js +4 -3
  267. package/dist/internal/layout/project-settings-nav.js +59 -2
  268. package/dist/internal/lib/browser-error-noise.d.ts +1 -1
  269. package/dist/internal/lib/browser-error-noise.js +1 -1
  270. package/dist/internal/lib/browser-noise/rules/extensions.js +17 -3
  271. package/dist/internal/lib/browser-noise/rules/injected-scripts.d.ts +7 -0
  272. package/dist/internal/lib/browser-noise/rules/injected-scripts.js +15 -0
  273. package/dist/internal/lib/detect-os.d.ts +43 -0
  274. package/dist/internal/lib/detect-os.js +70 -0
  275. package/dist/internal/lib/manifest-version.d.ts +1 -1
  276. package/dist/internal/lib/manifest-version.js +2 -2
  277. package/dist/internal/lib/memory-href.d.ts +16 -0
  278. package/dist/internal/lib/memory-href.js +46 -0
  279. package/dist/internal/lib/use-project-feature-flags.js +13 -9
  280. package/dist/internal/lib/utils/heic-convert.d.ts +1 -1
  281. package/dist/internal/lib/utils/heic-convert.js +3 -4
  282. package/dist/internal/lib/web-notifications.d.ts +20 -0
  283. package/dist/internal/lib/web-notifications.js +48 -4
  284. package/dist/internal/notifications/notification-bell.d.ts +4 -1
  285. package/dist/internal/notifications/notification-bell.js +2 -2
  286. package/dist/internal/selection/selection-bar.d.ts +2 -1
  287. package/dist/internal/selection/selection-bar.js +1 -1
  288. package/dist/internal/stores/apps-modal-store.d.ts +8 -0
  289. package/dist/internal/stores/apps-modal-store.js +6 -0
  290. package/dist/internal/stores/composer-prefill-store.d.ts +12 -5
  291. package/dist/internal/stores/file-preview-store.d.ts +29 -2
  292. package/dist/internal/stores/file-preview-store.js +19 -1
  293. package/dist/internal/stores/kortix-computer-store.js +3 -0
  294. package/dist/internal/stores/sidebar-nav-store.d.ts +1 -1
  295. package/dist/internal/stores/sidebar-nav-store.js +3 -1
  296. package/dist/lib/routes.d.ts +13 -1
  297. package/dist/lib/routes.js +13 -0
  298. package/dist/markdown/index.d.ts +2 -1
  299. package/dist/markdown/index.js +2 -1
  300. package/dist/markdown/setup-links/approval-decision.d.ts +1 -0
  301. package/dist/markdown/setup-links/approval-decision.js +9 -3
  302. package/dist/markdown/setup-links/connector-handshake.d.ts +3 -1
  303. package/dist/markdown/setup-links/connector-handshake.js +12 -10
  304. package/dist/markdown/setup-links/secret-intake-form.d.ts +0 -10
  305. package/dist/markdown/setup-links/secret-intake-form.js +1 -1
  306. package/dist/markdown/setup-links/show-connect-hero.d.ts +28 -0
  307. package/dist/markdown/setup-links/show-connect-hero.js +91 -0
  308. package/dist/markdown/unified-markdown.js +5 -5
  309. package/dist/primitives/badge.d.ts +1 -1
  310. package/dist/primitives/badge.js +2 -0
  311. package/dist/primitives/disclosure.js +14 -2
  312. package/dist/primitives/empty-art.d.ts +12 -0
  313. package/dist/primitives/empty-art.js +11 -0
  314. package/dist/primitives/empty-state.d.ts +2 -2
  315. package/dist/primitives/empty-state.js +6 -5
  316. package/dist/primitives/mermaid-renderer.d.ts +2 -0
  317. package/dist/primitives/mermaid-renderer.js +21 -15
  318. package/dist/primitives/resizable.js +6 -1
  319. package/dist/primitives/resize-seam.d.ts +11 -0
  320. package/dist/primitives/resize-seam.js +12 -0
  321. package/dist/primitives/sidebar-panel.js +4 -7
  322. package/dist/primitives/tabs.d.ts +14 -1
  323. package/dist/primitives/tabs.js +1 -1
  324. package/dist/providers/ui-provider.d.ts +9 -0
  325. package/dist/session/composer/ComposerAboveCard.d.ts +1 -1
  326. package/dist/session/composer/ComposerAboveCard.js +2 -2
  327. package/dist/session/composer/ComposerCard.d.ts +1 -1
  328. package/dist/session/composer/ComposerCard.js +3 -3
  329. package/dist/session/composer/agent-selector.d.ts +13 -1
  330. package/dist/session/composer/agent-selector.js +25 -5
  331. package/dist/session/composer/composer-agent-access.d.ts +15 -0
  332. package/dist/session/composer/composer-agent-access.js +27 -0
  333. package/dist/session/composer/composer-chat-input.d.ts +8 -2
  334. package/dist/session/composer/composer-chat-input.js +8 -6
  335. package/dist/session/composer/composer-logic.d.ts +16 -0
  336. package/dist/session/composer/composer-logic.js +12 -0
  337. package/dist/session/composer/composer-underbar.d.ts +3 -1
  338. package/dist/session/composer/composer-underbar.js +4 -3
  339. package/dist/session/composer/composer.d.ts +15 -1
  340. package/dist/session/composer/composer.js +19 -1
  341. package/dist/session/composer/draft/composer-draft.d.ts +6 -2
  342. package/dist/session/composer/draft/composer-draft.js +5 -1
  343. package/dist/session/composer/reasoning-effort-selector.js +1 -1
  344. package/dist/session/models/chatgpt-connection-button.d.ts +11 -0
  345. package/dist/session/models/chatgpt-connection-button.js +54 -0
  346. package/dist/session/models/model-selector.js +5 -2
  347. package/dist/session/models/use-model-connection-gate.d.ts +5 -5
  348. package/dist/session/models/use-model-connection-gate.js +5 -5
  349. package/dist/session/outcomes/jump-to-outcome.d.ts +10 -0
  350. package/dist/session/outcomes/jump-to-outcome.js +11 -0
  351. package/dist/session/outcomes/session-outcomes-bridge.d.ts +14 -0
  352. package/dist/session/outcomes/session-outcomes-bridge.js +12 -0
  353. package/dist/session/outcomes/session-outcomes-provider.d.ts +3 -1
  354. package/dist/session/outcomes/session-outcomes-provider.js +33 -3
  355. package/dist/session/panel/easy/app-preview.d.ts +10 -0
  356. package/dist/session/panel/easy/app-preview.js +31 -12
  357. package/dist/session/panel/easy/change-requests-card.d.ts +7 -0
  358. package/dist/session/panel/easy/change-requests-card.js +17 -0
  359. package/dist/session/panel/easy/easy-panel-logic.js +7 -1
  360. package/dist/session/panel/easy/easy-panel.js +5 -2
  361. package/dist/session/panel/easy/file-preview.js +1 -1
  362. package/dist/session/panel/easy/outputs-card.d.ts +2 -1
  363. package/dist/session/panel/easy/outputs-card.js +3 -2
  364. package/dist/session/panel/mobile-tool-drawer.js +7 -1
  365. package/dist/session/panel/session-audit-panel.js +9 -2
  366. package/dist/session/panel/session-audit-shared.js +3 -1
  367. package/dist/session/panel/session-detail-panel.js +9 -3
  368. package/dist/session/panel/session-files-explorer.d.ts +9 -0
  369. package/dist/session/panel/session-files-explorer.js +12 -3
  370. package/dist/session/panel/session-panel-provider.d.ts +15 -1
  371. package/dist/session/panel/session-panel-provider.js +32 -7
  372. package/dist/session/panel/shared/derive-panels.d.ts +8 -1
  373. package/dist/session/panel/shared/derive-panels.js +12 -2
  374. package/dist/session/panel/shared/output-priority.js +2 -0
  375. package/dist/session/participants/session-participants.d.ts +8 -2
  376. package/dist/session/participants/session-participants.js +11 -4
  377. package/dist/session/prompts/approval-request.d.ts +5 -0
  378. package/dist/session/prompts/approval-request.js +9 -1
  379. package/dist/session/prompts/session-approval-review.d.ts +9 -0
  380. package/dist/session/prompts/session-approval-review.js +18 -0
  381. package/dist/session/status/session-error-banner.js +2 -49
  382. package/dist/session/status/session-starting-loader.d.ts +14 -2
  383. package/dist/session/status/session-starting-loader.js +16 -4
  384. package/dist/session/thread/after-first-prompt.d.ts +7 -0
  385. package/dist/session/thread/after-first-prompt.js +8 -0
  386. package/dist/session/thread/detect-command.d.ts +12 -0
  387. package/dist/session/thread/detect-command.js +20 -0
  388. package/dist/session/thread/session-chat.d.ts +3 -1
  389. package/dist/session/thread/session-chat.js +377 -252
  390. package/dist/session/thread/session-thread.d.ts +15 -1
  391. package/dist/session/thread/session-thread.js +20 -3
  392. package/dist/session/thread/session-transcript-class.d.ts +5 -1
  393. package/dist/session/thread/session-transcript-class.js +5 -1
  394. package/dist/session/thread/thread-boot-rows.d.ts +36 -0
  395. package/dist/session/thread/thread-boot-rows.js +89 -0
  396. package/dist/session/thread/transcript-rows.d.ts +31 -0
  397. package/dist/session/thread/transcript-rows.js +3 -0
  398. package/dist/session/thread/transcript.d.ts +0 -9
  399. package/dist/session/thread/transcript.js +104 -19
  400. package/dist/session/tool/shared/infrastructure-contexts.d.ts +28 -0
  401. package/dist/session/tool/shared/infrastructure-contexts.js +31 -3
  402. package/dist/session/tool/tool-part-renderer.d.ts +5 -4
  403. package/dist/session/tool/tool-part-renderer.js +8 -3
  404. package/dist/session/tool/tools/bash-tool.js +7 -6
  405. package/dist/session/tool/tools/channel-send-card.d.ts +1 -2
  406. package/dist/session/tool/tools/channel-send.d.ts +2 -1
  407. package/dist/session/tool/tools/codemode-tool.js +1 -1
  408. package/dist/session/tool/tools/connector-tools.js +1 -1
  409. package/dist/session/tool/tools/image-gen-tool.d.ts +1 -1
  410. package/dist/session/tool/tools/image-gen-tool.js +241 -53
  411. package/dist/session/tool/tools/show-tool.js +19 -8
  412. package/dist/session/turn/channel-brand.d.ts +8 -3
  413. package/dist/session/turn/channel-brand.js +20 -4
  414. package/dist/session/turn/message-author.d.ts +8 -0
  415. package/dist/session/turn/message-author.js +24 -0
  416. package/dist/session/turn/message-row.d.ts +52 -0
  417. package/dist/session/turn/message-row.js +44 -0
  418. package/dist/session/turn/plan-anchor.d.ts +1 -1
  419. package/dist/session/turn/plan-anchor.js +1 -1
  420. package/dist/session/turn/user-message.d.ts +14 -6
  421. package/dist/session/turn/user-message.js +35 -15
  422. package/dist/styles.css +1 -1
  423. package/dist/workspace/home/access-requests-bell.d.ts +9 -2
  424. package/dist/workspace/home/access-requests-bell.js +20 -6
  425. package/dist/workspace/home/first-chat.d.ts +8 -21
  426. package/dist/workspace/home/first-chat.js +22 -72
  427. package/dist/workspace/index.d.ts +6 -0
  428. package/dist/workspace/index.js +6 -0
  429. package/dist/workspace/layout/project-home.d.ts +14 -2
  430. package/dist/workspace/layout/project-home.js +60 -21
  431. package/dist/workspace/layout/use-project-home-send.d.ts +9 -1
  432. package/dist/workspace/layout/use-project-home-send.js +82 -3
  433. package/dist/workspace/memory/body-doc.d.ts +17 -0
  434. package/dist/workspace/memory/body-doc.js +208 -0
  435. package/dist/workspace/memory/body-extensions.d.ts +38 -0
  436. package/dist/workspace/memory/body-extensions.js +103 -0
  437. package/dist/workspace/memory/company-memory-page.d.ts +8 -0
  438. package/dist/workspace/memory/company-memory-page.js +16 -0
  439. package/dist/workspace/memory/memory-all.d.ts +20 -0
  440. package/dist/workspace/memory/memory-all.js +27 -0
  441. package/dist/workspace/memory/memory-body.d.ts +19 -0
  442. package/dist/workspace/memory/memory-body.js +139 -0
  443. package/dist/workspace/memory/memory-empty.d.ts +13 -0
  444. package/dist/workspace/memory/memory-empty.js +28 -0
  445. package/dist/workspace/memory/memory-history.d.ts +27 -0
  446. package/dist/workspace/memory/memory-history.js +108 -0
  447. package/dist/workspace/memory/memory-labels.d.ts +16 -0
  448. package/dist/workspace/memory/memory-labels.js +47 -0
  449. package/dist/workspace/memory/memory-page-list.d.ts +34 -0
  450. package/dist/workspace/memory/memory-page-list.js +156 -0
  451. package/dist/workspace/memory/memory-reader.d.ts +58 -0
  452. package/dist/workspace/memory/memory-reader.js +123 -0
  453. package/dist/workspace/memory/memory-view.d.ts +21 -0
  454. package/dist/workspace/memory/memory-view.js +124 -0
  455. package/dist/workspace/memory/remember-popover.d.ts +19 -0
  456. package/dist/workspace/memory/remember-popover.js +61 -0
  457. package/dist/workspace/memory/remember-this.d.ts +12 -0
  458. package/dist/workspace/memory/remember-this.js +89 -0
  459. package/dist/workspace/memory/source-mark.d.ts +18 -0
  460. package/dist/workspace/memory/source-mark.js +79 -0
  461. package/dist/workspace/memory/used-memory-chip.d.ts +14 -0
  462. package/dist/workspace/memory/used-memory-chip.js +61 -0
  463. package/dist/workspace/new/advanced-fields.d.ts +2 -1
  464. package/dist/workspace/new/advanced-fields.js +2 -2
  465. package/dist/workspace/new/source-param.d.ts +1 -1
  466. package/dist/workspace/new/source-param.js +3 -1
  467. package/dist/workspace/new/use-create-workspace.d.ts +8 -10
  468. package/dist/workspace/new/use-create-workspace.js +3 -3
  469. package/dist/workspace/projects/onboarding/app-logo.d.ts +7 -2
  470. package/dist/workspace/projects/onboarding/app-logo.js +6 -13
  471. package/dist/workspace/projects/policies-panel.js +5 -3
  472. package/dist/workspace/review/review-actions.d.ts +4 -2
  473. package/dist/workspace/review/review-actions.js +8 -2
  474. package/dist/workspace/review/review-center.js +11 -7
  475. package/dist/workspace/review/review-detail.d.ts +10 -0
  476. package/dist/workspace/review/review-detail.js +101 -13
  477. package/dist/workspace/saved-session-skeleton.d.ts +2 -2
  478. package/dist/workspace/saved-session-skeleton.js +3 -3
  479. package/dist/workspace/session-workspace.js +15 -13
  480. package/dist/workspace/sessions/project-sessions-view.js +3 -2
  481. package/dist/workspace/sessions/session-label-badges.js +2 -1
  482. package/dist/workspace/sessions/sessions-toolbar.d.ts +3 -1
  483. package/dist/workspace/sessions/sessions-toolbar.js +2 -2
  484. package/dist/workspace/sidebar/footer/project-apps-nav.d.ts +5 -0
  485. package/dist/workspace/sidebar/footer/project-apps-nav.js +41 -2
  486. package/dist/workspace/sidebar/footer/project-artifacts-nav.d.ts +6 -0
  487. package/dist/workspace/sidebar/footer/project-artifacts-nav.js +22 -0
  488. package/dist/workspace/sidebar/footer/project-chrome-nav.d.ts +10 -0
  489. package/dist/workspace/sidebar/footer/project-chrome-nav.js +56 -0
  490. package/dist/workspace/sidebar/footer/project-manifest-upgrade-alert.js +13 -13
  491. package/dist/workspace/sidebar/footer/project-memory-nav.d.ts +7 -0
  492. package/dist/workspace/sidebar/footer/project-memory-nav.js +19 -0
  493. package/dist/workspace/sidebar/nav-row-meta.js +14 -2
  494. package/dist/workspace/sidebar/project-nav-items.js +3 -0
  495. package/dist/workspace/sidebar/project-session-list.js +68 -56
  496. package/dist/workspace/sidebar/project-sidebar.js +13 -2
  497. package/dist/workspace/sidebar/project-spaces-nav.d.ts +8 -0
  498. package/dist/workspace/sidebar/project-spaces-nav.js +69 -0
  499. package/dist/workspace/sidebar/session-group-order.d.ts +9 -0
  500. package/dist/workspace/sidebar/session-group-order.js +25 -0
  501. package/dist/workspace/sidebar/session-group-sections.d.ts +62 -0
  502. package/dist/workspace/sidebar/session-group-sections.js +267 -0
  503. package/dist/workspace/sidebar/session-list-chrome.d.ts +28 -0
  504. package/dist/workspace/sidebar/session-list-chrome.js +50 -0
  505. package/dist/workspace/spaces/channel-glyph.d.ts +5 -0
  506. package/dist/workspace/spaces/channel-glyph.js +6 -0
  507. package/dist/workspace/spaces/channel-setup.d.ts +16 -0
  508. package/dist/workspace/spaces/channel-setup.js +105 -0
  509. package/dist/workspace/spaces/channels-onboarding.d.ts +13 -0
  510. package/dist/workspace/spaces/channels-onboarding.js +37 -0
  511. package/dist/workspace/spaces/create-channel-dialog.d.ts +16 -0
  512. package/dist/workspace/spaces/create-channel-dialog.js +158 -0
  513. package/dist/workspace/spaces/private-channels-not-in.d.ts +9 -0
  514. package/dist/workspace/spaces/private-channels-not-in.js +69 -0
  515. package/dist/workspace/spaces/space-agents.d.ts +10 -0
  516. package/dist/workspace/spaces/space-agents.js +10 -0
  517. package/dist/workspace/spaces/space-details-dialog.d.ts +20 -0
  518. package/dist/workspace/spaces/space-details-dialog.js +176 -0
  519. package/dist/workspace/spaces/space-link-label.d.ts +49 -0
  520. package/dist/workspace/spaces/space-link-label.js +73 -0
  521. package/dist/workspace/spaces/space-links.d.ts +19 -0
  522. package/dist/workspace/spaces/space-links.js +230 -0
  523. package/dist/workspace/spaces/space-members.d.ts +46 -0
  524. package/dist/workspace/spaces/space-members.js +182 -0
  525. package/dist/workspace/spaces/space-roster.d.ts +15 -0
  526. package/dist/workspace/spaces/space-roster.js +44 -0
  527. package/dist/workspace/spaces/space-threads-tab.d.ts +56 -0
  528. package/dist/workspace/spaces/space-threads-tab.js +156 -0
  529. package/dist/workspace/spaces/space-timeline-view.d.ts +254 -0
  530. package/dist/workspace/spaces/space-timeline-view.js +235 -0
  531. package/dist/workspace/spaces/space-timeline.d.ts +106 -0
  532. package/dist/workspace/spaces/space-timeline.js +183 -0
  533. package/dist/workspace/spaces/space-triggers.d.ts +13 -0
  534. package/dist/workspace/spaces/space-triggers.js +78 -0
  535. package/dist/workspace/spaces/space-view.d.ts +37 -0
  536. package/dist/workspace/spaces/space-view.js +436 -0
  537. package/package.json +67 -36
  538. package/skills/kortix-ui/SKILL.md +3 -3
  539. package/skills/kortix-ui/references/custom-dashboard.md +3 -3
  540. package/skills/kortix-ui/references/modules.md +29 -5
  541. package/skills/kortix-ui/references/theming.md +1 -1
  542. package/dist/customize/connectors/catalog/merge-search.d.ts +0 -10
  543. package/dist/customize/connectors/catalog/merge-search.js +0 -26
  544. package/dist/customize/connectors/detail/find-easy-connect-app.d.ts +0 -29
  545. package/dist/customize/connectors/detail/find-easy-connect-app.js +0 -22
  546. package/dist/customize/migrate-to-v2/use-migrate-to-v2.d.ts +0 -9
  547. package/dist/customize/migrate-to-v2/use-migrate-to-v2.js +0 -24
  548. package/dist/customize/sections/connector-connection-header.d.ts +0 -36
  549. package/dist/customize/sections/connector-connection-header.js +0 -33
  550. package/dist/customize/sections/connector-connection-modal.d.ts +0 -34
  551. package/dist/customize/sections/connector-connection-modal.js +0 -72
  552. package/dist/customize/sections/discover-catalogue-card.d.ts +0 -19
  553. package/dist/customize/sections/discover-catalogue-card.js +0 -26
  554. package/dist/customize/sections/discover-catalogue-detail.d.ts +0 -15
  555. package/dist/customize/sections/discover-catalogue-detail.js +0 -24
  556. package/dist/customize/sections/discover-catalogue.d.ts +0 -17
  557. package/dist/customize/sections/discover-catalogue.js +0 -132
  558. package/dist/customize/sections/llm-provider/provider-access-menu.d.ts +0 -10
  559. package/dist/customize/sections/llm-provider/provider-access-menu.js +0 -23
  560. package/dist/files/project/components/drive-empty-art.d.ts +0 -2
  561. package/dist/files/project/components/drive-empty-art.js +0 -5
  562. package/dist/internal/hooks/use-media-query.d.ts +0 -2
  563. package/dist/internal/share/public-share-link-button.d.ts +0 -14
  564. package/dist/internal/share/public-share-link-button.js +0 -17
  565. package/dist/markdown/setup-links/app-credentials-form.d.ts +0 -12
  566. package/dist/markdown/setup-links/app-credentials-form.js +0 -115
  567. /package/dist/{internal/hooks → hooks}/use-media-query.js +0 -0
@@ -0,0 +1,35 @@
1
+ import type { AgentGrantSet } from '@kortix/sdk';
2
+ /**
3
+ * Which agents can use which connector, and with which rule set, read from
4
+ * the root kortix.yaml (v2/v3): `agents.<a>.connectors` is the grant and
5
+ * `agents.<a>.policy_sets.<slug>` the set. The connector page's Agents tab and
6
+ * the Rules matrix both read this, and both write through `setAgentScope`.
7
+ *
8
+ * ponytail: agents declared in an `imports:` file are not read. Read the
9
+ * merged grants from the API when it serves them (`GET …/connectors/{slug}/agents`).
10
+ */
11
+ export interface AgentConnectorAccess {
12
+ granted: boolean;
13
+ /** The set the agent names on this connector, or null for the base rules. */
14
+ policySet: string | null;
15
+ }
16
+ export interface AgentGrants {
17
+ /** `all`, or the granted slugs. An absent grant is none (v2 denies by default). */
18
+ connectors: 'all' | string[];
19
+ policySets: Record<string, string>;
20
+ }
21
+ /** Every declared agent's connector grant and sets, by agent name. Null when the manifest is not v2/v3 YAML. */
22
+ export declare function manifestAgentGrants(manifestRaw: string | null | undefined): Record<string, AgentGrants> | null;
23
+ export declare function agentConnectorAccess(grants: AgentGrants | undefined, slug: string): AgentConnectorAccess;
24
+ /**
25
+ * The agent's connector grant after giving or taking one connector. Taking one
26
+ * from `all` lists every other connector the project has.
27
+ */
28
+ export declare function withConnectorGrant(grants: AgentGrants | undefined, slug: string, on: boolean, allSlugs: readonly string[]): AgentGrantSet;
29
+ /** One rule set of a connector and how many agents use it. */
30
+ export interface RuleSetUsage {
31
+ name: string;
32
+ agents: number;
33
+ }
34
+ /** Each connector's rule sets (`connectors[].policy_sets`) with their agent count, by slug. */
35
+ export declare function connectorRuleSetUsage(manifestRaw: string | null | undefined): Record<string, RuleSetUsage[]>;
@@ -0,0 +1,77 @@
1
+ import { parseManifestText } from '../../_vendor/kortix-shared.js';
2
+ /** Every declared agent's connector grant and sets, by agent name. Null when the manifest is not v2/v3 YAML. */
3
+ export function manifestAgentGrants(manifestRaw) {
4
+ if (!manifestRaw)
5
+ return null;
6
+ let manifest;
7
+ try {
8
+ manifest = parseManifestText(manifestRaw, 'yaml');
9
+ }
10
+ catch {
11
+ return null;
12
+ }
13
+ const version = Number(manifest.kortix_version);
14
+ const agents = manifest.agents;
15
+ if (!(version >= 2))
16
+ return null;
17
+ if (!agents || typeof agents !== 'object' || Array.isArray(agents))
18
+ return {};
19
+ const out = Object.create(null);
20
+ for (const [name, block] of Object.entries(agents)) {
21
+ const entry = (block && typeof block === 'object' ? block : {});
22
+ const connectors = entry.connectors === 'all'
23
+ ? 'all'
24
+ : Array.isArray(entry.connectors)
25
+ ? entry.connectors.filter((slug) => typeof slug === 'string')
26
+ : [];
27
+ const sets = entry.policy_sets && typeof entry.policy_sets === 'object' && !Array.isArray(entry.policy_sets)
28
+ ? Object.fromEntries(Object.entries(entry.policy_sets).filter((pair) => typeof pair[1] === 'string'))
29
+ : {};
30
+ out[name] = { connectors, policySets: sets };
31
+ }
32
+ return out;
33
+ }
34
+ export function agentConnectorAccess(grants, slug) {
35
+ if (!grants)
36
+ return { granted: false, policySet: null };
37
+ return {
38
+ granted: grants.connectors === 'all' || grants.connectors.includes(slug),
39
+ policySet: grants.policySets[slug] ?? null,
40
+ };
41
+ }
42
+ /**
43
+ * The agent's connector grant after giving or taking one connector. Taking one
44
+ * from `all` lists every other connector the project has.
45
+ */
46
+ export function withConnectorGrant(grants, slug, on, allSlugs) {
47
+ const current = grants?.connectors ?? [];
48
+ if (current === 'all')
49
+ return on ? 'all' : allSlugs.filter((other) => other !== slug);
50
+ if (on)
51
+ return current.includes(slug) ? current : [...current, slug];
52
+ return current.filter((other) => other !== slug);
53
+ }
54
+ /** Each connector's rule sets (`connectors[].policy_sets`) with their agent count, by slug. */
55
+ export function connectorRuleSetUsage(manifestRaw) {
56
+ const grants = manifestAgentGrants(manifestRaw);
57
+ if (!grants || !manifestRaw)
58
+ return {};
59
+ let manifest;
60
+ try {
61
+ manifest = parseManifestText(manifestRaw, 'yaml');
62
+ }
63
+ catch {
64
+ return {};
65
+ }
66
+ const out = Object.create(null);
67
+ for (const entry of Array.isArray(manifest.connectors) ? manifest.connectors : []) {
68
+ const { slug, policy_sets: sets } = (entry ?? {});
69
+ if (typeof slug !== 'string' || !sets || typeof sets !== 'object' || Array.isArray(sets))
70
+ continue;
71
+ out[slug] = Object.keys(sets).map((name) => ({
72
+ name,
73
+ agents: Object.values(grants).filter((agent) => agent.policySets[slug] === name).length,
74
+ }));
75
+ }
76
+ return out;
77
+ }
@@ -1,10 +1,7 @@
1
- import type { ConnectSectionsPage, ConnectToolkit, DiscoverSectionsPage, PipedreamApp, PipedreamCategory, PipedreamSection } from '@kortix/sdk';
1
+ import type { DiscoverSectionsPage, PipedreamCategory } from '@kortix/sdk';
2
2
  import { type CatalogEntry } from './catalog-entry.js';
3
3
  import type { CatalogSection } from './use-catalog.js';
4
- export type EasyConnectApp = PipedreamApp & {
5
- provider?: 'composio' | 'pipedream';
6
- };
7
- /** The browse page in one shape for every catalogue, cards already mapped. */
4
+ /** The browse page, cards already mapped. */
8
5
  export interface BrowseSectionsPage {
9
6
  /** The top of the whole catalogue by rank. Only Discover ranks its apps. */
10
7
  popular: CatalogEntry[];
@@ -16,24 +13,6 @@ export interface BrowseSectionsPage {
16
13
  }>;
17
14
  categories: PipedreamCategory[];
18
15
  }
19
- /** A Composio toolkit as the card the Easy Connect grid renders. The paged
20
- * catalogue and the browse sections both use this, so a card is identical in
21
- * a section and behind its "View all". */
22
- export declare function connectToolkitApp(toolkit: ConnectToolkit): EasyConnectApp;
23
- /**
24
- * The Composio browse page.
25
- *
26
- * Labels are replaced by keys. Composio's category names are lowercase
27
- * ("server monitoring"), and the paged grid titles a category by humanizing its
28
- * key — so titling by key keeps a section heading and the header of the
29
- * category it opens spelling the same name.
30
- */
31
- export declare function sectionsPageFromConnect(page: ConnectSectionsPage): BrowseSectionsPage;
32
- /** The Pipedream browse page. Pipedream publishes readable labels, kept as-is. */
33
- export declare function sectionsPageFromPipedream(page: {
34
- sections: PipedreamSection[];
35
- categories: PipedreamCategory[];
36
- }): BrowseSectionsPage;
37
16
  /**
38
17
  * The Discover browse page. Titled by key: Discover sections are the shared
39
18
  * curated buckets, and `localizedSectionTitle` resolves a curated key to our
@@ -49,14 +28,8 @@ export declare function sectionsPageFromDiscover(page: DiscoverSectionsPage): Br
49
28
  * Popular leads when the catalogue ranks anything. It is a per-item rank, not a
50
29
  * category, so its total is its own slice and it never offers "View all" into a
51
30
  * bucket with no more members.
52
- *
53
- * `native` is the Computers card. No catalogue publishes it, and the browse
54
- * page is where it is discovered, so it leads the section for the category it
55
- * claims. It does not change that section's `total`, which counts the
56
- * catalogue the heading's "View all" opens.
57
31
  */
58
32
  export declare function browseSections(page: BrowseSectionsPage, opts: {
59
- native: CatalogEntry | null;
60
33
  cardCount: number;
61
34
  title: (label: string) => string;
62
35
  }): CatalogSection[];
@@ -1,61 +1,5 @@
1
- import { catalogEntryFromDiscover, catalogEntryFromEasyConnect, foldKey, } from './catalog-entry.js';
1
+ import { catalogEntryFromDiscover } from './catalog-entry.js';
2
2
  import { POPULAR_SECTION } from './connector-categories.js';
3
- /** A Composio toolkit as the card the Easy Connect grid renders. The paged
4
- * catalogue and the browse sections both use this, so a card is identical in
5
- * a section and behind its "View all". */
6
- export function connectToolkitApp(toolkit) {
7
- return {
8
- slug: toolkit.slug,
9
- name: toolkit.name,
10
- description: toolkit.description ?? null,
11
- imgSrc: toolkit.logo,
12
- authType: toolkit.isNoAuth ? 'none' : 'oauth',
13
- categories: toolkit.categories ?? [],
14
- hasActions: true,
15
- hasTriggers: false,
16
- featuredWeight: 0,
17
- provider: 'composio',
18
- directId: toolkit.directId ?? null,
19
- directMcpUrl: toolkit.directMcpUrl ?? null,
20
- };
21
- }
22
- /**
23
- * The Composio browse page.
24
- *
25
- * Labels are replaced by keys. Composio's category names are lowercase
26
- * ("server monitoring"), and the paged grid titles a category by humanizing its
27
- * key — so titling by key keeps a section heading and the header of the
28
- * category it opens spelling the same name.
29
- */
30
- export function sectionsPageFromConnect(page) {
31
- return {
32
- popular: [],
33
- sections: page.sections.map((section) => ({
34
- key: section.key,
35
- label: section.key,
36
- total: section.total,
37
- items: section.toolkits.map((toolkit) => catalogEntryFromEasyConnect(connectToolkitApp(toolkit))),
38
- })),
39
- categories: page.categories.map((category) => ({
40
- key: category.key,
41
- label: category.key,
42
- count: category.count,
43
- })),
44
- };
45
- }
46
- /** The Pipedream browse page. Pipedream publishes readable labels, kept as-is. */
47
- export function sectionsPageFromPipedream(page) {
48
- return {
49
- popular: [],
50
- sections: page.sections.map((section) => ({
51
- key: section.key,
52
- label: section.label,
53
- total: section.total,
54
- items: section.apps.map(catalogEntryFromEasyConnect),
55
- })),
56
- categories: page.categories,
57
- };
58
- }
59
3
  /**
60
4
  * The Discover browse page. Titled by key: Discover sections are the shared
61
5
  * curated buckets, and `localizedSectionTitle` resolves a curated key to our
@@ -86,14 +30,8 @@ export function sectionsPageFromDiscover(page) {
86
30
  * Popular leads when the catalogue ranks anything. It is a per-item rank, not a
87
31
  * category, so its total is its own slice and it never offers "View all" into a
88
32
  * bucket with no more members.
89
- *
90
- * `native` is the Computers card. No catalogue publishes it, and the browse
91
- * page is where it is discovered, so it leads the section for the category it
92
- * claims. It does not change that section's `total`, which counts the
93
- * catalogue the heading's "View all" opens.
94
33
  */
95
34
  export function browseSections(page, opts) {
96
- const nativeKeys = new Set((opts.native?.categories ?? []).map(foldKey));
97
35
  const popularItems = page.popular.slice(0, opts.cardCount);
98
36
  const popular = popularItems.length > 0
99
37
  ? [
@@ -105,15 +43,10 @@ export function browseSections(page, opts) {
105
43
  },
106
44
  ]
107
45
  : [];
108
- return popular.concat(page.sections.map((section) => {
109
- const withNative = opts.native && nativeKeys.has(foldKey(section.key))
110
- ? [opts.native, ...section.items]
111
- : section.items;
112
- return {
113
- key: section.key,
114
- label: opts.title(section.label),
115
- total: section.total,
116
- items: withNative.slice(0, opts.cardCount),
117
- };
118
- }));
46
+ return popular.concat(page.sections.map((section) => ({
47
+ key: section.key,
48
+ label: opts.title(section.label),
49
+ total: section.total,
50
+ items: section.items.slice(0, opts.cardCount),
51
+ })));
119
52
  }
@@ -1,51 +1,26 @@
1
- import type { UiTranslator } from '../../../i18n/index.js';
2
- import type { AdminConnector, DiscoverConnector, PipedreamApp } from '@kortix/sdk';
1
+ import type { AdminConnector, ConnectToolkit, DiscoverConnector, PipedreamApp } from '@kortix/sdk';
2
+ import { type ConnectorLogoSource } from '../../../internal/connector-logo/connector-logo-source.js';
3
3
  import { POPULAR_SECTION } from './connector-categories.js';
4
- /**
5
- * Which catalogue an entry came from. This is not cosmetic — it decides which
6
- * install the app page's Install runs. A `discover` entry installs from its
7
- * template (`discoverInstallTarget`); an `easy-connect` entry installs as a
8
- * managed OAuth app via Pipedream (`easyConnectInstallTarget`). The two build
9
- * different connectors and cannot be swapped.
10
- */
11
- export type CatalogSource = 'discover' | 'easy-connect';
12
4
  interface CatalogEntryFields {
13
- /** Stable React key. Prefixed by source, because the two catalogues are
14
- * independent namespaces and both publish a `slack`. */
5
+ /** Stable React key: `discover:<record id>`. */
15
6
  key: string;
16
7
  slug: string;
17
8
  name: string;
18
9
  description: string | null;
19
10
  icon: string | null;
20
11
  categories: string[];
21
- /** Only Discover ranks its catalogue. Easy Connect entries are always
22
- * `null`, which keeps them out of the Popular section rather than sorting
23
- * them to the bottom of it. */
12
+ /** The catalogue's rank; `null` keeps a record out of the Popular section. */
24
13
  popularity: number | null;
25
14
  }
26
15
  /**
27
- * One card in the catalogue, normalised across the two sources so the grid,
28
- * the search, the category grouping and the connected-state join are written
29
- * once instead of twice.
30
- *
31
- * The raw item rides along on the union arm so the page can hand it straight
32
- * back to the matching add flow without a lookup.
16
+ * One card in the catalogue: a Discover record (Kortix apps, integrations.sh
17
+ * servers and APIs, Composio apps). The raw record rides along so the page can
18
+ * hand it straight to the install flow without a lookup.
33
19
  */
34
- export type CatalogEntry = (CatalogEntryFields & {
20
+ export type CatalogEntry = CatalogEntryFields & {
35
21
  source: 'discover';
36
22
  connector: DiscoverConnector;
37
- /** The managed catalogue lists the same app too (`mergeSearchEntries`). */
38
- alsoApp?: boolean;
39
- }) | (CatalogEntryFields & {
40
- source: 'easy-connect';
41
- app: PipedreamApp & {
42
- provider?: 'composio' | 'pipedream';
43
- };
44
- }) | (CatalogEntryFields & {
45
- source: 'computer';
46
- });
47
- /** Native platform provider. Each member's paired machine is one of its accounts. */
48
- export declare function computersCatalogEntry(tI18nComplete: UiTranslator): CatalogEntry;
23
+ };
49
24
  /**
50
25
  * The icon URL a Discover record's card loads.
51
26
  *
@@ -60,10 +35,14 @@ export declare function computersCatalogEntry(tI18nComplete: UiTranslator): Cata
60
35
  * reads the same as the glyph it replaced.
61
36
  */
62
37
  export declare function discoverEntryIcon(connector: Pick<DiscoverConnector, 'icon' | 'domain'>): string | null;
63
- export declare function catalogEntryFromDiscover(connector: DiscoverConnector): CatalogEntry;
64
- export declare function catalogEntryFromEasyConnect(app: PipedreamApp & {
38
+ export type EasyConnectApp = PipedreamApp & {
65
39
  provider?: 'composio' | 'pipedream';
66
- }): CatalogEntry;
40
+ };
41
+ /** A Composio toolkit as the card the Easy Connect grid renders. The paged
42
+ * catalogue and the browse sections both use this, so a card is identical in
43
+ * a section and behind its "View all". */
44
+ export declare function connectToolkitApp(toolkit: ConnectToolkit): EasyConnectApp;
45
+ export declare function catalogEntryFromDiscover(connector: DiscoverConnector): CatalogEntry;
67
46
  /**
68
47
  * The one fact that varies between cards: HOW this entry connects. Short
69
48
  * nouns, shown as the card's quiet line under the title — every card gets
@@ -123,3 +102,5 @@ export declare function catalogEntryConnectors(connectors: readonly AdminConnect
123
102
  * `browseSections` in `browse-sections.ts`. Defined in `connector-categories.ts`
124
103
  * and re-exported here for the modules that already import this one. */
125
104
  export { POPULAR_SECTION };
105
+ /** The logo source of a catalogue card (`ConnectorLogo`): same rule as every other surface. */
106
+ export declare function catalogEntryLogoSource(entry: CatalogEntry): ConnectorLogoSource;
@@ -1,18 +1,6 @@
1
1
  import { faviconUrlForHostname } from '../../../lib/favicon.js';
2
+ import { discoverLogoSource } from '../../../internal/connector-logo/connector-logo-source.js';
2
3
  import { POPULAR_SECTION } from './connector-categories.js';
3
- /** Native platform provider. Each member's paired machine is one of its accounts. */
4
- export function computersCatalogEntry(tI18nComplete) {
5
- return {
6
- source: 'computer',
7
- key: 'computer:computers',
8
- slug: 'computers',
9
- name: 'Computer',
10
- description: tI18nComplete.raw('text070855f4fe8d'),
11
- icon: null,
12
- categories: ['developer-tools'],
13
- popularity: null,
14
- };
15
- }
16
4
  /**
17
5
  * The icon URL a Discover record's card loads.
18
6
  *
@@ -29,6 +17,25 @@ export function computersCatalogEntry(tI18nComplete) {
29
17
  export function discoverEntryIcon(connector) {
30
18
  return connector.icon ?? faviconUrlForHostname(connector.domain);
31
19
  }
20
+ /** A Composio toolkit as the card the Easy Connect grid renders. The paged
21
+ * catalogue and the browse sections both use this, so a card is identical in
22
+ * a section and behind its "View all". */
23
+ export function connectToolkitApp(toolkit) {
24
+ return {
25
+ slug: toolkit.slug,
26
+ name: toolkit.name,
27
+ description: toolkit.description ?? null,
28
+ imgSrc: toolkit.logo,
29
+ authType: toolkit.isNoAuth ? 'none' : 'oauth',
30
+ categories: toolkit.categories ?? [],
31
+ hasActions: true,
32
+ hasTriggers: false,
33
+ featuredWeight: 0,
34
+ provider: 'composio',
35
+ directId: toolkit.directId ?? null,
36
+ directMcpUrl: toolkit.directMcpUrl ?? null,
37
+ };
38
+ }
32
39
  export function catalogEntryFromDiscover(connector) {
33
40
  return {
34
41
  source: 'discover',
@@ -42,19 +49,6 @@ export function catalogEntryFromDiscover(connector) {
42
49
  popularity: connector.popularity,
43
50
  };
44
51
  }
45
- export function catalogEntryFromEasyConnect(app) {
46
- return {
47
- source: 'easy-connect',
48
- app,
49
- key: `easy-connect:${app.slug}`,
50
- slug: app.slug,
51
- name: app.name,
52
- description: app.description,
53
- icon: app.imgSrc,
54
- categories: app.categories,
55
- popularity: null,
56
- };
57
- }
58
52
  /**
59
53
  * The one fact that varies between cards: HOW this entry connects. Short
60
54
  * nouns, shown as the card's quiet line under the title — every card gets
@@ -73,20 +67,15 @@ export function appNameKey(name) {
73
67
  .replace(/(mcp|mcpserver)$/, '');
74
68
  }
75
69
  export function catalogEntryKindLabel(entry) {
76
- if (entry.source === 'computer')
77
- return 'Native';
78
- // An app with both ways to connect names both.
79
- if (entry.source === 'easy-connect')
80
- return entry.app?.directId ? 'App · MCP' : 'App';
81
- if (entry.alsoApp && entry.connector.kind === 'mcp')
82
- return 'MCP · App';
83
70
  switch (entry.connector.kind) {
71
+ case 'composio':
72
+ return 'Composio';
73
+ case 'kortix':
74
+ return 'Kortix';
84
75
  case 'mcp':
85
76
  return 'MCP';
86
77
  case 'graphql':
87
78
  return 'GraphQL';
88
- case 'cli':
89
- return 'CLI';
90
79
  default:
91
80
  return 'API';
92
81
  }
@@ -149,8 +138,6 @@ export function connectedCatalogKeys(connectors) {
149
138
  return keys;
150
139
  }
151
140
  export function isCatalogEntryConnected(entry, connectedKeys) {
152
- if (entry.source === 'computer')
153
- return connectedKeys.has('provider:computer');
154
141
  return connectedKeys.has(foldKey(entry.slug)) || connectedKeys.has(foldKey(entry.name));
155
142
  }
156
143
  /**
@@ -177,9 +164,6 @@ function tokenIdentifiesEntry(connectorToken, entryToken) {
177
164
  * `install/install.ts`.
178
165
  */
179
166
  export function catalogEntryConnectors(connectors, entry) {
180
- if (entry.source === 'computer') {
181
- return connectors.filter((connector) => connector.provider === 'computer');
182
- }
183
167
  const tokens = [foldKey(entry.slug), foldKey(entry.name)].filter(Boolean);
184
168
  return connectors.filter((connector) => [foldKey(connector.slug), foldKey(connector.name ?? '')].some((connectorToken) => tokens.some((token) => tokenIdentifiesEntry(connectorToken, token))));
185
169
  }
@@ -187,3 +171,7 @@ export function catalogEntryConnectors(connectors, entry) {
187
171
  * `browseSections` in `browse-sections.ts`. Defined in `connector-categories.ts`
188
172
  * and re-exported here for the modules that already import this one. */
189
173
  export { POPULAR_SECTION };
174
+ /** The logo source of a catalogue card (`ConnectorLogo`): same rule as every other surface. */
175
+ export function catalogEntryLogoSource(entry) {
176
+ return discoverLogoSource(entry.connector);
177
+ }
@@ -10,34 +10,6 @@ export interface CatalogInstall {
10
10
  pendingKey: string | null;
11
11
  onInstall: (entry: CatalogEntry) => void;
12
12
  }
13
- /**
14
- * A catalog favicon, or a neutral glyph tile when the record has none or its
15
- * URL fails to load.
16
- *
17
- * A plain `<img>`, not `next/image`. These are third-party favicons on
18
- * arbitrary hosts, so the loader was already bypassed with `unoptimized` — which
19
- * left `fill` costing an absolutely-positioned child inside a `relative`
20
- * wrapper, per card, for no optimisation in return. Native `loading="lazy"`
21
- * defers every icon below the fold, which is most of them on a browse page.
22
- *
23
- * `width`/`height` are set so the box is reserved before the image arrives and
24
- * the grid never reflows around a late favicon.
25
- *
26
- * The broken-image state is the fallback the null case already had: a logo
27
- * URL that 404s used to render the browser's broken-image glyph inside the
28
- * tile, which is worse than no imagery at all. `onError` swaps to the same
29
- * glyph tile — the same fallback a record with no icon gets, so "missing" and
30
- * "unavailable" look identical. Mirrors `ConnectorAppIcon`'s broken state.
31
- *
32
- * The latch is per URL (`failedUrl`, not a boolean): a URL that failed stays
33
- * failed, while a swapped URL gets a fresh try without any call-site key —
34
- * merge-search swaps a merged twin's icon to the managed logo as catalogue
35
- * pages stream in.
36
- */
37
- export declare function ConnectorIcon({ icon, computer, }: {
38
- icon: string | null;
39
- computer?: boolean;
40
- }): import("react").JSX.Element;
41
13
  /**
42
14
  * The catalogue body: one flat, paginated, searchable grid.
43
15
  *
@@ -46,12 +18,11 @@ export declare function ConnectorIcon({ icon, computer, }: {
46
18
  * no per-category deepening loop, no reveal window uncovering already-loaded
47
19
  * cards.
48
20
  */
49
- export declare function ConnectorBrowse({ state, connectedKeys, hrefFor, onOpen, install, emptyTitle, emptyDescription, suppressNoMatch, }: {
21
+ export declare function ConnectorBrowse({ state, connectedKeys, hrefFor, install, emptyTitle, emptyDescription, suppressNoMatch, }: {
50
22
  state: CatalogState;
51
23
  connectedKeys: ReadonlySet<string>;
52
- /** The card's page, or `null` for an entry that opens in place. */
53
- hrefFor: (entry: CatalogEntry) => string | null;
54
- onOpen: (entry: CatalogEntry) => void;
24
+ /** The card's app page. */
25
+ hrefFor: (entry: CatalogEntry) => string;
55
26
  install: CatalogInstall;
56
27
  emptyTitle: string;
57
28
  emptyDescription: string;