@makinbakin/sdk 0.0.1-rc.4 → 0.0.1-rc.40

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 (342) hide show
  1. package/README.md +248 -3
  2. package/_internal/app/components/agent-avatar.d.ts +2 -1
  3. package/_internal/app/components/conversation/attention.d.ts +56 -0
  4. package/_internal/app/components/conversation/fold.d.ts +3 -0
  5. package/_internal/app/components/conversation/notification-sound.d.ts +8 -0
  6. package/_internal/app/components/conversation/reply-toast.d.ts +15 -0
  7. package/_internal/app/components/conversation/thread-id.d.ts +8 -0
  8. package/_internal/app/components/conversation/turn-recorder.d.ts +37 -0
  9. package/_internal/app/components/conversation/use-conversation-attention.d.ts +61 -0
  10. package/_internal/app/components/drawer.d.ts +27 -0
  11. package/_internal/app/components/ui/button.d.ts +2 -8
  12. package/_internal/app/components/ui/dialog.d.ts +2 -17
  13. package/_internal/app/components/ui/sheet.d.ts +2 -14
  14. package/_internal/app/core/conversation-turns.d.ts +229 -0
  15. package/_internal/app/core/logger.d.ts +1 -0
  16. package/_internal/app/core/tool-access.d.ts +42 -0
  17. package/_internal/app/hooks/use-available-models.d.ts +25 -0
  18. package/_internal/app/hooks/use-content-store.d.ts +0 -9
  19. package/_internal/app/hooks/use-history-back.d.ts +5 -0
  20. package/_internal/app/hooks/use-horizontal-resize.d.ts +21 -0
  21. package/_internal/app/hooks/use-json-fetch.d.ts +36 -0
  22. package/_internal/app/hooks/use-nav-badge.d.ts +13 -0
  23. package/_internal/app/hooks/use-plugin-event.d.ts +19 -0
  24. package/_internal/app/hooks/use-query-state.d.ts +3 -12
  25. package/_internal/app/hooks/use-resizable-pane.d.ts +35 -0
  26. package/_internal/app/hooks/use-runtime-status.d.ts +22 -6
  27. package/_internal/app/hooks/use-schedule.d.ts +47 -1
  28. package/_internal/app/hooks/use-search.d.ts +27 -8
  29. package/_internal/app/hooks/use-task-run-history.d.ts +26 -0
  30. package/_internal/app/hooks/use-toast.d.ts +13 -3
  31. package/_internal/app/lib/browser-notify.d.ts +12 -1
  32. package/_internal/app/types/index.d.ts +1 -105
  33. package/_internal/core/adapters/runtime/channels.d.ts +231 -0
  34. package/_internal/core/adapters/runtime/concepts.d.ts +794 -235
  35. package/_internal/core/adapters/runtime/errors.d.ts +105 -0
  36. package/_internal/core/adapters/runtime/helpers.d.ts +19 -0
  37. package/_internal/core/adapters/runtime/index.d.ts +8 -2
  38. package/_internal/core/adapters/runtime/skill-files.d.ts +12 -0
  39. package/_internal/core/adapters/runtime/testing.d.ts +99 -0
  40. package/_internal/core/adapters/runtime/turn-activity.d.ts +23 -0
  41. package/_internal/core/adapters/shared.d.ts +133 -12
  42. package/_internal/core/content-dir.d.ts +11 -0
  43. package/_internal/core/delivery/bridge.d.ts +36 -0
  44. package/_internal/core/docs/route.d.ts +1 -1
  45. package/_internal/core/format/structured.d.ts +44 -0
  46. package/_internal/core/format.d.ts +25 -1
  47. package/_internal/core/health/observation-builders.d.ts +42 -0
  48. package/_internal/core/media/downscale.d.ts +18 -0
  49. package/_internal/core/media/pin-data.d.ts +36 -0
  50. package/_internal/core/media/pin.d.ts +22 -0
  51. package/_internal/core/media/sharp-import.d.ts +10 -0
  52. package/_internal/core/media/sharp-loader.d.ts +41 -0
  53. package/_internal/core/media/store.d.ts +21 -0
  54. package/_internal/core/plugin-types.d.ts +248 -500
  55. package/_internal/core/routing/define.d.ts +33 -3
  56. package/_internal/core/routing/dispatcher.d.ts +15 -6
  57. package/_internal/core/routing/index.d.ts +1 -1
  58. package/_internal/core/routing/types.d.ts +13 -70
  59. package/_internal/core/storage/atomic-write.d.ts +11 -0
  60. package/_internal/core/tasks/store.d.ts +129 -0
  61. package/_internal/core/tasks/testing.d.ts +2 -0
  62. package/_internal/{plugins/workflows/lib → core/workflows}/notification-channel-registry.d.ts +1 -1
  63. package/_internal/host/ui/action-status.d.ts +13 -0
  64. package/_internal/host/ui/modals.d.ts +5 -0
  65. package/_internal/host/ui/resize.d.ts +2 -0
  66. package/_internal/plugins/team/types.d.ts +61 -4
  67. package/_internal/plugins/workflows/hooks/use-notification-channels.d.ts +1 -1
  68. package/_internal/ui/behaviors/clipboard.d.ts +10 -0
  69. package/_internal/ui/behaviors/resize-handle.d.ts +15 -0
  70. package/_internal/ui/behaviors/selection-navigation.d.ts +5 -0
  71. package/_internal/ui/behaviors/use-persisted-leading-edge-resize.d.ts +31 -0
  72. package/_internal/ui/charts/area-chart.d.ts +27 -0
  73. package/_internal/ui/charts/axis.d.ts +13 -0
  74. package/_internal/ui/charts/bar-chart.d.ts +21 -0
  75. package/_internal/ui/charts/chart-data-table.d.ts +61 -0
  76. package/_internal/ui/charts/chart-explainer.d.ts +4 -0
  77. package/_internal/ui/charts/chart-tooltip.d.ts +8 -0
  78. package/_internal/ui/charts/composition-bar.d.ts +46 -0
  79. package/_internal/ui/charts/index.d.ts +24 -0
  80. package/_internal/ui/charts/line-chart.d.ts +26 -0
  81. package/_internal/ui/charts/monotone-curve.d.ts +23 -0
  82. package/_internal/ui/charts/palette.d.ts +32 -0
  83. package/_internal/ui/charts/pie-chart.d.ts +80 -0
  84. package/_internal/ui/charts/ranked-bar-chart.d.ts +41 -0
  85. package/_internal/ui/charts/sparkline.d.ts +16 -0
  86. package/_internal/ui/charts/stacked-column-chart.d.ts +33 -0
  87. package/_internal/ui/content/code-block.d.ts +43 -0
  88. package/_internal/ui/content/index.d.ts +2 -0
  89. package/_internal/ui/conversation/activity-group.d.ts +27 -0
  90. package/_internal/ui/conversation/agent-turn.d.ts +47 -0
  91. package/_internal/ui/conversation/composer.d.ts +62 -0
  92. package/_internal/ui/conversation/context-meter.d.ts +37 -0
  93. package/_internal/ui/conversation/conversation-empty-state.d.ts +13 -0
  94. package/_internal/ui/conversation/conversation-header.d.ts +26 -0
  95. package/_internal/ui/conversation/conversation-panel.d.ts +61 -0
  96. package/_internal/ui/conversation/conversation.d.ts +37 -0
  97. package/_internal/ui/conversation/fold.d.ts +150 -0
  98. package/_internal/ui/conversation/glyphs.d.ts +30 -0
  99. package/_internal/ui/conversation/index.d.ts +31 -0
  100. package/_internal/ui/conversation/queued-message-list.d.ts +22 -0
  101. package/_internal/ui/conversation/relative-time.d.ts +8 -0
  102. package/_internal/ui/conversation/tool-call-drawer.d.ts +14 -0
  103. package/_internal/ui/conversation/turn-controls.d.ts +9 -0
  104. package/_internal/ui/conversation/turn-output.d.ts +42 -0
  105. package/_internal/ui/conversation/turn-usage.d.ts +16 -0
  106. package/_internal/ui/conversation/user-message.d.ts +13 -0
  107. package/_internal/ui/forms/field.d.ts +30 -0
  108. package/_internal/ui/forms/fieldset.d.ts +10 -0
  109. package/_internal/ui/forms/form.d.ts +19 -0
  110. package/_internal/ui/forms/index.d.ts +6 -0
  111. package/_internal/ui/index.d.ts +89 -0
  112. package/_internal/ui/layout/bounded-overflow.d.ts +42 -0
  113. package/_internal/ui/layout/disclosure-panel.d.ts +24 -0
  114. package/_internal/ui/layout/flow.d.ts +27 -0
  115. package/_internal/ui/layout/grid.d.ts +16 -0
  116. package/_internal/ui/layout/index.d.ts +14 -0
  117. package/_internal/ui/layout/page-shell.d.ts +11 -0
  118. package/_internal/ui/layout/panel.d.ts +28 -0
  119. package/_internal/ui/layout/section.d.ts +15 -0
  120. package/_internal/ui/layout/sticky-overflow-scrollbar.d.ts +11 -0
  121. package/_internal/ui/layout/utils.d.ts +1 -0
  122. package/_internal/ui/patterns/agent-filter.d.ts +21 -0
  123. package/_internal/ui/patterns/calendar-grid.d.ts +80 -0
  124. package/_internal/ui/patterns/calendar-item.d.ts +42 -0
  125. package/_internal/ui/patterns/calendar-nav.d.ts +21 -0
  126. package/_internal/ui/patterns/confirm-dialog.d.ts +29 -0
  127. package/_internal/ui/patterns/copy-button.d.ts +15 -0
  128. package/_internal/ui/patterns/danger-zone.d.ts +17 -0
  129. package/_internal/ui/patterns/data-table.d.ts +157 -0
  130. package/_internal/ui/patterns/drawer-section.d.ts +11 -0
  131. package/_internal/ui/patterns/facet-filter.d.ts +22 -0
  132. package/_internal/ui/patterns/filter-indicator.d.ts +3 -0
  133. package/_internal/ui/patterns/guide-card.d.ts +33 -0
  134. package/_internal/ui/patterns/index.d.ts +75 -0
  135. package/_internal/ui/patterns/inspector-panel.d.ts +39 -0
  136. package/_internal/ui/patterns/kanban.d.ts +70 -0
  137. package/_internal/ui/patterns/key-value.d.ts +35 -0
  138. package/_internal/ui/patterns/list-rows.d.ts +111 -0
  139. package/_internal/ui/patterns/nav-list.d.ts +41 -0
  140. package/_internal/ui/patterns/node-card.d.ts +37 -0
  141. package/_internal/ui/patterns/page-aside.d.ts +49 -0
  142. package/_internal/ui/patterns/page-body.d.ts +49 -0
  143. package/_internal/ui/patterns/page-canvas.d.ts +12 -0
  144. package/_internal/ui/patterns/page-composer.d.ts +8 -0
  145. package/_internal/ui/patterns/page-controls.d.ts +33 -0
  146. package/_internal/ui/patterns/page-header.d.ts +40 -0
  147. package/_internal/ui/patterns/page-timeline.d.ts +18 -0
  148. package/_internal/ui/patterns/page.d.ts +32 -0
  149. package/_internal/ui/patterns/pagination.d.ts +23 -0
  150. package/_internal/ui/patterns/save-bar.d.ts +21 -0
  151. package/_internal/ui/patterns/search-input.d.ts +20 -0
  152. package/_internal/ui/patterns/segmented-control.d.ts +22 -0
  153. package/_internal/ui/patterns/sortable-head.d.ts +13 -0
  154. package/_internal/ui/patterns/stat-group.d.ts +8 -0
  155. package/_internal/ui/patterns/stat-tile.d.ts +25 -0
  156. package/_internal/ui/patterns/status-badge.d.ts +15 -0
  157. package/_internal/ui/patterns/status-marker.d.ts +10 -0
  158. package/_internal/ui/patterns/timeline.d.ts +59 -0
  159. package/_internal/ui/patterns/unsaved-changes-dialog.d.ts +22 -0
  160. package/_internal/ui/patterns/workspace-page.d.ts +76 -0
  161. package/_internal/ui/primitives/alert.d.ts +17 -0
  162. package/_internal/ui/primitives/avatar.d.ts +13 -0
  163. package/_internal/ui/primitives/badge.d.ts +27 -0
  164. package/_internal/ui/primitives/button.d.ts +32 -0
  165. package/_internal/ui/primitives/card.d.ts +55 -0
  166. package/_internal/ui/primitives/checkbox.d.ts +3 -0
  167. package/_internal/ui/primitives/collapsible.d.ts +7 -0
  168. package/_internal/ui/primitives/color-input.d.ts +21 -0
  169. package/_internal/ui/primitives/combobox.d.ts +40 -0
  170. package/_internal/ui/primitives/command.d.ts +36 -0
  171. package/_internal/ui/primitives/control-styles.d.ts +10 -0
  172. package/_internal/ui/primitives/dialog.d.ts +31 -0
  173. package/_internal/ui/primitives/dropdown-menu.d.ts +54 -0
  174. package/_internal/ui/primitives/file-input.d.ts +33 -0
  175. package/_internal/ui/primitives/input-group.d.ts +30 -0
  176. package/_internal/ui/primitives/input.d.ts +10 -0
  177. package/_internal/ui/primitives/interactive-surface.d.ts +24 -0
  178. package/_internal/ui/primitives/label.d.ts +3 -0
  179. package/_internal/ui/primitives/modal-context.d.ts +9 -0
  180. package/_internal/ui/primitives/option-list.d.ts +10 -0
  181. package/_internal/ui/primitives/popover.d.ts +18 -0
  182. package/_internal/ui/primitives/portal-ownership.d.ts +11 -0
  183. package/_internal/ui/primitives/progress.d.ts +38 -0
  184. package/_internal/ui/primitives/radio-group.d.ts +12 -0
  185. package/_internal/ui/primitives/select.d.ts +35 -0
  186. package/_internal/ui/primitives/separator.d.ts +7 -0
  187. package/_internal/ui/primitives/sheet.d.ts +34 -0
  188. package/_internal/ui/primitives/shimmer-text.d.ts +13 -0
  189. package/_internal/ui/primitives/skeleton.d.ts +6 -0
  190. package/_internal/ui/primitives/spinner.d.ts +31 -0
  191. package/_internal/ui/primitives/switch.d.ts +6 -0
  192. package/_internal/{app/components/ui → ui/primitives}/tabs.d.ts +1 -1
  193. package/_internal/ui/primitives/text.d.ts +43 -0
  194. package/_internal/ui/primitives/textarea.d.ts +19 -0
  195. package/_internal/ui/primitives/tooltip.d.ts +14 -0
  196. package/_internal/ui/primitives/use-textarea-autosize.d.ts +3 -0
  197. package/_internal/ui/private-ui-boundary-probe.d.ts +9 -0
  198. package/_internal/ui/states/banner.d.ts +15 -0
  199. package/_internal/ui/states/index.d.ts +6 -0
  200. package/_internal/ui/states/system-state.d.ts +88 -0
  201. package/_internal/ui/states/toast.d.ts +26 -0
  202. package/_internal/ui/utils.d.ts +14 -0
  203. package/bin/bakin-plugin-test-ui.js +6854 -0
  204. package/charts/index.d.ts +3 -0
  205. package/charts/index.js +2 -0
  206. package/content/index.d.ts +14 -0
  207. package/content/index.js +38 -0
  208. package/content/markdown-comparison.d.ts +12 -0
  209. package/content/markdown-content.d.ts +18 -0
  210. package/content/markdown-document.d.ts +4 -0
  211. package/content/markdown-editor.d.ts +35 -0
  212. package/conversation/index.d.ts +50 -0
  213. package/conversation/index.js +4 -0
  214. package/conversation/use-conversation-thread.d.ts +73 -0
  215. package/hooks/index.d.ts +86 -11
  216. package/hooks/index.js +1 -1747
  217. package/hooks/router.d.ts +4 -36
  218. package/index.d.ts +30 -6
  219. package/index.js +10 -14210
  220. package/internal/index.d.ts +74 -0
  221. package/internal/index.js +2 -0
  222. package/internal/lazy.d.ts +58 -0
  223. package/internal/plugin-ownership.d.ts +18 -0
  224. package/internal/private-ui-boundary-probe.d.ts +2 -0
  225. package/layout/index.d.ts +9 -0
  226. package/layout/index.js +2 -0
  227. package/metadata/index.d.ts +14 -1
  228. package/metadata/index.js +1 -30
  229. package/navigation/history-back.d.ts +5 -0
  230. package/navigation/index.d.ts +23 -0
  231. package/navigation/index.js +2 -0
  232. package/navigation/plugin-link.d.ts +11 -0
  233. package/navigation/query-state.d.ts +7 -0
  234. package/navigation/router.d.ts +35 -0
  235. package/navigation/search-params.d.ts +7 -0
  236. package/navigation/unsaved-changes-guard.d.ts +35 -0
  237. package/package.json +63 -10
  238. package/patterns/agent-patterns.d.ts +81 -0
  239. package/patterns/asset-library-picker.d.ts +38 -0
  240. package/patterns/channel-patterns.d.ts +32 -0
  241. package/patterns/index.d.ts +40 -0
  242. package/patterns/index.js +47 -0
  243. package/patterns/picker-patterns.d.ts +108 -0
  244. package/patterns/plugin-settings-renderer.d.ts +41 -0
  245. package/patterns/presentation-color.d.ts +2 -0
  246. package/patterns/search-patterns.d.ts +51 -0
  247. package/register.d.ts +63 -9
  248. package/routing/index.d.ts +6 -1
  249. package/routing/index.js +10 -14014
  250. package/slots/index.d.ts +12 -24
  251. package/slots/index.js +1 -91
  252. package/slots/registry.d.ts +45 -0
  253. package/styles.css +2 -0
  254. package/testing/index.d.ts +122 -0
  255. package/testing/index.js +93 -0
  256. package/testing/ui/conformance/cli.d.ts +2 -0
  257. package/testing/ui/conformance/contracts.d.ts +73 -0
  258. package/testing/ui/conformance/index.d.ts +11 -0
  259. package/testing/ui/conformance/index.js +85 -0
  260. package/testing/ui/conformance/plugin-css.d.ts +37 -0
  261. package/testing/ui/conformance/plugin-id.d.ts +6 -0
  262. package/testing/ui/conformance/runner.d.ts +13 -0
  263. package/testing/ui/index.d.ts +24 -0
  264. package/testing/ui/index.js +2 -0
  265. package/testing/ui/plugin-ui-fixture-host.d.ts +36 -0
  266. package/testing/ui/runtime.d.ts +70 -0
  267. package/types/api-route.d.ts +89 -0
  268. package/types/context.d.ts +166 -0
  269. package/types/conversation-turns.d.ts +229 -0
  270. package/types/events.d.ts +10 -0
  271. package/types/health.d.ts +376 -0
  272. package/types/index.d.ts +19 -919
  273. package/types/index.js +1 -0
  274. package/types/manifest.d.ts +255 -0
  275. package/types/primitives.d.ts +33 -0
  276. package/types/registration.d.ts +281 -0
  277. package/types/runtime.d.ts +292 -0
  278. package/types/scheduled-events.d.ts +80 -0
  279. package/types/services.d.ts +599 -0
  280. package/ui/index.d.ts +73 -31
  281. package/ui/index.js +38 -28704
  282. package/utils/asset-id.d.ts +15 -0
  283. package/utils/index.d.ts +27 -7
  284. package/utils/index.js +4 -2098
  285. package/utils/plugin-fetch.d.ts +44 -0
  286. package/_internal/app/components/agent-filter.d.ts +0 -8
  287. package/_internal/app/components/agent-select.d.ts +0 -15
  288. package/_internal/app/components/agent-status.d.ts +0 -8
  289. package/_internal/app/components/bakin-drawer.d.ts +0 -23
  290. package/_internal/app/components/color-picker.d.ts +0 -7
  291. package/_internal/app/components/empty-state.d.ts +0 -10
  292. package/_internal/app/components/error-banner.d.ts +0 -6
  293. package/_internal/app/components/error-state.d.ts +0 -8
  294. package/_internal/app/components/facet-filter.d.ts +0 -17
  295. package/_internal/app/components/integrated-brainstorm/activity.d.ts +0 -23
  296. package/_internal/app/components/integrated-brainstorm/collapsed-header.d.ts +0 -14
  297. package/_internal/app/components/integrated-brainstorm/empty-state.d.ts +0 -5
  298. package/_internal/app/components/integrated-brainstorm/index.d.ts +0 -8
  299. package/_internal/app/components/integrated-brainstorm/input-row.d.ts +0 -16
  300. package/_internal/app/components/integrated-brainstorm/message-list.d.ts +0 -8
  301. package/_internal/app/components/integrated-brainstorm/session.d.ts +0 -16
  302. package/_internal/app/components/integrated-brainstorm/sse.d.ts +0 -8
  303. package/_internal/app/components/integrated-brainstorm/thinking-indicator.d.ts +0 -19
  304. package/_internal/app/components/integrated-brainstorm/types.d.ts +0 -63
  305. package/_internal/app/components/integrated-brainstorm/use-auto-grow.d.ts +0 -6
  306. package/_internal/app/components/integrated-brainstorm/use-brainstorm-state.d.ts +0 -21
  307. package/_internal/app/components/markdown-content.d.ts +0 -3
  308. package/_internal/app/components/markdown-editor.d.ts +0 -11
  309. package/_internal/app/components/model-select.d.ts +0 -9
  310. package/_internal/app/components/page-layout.d.ts +0 -9
  311. package/_internal/app/components/plugin-header.d.ts +0 -16
  312. package/_internal/app/components/plugin-settings-renderer.d.ts +0 -9
  313. package/_internal/app/components/sortable-head.d.ts +0 -13
  314. package/_internal/app/components/ui/alert.d.ts +0 -10
  315. package/_internal/app/components/ui/avatar.d.ts +0 -11
  316. package/_internal/app/components/ui/badge.d.ts +0 -7
  317. package/_internal/app/components/ui/card.d.ts +0 -11
  318. package/_internal/app/components/ui/checkbox.d.ts +0 -3
  319. package/_internal/app/components/ui/collapsible.d.ts +0 -5
  320. package/_internal/app/components/ui/command.d.ts +0 -19
  321. package/_internal/app/components/ui/dropdown-menu.d.ts +0 -29
  322. package/_internal/app/components/ui/form.d.ts +0 -23
  323. package/_internal/app/components/ui/input-group.d.ts +0 -18
  324. package/_internal/app/components/ui/input.d.ts +0 -3
  325. package/_internal/app/components/ui/label.d.ts +0 -3
  326. package/_internal/app/components/ui/popover.d.ts +0 -9
  327. package/_internal/app/components/ui/progress.d.ts +0 -7
  328. package/_internal/app/components/ui/select.d.ts +0 -15
  329. package/_internal/app/components/ui/separator.d.ts +0 -3
  330. package/_internal/app/components/ui/skeleton.d.ts +0 -2
  331. package/_internal/app/components/ui/switch.d.ts +0 -5
  332. package/_internal/app/components/ui/textarea.d.ts +0 -3
  333. package/_internal/app/components/ui/tooltip.d.ts +0 -6
  334. package/_internal/app/components/underline-tabs.d.ts +0 -15
  335. package/_internal/app/hooks/use-assets.d.ts +0 -25
  336. package/_internal/app/hooks/use-form-guard.d.ts +0 -5
  337. package/_internal/app/hooks/use-vertical-resize.d.ts +0 -22
  338. package/_internal/app/lib/utils.d.ts +0 -2
  339. package/_internal/plugins/workflows/hooks/channel-icon.d.ts +0 -6
  340. package/components/index.d.ts +0 -34
  341. package/components/index.js +0 -40175
  342. /package/_internal/{app/components/ui → ui/primitives}/table.d.ts +0 -0
package/types/index.js CHANGED
@@ -1 +1,2 @@
1
1
  // @bun
2
+ var HEALTH_INCIDENT_CLASSES=["service_failure","data_integrity","budget_block","evidence_gap","usage_anomaly","unattributed_usage","runaway_usage","cleanup_backlog","policy_denial","unsupported_surface"];export{HEALTH_INCIDENT_CLASSES};
@@ -0,0 +1,255 @@
1
+ import type { HttpMethod } from './primitives';
2
+ import type { NavItem } from './registration';
3
+ /** Capability a plugin can request in its manifest (gates access to APIs). */
4
+ export type PluginPermission = 'storage.read' | 'storage.write' | 'events.emit' | 'runtime.read' | 'runtime.agents' | 'runtime.messaging' | 'runtime.channels' | 'runtime.cron' | 'runtime.skills' | 'runtime.models' | 'runtime.images' | 'tasks.read' | 'tasks.write' | 'search.read' | 'search.write' | 'assets.read' | 'assets.write';
5
+ /** Runtime feature a plugin declares it needs (used by doctor/health checks). */
6
+ export type RuntimeCapability = 'agents' | 'messaging' | 'channels.message' | 'channels.rich-content' | 'channels.interactive-approval' | 'channels.threaded-replies' | 'cron' | 'skills' | 'models' | 'tasks' | 'search';
7
+ /** Secret (env var) a plugin declares it needs (rendered in setup/health). */
8
+ export interface SecretDeclaration {
9
+ /** Canonical environment variable name, for example `ANTHROPIC_API_KEY`. */
10
+ name: string;
11
+ /** Human-readable setup note. Never include a secret value here. */
12
+ description: string;
13
+ /** Missing required secrets should be reported by setup/health checks. Defaults to true. */
14
+ required: boolean;
15
+ }
16
+ /** Manifest declaration of an HTTP route the plugin exposes. */
17
+ export interface ApiRouteContribution {
18
+ method: HttpMethod;
19
+ /** Plugin-relative path. Exposed as `/api/plugins/{pluginId}{path}`. */
20
+ path: string;
21
+ summary: string;
22
+ description?: string;
23
+ operationId?: string;
24
+ tags?: string[];
25
+ visibility?: 'public' | 'internal' | 'experimental';
26
+ stability?: 'stable' | 'beta' | 'experimental' | 'deprecated';
27
+ parameters?: ApiParameterContribution[];
28
+ requestBody?: ApiRequestBodyContribution;
29
+ responses?: Record<string, ApiResponseContribution>;
30
+ permissions?: PluginPermission[];
31
+ }
32
+ /** Raw JSON Schema object embedded in API contributions. */
33
+ export type JsonSchemaContribution = Record<string, unknown>;
34
+ /** Path/query/header/cookie parameter declaration for an API route. */
35
+ export interface ApiParameterContribution {
36
+ name: string;
37
+ in: 'path' | 'query' | 'header' | 'cookie';
38
+ required?: boolean;
39
+ description?: string;
40
+ schema?: JsonSchemaContribution;
41
+ example?: unknown;
42
+ }
43
+ /** Request body declaration for an API route. */
44
+ export interface ApiRequestBodyContribution {
45
+ description?: string;
46
+ required?: boolean;
47
+ contentType?: string;
48
+ schema?: JsonSchemaContribution;
49
+ example?: unknown;
50
+ }
51
+ /** Response declaration for one HTTP status code on an API route. */
52
+ export interface ApiResponseContribution {
53
+ description: string;
54
+ contentType?: string;
55
+ schema?: JsonSchemaContribution;
56
+ example?: unknown;
57
+ }
58
+ /** Manifest declaration of a client-side route the plugin contributes. */
59
+ export interface ClientRouteContribution {
60
+ /** Absolute app route, e.g. `/messaging/calendar`. */
61
+ path: string;
62
+ summary: string;
63
+ slot?: string;
64
+ }
65
+ /**
66
+ * Manifest declaration of one client route *pattern* the plugin's client
67
+ * registers via `registerPlugin({ routes })`. Unlike `clientRoutes` (concrete
68
+ * documentation paths), these patterns must exactly match the keys passed to
69
+ * `registerPlugin({ routes })` — including dynamic segments (`/projects/[id]`)
70
+ * — so the host knows which plugin owns a path before its client has loaded.
71
+ */
72
+ export interface ClientRoutePatternContribution {
73
+ /** Route pattern, e.g. `/projects/[id]`. Supports `[id]`, `:id`, `$id` segments. */
74
+ path: string;
75
+ summary?: string;
76
+ }
77
+ /** Manifest declaration of an MCP exec tool the plugin exposes. */
78
+ export interface ExecToolContribution {
79
+ name: string;
80
+ summary: string;
81
+ description?: string;
82
+ permissions?: PluginPermission[];
83
+ }
84
+ /** Manifest declaration of a CLI command the plugin contributes. */
85
+ export interface CliCommandContribution {
86
+ name: string;
87
+ usage: string;
88
+ summary: string;
89
+ description?: string;
90
+ aliases?: string[];
91
+ /** Optional. When present, the manifest-driven CLI dispatcher routes the
92
+ * command through either the named exec-tool or the given API route.
93
+ * When absent, the command is documentation-only — its real
94
+ * implementation lives in `cli/bakin.ts`'s imperative switch. */
95
+ dispatch?: {
96
+ type: 'apiRoute';
97
+ method: HttpMethod;
98
+ path: string;
99
+ } | {
100
+ type: 'execTool';
101
+ name: string;
102
+ };
103
+ }
104
+ /** Manifest declaration of a settings key the plugin owns. */
105
+ export interface SettingsContribution {
106
+ key: string;
107
+ summary: string;
108
+ }
109
+ /** Manifest declaration of the plugin's docs page slug. */
110
+ export interface DocsContribution {
111
+ slug: string;
112
+ }
113
+ /** The full contributions block in `bakin-plugin.json` — everything a plugin adds to the host. */
114
+ export interface PluginContributions {
115
+ /** HTTP routes the plugin exposes under `/api/plugins/{id}/...`. */
116
+ apiRoutes?: ApiRouteContribution[];
117
+ /** Client-side routes the plugin renders (sidebar nav targets). */
118
+ clientRoutes?: ClientRouteContribution[];
119
+ /** MCP exec tools agents can call. */
120
+ execTools?: ExecToolContribution[];
121
+ /** CLI commands the plugin contributes to the `bakin` binary. */
122
+ cliCommands?: CliCommandContribution[];
123
+ /** Settings keys this plugin owns in the settings UI. */
124
+ settings?: SettingsContribution[];
125
+ /** Optional docs page slug. */
126
+ docs?: DocsContribution;
127
+ /**
128
+ * Declarative sidebar nav items. Rendered from manifest JSON before the
129
+ * plugin's client bundle loads — this is what makes lazy loading possible.
130
+ * A plugin that also passes `navItems` to `registerPlugin` at runtime
131
+ * overrides its manifest nav (the conditional-nav escape hatch); the two
132
+ * are compared by the drift validation check.
133
+ */
134
+ nav?: NavItem[];
135
+ /**
136
+ * Client route patterns the plugin's client registers via
137
+ * `registerPlugin({ routes })`. Must exactly match the registered keys —
138
+ * the host uses these to lazy-load the client on first navigation.
139
+ */
140
+ routes?: ClientRoutePatternContribution[];
141
+ /**
142
+ * Slot names the plugin's client fills via `registerPlugin({ slots })`
143
+ * (e.g. `page:/tasks`, `task-assets`). The host lazy-loads the client the
144
+ * first time one of these slots renders.
145
+ */
146
+ slots?: string[];
147
+ /**
148
+ * Load the client bundle at boot instead of on first demand. The escape
149
+ * hatch for plugins with background providers (`nav-badge-providers`),
150
+ * conditional nav, or other module-load side effects the shell needs
151
+ * immediately. Plugins with a client but no declarative `nav`/`routes`/
152
+ * `slots` metadata are treated as eager for backward compatibility.
153
+ */
154
+ eager?: boolean;
155
+ }
156
+ /** Optional Ed25519 signature block proving manifest authenticity. */
157
+ export interface PluginManifestSignature {
158
+ algorithm: 'ed25519';
159
+ /** Human-readable signer label. Trust is bound to publicKey/fingerprint, not this label. */
160
+ signer: string;
161
+ /** Base64-encoded Ed25519 SPKI DER public key. */
162
+ publicKey: string;
163
+ /** Base64-encoded signature over the canonical manifest without this signature block. */
164
+ signature: string;
165
+ }
166
+ /** The `bakin-plugin.json` manifest. Required for every plugin. */
167
+ /** Platform keys follow `process.platform-process.arch`. */
168
+ export type PluginBinPlatform = 'darwin-arm64' | 'darwin-x64' | 'linux-x64' | 'linux-arm64';
169
+ /** One pinned, sha256-verified download of a required binary. */
170
+ export interface PluginBinDownload {
171
+ /** https URL (loopback http allowed for local fixtures). */
172
+ url: string;
173
+ /** Hex sha256 of the download (the archive when `archive` is set). */
174
+ sha256: string;
175
+ /** Present when the download is a tarball; `member` is the file extracted as the binary. */
176
+ archive?: {
177
+ format: 'tar.gz';
178
+ member: string;
179
+ };
180
+ /** Download size in bytes, shown in consent/install UIs when present. */
181
+ sizeBytes?: number;
182
+ }
183
+ /**
184
+ * A binary Bakin installs into `~/.bakin/bin` with the plugin — disclosed at
185
+ * install consent, verified by the doctor, removed with the plugin unless
186
+ * another owner still pins it.
187
+ */
188
+ export interface PluginBinRequirement {
189
+ /** Name as invoked from PATH. */
190
+ name: string;
191
+ version: string;
192
+ /** Per-platform downloads; a platform without an entry fails install preflight on that platform. */
193
+ install: Partial<Record<PluginBinPlatform, PluginBinDownload>>;
194
+ /** Args for the verify-then-commit probe run (e.g. `["-V"]`). */
195
+ verifyArgs?: string[];
196
+ }
197
+ export interface PluginManifest {
198
+ /** Removal must run the loaded plugin's beforeUninstall hook successfully. */
199
+ uninstallPreflightRequired?: boolean;
200
+ /** Unique plugin identifier (kebab-case). */
201
+ id: string;
202
+ /** Human-readable plugin name. */
203
+ name: string;
204
+ /** Plugin version (semver). */
205
+ version: string;
206
+ /**
207
+ * Semver range of Bakin host versions this plugin supports (e.g.
208
+ * `">=0.5.0"`). Enforced at install and at activation: an incompatible or
209
+ * malformed range rejects with an actionable error. Dev-source hosts
210
+ * (version `0.0.0-dev`) skip the satisfaction check but still reject
211
+ * malformed ranges.
212
+ */
213
+ bakin: string;
214
+ /** One-line summary shown in the plugin manager. */
215
+ description: string;
216
+ /** Static content files the plugin ships (rendered as docs/pages). */
217
+ contentFiles?: string[];
218
+ /** Environment-variable secrets the plugin requires. */
219
+ secrets?: SecretDeclaration[];
220
+ /** Other plugin IDs this plugin depends on. */
221
+ dependencies?: string[];
222
+ /** Capabilities this plugin requests access to. */
223
+ permissions?: PluginPermission[];
224
+ /** Runtime features this plugin needs to function. */
225
+ runtimeCapabilities?: RuntimeCapability[];
226
+ /** Everything the plugin adds to the host (routes, tools, settings, etc.). */
227
+ contributes?: PluginContributions;
228
+ /** File globs that trigger a hot reload in dev. */
229
+ devWatch?: string[];
230
+ /** Optional Ed25519 signature for authenticity. */
231
+ signature?: PluginManifestSignature;
232
+ /** Binaries Bakin installs with the plugin (`requires.bins`). */
233
+ requires?: {
234
+ bins?: PluginBinRequirement[];
235
+ };
236
+ }
237
+ /** The `bakin.config.ts` shape — root configuration for a Bakin installation. */
238
+ export interface BakinConfig {
239
+ /** Plugins to load at startup. */
240
+ plugins: PluginEntry[];
241
+ /** Theme overrides for CSS custom properties. */
242
+ theme?: Record<string, string>;
243
+ /** Storage configuration. */
244
+ storage?: {
245
+ /** Override the default content directory. */
246
+ contentDir?: string;
247
+ };
248
+ }
249
+ /** A plugin entry in `bakin.config.ts`. */
250
+ export interface PluginEntry {
251
+ /** Path or package specifier resolving to the plugin's entry file. */
252
+ path: string;
253
+ /** If false, the plugin is loaded but not activated. Default true. */
254
+ enabled?: boolean;
255
+ }
@@ -0,0 +1,33 @@
1
+ /** HTTP method literal used in route and contribution definitions. */
2
+ export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
3
+ /** Visibility tier for a documented contract (route, hook, tool, etc.). */
4
+ export type ContractVisibility = 'public' | 'internal' | 'experimental';
5
+ /** Stability tier for a documented contract. */
6
+ export type ContractStability = 'stable' | 'beta' | 'experimental' | 'deprecated';
7
+ /** Minimal interface a validation schema must satisfy (Zod-compatible). */
8
+ export interface SchemaLike<T = unknown> {
9
+ parse(data: unknown): T;
10
+ safeParse?(data: unknown): {
11
+ success: true;
12
+ data: T;
13
+ } | {
14
+ success: false;
15
+ error: unknown;
16
+ };
17
+ }
18
+ /** Pointer to a symbol's source file location, used in generated docs. */
19
+ export interface SourceLocation {
20
+ file: string;
21
+ symbol?: string;
22
+ line?: number;
23
+ }
24
+ /** Reference example for a documented contract (request/response or code snippet). */
25
+ export interface DocsExample {
26
+ title: string;
27
+ description?: string;
28
+ code?: string;
29
+ request?: unknown;
30
+ response?: unknown;
31
+ test?: 'automated' | 'schema' | 'illustrative';
32
+ reason?: string;
33
+ }
@@ -0,0 +1,281 @@
1
+ import type { ComponentType } from 'react';
2
+ import type { z, ZodRawShape } from 'zod';
3
+ import type { ActivityAPI, EventBus, HookAPI, StorageAdapter } from './context';
4
+ import type { SchemaLike } from './primitives';
5
+ import type { AgentRuntimeAdapter } from './runtime';
6
+ import type { AssetsAPI, SearchAPI, TaskService } from './services';
7
+ import type { ActivityClass } from './api-route';
8
+ /** Visual tone for a {@link NavBadge}. Maps to a fixed palette in the sidebar.
9
+ * Ordered by severity: `error` (red) is the most urgent and wins rollups. */
10
+ export type NavBadgeTone = 'error' | 'attention' | 'info' | 'success';
11
+ /**
12
+ * Runtime badge attached to a nav item. Both fields are optional:
13
+ * - `count` present → renders as a small pill (clamped at `99+`).
14
+ * - `count` omitted but object present → renders as a small dot.
15
+ * - `count: 0` or passing `null` to `setNavBadge` clears the badge.
16
+ * `tone` defaults to `'attention'`.
17
+ */
18
+ export interface NavBadge {
19
+ count?: number;
20
+ tone?: NavBadgeTone;
21
+ }
22
+ /** Host-defined sidebar section a top-level plugin nav item may join. */
23
+ export type NavSection = 'plan-and-automate' | 'create' | 'operations';
24
+ /** Sidebar navigation item registered by a plugin via `ctx.registerNav()`. */
25
+ export interface NavItem {
26
+ /** Unique nav item id (used for active-state tracking and badge keying). */
27
+ id: string;
28
+ /** Display label in the sidebar. */
29
+ label: string;
30
+ /** Lucide icon name (e.g. "tasks", "calendar"). */
31
+ icon?: string;
32
+ /** Target route path. */
33
+ href?: string;
34
+ /** Sort order within the parent group. Lower renders first. */
35
+ order?: number;
36
+ /** Optional nested nav items for groups. */
37
+ children?: NavItem[];
38
+ /** Top-level destination. Omit to render under Mix-ins. */
39
+ section?: NavSection;
40
+ /**
41
+ * Initial badge state. Runtime updates flow through `setNavBadge` — the
42
+ * rendered badge for an item is `runtimeRegistry.get(id) ?? item.badge`.
43
+ * Most plugins leave this undefined and set badges purely at runtime.
44
+ */
45
+ badge?: NavBadge;
46
+ }
47
+ /** Slot registration record: place a component at a named extension point. */
48
+ export interface UISlotRegistration {
49
+ slot: string;
50
+ component: ComponentType<Record<string, unknown>>;
51
+ order?: number;
52
+ }
53
+ /** Static content file shipped with a plugin (e.g. README, docs page). */
54
+ export interface ContentFile {
55
+ path: string;
56
+ }
57
+ /** Result returned from an exec tool handler. */
58
+ export interface ExecToolResult {
59
+ ok: boolean;
60
+ error?: string;
61
+ details?: unknown;
62
+ [key: string]: unknown;
63
+ }
64
+ /** Context passed to an exec tool handler. Subset of PluginContext sans UI registration. */
65
+ export interface PluginToolContext {
66
+ /** Verified caller, set by the host transport and absent on untrusted calls. */
67
+ invocation?: {
68
+ agentId: string;
69
+ };
70
+ /** Plugin-scoped storage adapter. */
71
+ storage: StorageAdapter;
72
+ /** Cross-plugin event bus. */
73
+ events: EventBus;
74
+ /** ID of the plugin owning this tool. */
75
+ pluginId: string;
76
+ /** Agent runtime adapter (messaging, agents, channels, cron). */
77
+ runtime: AgentRuntimeAdapter;
78
+ /** Task CRUD service. */
79
+ tasks: TaskService;
80
+ /** Search API. */
81
+ search: SearchAPI;
82
+ /** Assets API. */
83
+ assets: AssetsAPI;
84
+ /** Hook registry. */
85
+ hooks: HookAPI;
86
+ /** Activity feed and audit log. */
87
+ activity: ActivityAPI;
88
+ /** Read this plugin's persisted settings. */
89
+ getSettings<T = Record<string, unknown>>(): T;
90
+ }
91
+ /** MCP exec tool definition registered via `ctx.registerExecTool()`. */
92
+ export interface ExecToolDefinition<Shape extends ZodRawShape = ZodRawShape> {
93
+ /** Requires a runtime-bound or credential-verified caller. */
94
+ requiresVerifiedAgent?: boolean;
95
+ /** Tool name. Convention: `bakin_exec_{pluginId}_{action}`. */
96
+ name: string;
97
+ /** Description shown to the agent (used for tool selection). */
98
+ description: string;
99
+ /** Optional UI label for the activity feed. */
100
+ label?: string;
101
+ /** If true, this tool can fire multiple times in a single agent turn. */
102
+ activityDuplicate?: boolean;
103
+ /** Usage classification propagated by every generic exec-tool transport. Defaults to foreground user activity. */
104
+ activityClass?: ActivityClass;
105
+ /** Zod raw shape describing the tool's parameters. */
106
+ parameters: Shape;
107
+ /** Handler. Params are inferred from `parameters` — declare once, get typed params. */
108
+ handler: (params: z.infer<z.ZodObject<Shape>>, agent: string, ctx?: PluginToolContext) => Promise<ExecToolResult>;
109
+ /** Optional source-file path for generated docs. */
110
+ source?: string;
111
+ }
112
+ /** Runtime skill definition registered via `ctx.registerSkill()`. */
113
+ export interface SkillDefinition {
114
+ name: string;
115
+ instructions: string;
116
+ output_schema?: Record<string, unknown>;
117
+ source?: string;
118
+ /** Absolute source markdown file path when the skill was loaded from a managed package/plugin file. */
119
+ sourcePath?: string;
120
+ }
121
+ /** Layout hints for a workflow's canvas rendering. */
122
+ export interface WorkflowLayoutInput {
123
+ positions?: Record<string, {
124
+ x: number;
125
+ y: number;
126
+ [key: string]: unknown;
127
+ }>;
128
+ [key: string]: unknown;
129
+ }
130
+ /** Plugin-contributed workflow definition input shape. */
131
+ export interface WorkflowDefinitionInput {
132
+ id?: string;
133
+ name: string;
134
+ description: string;
135
+ version: number;
136
+ inputs?: Record<string, unknown>;
137
+ layout?: WorkflowLayoutInput;
138
+ steps: unknown[];
139
+ [key: string]: unknown;
140
+ }
141
+ /** Field types supported by FormField. */
142
+ export type FormFieldType = 'string' | 'text' | 'number' | 'boolean' | 'select' | 'agent' | 'skill' | 'list';
143
+ /** Form field descriptor for plugin-contributed workflow nodes. */
144
+ export interface FormField {
145
+ name: string;
146
+ type: FormFieldType;
147
+ required?: boolean;
148
+ description?: string;
149
+ options?: {
150
+ value: string;
151
+ label: string;
152
+ }[];
153
+ }
154
+ /** Edge constraints for a plugin-contributed workflow node type. */
155
+ export interface EdgeRules {
156
+ maxInbound?: number;
157
+ maxOutbound?: number;
158
+ }
159
+ /** Workflow node type contributed by a plugin (custom step kind). */
160
+ export interface PluginNodeTypeInput<T = unknown> {
161
+ kind: string;
162
+ zodSchema: SchemaLike<T>;
163
+ formFields: FormField[];
164
+ edgeRules?: EdgeRules;
165
+ }
166
+ /** Notification channel definition contributed by a plugin. */
167
+ export interface PluginNotificationChannelInput {
168
+ id: string;
169
+ label: string;
170
+ initials?: string;
171
+ icon?: string;
172
+ }
173
+ interface BaseSettingsField {
174
+ key: string;
175
+ label: string;
176
+ description?: string;
177
+ required?: boolean;
178
+ }
179
+ /** Single-line text settings field. */
180
+ export interface StringSettingsField extends BaseSettingsField {
181
+ type: 'string';
182
+ default?: string;
183
+ }
184
+ /** Numeric settings field with optional default. */
185
+ export interface NumberSettingsField extends BaseSettingsField {
186
+ type: 'number';
187
+ default?: number;
188
+ }
189
+ /** Boolean toggle settings field. */
190
+ export interface BooleanSettingsField extends BaseSettingsField {
191
+ type: 'boolean';
192
+ default?: boolean;
193
+ }
194
+ /** Dropdown settings field with predefined options. */
195
+ export interface SelectSettingsField extends BaseSettingsField {
196
+ type: 'select';
197
+ options: {
198
+ value: string;
199
+ label: string;
200
+ }[];
201
+ default?: string;
202
+ }
203
+ /** Repeatable list settings field with per-item shape. */
204
+ export interface ListSettingsField extends BaseSettingsField {
205
+ type: 'list';
206
+ itemShape: Record<string, StringSettingsField | NumberSettingsField | BooleanSettingsField | SelectSettingsField>;
207
+ default?: unknown[];
208
+ addLabel?: string;
209
+ minItems?: number;
210
+ maxItems?: number;
211
+ uniqueField?: string;
212
+ }
213
+ /**
214
+ * Per-agent on/off grid. The renderer lists every agent in the roster with its
215
+ * avatar and a toggle; the stored value is the array of enabled agent ids.
216
+ */
217
+ export interface AgentTogglesSettingsField extends BaseSettingsField {
218
+ type: 'agent-toggles';
219
+ default?: string[];
220
+ }
221
+ /** Union of all supported settings field types. */
222
+ export type SettingsField = StringSettingsField | NumberSettingsField | BooleanSettingsField | SelectSettingsField | ListSettingsField | AgentTogglesSettingsField;
223
+ /** Plugin settings schema — declares fields rendered on the settings page. */
224
+ export interface PluginSettingsSchema {
225
+ /** Ordered list of settings fields for the form. */
226
+ fields: SettingsField[];
227
+ }
228
+ /** A workflow definition stored on disk (YAML or programmatic). */
229
+ export interface WorkflowDefinition {
230
+ id?: string;
231
+ name: string;
232
+ description?: string;
233
+ version?: number;
234
+ steps: unknown[];
235
+ [key: string]: unknown;
236
+ }
237
+ /** A running instance of a workflow attached to a task. */
238
+ /**
239
+ * A running workflow instance (permissive view of the wire shape produced by
240
+ * the workflows plugin). The key field is `instanceId` — NOT `id`. The full
241
+ * typed shape (stepStates, history, …) is internal to the workflows plugin;
242
+ * this published view types the commonly-read fields and stays open via the
243
+ * index signature.
244
+ */
245
+ export interface WorkflowInstance {
246
+ instanceId: string;
247
+ workflowId?: string;
248
+ taskId?: string;
249
+ currentStepId?: string;
250
+ status?: string;
251
+ createdAt?: string;
252
+ updatedAt?: string;
253
+ [key: string]: unknown;
254
+ }
255
+ /** Alias for WorkflowDefinition when used as a reusable template. */
256
+ export type WorkflowTemplate = WorkflowDefinition;
257
+ /**
258
+ * How one search hit of a given content type renders in the global (⌘K)
259
+ * search overlay. Plain DATA mapping — the overlay owns row layout,
260
+ * keyboard focus, and debug-badge placement uniformly.
261
+ */
262
+ export interface SearchHitDescriptor {
263
+ title: string;
264
+ subtitle?: string;
265
+ /** Deep link for Enter/click. `null` = renderable but non-navigable. */
266
+ href: string | null;
267
+ thumbnailUrl?: string;
268
+ /** Lucide icon name fallback when there is no thumbnail. */
269
+ icon?: string;
270
+ /** Small meta line (type · agent · date) shown under the subtitle. */
271
+ meta?: string;
272
+ }
273
+ /** Minimal hit shape passed to renderers (matches useSearch's SearchResult). */
274
+ export interface SearchHitInput {
275
+ id: string;
276
+ table: string;
277
+ score: number;
278
+ fields: Record<string, unknown>;
279
+ }
280
+ export type SearchHitRenderer = (hit: SearchHitInput) => SearchHitDescriptor;
281
+ export {};