@jini-ai/ui 0.3.3 → 0.3.6

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 (167) hide show
  1. package/dist/features/appearance/react/components/AppearanceTab.d.ts +4 -1
  2. package/dist/features/appearance/react/components/AppearanceTab.d.ts.map +1 -1
  3. package/dist/features/appearance/react/components/AppearanceTab.js +7 -4
  4. package/dist/features/appearance/react/components/AppearanceTab.js.map +1 -1
  5. package/dist/features/connectors/ConnectorsBrowser.d.ts +8 -1
  6. package/dist/features/connectors/ConnectorsBrowser.d.ts.map +1 -1
  7. package/dist/features/connectors/ConnectorsBrowser.js +4 -3
  8. package/dist/features/connectors/ConnectorsBrowser.js.map +1 -1
  9. package/dist/features/connectors/components/ConnectorCard.d.ts +4 -1
  10. package/dist/features/connectors/components/ConnectorCard.d.ts.map +1 -1
  11. package/dist/features/connectors/components/ConnectorCard.js +5 -4
  12. package/dist/features/connectors/components/ConnectorCard.js.map +1 -1
  13. package/dist/features/connectors/components/ConnectorDetailDrawer.d.ts +3 -1
  14. package/dist/features/connectors/components/ConnectorDetailDrawer.d.ts.map +1 -1
  15. package/dist/features/connectors/components/ConnectorDetailDrawer.js +3 -2
  16. package/dist/features/connectors/components/ConnectorDetailDrawer.js.map +1 -1
  17. package/dist/features/connectors/components/ConnectorGrid.d.ts +4 -1
  18. package/dist/features/connectors/components/ConnectorGrid.d.ts.map +1 -1
  19. package/dist/features/connectors/components/ConnectorGrid.js +4 -2
  20. package/dist/features/connectors/components/ConnectorGrid.js.map +1 -1
  21. package/dist/features/connectors/components/ConnectorSearchBar.d.ts +3 -1
  22. package/dist/features/connectors/components/ConnectorSearchBar.d.ts.map +1 -1
  23. package/dist/features/connectors/components/ConnectorSearchBar.js +4 -3
  24. package/dist/features/connectors/components/ConnectorSearchBar.js.map +1 -1
  25. package/dist/features/connectors/components/ProviderTabBar.d.ts +4 -1
  26. package/dist/features/connectors/components/ProviderTabBar.d.ts.map +1 -1
  27. package/dist/features/connectors/components/ProviderTabBar.js +5 -3
  28. package/dist/features/connectors/components/ProviderTabBar.js.map +1 -1
  29. package/dist/features/execution/constants.d.ts +30 -0
  30. package/dist/features/execution/constants.d.ts.map +1 -1
  31. package/dist/features/execution/constants.js +45 -0
  32. package/dist/features/execution/constants.js.map +1 -1
  33. package/dist/features/execution/index.d.ts +3 -3
  34. package/dist/features/execution/index.d.ts.map +1 -1
  35. package/dist/features/execution/index.js +2 -2
  36. package/dist/features/execution/index.js.map +1 -1
  37. package/dist/features/execution/react/components/AgentCliEnvFields.d.ts.map +1 -1
  38. package/dist/features/execution/react/components/AgentCliEnvFields.js +8 -1
  39. package/dist/features/execution/react/components/AgentCliEnvFields.js.map +1 -1
  40. package/dist/features/execution/react/components/ByokProviderForm.d.ts +30 -1
  41. package/dist/features/execution/react/components/ByokProviderForm.d.ts.map +1 -1
  42. package/dist/features/execution/react/components/ByokProviderForm.js +41 -21
  43. package/dist/features/execution/react/components/ByokProviderForm.js.map +1 -1
  44. package/dist/features/execution/react/components/ExecutionTab.d.ts +9 -1
  45. package/dist/features/execution/react/components/ExecutionTab.d.ts.map +1 -1
  46. package/dist/features/execution/react/components/ExecutionTab.js +9 -4
  47. package/dist/features/execution/react/components/ExecutionTab.js.map +1 -1
  48. package/dist/features/execution/react/components/LocalCliAgentCard.d.ts +4 -1
  49. package/dist/features/execution/react/components/LocalCliAgentCard.d.ts.map +1 -1
  50. package/dist/features/execution/react/components/LocalCliAgentCard.js +24 -28
  51. package/dist/features/execution/react/components/LocalCliAgentCard.js.map +1 -1
  52. package/dist/features/execution/react/components/LocalCliAgentList.d.ts +4 -1
  53. package/dist/features/execution/react/components/LocalCliAgentList.d.ts.map +1 -1
  54. package/dist/features/execution/react/components/LocalCliAgentList.js +4 -2
  55. package/dist/features/execution/react/components/LocalCliAgentList.js.map +1 -1
  56. package/dist/features/execution/react/components/ProviderChipGroup.d.ts +4 -1
  57. package/dist/features/execution/react/components/ProviderChipGroup.d.ts.map +1 -1
  58. package/dist/features/execution/react/components/ProviderChipGroup.js +7 -3
  59. package/dist/features/execution/react/components/ProviderChipGroup.js.map +1 -1
  60. package/dist/features/execution/react/components/SearchableModelSelect.d.ts +4 -1
  61. package/dist/features/execution/react/components/SearchableModelSelect.d.ts.map +1 -1
  62. package/dist/features/execution/react/components/SearchableModelSelect.js +3 -2
  63. package/dist/features/execution/react/components/SearchableModelSelect.js.map +1 -1
  64. package/dist/features/execution/react/hooks/useReasoningControl.d.ts +87 -0
  65. package/dist/features/execution/react/hooks/useReasoningControl.d.ts.map +1 -0
  66. package/dist/features/execution/react/hooks/useReasoningControl.js +149 -0
  67. package/dist/features/execution/react/hooks/useReasoningControl.js.map +1 -0
  68. package/dist/features/execution/rules.d.ts +87 -1
  69. package/dist/features/execution/rules.d.ts.map +1 -1
  70. package/dist/features/execution/rules.js +210 -1
  71. package/dist/features/execution/rules.js.map +1 -1
  72. package/dist/features/execution/types.d.ts +96 -0
  73. package/dist/features/execution/types.d.ts.map +1 -1
  74. package/dist/features/html-editor/react/components/InteractiveHtmlEditor.d.ts +1 -1
  75. package/dist/features/html-editor/react/hooks/useInteractiveHtmlEditor.js +1 -1
  76. package/dist/features/i18n/dictionaries/index.d.ts +1 -1
  77. package/dist/features/instructions/react/components/InstructionsTab.d.ts +3 -1
  78. package/dist/features/instructions/react/components/InstructionsTab.d.ts.map +1 -1
  79. package/dist/features/instructions/react/components/InstructionsTab.js +3 -2
  80. package/dist/features/instructions/react/components/InstructionsTab.js.map +1 -1
  81. package/dist/features/integrations/react/components/ClientPicker.d.ts +4 -1
  82. package/dist/features/integrations/react/components/ClientPicker.d.ts.map +1 -1
  83. package/dist/features/integrations/react/components/ClientPicker.js +7 -3
  84. package/dist/features/integrations/react/components/ClientPicker.js.map +1 -1
  85. package/dist/features/integrations/react/components/CodexInstallToggleButton.d.ts +3 -1
  86. package/dist/features/integrations/react/components/CodexInstallToggleButton.d.ts.map +1 -1
  87. package/dist/features/integrations/react/components/CodexInstallToggleButton.js +3 -2
  88. package/dist/features/integrations/react/components/CodexInstallToggleButton.js.map +1 -1
  89. package/dist/features/integrations/react/components/IntegrationsTab.d.ts +6 -1
  90. package/dist/features/integrations/react/components/IntegrationsTab.d.ts.map +1 -1
  91. package/dist/features/integrations/react/components/IntegrationsTab.js +4 -3
  92. package/dist/features/integrations/react/components/IntegrationsTab.js.map +1 -1
  93. package/dist/features/language/react/components/LanguageTab.d.ts +4 -1
  94. package/dist/features/language/react/components/LanguageTab.d.ts.map +1 -1
  95. package/dist/features/language/react/components/LanguageTab.js +5 -3
  96. package/dist/features/language/react/components/LanguageTab.js.map +1 -1
  97. package/dist/features/mcp-ui/sandbox-proxy.d.ts +42 -1
  98. package/dist/features/mcp-ui/sandbox-proxy.d.ts.map +1 -1
  99. package/dist/features/mcp-ui/sandbox-proxy.js +89 -1
  100. package/dist/features/mcp-ui/sandbox-proxy.js.map +1 -1
  101. package/dist/features/mcp-ui/surfaces/outcome.d.ts +1 -1
  102. package/dist/features/mcp-ui/surfaces/tokens.d.ts +6 -5
  103. package/dist/features/mcp-ui/surfaces/tokens.d.ts.map +1 -1
  104. package/dist/features/mcp-ui/surfaces/tokens.js +6 -5
  105. package/dist/features/mcp-ui/surfaces/tokens.js.map +1 -1
  106. package/dist/features/media-providers/react/components/MediaProvidersTab.d.ts +4 -1
  107. package/dist/features/media-providers/react/components/MediaProvidersTab.d.ts.map +1 -1
  108. package/dist/features/media-providers/react/components/MediaProvidersTab.js +14 -4
  109. package/dist/features/media-providers/react/components/MediaProvidersTab.js.map +1 -1
  110. package/dist/features/memory/react/components/MemoryEntryCard.d.ts +3 -1
  111. package/dist/features/memory/react/components/MemoryEntryCard.d.ts.map +1 -1
  112. package/dist/features/memory/react/components/MemoryEntryCard.js +3 -2
  113. package/dist/features/memory/react/components/MemoryEntryCard.js.map +1 -1
  114. package/dist/features/memory/react/components/MemoryExtractionCard.d.ts +3 -1
  115. package/dist/features/memory/react/components/MemoryExtractionCard.d.ts.map +1 -1
  116. package/dist/features/memory/react/components/MemoryExtractionCard.js +3 -2
  117. package/dist/features/memory/react/components/MemoryExtractionCard.js.map +1 -1
  118. package/dist/features/memory/react/components/MemoryHooksPanel.d.ts +3 -1
  119. package/dist/features/memory/react/components/MemoryHooksPanel.d.ts.map +1 -1
  120. package/dist/features/memory/react/components/MemoryHooksPanel.js +7 -2
  121. package/dist/features/memory/react/components/MemoryHooksPanel.js.map +1 -1
  122. package/dist/features/memory/react/components/MemoryHowPanel.d.ts +3 -1
  123. package/dist/features/memory/react/components/MemoryHowPanel.d.ts.map +1 -1
  124. package/dist/features/memory/react/components/MemoryHowPanel.js +2 -2
  125. package/dist/features/memory/react/components/MemoryHowPanel.js.map +1 -1
  126. package/dist/features/memory/react/components/MemoryList.d.ts +3 -1
  127. package/dist/features/memory/react/components/MemoryList.d.ts.map +1 -1
  128. package/dist/features/memory/react/components/MemoryList.js +12 -5
  129. package/dist/features/memory/react/components/MemoryList.js.map +1 -1
  130. package/dist/features/memory/react/components/MemorySettingsPanel.d.ts +7 -1
  131. package/dist/features/memory/react/components/MemorySettingsPanel.d.ts.map +1 -1
  132. package/dist/features/memory/react/components/MemorySettingsPanel.js +3 -2
  133. package/dist/features/memory/react/components/MemorySettingsPanel.js.map +1 -1
  134. package/dist/features/notifications/react/components/NotificationsTab.d.ts +3 -1
  135. package/dist/features/notifications/react/components/NotificationsTab.d.ts.map +1 -1
  136. package/dist/features/notifications/react/components/NotificationsTab.js +13 -6
  137. package/dist/features/notifications/react/components/NotificationsTab.js.map +1 -1
  138. package/dist/features/privacy/react/components/PrivacyTab.d.ts +9 -1
  139. package/dist/features/privacy/react/components/PrivacyTab.d.ts.map +1 -1
  140. package/dist/features/privacy/react/components/PrivacyTab.js +5 -4
  141. package/dist/features/privacy/react/components/PrivacyTab.js.map +1 -1
  142. package/dist/features/settings/dialog/react/components/SettingsDialogShell.d.ts +1 -1
  143. package/dist/features/settings/dialog/styles/settings-dialog.css +54 -0
  144. package/dist/features/skills/react/components/SkillDraftForm.d.ts +3 -1
  145. package/dist/features/skills/react/components/SkillDraftForm.d.ts.map +1 -1
  146. package/dist/features/skills/react/components/SkillDraftForm.js +3 -2
  147. package/dist/features/skills/react/components/SkillDraftForm.js.map +1 -1
  148. package/dist/features/skills/react/components/SkillRow.d.ts +3 -1
  149. package/dist/features/skills/react/components/SkillRow.d.ts.map +1 -1
  150. package/dist/features/skills/react/components/SkillRow.js +3 -2
  151. package/dist/features/skills/react/components/SkillRow.js.map +1 -1
  152. package/dist/features/skills/react/components/SkillsTab.d.ts +8 -1
  153. package/dist/features/skills/react/components/SkillsTab.d.ts.map +1 -1
  154. package/dist/features/skills/react/components/SkillsTab.js +7 -3
  155. package/dist/features/skills/react/components/SkillsTab.js.map +1 -1
  156. package/dist/features/tabbed-dialog/react/components/TabbedDialog.d.ts +1 -1
  157. package/dist/features/tabbed-dialog/react/components/TabbedDialog.js +1 -1
  158. package/dist/features/tabbed-dialog/types.d.ts +2 -2
  159. package/dist/features/tabbed-dialog/types.js +2 -2
  160. package/dist/react/components/RemixIcon.d.ts +42 -1
  161. package/dist/react/components/RemixIcon.d.ts.map +1 -1
  162. package/dist/react/components/RemixIcon.js +152 -8
  163. package/dist/react/components/RemixIcon.js.map +1 -1
  164. package/dist/utils/file-transfer.d.ts.map +1 -1
  165. package/dist/utils/file-transfer.js +2 -0
  166. package/dist/utils/file-transfer.js.map +1 -1
  167. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox-proxy.d.ts","sourceRoot":"","sources":["../../../src/features/mcp-ui/sandbox-proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8GG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,kBAAkB,4/BAmCvB,CAAC"}
1
+ {"version":3,"file":"sandbox-proxy.d.ts","sourceRoot":"","sources":["../../../src/features/mcp-ui/sandbox-proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8GG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,kBAAkB,4/BAmCvB,CAAC;AAET;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CA6CxE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEnE"}
@@ -16,7 +16,7 @@
16
16
  *
17
17
  * This module exports the proxy's source as a **string constant** rather than a static file this
18
18
  * package's own build copies into `dist/`, for the same reason `surfaces/document.ts` builds HTML as
19
- * template strings: the natural way for a HOST APPLICATION (Tovu's admin server, `examples/reference-web`'s
19
+ * template strings: the natural way for a HOST APPLICATION (a downstream product's admin server, `examples/reference-web`'s
20
20
  * dev server, any future consumer) to serve this is to mount ONE route that responds with this exact
21
21
  * body — `res.type('html').send(SANDBOX_PROXY_HTML)` — not to vendor a copy of a file from this
22
22
  * package's `dist/` into their own static-asset pipeline. A string a host can `fetch`/import needs no
@@ -164,4 +164,92 @@ export const SANDBOX_PROXY_HTML = `<!doctype html>
164
164
  </script>
165
165
  </body>
166
166
  </html>`;
167
+ /**
168
+ * Same script as {@link SANDBOX_PROXY_HTML}, with one load-bearing difference: `hostOrigin` is the
169
+ * caller-supplied `hostOrigin` argument, baked in as a literal, instead of read from
170
+ * `window.location.origin`. Paired with {@link buildSandboxProxyDataUrl}, this is what actually
171
+ * closes the "admin-origin authority" gap this module's own doc flags above — not by dropping
172
+ * `allow-same-origin` (verified against the installed `@mcp-ui/client@7.1.1` bundle: `AppFrame`
173
+ * hardcodes `sandbox="allow-scripts allow-same-origin allow-forms"` on the iframe it creates, with no
174
+ * prop to override it — neither this package nor a host application can refuse that flag), but by
175
+ * changing what "same-origin" MEANS: a `data:` URL gets a fresh, unique, OPAQUE origin under the URL
176
+ * Standard's own origin algorithm, a rule that holds regardless of the iframe's `sandbox` attribute
177
+ * (verified live against a real Chromium build, 2026-09-03: an iframe with the exact hardcoded flags
178
+ * above, navigated to a `data:` URL, still reports `window.location.origin === "null"` inside). Once
179
+ * the proxy's own document has no real origin to share with its embedder, the guest HTML this script
180
+ * `document.write`s into it can never reach the embedder's cookies, storage, or same-origin fetches —
181
+ * there is no real origin left for "same-origin" to mean.
182
+ *
183
+ * That is also why this can no longer read `window.location.origin` for the ready/resource-ready
184
+ * handshake's own origin check: inside an opaque-origin document that call always returns the literal
185
+ * string `"null"`, which would never equal the embedder's real origin and would permanently break the
186
+ * handshake. `hostOrigin` has to come from somewhere else — the embedder's OWN trusted value, baked in
187
+ * at construction time. It must never be read back from this document's own URL (query string,
188
+ * fragment, or otherwise): whoever can choose this document's `src` can choose that value too, which
189
+ * would defeat the check exactly as this module's existing doc warns for the cross-origin-hosting
190
+ * case.
191
+ *
192
+ * @param hostOrigin - The embedder's own real origin, computed by the embedder itself (e.g. its own
193
+ * `window.location.origin`) — never a value parsed out of this proxy document's own URL.
194
+ */
195
+ export function buildIsolatedSandboxProxyHtml(hostOrigin) {
196
+ const hostOriginLiteral = JSON.stringify(hostOrigin);
197
+ // A `data:` document has no HTTP response of its own to carry a CSP header, so per CSP3's
198
+ // "local scheme" inheritance rule this inline <script> runs under whatever CSP the embedder's
199
+ // OWN document currently has (none, for the host product's admin app today — verified 2026-09-03: no
200
+ // helmet/blanket CSP is applied to admin HTML responses). If a future hardening pass adds a
201
+ // strict `script-src` CSP to the embedder, this inline script will need `'unsafe-inline'` (or a
202
+ // nonce this template does not currently support) to keep running — check that before assuming
203
+ // this proxy still renders under a new admin CSP.
204
+ return `<!doctype html>
205
+ <html>
206
+ <head>
207
+ <meta charset="utf-8">
208
+ <title>MCP-UI sandbox proxy</title>
209
+ <style>html, body { margin: 0; padding: 0; width: 100%; height: 100%; }</style>
210
+ </head>
211
+ <body>
212
+ <script>
213
+ (function () {
214
+ "use strict";
215
+ var host = window.parent;
216
+ var hostOrigin = ${hostOriginLiteral};
217
+ if (host === window) return;
218
+
219
+ function isFromHost(event) {
220
+ return event.source === host && event.origin === hostOrigin;
221
+ }
222
+
223
+ window.addEventListener("message", function (event) {
224
+ if (!isFromHost(event)) return;
225
+ var data = event.data;
226
+ if (!data || typeof data !== "object") return;
227
+ if (data.method !== "ui/notifications/sandbox-resource-ready") return;
228
+ var html = data.params && data.params.html;
229
+ if (typeof html !== "string") return;
230
+ document.open();
231
+ document.write(html);
232
+ document.close();
233
+ });
234
+
235
+ host.postMessage({ method: "ui/notifications/sandbox-proxy-ready", params: {} }, hostOrigin);
236
+ }());
237
+ </script>
238
+ </body>
239
+ </html>`;
240
+ }
241
+ /**
242
+ * Wraps {@link buildIsolatedSandboxProxyHtml} as a `data:` URL — the form a host passes directly as
243
+ * `sandbox={{ url }}` to `@mcp-ui/client`'s `AppRenderer`/`AppFrame` (this package's
244
+ * `McpUiHost`/`useMcpUiHost` included) in place of a same-origin HTTP route. No server route, second
245
+ * host, or CORS/postMessage-origin change is needed to get the isolation official MCP-UI guidance
246
+ * recommends — see {@link buildIsolatedSandboxProxyHtml}'s own doc for why a `data:` URL earns that
247
+ * isolation on its own.
248
+ *
249
+ * @param hostOrigin - Forwarded verbatim to {@link buildIsolatedSandboxProxyHtml} — see that
250
+ * function's own doc for the contract.
251
+ */
252
+ export function buildSandboxProxyDataUrl(hostOrigin) {
253
+ return `data:text/html;charset=utf-8,${encodeURIComponent(buildIsolatedSandboxProxyHtml(hostOrigin))}`;
254
+ }
167
255
  //# sourceMappingURL=sandbox-proxy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox-proxy.js","sourceRoot":"","sources":["../../../src/features/mcp-ui/sandbox-proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8GG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAmC1B,CAAC"}
1
+ {"version":3,"file":"sandbox-proxy.js","sourceRoot":"","sources":["../../../src/features/mcp-ui/sandbox-proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8GG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAmC1B,CAAC;AAET;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,6BAA6B,CAAC,UAAkB;IAC9D,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACrD,0FAA0F;IAC1F,8FAA8F;IAC9F,qGAAqG;IACrG,4FAA4F;IAC5F,gGAAgG;IAChG,+FAA+F;IAC/F,kDAAkD;IAClD,OAAO;;;;;;;;;;;;qBAYY,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;QAuB9B,CAAC;AACT,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,wBAAwB,CAAC,UAAkB;IACzD,OAAO,gCAAgC,kBAAkB,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;AACzG,CAAC"}
@@ -55,7 +55,7 @@ export interface SurfaceOutcomeSpec {
55
55
  /**
56
56
  * Styles the status line and, when {@link openLinkUrl} is also present, the open-link button.
57
57
  * THREE states, not a boolean — matching this package's own callers, which distinguish a genuine
58
- * partial outcome (e.g. Tovu's static-publish "uploaded, but not yet confirmed reachable") from
58
+ * partial outcome (e.g. a downstream product's static-publish "uploaded, but not yet confirmed reachable") from
59
59
  * both a plain success and a plain failure specifically so neither is misreported: folding
60
60
  * `'partial'` into `'success'` would claim something is live when it may not be reachable yet;
61
61
  * folding it into `'failure'` would hide that the operation itself did NOT fail (nothing needs
@@ -79,11 +79,12 @@ export declare const SURFACE_TOKENS_DARK: Record<SurfaceTokenName, string>;
79
79
  * Whether every generated surface is pinned to the light palette regardless of the embedding
80
80
  * browser/OS's `prefers-color-scheme`.
81
81
  *
82
- * True today because Tovu — currently this package's only consumer — has no real light/dark toggle
83
- * yet (`apps/admin`'s Appearance section is a disabled "SOON" placeholder), so a surface that honors
84
- * the OS preference doesn't track any actual app theme — it tracks whatever the operator's OS
85
- * happens to be set to, which produces a dark card floating in an always-light admin UI. Flip this
86
- * to `false` once Tovu has a real app-level theme signal to forward in; nothing else about
82
+ * True today because the host product — currently this package's only consumer — has no real
83
+ * light/dark toggle yet (`apps/admin`'s Appearance section is a disabled "SOON" placeholder), so a
84
+ * surface that honors the OS preference doesn't track any actual app theme — it tracks whatever the
85
+ * operator's OS happens to be set to, which produces a dark card floating in an always-light admin
86
+ * UI. Flip this to `false` once the host product has a real app-level theme signal to forward in;
87
+ * nothing else about
87
88
  * {@link renderTokenBlock} needs to change.
88
89
  */
89
90
  export declare const FORCE_LIGHT_SURFACE_THEME = true;
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../../src/features/mcp-ui/surfaces/tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;CAwBjB,CAAC;AAEX,6CAA6C;AAC7C,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,cAAc,CAAC;AAE3D;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAqBhE,CAAC;AA4BF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAE9C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,GAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAM,GAAG,MAAM,CAiBlG"}
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../../src/features/mcp-ui/surfaces/tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;CAwBjB,CAAC;AAEX,6CAA6C;AAC7C,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,cAAc,CAAC;AAE3D;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAqBhE,CAAC;AA4BF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAE9C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,GAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAM,GAAG,MAAM,CAiBlG"}
@@ -124,11 +124,12 @@ const DARK_SURFACE_SHADOW = '0 1px 2px rgba(0, 0, 0, 0.32)';
124
124
  * Whether every generated surface is pinned to the light palette regardless of the embedding
125
125
  * browser/OS's `prefers-color-scheme`.
126
126
  *
127
- * True today because Tovu — currently this package's only consumer — has no real light/dark toggle
128
- * yet (`apps/admin`'s Appearance section is a disabled "SOON" placeholder), so a surface that honors
129
- * the OS preference doesn't track any actual app theme — it tracks whatever the operator's OS
130
- * happens to be set to, which produces a dark card floating in an always-light admin UI. Flip this
131
- * to `false` once Tovu has a real app-level theme signal to forward in; nothing else about
127
+ * True today because the host product — currently this package's only consumer — has no real
128
+ * light/dark toggle yet (`apps/admin`'s Appearance section is a disabled "SOON" placeholder), so a
129
+ * surface that honors the OS preference doesn't track any actual app theme — it tracks whatever the
130
+ * operator's OS happens to be set to, which produces a dark card floating in an always-light admin
131
+ * UI. Flip this to `false` once the host product has a real app-level theme signal to forward in;
132
+ * nothing else about
132
133
  * {@link renderTokenBlock} needs to change.
133
134
  */
134
135
  export const FORCE_LIGHT_SURFACE_THEME = true;
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../../src/features/mcp-ui/surfaces/tokens.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../../src/features/mcp-ui/surfaces/tokens.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,9 @@ export interface MediaProvidersTabProps {
45
45
  * configured-first/alphabetical order unchanged. */
46
46
  pinnedProviderIds?: readonly string[];
47
47
  labels?: MediaProvidersTabLabels;
48
+ /** This tab's own agent handle. One distinct sub-handle per provider card, derived from the
49
+ * provider's own catalog id via `buildAgentListHandles`. */
50
+ agentHandle?: string;
48
51
  }
49
52
  /**
50
53
  * Per-provider credential cards: API key, base URL, and (when the catalog
@@ -55,5 +58,5 @@ export interface MediaProvidersTabProps {
55
58
  * decorations outside this package's boundary; see `MediaProviderOption`'s
56
59
  * doc and this tab's `ports.ts` header for the full provenance note.
57
60
  */
58
- export declare function MediaProvidersTab({ port, catalog, initialProviders, pinnedProviderIds, labels, }: MediaProvidersTabProps): import("react").JSX.Element;
61
+ export declare function MediaProvidersTab({ port, catalog, initialProviders, pinnedProviderIds, labels, agentHandle, }: MediaProvidersTabProps): import("react").JSX.Element;
59
62
  //# sourceMappingURL=MediaProvidersTab.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MediaProvidersTab.d.ts","sourceRoot":"","sources":["../../../../../src/features/media-providers/react/components/MediaProvidersTab.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAWzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAG5E,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gDAAgD;IAChD,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,kHAAkH;IAClH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;sEAEkE;IAClE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,kBAAkB,CAAC;IACzB;;wCAEoC;IACpC,OAAO,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACzC;gFAC4E;IAC5E,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC;;;yDAGqD;IACrD,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,MAAM,CAAC,EAAE,uBAAuB,CAAC;CAClC;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,OAAwC,EACxC,gBAAgB,EAChB,iBAAiB,EACjB,MAAM,GACP,EAAE,sBAAsB,+BA+NxB"}
1
+ {"version":3,"file":"MediaProvidersTab.d.ts","sourceRoot":"","sources":["../../../../../src/features/media-providers/react/components/MediaProvidersTab.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAWzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAG5E,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gDAAgD;IAChD,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,kHAAkH;IAClH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;sEAEkE;IAClE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,kBAAkB,CAAC;IACzB;;wCAEoC;IACpC,OAAO,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACzC;gFAC4E;IAC5E,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC;;;yDAGqD;IACrD,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC;iEAC6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,OAAwC,EACxC,gBAAgB,EAChB,iBAAiB,EACjB,MAAM,EACN,WAAW,GACZ,EAAE,sBAAsB,+BA8OxB"}
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Fragment, useState } from 'react';
3
+ import { agentHandleProps, buildAgentListHandles } from '@jini-ai/agentic';
3
4
  import { useT } from '../../../i18n/index.js';
4
5
  import { Icon } from '../../../../react/components/Icon.js';
5
6
  import { invalidBaseUrlProviderIds, isEntryPresent, isMarkerOnlyEntry, isProviderBaseUrlInvalid, maskedKeyLabel, resolveProviderBaseUrl, sortProvidersByConfigured, } from '../../rules.js';
@@ -14,7 +15,7 @@ import { useMediaProvidersTab } from '../hooks/useMediaProvidersTab.js';
14
15
  * decorations outside this package's boundary; see `MediaProviderOption`'s
15
16
  * doc and this tab's `ports.ts` header for the full provenance note.
16
17
  */
17
- export function MediaProvidersTab({ port, catalog = DEFAULT_MEDIA_PROVIDER_CATALOG, initialProviders, pinnedProviderIds, labels, }) {
18
+ export function MediaProvidersTab({ port, catalog = DEFAULT_MEDIA_PROVIDER_CATALOG, initialProviders, pinnedProviderIds, labels, agentHandle, }) {
18
19
  const t = useT();
19
20
  const { providers, load, save, hasAnyConfigured, pendingProviderIds, updateProvider, clearProvider, saveChanges, reload } = useMediaProvidersTab({ port, initialProviders });
20
21
  const [visibleApiKeys, setVisibleApiKeys] = useState(() => new Set());
@@ -55,6 +56,9 @@ export function MediaProvidersTab({ port, catalog = DEFAULT_MEDIA_PROVIDER_CATAL
55
56
  });
56
57
  };
57
58
  const orderedCatalog = sortProvidersByConfigured(catalog, providers, pinnedProviderIds);
59
+ const providerHandles = agentHandle
60
+ ? buildAgentListHandles(agentHandle, orderedCatalog.map((option) => option.id))
61
+ : undefined;
58
62
  // Membership check against the ALREADY-ORDERED result, not `pinnedProviderIds` directly: a
59
63
  // pinned id absent from `catalog` never appears in `orderedCatalog` either (see
60
64
  // `sortProvidersByConfigured`'s own "silently skipped" doc), so this stays correct without
@@ -64,7 +68,7 @@ export function MediaProvidersTab({ port, catalog = DEFAULT_MEDIA_PROVIDER_CATAL
64
68
  // Save writes every provider at once, so ONE unacceptable endpoint blocks the
65
69
  // whole button rather than being silently persisted alongside the good ones.
66
70
  const blockedByInvalidBaseUrl = invalidBaseUrlProviderIds(providers).length > 0;
67
- return (_jsxs("section", { className: "jini-settings-section jini-settings-media-providers", children: [_jsxs("div", { className: "jini-section-head", children: [_jsxs("div", { children: [_jsx("h4", { children: title }), _jsx("p", { className: "jini-hint", children: description })] }), _jsxs("button", { type: "button", className: "jini-button jini-button-ghost", onClick: reload, disabled: load.status === 'loading', children: [_jsx(Icon, { name: "refresh", size: 13 }), _jsx("span", { children: load.status === 'loading' ? reloadingLabel : reloadLabel })] })] }), load.status === 'unreachable' ? (_jsx("p", { className: "jini-hint jini-hint-error", role: "alert", children: unreachableLabel })) : null, !hasAnyConfigured ? _jsx("p", { className: "jini-hint", children: emptyStateLabel }) : null, _jsx("div", { className: "jini-media-provider-list", children: orderedCatalog.map((option, index) => {
71
+ return (_jsxs("section", { className: "jini-settings-section jini-settings-media-providers", children: [_jsxs("div", { className: "jini-section-head", children: [_jsxs("div", { children: [_jsx("h4", { children: title }), _jsx("p", { className: "jini-hint", children: description })] }), _jsxs("button", { type: "button", className: "jini-button jini-button-ghost", onClick: reload, disabled: load.status === 'loading', ...agentHandleProps(agentHandle, { action: 'reload', role: 'button', label: reloadLabel }), children: [_jsx(Icon, { name: "refresh", size: 13 }), _jsx("span", { children: load.status === 'loading' ? reloadingLabel : reloadLabel })] })] }), load.status === 'unreachable' ? (_jsx("p", { className: "jini-hint jini-hint-error", role: "alert", children: unreachableLabel })) : null, !hasAnyConfigured ? _jsx("p", { className: "jini-hint", children: emptyStateLabel }) : null, _jsx("div", { className: "jini-media-provider-list", children: orderedCatalog.map((option, index) => {
68
72
  const entry = providers[option.id] ?? {};
69
73
  const clearable = isEntryPresent(entry);
70
74
  const saved = isMarkerOnlyEntry(entry);
@@ -83,10 +87,16 @@ export function MediaProvidersTab({ port, catalog = DEFAULT_MEDIA_PROVIDER_CATAL
83
87
  // every card is pinned (no "rest" to separate from).
84
88
  const previousOption = index > 0 ? orderedCatalog[index - 1] : undefined;
85
89
  const showDividerBefore = !pinnedIdSet.has(option.id) && previousOption !== undefined && pinnedIdSet.has(previousOption.id);
90
+ const providerHandle = providerHandles?.[index];
86
91
  return (_jsxs(Fragment, { children: [showDividerBefore ? _jsx("hr", { className: "jini-media-provider-divider" }) : null, _jsxs("div", { className: "jini-media-provider-card", children: [_jsxs("div", { className: "jini-media-provider-card-head", children: [_jsx("strong", { children: option.label }), saved ? (
87
92
  // `maskedLabel` is guaranteed non-null here — see its
88
93
  // definition above — so no fallback is reachable to test.
89
- _jsx("span", { className: "jini-field-status-badge jini-field-status-badge-success", children: t(savedWithMaskTemplate, { mask: maskedLabel }) })) : null, !saved && pendingProviderIds.has(option.id) ? _jsx("span", { className: "jini-field-status-badge", children: unsavedLabel }) : null] }), _jsxs("div", { className: "jini-media-provider-fields", children: [_jsxs("label", { className: "jini-media-provider-field jini-media-provider-field--secret", children: [_jsx("span", { className: "jini-field-label jini-sr-only", children: apiKeyLabel }), _jsx("input", { className: "jini-input", type: keyVisible ? 'text' : 'password', autoComplete: "off", spellCheck: false, placeholder: saved ? maskedLabel : apiKeyPlaceholder, "aria-label": `${option.label} ${apiKeyLabel}`, value: entry.apiKey ?? '', onChange: (event) => updateProvider(option.id, { apiKey: event.target.value }) }), _jsx("button", { type: "button", className: "jini-input-affix-btn", "aria-pressed": keyVisible, "aria-label": `${option.label} ${keyVisible ? hideKeyLabel : showKeyLabel}`, onClick: () => toggleKeyVisible(option.id), children: _jsx(Icon, { name: keyVisible ? 'eye-off' : 'eye', size: 14 }) })] }), _jsxs("label", { className: "jini-media-provider-field", children: [_jsx("span", { className: "jini-field-label jini-sr-only", children: baseUrlLabel }), _jsx("input", { className: "jini-input", type: "url", inputMode: "url", spellCheck: false, placeholder: option.defaultBaseUrl || baseUrlPlaceholder, "aria-label": `${option.label} ${baseUrlLabel}`, value: rawBaseUrl, "aria-invalid": baseUrlInvalid || undefined, onChange: (event) => updateProvider(option.id, { baseUrl: event.target.value }) })] }), option.models && option.models.length > 0 ? (_jsxs("label", { className: "jini-media-provider-field", children: [_jsx("span", { className: "jini-field-label jini-sr-only", children: modelLabel }), _jsx("input", { className: "jini-input", list: modelListId, spellCheck: false, placeholder: modelPlaceholder, "aria-label": `${option.label} ${modelLabel}`, value: entry.model ?? '', onChange: (event) => updateProvider(option.id, { model: event.target.value }) }), _jsx("datalist", { id: modelListId, children: option.models.map((model) => (_jsx("option", { value: model }, model))) })] })) : null, _jsx("button", { type: "button", className: "jini-button jini-button-ghost", disabled: !clearable, "aria-label": `${option.label} ${clearLabel}`, onClick: () => clearProvider(option.id), children: clearLabel })] }), baseUrlInvalid ? (_jsx("span", { className: "jini-field-hint jini-hint-error", role: "alert", children: baseUrlInvalidLabel })) : !rawBaseUrl.trim() && effectiveBaseUrl ? (_jsx("span", { className: "jini-field-hint", children: t(baseUrlDefaultHintTemplate, { url: effectiveBaseUrl }) })) : null] })] }, option.id));
90
- }) }), _jsxs("div", { className: "jini-media-provider-save-row", children: [_jsx("button", { type: "button", className: "jini-button", onClick: saveChanges, disabled: save.status === 'saving' || !hasPendingChanges || blockedByInvalidBaseUrl, children: save.status === 'saving' ? savingLabel : saveChangesLabel }), save.status === 'saved' ? (_jsx("span", { className: "jini-hint", role: "status", children: savedNoticeLabel })) : null, save.status === 'save-error' ? (_jsx("span", { className: "jini-hint jini-hint-error", role: "alert", children: saveErrorLabel })) : null] })] }));
94
+ _jsx("span", { className: "jini-field-status-badge jini-field-status-badge-success", children: t(savedWithMaskTemplate, { mask: maskedLabel }) })) : null, !saved && pendingProviderIds.has(option.id) ? _jsx("span", { className: "jini-field-status-badge", children: unsavedLabel }) : null] }), _jsxs("div", { className: "jini-media-provider-fields", children: [_jsxs("label", { className: "jini-media-provider-field jini-media-provider-field--secret", children: [_jsx("span", { className: "jini-field-label jini-sr-only", children: apiKeyLabel }), _jsx("input", { className: "jini-input", type: keyVisible ? 'text' : 'password',
95
+ /* `new-password`, NOT `"off"` — Chrome deliberately ignores `off` on
96
+ credential-shaped fields, which is how a saved password gets autofilled into
97
+ an API-key box. Same defect, same fix, same reasoning as
98
+ `ByokProviderForm`'s own API-key input; see its comment. */
99
+ autoComplete: "new-password", spellCheck: false, placeholder: saved ? maskedLabel : apiKeyPlaceholder, "aria-label": `${option.label} ${apiKeyLabel}`, value: entry.apiKey ?? '', onChange: (event) => updateProvider(option.id, { apiKey: event.target.value }), ...agentHandleProps(providerHandle, { action: 'api-key', role: 'field', label: `${option.label} ${apiKeyLabel}` }) }), _jsx("button", { type: "button", className: "jini-input-affix-btn", "aria-pressed": keyVisible, "aria-label": `${option.label} ${keyVisible ? hideKeyLabel : showKeyLabel}`, onClick: () => toggleKeyVisible(option.id), ...agentHandleProps(providerHandle, { action: 'reveal-key', role: 'button', label: `${option.label} ${showKeyLabel}` }), children: _jsx(Icon, { name: keyVisible ? 'eye-off' : 'eye', size: 14 }) })] }), _jsxs("label", { className: "jini-media-provider-field", children: [_jsx("span", { className: "jini-field-label jini-sr-only", children: baseUrlLabel }), _jsx("input", { className: "jini-input", type: "url", inputMode: "url", spellCheck: false, placeholder: option.defaultBaseUrl || baseUrlPlaceholder, "aria-label": `${option.label} ${baseUrlLabel}`, value: rawBaseUrl, "aria-invalid": baseUrlInvalid || undefined, onChange: (event) => updateProvider(option.id, { baseUrl: event.target.value }), ...agentHandleProps(providerHandle, { action: 'base-url', role: 'field', label: `${option.label} ${baseUrlLabel}` }) })] }), option.models && option.models.length > 0 ? (_jsxs("label", { className: "jini-media-provider-field", children: [_jsx("span", { className: "jini-field-label jini-sr-only", children: modelLabel }), _jsx("input", { className: "jini-input", list: modelListId, spellCheck: false, placeholder: modelPlaceholder, "aria-label": `${option.label} ${modelLabel}`, value: entry.model ?? '', onChange: (event) => updateProvider(option.id, { model: event.target.value }), ...agentHandleProps(providerHandle, { action: 'model', role: 'field', label: `${option.label} ${modelLabel}` }) }), _jsx("datalist", { id: modelListId, children: option.models.map((model) => (_jsx("option", { value: model }, model))) })] })) : null, _jsx("button", { type: "button", className: "jini-button jini-button-ghost", disabled: !clearable, "aria-label": `${option.label} ${clearLabel}`, onClick: () => clearProvider(option.id), ...agentHandleProps(providerHandle, { action: 'clear', role: 'button', label: `${option.label} ${clearLabel}` }), children: clearLabel })] }), baseUrlInvalid ? (_jsx("span", { className: "jini-field-hint jini-hint-error", role: "alert", children: baseUrlInvalidLabel })) : !rawBaseUrl.trim() && effectiveBaseUrl ? (_jsx("span", { className: "jini-field-hint", children: t(baseUrlDefaultHintTemplate, { url: effectiveBaseUrl }) })) : null] })] }, option.id));
100
+ }) }), _jsxs("div", { className: "jini-media-provider-save-row", children: [_jsx("button", { type: "button", className: "jini-button", onClick: saveChanges, disabled: save.status === 'saving' || !hasPendingChanges || blockedByInvalidBaseUrl, ...agentHandleProps(agentHandle, { action: 'save', role: 'button', label: saveChangesLabel }), children: save.status === 'saving' ? savingLabel : saveChangesLabel }), save.status === 'saved' ? (_jsx("span", { className: "jini-hint", role: "status", children: savedNoticeLabel })) : null, save.status === 'save-error' ? (_jsx("span", { className: "jini-hint jini-hint-error", role: "alert", children: saveErrorLabel })) : null] })] }));
91
101
  }
92
102
  //# sourceMappingURL=MediaProvidersTab.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MediaProvidersTab.js","sourceRoot":"","sources":["../../../../../src/features/media-providers/react/components/MediaProvidersTab.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MediaProvidersTab.js","sourceRoot":"","sources":["../../../../../src/features/media-providers/react/components/MediaProvidersTab.tsx"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
1
  import type { MemoryEntrySummary } from '../../types.js';
2
- export declare function MemoryEntryCard({ entry, previewId, previewBody, onOpenPreview, onStartEdit, onDelete, }: {
2
+ export declare function MemoryEntryCard({ entry, previewId, previewBody, onOpenPreview, onStartEdit, onDelete, agentHandle, }: {
3
3
  entry: MemoryEntrySummary;
4
4
  previewId: string | null;
5
5
  previewBody: string | null;
6
6
  onOpenPreview: (id: string) => void;
7
7
  onStartEdit: (id: string) => void;
8
8
  onDelete: (id: string) => void;
9
+ /** This card's own agent handle — `MemoryList` derives one per entry. */
10
+ agentHandle?: string;
9
11
  }): import("react").JSX.Element;
10
12
  //# sourceMappingURL=MemoryEntryCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryEntryCard.d.ts","sourceRoot":"","sources":["../../../../../src/features/memory/react/components/MemoryEntryCard.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,SAAS,EACT,WAAW,EACX,aAAa,EACb,WAAW,EACX,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,kBAAkB,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC,+BAuCA"}
1
+ {"version":3,"file":"MemoryEntryCard.d.ts","sourceRoot":"","sources":["../../../../../src/features/memory/react/components/MemoryEntryCard.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,SAAS,EACT,WAAW,EACX,aAAa,EACb,WAAW,EACX,QAAQ,EACR,WAAW,GACZ,EAAE;IACD,KAAK,EAAE,kBAAkB,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,+BAoDA"}
@@ -7,11 +7,12 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
7
  // `@jini-ai/chat`'s `./react` subpath (formerly this package's own `./chat` export, extracted
8
8
  // 2026-08-03)/this package's own `./renderers` subpath — see `packages/ui/source-map.md`)
9
9
  // — just enough to render a saved memory's plain-text/Markdown body safely.
10
+ import { agentHandleProps } from '@jini-ai/agentic';
10
11
  import { Icon } from '../../../../react/components/Icon.js';
11
12
  import { useT } from '../../../i18n/index.js';
12
13
  import { renderMarkdown } from '../render-markdown.js';
13
- export function MemoryEntryCard({ entry, previewId, previewBody, onOpenPreview, onStartEdit, onDelete, }) {
14
+ export function MemoryEntryCard({ entry, previewId, previewBody, onOpenPreview, onStartEdit, onDelete, agentHandle, }) {
14
15
  const t = useT();
15
- return (_jsxs("div", { className: "library-card", children: [_jsxs("div", { className: "library-card-info", children: [_jsx("div", { className: "library-card-title-row", children: _jsx("span", { className: "library-card-name", children: entry.name }) }), _jsx("div", { className: "library-card-desc", children: entry.description || '—' })] }), _jsxs("div", { className: "memory-card-actions", children: [_jsx("button", { type: "button", className: "library-card-expand", onClick: () => onOpenPreview(entry.id), title: t('Preview'), children: _jsx(Icon, { name: previewId === entry.id ? 'chevron-down' : 'chevron-right', size: 14 }) }), _jsx("button", { type: "button", className: "ghost library-card-action", onClick: () => onStartEdit(entry.id), title: t('Edit'), children: _jsx(Icon, { name: "edit", size: 14 }) }), _jsx("button", { type: "button", className: "ghost library-card-action", onClick: () => onDelete(entry.id), title: t('Delete'), children: _jsx(Icon, { name: "close", size: 14 }) })] }), previewId === entry.id && (_jsx("div", { className: "library-preview", style: { width: '100%' }, children: previewBody === null ? (_jsx("p", { children: t('Loading…') })) : previewBody ? (_jsx("div", { className: "library-preview-body", children: renderMarkdown(previewBody) })) : (_jsx("p", { className: "hint", children: "\u2014" })) }))] }));
16
+ return (_jsxs("div", { className: "library-card", children: [_jsxs("div", { className: "library-card-info", children: [_jsx("div", { className: "library-card-title-row", children: _jsx("span", { className: "library-card-name", children: entry.name }) }), _jsx("div", { className: "library-card-desc", children: entry.description || '—' })] }), _jsxs("div", { className: "memory-card-actions", children: [_jsx("button", { type: "button", className: "library-card-expand", onClick: () => onOpenPreview(entry.id), title: t('Preview'), ...agentHandleProps(agentHandle, { action: 'preview', role: 'button', label: t('Preview') }), children: _jsx(Icon, { name: previewId === entry.id ? 'chevron-down' : 'chevron-right', size: 14 }) }), _jsx("button", { type: "button", className: "ghost library-card-action", onClick: () => onStartEdit(entry.id), title: t('Edit'), ...agentHandleProps(agentHandle, { action: 'edit', role: 'button', label: t('Edit') }), children: _jsx(Icon, { name: "edit", size: 14 }) }), _jsx("button", { type: "button", className: "ghost library-card-action", onClick: () => onDelete(entry.id), title: t('Delete'), ...agentHandleProps(agentHandle, { action: 'delete', role: 'button', label: t('Delete') }), children: _jsx(Icon, { name: "close", size: 14 }) })] }), previewId === entry.id && (_jsx("div", { className: "library-preview", style: { width: '100%' }, children: previewBody === null ? (_jsx("p", { children: t('Loading…') })) : previewBody ? (_jsx("div", { className: "library-preview-body", children: renderMarkdown(previewBody) })) : (_jsx("p", { className: "hint", children: "\u2014" })) }))] }));
16
17
  }
17
18
  //# sourceMappingURL=MemoryEntryCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryEntryCard.js","sourceRoot":"","sources":["../../../../../src/features/memory/react/components/MemoryEntryCard.tsx"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,8EAA8E;AAC9E,8EAA8E;AAC9E,2EAA2E;AAC3E,mEAAmE;AACnE,8FAA8F;AAC9F,0FAA0F;AAC1F,4EAA4E;AAC5E,OAAO,EAAE,IAAI,EAAE,MAAM,sCAAsC,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,EACL,SAAS,EACT,WAAW,EACX,aAAa,EACb,WAAW,EACX,QAAQ,GAQT;IACC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IACjB,OAAO,CACL,eAAK,SAAS,EAAC,cAAc,aAC3B,eAAK,SAAS,EAAC,mBAAmB,aAChC,cAAK,SAAS,EAAC,wBAAwB,YACrC,eAAM,SAAS,EAAC,mBAAmB,YAAE,KAAK,CAAC,IAAI,GAAQ,GACnD,EACN,cAAK,SAAS,EAAC,mBAAmB,YAAE,KAAK,CAAC,WAAW,IAAI,GAAG,GAAO,IAC/D,EACN,eAAK,SAAS,EAAC,qBAAqB,aAClC,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,qBAAqB,EAC/B,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,EACtC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,YAEnB,KAAC,IAAI,IAAC,IAAI,EAAE,SAAS,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,EAAE,IAAI,EAAE,EAAE,GAAI,GAC5E,EACT,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,2BAA2B,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,YAChH,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAE,EAAE,GAAI,GACvB,EACT,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,2BAA2B,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,YAC/G,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,EAAE,GAAI,GACxB,IACL,EACL,SAAS,KAAK,KAAK,CAAC,EAAE,IAAI,CACzB,cAAK,SAAS,EAAC,iBAAiB,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YACtD,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,CACtB,sBAAI,CAAC,CAAC,UAAU,CAAC,GAAK,CACvB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAChB,cAAK,SAAS,EAAC,sBAAsB,YAAE,cAAc,CAAC,WAAW,CAAC,GAAO,CAC1E,CAAC,CAAC,CAAC,CACF,YAAG,SAAS,EAAC,MAAM,uBAAM,CAC1B,GACG,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"MemoryEntryCard.js","sourceRoot":"","sources":["../../../../../src/features/memory/react/components/MemoryEntryCard.tsx"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  import type { MemoryExtractionRecord } from '../../types.js';
2
- export declare function MemoryExtractionCard({ record, nowClock, onOpenPreview, onDelete, }: {
2
+ export declare function MemoryExtractionCard({ record, nowClock, onOpenPreview, onDelete, agentHandle, }: {
3
3
  record: MemoryExtractionRecord;
4
4
  /** Wall clock so relative ages ("12s ago") re-render without freezing. */
5
5
  nowClock: number;
6
6
  onOpenPreview: (id: string) => void;
7
7
  onDelete: (id: string) => void;
8
+ /** This card's own agent handle — `MemoryList` derives one per extraction record. */
9
+ agentHandle?: string;
8
10
  }): import("react").JSX.Element;
9
11
  //# sourceMappingURL=MemoryExtractionCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryExtractionCard.d.ts","sourceRoot":"","sources":["../../../../../src/features/memory/react/components/MemoryExtractionCard.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE7D,wBAAgB,oBAAoB,CAAC,EACnC,MAAM,EACN,QAAQ,EACR,aAAa,EACb,QAAQ,GACT,EAAE;IACD,MAAM,EAAE,sBAAsB,CAAC;IAC/B,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC,+BAoDA"}
1
+ {"version":3,"file":"MemoryExtractionCard.d.ts","sourceRoot":"","sources":["../../../../../src/features/memory/react/components/MemoryExtractionCard.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE7D,wBAAgB,oBAAoB,CAAC,EACnC,MAAM,EACN,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,WAAW,GACZ,EAAE;IACD,MAAM,EAAE,sBAAsB,CAAC;IAC/B,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,qFAAqF;IACrF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,+BAqDA"}
@@ -3,10 +3,11 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  // optional failure explanation, the written-entry chips, and a delete action.
4
4
  // Shared by the saved-memory list and the connected-apps scan history. Pure
5
5
  // formatting comes from the slice formatters; state lives in the hooks.
6
+ import { agentHandleProps } from '@jini-ai/agentic';
6
7
  import { Icon } from '../../../../react/components/Icon.js';
7
8
  import { useT } from '../../../i18n/index.js';
8
9
  import { describeExtractionFailure, describeRecord, extractionCardMeta, extractionCardTitle, } from '../../formatters.js';
9
- export function MemoryExtractionCard({ record, nowClock, onOpenPreview, onDelete, }) {
10
+ export function MemoryExtractionCard({ record, nowClock, onOpenPreview, onDelete, agentHandle, }) {
10
11
  const t = useT();
11
12
  const desc = describeRecord(record, t);
12
13
  const title = extractionCardTitle(record, t);
@@ -15,6 +16,6 @@ export function MemoryExtractionCard({ record, nowClock, onOpenPreview, onDelete
15
16
  // the record didn't fail), so we render off its result directly instead of
16
17
  // duplicating that guard here.
17
18
  const failure = describeExtractionFailure(record);
18
- return (_jsxs("div", { className: `library-card memory-extraction-card is-${desc.tone}`, children: [_jsxs("div", { className: "library-card-info", children: [_jsxs("div", { className: "library-card-title-row", children: [_jsx("span", { className: "library-card-name", children: title }), _jsx("span", { className: `memory-extraction-pill is-${desc.tone}`, children: desc.phaseLabel }), _jsx("span", { className: "library-card-badge", children: desc.kindLabel })] }), _jsx("div", { className: "library-card-desc", children: meta }), desc.reasonLabel ? _jsx("div", { className: "memory-extraction-reason", children: desc.reasonLabel }) : null, failure ? (_jsxs("div", { className: "memory-extraction-failure", children: [_jsx("strong", { children: failure.title }), _jsx("span", { children: failure.detail }), _jsx("span", { children: failure.action })] })) : null, Array.isArray(record.writtenIds) && record.writtenIds.length > 0 ? (_jsxs("div", { className: "memory-extraction-counts", children: [_jsx("span", { children: t('saved') }), _jsx("span", { className: "memory-extraction-ids", children: record.writtenIds.map((id) => (_jsx("button", { type: "button", className: "filter-pill", onClick: () => onOpenPreview(id), title: id, children: id }, id))) })] })) : null] }), _jsx("div", { className: "memory-card-actions", children: _jsx("button", { type: "button", className: "ghost library-card-action", onClick: () => onDelete(record.id), title: t('Remove'), "aria-label": t('Remove'), children: _jsx(Icon, { name: "close", size: 14 }) }) })] }));
19
+ return (_jsxs("div", { className: `library-card memory-extraction-card is-${desc.tone}`, children: [_jsxs("div", { className: "library-card-info", children: [_jsxs("div", { className: "library-card-title-row", children: [_jsx("span", { className: "library-card-name", children: title }), _jsx("span", { className: `memory-extraction-pill is-${desc.tone}`, children: desc.phaseLabel }), _jsx("span", { className: "library-card-badge", children: desc.kindLabel })] }), _jsx("div", { className: "library-card-desc", children: meta }), desc.reasonLabel ? _jsx("div", { className: "memory-extraction-reason", children: desc.reasonLabel }) : null, failure ? (_jsxs("div", { className: "memory-extraction-failure", children: [_jsx("strong", { children: failure.title }), _jsx("span", { children: failure.detail }), _jsx("span", { children: failure.action })] })) : null, Array.isArray(record.writtenIds) && record.writtenIds.length > 0 ? (_jsxs("div", { className: "memory-extraction-counts", children: [_jsx("span", { children: t('saved') }), _jsx("span", { className: "memory-extraction-ids", children: record.writtenIds.map((id) => (_jsx("button", { type: "button", className: "filter-pill", onClick: () => onOpenPreview(id), title: id, children: id }, id))) })] })) : null] }), _jsx("div", { className: "memory-card-actions", children: _jsx("button", { type: "button", className: "ghost library-card-action", onClick: () => onDelete(record.id), title: t('Remove'), "aria-label": t('Remove'), ...agentHandleProps(agentHandle, { action: 'delete', role: 'button', label: t('Remove') }), children: _jsx(Icon, { name: "close", size: 14 }) }) })] }));
19
20
  }
20
21
  //# sourceMappingURL=MemoryExtractionCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryExtractionCard.js","sourceRoot":"","sources":["../../../../../src/features/memory/react/components/MemoryExtractionCard.tsx"],"names":[],"mappings":";AAAA,0EAA0E;AAC1E,8EAA8E;AAC9E,4EAA4E;AAC5E,wEAAwE;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,sCAAsC,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAG7B,MAAM,UAAU,oBAAoB,CAAC,EACnC,MAAM,EACN,QAAQ,EACR,aAAa,EACb,QAAQ,GAOT;IACC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IACjB,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IACrD,8EAA8E;IAC9E,2EAA2E;IAC3E,+BAA+B;IAC/B,MAAM,OAAO,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAClD,OAAO,CACL,eAAK,SAAS,EAAE,0CAA0C,IAAI,CAAC,IAAI,EAAE,aACnE,eAAK,SAAS,EAAC,mBAAmB,aAChC,eAAK,SAAS,EAAC,wBAAwB,aACrC,eAAM,SAAS,EAAC,mBAAmB,YAAE,KAAK,GAAQ,EAClD,eAAM,SAAS,EAAE,6BAA6B,IAAI,CAAC,IAAI,EAAE,YAAG,IAAI,CAAC,UAAU,GAAQ,EACnF,eAAM,SAAS,EAAC,oBAAoB,YAAE,IAAI,CAAC,SAAS,GAAQ,IACxD,EACN,cAAK,SAAS,EAAC,mBAAmB,YAAE,IAAI,GAAO,EAC9C,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,0BAA0B,YAAE,IAAI,CAAC,WAAW,GAAO,CAAC,CAAC,CAAC,IAAI,EAC5F,OAAO,CAAC,CAAC,CAAC,CACT,eAAK,SAAS,EAAC,2BAA2B,aACxC,2BAAS,OAAO,CAAC,KAAK,GAAU,EAChC,yBAAO,OAAO,CAAC,MAAM,GAAQ,EAC7B,yBAAO,OAAO,CAAC,MAAM,GAAQ,IACzB,CACP,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAClE,eAAK,SAAS,EAAC,0BAA0B,aACvC,yBAAO,CAAC,CAAC,OAAO,CAAC,GAAQ,EACzB,eAAM,SAAS,EAAC,uBAAuB,YACpC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,CACrC,iBAAiB,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,aAAa,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,YAC/F,EAAE,IADQ,EAAE,CAEN,CACV,CAAC,GACG,IACH,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,EACN,cAAK,SAAS,EAAC,qBAAqB,YAClC,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,2BAA2B,EACrC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAClC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,gBACN,CAAC,CAAC,QAAQ,CAAC,YAEvB,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,EAAE,GAAI,GACxB,GACL,IACF,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"MemoryExtractionCard.js","sourceRoot":"","sources":["../../../../../src/features/memory/react/components/MemoryExtractionCard.tsx"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  export type MemoryHookKey = 'profileEnabled' | 'rewriteEnabled' | 'verifyEnabled' | 'chatExtractionEnabled';
2
- export declare function MemoryHooksPanel({ enabled, flags, onToggle, }: {
2
+ export declare function MemoryHooksPanel({ enabled, flags, onToggle, agentHandle, }: {
3
3
  /** Master memory switch — when off, every hook toggle is disabled. */
4
4
  enabled: boolean;
5
5
  flags: Record<MemoryHookKey, boolean>;
6
6
  onToggle: (key: MemoryHookKey, next: boolean) => void;
7
+ /** This panel's own agent handle — one distinct sub-handle per hook toggle. */
8
+ agentHandle?: string;
7
9
  }): import("react").JSX.Element;
8
10
  //# sourceMappingURL=MemoryHooksPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryHooksPanel.d.ts","sourceRoot":"","sources":["../../../../../src/features/memory/react/components/MemoryHooksPanel.tsx"],"names":[],"mappings":"AAiBA,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,eAAe,GAAG,uBAAuB,CAAC;AAoC5G,wBAAgB,gBAAgB,CAAC,EAC/B,OAAO,EACP,KAAK,EACL,QAAQ,GACT,EAAE;IACD,sEAAsE;IACtE,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACtC,QAAQ,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACvD,+BA6CA"}
1
+ {"version":3,"file":"MemoryHooksPanel.d.ts","sourceRoot":"","sources":["../../../../../src/features/memory/react/components/MemoryHooksPanel.tsx"],"names":[],"mappings":"AAkBA,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,eAAe,GAAG,uBAAuB,CAAC;AA2C5G,wBAAgB,gBAAgB,CAAC,EAC/B,OAAO,EACP,KAAK,EACL,QAAQ,EACR,WAAW,GACZ,EAAE;IACD,sEAAsE;IACtE,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACtC,QAAQ,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtD,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,+BA8CA"}
@@ -13,36 +13,41 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
13
  // toggle callbacks. Folded into this slice from OD's separate
14
14
  // `components/MemoryHooksPanel.tsx` (single consumer, `MemoryHowPanel`) — see
15
15
  // `packages/ui/source-map.md`.
16
+ import { agentHandleProps } from '@jini-ai/agentic';
16
17
  import { Icon } from '../../../../react/components/Icon.js';
17
18
  import { useT } from '../../../i18n/index.js';
18
19
  const HOOKS = [
19
20
  {
20
21
  key: 'profileEnabled',
22
+ action: 'profile',
21
23
  icon: 'home',
22
24
  label: 'Profile injection',
23
25
  description: 'Include your saved profile in the prompt.',
24
26
  },
25
27
  {
26
28
  key: 'rewriteEnabled',
29
+ action: 'rewrite',
27
30
  icon: 'sparkles',
28
31
  label: 'Query rewrite',
29
32
  description: 'Expand short requests into a fuller task brief first.',
30
33
  },
31
34
  {
32
35
  key: 'verifyEnabled',
36
+ action: 'verify',
33
37
  icon: 'check',
34
38
  label: 'Self-verify',
35
39
  description: 'Check responses against saved rules and report a scorecard.',
36
40
  },
37
41
  {
38
42
  key: 'chatExtractionEnabled',
43
+ action: 'chat-extraction',
39
44
  icon: 'history',
40
45
  label: 'Chat extraction',
41
46
  description: 'Learn new facts and preferences from chat turns.',
42
47
  },
43
48
  ];
44
- export function MemoryHooksPanel({ enabled, flags, onToggle, }) {
49
+ export function MemoryHooksPanel({ enabled, flags, onToggle, agentHandle, }) {
45
50
  const t = useT();
46
- return (_jsxs("div", { className: "memory-hooks-panel", "data-testid": "memory-hooks-panel", children: [_jsxs("div", { className: "memory-hooks-panel-head", children: [_jsx("span", { className: "memory-hooks-panel-head-icon", "aria-hidden": "true", children: _jsx(Icon, { name: "sliders", size: 15 }) }), _jsxs("div", { children: [_jsx("h4", { className: "memory-hooks-panel-title", children: t('Memory hooks') }), _jsx("p", { className: "memory-hooks-panel-hint", children: t('Fine-tune how memory is captured and used, without turning it off entirely.') })] })] }), _jsx("ul", { className: "memory-hooks-panel-list", children: HOOKS.map((hook) => (_jsxs("li", { className: "memory-hooks-panel-row", children: [_jsx("span", { className: "memory-hooks-panel-row-icon", "aria-hidden": "true", children: _jsx(Icon, { name: hook.icon, size: 14 }) }), _jsxs("span", { className: "memory-hooks-panel-row-copy", children: [_jsx("span", { className: "memory-hooks-panel-row-label", children: t(hook.label) }), _jsx("small", { className: "memory-hooks-panel-row-desc", children: t(hook.description) })] }), _jsx("label", { className: "memory-hooks-panel-toggle", title: t(hook.label), children: _jsxs("span", { className: "toggle-switch toggle-switch-sm", children: [_jsx("input", { type: "checkbox", "aria-label": t(hook.label), checked: flags[hook.key], disabled: !enabled, onChange: (e) => onToggle(hook.key, e.target.checked) }), _jsx("span", { className: "toggle-slider" })] }) })] }, hook.key))) })] }));
51
+ return (_jsxs("div", { className: "memory-hooks-panel", "data-testid": "memory-hooks-panel", children: [_jsxs("div", { className: "memory-hooks-panel-head", children: [_jsx("span", { className: "memory-hooks-panel-head-icon", "aria-hidden": "true", children: _jsx(Icon, { name: "sliders", size: 15 }) }), _jsxs("div", { children: [_jsx("h4", { className: "memory-hooks-panel-title", children: t('Memory hooks') }), _jsx("p", { className: "memory-hooks-panel-hint", children: t('Fine-tune how memory is captured and used, without turning it off entirely.') })] })] }), _jsx("ul", { className: "memory-hooks-panel-list", children: HOOKS.map((hook) => (_jsxs("li", { className: "memory-hooks-panel-row", children: [_jsx("span", { className: "memory-hooks-panel-row-icon", "aria-hidden": "true", children: _jsx(Icon, { name: hook.icon, size: 14 }) }), _jsxs("span", { className: "memory-hooks-panel-row-copy", children: [_jsx("span", { className: "memory-hooks-panel-row-label", children: t(hook.label) }), _jsx("small", { className: "memory-hooks-panel-row-desc", children: t(hook.description) })] }), _jsx("label", { className: "memory-hooks-panel-toggle", title: t(hook.label), children: _jsxs("span", { className: "toggle-switch toggle-switch-sm", children: [_jsx("input", { type: "checkbox", "aria-label": t(hook.label), checked: flags[hook.key], disabled: !enabled, onChange: (e) => onToggle(hook.key, e.target.checked), ...agentHandleProps(agentHandle, { action: `hook-${hook.action}`, role: 'checkbox', label: t(hook.label) }) }), _jsx("span", { className: "toggle-slider" })] }) })] }, hook.key))) })] }));
47
52
  }
48
53
  //# sourceMappingURL=MemoryHooksPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryHooksPanel.js","sourceRoot":"","sources":["../../../../../src/features/memory/react/components/MemoryHooksPanel.tsx"],"names":[],"mappings":";AAAA,6EAA6E;AAC7E,0EAA0E;AAC1E,4EAA4E;AAC5E,mBAAmB;AACnB,kEAAkE;AAClE,6EAA6E;AAC7E,gFAAgF;AAChF,gFAAgF;AAChF,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,8DAA8D;AAC9D,8EAA8E;AAC9E,+BAA+B;AAC/B,OAAO,EAAE,IAAI,EAAiB,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAW9C,MAAM,KAAK,GAA2B;IACpC;QACE,GAAG,EAAE,gBAAgB;QACrB,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,2CAA2C;KACzD;IACD;QACE,GAAG,EAAE,gBAAgB;QACrB,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,uDAAuD;KACrE;IACD;QACE,GAAG,EAAE,eAAe;QACpB,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,6DAA6D;KAC3E;IACD;QACE,GAAG,EAAE,uBAAuB;QAC5B,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,kDAAkD;KAChE;CACF,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,EAC/B,OAAO,EACP,KAAK,EACL,QAAQ,GAMT;IACC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IACjB,OAAO,CACL,eAAK,SAAS,EAAC,oBAAoB,iBAAa,oBAAoB,aAClE,eAAK,SAAS,EAAC,yBAAyB,aACtC,eAAM,SAAS,EAAC,8BAA8B,iBAAa,MAAM,YAC/D,KAAC,IAAI,IAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAE,EAAE,GAAI,GAC5B,EACP,0BACE,aAAI,SAAS,EAAC,0BAA0B,YAAE,CAAC,CAAC,cAAc,CAAC,GAAM,EACjE,YAAG,SAAS,EAAC,yBAAyB,YACnC,CAAC,CAAC,6EAA6E,CAAC,GAC/E,IACA,IACF,EACN,aAAI,SAAS,EAAC,yBAAyB,YACpC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,cAAmB,SAAS,EAAC,wBAAwB,aACnD,eAAM,SAAS,EAAC,6BAA6B,iBAAa,MAAM,YAC9D,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,GAAI,GAC9B,EACP,gBAAM,SAAS,EAAC,6BAA6B,aAC3C,eAAM,SAAS,EAAC,8BAA8B,YAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAQ,EACrE,gBAAO,SAAS,EAAC,6BAA6B,YAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAS,IACvE,EACP,gBAAO,SAAS,EAAC,2BAA2B,EAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAC/D,gBAAM,SAAS,EAAC,gCAAgC,aAC9C,gBACE,IAAI,EAAC,UAAU,gBAIH,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EACzB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EACxB,QAAQ,EAAE,CAAC,OAAO,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GACrD,EACF,eAAM,SAAS,EAAC,eAAe,GAAG,IAC7B,GACD,KAtBD,IAAI,CAAC,GAAG,CAuBZ,CACN,CAAC,GACC,IACD,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"MemoryHooksPanel.js","sourceRoot":"","sources":["../../../../../src/features/memory/react/components/MemoryHooksPanel.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import type { MemoryConfigFlagKey } from '../../rules.js';
2
- export declare function MemoryHowPanel({ enabled, hookFlags, onToggleHook, }: {
2
+ export declare function MemoryHowPanel({ enabled, hookFlags, onToggleHook, agentHandle, }: {
3
3
  enabled: boolean;
4
4
  hookFlags: Record<MemoryConfigFlagKey, boolean>;
5
5
  onToggleHook: (key: MemoryConfigFlagKey, next: boolean) => void;
6
+ /** This panel's own agent handle, forwarded unchanged to `MemoryHooksPanel`. */
7
+ agentHandle?: string;
6
8
  }): import("react").JSX.Element;
7
9
  //# sourceMappingURL=MemoryHowPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryHowPanel.d.ts","sourceRoot":"","sources":["../../../../../src/features/memory/react/components/MemoryHowPanel.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAG1D,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,SAAS,EACT,YAAY,GACb,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;IAChD,YAAY,EAAE,CAAC,GAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACjE,+BAqBA"}
1
+ {"version":3,"file":"MemoryHowPanel.d.ts","sourceRoot":"","sources":["../../../../../src/features/memory/react/components/MemoryHowPanel.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAG1D,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,SAAS,EACT,YAAY,EACZ,WAAW,GACZ,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;IAChD,YAAY,EAAE,CAAC,GAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAChE,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,+BAqBA"}
@@ -5,8 +5,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import { Icon } from '../../../../react/components/Icon.js';
6
6
  import { useT } from '../../../i18n/index.js';
7
7
  import { MemoryHooksPanel } from './MemoryHooksPanel.js';
8
- export function MemoryHowPanel({ enabled, hookFlags, onToggleHook, }) {
8
+ export function MemoryHowPanel({ enabled, hookFlags, onToggleHook, agentHandle, }) {
9
9
  const t = useT();
10
- return (_jsxs("div", { className: "memory-how-panel", children: [_jsxs("div", { className: "memory-auto-flow", children: [_jsx("span", { children: t('Onboarding') }), _jsx(Icon, { name: "chevron-right", size: 13 }), _jsx("span", { children: t('Brand context') }), _jsx(Icon, { name: "chevron-right", size: 13 }), _jsx("span", { children: t('Chat signals') }), _jsx(Icon, { name: "chevron-right", size: 13 }), _jsx("strong", { children: t('Saved memory') })] }), _jsx("p", { className: "memory-how-copy", children: t('Memory is gathered automatically from profile setup, project and brand extraction, connected apps, and useful facts learned during chats. The saved list below is the review surface; everything else stays quiet unless you open Add or Advanced.') }), _jsx(MemoryHooksPanel, { enabled: enabled, flags: hookFlags, onToggle: onToggleHook })] }));
10
+ return (_jsxs("div", { className: "memory-how-panel", children: [_jsxs("div", { className: "memory-auto-flow", children: [_jsx("span", { children: t('Onboarding') }), _jsx(Icon, { name: "chevron-right", size: 13 }), _jsx("span", { children: t('Brand context') }), _jsx(Icon, { name: "chevron-right", size: 13 }), _jsx("span", { children: t('Chat signals') }), _jsx(Icon, { name: "chevron-right", size: 13 }), _jsx("strong", { children: t('Saved memory') })] }), _jsx("p", { className: "memory-how-copy", children: t('Memory is gathered automatically from profile setup, project and brand extraction, connected apps, and useful facts learned during chats. The saved list below is the review surface; everything else stays quiet unless you open Add or Advanced.') }), _jsx(MemoryHooksPanel, { enabled: enabled, flags: hookFlags, onToggle: onToggleHook, ...(agentHandle ? { agentHandle } : {}) })] }));
11
11
  }
12
12
  //# sourceMappingURL=MemoryHowPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryHowPanel.js","sourceRoot":"","sources":["../../../../../src/features/memory/react/components/MemoryHowPanel.tsx"],"names":[],"mappings":";AAAA,+EAA+E;AAC/E,+EAA+E;AAC/E,6DAA6D;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,sCAAsC,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,UAAU,cAAc,CAAC,EAC7B,OAAO,EACP,SAAS,EACT,YAAY,GAKb;IACC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IACjB,OAAO,CACL,eAAK,SAAS,EAAC,kBAAkB,aAC/B,eAAK,SAAS,EAAC,kBAAkB,aAC/B,yBAAO,CAAC,CAAC,YAAY,CAAC,GAAQ,EAC9B,KAAC,IAAI,IAAC,IAAI,EAAC,eAAe,EAAC,IAAI,EAAE,EAAE,GAAI,EACvC,yBAAO,CAAC,CAAC,eAAe,CAAC,GAAQ,EACjC,KAAC,IAAI,IAAC,IAAI,EAAC,eAAe,EAAC,IAAI,EAAE,EAAE,GAAI,EACvC,yBAAO,CAAC,CAAC,cAAc,CAAC,GAAQ,EAChC,KAAC,IAAI,IAAC,IAAI,EAAC,eAAe,EAAC,IAAI,EAAE,EAAE,GAAI,EACvC,2BAAS,CAAC,CAAC,cAAc,CAAC,GAAU,IAChC,EACN,YAAG,SAAS,EAAC,iBAAiB,YAC3B,CAAC,CACA,oPAAoP,CACrP,GACC,EACJ,KAAC,gBAAgB,IAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,GAAI,IAC5E,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"MemoryHowPanel.js","sourceRoot":"","sources":["../../../../../src/features/memory/react/components/MemoryHowPanel.tsx"],"names":[],"mappings":";AAAA,+EAA+E;AAC/E,+EAA+E;AAC/E,6DAA6D;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,sCAAsC,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,UAAU,cAAc,CAAC,EAC7B,OAAO,EACP,SAAS,EACT,YAAY,EACZ,WAAW,GAOZ;IACC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IACjB,OAAO,CACL,eAAK,SAAS,EAAC,kBAAkB,aAC/B,eAAK,SAAS,EAAC,kBAAkB,aAC/B,yBAAO,CAAC,CAAC,YAAY,CAAC,GAAQ,EAC9B,KAAC,IAAI,IAAC,IAAI,EAAC,eAAe,EAAC,IAAI,EAAE,EAAE,GAAI,EACvC,yBAAO,CAAC,CAAC,eAAe,CAAC,GAAQ,EACjC,KAAC,IAAI,IAAC,IAAI,EAAC,eAAe,EAAC,IAAI,EAAE,EAAE,GAAI,EACvC,yBAAO,CAAC,CAAC,cAAc,CAAC,GAAQ,EAChC,KAAC,IAAI,IAAC,IAAI,EAAC,eAAe,EAAC,IAAI,EAAE,EAAE,GAAI,EACvC,2BAAS,CAAC,CAAC,cAAc,CAAC,GAAU,IAChC,EACN,YAAG,SAAS,EAAC,iBAAiB,YAC3B,CAAC,CACA,oPAAoP,CACrP,GACC,EACJ,KAAC,gBAAgB,IAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,KAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAI,IACtH,CACP,CAAC;AACJ,CAAC"}