aimeat 1.6.1 → 1.8.0

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 (296) hide show
  1. package/dist/bin/aimeat.js +0 -0
  2. package/dist/locales/en.json +257 -8
  3. package/dist/locales/fi.json +257 -8
  4. package/dist/public/css/views/agents-detail.css +713 -0
  5. package/dist/public/css/views/foundry.css +1 -0
  6. package/dist/public/css/views/marketplace.css +1 -0
  7. package/dist/public/css/views/profile.css +24 -2
  8. package/dist/public/js/services/admin.js +13 -0
  9. package/dist/public/js/services/agent-activity.js +20 -0
  10. package/dist/public/js/services/agent-capabilities.js +15 -0
  11. package/dist/public/js/services/agent-directives.js +28 -0
  12. package/dist/public/js/services/agent-messages.js +34 -0
  13. package/dist/public/js/services/agent-services.js +17 -0
  14. package/dist/public/js/services/agent-tasks.js +46 -0
  15. package/dist/public/js/services/generator-spec-validate.js +23 -0
  16. package/dist/public/js/services/memory.js +45 -3
  17. package/dist/public/js/services/sharing-groups.js +51 -0
  18. package/dist/public/spa.html +21 -2
  19. package/dist/public/views/admin/agent-tasks-tab.js +156 -0
  20. package/dist/public/views/admin/federation-tab.js +7 -7
  21. package/dist/public/views/admin/memory-tab.js +1 -0
  22. package/dist/public/views/admin/overview-tab.js +25 -0
  23. package/dist/public/views/admin/prompts-tab.js +9 -10
  24. package/dist/public/views/admin/sharing-groups-tab.js +86 -0
  25. package/dist/public/views/admin.js +4 -0
  26. package/dist/public/views/profile/access-tab.js +528 -5
  27. package/dist/public/views/profile/agents-activity-subtab.js +242 -0
  28. package/dist/public/views/profile/agents-capabilities-subtab.js +165 -0
  29. package/dist/public/views/profile/agents-directives-subtab.js +292 -0
  30. package/dist/public/views/profile/agents-messages-subtab.js +223 -0
  31. package/dist/public/views/profile/agents-services-subtab.js +111 -0
  32. package/dist/public/views/profile/agents-tab.js +100 -49
  33. package/dist/public/views/profile/agents-tasks-subtab.js +313 -0
  34. package/dist/public/views/profile/generator-detail.js +8 -1
  35. package/dist/public/views/profile/knowledge-tab.js +5 -5
  36. package/dist/public/views/profile/memory-tab.js +458 -29
  37. package/dist/public/views/profile/wallet-tab.js +14 -0
  38. package/dist/src/config.d.ts +5 -0
  39. package/dist/src/config.d.ts.map +1 -1
  40. package/dist/src/config.js +9 -2
  41. package/dist/src/config.js.map +1 -1
  42. package/dist/src/mcp/agent-capabilities.d.ts +18 -0
  43. package/dist/src/mcp/agent-capabilities.d.ts.map +1 -0
  44. package/dist/src/mcp/agent-capabilities.js +85 -0
  45. package/dist/src/mcp/agent-capabilities.js.map +1 -0
  46. package/dist/src/mcp/agent-messages.d.ts +15 -0
  47. package/dist/src/mcp/agent-messages.d.ts.map +1 -0
  48. package/dist/src/mcp/agent-messages.js +81 -0
  49. package/dist/src/mcp/agent-messages.js.map +1 -0
  50. package/dist/src/mcp/agent-tasks.d.ts +16 -0
  51. package/dist/src/mcp/agent-tasks.d.ts.map +1 -0
  52. package/dist/src/mcp/agent-tasks.js +350 -0
  53. package/dist/src/mcp/agent-tasks.js.map +1 -0
  54. package/dist/src/mcp/core.d.ts.map +1 -1
  55. package/dist/src/mcp/core.js +8 -4
  56. package/dist/src/mcp/core.js.map +1 -1
  57. package/dist/src/mcp/index.d.ts.map +1 -1
  58. package/dist/src/mcp/index.js +8 -0
  59. package/dist/src/mcp/index.js.map +1 -1
  60. package/dist/src/mcp/memory-extended.js +1 -1
  61. package/dist/src/mcp/memory-extended.js.map +1 -1
  62. package/dist/src/mcp/sharing-groups.d.ts +16 -0
  63. package/dist/src/mcp/sharing-groups.d.ts.map +1 -0
  64. package/dist/src/mcp/sharing-groups.js +240 -0
  65. package/dist/src/mcp/sharing-groups.js.map +1 -0
  66. package/dist/src/models/agent-capabilities-schemas.d.ts +23 -0
  67. package/dist/src/models/agent-capabilities-schemas.d.ts.map +1 -0
  68. package/dist/src/models/agent-capabilities-schemas.js +19 -0
  69. package/dist/src/models/agent-capabilities-schemas.js.map +1 -0
  70. package/dist/src/models/agent-directives-schemas.d.ts +44 -0
  71. package/dist/src/models/agent-directives-schemas.d.ts.map +1 -0
  72. package/dist/src/models/agent-directives-schemas.js +41 -0
  73. package/dist/src/models/agent-directives-schemas.js.map +1 -0
  74. package/dist/src/models/agent-message-schemas.d.ts +32 -0
  75. package/dist/src/models/agent-message-schemas.d.ts.map +1 -0
  76. package/dist/src/models/agent-message-schemas.js +25 -0
  77. package/dist/src/models/agent-message-schemas.js.map +1 -0
  78. package/dist/src/models/agent-task-schemas.d.ts +133 -0
  79. package/dist/src/models/agent-task-schemas.d.ts.map +1 -0
  80. package/dist/src/models/agent-task-schemas.js +84 -0
  81. package/dist/src/models/agent-task-schemas.js.map +1 -0
  82. package/dist/src/models/schemas.d.ts +5 -0
  83. package/dist/src/models/schemas.d.ts.map +1 -1
  84. package/dist/src/models/schemas.js +5 -3
  85. package/dist/src/models/schemas.js.map +1 -1
  86. package/dist/src/models/sharing-group-schemas.d.ts +52 -0
  87. package/dist/src/models/sharing-group-schemas.d.ts.map +1 -0
  88. package/dist/src/models/sharing-group-schemas.js +46 -0
  89. package/dist/src/models/sharing-group-schemas.js.map +1 -0
  90. package/dist/src/routes/admin-agent-tasks.d.ts +12 -0
  91. package/dist/src/routes/admin-agent-tasks.d.ts.map +1 -0
  92. package/dist/src/routes/admin-agent-tasks.js +62 -0
  93. package/dist/src/routes/admin-agent-tasks.js.map +1 -0
  94. package/dist/src/routes/admin-monitoring.d.ts +2 -1
  95. package/dist/src/routes/admin-monitoring.d.ts.map +1 -1
  96. package/dist/src/routes/admin-monitoring.js +80 -2
  97. package/dist/src/routes/admin-monitoring.js.map +1 -1
  98. package/dist/src/routes/admin-sharing-groups.d.ts +12 -0
  99. package/dist/src/routes/admin-sharing-groups.d.ts.map +1 -0
  100. package/dist/src/routes/admin-sharing-groups.js +37 -0
  101. package/dist/src/routes/admin-sharing-groups.js.map +1 -0
  102. package/dist/src/routes/admin.d.ts +1 -1
  103. package/dist/src/routes/admin.d.ts.map +1 -1
  104. package/dist/src/routes/admin.js +2 -2
  105. package/dist/src/routes/admin.js.map +1 -1
  106. package/dist/src/routes/agent-activity.d.ts +17 -0
  107. package/dist/src/routes/agent-activity.d.ts.map +1 -0
  108. package/dist/src/routes/agent-activity.js +130 -0
  109. package/dist/src/routes/agent-activity.js.map +1 -0
  110. package/dist/src/routes/agent-capabilities.d.ts +18 -0
  111. package/dist/src/routes/agent-capabilities.d.ts.map +1 -0
  112. package/dist/src/routes/agent-capabilities.js +115 -0
  113. package/dist/src/routes/agent-capabilities.js.map +1 -0
  114. package/dist/src/routes/agent-directives.d.ts +17 -0
  115. package/dist/src/routes/agent-directives.d.ts.map +1 -0
  116. package/dist/src/routes/agent-directives.js +206 -0
  117. package/dist/src/routes/agent-directives.js.map +1 -0
  118. package/dist/src/routes/agent-integration.d.ts +17 -0
  119. package/dist/src/routes/agent-integration.d.ts.map +1 -0
  120. package/dist/src/routes/agent-integration.js +169 -0
  121. package/dist/src/routes/agent-integration.js.map +1 -0
  122. package/dist/src/routes/agent-messages.d.ts +17 -0
  123. package/dist/src/routes/agent-messages.d.ts.map +1 -0
  124. package/dist/src/routes/agent-messages.js +168 -0
  125. package/dist/src/routes/agent-messages.js.map +1 -0
  126. package/dist/src/routes/agent-tasks.d.ts +25 -0
  127. package/dist/src/routes/agent-tasks.d.ts.map +1 -0
  128. package/dist/src/routes/agent-tasks.js +427 -0
  129. package/dist/src/routes/agent-tasks.js.map +1 -0
  130. package/dist/src/routes/capabilities.js +4 -4
  131. package/dist/src/routes/capabilities.js.map +1 -1
  132. package/dist/src/routes/cortex.d.ts.map +1 -1
  133. package/dist/src/routes/cortex.js +1 -2
  134. package/dist/src/routes/cortex.js.map +1 -1
  135. package/dist/src/routes/extensions.d.ts.map +1 -1
  136. package/dist/src/routes/extensions.js +1 -2
  137. package/dist/src/routes/extensions.js.map +1 -1
  138. package/dist/src/routes/federation-auth.d.ts.map +1 -1
  139. package/dist/src/routes/federation-auth.js +3 -1
  140. package/dist/src/routes/federation-auth.js.map +1 -1
  141. package/dist/src/routes/federation-peer.d.ts.map +1 -1
  142. package/dist/src/routes/federation-peer.js +11 -2
  143. package/dist/src/routes/federation-peer.js.map +1 -1
  144. package/dist/src/routes/federation-sync.d.ts +1 -0
  145. package/dist/src/routes/federation-sync.d.ts.map +1 -1
  146. package/dist/src/routes/federation-sync.js +29 -0
  147. package/dist/src/routes/federation-sync.js.map +1 -1
  148. package/dist/src/routes/generator.d.ts.map +1 -1
  149. package/dist/src/routes/generator.js +33 -5
  150. package/dist/src/routes/generator.js.map +1 -1
  151. package/dist/src/routes/knowledge.d.ts.map +1 -1
  152. package/dist/src/routes/knowledge.js +4 -3
  153. package/dist/src/routes/knowledge.js.map +1 -1
  154. package/dist/src/routes/memory.d.ts +9 -0
  155. package/dist/src/routes/memory.d.ts.map +1 -1
  156. package/dist/src/routes/memory.js +312 -13
  157. package/dist/src/routes/memory.js.map +1 -1
  158. package/dist/src/routes/permissions.js +1 -1
  159. package/dist/src/routes/permissions.js.map +1 -1
  160. package/dist/src/routes/prompts.d.ts +10 -0
  161. package/dist/src/routes/prompts.d.ts.map +1 -1
  162. package/dist/src/routes/prompts.js +97 -2
  163. package/dist/src/routes/prompts.js.map +1 -1
  164. package/dist/src/routes/sharing-groups.d.ts +20 -0
  165. package/dist/src/routes/sharing-groups.d.ts.map +1 -0
  166. package/dist/src/routes/sharing-groups.js +303 -0
  167. package/dist/src/routes/sharing-groups.js.map +1 -0
  168. package/dist/src/routes/stats.d.ts +1 -0
  169. package/dist/src/routes/stats.d.ts.map +1 -1
  170. package/dist/src/routes/stats.js +26 -1
  171. package/dist/src/routes/stats.js.map +1 -1
  172. package/dist/src/routes/storage-files.d.ts.map +1 -1
  173. package/dist/src/routes/storage-files.js +4 -1
  174. package/dist/src/routes/storage-files.js.map +1 -1
  175. package/dist/src/routes/wallet.d.ts.map +1 -1
  176. package/dist/src/routes/wallet.js +2 -0
  177. package/dist/src/routes/wallet.js.map +1 -1
  178. package/dist/src/routes/work.d.ts.map +1 -1
  179. package/dist/src/routes/work.js +3 -0
  180. package/dist/src/routes/work.js.map +1 -1
  181. package/dist/src/schemas/knowledge-package.js +1 -1
  182. package/dist/src/schemas/knowledge-package.js.map +1 -1
  183. package/dist/src/server-bootstrap/routes-loader.d.ts.map +1 -1
  184. package/dist/src/server-bootstrap/routes-loader.js +52 -1
  185. package/dist/src/server-bootstrap/routes-loader.js.map +1 -1
  186. package/dist/src/services/activity-recorder.d.ts +16 -0
  187. package/dist/src/services/activity-recorder.d.ts.map +1 -0
  188. package/dist/src/services/activity-recorder.js +59 -0
  189. package/dist/src/services/activity-recorder.js.map +1 -0
  190. package/dist/src/services/config-schema.d.ts.map +1 -1
  191. package/dist/src/services/config-schema.js +5 -0
  192. package/dist/src/services/config-schema.js.map +1 -1
  193. package/dist/src/services/consent.d.ts +1 -1
  194. package/dist/src/services/consent.d.ts.map +1 -1
  195. package/dist/src/services/consent.js +28 -1
  196. package/dist/src/services/consent.js.map +1 -1
  197. package/dist/src/services/core-jobs.d.ts.map +1 -1
  198. package/dist/src/services/core-jobs.js +5 -0
  199. package/dist/src/services/core-jobs.js.map +1 -1
  200. package/dist/src/services/federation-helpers.d.ts +1 -0
  201. package/dist/src/services/federation-helpers.d.ts.map +1 -1
  202. package/dist/src/services/federation-helpers.js +1 -1
  203. package/dist/src/services/federation-helpers.js.map +1 -1
  204. package/dist/src/services/generator-autopilot.d.ts.map +1 -1
  205. package/dist/src/services/generator-autopilot.js +125 -26
  206. package/dist/src/services/generator-autopilot.js.map +1 -1
  207. package/dist/src/services/generator-prompts/index.d.ts +1 -1
  208. package/dist/src/services/generator-prompts/index.d.ts.map +1 -1
  209. package/dist/src/services/generator-prompts/index.js +1 -1
  210. package/dist/src/services/generator-prompts/index.js.map +1 -1
  211. package/dist/src/services/generator-prompts/spec-validate.d.ts +1 -0
  212. package/dist/src/services/generator-prompts/spec-validate.d.ts.map +1 -1
  213. package/dist/src/services/generator-prompts/spec-validate.js +20 -0
  214. package/dist/src/services/generator-prompts/spec-validate.js.map +1 -1
  215. package/dist/src/services/generator-prompts/validate.d.ts +7 -1
  216. package/dist/src/services/generator-prompts/validate.d.ts.map +1 -1
  217. package/dist/src/services/generator-prompts/validate.js +70 -0
  218. package/dist/src/services/generator-prompts/validate.js.map +1 -1
  219. package/dist/src/services/job-seeding.d.ts.map +1 -1
  220. package/dist/src/services/job-seeding.js +2 -0
  221. package/dist/src/services/job-seeding.js.map +1 -1
  222. package/dist/src/services/prompt-defaults.d.ts +1 -0
  223. package/dist/src/services/prompt-defaults.d.ts.map +1 -1
  224. package/dist/src/services/prompt-defaults.js +830 -8
  225. package/dist/src/services/prompt-defaults.js.map +1 -1
  226. package/dist/src/services/prompt-seeder.js +1 -1
  227. package/dist/src/services/prompt-seeder.js.map +1 -1
  228. package/dist/src/services/stats.d.ts +1 -0
  229. package/dist/src/services/stats.d.ts.map +1 -1
  230. package/dist/src/services/stats.js +2 -1
  231. package/dist/src/services/stats.js.map +1 -1
  232. package/dist/src/services/task-stall-detector.d.ts +10 -0
  233. package/dist/src/services/task-stall-detector.d.ts.map +1 -0
  234. package/dist/src/services/task-stall-detector.js +38 -0
  235. package/dist/src/services/task-stall-detector.js.map +1 -0
  236. package/dist/src/services/work-task-bridge.d.ts +10 -0
  237. package/dist/src/services/work-task-bridge.d.ts.map +1 -0
  238. package/dist/src/services/work-task-bridge.js +53 -0
  239. package/dist/src/services/work-task-bridge.js.map +1 -0
  240. package/dist/src/storage/interface.d.ts +172 -5
  241. package/dist/src/storage/interface.d.ts.map +1 -1
  242. package/dist/src/storage/providers/mongodb/index.d.ts +95 -2
  243. package/dist/src/storage/providers/mongodb/index.d.ts.map +1 -1
  244. package/dist/src/storage/providers/mongodb/index.js +661 -7
  245. package/dist/src/storage/providers/mongodb/index.js.map +1 -1
  246. package/dist/src/storage/providers/sqlite/index.d.ts +73 -1
  247. package/dist/src/storage/providers/sqlite/index.d.ts.map +1 -1
  248. package/dist/src/storage/providers/sqlite/index.js +136 -3
  249. package/dist/src/storage/providers/sqlite/index.js.map +1 -1
  250. package/dist/src/storage/providers/sqlite/repos/agent-activity.d.ts +14 -0
  251. package/dist/src/storage/providers/sqlite/repos/agent-activity.d.ts.map +1 -0
  252. package/dist/src/storage/providers/sqlite/repos/agent-activity.js +44 -0
  253. package/dist/src/storage/providers/sqlite/repos/agent-activity.js.map +1 -0
  254. package/dist/src/storage/providers/sqlite/repos/agent-directives.d.ts +14 -0
  255. package/dist/src/storage/providers/sqlite/repos/agent-directives.d.ts.map +1 -0
  256. package/dist/src/storage/providers/sqlite/repos/agent-directives.js +65 -0
  257. package/dist/src/storage/providers/sqlite/repos/agent-directives.js.map +1 -0
  258. package/dist/src/storage/providers/sqlite/repos/agent-message.d.ts +28 -0
  259. package/dist/src/storage/providers/sqlite/repos/agent-message.d.ts.map +1 -0
  260. package/dist/src/storage/providers/sqlite/repos/agent-message.js +93 -0
  261. package/dist/src/storage/providers/sqlite/repos/agent-message.js.map +1 -0
  262. package/dist/src/storage/providers/sqlite/repos/agent-task.d.ts +45 -0
  263. package/dist/src/storage/providers/sqlite/repos/agent-task.d.ts.map +1 -0
  264. package/dist/src/storage/providers/sqlite/repos/agent-task.js +155 -0
  265. package/dist/src/storage/providers/sqlite/repos/agent-task.js.map +1 -0
  266. package/dist/src/storage/providers/sqlite/repos/sharing-group.d.ts +16 -0
  267. package/dist/src/storage/providers/sqlite/repos/sharing-group.d.ts.map +1 -0
  268. package/dist/src/storage/providers/sqlite/repos/sharing-group.js +68 -0
  269. package/dist/src/storage/providers/sqlite/repos/sharing-group.js.map +1 -0
  270. package/dist/src/storage/providers/sqlite/schema.d.ts.map +1 -1
  271. package/dist/src/storage/providers/sqlite/schema.js +104 -0
  272. package/dist/src/storage/providers/sqlite/schema.js.map +1 -1
  273. package/dist/src/storage/repositories/agent-activity.repository.d.ts +15 -0
  274. package/dist/src/storage/repositories/agent-activity.repository.d.ts.map +1 -0
  275. package/dist/src/storage/repositories/agent-activity.repository.js +8 -0
  276. package/dist/src/storage/repositories/agent-activity.repository.js.map +1 -0
  277. package/dist/src/storage/repositories/agent-directives.repository.d.ts +15 -0
  278. package/dist/src/storage/repositories/agent-directives.repository.d.ts.map +1 -0
  279. package/dist/src/storage/repositories/agent-directives.repository.js +8 -0
  280. package/dist/src/storage/repositories/agent-directives.repository.js.map +1 -0
  281. package/dist/src/storage/repositories/agent-message.repository.d.ts +29 -0
  282. package/dist/src/storage/repositories/agent-message.repository.d.ts.map +1 -0
  283. package/dist/src/storage/repositories/agent-message.repository.js +8 -0
  284. package/dist/src/storage/repositories/agent-message.repository.js.map +1 -0
  285. package/dist/src/storage/repositories/agent-task.repository.d.ts +46 -0
  286. package/dist/src/storage/repositories/agent-task.repository.d.ts.map +1 -0
  287. package/dist/src/storage/repositories/agent-task.repository.js +8 -0
  288. package/dist/src/storage/repositories/agent-task.repository.js.map +1 -0
  289. package/dist/src/storage/repositories/index.d.ts +5 -0
  290. package/dist/src/storage/repositories/index.d.ts.map +1 -1
  291. package/dist/src/storage/repositories/sharing-group.repository.d.ts +17 -0
  292. package/dist/src/storage/repositories/sharing-group.repository.d.ts.map +1 -0
  293. package/dist/src/storage/repositories/sharing-group.repository.js +8 -0
  294. package/dist/src/storage/repositories/sharing-group.repository.js.map +1 -0
  295. package/package.json +77 -97
  296. package/prisma/schema.prisma +104 -0
@@ -0,0 +1,713 @@
1
+ /**
2
+ * @file agents-detail.css
3
+ * @description Styles for agent detail view sub-tabs (tasks, directives).
4
+ * Uses agd- prefix to avoid collisions with other profile styles.
5
+ * All colors use CSS variables from theme.css.
6
+ * @version-history
7
+ * v1.0.0 -- 2026-05-21 -- Initial creation for Agent Dashboard Phase 1
8
+ * v1.1.0 -- 2026-05-22 -- Add capability badge styles for Capabilities sub-tab
9
+ * v1.2.0 -- 2026-05-22 -- Add Activity sub-tab styles (stats cards, chart, jobs, event log)
10
+ * v1.3.0 -- 2026-05-22 -- Add Services and Messages sub-tab styles
11
+ * v1.4.0 -- 2026-05-22 -- Add Task TODO list, progress, environment badges, Start button styles
12
+ */
13
+
14
+ /* Sub-tab bar */
15
+ .pf .agd-subtab-bar {
16
+ display: flex;
17
+ gap: 0.25rem;
18
+ border-bottom: 1px solid var(--border, #E5E7EB);
19
+ margin-top: 1rem;
20
+ padding-bottom: 0;
21
+ }
22
+ .pf .agd-subtab {
23
+ padding: 0.35rem 1rem;
24
+ background: none;
25
+ border: none;
26
+ border-bottom: 2px solid transparent;
27
+ color: var(--text-dim, #6B7280);
28
+ cursor: pointer;
29
+ font-size: 0.875rem;
30
+ transition: color 0.15s, border-color 0.15s;
31
+ }
32
+ .pf .agd-subtab:hover { color: var(--text, #1A1A2E); }
33
+ .pf .agd-subtab-active {
34
+ color: var(--accent, #E8564A);
35
+ border-bottom-color: var(--accent, #E8564A);
36
+ font-weight: 600;
37
+ }
38
+
39
+ /* Sub-tab content area */
40
+ .pf .agd-subtab-content {
41
+ padding: 1rem 0 0.5rem;
42
+ min-height: 120px;
43
+ }
44
+
45
+ /* Section headers inside sub-tabs */
46
+ .pf .agd-section-header {
47
+ display: flex;
48
+ align-items: center;
49
+ justify-content: space-between;
50
+ margin-bottom: 0.5rem;
51
+ }
52
+ .pf .agd-section-title {
53
+ font-size: 0.8rem;
54
+ font-weight: 600;
55
+ color: var(--text-dim, #6B7280);
56
+ text-transform: uppercase;
57
+ letter-spacing: 0.5px;
58
+ }
59
+
60
+ /* Task list items */
61
+ .pf .agd-task-item {
62
+ display: flex;
63
+ align-items: center;
64
+ justify-content: space-between;
65
+ padding: 0.5rem 0.75rem;
66
+ border: 1px solid var(--border, #E5E7EB);
67
+ border-radius: var(--radius-xs, 6px);
68
+ margin-bottom: 0.35rem;
69
+ background: var(--card-bg, #FFFFFF);
70
+ cursor: pointer;
71
+ transition: background 0.15s;
72
+ }
73
+ .pf .agd-task-item:hover { background: var(--card-bg-alt, #F3F4F6); }
74
+ .pf .agd-task-title { font-weight: 500; flex: 1; font-size: 0.85rem; }
75
+ .pf .agd-task-meta { display: flex; gap: 0.5rem; align-items: center; flex-shrink: 0; }
76
+ .pf .agd-task-time { font-size: 0.75rem; color: var(--text-dim, #6B7280); }
77
+
78
+ /* Status badges */
79
+ .pf .agd-status {
80
+ font-size: 0.7rem;
81
+ padding: 2px 8px;
82
+ border-radius: 12px;
83
+ font-weight: 500;
84
+ white-space: nowrap;
85
+ }
86
+ .pf .agd-status-draft { background: var(--card-bg-alt, #F3F4F6); color: var(--text-dim, #6B7280); }
87
+ .pf .agd-status-queued { background: rgba(217, 119, 6, 0.1); color: #d97706; }
88
+ .pf .agd-status-active { background: rgba(37, 99, 235, 0.1); color: #2563eb; }
89
+ .pf .agd-status-done { background: rgba(16, 185, 129, 0.1); color: var(--success, #10b981); }
90
+ .pf .agd-status-failed { background: rgba(239, 68, 68, 0.1); color: var(--danger, #ef4444); }
91
+ .pf .agd-status-stalled { background: rgba(239, 68, 68, 0.1); color: #d97706; }
92
+
93
+ /* Task creation form */
94
+ .pf .agd-create-form {
95
+ padding: 0.75rem;
96
+ border: 1px solid var(--border, #E5E7EB);
97
+ border-radius: var(--radius-xs, 6px);
98
+ margin-top: 0.5rem;
99
+ background: var(--card-bg, #FFFFFF);
100
+ }
101
+ .pf .agd-form-field { margin-bottom: 0.65rem; }
102
+ .pf .agd-form-field label {
103
+ display: block;
104
+ font-size: 0.8rem;
105
+ font-weight: 600;
106
+ margin-bottom: 0.25rem;
107
+ color: var(--text-dim, #6B7280);
108
+ }
109
+ .pf .agd-form-field input,
110
+ .pf .agd-form-field textarea,
111
+ .pf .agd-form-field select {
112
+ width: 100%;
113
+ padding: 0.35rem 0.5rem;
114
+ border: 1px solid var(--border, #E5E7EB);
115
+ border-radius: var(--radius-xs, 6px);
116
+ background: var(--card-bg, #FFFFFF);
117
+ color: var(--text, #1A1A2E);
118
+ font-size: 0.85rem;
119
+ font-family: inherit;
120
+ box-sizing: border-box;
121
+ }
122
+ .pf .agd-form-field input:focus,
123
+ .pf .agd-form-field textarea:focus,
124
+ .pf .agd-form-field select:focus {
125
+ outline: none;
126
+ border-color: var(--accent, #E8564A);
127
+ }
128
+ .pf .agd-form-field textarea { min-height: 70px; resize: vertical; }
129
+ .pf .agd-form-actions { display: flex; gap: 0.5rem; margin-top: 0.75rem; }
130
+
131
+ /* Task expanded detail / event log */
132
+ .pf .agd-task-expanded {
133
+ padding: 0.5rem 0.75rem;
134
+ border: 1px solid var(--border, #E5E7EB);
135
+ border-top: none;
136
+ border-radius: 0 0 var(--radius-xs, 6px) var(--radius-xs, 6px);
137
+ margin-top: -0.35rem;
138
+ margin-bottom: 0.35rem;
139
+ background: var(--card-bg-alt, #F3F4F6);
140
+ font-size: 0.85rem;
141
+ }
142
+ .pf .agd-task-desc { color: var(--text-dim, #6B7280); margin-bottom: 0.5rem; line-height: 1.4; }
143
+ .pf .agd-task-actions { display: flex; gap: 0.5rem; margin-top: 0.5rem; }
144
+
145
+ .pf .agd-event-log { max-height: 200px; overflow-y: auto; margin-top: 0.5rem; }
146
+ .pf .agd-event-item {
147
+ padding: 0.25rem 0;
148
+ border-bottom: 1px solid var(--border, #E5E7EB);
149
+ font-size: 0.8rem;
150
+ display: flex;
151
+ gap: 0.5rem;
152
+ align-items: baseline;
153
+ }
154
+ .pf .agd-event-item:last-child { border-bottom: none; }
155
+ .pf .agd-event-time { color: var(--text-dim, #6B7280); font-size: 0.7rem; flex-shrink: 0; }
156
+ .pf .agd-event-type { font-weight: 500; flex-shrink: 0; }
157
+
158
+ /* Empty state */
159
+ .pf .agd-empty {
160
+ text-align: center;
161
+ padding: 1.5rem;
162
+ color: var(--text-dim, #6B7280);
163
+ font-size: 0.85rem;
164
+ }
165
+
166
+ /* Directives display */
167
+ .pf .agd-directive-section { margin-bottom: 1rem; }
168
+ .pf .agd-directive-section h4 {
169
+ font-size: 0.8rem;
170
+ font-weight: 600;
171
+ margin-bottom: 0.35rem;
172
+ color: var(--text-dim, #6B7280);
173
+ text-transform: uppercase;
174
+ letter-spacing: 0.5px;
175
+ }
176
+ .pf .agd-purpose-text {
177
+ font-size: 0.85rem;
178
+ color: var(--text, #1A1A2E);
179
+ line-height: 1.5;
180
+ padding: 0.35rem 0;
181
+ }
182
+ .pf .agd-rule-item {
183
+ display: flex;
184
+ align-items: flex-start;
185
+ gap: 0.5rem;
186
+ padding: 0.3rem 0;
187
+ font-size: 0.85rem;
188
+ line-height: 1.4;
189
+ }
190
+ .pf .agd-rule-text { flex: 1; }
191
+ .pf .agd-rule-source {
192
+ font-size: 0.65rem;
193
+ padding: 1px 6px;
194
+ border-radius: 8px;
195
+ white-space: nowrap;
196
+ flex-shrink: 0;
197
+ font-weight: 500;
198
+ margin-top: 2px;
199
+ }
200
+ .pf .agd-source-system { background: var(--card-bg-alt, #F3F4F6); color: var(--text-dim, #6B7280); }
201
+ .pf .agd-source-owner { background: rgba(37, 99, 235, 0.1); color: #2563eb; }
202
+ .pf .agd-source-agent { background: rgba(16, 185, 129, 0.1); color: var(--success, #10b981); }
203
+
204
+ /* Resource / memory area lists */
205
+ .pf .agd-list-item {
206
+ padding: 0.25rem 0;
207
+ font-size: 0.85rem;
208
+ color: var(--text, #1A1A2E);
209
+ border-bottom: 1px solid rgba(0, 0, 0, 0.04);
210
+ }
211
+ .pf .agd-list-item:last-child { border-bottom: none; }
212
+ .pf .agd-list-item code {
213
+ font-family: 'JetBrains Mono', monospace;
214
+ font-size: 0.78rem;
215
+ background: rgba(0, 0, 0, 0.04);
216
+ padding: 1px 5px;
217
+ border-radius: 3px;
218
+ }
219
+
220
+ /* Editable rule input row */
221
+ .pf .agd-rule-edit-row {
222
+ display: flex;
223
+ gap: 0.5rem;
224
+ align-items: center;
225
+ margin-bottom: 0.35rem;
226
+ }
227
+ .pf .agd-rule-edit-row input {
228
+ flex: 1;
229
+ padding: 0.3rem 0.5rem;
230
+ border: 1px solid var(--border, #E5E7EB);
231
+ border-radius: var(--radius-xs, 6px);
232
+ font-size: 0.85rem;
233
+ background: var(--card-bg, #FFFFFF);
234
+ color: var(--text, #1A1A2E);
235
+ font-family: inherit;
236
+ }
237
+ .pf .agd-rule-edit-row input:focus {
238
+ outline: none;
239
+ border-color: var(--accent, #E8564A);
240
+ }
241
+ .pf .agd-remove-btn {
242
+ background: none;
243
+ border: none;
244
+ color: var(--danger, #ef4444);
245
+ cursor: pointer;
246
+ font-size: 1rem;
247
+ padding: 0 0.25rem;
248
+ opacity: 0.6;
249
+ transition: opacity 0.15s;
250
+ }
251
+ .pf .agd-remove-btn:hover { opacity: 1; }
252
+ .pf .agd-add-btn {
253
+ background: none;
254
+ border: 1px dashed var(--border, #E5E7EB);
255
+ color: var(--text-dim, #6B7280);
256
+ cursor: pointer;
257
+ font-size: 0.8rem;
258
+ padding: 0.3rem 0.75rem;
259
+ border-radius: var(--radius-xs, 6px);
260
+ transition: border-color 0.15s, color 0.15s;
261
+ margin-top: 0.25rem;
262
+ }
263
+ .pf .agd-add-btn:hover {
264
+ border-color: var(--accent, #E8564A);
265
+ color: var(--accent, #E8564A);
266
+ }
267
+
268
+ /* Group picker popup (memory tab visibility cycling) */
269
+ .agd-group-picker {
270
+ position: absolute;
271
+ z-index: 10;
272
+ background: var(--card, #FFFFFF);
273
+ border: 1px solid var(--border, #E5E7EB);
274
+ border-radius: var(--radius, 6px);
275
+ padding: var(--space-sm, 0.5rem);
276
+ box-shadow: 0 4px 12px rgba(0,0,0,0.15);
277
+ min-width: 200px;
278
+ }
279
+ .agd-group-option {
280
+ display: block;
281
+ width: 100%;
282
+ text-align: left;
283
+ padding: var(--space-xs, 0.25rem) var(--space-sm, 0.5rem);
284
+ }
285
+
286
+ /* ── Capabilities sub-tab ── */
287
+
288
+ /* Badge list container */
289
+ .pf .agd-cap-list {
290
+ display: flex;
291
+ flex-wrap: wrap;
292
+ gap: 0.35rem;
293
+ margin-bottom: 0.5rem;
294
+ }
295
+
296
+ /* Individual capability badge */
297
+ .pf .agd-cap-badge {
298
+ display: inline-flex;
299
+ align-items: center;
300
+ gap: 0.35rem;
301
+ padding: 0.25rem 0.6rem;
302
+ border: 1px solid var(--border, #E5E7EB);
303
+ border-radius: 12px;
304
+ font-size: 0.8rem;
305
+ background: var(--card-bg, #FFFFFF);
306
+ color: var(--text, #1A1A2E);
307
+ }
308
+ .pf .agd-cap-name {
309
+ font-weight: 500;
310
+ }
311
+
312
+ /* Type badges (MCP / skill / tool) */
313
+ .pf .agd-cap-type {
314
+ font-size: 0.65rem;
315
+ padding: 1px 6px;
316
+ border-radius: 8px;
317
+ font-weight: 600;
318
+ text-transform: uppercase;
319
+ letter-spacing: 0.3px;
320
+ background: var(--card-bg-alt, #F3F4F6);
321
+ color: var(--text-dim, #6B7280);
322
+ }
323
+ .pf .agd-cap-type-mcp {
324
+ background: rgba(37, 99, 235, 0.1);
325
+ color: #2563eb;
326
+ }
327
+ .pf .agd-cap-type-skill {
328
+ background: rgba(16, 185, 129, 0.1);
329
+ color: var(--success, #10b981);
330
+ }
331
+ .pf .agd-cap-type-tool {
332
+ background: rgba(217, 119, 6, 0.1);
333
+ color: #d97706;
334
+ }
335
+
336
+ /* Verified / self-reported badges */
337
+ .pf .agd-cap-verified {
338
+ font-size: 0.65rem;
339
+ padding: 1px 6px;
340
+ border-radius: 8px;
341
+ font-weight: 500;
342
+ background: rgba(16, 185, 129, 0.1);
343
+ color: var(--success, #10b981);
344
+ }
345
+ .pf .agd-cap-unverified {
346
+ font-size: 0.65rem;
347
+ padding: 1px 6px;
348
+ border-radius: 8px;
349
+ font-weight: 500;
350
+ background: var(--card-bg-alt, #F3F4F6);
351
+ color: var(--text-dim, #6B7280);
352
+ }
353
+
354
+ /* Domain badge variant */
355
+ .pf .agd-cap-domain {
356
+ background: var(--card-bg-alt, #F3F4F6);
357
+ }
358
+
359
+ /* Language tags row */
360
+ .pf .agd-cap-langs {
361
+ display: flex;
362
+ flex-wrap: wrap;
363
+ align-items: center;
364
+ gap: 0.35rem;
365
+ margin-top: 0.5rem;
366
+ }
367
+ .pf .agd-cap-lang-label {
368
+ font-size: 0.8rem;
369
+ color: var(--text-dim, #6B7280);
370
+ font-weight: 500;
371
+ }
372
+ .pf .agd-cap-lang {
373
+ background: rgba(37, 99, 235, 0.08);
374
+ color: #2563eb;
375
+ font-weight: 500;
376
+ }
377
+
378
+ /* Action queue support list */
379
+ .pf .agd-cap-queue-list {
380
+ display: flex;
381
+ flex-direction: column;
382
+ gap: 0.25rem;
383
+ }
384
+ .pf .agd-cap-queue-item {
385
+ display: flex;
386
+ align-items: center;
387
+ gap: 0.5rem;
388
+ font-size: 0.85rem;
389
+ color: var(--text, #1A1A2E);
390
+ }
391
+ .pf .agd-cap-check {
392
+ color: var(--success, #10b981);
393
+ font-weight: 700;
394
+ }
395
+
396
+ /* ── Activity sub-tab ── */
397
+
398
+ /* Activity stats cards */
399
+ .pf .agd-stats-grid { display: flex; gap: 8px; margin-bottom: 16px; }
400
+ .pf .agd-stat-card { flex: 1; background: var(--card-bg, #FFFFFF); border: 1px solid var(--border, #E5E7EB); border-radius: 8px; padding: 12px; text-align: center; }
401
+ .pf .agd-stat-value { font-size: 1.5rem; font-weight: 600; color: var(--text, #1A1A2E); }
402
+ .pf .agd-stat-label { font-size: 0.75rem; color: var(--text-muted, #9CA3AF); }
403
+
404
+ /* Activity chart area */
405
+ .pf .agd-chart-container { background: var(--card-bg, #FFFFFF); border: 1px solid var(--border, #E5E7EB); border-radius: 8px; padding: 12px; margin-bottom: 16px; }
406
+ .pf .agd-chart-rows { display: flex; flex-direction: column; gap: 4px; }
407
+ .pf .agd-chart-row { display: flex; align-items: center; gap: 8px; font-size: 0.75rem; }
408
+ .pf .agd-chart-date { min-width: 52px; color: var(--text-muted, #9CA3AF); text-align: right; }
409
+ .pf .agd-chart-bar-track { flex: 1; height: 14px; background: var(--card-bg-alt, #F3F4F6); border-radius: 3px; overflow: hidden; }
410
+ .pf .agd-chart-bar-fill { height: 100%; background: var(--accent, #E8564A); border-radius: 3px; transition: width 0.2s; }
411
+ .pf .agd-chart-count { min-width: 24px; text-align: right; font-weight: 600; color: var(--text-dim, #6B7280); }
412
+
413
+ /* Event log entries */
414
+ .pf .agd-log-entry { display: flex; gap: 8px; padding: 6px 10px; background: var(--card-bg, #FFFFFF); border: 1px solid var(--border, #E5E7EB); border-radius: 6px; margin-bottom: 3px; font-size: 0.8rem; align-items: center; }
415
+ .pf .agd-log-time { color: var(--text-muted, #9CA3AF); white-space: nowrap; min-width: 80px; }
416
+ .pf .agd-log-type { font-weight: 600; min-width: 80px; color: var(--text, #1A1A2E); }
417
+ .pf .agd-log-msg { flex: 1; color: var(--text-dim, #6B7280); }
418
+ .pf .agd-event-log-scroll { max-height: 300px; overflow-y: auto; margin-bottom: 4px; }
419
+
420
+ /* Scheduled jobs badges */
421
+ .pf .agd-job-badge-aimeat { background: var(--card-bg-alt, #F3F4F6); color: var(--success, #10B981); padding: 2px 6px; border-radius: 3px; font-size: 0.7rem; white-space: nowrap; flex-shrink: 0; }
422
+ .pf .agd-job-badge-agent { background: var(--card-bg-alt, #F3F4F6); color: var(--warn, #F59E0B); padding: 2px 6px; border-radius: 3px; font-size: 0.7rem; white-space: nowrap; flex-shrink: 0; }
423
+
424
+ /* Time range selector */
425
+ .pf .agd-range-bar { display: flex; gap: 4px; margin-bottom: 8px; }
426
+ .pf .agd-range-btn { padding: 2px 8px; border: 1px solid var(--border, #E5E7EB); border-radius: 4px; background: none; cursor: pointer; font-size: 0.75rem; color: var(--text-dim, #6B7280); }
427
+ .pf .agd-range-btn.active { background: var(--accent, #E8564A); color: #FFFFFF; border-color: var(--accent, #E8564A); }
428
+
429
+ /* ── Services sub-tab ── */
430
+
431
+ .pf .agd-services-info {
432
+ background: var(--bg-dim, #F9FAFB);
433
+ border: 1px solid var(--border, #E5E7EB);
434
+ border-radius: 8px;
435
+ padding: 0.75rem 1rem;
436
+ font-size: 0.8rem;
437
+ color: var(--text-dim, #6B7280);
438
+ margin-bottom: 1rem;
439
+ }
440
+ .pf .agd-services-list {
441
+ display: flex;
442
+ flex-direction: column;
443
+ gap: 0.5rem;
444
+ }
445
+ .pf .agd-service-card {
446
+ background: var(--card, #FFFFFF);
447
+ border: 1px solid var(--border, #E5E7EB);
448
+ border-radius: 8px;
449
+ padding: 0.75rem 1rem;
450
+ }
451
+ .pf .agd-service-name {
452
+ font-weight: 600;
453
+ font-size: 0.9rem;
454
+ }
455
+ .pf .agd-service-desc {
456
+ font-size: 0.8rem;
457
+ color: var(--text-dim, #6B7280);
458
+ margin-top: 0.25rem;
459
+ }
460
+ .pf .agd-service-meta {
461
+ display: flex;
462
+ gap: 0.75rem;
463
+ font-size: 0.75rem;
464
+ color: var(--text-muted, #9CA3AF);
465
+ margin-top: 0.5rem;
466
+ }
467
+
468
+ /* ── Messages sub-tab ── */
469
+
470
+ .pf .agd-msg-status-bar {
471
+ display: flex;
472
+ justify-content: space-between;
473
+ align-items: center;
474
+ padding: 0.5rem 0;
475
+ border-bottom: 1px solid var(--border, #E5E7EB);
476
+ font-size: 0.75rem;
477
+ color: var(--text-dim, #6B7280);
478
+ margin-bottom: 0.75rem;
479
+ }
480
+ .pf .agd-msg-history {
481
+ max-height: 400px;
482
+ overflow-y: auto;
483
+ padding: 0.5rem 0;
484
+ display: flex;
485
+ flex-direction: column;
486
+ gap: 0.5rem;
487
+ }
488
+ .pf .agd-msg-bubble {
489
+ max-width: 80%;
490
+ padding: 0.625rem 0.875rem;
491
+ border-radius: 12px;
492
+ font-size: 0.85rem;
493
+ line-height: 1.5;
494
+ }
495
+ .pf .agd-msg-inbound {
496
+ align-self: flex-end;
497
+ background: var(--accent-dim, #FEF2F1);
498
+ border-bottom-right-radius: 4px;
499
+ }
500
+ .pf .agd-msg-outbound {
501
+ align-self: flex-start;
502
+ background: var(--surface, #F3F4F6);
503
+ border: 1px solid var(--border, #E5E7EB);
504
+ border-bottom-left-radius: 4px;
505
+ }
506
+ .pf .agd-msg-meta {
507
+ font-size: 0.7rem;
508
+ color: var(--text-muted, #9CA3AF);
509
+ margin-top: 0.25rem;
510
+ }
511
+ .pf .agd-msg-meta-right {
512
+ text-align: right;
513
+ }
514
+ .pf .agd-msg-time {
515
+ font-weight: 500;
516
+ color: var(--text-secondary, #6B7280);
517
+ }
518
+ .pf .agd-msg-input {
519
+ display: flex;
520
+ gap: 0.5rem;
521
+ padding: 0.75rem 0;
522
+ border-top: 1px solid var(--border, #E5E7EB);
523
+ margin-top: 0.75rem;
524
+ }
525
+ .pf .agd-msg-input textarea {
526
+ flex: 1;
527
+ resize: none;
528
+ border: 1px solid var(--border, #E5E7EB);
529
+ border-radius: 8px;
530
+ padding: 0.5rem 0.75rem;
531
+ font-size: 0.85rem;
532
+ min-height: 2.5rem;
533
+ max-height: 6rem;
534
+ font-family: inherit;
535
+ }
536
+ .pf .agd-msg-proposed-task {
537
+ background: var(--card, #FFFFFF);
538
+ border: 1px solid var(--accent, #E8564A);
539
+ border-radius: 8px;
540
+ padding: 0.625rem;
541
+ margin-top: 0.5rem;
542
+ font-size: 0.8rem;
543
+ }
544
+ .pf .agd-msg-proposed-task h5 {
545
+ margin: 0 0 0.25rem;
546
+ font-size: 0.8rem;
547
+ color: var(--accent, #E8564A);
548
+ }
549
+ .pf .agd-msg-threads {
550
+ display: flex;
551
+ gap: 0.5rem;
552
+ flex-wrap: wrap;
553
+ margin-bottom: 0.75rem;
554
+ }
555
+ .pf .agd-msg-thread-btn {
556
+ background: var(--surface, #F3F4F6);
557
+ border: 1px solid var(--border, #E5E7EB);
558
+ border-radius: 6px;
559
+ padding: 0.375rem 0.75rem;
560
+ font-size: 0.75rem;
561
+ cursor: pointer;
562
+ transition: border-color 0.15s;
563
+ }
564
+ .pf .agd-msg-thread-btn:hover,
565
+ .pf .agd-msg-thread-btn-active {
566
+ border-color: var(--accent, #E8564A);
567
+ color: var(--accent, #E8564A);
568
+ }
569
+
570
+ /* ── Task TODO list ── */
571
+
572
+ /* Progress badge shown next to task title */
573
+ .pf .agd-todo-progress {
574
+ font-size: 0.7rem;
575
+ font-weight: 600;
576
+ padding: 1px 7px;
577
+ border-radius: 10px;
578
+ background: rgba(37, 99, 235, 0.1);
579
+ color: #2563eb;
580
+ white-space: nowrap;
581
+ }
582
+
583
+ /* TODO section wrapper inside expanded task */
584
+ .pf .agd-todo-section {
585
+ margin: 0.5rem 0;
586
+ }
587
+ .pf .agd-todo-header {
588
+ display: flex;
589
+ align-items: center;
590
+ justify-content: space-between;
591
+ margin-bottom: 0.35rem;
592
+ font-size: 0.8rem;
593
+ }
594
+ .pf .agd-todo-summary {
595
+ display: flex;
596
+ align-items: center;
597
+ gap: 0.5rem;
598
+ }
599
+ .pf .agd-todo-time {
600
+ font-size: 0.7rem;
601
+ color: var(--text-muted, #9CA3AF);
602
+ }
603
+
604
+ /* Environment badges (AIMEAT / Agent) */
605
+ .pf .agd-env-badge {
606
+ font-size: 0.6rem;
607
+ font-weight: 600;
608
+ padding: 1px 6px;
609
+ border-radius: 6px;
610
+ text-transform: uppercase;
611
+ letter-spacing: 0.3px;
612
+ white-space: nowrap;
613
+ }
614
+ .pf .agd-env-aimeat {
615
+ background: rgba(16, 185, 129, 0.12);
616
+ color: var(--success, #10b981);
617
+ }
618
+ .pf .agd-env-agent {
619
+ background: rgba(217, 119, 6, 0.12);
620
+ color: #d97706;
621
+ }
622
+
623
+ /* TODO item list */
624
+ .pf .agd-todo-list {
625
+ display: flex;
626
+ flex-direction: column;
627
+ gap: 0.25rem;
628
+ }
629
+ .pf .agd-todo-item {
630
+ display: flex;
631
+ align-items: flex-start;
632
+ gap: 0.5rem;
633
+ padding: 0.4rem 0.5rem;
634
+ border-radius: var(--radius-xs, 6px);
635
+ background: var(--card-bg, #FFFFFF);
636
+ border: 1px solid var(--border, #E5E7EB);
637
+ font-size: 0.8rem;
638
+ transition: border-color 0.15s;
639
+ }
640
+ .pf .agd-todo-active {
641
+ border-color: #2563eb;
642
+ background: rgba(37, 99, 235, 0.04);
643
+ }
644
+ .pf .agd-todo-done {
645
+ opacity: 0.7;
646
+ }
647
+ .pf .agd-todo-failed {
648
+ border-color: var(--danger, #ef4444);
649
+ background: rgba(239, 68, 68, 0.04);
650
+ }
651
+ .pf .agd-todo-skipped {
652
+ opacity: 0.5;
653
+ }
654
+
655
+ /* Status icon column */
656
+ .pf .agd-todo-icon {
657
+ flex-shrink: 0;
658
+ font-size: 0.85rem;
659
+ line-height: 1.4;
660
+ width: 1.2rem;
661
+ text-align: center;
662
+ }
663
+
664
+ /* Content column */
665
+ .pf .agd-todo-content {
666
+ flex: 1;
667
+ min-width: 0;
668
+ }
669
+ .pf .agd-todo-title {
670
+ display: flex;
671
+ align-items: center;
672
+ gap: 0.4rem;
673
+ flex-wrap: wrap;
674
+ font-weight: 500;
675
+ line-height: 1.4;
676
+ }
677
+ .pf .agd-todo-est {
678
+ font-size: 0.65rem;
679
+ color: var(--text-muted, #9CA3AF);
680
+ white-space: nowrap;
681
+ }
682
+ .pf .agd-todo-desc {
683
+ font-size: 0.75rem;
684
+ color: var(--text-dim, #6B7280);
685
+ line-height: 1.4;
686
+ margin-top: 0.15rem;
687
+ }
688
+ .pf .agd-todo-reason {
689
+ font-size: 0.7rem;
690
+ color: var(--text-muted, #9CA3AF);
691
+ font-style: italic;
692
+ margin-top: 0.1rem;
693
+ }
694
+ .pf .agd-todo-verify {
695
+ font-size: 0.7rem;
696
+ color: var(--text-muted, #9CA3AF);
697
+ margin-top: 0.1rem;
698
+ padding-left: 0.5rem;
699
+ border-left: 2px solid var(--border, #E5E7EB);
700
+ }
701
+
702
+ /* Waiting state (no todos yet) */
703
+ .pf .agd-todo-waiting {
704
+ text-align: center;
705
+ padding: 1rem;
706
+ color: var(--text-muted, #9CA3AF);
707
+ font-size: 0.8rem;
708
+ font-style: italic;
709
+ background: var(--card-bg, #FFFFFF);
710
+ border: 1px dashed var(--border, #E5E7EB);
711
+ border-radius: var(--radius-xs, 6px);
712
+ margin: 0.5rem 0;
713
+ }
@@ -347,6 +347,7 @@
347
347
  .pf .vis-pill:hover { opacity: 0.8; }
348
348
  .pf .vis-public { background: rgba(74, 222, 128, .15); color: #4ade80; }
349
349
  .pf .vis-owner { background: rgba(96, 165, 250, .15); color: #60a5fa; }
350
+ .pf .vis-group { background: rgba(16, 185, 129, .15); color: var(--success, #10b981); }
350
351
  .pf .vis-private { background: rgba(192, 132, 252, .15); color: #c084fc; }
351
352
  .pf .vis-protected { background: rgba(96, 165, 250, .15); color: #60a5fa; }
352
353
 
@@ -124,6 +124,7 @@
124
124
  .mk-vis-public { background: rgba(34,197,94,0.15); color: #22c55e; }
125
125
  .mk-vis-password { background: rgba(234,179,8,0.15); color: #eab308; }
126
126
  .mk-vis-invite { background: rgba(129,140,248,0.15); color: #818cf8; }
127
+ .mk-vis-group { background: rgba(16,185,129,0.15); color: #10b981; }
127
128
  .mk-back-link { cursor: pointer; color: var(--accent, #06b6d4); margin-bottom: 16px; display: inline-block; }
128
129
 
129
130
  @media (max-width: 600px) {