@a5c-ai/agent-mux-webui 0.4.10-staging.7a8768ec

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 (343) hide show
  1. package/README.md +60 -0
  2. package/dist/assets/index-DfHuDOVv.js +84 -0
  3. package/dist/assets/index-DfHuDOVv.js.map +1 -0
  4. package/dist/assets/index-zUqQIz-I.css +1 -0
  5. package/dist/favicon.svg +5 -0
  6. package/dist/index.html +44 -0
  7. package/dist-types/src/App.d.ts +1 -0
  8. package/dist-types/src/App.d.ts.map +1 -0
  9. package/dist-types/src/kanban/app/actions/approve-breakpoint.d.ts +5 -0
  10. package/dist-types/src/kanban/app/actions/approve-breakpoint.d.ts.map +1 -0
  11. package/dist-types/src/kanban/components/agent-mux/gateway-provider.d.ts +1 -0
  12. package/dist-types/src/kanban/components/agent-mux/gateway-provider.d.ts.map +1 -0
  13. package/dist-types/src/kanban/components/agent-mux/gateway-snapshot.d.ts +13 -0
  14. package/dist-types/src/kanban/components/agent-mux/gateway-snapshot.d.ts.map +1 -0
  15. package/dist-types/src/kanban/components/agent-mux/require-gateway-auth.d.ts +5 -0
  16. package/dist-types/src/kanban/components/agent-mux/require-gateway-auth.d.ts.map +1 -0
  17. package/dist-types/src/kanban/components/automations/automations-page.d.ts +1 -0
  18. package/dist-types/src/kanban/components/automations/automations-page.d.ts.map +1 -0
  19. package/dist-types/src/kanban/components/breakpoint/breakpoint-approval.d.ts +7 -0
  20. package/dist-types/src/kanban/components/breakpoint/breakpoint-approval.d.ts.map +1 -0
  21. package/dist-types/src/kanban/components/breakpoint/breakpoint-panel.d.ts +7 -0
  22. package/dist-types/src/kanban/components/breakpoint/breakpoint-panel.d.ts.map +1 -0
  23. package/dist-types/src/kanban/components/breakpoint/file-preview.d.ts +8 -0
  24. package/dist-types/src/kanban/components/breakpoint/file-preview.d.ts.map +1 -0
  25. package/dist-types/src/kanban/components/dashboard/babysitter-overlay-panel.d.ts +1 -0
  26. package/dist-types/src/kanban/components/dashboard/babysitter-overlay-panel.d.ts.map +1 -0
  27. package/dist-types/src/kanban/components/dashboard/backlog-overview.d.ts +12 -0
  28. package/dist-types/src/kanban/components/dashboard/backlog-overview.d.ts.map +1 -0
  29. package/dist-types/src/kanban/components/dashboard/breakpoint-banner.d.ts +6 -0
  30. package/dist-types/src/kanban/components/dashboard/breakpoint-banner.d.ts.map +1 -0
  31. package/dist-types/src/kanban/components/dashboard/catch-up-banner.d.ts +19 -0
  32. package/dist-types/src/kanban/components/dashboard/catch-up-banner.d.ts.map +1 -0
  33. package/dist-types/src/kanban/components/dashboard/executive-summary-banner.d.ts +17 -0
  34. package/dist-types/src/kanban/components/dashboard/executive-summary-banner.d.ts.map +1 -0
  35. package/dist-types/src/kanban/components/dashboard/global-search.d.ts +1 -0
  36. package/dist-types/src/kanban/components/dashboard/global-search.d.ts.map +1 -0
  37. package/dist-types/src/kanban/components/dashboard/kpi-grid.d.ts +8 -0
  38. package/dist-types/src/kanban/components/dashboard/kpi-grid.d.ts.map +1 -0
  39. package/dist-types/src/kanban/components/dashboard/pagination-controls.d.ts +9 -0
  40. package/dist-types/src/kanban/components/dashboard/pagination-controls.d.ts.map +1 -0
  41. package/dist-types/src/kanban/components/dashboard/project-accordion.d.ts +8 -0
  42. package/dist-types/src/kanban/components/dashboard/project-accordion.d.ts.map +1 -0
  43. package/dist-types/src/kanban/components/dashboard/project-health-card.d.ts +9 -0
  44. package/dist-types/src/kanban/components/dashboard/project-health-card.d.ts.map +1 -0
  45. package/dist-types/src/kanban/components/dashboard/project-list-view.d.ts +16 -0
  46. package/dist-types/src/kanban/components/dashboard/project-list-view.d.ts.map +1 -0
  47. package/dist-types/src/kanban/components/dashboard/project-search-input.d.ts +8 -0
  48. package/dist-types/src/kanban/components/dashboard/project-search-input.d.ts.map +1 -0
  49. package/dist-types/src/kanban/components/dashboard/project-section-header.d.ts +11 -0
  50. package/dist-types/src/kanban/components/dashboard/project-section-header.d.ts.map +1 -0
  51. package/dist-types/src/kanban/components/dashboard/project-section.d.ts +11 -0
  52. package/dist-types/src/kanban/components/dashboard/project-section.d.ts.map +1 -0
  53. package/dist-types/src/kanban/components/dashboard/run-card.d.ts +7 -0
  54. package/dist-types/src/kanban/components/dashboard/run-card.d.ts.map +1 -0
  55. package/dist-types/src/kanban/components/dashboard/run-filter-bar.d.ts +10 -0
  56. package/dist-types/src/kanban/components/dashboard/run-filter-bar.d.ts.map +1 -0
  57. package/dist-types/src/kanban/components/dashboard/run-list.d.ts +8 -0
  58. package/dist-types/src/kanban/components/dashboard/run-list.d.ts.map +1 -0
  59. package/dist-types/src/kanban/components/dashboard/search-filter.d.ts +12 -0
  60. package/dist-types/src/kanban/components/dashboard/search-filter.d.ts.map +1 -0
  61. package/dist-types/src/kanban/components/dashboard/virtualized-run-list.d.ts +23 -0
  62. package/dist-types/src/kanban/components/dashboard/virtualized-run-list.d.ts.map +1 -0
  63. package/dist-types/src/kanban/components/details/agent-panel.d.ts +8 -0
  64. package/dist-types/src/kanban/components/details/agent-panel.d.ts.map +1 -0
  65. package/dist-types/src/kanban/components/details/json-tree/categorize.d.ts +26 -0
  66. package/dist-types/src/kanban/components/details/json-tree/categorize.d.ts.map +1 -0
  67. package/dist-types/src/kanban/components/details/json-tree/index.d.ts +10 -0
  68. package/dist-types/src/kanban/components/details/json-tree/index.d.ts.map +1 -0
  69. package/dist-types/src/kanban/components/details/json-tree/json-node.d.ts +25 -0
  70. package/dist-types/src/kanban/components/details/json-tree/json-node.d.ts.map +1 -0
  71. package/dist-types/src/kanban/components/details/json-tree/smart-summary.d.ts +54 -0
  72. package/dist-types/src/kanban/components/details/json-tree/smart-summary.d.ts.map +1 -0
  73. package/dist-types/src/kanban/components/details/json-tree/tree-controls.d.ts +7 -0
  74. package/dist-types/src/kanban/components/details/json-tree/tree-controls.d.ts.map +1 -0
  75. package/dist-types/src/kanban/components/details/json-tree.d.ts +9 -0
  76. package/dist-types/src/kanban/components/details/json-tree.d.ts.map +1 -0
  77. package/dist-types/src/kanban/components/details/log-viewer.d.ts +4 -0
  78. package/dist-types/src/kanban/components/details/log-viewer.d.ts.map +1 -0
  79. package/dist-types/src/kanban/components/details/task-detail.d.ts +14 -0
  80. package/dist-types/src/kanban/components/details/task-detail.d.ts.map +1 -0
  81. package/dist-types/src/kanban/components/details/timing-panel.d.ts +9 -0
  82. package/dist-types/src/kanban/components/details/timing-panel.d.ts.map +1 -0
  83. package/dist-types/src/kanban/components/events/event-item.d.ts +7 -0
  84. package/dist-types/src/kanban/components/events/event-item.d.ts.map +1 -0
  85. package/dist-types/src/kanban/components/events/event-stream.d.ts +7 -0
  86. package/dist-types/src/kanban/components/events/event-stream.d.ts.map +1 -0
  87. package/dist-types/src/kanban/components/notifications/notification-panel.d.ts +9 -0
  88. package/dist-types/src/kanban/components/notifications/notification-panel.d.ts.map +1 -0
  89. package/dist-types/src/kanban/components/notifications/notification-provider.d.ts +19 -0
  90. package/dist-types/src/kanban/components/notifications/notification-provider.d.ts.map +1 -0
  91. package/dist-types/src/kanban/components/notifications/toast-stack.d.ts +7 -0
  92. package/dist-types/src/kanban/components/notifications/toast-stack.d.ts.map +1 -0
  93. package/dist-types/src/kanban/components/pipeline/parallel-group.d.ts +13 -0
  94. package/dist-types/src/kanban/components/pipeline/parallel-group.d.ts.map +1 -0
  95. package/dist-types/src/kanban/components/pipeline/pipeline-view.d.ts +9 -0
  96. package/dist-types/src/kanban/components/pipeline/pipeline-view.d.ts.map +1 -0
  97. package/dist-types/src/kanban/components/pipeline/step-card.d.ts +12 -0
  98. package/dist-types/src/kanban/components/pipeline/step-card.d.ts.map +1 -0
  99. package/dist-types/src/kanban/components/providers/event-stream-provider.d.ts +11 -0
  100. package/dist-types/src/kanban/components/providers/event-stream-provider.d.ts.map +1 -0
  101. package/dist-types/src/kanban/components/providers.d.ts +3 -0
  102. package/dist-types/src/kanban/components/providers.d.ts.map +1 -0
  103. package/dist-types/src/kanban/components/review/review-panel.d.ts +26 -0
  104. package/dist-types/src/kanban/components/review/review-panel.d.ts.map +1 -0
  105. package/dist-types/src/kanban/components/runs/run-realtime-execution-panel.d.ts +4 -0
  106. package/dist-types/src/kanban/components/runs/run-realtime-execution-panel.d.ts.map +1 -0
  107. package/dist-types/src/kanban/components/sessions/session-conversation-surface.d.ts +33 -0
  108. package/dist-types/src/kanban/components/sessions/session-conversation-surface.d.ts.map +1 -0
  109. package/dist-types/src/kanban/components/sessions/session-observability-panel.d.ts +12 -0
  110. package/dist-types/src/kanban/components/sessions/session-observability-panel.d.ts.map +1 -0
  111. package/dist-types/src/kanban/components/sessions/session-workspace-shell.d.ts +27 -0
  112. package/dist-types/src/kanban/components/sessions/session-workspace-shell.d.ts.map +1 -0
  113. package/dist-types/src/kanban/components/shared/app-footer.d.ts +1 -0
  114. package/dist-types/src/kanban/components/shared/app-footer.d.ts.map +1 -0
  115. package/dist-types/src/kanban/components/shared/app-header-nav.d.ts +29 -0
  116. package/dist-types/src/kanban/components/shared/app-header-nav.d.ts.map +1 -0
  117. package/dist-types/src/kanban/components/shared/app-header.d.ts +2 -0
  118. package/dist-types/src/kanban/components/shared/app-header.d.ts.map +1 -0
  119. package/dist-types/src/kanban/components/shared/dialog-shell.d.ts +8 -0
  120. package/dist-types/src/kanban/components/shared/dialog-shell.d.ts.map +1 -0
  121. package/dist-types/src/kanban/components/shared/dispatch-context-audit-panel.d.ts +7 -0
  122. package/dist-types/src/kanban/components/shared/dispatch-context-audit-panel.d.ts.map +1 -0
  123. package/dist-types/src/kanban/components/shared/empty-state.d.ts +8 -0
  124. package/dist-types/src/kanban/components/shared/empty-state.d.ts.map +1 -0
  125. package/dist-types/src/kanban/components/shared/error-boundary.d.ts +18 -0
  126. package/dist-types/src/kanban/components/shared/error-boundary.d.ts.map +1 -0
  127. package/dist-types/src/kanban/components/shared/execution-context-panel.d.ts +8 -0
  128. package/dist-types/src/kanban/components/shared/execution-context-panel.d.ts.map +1 -0
  129. package/dist-types/src/kanban/components/shared/friendly-id.d.ts +6 -0
  130. package/dist-types/src/kanban/components/shared/friendly-id.d.ts.map +1 -0
  131. package/dist-types/src/kanban/components/shared/kbd.d.ts +4 -0
  132. package/dist-types/src/kanban/components/shared/kbd.d.ts.map +1 -0
  133. package/dist-types/src/kanban/components/shared/kind-badge.d.ts +5 -0
  134. package/dist-types/src/kanban/components/shared/kind-badge.d.ts.map +1 -0
  135. package/dist-types/src/kanban/components/shared/metrics-row.d.ts +6 -0
  136. package/dist-types/src/kanban/components/shared/metrics-row.d.ts.map +1 -0
  137. package/dist-types/src/kanban/components/shared/outcome-banner.d.ts +6 -0
  138. package/dist-types/src/kanban/components/shared/outcome-banner.d.ts.map +1 -0
  139. package/dist-types/src/kanban/components/shared/page-shell.d.ts +17 -0
  140. package/dist-types/src/kanban/components/shared/page-shell.d.ts.map +1 -0
  141. package/dist-types/src/kanban/components/shared/progress-bar.d.ts +9 -0
  142. package/dist-types/src/kanban/components/shared/progress-bar.d.ts.map +1 -0
  143. package/dist-types/src/kanban/components/shared/session-pill.d.ts +7 -0
  144. package/dist-types/src/kanban/components/shared/session-pill.d.ts.map +1 -0
  145. package/dist-types/src/kanban/components/shared/settings-modal.d.ts +6 -0
  146. package/dist-types/src/kanban/components/shared/settings-modal.d.ts.map +1 -0
  147. package/dist-types/src/kanban/components/shared/shortcuts-help.d.ts +8 -0
  148. package/dist-types/src/kanban/components/shared/shortcuts-help.d.ts.map +1 -0
  149. package/dist-types/src/kanban/components/shared/status-badge.d.ts +9 -0
  150. package/dist-types/src/kanban/components/shared/status-badge.d.ts.map +1 -0
  151. package/dist-types/src/kanban/components/shared/theme-provider.d.ts +10 -0
  152. package/dist-types/src/kanban/components/shared/theme-provider.d.ts.map +1 -0
  153. package/dist-types/src/kanban/components/shared/truncated-id.d.ts +7 -0
  154. package/dist-types/src/kanban/components/shared/truncated-id.d.ts.map +1 -0
  155. package/dist-types/src/kanban/components/task-tags/task-tag-autocomplete-textarea.d.ts +13 -0
  156. package/dist-types/src/kanban/components/task-tags/task-tag-autocomplete-textarea.d.ts.map +1 -0
  157. package/dist-types/src/kanban/components/ui/accordion.d.ts +24 -0
  158. package/dist-types/src/kanban/components/ui/accordion.d.ts.map +1 -0
  159. package/dist-types/src/kanban/components/ui/badge.d.ts +8 -0
  160. package/dist-types/src/kanban/components/ui/badge.d.ts.map +1 -0
  161. package/dist-types/src/kanban/components/ui/button.d.ts +11 -0
  162. package/dist-types/src/kanban/components/ui/button.d.ts.map +1 -0
  163. package/dist-types/src/kanban/components/ui/card.d.ts +3 -0
  164. package/dist-types/src/kanban/components/ui/card.d.ts.map +1 -0
  165. package/dist-types/src/kanban/components/ui/scroll-area.d.ts +7 -0
  166. package/dist-types/src/kanban/components/ui/scroll-area.d.ts.map +1 -0
  167. package/dist-types/src/kanban/components/ui/separator.d.ts +4 -0
  168. package/dist-types/src/kanban/components/ui/separator.d.ts.map +1 -0
  169. package/dist-types/src/kanban/components/ui/tabs.d.ts +25 -0
  170. package/dist-types/src/kanban/components/ui/tabs.d.ts.map +1 -0
  171. package/dist-types/src/kanban/components/ui/tooltip.d.ts +18 -0
  172. package/dist-types/src/kanban/components/ui/tooltip.d.ts.map +1 -0
  173. package/dist-types/src/kanban/components/workspaces/workspace-detail-shell.d.ts +50 -0
  174. package/dist-types/src/kanban/components/workspaces/workspace-detail-shell.d.ts.map +1 -0
  175. package/dist-types/src/kanban/components/workspaces/workspace-details-sidebar.d.ts +37 -0
  176. package/dist-types/src/kanban/components/workspaces/workspace-details-sidebar.d.ts.map +1 -0
  177. package/dist-types/src/kanban/components/workspaces/workspace-provisioning-page.d.ts +7 -0
  178. package/dist-types/src/kanban/components/workspaces/workspace-provisioning-page.d.ts.map +1 -0
  179. package/dist-types/src/kanban/components/workspaces/workspace-runtime-panel.d.ts +12 -0
  180. package/dist-types/src/kanban/components/workspaces/workspace-runtime-panel.d.ts.map +1 -0
  181. package/dist-types/src/kanban/components/workspaces/workspaces-page.d.ts +27 -0
  182. package/dist-types/src/kanban/components/workspaces/workspaces-page.d.ts.map +1 -0
  183. package/dist-types/src/kanban/hooks/use-animated-number.d.ts +9 -0
  184. package/dist-types/src/kanban/hooks/use-animated-number.d.ts.map +1 -0
  185. package/dist-types/src/kanban/hooks/use-backlog.d.ts +192 -0
  186. package/dist-types/src/kanban/hooks/use-backlog.d.ts.map +1 -0
  187. package/dist-types/src/kanban/hooks/use-batched-updates.d.ts +34 -0
  188. package/dist-types/src/kanban/hooks/use-batched-updates.d.ts.map +1 -0
  189. package/dist-types/src/kanban/hooks/use-event-stream.d.ts +16 -0
  190. package/dist-types/src/kanban/hooks/use-event-stream.d.ts.map +1 -0
  191. package/dist-types/src/kanban/hooks/use-keyboard.d.ts +8 -0
  192. package/dist-types/src/kanban/hooks/use-keyboard.d.ts.map +1 -0
  193. package/dist-types/src/kanban/hooks/use-notifications.d.ts +20 -0
  194. package/dist-types/src/kanban/hooks/use-notifications.d.ts.map +1 -0
  195. package/dist-types/src/kanban/hooks/use-persisted-state.d.ts +10 -0
  196. package/dist-types/src/kanban/hooks/use-persisted-state.d.ts.map +1 -0
  197. package/dist-types/src/kanban/hooks/use-polling.d.ts +11 -0
  198. package/dist-types/src/kanban/hooks/use-polling.d.ts.map +1 -0
  199. package/dist-types/src/kanban/hooks/use-project-runs.d.ts +17 -0
  200. package/dist-types/src/kanban/hooks/use-project-runs.d.ts.map +1 -0
  201. package/dist-types/src/kanban/hooks/use-projects.d.ts +8 -0
  202. package/dist-types/src/kanban/hooks/use-projects.d.ts.map +1 -0
  203. package/dist-types/src/kanban/hooks/use-reviews.d.ts +111 -0
  204. package/dist-types/src/kanban/hooks/use-reviews.d.ts.map +1 -0
  205. package/dist-types/src/kanban/hooks/use-run-dashboard.d.ts +42 -0
  206. package/dist-types/src/kanban/hooks/use-run-dashboard.d.ts.map +1 -0
  207. package/dist-types/src/kanban/hooks/use-run-detail.d.ts +12 -0
  208. package/dist-types/src/kanban/hooks/use-run-detail.d.ts.map +1 -0
  209. package/dist-types/src/kanban/hooks/use-smart-polling.d.ts +15 -0
  210. package/dist-types/src/kanban/hooks/use-smart-polling.d.ts.map +1 -0
  211. package/dist-types/src/kanban/hooks/use-task-tags.d.ts +6 -0
  212. package/dist-types/src/kanban/hooks/use-task-tags.d.ts.map +1 -0
  213. package/dist-types/src/kanban/lib/agent-mux-ui.d.ts +2 -0
  214. package/dist-types/src/kanban/lib/agent-mux-ui.d.ts.map +1 -0
  215. package/dist-types/src/kanban/lib/babysitter-overlays.d.ts +74 -0
  216. package/dist-types/src/kanban/lib/babysitter-overlays.d.ts.map +1 -0
  217. package/dist-types/src/kanban/lib/cn.d.ts +2 -0
  218. package/dist-types/src/kanban/lib/cn.d.ts.map +1 -0
  219. package/dist-types/src/kanban/lib/config-loader.d.ts +29 -0
  220. package/dist-types/src/kanban/lib/config-loader.d.ts.map +1 -0
  221. package/dist-types/src/kanban/lib/config.d.ts +3 -0
  222. package/dist-types/src/kanban/lib/config.d.ts.map +1 -0
  223. package/dist-types/src/kanban/lib/dispatch-context-audit.d.ts +12 -0
  224. package/dist-types/src/kanban/lib/dispatch-context-audit.d.ts.map +1 -0
  225. package/dist-types/src/kanban/lib/error-handler.d.ts +28 -0
  226. package/dist-types/src/kanban/lib/error-handler.d.ts.map +1 -0
  227. package/dist-types/src/kanban/lib/fetcher.d.ts +70 -0
  228. package/dist-types/src/kanban/lib/fetcher.d.ts.map +1 -0
  229. package/dist-types/src/kanban/lib/gateway-runtime-config.d.ts +24 -0
  230. package/dist-types/src/kanban/lib/gateway-runtime-config.d.ts.map +1 -0
  231. package/dist-types/src/kanban/lib/global-registry.d.ts +71 -0
  232. package/dist-types/src/kanban/lib/global-registry.d.ts.map +1 -0
  233. package/dist-types/src/kanban/lib/parser.d.ts +36 -0
  234. package/dist-types/src/kanban/lib/parser.d.ts.map +1 -0
  235. package/dist-types/src/kanban/lib/path-resolver.d.ts +2 -0
  236. package/dist-types/src/kanban/lib/path-resolver.d.ts.map +1 -0
  237. package/dist-types/src/kanban/lib/review-service.d.ts +63 -0
  238. package/dist-types/src/kanban/lib/review-service.d.ts.map +1 -0
  239. package/dist-types/src/kanban/lib/run-cache.d.ts +36 -0
  240. package/dist-types/src/kanban/lib/run-cache.d.ts.map +1 -0
  241. package/dist-types/src/kanban/lib/server-init.d.ts +26 -0
  242. package/dist-types/src/kanban/lib/server-init.d.ts.map +1 -0
  243. package/dist-types/src/kanban/lib/services/automation-rule-service.d.ts +97 -0
  244. package/dist-types/src/kanban/lib/services/automation-rule-service.d.ts.map +1 -0
  245. package/dist-types/src/kanban/lib/services/automation-webhook-service.d.ts +44 -0
  246. package/dist-types/src/kanban/lib/services/automation-webhook-service.d.ts.map +1 -0
  247. package/dist-types/src/kanban/lib/services/backlog-query-service.d.ts +124 -0
  248. package/dist-types/src/kanban/lib/services/backlog-query-service.d.ts.map +1 -0
  249. package/dist-types/src/kanban/lib/services/dispatch-context-label-service.d.ts +39 -0
  250. package/dist-types/src/kanban/lib/services/dispatch-context-label-service.d.ts.map +1 -0
  251. package/dist-types/src/kanban/lib/services/kanban-storage.d.ts +36 -0
  252. package/dist-types/src/kanban/lib/services/kanban-storage.d.ts.map +1 -0
  253. package/dist-types/src/kanban/lib/services/run-query-service.d.ts +79 -0
  254. package/dist-types/src/kanban/lib/services/run-query-service.d.ts.map +1 -0
  255. package/dist-types/src/kanban/lib/services/task-tag-service.d.ts +39 -0
  256. package/dist-types/src/kanban/lib/services/task-tag-service.d.ts.map +1 -0
  257. package/dist-types/src/kanban/lib/settings-section-storage.d.ts +13 -0
  258. package/dist-types/src/kanban/lib/settings-section-storage.d.ts.map +1 -0
  259. package/dist-types/src/kanban/lib/source-discovery.d.ts +10 -0
  260. package/dist-types/src/kanban/lib/source-discovery.d.ts.map +1 -0
  261. package/dist-types/src/kanban/lib/utils.d.ts +8 -0
  262. package/dist-types/src/kanban/lib/utils.d.ts.map +1 -0
  263. package/dist-types/src/kanban/lib/watcher.d.ts +14 -0
  264. package/dist-types/src/kanban/lib/watcher.d.ts.map +1 -0
  265. package/dist-types/src/kanban/lib/workspace-layout-state.d.ts +20 -0
  266. package/dist-types/src/kanban/lib/workspace-layout-state.d.ts.map +1 -0
  267. package/dist-types/src/kanban/lib/workspace-lifecycle.d.ts +67 -0
  268. package/dist-types/src/kanban/lib/workspace-lifecycle.d.ts.map +1 -0
  269. package/dist-types/src/kanban/routes/AutomationsPage.d.ts +1 -0
  270. package/dist-types/src/kanban/routes/AutomationsPage.d.ts.map +1 -0
  271. package/dist-types/src/kanban/routes/ProjectsPage.d.ts +1 -0
  272. package/dist-types/src/kanban/routes/ProjectsPage.d.ts.map +1 -0
  273. package/dist-types/src/kanban/routes/SettingsPage.d.ts +1 -0
  274. package/dist-types/src/kanban/routes/SettingsPage.d.ts.map +1 -0
  275. package/dist-types/src/kanban/test/fixtures.d.ts +99 -0
  276. package/dist-types/src/kanban/test/fixtures.d.ts.map +1 -0
  277. package/dist-types/src/kanban/test/setup.d.ts +1 -0
  278. package/dist-types/src/kanban/test/setup.d.ts.map +1 -0
  279. package/dist-types/src/kanban/test/test-utils.d.ts +8 -0
  280. package/dist-types/src/kanban/test/test-utils.d.ts.map +1 -0
  281. package/dist-types/src/kanban/types/breakpoint.d.ts +13 -0
  282. package/dist-types/src/kanban/types/breakpoint.d.ts.map +1 -0
  283. package/dist-types/src/kanban/types/index.d.ts +173 -0
  284. package/dist-types/src/kanban/types/index.d.ts.map +1 -0
  285. package/dist-types/src/kanban-shims/next-link.d.ts +5 -0
  286. package/dist-types/src/kanban-shims/next-link.d.ts.map +1 -0
  287. package/dist-types/src/kanban-shims/next-navigation.d.ts +11 -0
  288. package/dist-types/src/kanban-shims/next-navigation.d.ts.map +1 -0
  289. package/dist-types/src/main.d.ts +3 -0
  290. package/dist-types/src/main.d.ts.map +1 -0
  291. package/dist-types/src/pages/AgentsPage.d.ts +1 -0
  292. package/dist-types/src/pages/AgentsPage.d.ts.map +1 -0
  293. package/dist-types/src/pages/HomePage.d.ts +1 -0
  294. package/dist-types/src/pages/HomePage.d.ts.map +1 -0
  295. package/dist-types/src/pages/HookInboxPage.d.ts +1 -0
  296. package/dist-types/src/pages/HookInboxPage.d.ts.map +1 -0
  297. package/dist-types/src/pages/KanbanLayout.d.ts +1 -0
  298. package/dist-types/src/pages/KanbanLayout.d.ts.map +1 -0
  299. package/dist-types/src/pages/KanbanPages.d.ts +14 -0
  300. package/dist-types/src/pages/KanbanPages.d.ts.map +1 -0
  301. package/dist-types/src/pages/LoginPage.d.ts +1 -0
  302. package/dist-types/src/pages/LoginPage.d.ts.map +1 -0
  303. package/dist-types/src/pages/NewRunPage.d.ts +1 -0
  304. package/dist-types/src/pages/NewRunPage.d.ts.map +1 -0
  305. package/dist-types/src/pages/PairDevicePage.d.ts +1 -0
  306. package/dist-types/src/pages/PairDevicePage.d.ts.map +1 -0
  307. package/dist-types/src/pages/RunPage.d.ts +1 -0
  308. package/dist-types/src/pages/RunPage.d.ts.map +1 -0
  309. package/dist-types/src/pages/SessionDetailPage.d.ts +1 -0
  310. package/dist-types/src/pages/SessionDetailPage.d.ts.map +1 -0
  311. package/dist-types/src/pages/SessionsPage.d.ts +1 -0
  312. package/dist-types/src/pages/SessionsPage.d.ts.map +1 -0
  313. package/dist-types/src/pages/SettingsPage.d.ts +1 -0
  314. package/dist-types/src/pages/SettingsPage.d.ts.map +1 -0
  315. package/dist-types/src/pages/WorkspacesPage.d.ts +1 -0
  316. package/dist-types/src/pages/WorkspacesPage.d.ts.map +1 -0
  317. package/dist-types/src/providers/GatewayProvider.d.ts +17 -0
  318. package/dist-types/src/providers/GatewayProvider.d.ts.map +1 -0
  319. package/dist-types/src/providers/NotificationProvider.d.ts +4 -0
  320. package/dist-types/src/providers/NotificationProvider.d.ts.map +1 -0
  321. package/dist-types/src/providers/ThemeProvider.d.ts +10 -0
  322. package/dist-types/src/providers/ThemeProvider.d.ts.map +1 -0
  323. package/dist-types/src/router.d.ts +1 -0
  324. package/dist-types/src/router.d.ts.map +1 -0
  325. package/dist-types/src/shell/CommandPalette.d.ts +10 -0
  326. package/dist-types/src/shell/CommandPalette.d.ts.map +1 -0
  327. package/dist-types/src/shell/Sidebar.d.ts +1 -0
  328. package/dist-types/src/shell/Sidebar.d.ts.map +1 -0
  329. package/dist-types/src/shell/TopBar.d.ts +4 -0
  330. package/dist-types/src/shell/TopBar.d.ts.map +1 -0
  331. package/dist-types/src/shell/navigation.d.ts +14 -0
  332. package/dist-types/src/shell/navigation.d.ts.map +1 -0
  333. package/dist-types/src/web-only/clipboard.d.ts +1 -0
  334. package/dist-types/src/web-only/clipboard.d.ts.map +1 -0
  335. package/dist-types/src/web-only/desktop-notifications.d.ts +6 -0
  336. package/dist-types/src/web-only/desktop-notifications.d.ts.map +1 -0
  337. package/dist-types/src/web-only/keyboard.d.ts +3 -0
  338. package/dist-types/src/web-only/keyboard.d.ts.map +1 -0
  339. package/dist-types/tsconfig.tsbuildinfo +1 -0
  340. package/dist-types/vite.config.d.ts +2 -0
  341. package/dist-types/vite.config.d.ts.map +1 -0
  342. package/package.json +80 -0
  343. package/public/favicon.svg +5 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-runtime-panel.d.ts","sourceRoot":"","sources":["../../../../../src/kanban/components/workspaces/workspace-runtime-panel.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGV,uBAAuB,EAExB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAoBpF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAoI/E,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,OAAO,EAAE,uBAAuB,CAAC;IACjC,MAAM,CAAC,EAAE,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,SAAS,0BAA0B,EAAE,CAAC;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,SAAS,8BAA8B,EAAE,CAAC;CAC/D,2CAibA"}
@@ -0,0 +1,27 @@
1
+ import type { Attachment } from "@a5c-ai/agent-mux-core";
2
+ import type { WorkspaceInventoryItem, WorkspaceInventoryResponse, WorkspaceSessionSnapshot } from "@/lib/workspace-lifecycle";
3
+ type WorkspaceSurfaceMode = "full" | "attention";
4
+ export declare function getWorkspaceOwnershipLabel(isAuthenticated: boolean, sessions: WorkspaceSessionSnapshot[], workspaces?: WorkspaceInventoryItem[]): string;
5
+ export declare function loadInventory(sessions: WorkspaceSessionSnapshot[]): Promise<WorkspaceInventoryResponse>;
6
+ export declare function runWorkspaceAction(action: "pin" | "unpin" | "archive" | "cleanup" | "recover" | "notes-save" | "rebase-start" | "rebase-auto-resolve" | "rebase-open-in-editor" | "rebase-mark-resolved" | "rebase-abort", workspacePath: string, sessions: WorkspaceSessionSnapshot[], note?: string): Promise<WorkspaceInventoryResponse>;
7
+ export declare function getWorkspaceAttentionReasons(workspace: WorkspaceInventoryItem): string[];
8
+ export declare function workspaceNeedsAttention(workspace: WorkspaceInventoryItem): boolean;
9
+ export declare function WorkspacesPageContent(props: {
10
+ isAuthenticated: boolean;
11
+ sessions: WorkspaceSessionSnapshot[];
12
+ selectedWorkspacePath?: string | null;
13
+ allRuns?: Array<Record<string, unknown>>;
14
+ eventBuffers?: Record<string, {
15
+ events: Record<string, unknown>[];
16
+ } | undefined>;
17
+ onSendPrompt?: (input: {
18
+ sessionId: string;
19
+ prompt: string;
20
+ agent?: string;
21
+ model?: string;
22
+ attachments?: Attachment[];
23
+ approvalMode?: "yolo" | "prompt" | "deny";
24
+ }) => Promise<void>;
25
+ mode?: WorkspaceSurfaceMode;
26
+ }): import("react/jsx-runtime").JSX.Element;
27
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaces-page.d.ts","sourceRoot":"","sources":["../../../../../src/kanban/components/workspaces/workspaces-page.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAmBzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAwB9H,KAAK,oBAAoB,GAAG,MAAM,GAAG,WAAW,CAAC;AAuDjD,wBAAgB,0BAA0B,CACxC,eAAe,EAAE,OAAO,EACxB,QAAQ,EAAE,wBAAwB,EAAE,EACpC,UAAU,GAAE,sBAAsB,EAAO,GACxC,MAAM,CAWR;AAyED,wBAAsB,aAAa,CAAC,QAAQ,EAAE,wBAAwB,EAAE,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAY7G;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EACF,KAAK,GACL,OAAO,GACP,SAAS,GACT,SAAS,GACT,SAAS,GACT,YAAY,GACZ,cAAc,GACd,qBAAqB,GACrB,uBAAuB,GACvB,sBAAsB,GACtB,cAAc,EAClB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,wBAAwB,EAAE,EACpC,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,0BAA0B,CAAC,CAcrC;AA8DD,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,sBAAsB,GAAG,MAAM,EAAE,CA0BxF;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,sBAAsB,GAAG,OAAO,CAElF;AAwGD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE,wBAAwB,EAAE,CAAC;IACrC,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;KAAE,GAAG,SAAS,CAAC,CAAC;IACjF,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;QAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;KAC3C,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpB,IAAI,CAAC,EAAE,oBAAoB,CAAC;CAC7B,2CA+yBA"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Hook that smoothly animates a number from its previous value to the target.
3
+ * Uses requestAnimationFrame for smooth 60fps transitions.
4
+ *
5
+ * @param target - The number to animate towards
6
+ * @param duration - Animation duration in ms (default 600)
7
+ * @returns The current animated value (integer)
8
+ */
9
+ export declare function useAnimatedNumber(target: number, duration?: number): number;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-animated-number.d.ts","sourceRoot":"","sources":["../../../../src/kanban/hooks/use-animated-number.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,SAAM,GAAG,MAAM,CA2ExE"}
@@ -0,0 +1,192 @@
1
+ import type { KanbanBacklogSnapshot, KanbanBoardSnapshot, KanbanCollaboratorRole, KanbanDispatchContextLabelDefinition, KanbanPermissionGrant, KanbanProjectSettings, KanbanTaskTag, KanbanWorkflowState } from "@a5c-ai/agent-mux-core/kanban";
2
+ export interface BacklogOverviewSummary {
3
+ projectCount: number;
4
+ issueCount: number;
5
+ readyCount: number;
6
+ blockedCount: number;
7
+ dispatchedCount: number;
8
+ completedCount: number;
9
+ needsDecompositionCount: number;
10
+ inProgressCount: number;
11
+ }
12
+ export interface BacklogOverviewResponse {
13
+ snapshot: KanbanBacklogSnapshot;
14
+ board: KanbanBoardSnapshot;
15
+ summary: BacklogOverviewSummary;
16
+ }
17
+ export interface TaskTagListResponse {
18
+ taskTags: readonly KanbanTaskTag[];
19
+ }
20
+ export interface TaskTagInput {
21
+ key: string;
22
+ label: string;
23
+ content: string;
24
+ description?: string;
25
+ order?: number;
26
+ }
27
+ export interface TaskTagUpdateInput {
28
+ key?: string;
29
+ label?: string;
30
+ content?: string;
31
+ description?: string;
32
+ order?: number;
33
+ }
34
+ export interface DispatchContextLabelListResponse {
35
+ dispatchContextLabels: readonly KanbanDispatchContextLabelDefinition[];
36
+ }
37
+ export interface DispatchContextLabelInput {
38
+ key: string;
39
+ label: string;
40
+ instruction: string;
41
+ description?: string;
42
+ order?: number;
43
+ }
44
+ export interface DispatchContextLabelUpdateInput {
45
+ key?: string;
46
+ label?: string;
47
+ instruction?: string;
48
+ description?: string;
49
+ order?: number;
50
+ }
51
+ export interface UpdateIssueDispatchContextLabelsInput {
52
+ issueId: string;
53
+ dispatchContextLabelIds: string[];
54
+ }
55
+ export interface LinkIssueWorkspaceInput {
56
+ issueId: string;
57
+ workspacePath: string;
58
+ }
59
+ export declare function loadTaskTags(): Promise<readonly KanbanTaskTag[]>;
60
+ export declare function createTaskTag(input: TaskTagInput): Promise<TaskTagListResponse>;
61
+ export declare function updateTaskTag(taskTagId: string, input: TaskTagUpdateInput): Promise<TaskTagListResponse>;
62
+ export declare function deleteTaskTag(taskTagId: string): Promise<TaskTagListResponse>;
63
+ export declare function loadDispatchContextLabels(): Promise<readonly KanbanDispatchContextLabelDefinition[]>;
64
+ export declare function createDispatchContextLabel(input: DispatchContextLabelInput): Promise<DispatchContextLabelListResponse>;
65
+ export declare function updateDispatchContextLabel(dispatchContextLabelId: string, input: DispatchContextLabelUpdateInput): Promise<DispatchContextLabelListResponse>;
66
+ export declare function deleteDispatchContextLabel(dispatchContextLabelId: string): Promise<DispatchContextLabelListResponse>;
67
+ export declare function postIssueDispatchContextLabels(input: UpdateIssueDispatchContextLabelsInput): Promise<BacklogOverviewResponse>;
68
+ export interface CreateBacklogIssueResponse {
69
+ overview: BacklogOverviewResponse;
70
+ issue: {
71
+ id: string;
72
+ projectId: string;
73
+ key: string;
74
+ title: string;
75
+ };
76
+ }
77
+ export interface UpdateIssueDetailInput {
78
+ issueId: string;
79
+ expectedUpdatedAt?: string;
80
+ title?: string;
81
+ summary?: string;
82
+ description?: string;
83
+ status?: "backlog" | "ready" | "in-progress" | "blocked" | "review" | "done";
84
+ priority?: "critical" | "high" | "medium" | "low";
85
+ assigneeIds?: string[];
86
+ labelIds?: string[];
87
+ dependencies?: Array<{
88
+ issueId: string;
89
+ type?: "blocks" | "blocked-by" | "related";
90
+ }>;
91
+ acceptanceCriteria?: Array<{
92
+ id?: string;
93
+ title: string;
94
+ satisfied?: boolean;
95
+ notes?: string;
96
+ }>;
97
+ }
98
+ export declare function useBacklog(interval?: number): {
99
+ snapshot: KanbanBacklogSnapshot | undefined;
100
+ board: KanbanBoardSnapshot | undefined;
101
+ summary: BacklogOverviewSummary | undefined;
102
+ loading: boolean;
103
+ error: string | null;
104
+ refresh: () => Promise<void>;
105
+ moveIssue: (issueId: string, toState: KanbanWorkflowState) => Promise<void>;
106
+ linkRepository: (input: {
107
+ issueId: string;
108
+ owner: string;
109
+ name: string;
110
+ branchName: string;
111
+ defaultBranch?: string;
112
+ provider?: "github" | "azure-repos" | "gitlab" | "bitbucket" | "local";
113
+ }) => Promise<void>;
114
+ updateRepositorySettings: (input: {
115
+ issueId: string;
116
+ baseBranch: string;
117
+ ciProvider?: string;
118
+ publishTarget?: string;
119
+ autoMerge: boolean;
120
+ requiredApprovals: number;
121
+ }) => Promise<void>;
122
+ createPullRequest: (input: {
123
+ issueId: string;
124
+ title: string;
125
+ reviewers?: string;
126
+ }) => Promise<void>;
127
+ createIssue: (input: {
128
+ projectId: string;
129
+ title: string;
130
+ summary?: string;
131
+ description?: string;
132
+ status?: "backlog" | "ready" | "in-progress" | "blocked" | "review" | "done";
133
+ priority?: "critical" | "high" | "medium" | "low";
134
+ labelIds?: string[];
135
+ assigneeIds?: string[];
136
+ dependencies?: Array<{
137
+ issueId: string;
138
+ type?: "blocks" | "blocked-by" | "related";
139
+ }>;
140
+ acceptanceCriteria?: Array<{
141
+ id?: string;
142
+ title: string;
143
+ satisfied?: boolean;
144
+ notes?: string;
145
+ }>;
146
+ metadata?: Record<string, unknown>;
147
+ }) => Promise<CreateBacklogIssueResponse>;
148
+ updateProjectCollaboration: (input: {
149
+ projectId: string;
150
+ teamName: string;
151
+ visibility: "private" | "team" | "workspace-shared";
152
+ defaultRole: KanbanCollaboratorRole;
153
+ allowSelfAssign: boolean;
154
+ reviewRequiredForDone: boolean;
155
+ activityScope: KanbanProjectSettings["activityScope"];
156
+ workspaceProvisioning: KanbanProjectSettings["workspaceProvisioning"];
157
+ members: Array<{
158
+ id: string;
159
+ displayName: string;
160
+ email?: string;
161
+ role: KanbanCollaboratorRole;
162
+ }>;
163
+ permissions: KanbanPermissionGrant[];
164
+ }) => Promise<void>;
165
+ updateIssueCollaboration: (input: {
166
+ issueId: string;
167
+ assigneeIds: string[];
168
+ collaboratorIds: string[];
169
+ }) => Promise<void>;
170
+ updateIssueDispatchContextLabels: (input: UpdateIssueDispatchContextLabelsInput) => Promise<void>;
171
+ createSubIssue: (input: {
172
+ parentIssueId: string;
173
+ title: string;
174
+ summary?: string;
175
+ priority?: "critical" | "high" | "medium" | "low";
176
+ status?: "backlog" | "ready" | "in-progress" | "blocked" | "review" | "done";
177
+ }) => Promise<void>;
178
+ linkChildIssue: (input: {
179
+ parentIssueId: string;
180
+ childIssueId: string;
181
+ }) => Promise<void>;
182
+ updateIssueDetail: (input: UpdateIssueDetailInput) => Promise<BacklogOverviewResponse>;
183
+ createIssueWorkspace: (issueId: string) => Promise<void>;
184
+ linkIssueWorkspace: (input: LinkIssueWorkspaceInput) => Promise<void>;
185
+ movingIssueId: string | null;
186
+ mutatingIssueId: string | null;
187
+ creatingIssue: boolean;
188
+ mutationError: {
189
+ issueId: string;
190
+ message: string;
191
+ } | null;
192
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-backlog.d.ts","sourceRoot":"","sources":["../../../../src/kanban/hooks/use-backlog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { StreamEvent } from "./use-event-stream";
2
+ /** Window (ms) for counting rapid SSE events to detect burst mode. */
3
+ declare const BURST_WINDOW_MS = 5000;
4
+ /** Number of SSE events within the burst window that triggers catch-up mode. */
5
+ declare const BURST_THRESHOLD = 10;
6
+ /** How long (ms) to hold catch-up mode after the burst subsides. */
7
+ declare const CATCHUP_HOLD_MS = 3000;
8
+ export interface CatchUpState {
9
+ /** Whether we are in catch-up mode (burst of events detected). */
10
+ active: boolean;
11
+ /** Number of batched/buffered updates while in catch-up mode. */
12
+ bufferedCount: number;
13
+ /** Dismiss catch-up mode and apply buffered updates immediately. */
14
+ flush: () => void;
15
+ }
16
+ export interface UseBatchedUpdatesOptions {
17
+ /** SSE filter: only count events matching this predicate for burst detection. */
18
+ sseFilter?: (event: StreamEvent) => boolean;
19
+ /** Callback invoked when catch-up mode ends (either by timeout or flush). */
20
+ onFlush?: () => void;
21
+ /** Whether the hook is enabled (default true). */
22
+ enabled?: boolean;
23
+ }
24
+ /**
25
+ * Monitors SSE event rate and activates "catch-up mode" when a burst of
26
+ * events is detected (e.g. opening dashboard after overnight runs).
27
+ *
28
+ * In catch-up mode, the caller should suppress real-time UI updates and
29
+ * instead show a summary notification ("12 runs updated"). When the burst
30
+ * subsides or the user clicks "refresh now", catch-up mode ends and the
31
+ * caller should do a single full refresh.
32
+ */
33
+ export declare function useBatchedUpdates(options?: UseBatchedUpdatesOptions): CatchUpState;
34
+ export { BURST_WINDOW_MS, BURST_THRESHOLD, CATCHUP_HOLD_MS };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-batched-updates.d.ts","sourceRoot":"","sources":["../../../../src/kanban/hooks/use-batched-updates.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAM5D,sEAAsE;AACtE,QAAA,MAAM,eAAe,OAAO,CAAC;AAE7B,gFAAgF;AAChF,QAAA,MAAM,eAAe,KAAK,CAAC;AAE3B,oEAAoE;AACpE,QAAA,MAAM,eAAe,OAAO,CAAC;AAM7B,MAAM,WAAW,YAAY;IAC3B,kEAAkE;IAClE,MAAM,EAAE,OAAO,CAAC;IAChB,iEAAiE;IACjE,aAAa,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,iFAAiF;IACjF,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC;IAC5C,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,kDAAkD;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAMD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE,wBAA6B,GACrC,YAAY,CA4Fd;AAGD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,16 @@
1
+ export interface StreamEvent {
2
+ type: string;
3
+ runId?: string;
4
+ /** Batched runIds from leading-edge debounce (SSE broadcast level). */
5
+ runIds?: string[];
6
+ status?: string;
7
+ timestamp?: number;
8
+ }
9
+ type EventCallback = (event: StreamEvent) => void;
10
+ export declare function subscribe(callback: EventCallback): () => void;
11
+ export declare function useEventStream(): {
12
+ connected: boolean;
13
+ lastEvent: StreamEvent | null;
14
+ error: string | null;
15
+ };
16
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-event-stream.d.ts","sourceRoot":"","sources":["../../../../src/kanban/hooks/use-event-stream.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,KAAK,aAAa,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AA+DlD,wBAAgB,SAAS,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,IAAI,CA2B7D;AAED,wBAAgB,cAAc;;;;EA6C7B"}
@@ -0,0 +1,8 @@
1
+ export interface Shortcut {
2
+ key: string;
3
+ ctrl?: boolean;
4
+ shift?: boolean;
5
+ action: () => void;
6
+ description: string;
7
+ }
8
+ export declare function useKeyboard(shortcuts: Shortcut[]): void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-keyboard.d.ts","sourceRoot":"","sources":["../../../../src/kanban/hooks/use-keyboard.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,QAiChD"}
@@ -0,0 +1,20 @@
1
+ export interface AppNotification {
2
+ id: string;
3
+ title: string;
4
+ body: string;
5
+ type: "success" | "error" | "warning" | "info";
6
+ timestamp: number;
7
+ href?: string;
8
+ /** When true the notification will not auto-dismiss and must be closed manually or resolved externally. */
9
+ persistent?: boolean;
10
+ }
11
+ export declare function useNotifications(): {
12
+ notifications: AppNotification[];
13
+ notify: (title: string, body: string, type?: AppNotification["type"], options?: {
14
+ href?: string;
15
+ persistent?: boolean;
16
+ }) => void;
17
+ dismiss: (id: string) => void;
18
+ requestPermission: () => Promise<void>;
19
+ permission: NotificationPermission;
20
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-notifications.d.ts","sourceRoot":"","sources":["../../../../src/kanban/hooks/use-notifications.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2GAA2G;IAC3G,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,gBAAgB;;oBAoBnB,MAAM,QACP,MAAM,SACN,eAAe,CAAC,MAAM,CAAC,YACnB;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE;kBAuCpB,MAAM;;;EAKxC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Custom hook that wraps useState with localStorage persistence.
3
+ * Values are serialized with JSON.stringify/parse and namespaced
4
+ * under the "kanban:" prefix to avoid collisions.
5
+ *
6
+ * Hydration-safe: first render uses defaultValue (matching SSR),
7
+ * then useLayoutEffect reads localStorage before the browser paints
8
+ * so the persisted value appears with no visible flash.
9
+ */
10
+ export declare function usePersistedState<T>(key: string, defaultValue: T): [T, (value: T | ((prev: T) => T)) => void];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-persisted-state.d.ts","sourceRoot":"","sources":["../../../../src/kanban/hooks/use-persisted-state.ts"],"names":[],"mappings":"AAUA;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,CAAC,GACd,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAqC5C"}
@@ -0,0 +1,11 @@
1
+ interface UsePollingOptions {
2
+ interval?: number;
3
+ enabled?: boolean;
4
+ }
5
+ export declare function usePolling<T>(url: string, options?: UsePollingOptions): {
6
+ data: T | null;
7
+ loading: boolean;
8
+ error: string | null;
9
+ refresh: () => void;
10
+ };
11
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-polling.d.ts","sourceRoot":"","sources":["../../../../src/kanban/hooks/use-polling.ts"],"names":[],"mappings":"AAIA,UAAU,iBAAiB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,UAAU,CAAC,CAAC,EAC1B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,iBAAsB,GAC9B;IAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CA+CjF"}
@@ -0,0 +1,17 @@
1
+ import { Run } from '@/types';
2
+ interface UseProjectRunsOptions {
3
+ limit?: number;
4
+ offset?: number;
5
+ search?: string;
6
+ status?: string;
7
+ sort?: 'status' | 'activity';
8
+ enabled?: boolean;
9
+ }
10
+ export declare function useProjectRuns(projectName: string, options?: UseProjectRunsOptions): {
11
+ runs: Run[];
12
+ totalCount: number;
13
+ loading: boolean;
14
+ error: string | null;
15
+ refresh: () => Promise<void>;
16
+ };
17
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-project-runs.d.ts","sourceRoot":"","sources":["../../../../src/kanban/hooks/use-project-runs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAQ9B,UAAU,qBAAqB;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,qBAA0B;;;;;;EA6BpC"}
@@ -0,0 +1,8 @@
1
+ import { ProjectSummary } from '@/types';
2
+ export declare function useProjects(interval?: number, suppressSseRefetch?: boolean): {
3
+ projects: ProjectSummary[];
4
+ recentCompletionWindowMs: number;
5
+ loading: boolean;
6
+ error: string | null;
7
+ refresh: () => Promise<void>;
8
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-projects.d.ts","sourceRoot":"","sources":["../../../../src/kanban/hooks/use-projects.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAOzC,wBAAgB,WAAW,CAAC,QAAQ,GAAE,MAAa,EAAE,kBAAkB,GAAE,OAAe;;;;;;EAgBvF"}
@@ -0,0 +1,111 @@
1
+ import type { KanbanCiGate, KanbanIntegrationProvider, KanbanMergeStatus, KanbanPublishStatus, KanbanPullRequestStatus, KanbanReviewArtifact, KanbanReviewCommentAnchor, KanbanReviewDecision, KanbanReviewFeedbackSource, KanbanReviewStatus, KanbanReviewSnapshot, KanbanReviewTargetType } from "@a5c-ai/agent-mux-core/kanban";
2
+ export interface ReviewQuery {
3
+ targetType?: KanbanReviewTargetType;
4
+ targetId?: string;
5
+ }
6
+ export declare function loadReviews(query?: ReviewQuery): Promise<KanbanReviewSnapshot>;
7
+ export declare function submitReviewAction(input: {
8
+ action: "submit-review";
9
+ artifactId: string;
10
+ decision: KanbanReviewDecision;
11
+ summary?: string;
12
+ executionTargetId?: string;
13
+ } | {
14
+ action: "approve";
15
+ artifactId: string;
16
+ } | {
17
+ action: "request-changes";
18
+ artifactId: string;
19
+ } | {
20
+ action: "add-comment";
21
+ artifactId: string;
22
+ body: string;
23
+ anchor: KanbanReviewCommentAnchor;
24
+ authorName?: string;
25
+ feedbackSource?: KanbanReviewFeedbackSource;
26
+ } | {
27
+ action: "create-pull-request";
28
+ artifactId: string;
29
+ provider?: KanbanIntegrationProvider;
30
+ title: string;
31
+ reviewers?: string;
32
+ branchName?: string;
33
+ baseBranch?: string;
34
+ url?: string;
35
+ } | {
36
+ action: "link-pull-request";
37
+ artifactId: string;
38
+ provider?: KanbanIntegrationProvider;
39
+ number: number;
40
+ title: string;
41
+ status?: KanbanPullRequestStatus;
42
+ reviewStatus?: KanbanReviewStatus;
43
+ mergeStatus?: KanbanMergeStatus;
44
+ publishStatus?: KanbanPublishStatus;
45
+ ciGates?: readonly KanbanCiGate[];
46
+ branchName?: string;
47
+ baseBranch?: string;
48
+ url?: string;
49
+ }): Promise<KanbanReviewSnapshot>;
50
+ export declare function useReviews(query?: ReviewQuery, interval?: number): {
51
+ snapshot: KanbanReviewSnapshot | null;
52
+ artifacts: readonly KanbanReviewArtifact[];
53
+ queue: readonly import("@a5c-ai/agent-mux-core").KanbanReviewQueueItem[];
54
+ summary: {
55
+ readonly total: number;
56
+ readonly issueCount: number;
57
+ readonly workspaceCount: number;
58
+ readonly pendingCount: number;
59
+ readonly changesRequestedCount: number;
60
+ readonly approvedCount: number;
61
+ readonly openCommentCount: number;
62
+ } | undefined;
63
+ loading: boolean;
64
+ error: string | null;
65
+ refresh: () => Promise<void>;
66
+ actOnReview: (input: {
67
+ action: "submit-review";
68
+ artifactId: string;
69
+ decision: KanbanReviewDecision;
70
+ summary?: string;
71
+ executionTargetId?: string;
72
+ } | {
73
+ action: "approve";
74
+ artifactId: string;
75
+ } | {
76
+ action: "request-changes";
77
+ artifactId: string;
78
+ } | {
79
+ action: "add-comment";
80
+ artifactId: string;
81
+ body: string;
82
+ anchor: KanbanReviewCommentAnchor;
83
+ authorName?: string;
84
+ feedbackSource?: KanbanReviewFeedbackSource;
85
+ } | {
86
+ action: "create-pull-request";
87
+ artifactId: string;
88
+ provider?: KanbanIntegrationProvider;
89
+ title: string;
90
+ reviewers?: string;
91
+ branchName?: string;
92
+ baseBranch?: string;
93
+ url?: string;
94
+ } | {
95
+ action: "link-pull-request";
96
+ artifactId: string;
97
+ provider?: KanbanIntegrationProvider;
98
+ number: number;
99
+ title: string;
100
+ status?: KanbanPullRequestStatus;
101
+ reviewStatus?: KanbanReviewStatus;
102
+ mergeStatus?: KanbanMergeStatus;
103
+ publishStatus?: KanbanPublishStatus;
104
+ ciGates?: readonly KanbanCiGate[];
105
+ branchName?: string;
106
+ baseBranch?: string;
107
+ url?: string;
108
+ }) => Promise<KanbanReviewSnapshot>;
109
+ pendingArtifactId: string | null;
110
+ selectedArtifact: (artifactId: string | null | undefined) => KanbanReviewArtifact | null;
111
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-reviews.d.ts","sourceRoot":"","sources":["../../../../src/kanban/hooks/use-reviews.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { type CatchUpState } from "./use-batched-updates";
2
+ import type { RunStatus, ProjectSummary, BreakpointRunInfo } from "@/types";
3
+ import type { ExecutiveSummaryMetrics } from "@/components/dashboard/executive-summary-banner";
4
+ /** Aggregated KPI metrics across all projects. */
5
+ export interface DashboardMetrics {
6
+ totalRuns: number;
7
+ activeRuns: number;
8
+ completedRuns: number;
9
+ failedRuns: number;
10
+ staleRuns: number;
11
+ totalTasks: number;
12
+ completedTasks: number;
13
+ }
14
+ export type DashboardSortMode = "status" | "activity";
15
+ export type DashboardStatusFilter = RunStatus | "all" | "stale";
16
+ export interface UseRunDashboardReturn {
17
+ projects: ProjectSummary[];
18
+ loading: boolean;
19
+ error: string | null | undefined;
20
+ metrics: DashboardMetrics;
21
+ allBreakpointRuns: BreakpointRunInfo[];
22
+ summaryMetrics: ExecutiveSummaryMetrics;
23
+ bannerFingerprint: string;
24
+ bannerDismissed: boolean;
25
+ filterCounts: Record<DashboardStatusFilter, number>;
26
+ filteredProjects: ProjectSummary[];
27
+ activeProjects: ProjectSummary[];
28
+ historyProjects: ProjectSummary[];
29
+ statusFilter: DashboardStatusFilter;
30
+ sortMode: DashboardSortMode;
31
+ historyCollapsed: boolean;
32
+ cardStatusFilter: RunStatus | "all";
33
+ hasStaleRuns: boolean;
34
+ catchUp: CatchUpState;
35
+ setStatusFilter: (value: DashboardStatusFilter) => void;
36
+ setSortMode: (value: DashboardSortMode | ((prev: DashboardSortMode) => DashboardSortMode)) => void;
37
+ setHistoryCollapsed: (value: boolean | ((prev: boolean) => boolean)) => void;
38
+ setDismissedFingerprint: (value: string | null | ((prev: string | null) => string | null)) => void;
39
+ toggleMetricFilter: (filter: DashboardStatusFilter) => void;
40
+ handleHideProject: (projectName: string) => void;
41
+ }
42
+ export declare function useRunDashboard(): UseRunDashboardReturn;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-run-dashboard.d.ts","sourceRoot":"","sources":["../../../../src/kanban/hooks/use-run-dashboard.ts"],"names":[],"mappings":"AAGA,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE7E,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iDAAiD,CAAC;AAE/F,kDAAkD;AAClD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,UAAU,CAAC;AACtD,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC;AAEhE,MAAM,WAAW,qBAAqB;IAEpC,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACjC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;IACvC,cAAc,EAAE,uBAAuB,CAAC;IACxC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IACpD,gBAAgB,EAAE,cAAc,EAAE,CAAC;IACnC,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,eAAe,EAAE,cAAc,EAAE,CAAC;IAGlC,YAAY,EAAE,qBAAqB,CAAC;IACpC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,SAAS,GAAG,KAAK,CAAC;IACpC,YAAY,EAAE,OAAO,CAAC;IAGtB,OAAO,EAAE,YAAY,CAAC;IAGtB,eAAe,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACxD,WAAW,EAAE,CAAC,KAAK,EAAE,iBAAiB,GAAG,CAAC,CAAC,IAAI,EAAE,iBAAiB,KAAK,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACnG,mBAAmB,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,KAAK,IAAI,CAAC;IAC7E,uBAAuB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC;IACnG,kBAAkB,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC5D,iBAAiB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD;AAED,wBAAgB,eAAe,IAAI,qBAAqB,CAsJvD"}
@@ -0,0 +1,12 @@
1
+ export declare function useRunDetail(runId: string, intervalOverride?: number): {
2
+ run: import("@/types").Run | null;
3
+ loading: boolean;
4
+ error: string | null;
5
+ refresh: () => Promise<void>;
6
+ hasBreakpointWaiting: boolean;
7
+ };
8
+ export declare function useTaskDetail(runId: string, effectId: string | null): {
9
+ task: import("@/types").TaskDetail | null;
10
+ loading: boolean;
11
+ error: string | null;
12
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-run-detail.d.ts","sourceRoot":"","sources":["../../../../src/kanban/hooks/use-run-detail.ts"],"names":[],"mappings":"AAkBA,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM;;;;;;EAyCpE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;;;;EAenE"}
@@ -0,0 +1,15 @@
1
+ import { StreamEvent } from "./use-event-stream";
2
+ interface UseSmartPollingOptions {
3
+ interval?: number;
4
+ sseFilter?: (event: StreamEvent) => boolean;
5
+ enabled?: boolean;
6
+ /** When true, suppress SSE-triggered refetches (used during catch-up mode). */
7
+ suppressSseRefetch?: boolean;
8
+ }
9
+ export declare function useSmartPolling<T>(url: string, options?: UseSmartPollingOptions): {
10
+ data: T | null;
11
+ loading: boolean;
12
+ error: string | null;
13
+ refresh: () => Promise<void>;
14
+ };
15
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-smart-polling.d.ts","sourceRoot":"","sources":["../../../../src/kanban/hooks/use-smart-polling.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAG5D,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAgB,eAAe,CAAC,CAAC,EAC/B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,sBAA2B;;;;;EAgIrC"}
@@ -0,0 +1,6 @@
1
+ import type { KanbanTaskTag } from "@a5c-ai/agent-mux-core/kanban";
2
+ export declare function useTaskTags(): {
3
+ taskTags: readonly KanbanTaskTag[];
4
+ loading: boolean;
5
+ error: string | null;
6
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-task-tags.d.ts","sourceRoot":"","sources":["../../../../src/kanban/hooks/use-task-tags.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAInE,wBAAgB,WAAW;;;;EAuC1B"}