@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,97 @@
1
+ import type { AutomationExecutionRecord, AutomationRule, AutomationRuleLifecycleState } from '@a5c-ai/agent-mux-core';
2
+ import type { KanbanIssue } from '@a5c-ai/agent-mux-core/kanban';
3
+ import { BacklogQueryService } from './backlog-query-service';
4
+ import { type KanbanStorageDeps } from './kanban-storage';
5
+ export declare const AUTOMATION_RULE_STATES: readonly ["draft", "active", "paused", "disabled", "archived"];
6
+ export declare const AUTOMATION_TRIGGER_TYPES: readonly ["timer", "webhook"];
7
+ export type AutomationRuleAction = 'enable' | 'pause' | 'resume' | 'disable' | 'delete';
8
+ export type AutomationTriggerType = (typeof AUTOMATION_TRIGGER_TYPES)[number];
9
+ export interface AutomationRuleQuery {
10
+ readonly state?: readonly AutomationRuleLifecycleState[];
11
+ readonly triggerType?: readonly AutomationTriggerType[];
12
+ readonly projectId?: string;
13
+ readonly boardProjectId?: string;
14
+ readonly search?: string;
15
+ readonly includeArchived?: boolean;
16
+ }
17
+ export type AutomationRuleRecord = AutomationRule & {
18
+ readonly allowedActions: readonly AutomationRuleAction[];
19
+ readonly isEnabled: boolean;
20
+ readonly triggerType: AutomationTriggerType;
21
+ readonly executionSummary: AutomationRuleExecutionSummary;
22
+ readonly recentExecutions: readonly AutomationExecutionRecord[];
23
+ };
24
+ export interface AutomationRuleTargetOption {
25
+ readonly projectId: string;
26
+ readonly boardProjectId: string;
27
+ readonly key: string;
28
+ readonly name: string;
29
+ readonly linkedRunProjectName?: string;
30
+ }
31
+ export interface AutomationRuleCollectionSummary {
32
+ readonly totalCount: number;
33
+ readonly visibleCount: number;
34
+ readonly stateCounts: Readonly<Record<AutomationRuleLifecycleState, number>>;
35
+ readonly triggerCounts: Readonly<Record<AutomationTriggerType, number>>;
36
+ readonly executionCount: number;
37
+ readonly failureCount: number;
38
+ readonly failingCount: number;
39
+ }
40
+ export interface AutomationRuleExecutionSummary {
41
+ readonly totalCount: number;
42
+ readonly createdCount: number;
43
+ readonly coalescedCount: number;
44
+ readonly rejectedCount: number;
45
+ readonly latestStatus?: AutomationExecutionRecord['status'];
46
+ readonly lastTriggeredAt?: string;
47
+ readonly lastFailureAt?: string;
48
+ readonly isFailing: boolean;
49
+ }
50
+ export interface AutomationRuleCollectionResponse {
51
+ readonly generatedAt: string;
52
+ readonly rules: readonly AutomationRuleRecord[];
53
+ readonly summary: AutomationRuleCollectionSummary;
54
+ readonly availableStates: readonly AutomationRuleLifecycleState[];
55
+ readonly availableTriggerTypes: readonly AutomationTriggerType[];
56
+ readonly targetOptions: readonly AutomationRuleTargetOption[];
57
+ }
58
+ export interface AutomationRuleDetailResponse {
59
+ readonly generatedAt: string;
60
+ readonly rule: AutomationRuleRecord;
61
+ readonly targetOptions: readonly AutomationRuleTargetOption[];
62
+ }
63
+ export interface DeleteAutomationRuleResponse {
64
+ readonly deletedRuleId: string;
65
+ readonly deletedAt: string;
66
+ }
67
+ export interface MaterializeAutomationEventResponse {
68
+ readonly generatedAt: string;
69
+ readonly rule: AutomationRuleRecord;
70
+ readonly execution: AutomationExecutionRecord;
71
+ readonly issue: KanbanIssue;
72
+ }
73
+ interface AutomationRuleServiceDeps extends KanbanStorageDeps {
74
+ backlogQueryService: Pick<BacklogQueryService, 'getOverview' | 'createIssue'>;
75
+ now: () => string;
76
+ }
77
+ export declare function isAutomationRuleState(value: string): value is AutomationRuleLifecycleState;
78
+ export declare function isAutomationTriggerType(value: string): value is AutomationTriggerType;
79
+ export declare class AutomationRuleService {
80
+ private readonly deps;
81
+ constructor(overrides?: Partial<AutomationRuleServiceDeps>);
82
+ private readStorage;
83
+ private listTargetOptions;
84
+ private assertTargetExists;
85
+ private assertMaterializationTargetExists;
86
+ private persistRules;
87
+ private persistExecution;
88
+ private readExistingRule;
89
+ listRules(query?: AutomationRuleQuery): Promise<AutomationRuleCollectionResponse>;
90
+ getRule(ruleId: string): Promise<AutomationRuleDetailResponse>;
91
+ createRule(body: Record<string, unknown>): Promise<AutomationRuleDetailResponse>;
92
+ updateRule(ruleId: string, body: Record<string, unknown>): Promise<AutomationRuleDetailResponse>;
93
+ transitionRule(ruleId: string, action: Exclude<AutomationRuleAction, 'delete'>, updatedBy?: string): Promise<AutomationRuleDetailResponse>;
94
+ deleteRule(ruleId: string): Promise<DeleteAutomationRuleResponse>;
95
+ materializeEvent(ruleId: string, body: Record<string, unknown>): Promise<MaterializeAutomationEventResponse>;
96
+ }
97
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automation-rule-service.d.ts","sourceRoot":"","sources":["../../../../../src/kanban/lib/services/automation-rule-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import type { AutomationExecutionRecord, AutomationExecutionStatus, AutomationRule } from "@a5c-ai/agent-mux-core/automation";
2
+ import { type KanbanStorageDeps, type StoredKanbanIssue } from "./kanban-storage";
3
+ type WebhookHeaders = Pick<Headers, "get">;
4
+ export type AutomationWebhookDeliveryOutcome = AutomationExecutionStatus;
5
+ export interface AutomationWebhookDeliveryInput {
6
+ readonly ruleId: string;
7
+ readonly requestPath: string;
8
+ readonly requestMethod: string;
9
+ readonly headers: WebhookHeaders;
10
+ readonly rawBody: string;
11
+ }
12
+ export interface AutomationWebhookDeliveryResponse {
13
+ readonly deliveredAt: string;
14
+ readonly outcome: AutomationWebhookDeliveryOutcome;
15
+ readonly code: string;
16
+ readonly reason: string;
17
+ readonly rule: {
18
+ readonly id: string;
19
+ readonly name: string;
20
+ readonly state: AutomationRule["state"];
21
+ };
22
+ readonly execution: AutomationExecutionRecord;
23
+ readonly issue?: {
24
+ readonly id: string;
25
+ readonly key: string;
26
+ readonly title: string;
27
+ readonly status: StoredKanbanIssue["status"];
28
+ };
29
+ }
30
+ interface AutomationWebhookServiceDeps extends KanbanStorageDeps {
31
+ now: () => string;
32
+ }
33
+ export declare class AutomationWebhookService {
34
+ private readonly deps;
35
+ constructor(overrides?: Partial<AutomationWebhookServiceDeps>);
36
+ private readStorage;
37
+ private writeStorage;
38
+ private updateRuleAudit;
39
+ private appendExecution;
40
+ private findRule;
41
+ private createAutomationIssue;
42
+ deliver(input: AutomationWebhookDeliveryInput): Promise<AutomationWebhookDeliveryResponse>;
43
+ }
44
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automation-webhook-service.d.ts","sourceRoot":"","sources":["../../../../../src/kanban/lib/services/automation-webhook-service.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,yBAAyB,EACzB,yBAAyB,EACzB,cAAc,EAEf,MAAM,mCAAmC,CAAC;AAU3C,OAAO,EAIL,KAAK,iBAAiB,EAEtB,KAAK,iBAAiB,EAEvB,MAAM,kBAAkB,CAAC;AAI1B,KAAK,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAE3C,MAAM,MAAM,gCAAgC,GAAG,yBAAyB,CAAC;AAEzE,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,gCAAgC,CAAC;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;KACzC,CAAC;IACF,QAAQ,CAAC,SAAS,EAAE,yBAAyB,CAAC;IAC9C,QAAQ,CAAC,KAAK,CAAC,EAAE;QACf,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;KAC9C,CAAC;CACH;AAED,UAAU,4BAA6B,SAAQ,iBAAiB;IAC9D,GAAG,EAAE,MAAM,MAAM,CAAC;CACnB;AA+PD,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA+B;gBAExC,SAAS,GAAE,OAAO,CAAC,4BAA4B,CAAM;YAInD,WAAW;YAIX,YAAY;IAI1B,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,QAAQ;IAehB,OAAO,CAAC,qBAAqB;IAkCvB,OAAO,CAAC,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,iCAAiC,CAAC;CAoOjG"}
@@ -0,0 +1,124 @@
1
+ import { type KanbanBacklogOverview, type KanbanBacklogSummary, type KanbanCollaboratorRole, type KanbanIssueCreateResult, type KanbanIssue, type KanbanPermissionGrant, type KanbanProjectSettings, type KanbanRepositoryProvider, type KanbanRepositorySettings, type KanbanTeamSettings, type KanbanWorkflowState, type KanbanIssueWorkspaceLinkInput } from '@a5c-ai/agent-mux-core/kanban';
2
+ import { ReviewService } from '../review-service';
3
+ import { RunQueryService } from './run-query-service';
4
+ import { type KanbanStorageDeps } from './kanban-storage';
5
+ export type BacklogOverviewSummary = KanbanBacklogSummary;
6
+ export type BacklogOverview = KanbanBacklogOverview;
7
+ export interface CreateBacklogIssueInput {
8
+ readonly projectId?: string;
9
+ readonly parentIssueId?: string;
10
+ readonly title: string;
11
+ readonly summary?: string;
12
+ readonly description?: string;
13
+ readonly status?: KanbanIssue['status'];
14
+ readonly priority?: KanbanIssue['priority'];
15
+ readonly labelIds?: readonly string[];
16
+ readonly assigneeIds?: readonly string[];
17
+ readonly dependencies?: readonly {
18
+ readonly issueId: string;
19
+ readonly type?: KanbanIssue['dependencies'][number]['type'];
20
+ }[];
21
+ readonly acceptanceCriteria?: readonly {
22
+ readonly id?: string;
23
+ readonly title: string;
24
+ readonly satisfied?: boolean;
25
+ readonly notes?: string;
26
+ }[];
27
+ readonly decomposition?: readonly Pick<KanbanIssue['decomposition'][number], 'title' | 'kind' | 'status'>[];
28
+ readonly source?: KanbanIssue['source'];
29
+ readonly metadata?: Readonly<Record<string, unknown>>;
30
+ }
31
+ export type CreateBacklogIssueResult = KanbanIssueCreateResult;
32
+ export interface UpdateIssueDetailInput {
33
+ readonly issueId: string;
34
+ readonly expectedUpdatedAt?: string;
35
+ readonly title?: string;
36
+ readonly summary?: string;
37
+ readonly description?: string;
38
+ readonly status?: KanbanIssue['status'];
39
+ readonly priority?: KanbanIssue['priority'];
40
+ readonly assigneeIds?: readonly string[];
41
+ readonly labelIds?: readonly string[];
42
+ readonly dependencies?: readonly {
43
+ readonly issueId: string;
44
+ readonly type?: KanbanIssue['dependencies'][number]['type'];
45
+ }[];
46
+ readonly acceptanceCriteria?: readonly {
47
+ readonly id?: string;
48
+ readonly title: string;
49
+ readonly satisfied?: boolean;
50
+ readonly notes?: string;
51
+ }[];
52
+ }
53
+ export type LinkIssueWorkspaceInput = KanbanIssueWorkspaceLinkInput;
54
+ interface BacklogQueryServiceDeps extends KanbanStorageDeps {
55
+ runQueryService: Pick<RunQueryService, 'listProjects'>;
56
+ reviewService: Pick<ReviewService, 'listReviews'>;
57
+ now: () => string;
58
+ }
59
+ export declare class BacklogQueryService {
60
+ private readonly deps;
61
+ constructor(overrides?: Partial<BacklogQueryServiceDeps>);
62
+ private readSeedPayload;
63
+ private listRunSummaries;
64
+ private buildOverviewFromPayload;
65
+ private persistPayload;
66
+ private findIssue;
67
+ private findProject;
68
+ getOverview(): Promise<BacklogOverview>;
69
+ createIssue(input: CreateBacklogIssueInput): Promise<CreateBacklogIssueResult>;
70
+ moveIssue(input: {
71
+ readonly issueId: string;
72
+ readonly toState: KanbanWorkflowState;
73
+ }): Promise<BacklogOverview>;
74
+ linkRepository(input: {
75
+ readonly issueId: string;
76
+ readonly owner: string;
77
+ readonly name: string;
78
+ readonly branchName: string;
79
+ readonly defaultBranch?: string;
80
+ readonly provider?: KanbanRepositoryProvider;
81
+ }): Promise<BacklogOverview>;
82
+ updateRepositorySettings(input: {
83
+ readonly issueId: string;
84
+ readonly settings: Partial<KanbanRepositorySettings>;
85
+ }): Promise<BacklogOverview>;
86
+ updateProjectCollaboration(input: {
87
+ readonly projectId: string;
88
+ readonly teamName?: string;
89
+ readonly visibility?: KanbanTeamSettings['visibility'];
90
+ readonly defaultRole?: KanbanCollaboratorRole;
91
+ readonly allowSelfAssign?: boolean;
92
+ readonly reviewRequiredForDone?: boolean;
93
+ readonly activityScope?: KanbanProjectSettings['activityScope'];
94
+ readonly workspaceProvisioning?: KanbanProjectSettings['workspaceProvisioning'];
95
+ readonly members?: readonly {
96
+ readonly id: string;
97
+ readonly displayName: string;
98
+ readonly email?: string;
99
+ readonly role?: KanbanCollaboratorRole;
100
+ }[];
101
+ readonly permissions?: readonly KanbanPermissionGrant[];
102
+ }): Promise<BacklogOverview>;
103
+ updateIssueCollaboration(input: {
104
+ readonly issueId: string;
105
+ readonly assigneeIds: readonly string[];
106
+ readonly collaboratorIds: readonly string[];
107
+ }): Promise<BacklogOverview>;
108
+ updateIssueDispatchContextLabels(input: {
109
+ readonly issueId: string;
110
+ readonly dispatchContextLabelIds: readonly string[];
111
+ }): Promise<BacklogOverview>;
112
+ updateIssueDetail(input: UpdateIssueDetailInput): Promise<BacklogOverview>;
113
+ linkIssueWorkspace(input: LinkIssueWorkspaceInput): Promise<BacklogOverview>;
114
+ linkChildIssue(input: {
115
+ readonly parentIssueId: string;
116
+ readonly childIssueId: string;
117
+ }): Promise<BacklogOverview>;
118
+ createPullRequest(input: {
119
+ readonly issueId: string;
120
+ readonly title: string;
121
+ readonly reviewers?: string;
122
+ }): Promise<BacklogOverview>;
123
+ }
124
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backlog-query-service.d.ts","sourceRoot":"","sources":["../../../../../src/kanban/lib/services/backlog-query-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { type KanbanDispatchContextLabelDefinition } from "@a5c-ai/agent-mux-core/kanban";
2
+ import { type KanbanStorageDeps } from "./kanban-storage";
3
+ export interface CreateDispatchContextLabelInput {
4
+ readonly key: string;
5
+ readonly label: string;
6
+ readonly instruction: string;
7
+ readonly description?: string;
8
+ readonly order?: number;
9
+ }
10
+ export interface UpdateDispatchContextLabelInput {
11
+ readonly key?: string;
12
+ readonly label?: string;
13
+ readonly instruction?: string;
14
+ readonly description?: string;
15
+ readonly order?: number;
16
+ }
17
+ export interface DispatchContextLabelMutationResult {
18
+ readonly dispatchContextLabel: KanbanDispatchContextLabelDefinition;
19
+ readonly dispatchContextLabels: readonly KanbanDispatchContextLabelDefinition[];
20
+ }
21
+ export interface DispatchContextLabelDeleteResult {
22
+ readonly dispatchContextLabels: readonly KanbanDispatchContextLabelDefinition[];
23
+ }
24
+ interface DispatchContextLabelServiceDeps extends KanbanStorageDeps {
25
+ readonly now: () => string;
26
+ readonly createId: () => string;
27
+ }
28
+ export declare class DispatchContextLabelService {
29
+ private readonly deps;
30
+ constructor(overrides?: Partial<DispatchContextLabelServiceDeps>);
31
+ private readStorage;
32
+ private writeStorage;
33
+ private assertUniqueKey;
34
+ listDispatchContextLabels(): Promise<readonly KanbanDispatchContextLabelDefinition[]>;
35
+ createDispatchContextLabel(input: CreateDispatchContextLabelInput): Promise<DispatchContextLabelMutationResult>;
36
+ updateDispatchContextLabel(dispatchContextLabelId: string, input: UpdateDispatchContextLabelInput): Promise<DispatchContextLabelMutationResult>;
37
+ deleteDispatchContextLabel(dispatchContextLabelId: string): Promise<DispatchContextLabelDeleteResult>;
38
+ }
39
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch-context-label-service.d.ts","sourceRoot":"","sources":["../../../../../src/kanban/lib/services/dispatch-context-label-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,oCAAoC,EAC1C,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAIL,KAAK,iBAAiB,EAEvB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,oBAAoB,EAAE,oCAAoC,CAAC;IACpE,QAAQ,CAAC,qBAAqB,EAAE,SAAS,oCAAoC,EAAE,CAAC;CACjF;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,qBAAqB,EAAE,SAAS,oCAAoC,EAAE,CAAC;CACjF;AAED,UAAU,+BAAgC,SAAQ,iBAAiB;IACjE,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,MAAM,CAAC;CACjC;AA+DD,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAkC;gBAE3C,SAAS,GAAE,OAAO,CAAC,+BAA+B,CAAM;YAItD,WAAW;YAaX,YAAY;IAY1B,OAAO,CAAC,eAAe;IAcjB,yBAAyB,IAAI,OAAO,CACxC,SAAS,oCAAoC,EAAE,CAChD;IAKK,0BAA0B,CAC9B,KAAK,EAAE,+BAA+B,GACrC,OAAO,CAAC,kCAAkC,CAAC;IA6BxC,0BAA0B,CAC9B,sBAAsB,EAAE,MAAM,EAC9B,KAAK,EAAE,+BAA+B,GACrC,OAAO,CAAC,kCAAkC,CAAC;IAgDxC,0BAA0B,CAC9B,sBAAsB,EAAE,MAAM,GAC7B,OAAO,CAAC,gCAAgC,CAAC;CAmC7C"}
@@ -0,0 +1,36 @@
1
+ import { promises as fs } from 'node:fs';
2
+ import type { AutomationExecutionRecord, AutomationRule } from '@a5c-ai/agent-mux-core';
3
+ import type { KanbanActivityEntry, KanbanCollaborator, KanbanDispatchContextLabelDefinition, KanbanDispatchContextLabelRef, KanbanIssue, KanbanPermissionGrant, KanbanProject, KanbanProjectSettings, KanbanTaskTag, KanbanTeam } from '@a5c-ai/agent-mux-core/kanban';
4
+ export declare const KANBAN_BACKLOG_FILE_PATH: string;
5
+ export type StoredKanbanProject = Omit<KanbanProject, 'metrics' | 'team' | 'settings' | 'permissions' | 'activity'> & {
6
+ readonly team?: Partial<KanbanTeam>;
7
+ readonly settings?: Partial<KanbanProjectSettings>;
8
+ readonly permissions?: readonly KanbanPermissionGrant[];
9
+ readonly activity?: readonly KanbanActivityEntry[];
10
+ };
11
+ export type StoredKanbanIssueDispatchState = Omit<Partial<KanbanIssue['dispatch']>, 'contextLabels' | 'executionContext' | 'renderedContext'> & {
12
+ readonly contextLabels?: readonly KanbanDispatchContextLabelRef[];
13
+ };
14
+ export type StoredKanbanIssue = Omit<KanbanIssue, 'dispatch' | 'collaborators' | 'activity'> & {
15
+ readonly collaborators?: readonly KanbanCollaborator[];
16
+ readonly activity?: readonly KanbanActivityEntry[];
17
+ readonly dispatch?: StoredKanbanIssueDispatchState;
18
+ };
19
+ export type StoredKanbanTaskTag = KanbanTaskTag;
20
+ export type StoredKanbanDispatchContextLabel = KanbanDispatchContextLabelDefinition;
21
+ export interface KanbanStoragePayload {
22
+ projects?: readonly StoredKanbanProject[];
23
+ issues?: readonly StoredKanbanIssue[];
24
+ taskTags?: readonly StoredKanbanTaskTag[];
25
+ dispatchContextLabels?: readonly StoredKanbanDispatchContextLabel[];
26
+ automationRules?: readonly AutomationRule[];
27
+ automationExecutions?: readonly AutomationExecutionRecord[];
28
+ }
29
+ export interface KanbanStorageDeps {
30
+ readFile: typeof fs.readFile;
31
+ writeFile: typeof fs.writeFile;
32
+ backlogFilePath: string;
33
+ }
34
+ export declare const defaultKanbanStorageDeps: KanbanStorageDeps;
35
+ export declare function readKanbanStorageFile(deps: KanbanStorageDeps): Promise<KanbanStoragePayload | null>;
36
+ export declare function writeKanbanStorageFile(deps: KanbanStorageDeps, payload: KanbanStoragePayload): Promise<void>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kanban-storage.d.ts","sourceRoot":"","sources":["../../../../../src/kanban/lib/services/kanban-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AAIzC,OAAO,KAAK,EACV,yBAAyB,EACzB,cAAc,EACf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,oCAAoC,EACpC,6BAA6B,EAC7B,WAAW,EACX,qBAAqB,EACrB,aAAa,EACb,qBAAqB,EACrB,aAAa,EACb,UAAU,EACX,MAAM,+BAA+B,CAAC;AAEvC,eAAO,MAAM,wBAAwB,QACsD,CAAC;AAE5F,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,aAAa,EACb,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,CAC7D,GAAG;IACF,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACnD,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACxD,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACpD,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG,IAAI,CAC/C,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,EAChC,eAAe,GAAG,kBAAkB,GAAG,iBAAiB,CACzD,GAAG;IACF,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,6BAA6B,EAAE,CAAC;CACnE,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,eAAe,GAAG,UAAU,CAAC,GAAG;IAC7F,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACvD,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACnD,QAAQ,CAAC,QAAQ,CAAC,EAAE,8BAA8B,CAAC;CACpD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,aAAa,CAAC;AAChD,MAAM,MAAM,gCAAgC,GAAG,oCAAoC,CAAC;AAEpF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC1C,MAAM,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACtC,QAAQ,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC1C,qBAAqB,CAAC,EAAE,SAAS,gCAAgC,EAAE,CAAC;IACpE,eAAe,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IAC5C,oBAAoB,CAAC,EAAE,SAAS,yBAAyB,EAAE,CAAC;CAC7D;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC;IAC7B,SAAS,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,wBAAwB,EAAE,iBAItC,CAAC;AAEF,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAWtC;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAEf"}
@@ -0,0 +1,79 @@
1
+ import type { Run, ProjectSummary } from "@/types";
2
+ import type { KanbanConfig, WatchSource } from "@/lib/config-loader";
3
+ import type { DiscoveredRun } from "@/lib/source-discovery";
4
+ export type SortMode = "status" | "activity";
5
+ export interface RunQueryParams {
6
+ limit: number;
7
+ offset: number;
8
+ search: string;
9
+ status: string;
10
+ sort: SortMode;
11
+ }
12
+ export type ProjectsQueryParams = Record<string, never>;
13
+ export interface ProjectRunsQueryParams extends RunQueryParams {
14
+ project: string;
15
+ }
16
+ /** A run with events stripped to reduce payload size. */
17
+ export interface LightRun extends Omit<Run, "events"> {
18
+ events: never[];
19
+ totalEvents: number;
20
+ }
21
+ export interface ProjectsResponse {
22
+ projects: ProjectSummary[];
23
+ recentCompletionWindowMs: number;
24
+ }
25
+ export interface RunsListResponse {
26
+ runs: LightRun[];
27
+ totalCount: number;
28
+ project?: string;
29
+ }
30
+ /**
31
+ * Returns a numeric sort priority for a run:
32
+ * 0 = Active non-stale (waiting/pending where !isStale)
33
+ * 1 = Stale runs (isStale === true)
34
+ * 2 = Failed runs
35
+ * 3 = Completed runs
36
+ */
37
+ export declare function runSortPriority(run: Run): number;
38
+ /** Sort runs in-place based on the chosen sort mode.
39
+ *
40
+ * Uses runId as a final tiebreaker to guarantee deterministic ordering
41
+ * even when multiple runs share the same priority and updatedAt timestamp.
42
+ * This prevents list items from visually jumping positions during rapid
43
+ * updates (the "morning chaos" scenario).
44
+ */
45
+ export declare function sortRuns(runs: Run[], sort: SortMode): void;
46
+ /** Apply search filter -- returns a new array. */
47
+ export declare function filterBySearch(runs: Run[], search: string): Run[];
48
+ /** Apply status filter -- returns a new array. */
49
+ export declare function filterByStatus(runs: Run[], status: string): Run[];
50
+ /** Apply retention filter -- keeps active/stale runs regardless of age. */
51
+ export declare function filterByRetention(runs: Run[], retentionDays: number): Run[];
52
+ /** Paginate an array: returns a new slice. */
53
+ export declare function paginate<T>(items: T[], offset: number, limit: number): T[];
54
+ /** Strip events from runs to reduce payload. */
55
+ export declare function toLightRuns(runs: Run[]): LightRun[];
56
+ export interface RunQueryDeps {
57
+ getConfig: () => Promise<KanbanConfig>;
58
+ discoverAllRunDirs: () => Promise<DiscoveredRun[]>;
59
+ getProjectSummaries: () => ProjectSummary[];
60
+ getRunCached: (runDir: string, source: WatchSource, projectName: string) => Promise<Run>;
61
+ discoverAndCacheAll: () => Promise<void>;
62
+ }
63
+ export declare class RunQueryService {
64
+ private deps;
65
+ constructor(deps?: Partial<RunQueryDeps>);
66
+ /**
67
+ * Mode: "projects" -- return lightweight project summaries.
68
+ * Always re-discovers to ensure all projects appear (debounced internally).
69
+ */
70
+ listProjects(_params?: ProjectsQueryParams): Promise<ProjectsResponse>;
71
+ /**
72
+ * Mode: "project" -- return paginated runs for a specific project.
73
+ */
74
+ listProjectRuns(params: ProjectRunsQueryParams): Promise<RunsListResponse>;
75
+ /**
76
+ * Default mode -- return all runs with totalCount.
77
+ */
78
+ listAllRuns(params: RunQueryParams): Promise<RunsListResponse>;
79
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-query-service.d.ts","sourceRoot":"","sources":["../../../../../src/kanban/lib/services/run-query-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { type KanbanTaskTag } from "@a5c-ai/agent-mux-core/kanban";
2
+ import { type KanbanStorageDeps } from "./kanban-storage";
3
+ export interface CreateTaskTagInput {
4
+ readonly key: string;
5
+ readonly label: string;
6
+ readonly content: string;
7
+ readonly description?: string;
8
+ readonly order?: number;
9
+ }
10
+ export interface UpdateTaskTagInput {
11
+ readonly key?: string;
12
+ readonly label?: string;
13
+ readonly content?: string;
14
+ readonly description?: string;
15
+ readonly order?: number;
16
+ }
17
+ export interface TaskTagMutationResult {
18
+ readonly taskTag: KanbanTaskTag;
19
+ readonly taskTags: readonly KanbanTaskTag[];
20
+ }
21
+ export interface TaskTagDeleteResult {
22
+ readonly taskTags: readonly KanbanTaskTag[];
23
+ }
24
+ interface TaskTagServiceDeps extends KanbanStorageDeps {
25
+ readonly now: () => string;
26
+ readonly createId: () => string;
27
+ }
28
+ export declare class TaskTagService {
29
+ private readonly deps;
30
+ constructor(overrides?: Partial<TaskTagServiceDeps>);
31
+ private readStorage;
32
+ private writeStorage;
33
+ private assertUniqueKey;
34
+ listTaskTags(): Promise<readonly KanbanTaskTag[]>;
35
+ createTaskTag(input: CreateTaskTagInput): Promise<TaskTagMutationResult>;
36
+ updateTaskTag(taskTagId: string, input: UpdateTaskTagInput): Promise<TaskTagMutationResult>;
37
+ deleteTaskTag(taskTagId: string): Promise<TaskTagDeleteResult>;
38
+ }
39
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-tag-service.d.ts","sourceRoot":"","sources":["../../../../../src/kanban/lib/services/task-tag-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAIL,KAAK,iBAAiB,EAEvB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;CAC7C;AAED,UAAU,kBAAmB,SAAQ,iBAAiB;IACpD,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,MAAM,CAAC;CACjC;AA6DD,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;gBAE9B,SAAS,GAAE,OAAO,CAAC,kBAAkB,CAAM;YAIzC,WAAW;YAWX,YAAY;IAY1B,OAAO,CAAC,eAAe;IAcjB,YAAY,IAAI,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC;IAKjD,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAyBxE,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA4C3F,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAcrE"}
@@ -0,0 +1,13 @@
1
+ import type { McpServerConfig } from "@a5c-ai/agent-mux-core";
2
+ export interface StoredAgentConfiguration {
3
+ model?: string;
4
+ provider?: string;
5
+ approvalMode?: "yolo" | "prompt" | "deny";
6
+ maxTokens?: number;
7
+ }
8
+ export interface SettingsSectionStorage {
9
+ agentConfiguration: Record<string, StoredAgentConfiguration>;
10
+ mcpServers: Record<string, McpServerConfig[]>;
11
+ }
12
+ export declare function loadSettingsSectionStorage(): Promise<SettingsSectionStorage>;
13
+ export declare function writeSettingsSectionStorage(data: SettingsSectionStorage): Promise<void>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings-section-storage.d.ts","sourceRoot":"","sources":["../../../../src/kanban/lib/settings-section-storage.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAC7D,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;CAC/C;AA6BD,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAOlF;AAED,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAIf"}
@@ -0,0 +1,10 @@
1
+ import { type WatchSource } from "./config-loader";
2
+ export interface DiscoveredRun {
3
+ runDir: string;
4
+ source: WatchSource;
5
+ projectName: string;
6
+ projectPath: string;
7
+ }
8
+ export declare function invalidateDiscoveryCache(): void;
9
+ export declare function discoverAllRunDirs(): Promise<DiscoveredRun[]>;
10
+ export declare function discoverAllRunsParentDirs(): Promise<string[]>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-discovery.d.ts","sourceRoot":"","sources":["../../../../src/kanban/lib/source-discovery.ts"],"names":[],"mappings":"AAEA,OAAO,EAA8B,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE/E,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAgFD,wBAAgB,wBAAwB,IAAI,IAAI,CAG/C;AAGD,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CA+FnE;AAKD,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAoBnE"}
@@ -0,0 +1,8 @@
1
+ export declare function formatDuration(ms: number | undefined | null): string;
2
+ export declare function formatTimestamp(iso: string | undefined): string;
3
+ export declare function formatRelativeTime(iso: string | undefined): string;
4
+ export declare function truncateId(id: string, len?: number): string;
5
+ export declare function getStatusColor(status: string): string;
6
+ export declare function getStatusBg(status: string): string;
7
+ export declare function formatShortId(id: string, chars?: number): string;
8
+ export declare function friendlyProcessName(processId: string): string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/kanban/lib/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAYpE;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAa/D;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAalE;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,GAAE,MAAW,GAAG,MAAM,CAI/D;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAkBrD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAkBlD;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM,CAInE;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAM7D"}
@@ -0,0 +1,14 @@
1
+ import { EventEmitter } from "events";
2
+ export declare const watcherEvents: EventEmitter<[never]>;
3
+ export type WatcherEventType = "run-changed" | "new-run" | "error";
4
+ export interface WatcherEvent {
5
+ type: WatcherEventType;
6
+ runDir: string;
7
+ error?: Error;
8
+ }
9
+ export declare function initWatcher(): Promise<() => void>;
10
+ export declare function getWatcherStats(): {
11
+ activeWatchers: number;
12
+ watchedPaths: string[];
13
+ pendingDebounces: number;
14
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../../../src/kanban/lib/watcher.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAUtC,eAAO,MAAM,aAAa,uBAAqB,CAAC;AAGhD,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC;AAEnE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AA0LD,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,CA8CvD;AAGD,wBAAgB,eAAe;;;;EAO9B"}
@@ -0,0 +1,20 @@
1
+ export declare const WORKSPACE_PANEL_ORDER: readonly ["sidebar", "conversation", "context", "details"];
2
+ export type WorkspacePanelKey = (typeof WORKSPACE_PANEL_ORDER)[number];
3
+ export type WorkspacePanelVisibility = Record<WorkspacePanelKey, boolean>;
4
+ export type WorkspacePanelSizes = Record<WorkspacePanelKey, number>;
5
+ export declare const DEFAULT_WORKSPACE_PANEL_VISIBILITY: WorkspacePanelVisibility;
6
+ export declare const DEFAULT_WORKSPACE_PANEL_SIZES: WorkspacePanelSizes;
7
+ export declare const DESKTOP_LAYOUT_BREAKPOINT = 1280;
8
+ export declare const MIN_WORKSPACE_PANEL_SIZE = 14;
9
+ export declare function ensureVisiblePanels(visibility: WorkspacePanelVisibility): WorkspacePanelVisibility;
10
+ export declare function getVisiblePanels(visibility: WorkspacePanelVisibility): WorkspacePanelKey[];
11
+ export declare function toggleWorkspacePanel(visibility: WorkspacePanelVisibility, panel: WorkspacePanelKey): WorkspacePanelVisibility;
12
+ export declare function normalizeWorkspacePanelSizes(sizes: WorkspacePanelSizes, visibility: WorkspacePanelVisibility): WorkspacePanelSizes;
13
+ export declare function resizeWorkspacePanels(args: {
14
+ sizes: WorkspacePanelSizes;
15
+ visibility: WorkspacePanelVisibility;
16
+ leftPanel: WorkspacePanelKey;
17
+ rightPanel: WorkspacePanelKey;
18
+ deltaPercentage: number;
19
+ minPercentage?: number;
20
+ }): WorkspacePanelSizes;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-layout-state.d.ts","sourceRoot":"","sources":["../../../../src/kanban/lib/workspace-layout-state.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB,4DAKxB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE,MAAM,MAAM,wBAAwB,GAAG,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;AAC1E,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;AAEpE,eAAO,MAAM,kCAAkC,EAAE,wBAKhD,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,mBAK3C,CAAC;AAEF,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAC9C,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,wBAAwB,GAAG,wBAAwB,CASlG;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,wBAAwB,GAAG,iBAAiB,EAAE,CAG1F;AAED,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,wBAAwB,EACpC,KAAK,EAAE,iBAAiB,GACvB,wBAAwB,CAK1B;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,mBAAmB,EAC1B,UAAU,EAAE,wBAAwB,GACnC,mBAAmB,CAoBrB;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,KAAK,EAAE,mBAAmB,CAAC;IAC3B,UAAU,EAAE,wBAAwB,CAAC;IACrC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,UAAU,EAAE,iBAAiB,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,mBAAmB,CA2BtB"}