@cellarnode/ui 0.202.0 → 0.206.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 (276) hide show
  1. package/README.md +25 -9
  2. package/dist/agent/activity-ledger.d.ts.map +1 -1
  3. package/dist/agent/activity-ledger.js +1 -1
  4. package/dist/agent/activity-ledger.js.map +1 -1
  5. package/dist/agent/composer.d.ts +64 -2
  6. package/dist/agent/composer.d.ts.map +1 -1
  7. package/dist/agent/composer.js +247 -9
  8. package/dist/agent/composer.js.map +1 -1
  9. package/dist/agent/confirm-card.d.ts.map +1 -1
  10. package/dist/agent/confirm-card.js +1 -1
  11. package/dist/agent/confirm-card.js.map +1 -1
  12. package/dist/agent/context.d.ts +94 -0
  13. package/dist/agent/context.d.ts.map +1 -0
  14. package/dist/agent/context.js +92 -0
  15. package/dist/agent/context.js.map +1 -0
  16. package/dist/agent/conversation.d.ts +41 -1
  17. package/dist/agent/conversation.d.ts.map +1 -1
  18. package/dist/agent/conversation.js +91 -6
  19. package/dist/agent/conversation.js.map +1 -1
  20. package/dist/agent/dropzone.d.ts +155 -0
  21. package/dist/agent/dropzone.d.ts.map +1 -0
  22. package/dist/agent/dropzone.js +404 -0
  23. package/dist/agent/dropzone.js.map +1 -0
  24. package/dist/agent/fixtures.d.ts.map +1 -1
  25. package/dist/agent/fixtures.js +6 -0
  26. package/dist/agent/fixtures.js.map +1 -1
  27. package/dist/agent/index.d.ts +12 -1
  28. package/dist/agent/index.d.ts.map +1 -1
  29. package/dist/agent/index.js +10 -1
  30. package/dist/agent/index.js.map +1 -1
  31. package/dist/agent/markdown.d.ts.map +1 -1
  32. package/dist/agent/markdown.js +127 -9
  33. package/dist/agent/markdown.js.map +1 -1
  34. package/dist/agent/mentions.d.ts +75 -0
  35. package/dist/agent/mentions.d.ts.map +1 -0
  36. package/dist/agent/mentions.js +184 -0
  37. package/dist/agent/mentions.js.map +1 -0
  38. package/dist/agent/message.d.ts +16 -1
  39. package/dist/agent/message.d.ts.map +1 -1
  40. package/dist/agent/message.js +26 -6
  41. package/dist/agent/message.js.map +1 -1
  42. package/dist/agent/quote-reply.d.ts +40 -0
  43. package/dist/agent/quote-reply.d.ts.map +1 -0
  44. package/dist/agent/quote-reply.js +97 -0
  45. package/dist/agent/quote-reply.js.map +1 -0
  46. package/dist/agent/role-cards/brand-profile-card.d.ts +60 -0
  47. package/dist/agent/role-cards/brand-profile-card.d.ts.map +1 -0
  48. package/dist/agent/role-cards/brand-profile-card.js +113 -0
  49. package/dist/agent/role-cards/brand-profile-card.js.map +1 -0
  50. package/dist/agent/role-cards/card-text.d.ts +10 -0
  51. package/dist/agent/role-cards/card-text.d.ts.map +1 -0
  52. package/dist/agent/role-cards/card-text.js +38 -0
  53. package/dist/agent/role-cards/card-text.js.map +1 -0
  54. package/dist/agent/role-cards/fixtures.d.ts +29 -1
  55. package/dist/agent/role-cards/fixtures.d.ts.map +1 -1
  56. package/dist/agent/role-cards/fixtures.js +210 -1
  57. package/dist/agent/role-cards/fixtures.js.map +1 -1
  58. package/dist/agent/role-cards/host-contract.d.ts +34 -4
  59. package/dist/agent/role-cards/host-contract.d.ts.map +1 -1
  60. package/dist/agent/role-cards/host-contract.js +87 -1
  61. package/dist/agent/role-cards/host-contract.js.map +1 -1
  62. package/dist/agent/role-cards/inspector-view.d.ts.map +1 -1
  63. package/dist/agent/role-cards/inspector-view.js +12 -0
  64. package/dist/agent/role-cards/inspector-view.js.map +1 -1
  65. package/dist/agent/role-cards/lab-report-card.d.ts +40 -0
  66. package/dist/agent/role-cards/lab-report-card.d.ts.map +1 -0
  67. package/dist/agent/role-cards/lab-report-card.js +58 -0
  68. package/dist/agent/role-cards/lab-report-card.js.map +1 -0
  69. package/dist/agent/role-cards/label-card.d.ts +42 -0
  70. package/dist/agent/role-cards/label-card.d.ts.map +1 -0
  71. package/dist/agent/role-cards/label-card.js +65 -0
  72. package/dist/agent/role-cards/label-card.js.map +1 -0
  73. package/dist/agent/role-cards/org-card.d.ts +20 -0
  74. package/dist/agent/role-cards/org-card.d.ts.map +1 -0
  75. package/dist/agent/role-cards/org-card.js +37 -0
  76. package/dist/agent/role-cards/org-card.js.map +1 -0
  77. package/dist/agent/role-cards/registry.d.ts +13 -1
  78. package/dist/agent/role-cards/registry.d.ts.map +1 -1
  79. package/dist/agent/role-cards/registry.js +33 -0
  80. package/dist/agent/role-cards/registry.js.map +1 -1
  81. package/dist/agent/role-cards/schedule-card.d.ts +30 -0
  82. package/dist/agent/role-cards/schedule-card.d.ts.map +1 -0
  83. package/dist/agent/role-cards/schedule-card.js +58 -0
  84. package/dist/agent/role-cards/schedule-card.js.map +1 -0
  85. package/dist/agent/role-cards/stats-card.d.ts +30 -0
  86. package/dist/agent/role-cards/stats-card.d.ts.map +1 -0
  87. package/dist/agent/role-cards/stats-card.js +31 -0
  88. package/dist/agent/role-cards/stats-card.js.map +1 -0
  89. package/dist/agent/role-cards/text-safety.d.ts +3 -0
  90. package/dist/agent/role-cards/text-safety.d.ts.map +1 -1
  91. package/dist/agent/role-cards/text-safety.js +16 -0
  92. package/dist/agent/role-cards/text-safety.js.map +1 -1
  93. package/dist/agent/schema.d.ts +21 -0
  94. package/dist/agent/schema.d.ts.map +1 -1
  95. package/dist/agent/schema.js +22 -1
  96. package/dist/agent/schema.js.map +1 -1
  97. package/dist/agent/suggestions.d.ts +66 -0
  98. package/dist/agent/suggestions.d.ts.map +1 -0
  99. package/dist/agent/suggestions.js +186 -0
  100. package/dist/agent/suggestions.js.map +1 -0
  101. package/dist/agent/text-clean.d.ts +12 -0
  102. package/dist/agent/text-clean.d.ts.map +1 -0
  103. package/dist/agent/text-clean.js +55 -0
  104. package/dist/agent/text-clean.js.map +1 -0
  105. package/dist/agent/thread-list.d.ts +16 -4
  106. package/dist/agent/thread-list.d.ts.map +1 -1
  107. package/dist/agent/thread-list.js +43 -26
  108. package/dist/agent/thread-list.js.map +1 -1
  109. package/dist/agent/thread-title.d.ts +46 -0
  110. package/dist/agent/thread-title.d.ts.map +1 -0
  111. package/dist/agent/thread-title.js +99 -0
  112. package/dist/agent/thread-title.js.map +1 -0
  113. package/dist/agent/tool-activity-model.d.ts +4 -0
  114. package/dist/agent/tool-activity-model.d.ts.map +1 -1
  115. package/dist/agent/tool-activity-model.js +7 -0
  116. package/dist/agent/tool-activity-model.js.map +1 -1
  117. package/dist/agent/tool-activity.d.ts +6 -0
  118. package/dist/agent/tool-activity.d.ts.map +1 -1
  119. package/dist/agent/tool-activity.js +51 -9
  120. package/dist/agent/tool-activity.js.map +1 -1
  121. package/dist/agent/tool-call-card.d.ts +2 -0
  122. package/dist/agent/tool-call-card.d.ts.map +1 -1
  123. package/dist/agent/tool-call-card.js +13 -3
  124. package/dist/agent/tool-call-card.js.map +1 -1
  125. package/dist/agent/ui.d.ts +7 -0
  126. package/dist/agent/ui.d.ts.map +1 -1
  127. package/dist/agent/ui.js +7 -0
  128. package/dist/agent/ui.js.map +1 -1
  129. package/dist/animated-icons/download-icon.d.ts.map +1 -1
  130. package/dist/animated-icons/download-icon.js +6 -1
  131. package/dist/animated-icons/download-icon.js.map +1 -1
  132. package/dist/animated-icons/filter-icon.d.ts.map +1 -1
  133. package/dist/animated-icons/filter-icon.js +6 -1
  134. package/dist/animated-icons/filter-icon.js.map +1 -1
  135. package/dist/animated-icons/upload-icon.d.ts.map +1 -1
  136. package/dist/animated-icons/upload-icon.js +6 -1
  137. package/dist/animated-icons/upload-icon.js.map +1 -1
  138. package/dist/brand/brand-image-source-picker.d.ts.map +1 -1
  139. package/dist/brand/brand-image-source-picker.js +9 -6
  140. package/dist/brand/brand-image-source-picker.js.map +1 -1
  141. package/dist/brand/brand-profile-form-values.d.ts +2 -2
  142. package/dist/chat/chat-surface.d.ts +16 -1
  143. package/dist/chat/chat-surface.d.ts.map +1 -1
  144. package/dist/chat/chat-surface.js +18 -16
  145. package/dist/chat/chat-surface.js.map +1 -1
  146. package/dist/chat/chat-toggle-button.d.ts.map +1 -1
  147. package/dist/chat/chat-toggle-button.js +11 -5
  148. package/dist/chat/chat-toggle-button.js.map +1 -1
  149. package/dist/chat/index.d.ts +1 -1
  150. package/dist/chat/index.d.ts.map +1 -1
  151. package/dist/chat/index.js.map +1 -1
  152. package/dist/components/bottle-extract-dialog.js +1 -1
  153. package/dist/components/bottle-extract-dialog.js.map +1 -1
  154. package/dist/components/branch-overview-panel.d.ts.map +1 -1
  155. package/dist/components/branch-overview-panel.js +8 -4
  156. package/dist/components/branch-overview-panel.js.map +1 -1
  157. package/dist/components/branch-resolution-modal.js +1 -1
  158. package/dist/components/branch-resolution-modal.js.map +1 -1
  159. package/dist/components/card-stack.d.ts.map +1 -1
  160. package/dist/components/card-stack.js +9 -1
  161. package/dist/components/card-stack.js.map +1 -1
  162. package/dist/components/copy-button.d.ts.map +1 -1
  163. package/dist/components/copy-button.js +15 -4
  164. package/dist/components/copy-button.js.map +1 -1
  165. package/dist/components/listbox.d.ts.map +1 -1
  166. package/dist/components/listbox.js +5 -1
  167. package/dist/components/listbox.js.map +1 -1
  168. package/dist/components/metric-card.d.ts +1 -1
  169. package/dist/components/metric-card.d.ts.map +1 -1
  170. package/dist/components/metric-card.js +2 -2
  171. package/dist/components/metric-card.js.map +1 -1
  172. package/dist/components/shadcn-button.d.ts +1 -1
  173. package/dist/components/sidebar/sidebar-menu.d.ts +1 -1
  174. package/dist/components/toast.d.ts.map +1 -1
  175. package/dist/components/toast.js +1 -1
  176. package/dist/components/toast.js.map +1 -1
  177. package/dist/discovery/command-palette-trigger.d.ts.map +1 -1
  178. package/dist/discovery/command-palette-trigger.js +2 -2
  179. package/dist/discovery/command-palette-trigger.js.map +1 -1
  180. package/dist/globe/globe-scene-camera.d.ts.map +1 -1
  181. package/dist/globe/globe-scene-camera.js +5 -2
  182. package/dist/globe/globe-scene-camera.js.map +1 -1
  183. package/dist/lab-reports/upload-lab-report-dialog.d.ts.map +1 -1
  184. package/dist/lab-reports/upload-lab-report-dialog.js +3 -3
  185. package/dist/lab-reports/upload-lab-report-dialog.js.map +1 -1
  186. package/dist/mcp-connect/clients.d.ts +4 -2
  187. package/dist/mcp-connect/clients.d.ts.map +1 -1
  188. package/dist/mcp-connect/clients.js +5 -3
  189. package/dist/mcp-connect/clients.js.map +1 -1
  190. package/dist/mcp-connect/mcp-connect-panel.js +1 -1
  191. package/dist/mcp-connect/mcp-connect-panel.js.map +1 -1
  192. package/dist/nav/app-sidebar.d.ts +5 -0
  193. package/dist/nav/app-sidebar.d.ts.map +1 -1
  194. package/dist/nav/app-sidebar.js +5 -3
  195. package/dist/nav/app-sidebar.js.map +1 -1
  196. package/dist/nav/sidebar-footer.d.ts +3 -1
  197. package/dist/nav/sidebar-footer.d.ts.map +1 -1
  198. package/dist/nav/sidebar-footer.js +5 -3
  199. package/dist/nav/sidebar-footer.js.map +1 -1
  200. package/dist/notifications/index.d.ts +1 -1
  201. package/dist/notifications/index.d.ts.map +1 -1
  202. package/dist/notifications/index.js +1 -1
  203. package/dist/notifications/index.js.map +1 -1
  204. package/dist/notifications/notification-badge.d.ts +2 -0
  205. package/dist/notifications/notification-badge.d.ts.map +1 -1
  206. package/dist/notifications/notification-badge.js +9 -2
  207. package/dist/notifications/notification-badge.js.map +1 -1
  208. package/dist/notifications/notification-tray.d.ts.map +1 -1
  209. package/dist/notifications/notification-tray.js +12 -2
  210. package/dist/notifications/notification-tray.js.map +1 -1
  211. package/dist/offer/negotiation-labels.d.ts +5 -1
  212. package/dist/offer/negotiation-labels.d.ts.map +1 -1
  213. package/dist/offer/negotiation-labels.js +1 -1
  214. package/dist/offer/negotiation-labels.js.map +1 -1
  215. package/dist/offer/new-activity-pill.js +1 -1
  216. package/dist/offer/new-activity-pill.js.map +1 -1
  217. package/dist/opportunities/index.d.ts +1 -1
  218. package/dist/opportunities/index.d.ts.map +1 -1
  219. package/dist/opportunities/index.js.map +1 -1
  220. package/dist/opportunities/opportunity-add-to-journey-button.d.ts.map +1 -1
  221. package/dist/opportunities/opportunity-add-to-journey-button.js +17 -3
  222. package/dist/opportunities/opportunity-add-to-journey-button.js.map +1 -1
  223. package/dist/opportunities/opportunity-filter-bar.d.ts.map +1 -1
  224. package/dist/opportunities/opportunity-filter-bar.js +7 -1
  225. package/dist/opportunities/opportunity-filter-bar.js.map +1 -1
  226. package/dist/opportunities/wizard/wizard-stepper.d.ts +15 -0
  227. package/dist/opportunities/wizard/wizard-stepper.d.ts.map +1 -1
  228. package/dist/opportunities/wizard/wizard-stepper.js +17 -8
  229. package/dist/opportunities/wizard/wizard-stepper.js.map +1 -1
  230. package/dist/org/invite-member-dialog.d.ts.map +1 -1
  231. package/dist/org/invite-member-dialog.js +12 -1
  232. package/dist/org/invite-member-dialog.js.map +1 -1
  233. package/dist/portfolio/version-rail.d.ts.map +1 -1
  234. package/dist/portfolio/version-rail.js +1 -1
  235. package/dist/portfolio/version-rail.js.map +1 -1
  236. package/dist/portfolio-import/import-job-detail-view.d.ts.map +1 -1
  237. package/dist/portfolio-import/import-job-detail-view.js +12 -1
  238. package/dist/portfolio-import/import-job-detail-view.js.map +1 -1
  239. package/dist/portfolio-import/import-job-panels.d.ts.map +1 -1
  240. package/dist/portfolio-import/import-job-panels.js +13 -2
  241. package/dist/portfolio-import/import-job-panels.js.map +1 -1
  242. package/dist/portfolio-import/import-products-dialog.d.ts.map +1 -1
  243. package/dist/portfolio-import/import-products-dialog.js +5 -2
  244. package/dist/portfolio-import/import-products-dialog.js.map +1 -1
  245. package/dist/profile/api-keys/backend-as-metadata.fixture.d.ts +9 -0
  246. package/dist/profile/api-keys/backend-as-metadata.fixture.d.ts.map +1 -0
  247. package/dist/profile/api-keys/backend-as-metadata.fixture.js +42 -0
  248. package/dist/profile/api-keys/backend-as-metadata.fixture.js.map +1 -0
  249. package/dist/profile/api-keys/connected-apps-card.d.ts +2 -2
  250. package/dist/profile/api-keys/connected-apps-card.d.ts.map +1 -1
  251. package/dist/profile/api-keys/connected-apps-card.js +7 -3
  252. package/dist/profile/api-keys/connected-apps-card.js.map +1 -1
  253. package/dist/profile/api-keys/create-api-key-dialog.js +2 -2
  254. package/dist/profile/api-keys/create-api-key-dialog.js.map +1 -1
  255. package/dist/profile/api-keys/index.d.ts +2 -1
  256. package/dist/profile/api-keys/index.d.ts.map +1 -1
  257. package/dist/profile/api-keys/index.js +2 -1
  258. package/dist/profile/api-keys/index.js.map +1 -1
  259. package/dist/profile/api-keys/oauth-scopes.d.ts +8 -0
  260. package/dist/profile/api-keys/oauth-scopes.d.ts.map +1 -0
  261. package/dist/profile/api-keys/oauth-scopes.js +41 -0
  262. package/dist/profile/api-keys/oauth-scopes.js.map +1 -0
  263. package/dist/profile/api-keys/profile-keys-section.d.ts +6 -1
  264. package/dist/profile/api-keys/profile-keys-section.d.ts.map +1 -1
  265. package/dist/profile/api-keys/profile-keys-section.js +17 -2
  266. package/dist/profile/api-keys/profile-keys-section.js.map +1 -1
  267. package/dist/profile/api-keys/scope-list.d.ts +6 -1
  268. package/dist/profile/api-keys/scope-list.d.ts.map +1 -1
  269. package/dist/profile/api-keys/scope-list.js +10 -3
  270. package/dist/profile/api-keys/scope-list.js.map +1 -1
  271. package/dist/profile/api-keys/types.d.ts +14 -0
  272. package/dist/profile/api-keys/types.d.ts.map +1 -1
  273. package/dist/profile/api-keys/types.js +21 -0
  274. package/dist/profile/api-keys/types.js.map +1 -1
  275. package/dist/realtime/organisation-events/schemas.d.ts +2 -2
  276. package/package.json +7 -2
@@ -1,9 +1,15 @@
1
1
  import { type ReactNode } from "react";
2
2
  import { type AgentDataTableCardCopy, type AgentDataTableCardProps } from "./data-table-card.js";
3
+ import { type AgentBrandProfileCardCopy } from "./brand-profile-card.js";
4
+ import { type AgentLabelCardCopy } from "./label-card.js";
5
+ import { type AgentLabReportCardCopy } from "./lab-report-card.js";
6
+ import { type AgentOrgCardCopy } from "./org-card.js";
7
+ import { type AgentStatsCardCopy } from "./stats-card.js";
3
8
  import { type AgentMatchCardCopy } from "./match-card.js";
4
9
  import { type AgentOfferCardCopy } from "./offer-card.js";
5
10
  import { type AgentOpportunityCardCopy } from "./opportunity-card.js";
6
11
  import { type AgentProductCardCopy } from "./product-card.js";
12
+ import { type AgentScheduleCardCopy } from "./schedule-card.js";
7
13
  import type { AgentRoleCardHostProps } from "./card-kit.js";
8
14
  import { ROLE_AGENT_CARD_TYPES, type RoleAgentCardType } from "./host-contract.js";
9
15
  export { ROLE_AGENT_CARD_TYPES, type RoleAgentCardType };
@@ -13,6 +19,12 @@ export interface RoleAgentCardCopy {
13
19
  product?: Partial<AgentProductCardCopy>;
14
20
  opportunity?: Partial<AgentOpportunityCardCopy>;
15
21
  match?: Partial<AgentMatchCardCopy>;
22
+ schedule?: Partial<AgentScheduleCardCopy>;
23
+ label?: Partial<AgentLabelCardCopy>;
24
+ stats?: Partial<AgentStatsCardCopy>;
25
+ brandProfile?: Partial<AgentBrandProfileCardCopy>;
26
+ labReport?: Partial<AgentLabReportCardCopy>;
27
+ org?: Partial<AgentOrgCardCopy>;
16
28
  dataTable?: Partial<AgentDataTableCardCopy>;
17
29
  }
18
30
  /**
@@ -29,7 +41,7 @@ export interface RenderRoleAgentCardOptions extends AgentRoleCardHostProps {
29
41
  columnLabels?: AgentDataTableCardProps["columnLabels"];
30
42
  /** `DataTable` only: the host's display text for a cell (a date, a currency), or `undefined` for the default. */
31
43
  formatCell?: AgentDataTableCardProps["formatCell"];
32
- /** `DataTable` only: a BCP 47 tag for the numbers in cells. */
44
+ /** `DataTable` numbers and `ScheduleCard` next-run time: a BCP 47 tag. */
33
45
  locale?: AgentDataTableCardProps["locale"];
34
46
  }
35
47
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/agent/role-cards/registry.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAwB,KAAK,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACzF,OAAO,EAAoB,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAgB,qBAAqB,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE9F,OAAO,EAAE,qBAAqB,EAAE,KAAK,iBAAiB,EAAE,CAAC;AAEzD,gHAAgH;AAChH,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACxC,WAAW,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAChD,KAAK,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;CAC7C;AAED;;;;GAIG;AACH,MAAM,WAAW,0BAA2B,SAAQ,sBAAsB;IACxE,gEAAgE;IAChE,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,sGAAsG;IACtG,iBAAiB,CAAC,EAAE,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;IACjE,mEAAmE;IACnE,YAAY,CAAC,EAAE,uBAAuB,CAAC,cAAc,CAAC,CAAC;IACvD,iHAAiH;IACjH,UAAU,CAAC,EAAE,uBAAuB,CAAC,YAAY,CAAC,CAAC;IACnD,+DAA+D;IAC/D,MAAM,CAAC,EAAE,uBAAuB,CAAC,QAAQ,CAAC,CAAC;CAC5C;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,EACb,OAAO,GAAE,0BAA+B,GACvC,SAAS,CA4BX"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/agent/role-cards/registry.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAyB,KAAK,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAC7F,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAsB,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAwB,KAAK,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACzF,OAAO,EAAoB,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAqB,KAAK,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAgB,qBAAqB,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE9F,OAAO,EAAE,qBAAqB,EAAE,KAAK,iBAAiB,EAAE,CAAC;AAEzD,gHAAgH;AAChH,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACxC,WAAW,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAChD,KAAK,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpC,YAAY,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAClD,SAAS,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC5C,GAAG,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;CAC7C;AAED;;;;GAIG;AACH,MAAM,WAAW,0BAA2B,SAAQ,sBAAsB;IACxE,gEAAgE;IAChE,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,sGAAsG;IACtG,iBAAiB,CAAC,EAAE,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;IACjE,mEAAmE;IACnE,YAAY,CAAC,EAAE,uBAAuB,CAAC,cAAc,CAAC,CAAC;IACvD,iHAAiH;IACjH,UAAU,CAAC,EAAE,uBAAuB,CAAC,YAAY,CAAC,CAAC;IACnD,0EAA0E;IAC1E,MAAM,CAAC,EAAE,uBAAuB,CAAC,QAAQ,CAAC,CAAC;CAC5C;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,EACb,OAAO,GAAE,0BAA+B,GACvC,SAAS,CAuDX"}
@@ -1,9 +1,15 @@
1
1
  import { createElement } from "react";
2
2
  import { AgentDataTableCard, } from "./data-table-card.js";
3
+ import { AgentBrandProfileCard } from "./brand-profile-card.js";
4
+ import { AgentLabelCard } from "./label-card.js";
5
+ import { AgentLabReportCard } from "./lab-report-card.js";
6
+ import { AgentOrgCard } from "./org-card.js";
7
+ import { AgentStatsCard } from "./stats-card.js";
3
8
  import { AgentMatchCard } from "./match-card.js";
4
9
  import { AgentOfferCard } from "./offer-card.js";
5
10
  import { AgentOpportunityCard } from "./opportunity-card.js";
6
11
  import { AgentProductCard } from "./product-card.js";
12
+ import { AgentScheduleCard } from "./schedule-card.js";
7
13
  import { readRoleCard, ROLE_AGENT_CARD_TYPES } from "./host-contract.js";
8
14
  export { ROLE_AGENT_CARD_TYPES };
9
15
  /**
@@ -31,6 +37,33 @@ export function renderRoleAgentCard(cardType, data, options = {}) {
31
37
  });
32
38
  case "MatchCard":
33
39
  return createElement(AgentMatchCard, { ...host, copy: copy?.match, data: card.data });
40
+ case "ScheduleCard":
41
+ return createElement(AgentScheduleCard, {
42
+ ...host,
43
+ copy: copy?.schedule,
44
+ locale,
45
+ data: card.data,
46
+ });
47
+ case "LabelCard":
48
+ return createElement(AgentLabelCard, { ...host, copy: copy?.label, locale, data: card.data });
49
+ case "StatsCard":
50
+ return createElement(AgentStatsCard, { ...host, copy: copy?.stats, locale, data: card.data });
51
+ case "BrandProfileCard":
52
+ return createElement(AgentBrandProfileCard, {
53
+ ...host,
54
+ copy: copy?.brandProfile,
55
+ locale,
56
+ data: card.data,
57
+ });
58
+ case "LabReportCard":
59
+ return createElement(AgentLabReportCard, {
60
+ ...host,
61
+ copy: copy?.labReport,
62
+ locale,
63
+ data: card.data,
64
+ });
65
+ case "OrgCard":
66
+ return createElement(AgentOrgCard, { ...host, copy: copy?.org, data: card.data });
34
67
  case "DataTable":
35
68
  return createElement(AgentDataTableCard, {
36
69
  ...host,
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/agent/role-cards/registry.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,OAAO,CAAC;AACtD,OAAO,EACL,kBAAkB,GAGnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAA2B,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,cAAc,EAA2B,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAiC,MAAM,oBAAoB,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAA6B,MAAM,gBAAgB,CAAC;AAE7E,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAA0B,MAAM,iBAAiB,CAAC;AAE9F,OAAO,EAAE,qBAAqB,EAA0B,CAAC;AA6BzD;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAgB,EAChB,IAAa,EACb,UAAsC,EAAE;IAExC,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IACvF,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtB,KAAK,WAAW;YACd,OAAO,aAAa,CAAC,cAAc,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACxF,KAAK,aAAa;YAChB,OAAO,aAAa,CAAC,gBAAgB,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5F,KAAK,iBAAiB;YACpB,OAAO,aAAa,CAAC,oBAAoB,EAAE;gBACzC,GAAG,IAAI;gBACP,IAAI,EAAE,IAAI,EAAE,WAAW;gBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC,CAAC;QACL,KAAK,WAAW;YACd,OAAO,aAAa,CAAC,cAAc,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACxF,KAAK,WAAW;YACd,OAAO,aAAa,CAAC,kBAAkB,EAAE;gBACvC,GAAG,IAAI;gBACP,IAAI,EAAE,IAAI,EAAE,SAAS;gBACrB,iBAAiB;gBACjB,YAAY;gBACZ,UAAU;gBACV,MAAM;gBACN,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC,CAAC;IACP,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/agent/role-cards/registry.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { ScheduleCardData } from "@cellarnode/agent-cards/zod4";
2
+ import { type AgentRoleCardHostProps } from "./card-kit.js";
3
+ export interface AgentScheduleCardCopy {
4
+ title: string;
5
+ active: string;
6
+ paused: string;
7
+ ownership: string;
8
+ canonical: string;
9
+ operator: string;
10
+ cron: string;
11
+ nextRun: string;
12
+ inSync: string;
13
+ drifted: string;
14
+ driftNotReported: string;
15
+ driftIn: string;
16
+ notDescribed: string;
17
+ }
18
+ export interface AgentScheduleCardProps extends AgentRoleCardHostProps {
19
+ data: ScheduleCardData;
20
+ copy?: Partial<AgentScheduleCardCopy>;
21
+ /** A BCP 47 tag for the next-run time. Defaults to the runtime locale. */
22
+ locale?: string;
23
+ }
24
+ /**
25
+ * @internal Read card for one Temporal schedule (CEL-2536), role-agnostic: the id, who owns the definition, paused or active,
26
+ * the cron, the next run and the drift verdict. A schedule whose live describe failed (`described: false`) says so instead of
27
+ * showing a drift verdict: "not checked" is never drawn as "in sync".
28
+ */
29
+ export declare function AgentScheduleCard({ data, copy, locale, ...host }: AgentScheduleCardProps): import("react/jsx-runtime").JSX.Element | null;
30
+ //# sourceMappingURL=schedule-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule-card.d.ts","sourceRoot":"","sources":["../../../src/agent/role-cards/schedule-card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAEL,KAAK,sBAAsB,EAM5B,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAiBD,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB;IACpE,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACtC,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AASD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,sBAAsB,kDA2DxF"}
@@ -0,0 +1,58 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { fmt, useCopy } from "../copy.js";
3
+ import { AgentCardExtras, AgentCardFrame, AgentCardLink, AgentChip, AgentField, AgentFieldGrid, } from "./card-kit.js";
4
+ import { detailAgrees } from "./host-contract.js";
5
+ import { cleanInline } from "./text-safety.js";
6
+ const DEFAULT_COPY = {
7
+ title: "Schedule",
8
+ active: "Active",
9
+ paused: "Paused",
10
+ ownership: "Ownership",
11
+ canonical: "Canonical",
12
+ operator: "Operator",
13
+ cron: "Timing",
14
+ nextRun: "Next run",
15
+ inSync: "In sync",
16
+ drifted: "Drifted",
17
+ driftNotReported: "Drift not reported",
18
+ driftIn: "Differs from the stored definition in: {fields}",
19
+ notDescribed: "Live details unavailable, drift not checked",
20
+ };
21
+ /** The next run as an unambiguous UTC time, or the raw text when the agent sent something that is not a date. */
22
+ function formatNextRun(value, locale) {
23
+ const at = new Date(value);
24
+ if (Number.isNaN(at.getTime()))
25
+ return cleanInline(value, 60) ?? "";
26
+ return `${new Intl.DateTimeFormat(locale, { dateStyle: "medium", timeStyle: "short", timeZone: "UTC" }).format(at)} UTC`;
27
+ }
28
+ /**
29
+ * @internal Read card for one Temporal schedule (CEL-2536), role-agnostic: the id, who owns the definition, paused or active,
30
+ * the cron, the next run and the drift verdict. A schedule whose live describe failed (`described: false`) says so instead of
31
+ * showing a drift verdict: "not checked" is never drawn as "in sync".
32
+ */
33
+ export function AgentScheduleCard({ data, copy, locale, ...host }) {
34
+ const { allowLink, renderLink, maskedCopy } = host;
35
+ const c = useCopy(DEFAULT_COPY, copy);
36
+ // A schedule is not a record the inspector can open, so a `detail` pointer is a steered or broken card: refuse it.
37
+ if (!detailAgrees("ScheduleCard", data))
38
+ return null;
39
+ // The id, owner and summary come from the agent's data: strip bidi and control characters before they are drawn.
40
+ const scheduleId = cleanInline(data.scheduleId, 200) ?? "";
41
+ const driftSummary = cleanInline(data.driftSummary, 300);
42
+ const timing = cleanInline(data.cron, 200);
43
+ const ownership = data.ownership === "canonical"
44
+ ? c.canonical
45
+ : data.ownership === "operator"
46
+ ? c.operator
47
+ : cleanInline(data.ownership, 40);
48
+ // "In sync" is a claim: only an explicit `drift: false` earns it. A described schedule with no drift field has no verdict.
49
+ const verdict = !data.described
50
+ ? null
51
+ : data.drift === true
52
+ ? { tone: "warning", text: c.drifted }
53
+ : data.drift === false
54
+ ? { tone: "success", text: c.inSync }
55
+ : { tone: "neutral", text: c.driftNotReported };
56
+ return (_jsxs(AgentCardFrame, { eyebrow: c.title, title: _jsx(AgentCardLink, { path: data.link, allowLink: allowLink, renderLink: renderLink, children: _jsx("span", { className: "font-mono text-sm/5 break-all", children: scheduleId }) }), badge: _jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [_jsx(AgentChip, { tone: data.paused ? "warning" : "success", children: data.paused ? c.paused : c.active }), verdict && _jsx(AgentChip, { tone: verdict.tone, children: verdict.text })] }), children: [_jsxs(AgentFieldGrid, { children: [_jsx(AgentField, { label: c.ownership, value: ownership, maskedCopy: maskedCopy }), _jsx(AgentField, { label: c.cron, value: timing, maskedCopy: maskedCopy }), _jsx(AgentField, { label: c.nextRun, value: data.nextRun ? formatNextRun(data.nextRun, locale) : undefined, maskedCopy: maskedCopy })] }), !data.described ? (_jsx("p", { className: "text-xs/4 text-muted-foreground", children: c.notDescribed })) : data.drift === true && driftSummary ? (_jsx("p", { className: "text-xs/4 text-muted-foreground", children: fmt(c.driftIn, { fields: driftSummary }) })) : null, _jsx(AgentCardExtras, { data: data, subject: undefined, host: host })] }));
57
+ }
58
+ //# sourceMappingURL=schedule-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule-card.js","sourceRoot":"","sources":["../../../src/agent/role-cards/schedule-card.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { StatsCardData } from "@cellarnode/agent-cards/zod4";
2
+ import { type AgentRoleCardHostProps } from "./card-kit.js";
3
+ export interface AgentStatsCardCopy {
4
+ title: string;
5
+ producer: string;
6
+ importer: string;
7
+ /** `{period}` is the period the figures cover ("30d"). */
8
+ period: string;
9
+ /** `{previous}` is the previous period's value. */
10
+ previous: string;
11
+ /** `{delta}` is the signed difference to the previous period. */
12
+ changed: string;
13
+ noChange: string;
14
+ /** Between the change and the previous value. */
15
+ separator: string;
16
+ /** Tile labels by the tile's id, for a host that translates them (the labels the tool sends are English). */
17
+ statLabels: Record<string, string>;
18
+ }
19
+ export interface AgentStatsCardProps extends AgentRoleCardHostProps {
20
+ data: StatsCardData;
21
+ copy?: Partial<AgentStatsCardCopy>;
22
+ /** A BCP 47 tag for the numbers. */
23
+ locale?: string;
24
+ }
25
+ /**
26
+ * @internal Read card for a set of dashboard figures (CEL-2560): one tile per figure, the value large and the previous period
27
+ * beside it in words. A change is never colour alone: the signed number is text.
28
+ */
29
+ export declare function AgentStatsCard({ data, copy, locale, ...host }: AgentStatsCardProps): import("react/jsx-runtime").JSX.Element;
30
+ //# sourceMappingURL=stats-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats-card.d.ts","sourceRoot":"","sources":["../../../src/agent/role-cards/stats-card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE,OAAO,EAKL,KAAK,sBAAsB,EAC5B,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,6GAA6G;IAC7G,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;AAaD,MAAM,WAAW,mBAAoB,SAAQ,sBAAsB;IACjE,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACnC,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,mBAAmB,2CAiDlF"}
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { fmt, useCopy } from "../copy.js";
3
+ import { AgentCardExtras, AgentCardFrame, AgentCardLink, AgentChip, } from "./card-kit.js";
4
+ import { cleanInline } from "./text-safety.js";
5
+ const DEFAULT_COPY = {
6
+ title: "Overview",
7
+ producer: "Producer",
8
+ importer: "Importer",
9
+ period: "Last {period}",
10
+ previous: "was {previous}",
11
+ changed: "{delta} vs before",
12
+ noChange: "no change",
13
+ separator: " / ",
14
+ statLabels: {},
15
+ };
16
+ /**
17
+ * @internal Read card for a set of dashboard figures (CEL-2560): one tile per figure, the value large and the previous period
18
+ * beside it in words. A change is never colour alone: the signed number is text.
19
+ */
20
+ export function AgentStatsCard({ data, copy, locale, ...host }) {
21
+ const { allowLink, renderLink } = host;
22
+ const c = useCopy(DEFAULT_COPY, copy);
23
+ const num = new Intl.NumberFormat(locale);
24
+ const signed = new Intl.NumberFormat(locale, { signDisplay: "exceptZero" });
25
+ const title = cleanInline(data.title, 80) ?? c.title;
26
+ return (_jsxs(AgentCardFrame, { title: _jsx(AgentCardLink, { path: data.link, allowLink: allowLink, renderLink: renderLink, children: title }), badge: _jsxs("span", { className: "flex flex-wrap gap-2", children: [data.role && _jsx(AgentChip, { tone: "brand", children: c[data.role] }), data.period && (_jsx(AgentChip, { children: fmt(c.period, { period: cleanInline(data.period, 20) ?? "" }) }))] }), children: [_jsx("dl", { className: "grid grid-cols-2 gap-2 @sm:grid-cols-3", children: data.stats.map((s) => {
27
+ const delta = s.previous === undefined || s.previous === null ? undefined : s.value - s.previous;
28
+ return (_jsxs("div", { className: "flex min-w-0 flex-col gap-0.5 rounded-xl bg-muted/50 p-3", children: [_jsx("dt", { className: "text-xs/4 text-muted-foreground", children: Object.hasOwn(c.statLabels, s.id) ? c.statLabels[s.id] : cleanInline(s.label, 80) }), _jsx("dd", { className: "text-xl/7 font-semibold tabular-nums", children: num.format(s.value) }), delta !== undefined && s.previous !== undefined && s.previous !== null && (_jsxs("dd", { className: "text-xs/4 text-muted-foreground", children: [delta === 0 ? c.noChange : fmt(c.changed, { delta: signed.format(delta) }), c.separator, fmt(c.previous, { previous: num.format(s.previous) })] })), s.change && (_jsx("dd", { className: "text-xs/4 text-muted-foreground", children: cleanInline(s.change, 120) }))] }, s.id));
29
+ }) }), _jsx(AgentCardExtras, { data: data, subject: undefined, host: host })] }));
30
+ }
31
+ //# sourceMappingURL=stats-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats-card.js","sourceRoot":"","sources":["../../../src/agent/role-cards/stats-card.tsx"],"names":[],"mappings":"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"}
@@ -10,6 +10,9 @@
10
10
  * (U+FFF9-FFFB), the BOM, and the invisible "tag" characters (U+E0000-E007F) that can carry a hidden message through a copy and paste.
11
11
  */
12
12
  export declare const isUnsafeChar: (code: number) => boolean;
13
+ /** `text` without its bidirectional controls (see above). Nothing else is touched: a joiner inside an emoji or a Persian word stays. */
14
+ export declare const stripBidi: (text: string) => string;
15
+ export declare const stripBidiRuns: (text: string) => string;
13
16
  /** Every unsafe character becomes a space (so nothing is silently joined into a different word). Walks by code point. */
14
17
  export declare function replaceUnsafe(raw: string): string;
15
18
  /** The first `max` code points of `text`, never splitting a surrogate pair; `ellipsis` marks a cut. Linear in `max`, not in the text. */
@@ -1 +1 @@
1
- {"version":3,"file":"text-safety.d.ts","sourceRoot":"","sources":["../../../src/agent/role-cards/text-safety.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,OAWN,CAAC;AAEvC,yHAAyH;AACzH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,yIAAyI;AACzI,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,UAAQ,GAAG,MAAM,CAWlF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,UAAQ,GAAG,MAAM,GAAG,SAAS,CAO3F;AAED,wGAAwG;AACxG,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAG3D"}
1
+ {"version":3,"file":"text-safety.d.ts","sourceRoot":"","sources":["../../../src/agent/role-cards/text-safety.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,OAWN,CAAC;AAUvC,wIAAwI;AACxI,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,KAAG,MAAyC,CAAC;AAQnF,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,MAA6C,CAAC;AAE3F,yHAAyH;AACzH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,yIAAyI;AACzI,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,UAAQ,GAAG,MAAM,CAWlF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,UAAQ,GAAG,MAAM,GAAG,SAAS,CAO3F;AAED,wGAAwG;AACxG,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAG3D"}
@@ -20,6 +20,22 @@ export const isUnsafeChar = (code) => code < 32 ||
20
20
  code === 0xfeff ||
21
21
  (code >= 0xfff9 && code <= 0xfffb) ||
22
22
  (code >= 0xe0000 && code <= 0xe007f);
23
+ /**
24
+ * Bidirectional controls: the Arabic letter mark (U+061C), the left-to-right and right-to-left marks (U+200E, U+200F), the
25
+ * embeddings and overrides (U+202A-202E) and the isolates (U+2066-2069). One of these in a label can reverse or reorder it, and
26
+ * an override left open (U+202E) carries on into whatever is drawn after it, so a label shown beside text of the lib's own
27
+ * (a link's host) is stripped of them.
28
+ */
29
+ const BIDI_CONTROLS = /[\u061C\u200E\u200F\u202A-\u202E\u2066-\u2069]/g;
30
+ /** `text` without its bidirectional controls (see above). Nothing else is touched: a joiner inside an emoji or a Persian word stays. */
31
+ export const stripBidi = (text) => text.replace(BIDI_CONTROLS, "");
32
+ /**
33
+ * The embeddings, overrides and isolates only (U+202A to U+202E, U+2066 to U+2069): the controls that open a run whose direction
34
+ * outlasts the character, so one in plain text can reorder everything drawn after it. The marks (U+200E, U+200F, U+061C) are
35
+ * weak: they cannot reorder a run, and right-to-left prose needs them, so a paragraph keeps them.
36
+ */
37
+ const BIDI_RUN_CONTROLS = /[\u202A-\u202E\u2066-\u2069]/g;
38
+ export const stripBidiRuns = (text) => text.replace(BIDI_RUN_CONTROLS, "");
23
39
  /** Every unsafe character becomes a space (so nothing is silently joined into a different word). Walks by code point. */
24
40
  export function replaceUnsafe(raw) {
25
41
  return Array.from(raw, (ch) => (isUnsafeChar(ch.codePointAt(0) ?? 0) ? " " : ch)).join("");
@@ -1 +1 @@
1
- {"version":3,"file":"text-safety.js","sourceRoot":"","sources":["../../../src/agent/role-cards/text-safety.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAW,EAAE,CACpD,IAAI,GAAG,EAAE;IACT,IAAI,KAAK,GAAG;IACZ,IAAI,KAAK,MAAM;IACf,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC;IAClC,IAAI,KAAK,MAAM;IACf,IAAI,KAAK,MAAM;IACf,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC;IAClC,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC;IAClC,IAAI,KAAK,MAAM;IACf,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC;IAClC,CAAC,IAAI,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC;AAEvC,yHAAyH;AACzH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7F,CAAC;AAED,yIAAyI;AACzI,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,GAAW,EAAE,QAAQ,GAAG,KAAK;IACxE,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACtB,IAAI,KAAK,KAAK,GAAG;YAAE,MAAM;QACzB,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC;QACnB,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IACD,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,GAAY,EAAE,GAAW,EAAE,QAAQ,GAAG,KAAK;IACrE,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC9C,6GAA6G;IAC7G,MAAM,KAAK,GAAG,aAAa,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;SACtD,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;IACV,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AACzE,CAAC;AAED,wGAAwG;AACxG,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,GAAW;IACjD,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAC/C,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"text-safety.js","sourceRoot":"","sources":["../../../src/agent/role-cards/text-safety.ts"],"names":[],"mappings":"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"}
@@ -127,6 +127,7 @@ export declare const ToolCallSchema: z.ZodObject<{
127
127
  failed: "failed";
128
128
  succeeded: "succeeded";
129
129
  retrying: "retrying";
130
+ cancelled: "cancelled";
130
131
  }>;
131
132
  args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodObject<{
132
133
  masked: z.ZodLiteral<true>;
@@ -134,6 +135,7 @@ export declare const ToolCallSchema: z.ZodObject<{
134
135
  }, z.core.$strip>]>>>;
135
136
  durationMs: z.ZodOptional<z.ZodNumber>;
136
137
  resultSummary: z.ZodOptional<z.ZodString>;
138
+ detail: z.ZodOptional<z.ZodString>;
137
139
  result: z.ZodOptional<z.ZodUnknown>;
138
140
  error: z.ZodOptional<z.ZodString>;
139
141
  }, z.core.$strip>;
@@ -155,6 +157,7 @@ export declare const MessagePartSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
155
157
  failed: "failed";
156
158
  succeeded: "succeeded";
157
159
  retrying: "retrying";
160
+ cancelled: "cancelled";
158
161
  }>;
159
162
  args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodObject<{
160
163
  masked: z.ZodLiteral<true>;
@@ -162,6 +165,7 @@ export declare const MessagePartSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
162
165
  }, z.core.$strip>]>>>;
163
166
  durationMs: z.ZodOptional<z.ZodNumber>;
164
167
  resultSummary: z.ZodOptional<z.ZodString>;
168
+ detail: z.ZodOptional<z.ZodString>;
165
169
  result: z.ZodOptional<z.ZodUnknown>;
166
170
  error: z.ZodOptional<z.ZodString>;
167
171
  }, z.core.$strip>;
@@ -227,6 +231,12 @@ export declare const MessagePartSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
227
231
  forCallId: z.ZodOptional<z.ZodString>;
228
232
  }, z.core.$strip>], "type">;
229
233
  export type AgentMessagePart = z.infer<typeof MessagePartSchema>;
234
+ /** What a question was about (the page or entity it was asked from); see `AgentContextRef`. */
235
+ export declare const ContextRefSchema: z.ZodObject<{
236
+ kind: z.ZodString;
237
+ label: z.ZodString;
238
+ href: z.ZodOptional<z.ZodString>;
239
+ }, z.core.$strip>;
230
240
  export declare const MessageSchema: z.ZodObject<{
231
241
  id: z.ZodString;
232
242
  role: z.ZodEnum<{
@@ -250,6 +260,7 @@ export declare const MessageSchema: z.ZodObject<{
250
260
  failed: "failed";
251
261
  succeeded: "succeeded";
252
262
  retrying: "retrying";
263
+ cancelled: "cancelled";
253
264
  }>;
254
265
  args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodObject<{
255
266
  masked: z.ZodLiteral<true>;
@@ -257,6 +268,7 @@ export declare const MessageSchema: z.ZodObject<{
257
268
  }, z.core.$strip>]>>>;
258
269
  durationMs: z.ZodOptional<z.ZodNumber>;
259
270
  resultSummary: z.ZodOptional<z.ZodString>;
271
+ detail: z.ZodOptional<z.ZodString>;
260
272
  result: z.ZodOptional<z.ZodUnknown>;
261
273
  error: z.ZodOptional<z.ZodString>;
262
274
  }, z.core.$strip>;
@@ -321,6 +333,15 @@ export declare const MessageSchema: z.ZodObject<{
321
333
  data: z.ZodUnknown;
322
334
  forCallId: z.ZodOptional<z.ZodString>;
323
335
  }, z.core.$strip>], "type">>;
336
+ context: z.ZodOptional<z.ZodArray<z.ZodObject<{
337
+ kind: z.ZodString;
338
+ label: z.ZodString;
339
+ href: z.ZodOptional<z.ZodString>;
340
+ }, z.core.$strip>>>;
341
+ quotes: z.ZodOptional<z.ZodArray<z.ZodObject<{
342
+ messageId: z.ZodOptional<z.ZodString>;
343
+ text: z.ZodString;
344
+ }, z.core.$strip>>>;
324
345
  streaming: z.ZodOptional<z.ZodBoolean>;
325
346
  stopped: z.ZodOptional<z.ZodBoolean>;
326
347
  failed: z.ZodOptional<z.ZodBoolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/agent/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AAEH,yGAAyG;AACzG,eAAO,MAAM,YAAY;;;iBAA6D,CAAC;AACvF,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD,eAAO,MAAM,eAAe;;;mBAM1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,QAAQ,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,MAA2C,CAAC;AAEvF,eAAO,MAAM,UAAU;;;;;EAA0D,CAAC;AAClF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEnD,eAAO,MAAM,eAAe;;;;;;;;;;iBAI1B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE7D,eAAO,MAAM,oBAAoB;;;;;;;;;;EAU/B,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEvE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmCzB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE3D,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;iBAMrB,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEnD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;iBAkBzB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE3D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAgB5B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAOxB,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE7D,eAAO,MAAM,wBAAwB;;;;;;;;;EASnC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE/E,eAAO,MAAM,YAAY;;;;;;;iBAUvB,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAEvD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsB7B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEnE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQ1B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/agent/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AAEH,yGAAyG;AACzG,eAAO,MAAM,YAAY;;;iBAA6D,CAAC;AACvF,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD,eAAO,MAAM,eAAe;;;mBAM1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,QAAQ,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,MAA2C,CAAC;AAEvF,eAAO,MAAM,UAAU;;;;;EAA0D,CAAC;AAClF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEnD,eAAO,MAAM,eAAe;;;;;;;;;;iBAI1B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE7D,eAAO,MAAM,oBAAoB;;;;;;;;;;EAU/B,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEvE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmCzB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE3D,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;iBAMrB,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEnD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;iBA6BzB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE3D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAgB5B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,+FAA+F;AAC/F,eAAO,MAAM,gBAAgB;;;;iBAI3B,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAWxB,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE7D,eAAO,MAAM,wBAAwB;;;;;;;;;EASnC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE/E,eAAO,MAAM,YAAY;;;;;;;iBAUvB,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAEvD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsB7B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEnE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQ1B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
@@ -77,11 +77,22 @@ export const StepSchema = z.object({
77
77
  export const ToolCallSchema = z.object({
78
78
  id: z.string(),
79
79
  name: z.string(),
80
- status: z.enum(["pending", "running", "succeeded", "failed", "retrying"]),
80
+ /**
81
+ * `cancelled` is ONLY a call the user stopped (they pressed Stop). Anything else that left a call unfinished (a broken stream, a run error,
82
+ * a timeout) stays `failed`, because the default detail line for `cancelled` is fixed copy and would call a real failure a calm Stop. It is the opposite of `failed`, a call that
83
+ * errored: it is shown as stopped in a neutral tone, never as an error, and has no Retry.
84
+ */
85
+ status: z.enum(["pending", "running", "succeeded", "failed", "retrying", "cancelled"]),
81
86
  /** Already redacted by the BFF. Masked entries are marked. */
82
87
  args: z.record(z.string(), CellValueSchema).optional(),
83
88
  durationMs: z.number().optional(),
84
89
  resultSummary: z.string().optional(),
90
+ /**
91
+ * Only for `cancelled`: the host's own reason, shown under the step instead of the default "Stopped before it finished" (e.g. "Not run,
92
+ * you declined" for a write the person declined, which never started). Plain text, cut at 200 characters, ignored for every other
93
+ * status. Never the call's `error` text.
94
+ */
95
+ detail: z.string().optional(),
85
96
  /**
86
97
  * The call's result for the activity row's preview: parsed JSON, or text. Shown as given (at most 20,000 characters), so the
87
98
  * host REDACTS it exactly as it redacts `args`: a masked cell is `{ masked: true, display }`, never the raw value. The
@@ -110,10 +121,20 @@ export const MessagePartSchema = z.discriminatedUnion("type", [
110
121
  forCallId: z.string().optional(),
111
122
  }),
112
123
  ]);
124
+ /** What a question was about (the page or entity it was asked from); see `AgentContextRef`. */
125
+ export const ContextRefSchema = z.object({
126
+ kind: z.string(),
127
+ label: z.string(),
128
+ href: z.string().optional(),
129
+ });
113
130
  export const MessageSchema = z.object({
114
131
  id: z.string(),
115
132
  role: z.enum(["user", "assistant"]),
116
133
  parts: z.array(MessagePartSchema),
134
+ /** User messages: what the question was about. Shown above the message only when it differs from the previous question's. */
135
+ context: z.array(ContextRefSchema).optional(),
136
+ /** User messages: passages quoted from earlier answers, shown above the message as plain quoted text. */
137
+ quotes: z.array(z.object({ messageId: z.string().optional(), text: z.string() })).optional(),
117
138
  streaming: z.boolean().optional(),
118
139
  stopped: z.boolean().optional(),
119
140
  failed: z.boolean().optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/agent/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/agent/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /** One thing the host offers the person to ask: a short label, and the text it puts in the composer. */
2
+ export interface AgentSuggestion {
3
+ /** Stable id (React key, and what `onSelect` reports). */
4
+ id: string;
5
+ /** What the chip says ("Summarise this organisation"). Plain text, cleaned and cut at {@link MAX_SUGGESTION_LABEL} characters. */
6
+ label: string;
7
+ /** What goes into the composer when chosen. Defaults to `label`. Cleaned and cut at {@link MAX_SUGGESTION_PROMPT}. Never sent by the ui. */
8
+ prompt?: string;
9
+ }
10
+ /** The most suggested actions the row draws, and the most follow-ups the palette draws. A host cannot make either longer. */
11
+ export declare const MAX_SUGGESTED_ACTIONS = 8;
12
+ export declare const MAX_FOLLOW_UPS = 5;
13
+ export declare const MAX_SUGGESTION_LABEL = 100;
14
+ export declare const MAX_SUGGESTION_PROMPT = 500;
15
+ /**
16
+ * What a chosen suggestion puts in the composer: its `prompt` (else its label), with direction overrides and invisible characters
17
+ * removed, trimmed, and cut. Host and model text is untrusted: it is the person who reads this and decides to send it.
18
+ */
19
+ export declare const suggestionPrompt: (s: AgentSuggestion) => string;
20
+ /** The suggestions the ui will draw: labels cleaned and cut (an item with nothing readable left is skipped), then capped. */
21
+ export declare function sanitizeSuggestions(list: readonly AgentSuggestion[] | undefined, max: number): AgentSuggestion[];
22
+ export interface AgentSuggestionRowCopy {
23
+ /** Accessible name of the row. */
24
+ label: string;
25
+ }
26
+ export interface AgentSuggestionRowProps {
27
+ suggestions: readonly AgentSuggestion[];
28
+ onSelect: (suggestion: AgentSuggestion) => void;
29
+ copy?: Partial<AgentSuggestionRowCopy>;
30
+ className?: string;
31
+ }
32
+ /**
33
+ * @internal A single, horizontally scrolling row of host-provided suggested actions, above the composer. A toolbar with one tab
34
+ * stop (arrow keys, Home and End move between chips), edges that fade only while there is more to scroll to, the mouse wheel
35
+ * scrolling it sideways, and 44 px targets on a coarse pointer. A chip never sends: it hands the person's composer a prompt to
36
+ * read, edit and send.
37
+ */
38
+ export declare function AgentSuggestionRow({ suggestions: raw, onSelect, copy, className, }: AgentSuggestionRowProps): import("react/jsx-runtime").JSX.Element | null;
39
+ export interface AgentFollowUpsCopy {
40
+ /** Accessible name of the list. */
41
+ label: string;
42
+ /** The key hint under the list (hidden on a touch screen). */
43
+ hint: string;
44
+ /** Accessible name of the close control. */
45
+ dismiss: string;
46
+ }
47
+ export interface AgentFollowUpsProps {
48
+ followUps: readonly AgentSuggestion[];
49
+ onSelect: (followUp: AgentSuggestion) => void;
50
+ /** Escape, or the close control. */
51
+ onDismiss: () => void;
52
+ /** ArrowDown on the last row: back to the message field, palette still open. */
53
+ onLeaveDown?: () => void;
54
+ /** Id for the hint, so the message field can be described by it too. */
55
+ hintId?: string;
56
+ copy?: Partial<AgentFollowUpsCopy>;
57
+ className?: string;
58
+ }
59
+ /**
60
+ * @internal The follow-up palette that follows an answer: a short listbox the keyboard drives (up and down move, Enter uses the
61
+ * row, Escape closes it, ArrowDown on the last row returns to the field). One tab stop; the active row is announced through
62
+ * `aria-activedescendant` and tinted only while the list has focus. Entering from the message field lands on the NEAREST (last)
63
+ * row. Like a suggested action, a row only fills the composer.
64
+ */
65
+ export declare const AgentFollowUps: ({ followUps: raw, onSelect, onDismiss, onLeaveDown, hintId, copy, className, }: AgentFollowUpsProps) => import("react/jsx-runtime").JSX.Element | null;
66
+ //# sourceMappingURL=suggestions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suggestions.d.ts","sourceRoot":"","sources":["../../src/agent/suggestions.tsx"],"names":[],"mappings":"AAgBA,wGAAwG;AACxG,MAAM,WAAW,eAAe;IAC9B,0DAA0D;IAC1D,EAAE,EAAE,MAAM,CAAC;IACX,kIAAkI;IAClI,KAAK,EAAE,MAAM,CAAC;IACd,4IAA4I;IAC5I,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,6HAA6H;AAC7H,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAMzC;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,GAAG,eAAe,KAAG,MACP,CAAC;AAEhD,6HAA6H;AAC7H,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,SAAS,eAAe,EAAE,GAAG,SAAS,EAC5C,GAAG,EAAE,MAAM,GACV,eAAe,EAAE,CAgBnB;AAED,MAAM,WAAW,sBAAsB;IACrC,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,SAAS,eAAe,EAAE,CAAC;IACxC,QAAQ,EAAE,CAAC,UAAU,EAAE,eAAe,KAAK,IAAI,CAAC;IAChD,IAAI,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,WAAW,EAAE,GAAG,EAChB,QAAQ,EACR,IAAI,EACJ,SAAS,GACV,EAAE,uBAAuB,kDA8GzB;AAED,MAAM,WAAW,kBAAkB;IACjC,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;CACjB;AAOD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,SAAS,eAAe,EAAE,CAAC;IACtC,QAAQ,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;IAC9C,oCAAoC;IACpC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,gFAQ5B,mBAAmB,mDAoFrB,CAAC"}