aimeat 1.27.0 → 1.28.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 (421) hide show
  1. package/dist/.env.example +2 -0
  2. package/dist/locales/en.json +538 -297
  3. package/dist/locales/fi.json +500 -259
  4. package/dist/public/components/NotificationBell.js +2 -4
  5. package/dist/public/css/views/agents-detail.css +11 -0
  6. package/dist/public/css/views/app-grant.css +35 -3
  7. package/dist/public/css/views/inbox.css +78 -0
  8. package/dist/public/css/views/landing.css +8 -0
  9. package/dist/public/css/views/living.css +187 -0
  10. package/dist/public/css/views/notebook.css +89 -0
  11. package/dist/public/css/views/profile.css +78 -85
  12. package/dist/public/js/app-sandbox.js +18 -59
  13. package/dist/public/js/presence-store.js +7 -1
  14. package/dist/public/js/services/agents.js +10 -3
  15. package/dist/public/js/services/generator-prompts-base.js +40 -3
  16. package/dist/public/js/services/living.js +506 -0
  17. package/dist/public/js/services/memory.js +23 -3
  18. package/dist/public/js/services/nodes.js +1 -1
  19. package/dist/public/js/services/notebook-plan.js +211 -0
  20. package/dist/public/js/services/notebook.js +97 -0
  21. package/dist/public/js/services/organisms.js +41 -2
  22. package/dist/public/js/services/tracked-responses.js +103 -0
  23. package/dist/public/js/utils.js +15 -0
  24. package/dist/public/lib/live-updates.js +231 -94
  25. package/dist/public/spa.html +8 -1
  26. package/dist/public/types/aimeat-globals.d.ts +4 -0
  27. package/dist/public/views/admin/agent-integration-tab.js +2 -5
  28. package/dist/public/views/admin/agent-tasks-tab.js +2 -5
  29. package/dist/public/views/admin/cortex-tab.js +2 -5
  30. package/dist/public/views/admin/federation-tab.js +3 -10
  31. package/dist/public/views/admin/memory-tab.js +2 -5
  32. package/dist/public/views/admin/messages-tab.js +2 -5
  33. package/dist/public/views/admin/packages-tab.js +2 -5
  34. package/dist/public/views/admin/sharing-groups-tab.js +2 -5
  35. package/dist/public/views/app-grant.js +126 -23
  36. package/dist/public/views/landing-node-totals.js +71 -0
  37. package/dist/public/views/landing.js +6 -4
  38. package/dist/public/views/profile/agents/agent-card.js +8 -5
  39. package/dist/public/views/profile/agents/tab-activity.js +2 -3
  40. package/dist/public/views/profile/agents/tab-agent-config.js +2 -3
  41. package/dist/public/views/profile/agents/tab-data-access.js +2 -3
  42. package/dist/public/views/profile/agents/tab-integration.js +2 -3
  43. package/dist/public/views/profile/agents/tab-messages.js +2 -6
  44. package/dist/public/views/profile/agents/tab-quality.js +2 -5
  45. package/dist/public/views/profile/agents/tab-schedules.js +2 -4
  46. package/dist/public/views/profile/agents-activity-subtab.js +2 -5
  47. package/dist/public/views/profile/agents-capabilities-subtab.js +2 -2
  48. package/dist/public/views/profile/agents-messages-subtab.js +2 -5
  49. package/dist/public/views/profile/agents-services-subtab.js +2 -3
  50. package/dist/public/views/profile/agents-tab.js +70 -90
  51. package/dist/public/views/profile/agents-tasks-subtab.js +3 -8
  52. package/dist/public/views/profile/apps-tab.js +17 -0
  53. package/dist/public/views/profile/boards-tab.js +2 -5
  54. package/dist/public/views/profile/chat-sessions-tab.js +2 -5
  55. package/dist/public/views/profile/ecosystem-tab.js +7 -12
  56. package/dist/public/views/profile/extensions-tab.js +2 -5
  57. package/dist/public/views/profile/federation-tab.js +2 -5
  58. package/dist/public/views/profile/inbox-tab.js +280 -14
  59. package/dist/public/views/profile/knowledge-tab.js +2 -5
  60. package/dist/public/views/profile/landing-page.js +260 -184
  61. package/dist/public/views/profile/living-tab.js +480 -0
  62. package/dist/public/views/profile/memory-tab.js +2 -5
  63. package/dist/public/views/profile/notebook-card.js +515 -0
  64. package/dist/public/views/profile/notebook-helpers.js +48 -0
  65. package/dist/public/views/profile/notebook-tab.js +40 -260
  66. package/dist/public/views/profile/organisms/activity-panel.js +3 -2
  67. package/dist/public/views/profile/organisms/home.js +52 -3
  68. package/dist/public/views/profile/organisms/members.js +2 -5
  69. package/dist/public/views/profile/organisms/mindmap.js +194 -0
  70. package/dist/public/views/profile/organisms/panels.js +3 -10
  71. package/dist/public/views/profile/organisms/participants-panel.js +3 -2
  72. package/dist/public/views/profile/organisms/readme-panel.js +97 -0
  73. package/dist/public/views/profile/organisms/sources-panel.js +2 -5
  74. package/dist/public/views/profile/organisms/timeline-panel.js +104 -0
  75. package/dist/public/views/profile/organisms/workspace-comments.js +2 -5
  76. package/dist/public/views/profile/organisms/workspace-list.js +8 -8
  77. package/dist/public/views/profile/organisms/workspace.js +41 -6
  78. package/dist/public/views/profile/organisms-tab.js +3 -6
  79. package/dist/public/views/profile/packages-tab.js +2 -5
  80. package/dist/public/views/profile/scheduler-tab.js +2 -4
  81. package/dist/public/views/profile/track-response-modal.js +211 -0
  82. package/dist/public/views/profile/workflows-tab.js +4 -13
  83. package/dist/public/views/profile.js +10 -9
  84. package/dist/scripts/consent-audit-prune.d.ts +21 -0
  85. package/dist/scripts/consent-audit-prune.d.ts.map +1 -0
  86. package/dist/scripts/consent-audit-prune.js +198 -0
  87. package/dist/scripts/consent-audit-prune.js.map +1 -0
  88. package/dist/scripts/reassign-apps.d.ts +2 -0
  89. package/dist/scripts/reassign-apps.d.ts.map +1 -0
  90. package/dist/scripts/reassign-apps.js +99 -0
  91. package/dist/scripts/reassign-apps.js.map +1 -0
  92. package/dist/scripts/telemetry-prune.d.ts +20 -0
  93. package/dist/scripts/telemetry-prune.d.ts.map +1 -0
  94. package/dist/scripts/telemetry-prune.js +195 -0
  95. package/dist/scripts/telemetry-prune.js.map +1 -0
  96. package/dist/src/auth/jwt.d.ts +1 -0
  97. package/dist/src/auth/jwt.d.ts.map +1 -1
  98. package/dist/src/auth/jwt.js +13 -0
  99. package/dist/src/auth/jwt.js.map +1 -1
  100. package/dist/src/cli/connect/mcp/local-server.d.ts.map +1 -1
  101. package/dist/src/cli/connect/mcp/local-server.js +109 -0
  102. package/dist/src/cli/connect/mcp/local-server.js.map +1 -1
  103. package/dist/src/cli/connect/tool-call.d.ts.map +1 -1
  104. package/dist/src/cli/connect/tool-call.js +9 -0
  105. package/dist/src/cli/connect/tool-call.js.map +1 -1
  106. package/dist/src/cli/connect/tunnel-client.d.ts +16 -0
  107. package/dist/src/cli/connect/tunnel-client.d.ts.map +1 -1
  108. package/dist/src/cli/connect/tunnel-client.js +42 -0
  109. package/dist/src/cli/connect/tunnel-client.js.map +1 -1
  110. package/dist/src/config.d.ts +7 -0
  111. package/dist/src/config.d.ts.map +1 -1
  112. package/dist/src/config.js +4 -0
  113. package/dist/src/config.js.map +1 -1
  114. package/dist/src/generated/api-types.d.ts +1449 -128
  115. package/dist/src/generated/api-types.d.ts.map +1 -1
  116. package/dist/src/generated/prisma-postgres/edge.js +17 -3
  117. package/dist/src/generated/prisma-postgres/index-browser.js +14 -0
  118. package/dist/src/generated/prisma-postgres/index.d.ts +1580 -161
  119. package/dist/src/generated/prisma-postgres/index.js +17 -3
  120. package/dist/src/generated/prisma-postgres/package.json +1 -1
  121. package/dist/src/generated/prisma-postgres/schema.prisma +18 -0
  122. package/dist/src/generated/prisma-postgres/wasm.js +17 -3
  123. package/dist/src/index.js +4 -0
  124. package/dist/src/index.js.map +1 -1
  125. package/dist/src/mcp/agent-telemetry.d.ts +2 -0
  126. package/dist/src/mcp/agent-telemetry.d.ts.map +1 -1
  127. package/dist/src/mcp/agent-telemetry.js +8 -3
  128. package/dist/src/mcp/agent-telemetry.js.map +1 -1
  129. package/dist/src/mcp/annotations.d.ts.map +1 -1
  130. package/dist/src/mcp/annotations.js +1 -0
  131. package/dist/src/mcp/annotations.js.map +1 -1
  132. package/dist/src/mcp/apps.d.ts.map +1 -1
  133. package/dist/src/mcp/apps.js +14 -1
  134. package/dist/src/mcp/apps.js.map +1 -1
  135. package/dist/src/mcp/catalog/definitions.d.ts.map +1 -1
  136. package/dist/src/mcp/catalog/definitions.js +15 -0
  137. package/dist/src/mcp/catalog/definitions.js.map +1 -1
  138. package/dist/src/mcp/organisms.d.ts +2 -0
  139. package/dist/src/mcp/organisms.d.ts.map +1 -1
  140. package/dist/src/mcp/organisms.js +43 -0
  141. package/dist/src/mcp/organisms.js.map +1 -1
  142. package/dist/src/mcp/workspaces.d.ts.map +1 -1
  143. package/dist/src/mcp/workspaces.js +8 -1
  144. package/dist/src/mcp/workspaces.js.map +1 -1
  145. package/dist/src/routes/agent-messages.js +2 -2
  146. package/dist/src/routes/agent-messages.js.map +1 -1
  147. package/dist/src/routes/agent-tasks.js +14 -14
  148. package/dist/src/routes/agent-tasks.js.map +1 -1
  149. package/dist/src/routes/agent-telemetry.d.ts +3 -0
  150. package/dist/src/routes/agent-telemetry.d.ts.map +1 -1
  151. package/dist/src/routes/agent-telemetry.js +11 -6
  152. package/dist/src/routes/agent-telemetry.js.map +1 -1
  153. package/dist/src/routes/agents.d.ts.map +1 -1
  154. package/dist/src/routes/agents.js +41 -3
  155. package/dist/src/routes/agents.js.map +1 -1
  156. package/dist/src/routes/app-grants.d.ts +3 -0
  157. package/dist/src/routes/app-grants.d.ts.map +1 -1
  158. package/dist/src/routes/app-grants.js +120 -7
  159. package/dist/src/routes/app-grants.js.map +1 -1
  160. package/dist/src/routes/apps.d.ts +9 -0
  161. package/dist/src/routes/apps.d.ts.map +1 -1
  162. package/dist/src/routes/apps.js +110 -16
  163. package/dist/src/routes/apps.js.map +1 -1
  164. package/dist/src/routes/boards.d.ts.map +1 -1
  165. package/dist/src/routes/boards.js +4 -2
  166. package/dist/src/routes/boards.js.map +1 -1
  167. package/dist/src/routes/consent.d.ts.map +1 -1
  168. package/dist/src/routes/consent.js +14 -1
  169. package/dist/src/routes/consent.js.map +1 -1
  170. package/dist/src/routes/ghii.d.ts.map +1 -1
  171. package/dist/src/routes/ghii.js +20 -10
  172. package/dist/src/routes/ghii.js.map +1 -1
  173. package/dist/src/routes/librarian.d.ts.map +1 -1
  174. package/dist/src/routes/librarian.js +64 -2
  175. package/dist/src/routes/librarian.js.map +1 -1
  176. package/dist/src/routes/libs.d.ts +9 -0
  177. package/dist/src/routes/libs.d.ts.map +1 -1
  178. package/dist/src/routes/libs.js +261 -2
  179. package/dist/src/routes/libs.js.map +1 -1
  180. package/dist/src/routes/living.d.ts +18 -0
  181. package/dist/src/routes/living.d.ts.map +1 -0
  182. package/dist/src/routes/living.js +63 -0
  183. package/dist/src/routes/living.js.map +1 -0
  184. package/dist/src/routes/matches.d.ts.map +1 -1
  185. package/dist/src/routes/matches.js +1 -3
  186. package/dist/src/routes/matches.js.map +1 -1
  187. package/dist/src/routes/memory.d.ts.map +1 -1
  188. package/dist/src/routes/memory.js +40 -1
  189. package/dist/src/routes/memory.js.map +1 -1
  190. package/dist/src/routes/messages.d.ts +2 -0
  191. package/dist/src/routes/messages.d.ts.map +1 -1
  192. package/dist/src/routes/messages.js +27 -96
  193. package/dist/src/routes/messages.js.map +1 -1
  194. package/dist/src/routes/organisms.d.ts +8 -0
  195. package/dist/src/routes/organisms.d.ts.map +1 -1
  196. package/dist/src/routes/organisms.js +124 -3
  197. package/dist/src/routes/organisms.js.map +1 -1
  198. package/dist/src/routes/owners.d.ts.map +1 -1
  199. package/dist/src/routes/owners.js +2 -0
  200. package/dist/src/routes/owners.js.map +1 -1
  201. package/dist/src/routes/personal.d.ts.map +1 -1
  202. package/dist/src/routes/personal.js +7 -0
  203. package/dist/src/routes/personal.js.map +1 -1
  204. package/dist/src/routes/portal.d.ts +3 -0
  205. package/dist/src/routes/portal.d.ts.map +1 -1
  206. package/dist/src/routes/portal.js +19 -12
  207. package/dist/src/routes/portal.js.map +1 -1
  208. package/dist/src/routes/public-stats.d.ts +3 -0
  209. package/dist/src/routes/public-stats.d.ts.map +1 -1
  210. package/dist/src/routes/public-stats.js +48 -0
  211. package/dist/src/routes/public-stats.js.map +1 -1
  212. package/dist/src/routes/sse.d.ts +3 -0
  213. package/dist/src/routes/sse.d.ts.map +1 -1
  214. package/dist/src/routes/sse.js +27 -15
  215. package/dist/src/routes/sse.js.map +1 -1
  216. package/dist/src/routes/storage-files.d.ts +2 -0
  217. package/dist/src/routes/storage-files.d.ts.map +1 -1
  218. package/dist/src/routes/storage-files.js +14 -17
  219. package/dist/src/routes/storage-files.js.map +1 -1
  220. package/dist/src/routes/subdomains.d.ts +28 -0
  221. package/dist/src/routes/subdomains.d.ts.map +1 -1
  222. package/dist/src/routes/subdomains.js +138 -11
  223. package/dist/src/routes/subdomains.js.map +1 -1
  224. package/dist/src/routes/tracked-responses.d.ts +27 -0
  225. package/dist/src/routes/tracked-responses.d.ts.map +1 -0
  226. package/dist/src/routes/tracked-responses.js +212 -0
  227. package/dist/src/routes/tracked-responses.js.map +1 -0
  228. package/dist/src/routes/upload.js +8 -0
  229. package/dist/src/routes/upload.js.map +1 -1
  230. package/dist/src/server-bootstrap/routes-loader.d.ts.map +1 -1
  231. package/dist/src/server-bootstrap/routes-loader.js +24 -0
  232. package/dist/src/server-bootstrap/routes-loader.js.map +1 -1
  233. package/dist/src/server-bootstrap/service-init.d.ts.map +1 -1
  234. package/dist/src/server-bootstrap/service-init.js +4 -0
  235. package/dist/src/server-bootstrap/service-init.js.map +1 -1
  236. package/dist/src/server-bootstrap/static-files.d.ts +5 -0
  237. package/dist/src/server-bootstrap/static-files.d.ts.map +1 -1
  238. package/dist/src/server-bootstrap/static-files.js +33 -1
  239. package/dist/src/server-bootstrap/static-files.js.map +1 -1
  240. package/dist/src/services/access-guard.d.ts +4 -4
  241. package/dist/src/services/access-guard.d.ts.map +1 -1
  242. package/dist/src/services/access-guard.js +7 -8
  243. package/dist/src/services/access-guard.js.map +1 -1
  244. package/dist/src/services/activity-recorder.d.ts +2 -13
  245. package/dist/src/services/activity-recorder.d.ts.map +1 -1
  246. package/dist/src/services/activity-recorder.js +0 -42
  247. package/dist/src/services/activity-recorder.js.map +1 -1
  248. package/dist/src/services/connect-tunnel.d.ts +56 -3
  249. package/dist/src/services/connect-tunnel.d.ts.map +1 -1
  250. package/dist/src/services/connect-tunnel.js +216 -1
  251. package/dist/src/services/connect-tunnel.js.map +1 -1
  252. package/dist/src/services/consent-audit-buffer.d.ts +45 -0
  253. package/dist/src/services/consent-audit-buffer.d.ts.map +1 -0
  254. package/dist/src/services/consent-audit-buffer.js +85 -0
  255. package/dist/src/services/consent-audit-buffer.js.map +1 -0
  256. package/dist/src/services/consent.d.ts +9 -3
  257. package/dist/src/services/consent.d.ts.map +1 -1
  258. package/dist/src/services/consent.js +13 -5
  259. package/dist/src/services/consent.js.map +1 -1
  260. package/dist/src/services/core-jobs.d.ts.map +1 -1
  261. package/dist/src/services/core-jobs.js +20 -4
  262. package/dist/src/services/core-jobs.js.map +1 -1
  263. package/dist/src/services/event-bus.d.ts +24 -1
  264. package/dist/src/services/event-bus.d.ts.map +1 -1
  265. package/dist/src/services/event-bus.js +17 -2
  266. package/dist/src/services/event-bus.js.map +1 -1
  267. package/dist/src/services/generator-prompts/resolvers.d.ts +2 -0
  268. package/dist/src/services/generator-prompts/resolvers.d.ts.map +1 -1
  269. package/dist/src/services/generator-prompts/resolvers.js +22 -3
  270. package/dist/src/services/generator-prompts/resolvers.js.map +1 -1
  271. package/dist/src/services/job-seeding.d.ts.map +1 -1
  272. package/dist/src/services/job-seeding.js +4 -0
  273. package/dist/src/services/job-seeding.js.map +1 -1
  274. package/dist/src/services/living-author-prompt.d.ts +14 -0
  275. package/dist/src/services/living-author-prompt.d.ts.map +1 -0
  276. package/dist/src/services/living-author-prompt.js +47 -0
  277. package/dist/src/services/living-author-prompt.js.map +1 -0
  278. package/dist/src/services/living-author.d.ts +55 -0
  279. package/dist/src/services/living-author.d.ts.map +1 -0
  280. package/dist/src/services/living-author.js +91 -0
  281. package/dist/src/services/living-author.js.map +1 -0
  282. package/dist/src/services/living-pulse.d.ts +29 -0
  283. package/dist/src/services/living-pulse.d.ts.map +1 -0
  284. package/dist/src/services/living-pulse.js +363 -0
  285. package/dist/src/services/living-pulse.js.map +1 -0
  286. package/dist/src/services/message-delivery.d.ts +1 -1
  287. package/dist/src/services/message-delivery.d.ts.map +1 -1
  288. package/dist/src/services/message-delivery.js +10 -7
  289. package/dist/src/services/message-delivery.js.map +1 -1
  290. package/dist/src/services/message-send.d.ts +24 -0
  291. package/dist/src/services/message-send.d.ts.map +1 -0
  292. package/dist/src/services/message-send.js +122 -0
  293. package/dist/src/services/message-send.js.map +1 -0
  294. package/dist/src/services/notebook-ai.d.ts +36 -0
  295. package/dist/src/services/notebook-ai.d.ts.map +1 -0
  296. package/dist/src/services/notebook-ai.js +51 -0
  297. package/dist/src/services/notebook-ai.js.map +1 -0
  298. package/dist/src/services/notebook-classify.d.ts +32 -5
  299. package/dist/src/services/notebook-classify.d.ts.map +1 -1
  300. package/dist/src/services/notebook-classify.js +59 -43
  301. package/dist/src/services/notebook-classify.js.map +1 -1
  302. package/dist/src/services/notebook-distribute-prompt.d.ts +16 -0
  303. package/dist/src/services/notebook-distribute-prompt.d.ts.map +1 -0
  304. package/dist/src/services/notebook-distribute-prompt.js +40 -0
  305. package/dist/src/services/notebook-distribute-prompt.js.map +1 -0
  306. package/dist/src/services/notebook-plan-prompt.d.ts +19 -0
  307. package/dist/src/services/notebook-plan-prompt.d.ts.map +1 -0
  308. package/dist/src/services/notebook-plan-prompt.js +54 -0
  309. package/dist/src/services/notebook-plan-prompt.js.map +1 -0
  310. package/dist/src/services/notebook-plan.d.ts +70 -0
  311. package/dist/src/services/notebook-plan.d.ts.map +1 -0
  312. package/dist/src/services/notebook-plan.js +118 -0
  313. package/dist/src/services/notebook-plan.js.map +1 -0
  314. package/dist/src/services/onboarding-validator.d.ts.map +1 -1
  315. package/dist/src/services/onboarding-validator.js +13 -3
  316. package/dist/src/services/onboarding-validator.js.map +1 -1
  317. package/dist/src/services/organism-comments.d.ts +5 -1
  318. package/dist/src/services/organism-comments.d.ts.map +1 -1
  319. package/dist/src/services/organism-comments.js +7 -22
  320. package/dist/src/services/organism-comments.js.map +1 -1
  321. package/dist/src/services/organism-readme.d.ts +24 -0
  322. package/dist/src/services/organism-readme.d.ts.map +1 -0
  323. package/dist/src/services/organism-readme.js +37 -0
  324. package/dist/src/services/organism-readme.js.map +1 -0
  325. package/dist/src/services/prompt-defaults.d.ts.map +1 -1
  326. package/dist/src/services/prompt-defaults.js +30 -0
  327. package/dist/src/services/prompt-defaults.js.map +1 -1
  328. package/dist/src/services/readiness-scorer.d.ts.map +1 -1
  329. package/dist/src/services/readiness-scorer.js +11 -6
  330. package/dist/src/services/readiness-scorer.js.map +1 -1
  331. package/dist/src/services/scheduler.d.ts +5 -0
  332. package/dist/src/services/scheduler.d.ts.map +1 -1
  333. package/dist/src/services/scheduler.js +13 -3
  334. package/dist/src/services/scheduler.js.map +1 -1
  335. package/dist/src/services/screenshot-capture.d.ts +28 -0
  336. package/dist/src/services/screenshot-capture.d.ts.map +1 -0
  337. package/dist/src/services/screenshot-capture.js +154 -0
  338. package/dist/src/services/screenshot-capture.js.map +1 -0
  339. package/dist/src/services/structure-graph.d.ts +65 -0
  340. package/dist/src/services/structure-graph.d.ts.map +1 -0
  341. package/dist/src/services/structure-graph.js +53 -0
  342. package/dist/src/services/structure-graph.js.map +1 -0
  343. package/dist/src/services/structure-overview.d.ts +6 -0
  344. package/dist/src/services/structure-overview.d.ts.map +1 -1
  345. package/dist/src/services/structure-overview.js +1 -1
  346. package/dist/src/services/structure-overview.js.map +1 -1
  347. package/dist/src/services/structure-snapshot.d.ts +47 -0
  348. package/dist/src/services/structure-snapshot.d.ts.map +1 -0
  349. package/dist/src/services/structure-snapshot.js +101 -0
  350. package/dist/src/services/structure-snapshot.js.map +1 -0
  351. package/dist/src/services/telemetry-buffer.d.ts +73 -0
  352. package/dist/src/services/telemetry-buffer.d.ts.map +1 -0
  353. package/dist/src/services/telemetry-buffer.js +185 -0
  354. package/dist/src/services/telemetry-buffer.js.map +1 -0
  355. package/dist/src/services/track-registry.d.ts +29 -0
  356. package/dist/src/services/track-registry.d.ts.map +1 -0
  357. package/dist/src/services/track-registry.js +61 -0
  358. package/dist/src/services/track-registry.js.map +1 -0
  359. package/dist/src/services/tracked-classify.d.ts +98 -0
  360. package/dist/src/services/tracked-classify.d.ts.map +1 -0
  361. package/dist/src/services/tracked-classify.js +182 -0
  362. package/dist/src/services/tracked-classify.js.map +1 -0
  363. package/dist/src/services/tracked-response.d.ts +98 -0
  364. package/dist/src/services/tracked-response.d.ts.map +1 -0
  365. package/dist/src/services/tracked-response.js +304 -0
  366. package/dist/src/services/tracked-response.js.map +1 -0
  367. package/dist/src/services/workspace-access.d.ts +36 -0
  368. package/dist/src/services/workspace-access.d.ts.map +1 -0
  369. package/dist/src/services/workspace-access.js +38 -0
  370. package/dist/src/services/workspace-access.js.map +1 -0
  371. package/dist/src/storage/interface.d.ts +6 -1
  372. package/dist/src/storage/interface.d.ts.map +1 -1
  373. package/dist/src/storage/interface.js.map +1 -1
  374. package/dist/src/storage/providers/mongodb/index.d.ts +26 -1
  375. package/dist/src/storage/providers/mongodb/index.d.ts.map +1 -1
  376. package/dist/src/storage/providers/mongodb/index.js +144 -1
  377. package/dist/src/storage/providers/mongodb/index.js.map +1 -1
  378. package/dist/src/storage/providers/sqlite/index.d.ts +26 -1
  379. package/dist/src/storage/providers/sqlite/index.d.ts.map +1 -1
  380. package/dist/src/storage/providers/sqlite/index.js +73 -6
  381. package/dist/src/storage/providers/sqlite/index.js.map +1 -1
  382. package/dist/src/storage/providers/sqlite/repos/agent-message.d.ts +4 -0
  383. package/dist/src/storage/providers/sqlite/repos/agent-message.d.ts.map +1 -1
  384. package/dist/src/storage/providers/sqlite/repos/agent-message.js +14 -0
  385. package/dist/src/storage/providers/sqlite/repos/agent-message.js.map +1 -1
  386. package/dist/src/storage/providers/sqlite/repos/agent-task.d.ts +9 -0
  387. package/dist/src/storage/providers/sqlite/repos/agent-task.d.ts.map +1 -1
  388. package/dist/src/storage/providers/sqlite/repos/agent-task.js +25 -0
  389. package/dist/src/storage/providers/sqlite/repos/agent-task.js.map +1 -1
  390. package/dist/src/storage/providers/sqlite/repos/memory.d.ts +22 -1
  391. package/dist/src/storage/providers/sqlite/repos/memory.d.ts.map +1 -1
  392. package/dist/src/storage/providers/sqlite/repos/memory.js +61 -3
  393. package/dist/src/storage/providers/sqlite/repos/memory.js.map +1 -1
  394. package/dist/src/storage/providers/sqlite/schema.d.ts +16 -3
  395. package/dist/src/storage/providers/sqlite/schema.d.ts.map +1 -1
  396. package/dist/src/storage/providers/sqlite/schema.js +33 -6
  397. package/dist/src/storage/providers/sqlite/schema.js.map +1 -1
  398. package/dist/src/storage/repositories/agent-message.repository.d.ts +10 -0
  399. package/dist/src/storage/repositories/agent-message.repository.d.ts.map +1 -1
  400. package/dist/src/storage/repositories/agent-task.repository.d.ts +15 -0
  401. package/dist/src/storage/repositories/agent-task.repository.d.ts.map +1 -1
  402. package/dist/src/storage/repositories/app.repository.d.ts +9 -0
  403. package/dist/src/storage/repositories/app.repository.d.ts.map +1 -1
  404. package/dist/src/storage/repositories/consent.repository.d.ts +2 -0
  405. package/dist/src/storage/repositories/consent.repository.d.ts.map +1 -1
  406. package/dist/src/storage/repositories/memory.repository.d.ts +31 -0
  407. package/dist/src/storage/repositories/memory.repository.d.ts.map +1 -1
  408. package/dist/src/utils/env-config.d.ts.map +1 -1
  409. package/dist/src/utils/env-config.js +18 -0
  410. package/dist/src/utils/env-config.js.map +1 -1
  411. package/dist/src/utils/messaging.d.ts +5 -0
  412. package/dist/src/utils/messaging.d.ts.map +1 -1
  413. package/dist/src/utils/messaging.js +0 -0
  414. package/dist/src/utils/messaging.js.map +1 -1
  415. package/dist/static/app-catalog.html +452 -34
  416. package/dist/static/app-login.js +67 -0
  417. package/dist/static/app-silent.html +14 -0
  418. package/dist/static/app-silent.js +32 -0
  419. package/package.json +5 -1
  420. package/prisma/schema.postgres.prisma +36 -18
  421. package/prisma/schema.prisma +20 -0
@@ -13,6 +13,7 @@
13
13
  import { h } from 'preact';
14
14
  import { useState, useEffect, useRef, useCallback } from 'preact/hooks';
15
15
  import htm from 'htm';
16
+ import { onLiveUpdate } from '/lib/live-updates.js';
16
17
  const html = htm.bind(h);
17
18
 
18
19
  const jwt = () => { try { return window.AIMEAT?.auth?.getSession?.()?.jwt || ''; } catch { return ''; } };
@@ -49,10 +50,7 @@ export function NotificationBell({ t, onNavigate }) {
49
50
 
50
51
  useEffect(() => {
51
52
  load();
52
- const onUpd = () => load();
53
- window.addEventListener('aimeat-live-update', onUpd);
54
- const iv = setInterval(load, 45000);
55
- return () => { window.removeEventListener('aimeat-live-update', onUpd); clearInterval(iv); };
53
+ return onLiveUpdate(['agent-messages', 'agent-tasks', 'notifications', 'workspace-access'], () => load());
56
54
  }, [load]);
57
55
 
58
56
  // Close the dropdown on an outside click.
@@ -4,6 +4,8 @@
4
4
  * Uses agd- prefix to avoid collisions with other profile styles.
5
5
  * All colors use CSS variables from theme.css.
6
6
  * @version-history
7
+ * v1.11.0 -- 2026-06-21 -- Add has-unseen DOT badge modifier (.pf-agd-*-badge--dot): a small
8
+ * round indicator replacing the old numeric change-count badge.
7
9
  * v1.10.0 -- 2026-06-03 -- Add fleet "running now" panel styles (.pf-agd-active,
8
10
  * -head, -empty, -list, -row, -dot, -agent, -title, -time) for the cross-agent
9
11
  * active-tasks list between the board and the agent list. All colors tokenized
@@ -2000,6 +2002,15 @@
2000
2002
  color: var(--danger-fg, #DC2626);
2001
2003
  border-color: var(--danger-border, #FECACA);
2002
2004
  }
2005
+ /* Has-unseen DOT (no count): a small round indicator replacing the old number badge. */
2006
+ .pf .pf-agd-change-badge--dot,
2007
+ .pf .pf-agd-tab-badge--dot {
2008
+ min-width: 8px;
2009
+ width: 8px;
2010
+ height: 8px;
2011
+ padding: 0;
2012
+ border-radius: 50%;
2013
+ }
2003
2014
 
2004
2015
  /* ── Board legend (filter pills), capability summary, inline misc (2026-06-10 round) ── */
2005
2016
  .pf .pf-agd-board-legend { display: flex; gap: 0.4rem; flex-wrap: wrap; margin-bottom: 0.6rem; }
@@ -34,18 +34,50 @@
34
34
 
35
35
  .agr-scopes-label { font-weight: 700; font-size: 0.9rem; margin-bottom: 0.5rem; color: var(--text); }
36
36
 
37
- .agr-scopes { list-style: none; margin: 0 0 1.5rem; padding: 0; display: flex; flex-direction: column; gap: 0.5rem; }
37
+ .agr-scopes { list-style: none; margin: 0 0 0.75rem; padding: 0; display: flex; flex-direction: column; gap: 0.5rem; }
38
38
  .agr-scope {
39
39
  display: flex;
40
- flex-direction: column;
41
- gap: 0.1rem;
40
+ flex-direction: row;
41
+ align-items: flex-start;
42
+ gap: 0.6rem;
42
43
  padding: 0.6rem 0.8rem;
43
44
  border: 1px solid var(--border);
44
45
  border-radius: 8px;
45
46
  background: var(--surface, var(--bg-dim));
46
47
  }
48
+ .agr-scope-check { margin-top: 0.2rem; flex: 0 0 auto; accent-color: var(--accent); width: 1rem; height: 1rem; cursor: pointer; }
49
+ .agr-scope-text { display: flex; flex-direction: column; gap: 0.1rem; min-width: 0; }
47
50
  .agr-scope-name { font-family: var(--font-mono, monospace); font-size: 0.82rem; color: var(--accent); }
48
51
  .agr-scope-desc { font-size: 0.88rem; color: var(--text); }
49
52
 
53
+ /* "External app" badge */
54
+ .agr-badge {
55
+ display: inline-block;
56
+ font-size: 0.72rem;
57
+ font-weight: 700;
58
+ letter-spacing: 0.04em;
59
+ text-transform: uppercase;
60
+ color: var(--warn, #e8a44a);
61
+ background: var(--bg-dim);
62
+ border: 1px solid var(--border);
63
+ border-radius: 999px;
64
+ padding: 0.18rem 0.6rem;
65
+ margin-bottom: 0.6rem;
66
+ }
67
+
68
+ /* Advanced toggle (link-style button) */
69
+ .agr-advanced-toggle {
70
+ background: none;
71
+ border: none;
72
+ color: var(--accent);
73
+ font-size: 0.85rem;
74
+ font-weight: 600;
75
+ cursor: pointer;
76
+ padding: 0.25rem 0;
77
+ margin: 0 0 1rem;
78
+ }
79
+ .agr-advanced-toggle:hover { text-decoration: underline; }
80
+
50
81
  .agr-actions { display: flex; gap: 0.75rem; justify-content: flex-end; }
51
82
  .agr-btn { min-width: 8rem; text-align: center; }
83
+ .agr-next { font-size: 0.8rem; color: var(--text-dim); text-align: center; margin: 0.9rem 0 0; }
@@ -284,3 +284,81 @@
284
284
  .inbox-attach-btn:hover { border-color: var(--accent); }
285
285
  .inbox-file-chips { display: flex; flex-wrap: wrap; gap: 6px; }
286
286
  .inbox-file-chip { font-size: 12px; color: var(--text-dim); background: var(--card-bg-alt); padding: 3px 8px; border-radius: var(--radius-full); }
287
+
288
+ /* ── Tracked Responses: per-message actions, approval banner, track modal ── */
289
+ .inbox-bubble { position: relative; }
290
+ .inbox-bubble-actions {
291
+ position: absolute; top: 4px; right: 6px;
292
+ display: flex; gap: 2px; opacity: 0; transition: opacity .12s ease;
293
+ }
294
+ .inbox-row:hover .inbox-bubble-actions { opacity: 1; }
295
+ .inbox-bubble-act {
296
+ border: none; background: transparent; cursor: pointer;
297
+ font-size: 13px; line-height: 1; padding: 2px 3px; border-radius: var(--radius-xs);
298
+ color: var(--text-dim);
299
+ }
300
+ .inbox-bubble-act:hover { background: var(--card-bg-alt); color: var(--accent); }
301
+ .inbox-bubble-act--on { color: var(--accent); }
302
+
303
+ .inbox-track-banner {
304
+ display: flex; align-items: center; gap: 10px;
305
+ padding: 8px 12px; margin: 6px 0;
306
+ background: var(--accent-subtle); border: 1px solid var(--accent-border);
307
+ border-radius: var(--radius-sm); font-size: 13px;
308
+ }
309
+ .inbox-track-banner-txt { flex: 1; }
310
+
311
+ /* A "reply ready" suggested-reply shown as a dashed draft bubble with approve/reject. */
312
+ .inbox-bubble--draft {
313
+ border: 1px dashed var(--accent-border) !important;
314
+ background: var(--accent-subtle) !important;
315
+ }
316
+ .inbox-draft-label { font-size: 11px; font-weight: 600; color: var(--accent); margin-bottom: 4px; }
317
+ .inbox-draft-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; margin-top: 8px; }
318
+
319
+ .inbox-track-form { display: flex; flex-direction: column; gap: 10px; }
320
+ .inbox-track-hint { color: var(--text-dim); font-size: 13px; margin: 0; }
321
+ .inbox-form-row { display: flex; flex-direction: column; gap: 4px; }
322
+ .inbox-form-label { font-size: 12px; color: var(--text-dim); }
323
+ .inbox-form-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
324
+ .inbox-track-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 6px; align-items: center; }
325
+ .inbox-track-classify { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 32px 16px; text-align: center; }
326
+ .inbox-track-classify-step { font-weight: 600; }
327
+ .inbox-track-classify-sub { font-size: 13px; color: var(--text-dim); }
328
+ .inbox-track-content { resize: vertical; font-family: inherit; }
329
+
330
+ /* Spinner shown on the create button while a tracked response is being created. */
331
+ .inbox-spinner {
332
+ display: inline-block; width: 12px; height: 12px; vertical-align: -1px;
333
+ border: 2px solid var(--border); border-top-color: var(--accent);
334
+ border-radius: var(--radius-full); animation: inbox-spin 0.7s linear infinite;
335
+ }
336
+ @keyframes inbox-spin { to { transform: rotate(360deg); } }
337
+
338
+ /* Per-message "is tracked" badge + the tracked-responses dashboard. */
339
+ .inbox-head-actions { display: flex; align-items: center; gap: 8px; }
340
+ .btn-outline--active { border-color: var(--accent); color: var(--accent); }
341
+ .inbox-track-badge {
342
+ display: inline-flex; align-items: center; gap: 3px;
343
+ font-size: 11px; padding: 1px 7px; border-radius: var(--radius-full);
344
+ border: 1px solid var(--border); color: var(--text-dim); white-space: nowrap;
345
+ }
346
+ .inbox-track-badge--watch { border-color: var(--accent-border); color: var(--accent); }
347
+ .inbox-track-badge--ready { border-color: var(--accent-border); color: var(--accent); background: var(--accent-subtle); }
348
+ .inbox-track-badge--done { border-color: var(--border); color: var(--text-dim); }
349
+ .inbox-track-badge--err { border-color: var(--danger); color: var(--danger); }
350
+
351
+ .inbox-tracked-list { display: flex; flex-direction: column; gap: 8px; padding: 12px; overflow-y: auto; }
352
+ .inbox-tracked-row {
353
+ display: flex; align-items: center; justify-content: space-between; gap: 12px;
354
+ padding: 10px 12px; border: 1px solid var(--card-border); border-radius: var(--radius-sm);
355
+ background: var(--card-bg);
356
+ }
357
+ .inbox-tracked-main { min-width: 0; flex: 1; }
358
+ .inbox-tracked-line1 { display: flex; align-items: center; gap: 8px; }
359
+ .inbox-tracked-name { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
360
+ .inbox-tracked-sub { font-size: 12px; color: var(--text-dim); margin-top: 3px; }
361
+ .inbox-tracked-sub code { font-size: 11px; background: var(--card-bg-alt); padding: 1px 5px; border-radius: var(--radius-xs); }
362
+ .inbox-tracked-err { color: var(--danger); }
363
+ .inbox-tracked-actions { display: flex; gap: 6px; flex-shrink: 0; }
364
+ .inbox-tracked-done { color: var(--text-dim); font-size: 12px; padding: 8px 6px 2px; border-top: 1px solid var(--border); margin-top: 4px; }
@@ -148,3 +148,11 @@
148
148
  .pa-detail-actor { margin: 0 0 .4rem; color: var(--muted); font-size: .78rem; }
149
149
  .pa-detail-link { color: var(--accent); font-weight: 700; text-decoration: none; font-size: .85rem; }
150
150
  .pa-detail-link:hover { text-decoration: underline; }
151
+
152
+ /* ── Node totals panel (nt- prefix) — cumulative counters replacing the activity feed ── */
153
+ .nt-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: .6rem; }
154
+ .nt-card { display: flex; flex-direction: column; align-items: center; gap: .15rem; padding: 1rem .75rem; border: 1px solid var(--border); border-radius: 12px; background: var(--card); text-align: center; }
155
+ .nt-icon { font-size: 1.4rem; line-height: 1; }
156
+ .nt-value { font-size: 1.6rem; font-weight: 800; font-variant-numeric: tabular-nums; color: var(--text); }
157
+ .nt-label { font-size: .8rem; color: var(--text-dim); }
158
+ .nt-sub { font-size: .72rem; font-weight: 600; color: var(--accent); }
@@ -0,0 +1,187 @@
1
+ /**
2
+ * @file living.css
3
+ * @description Styles for the profile Living Documents tab (pf-ld-* prefix): template cards, the
4
+ * template editor (slot rows), the deploy panel, and the deployed-instance viewer. Dark-theme only —
5
+ * all colors/spacing via theme.css variables. Reuses several pf-nb-* helpers from notebook.css.
6
+ * @version-history
7
+ * v1.0.0 — 2026-06-21 — Phase 0: template management + deploy + instance viewer.
8
+ * v1.1.0 — 2026-06-21 — Phase 1: AI-author panel + charter Readable/YAML views.
9
+ * v1.2.0 — 2026-06-21 — Phase 2: pulse status + change ledger.
10
+ * v1.3.0 — 2026-06-21 — Phase 3: status line + pause + cadence control.
11
+ * v1.4.0 — 2026-06-21 — Phase 4: automation controls (trust/triggers) + gated pending review.
12
+ * v1.5.0 — 2026-06-21 — Phase 5: per-section timeline + snapshot + aggregate chart.
13
+ */
14
+
15
+ .pf-ld-timeline {
16
+ display: flex;
17
+ align-items: center;
18
+ gap: var(--space-xs, 0.4rem);
19
+ margin-top: var(--space-xs, 0.4rem);
20
+ }
21
+ .pf-ld-aggregate {
22
+ margin-top: var(--space-xs, 0.4rem);
23
+ display: flex;
24
+ flex-direction: column;
25
+ gap: var(--space-xs, 0.4rem);
26
+ }
27
+ .pf-ld-chart {
28
+ display: block;
29
+ background: var(--bg-dim, var(--card));
30
+ border: 1px solid var(--border);
31
+ border-radius: var(--radius, 8px);
32
+ }
33
+ .pf-ld-chart rect { fill: var(--accent, var(--text)); }
34
+
35
+ .pf-ld-automation {
36
+ display: flex;
37
+ flex-wrap: wrap;
38
+ gap: var(--space-md, 1rem);
39
+ align-items: center;
40
+ }
41
+ .pf-ld-num { max-width: 5rem; display: inline-block; margin-left: 0.3rem; }
42
+ .pf-ld-pending {
43
+ border: 1px solid var(--accent, var(--border));
44
+ border-radius: var(--radius, 8px);
45
+ padding: var(--space-sm, 0.75rem);
46
+ margin-top: var(--space-xs, 0.4rem);
47
+ display: flex;
48
+ flex-direction: column;
49
+ gap: var(--space-xs, 0.4rem);
50
+ }
51
+ .pf-ld-pending-body { max-height: 16rem; }
52
+
53
+ .pf-ld-status {
54
+ display: flex;
55
+ align-items: center;
56
+ flex-wrap: wrap;
57
+ gap: var(--space-xs, 0.4rem);
58
+ }
59
+ .pf-ld-cadence {
60
+ background: var(--card);
61
+ color: var(--text);
62
+ border: 1px solid var(--border);
63
+ border-radius: var(--radius-sm, 4px);
64
+ padding: 0.1rem 0.3rem;
65
+ }
66
+
67
+ .pf-ld-phase {
68
+ color: var(--accent, var(--text));
69
+ font-style: italic;
70
+ }
71
+ .pf-ld-ledger {
72
+ list-style: none;
73
+ margin: var(--space-xs, 0.4rem) 0 0;
74
+ padding: 0;
75
+ display: flex;
76
+ flex-direction: column;
77
+ gap: 0.2rem;
78
+ }
79
+ .pf-ld-ledger li { color: var(--text-dim, var(--text)); }
80
+
81
+ .pf-ld-author {
82
+ display: flex;
83
+ flex-direction: column;
84
+ gap: var(--space-xs, 0.4rem);
85
+ margin: var(--space-sm, 0.75rem) 0;
86
+ }
87
+ .pf-ld-author textarea { width: 100%; resize: vertical; font-family: inherit; }
88
+ .pf-ld-author button { align-self: flex-start; }
89
+
90
+ .pf-ld-charter-views {
91
+ display: flex;
92
+ align-items: center;
93
+ gap: var(--space-xs, 0.4rem);
94
+ margin-top: var(--space-xs, 0.4rem);
95
+ }
96
+ .pf-ld-cv-active { color: var(--text); font-weight: 600; }
97
+ .pf-ld-charter-box {
98
+ background: var(--bg-dim, var(--card));
99
+ border: 1px solid var(--border);
100
+ border-radius: var(--radius, 8px);
101
+ padding: var(--space-sm, 0.75rem) var(--space-md, 1rem);
102
+ margin-top: var(--space-xs, 0.4rem);
103
+ }
104
+ .pf-ld-yaml {
105
+ font-family: var(--font-mono, monospace);
106
+ font-size: 0.85em;
107
+ white-space: pre-wrap;
108
+ color: var(--text-dim, var(--text));
109
+ overflow-x: auto;
110
+ }
111
+
112
+ .pf-ld-list {
113
+ display: flex;
114
+ flex-direction: column;
115
+ gap: var(--space-sm, 0.75rem);
116
+ margin-top: var(--space-sm, 0.75rem);
117
+ }
118
+ .pf-ld-card {
119
+ background: var(--card);
120
+ border: 1px solid var(--border);
121
+ border-radius: var(--radius, 8px);
122
+ padding: var(--space-sm, 0.75rem) var(--space-md, 1rem);
123
+ display: flex;
124
+ flex-direction: column;
125
+ gap: var(--space-xs, 0.4rem);
126
+ }
127
+ .pf-ld-card-head {
128
+ display: flex;
129
+ align-items: center;
130
+ justify-content: space-between;
131
+ gap: var(--space-sm, 0.75rem);
132
+ }
133
+ .pf-ld-card-btns {
134
+ display: flex;
135
+ gap: var(--space-xs, 0.4rem);
136
+ flex-wrap: wrap;
137
+ }
138
+
139
+ .pf-ld-editor {
140
+ margin-top: var(--space-sm, 0.75rem);
141
+ padding: var(--space-md, 1rem);
142
+ background: var(--surface, var(--card));
143
+ border: 1px solid var(--border);
144
+ border-radius: var(--radius, 8px);
145
+ display: flex;
146
+ flex-direction: column;
147
+ gap: var(--space-xs, 0.4rem);
148
+ }
149
+ .pf-ld-slots {
150
+ display: flex;
151
+ flex-direction: column;
152
+ gap: var(--space-xs, 0.4rem);
153
+ }
154
+ .pf-ld-slot-row {
155
+ display: flex;
156
+ gap: var(--space-xs, 0.4rem);
157
+ align-items: center;
158
+ }
159
+ .pf-ld-slot-row .input-field { flex: 1; }
160
+ .pf-ld-slot-id { max-width: 9rem; font-family: var(--font-mono, monospace); }
161
+
162
+ .pf-ld-opened-head {
163
+ display: flex;
164
+ align-items: center;
165
+ justify-content: space-between;
166
+ gap: var(--space-sm, 0.75rem);
167
+ }
168
+ .pf-ld-preview {
169
+ margin: var(--space-sm, 0.75rem) 0;
170
+ max-height: 28rem;
171
+ }
172
+ .pf-ld-slot-edit {
173
+ border-top: 1px solid var(--border);
174
+ padding-top: var(--space-sm, 0.75rem);
175
+ margin-top: var(--space-sm, 0.75rem);
176
+ display: flex;
177
+ flex-direction: column;
178
+ gap: var(--space-xs, 0.4rem);
179
+ }
180
+ .pf-ld-slot-edit-head { display: flex; align-items: baseline; gap: var(--space-sm, 0.75rem); }
181
+ .pf-ld-slot-edit textarea { width: 100%; resize: vertical; font-family: inherit; }
182
+ .pf-ld-slot-sources {
183
+ display: flex;
184
+ align-items: center;
185
+ gap: var(--space-sm, 0.75rem);
186
+ }
187
+ .pf-ld-slot-sources .input-field { flex: 1; }
@@ -4,6 +4,8 @@
4
4
  * and inbox notes. Dark-theme only — all colors/spacing via theme.css variables.
5
5
  * @version-history
6
6
  * v1.0.0 — 2026-06-19 — Initial: capture + librarian + inbox (slice A).
7
+ * v1.1.0 — 2026-06-21 — Enrich (plan) panel: plan steps, run controls, enriched preview.
8
+ * v1.2.0 — 2026-06-21 — Phase 3: trust-toggle settings strip + distribute (chunk) panel.
7
9
  */
8
10
 
9
11
  .pf-nb-capture {
@@ -193,3 +195,90 @@
193
195
  }
194
196
  .pf-nb-step.active { opacity: 1; color: var(--text); font-weight: 600; }
195
197
  .pf-nb-step.done { opacity: 0.85; color: var(--success, var(--text)); }
198
+
199
+ /* ── Enrich (plan) panel ── */
200
+ .pf-nb-enrich {
201
+ margin-top: var(--space-sm, 0.75rem);
202
+ padding: var(--space-md, 1rem);
203
+ background: var(--surface, var(--card));
204
+ border: 1px solid var(--border);
205
+ border-radius: var(--radius, 8px);
206
+ display: flex;
207
+ flex-direction: column;
208
+ gap: var(--space-sm, 0.75rem);
209
+ }
210
+ .pf-nb-enrich-summary { font-style: italic; }
211
+ .pf-nb-plan-steps {
212
+ list-style: none;
213
+ margin: 0;
214
+ padding: 0;
215
+ display: flex;
216
+ flex-direction: column;
217
+ gap: var(--space-sm, 0.75rem);
218
+ }
219
+ .pf-nb-plan-step {
220
+ background: var(--card);
221
+ border: 1px solid var(--border);
222
+ border-radius: var(--radius, 8px);
223
+ padding: var(--space-sm, 0.75rem) var(--space-md, 1rem);
224
+ display: flex;
225
+ flex-direction: column;
226
+ gap: var(--space-xs, 0.4rem);
227
+ }
228
+ .pf-nb-plan-step.done { opacity: 0.75; }
229
+ .pf-nb-plan-step.skipped { opacity: 0.5; }
230
+ .pf-nb-plan-step-head {
231
+ display: flex;
232
+ align-items: center;
233
+ gap: var(--space-xs, 0.4rem);
234
+ flex-wrap: wrap;
235
+ }
236
+ .pf-nb-plan-step-title { font-weight: 600; color: var(--text); }
237
+ .pf-nb-plan-tag { color: var(--success, var(--text)); font-size: 0.85em; }
238
+ .pf-nb-plan-why { font-style: italic; }
239
+ .pf-nb-plan-step-btns {
240
+ display: flex;
241
+ gap: var(--space-xs, 0.4rem);
242
+ margin-top: var(--space-xs, 0.4rem);
243
+ }
244
+ .pf-nb-enrich-preview {
245
+ border-top: 1px solid var(--border);
246
+ padding-top: var(--space-sm, 0.75rem);
247
+ }
248
+ .pf-nb-enrich-preview-body {
249
+ max-height: 24rem;
250
+ overflow: auto;
251
+ background: var(--bg-dim, var(--card));
252
+ border: 1px solid var(--border);
253
+ border-radius: var(--radius, 8px);
254
+ padding: var(--space-sm, 0.75rem) var(--space-md, 1rem);
255
+ }
256
+
257
+ /* ── Trust toggles (settings strip) ── */
258
+ .pf-nb-settings {
259
+ display: flex;
260
+ flex-wrap: wrap;
261
+ align-items: center;
262
+ gap: var(--space-sm, 0.75rem);
263
+ margin-top: var(--space-sm, 0.75rem);
264
+ }
265
+ .pf-nb-toggle {
266
+ display: inline-flex;
267
+ align-items: center;
268
+ gap: 0.3rem;
269
+ font-size: 0.85em;
270
+ color: var(--text-dim, var(--text));
271
+ cursor: pointer;
272
+ }
273
+
274
+ /* ── Distribute (chunk) panel ── */
275
+ .pf-nb-chunk-pick {
276
+ display: inline-flex;
277
+ align-items: center;
278
+ gap: 0.4rem;
279
+ cursor: pointer;
280
+ }
281
+ .pf-nb-chunk-body {
282
+ max-height: 14rem;
283
+ margin-top: var(--space-xs, 0.4rem);
284
+ }