agent-tasks 1.5.0 → 1.6.5

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 (49) hide show
  1. package/README.md +149 -42
  2. package/dist/context.d.ts +4 -0
  3. package/dist/context.d.ts.map +1 -1
  4. package/dist/context.js +11 -0
  5. package/dist/context.js.map +1 -1
  6. package/dist/domain/approvals.d.ts +1 -0
  7. package/dist/domain/approvals.d.ts.map +1 -1
  8. package/dist/domain/approvals.js +13 -3
  9. package/dist/domain/approvals.js.map +1 -1
  10. package/dist/domain/collaborators.d.ts +1 -0
  11. package/dist/domain/collaborators.d.ts.map +1 -1
  12. package/dist/domain/collaborators.js +14 -1
  13. package/dist/domain/collaborators.js.map +1 -1
  14. package/dist/domain/comments.d.ts.map +1 -1
  15. package/dist/domain/comments.js +6 -3
  16. package/dist/domain/comments.js.map +1 -1
  17. package/dist/domain/events.d.ts +1 -0
  18. package/dist/domain/events.d.ts.map +1 -1
  19. package/dist/domain/events.js +13 -4
  20. package/dist/domain/events.js.map +1 -1
  21. package/dist/domain/rules.js +46 -46
  22. package/dist/domain/tasks.d.ts +8 -2
  23. package/dist/domain/tasks.d.ts.map +1 -1
  24. package/dist/domain/tasks.js +61 -22
  25. package/dist/domain/tasks.js.map +1 -1
  26. package/dist/domain/validate.d.ts +2 -0
  27. package/dist/domain/validate.d.ts.map +1 -1
  28. package/dist/domain/validate.js +5 -2
  29. package/dist/domain/validate.js.map +1 -1
  30. package/dist/index.js +13 -2
  31. package/dist/index.js.map +1 -1
  32. package/dist/storage/database.js +10 -1
  33. package/dist/storage/database.js.map +1 -1
  34. package/dist/transport/mcp.d.ts.map +1 -1
  35. package/dist/transport/mcp.js +165 -7
  36. package/dist/transport/mcp.js.map +1 -1
  37. package/dist/transport/rest.d.ts.map +1 -1
  38. package/dist/transport/rest.js +183 -12
  39. package/dist/transport/rest.js.map +1 -1
  40. package/dist/transport/ws.d.ts.map +1 -1
  41. package/dist/transport/ws.js +39 -25
  42. package/dist/transport/ws.js.map +1 -1
  43. package/dist/types.d.ts +2 -1
  44. package/dist/types.d.ts.map +1 -1
  45. package/dist/types.js.map +1 -1
  46. package/dist/ui/app.js +1956 -648
  47. package/dist/ui/index.html +97 -14
  48. package/dist/ui/styles.css +2023 -316
  49. package/package.json +84 -78
@@ -21,38 +21,48 @@
21
21
  <link rel="stylesheet" href="styles.css" />
22
22
  </head>
23
23
  <body>
24
- <header>
24
+ <header role="banner">
25
25
  <div class="header-left">
26
26
  <span class="material-symbols-outlined brand-icon">view_kanban</span>
27
27
  <h1>agent-tasks</h1>
28
28
  <span class="version" id="version"></span>
29
- <span id="connection-status" class="status-badge disconnected">Connecting</span>
29
+ <span
30
+ id="connection-status"
31
+ class="status-badge disconnected"
32
+ role="status"
33
+ aria-live="polite"
34
+ >Connecting</span
35
+ >
30
36
  </div>
31
37
  <div class="header-right">
32
- <div class="stats" id="stats"></div>
33
- <button id="theme-toggle" class="icon-btn" title="Toggle theme">
38
+ <div class="stats" id="stats" aria-live="polite" aria-atomic="true"></div>
39
+ <button id="cleanup-btn" class="icon-btn" title="Clean up" aria-label="Clean up old tasks">
40
+ <span class="material-symbols-outlined">mop</span>
41
+ </button>
42
+ <button id="theme-toggle" class="icon-btn" title="Toggle theme" aria-label="Toggle theme">
34
43
  <span class="material-symbols-outlined theme-icon">dark_mode</span>
35
44
  </button>
36
45
  </div>
37
46
  </header>
38
47
 
39
- <div class="filter-bar" id="filter-bar">
48
+ <div class="filter-bar" id="filter-bar" role="search" aria-label="Task filters">
40
49
  <div class="filter-group">
41
- <span class="material-symbols-outlined filter-icon">filter_list</span>
50
+ <span class="material-symbols-outlined filter-icon" aria-hidden="true">filter_list</span>
42
51
  <input
43
52
  type="text"
44
53
  id="filter-search"
45
54
  class="filter-input"
46
- placeholder="Search tasks... (/)"
55
+ placeholder="Search tasks... (/ or Ctrl+K)"
47
56
  autocomplete="off"
57
+ aria-label="Search tasks"
48
58
  />
49
- <select id="filter-project" class="filter-select">
59
+ <select id="filter-project" class="filter-select" aria-label="Filter by project">
50
60
  <option value="">All projects</option>
51
61
  </select>
52
- <select id="filter-assignee" class="filter-select">
62
+ <select id="filter-assignee" class="filter-select" aria-label="Filter by assignee">
53
63
  <option value="">All assignees</option>
54
64
  </select>
55
- <select id="filter-priority" class="filter-select">
65
+ <select id="filter-priority" class="filter-select" aria-label="Filter by minimum priority">
56
66
  <option value="">Any priority</option>
57
67
  <option value="1">P1+</option>
58
68
  <option value="3">P3+</option>
@@ -63,20 +73,93 @@
63
73
  <div class="filter-chips" id="filter-chips"></div>
64
74
  </div>
65
75
 
66
- <main id="board" class="kanban-board"></main>
76
+ <div class="board-wrapper" id="board-wrapper">
77
+ <main id="board" class="kanban-board" role="region" aria-label="Task board"></main>
78
+
79
+ <aside id="side-panel" class="side-panel" role="complementary" aria-label="Task details">
80
+ <div class="panel-header" id="panel-header-content"></div>
81
+ <div class="panel-body" id="panel-body"></div>
82
+ </aside>
83
+ </div>
84
+
85
+ <div id="loading-overlay" class="loading-overlay" aria-label="Loading">
86
+ <div class="loading-spinner"></div>
87
+ <div class="loading-text">Connecting to agent-tasks...</div>
88
+ </div>
67
89
 
68
- <div id="task-modal" class="modal-overlay" hidden>
90
+ <div
91
+ id="task-modal"
92
+ class="modal-overlay"
93
+ hidden
94
+ role="dialog"
95
+ aria-modal="true"
96
+ aria-labelledby="modal-title"
97
+ >
69
98
  <div class="modal">
70
99
  <div class="modal-header">
71
100
  <h2 id="modal-title"></h2>
72
- <button class="icon-btn modal-close" onclick="closeModal()">&times;</button>
101
+ <button class="icon-btn modal-close" id="modal-close-btn" aria-label="Close dialog">
102
+ &times;
103
+ </button>
73
104
  </div>
74
105
  <div id="modal-body" class="modal-body"></div>
75
106
  </div>
76
107
  </div>
77
108
 
78
- <div id="toast-container" class="toast-container"></div>
109
+ <div id="cleanup-modal" class="modal-overlay hidden" role="dialog" aria-modal="true">
110
+ <div class="modal" style="max-width: 420px">
111
+ <div class="modal-header">
112
+ <h2>
113
+ <span
114
+ class="material-symbols-outlined"
115
+ style="font-size: 20px; vertical-align: middle; margin-right: 6px"
116
+ >mop</span
117
+ >Clean Up
118
+ </h2>
119
+ <button class="icon-btn modal-close" id="cleanup-close-btn" aria-label="Close">
120
+ &times;
121
+ </button>
122
+ </div>
123
+ <div class="modal-body">
124
+ <p style="color: var(--text-muted); margin-bottom: 12px">
125
+ Remove old tasks and stale data:
126
+ </p>
127
+ <div class="cleanup-options">
128
+ <button id="cleanup-completed" class="cleanup-option">
129
+ <span class="material-symbols-outlined">auto_delete</span>
130
+ <div>
131
+ <strong>Purge completed</strong>
132
+ <span>Remove all completed and cancelled tasks</span>
133
+ </div>
134
+ </button>
135
+ <button id="cleanup-everything" class="cleanup-option cleanup-option-danger">
136
+ <span class="material-symbols-outlined">delete_forever</span>
137
+ <div>
138
+ <strong>Purge everything</strong>
139
+ <span>Remove ALL tasks regardless of status</span>
140
+ </div>
141
+ </button>
142
+ </div>
143
+ </div>
144
+ </div>
145
+ </div>
146
+
147
+ <div id="toast-container" class="toast-container" aria-live="polite"></div>
79
148
 
149
+ <script src="https://cdn.jsdelivr.net/npm/marked@15/marked.min.js"></script>
150
+ <script src="https://cdn.jsdelivr.net/npm/dompurify@3/dist/purify.min.js"></script>
151
+ <link
152
+ rel="stylesheet"
153
+ href="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11/build/styles/github.min.css"
154
+ media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)"
155
+ />
156
+ <link
157
+ rel="stylesheet"
158
+ href="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11/build/styles/github-dark.min.css"
159
+ media="(prefers-color-scheme: dark)"
160
+ />
161
+ <script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11/build/highlight.min.js"></script>
162
+ <script src="morphdom.min.js"></script>
80
163
  <script src="app.js"></script>
81
164
  </body>
82
165
  </html>