@jini-ai/ui 0.3.4 → 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.
- package/dist/features/appearance/react/components/AppearanceTab.d.ts +4 -1
- package/dist/features/appearance/react/components/AppearanceTab.d.ts.map +1 -1
- package/dist/features/appearance/react/components/AppearanceTab.js +7 -4
- package/dist/features/appearance/react/components/AppearanceTab.js.map +1 -1
- package/dist/features/connectors/ConnectorsBrowser.d.ts +8 -1
- package/dist/features/connectors/ConnectorsBrowser.d.ts.map +1 -1
- package/dist/features/connectors/ConnectorsBrowser.js +4 -3
- package/dist/features/connectors/ConnectorsBrowser.js.map +1 -1
- package/dist/features/connectors/components/ConnectorCard.d.ts +4 -1
- package/dist/features/connectors/components/ConnectorCard.d.ts.map +1 -1
- package/dist/features/connectors/components/ConnectorCard.js +5 -4
- package/dist/features/connectors/components/ConnectorCard.js.map +1 -1
- package/dist/features/connectors/components/ConnectorDetailDrawer.d.ts +3 -1
- package/dist/features/connectors/components/ConnectorDetailDrawer.d.ts.map +1 -1
- package/dist/features/connectors/components/ConnectorDetailDrawer.js +3 -2
- package/dist/features/connectors/components/ConnectorDetailDrawer.js.map +1 -1
- package/dist/features/connectors/components/ConnectorGrid.d.ts +4 -1
- package/dist/features/connectors/components/ConnectorGrid.d.ts.map +1 -1
- package/dist/features/connectors/components/ConnectorGrid.js +4 -2
- package/dist/features/connectors/components/ConnectorGrid.js.map +1 -1
- package/dist/features/connectors/components/ConnectorSearchBar.d.ts +3 -1
- package/dist/features/connectors/components/ConnectorSearchBar.d.ts.map +1 -1
- package/dist/features/connectors/components/ConnectorSearchBar.js +4 -3
- package/dist/features/connectors/components/ConnectorSearchBar.js.map +1 -1
- package/dist/features/connectors/components/ProviderTabBar.d.ts +4 -1
- package/dist/features/connectors/components/ProviderTabBar.d.ts.map +1 -1
- package/dist/features/connectors/components/ProviderTabBar.js +5 -3
- package/dist/features/connectors/components/ProviderTabBar.js.map +1 -1
- package/dist/features/execution/react/components/ByokProviderForm.d.ts +3 -1
- package/dist/features/execution/react/components/ByokProviderForm.d.ts.map +1 -1
- package/dist/features/execution/react/components/ByokProviderForm.js +5 -4
- package/dist/features/execution/react/components/ByokProviderForm.js.map +1 -1
- package/dist/features/execution/react/components/ExecutionTab.d.ts +8 -1
- package/dist/features/execution/react/components/ExecutionTab.d.ts.map +1 -1
- package/dist/features/execution/react/components/ExecutionTab.js +4 -3
- package/dist/features/execution/react/components/ExecutionTab.js.map +1 -1
- package/dist/features/execution/react/components/LocalCliAgentCard.d.ts +4 -1
- package/dist/features/execution/react/components/LocalCliAgentCard.d.ts.map +1 -1
- package/dist/features/execution/react/components/LocalCliAgentCard.js +11 -5
- package/dist/features/execution/react/components/LocalCliAgentCard.js.map +1 -1
- package/dist/features/execution/react/components/LocalCliAgentList.d.ts +4 -1
- package/dist/features/execution/react/components/LocalCliAgentList.d.ts.map +1 -1
- package/dist/features/execution/react/components/LocalCliAgentList.js +4 -2
- package/dist/features/execution/react/components/LocalCliAgentList.js.map +1 -1
- package/dist/features/execution/react/components/ProviderChipGroup.d.ts +4 -1
- package/dist/features/execution/react/components/ProviderChipGroup.d.ts.map +1 -1
- package/dist/features/execution/react/components/ProviderChipGroup.js +7 -3
- package/dist/features/execution/react/components/ProviderChipGroup.js.map +1 -1
- package/dist/features/execution/react/components/SearchableModelSelect.d.ts +4 -1
- package/dist/features/execution/react/components/SearchableModelSelect.d.ts.map +1 -1
- package/dist/features/execution/react/components/SearchableModelSelect.js +3 -2
- package/dist/features/execution/react/components/SearchableModelSelect.js.map +1 -1
- package/dist/features/execution/react/hooks/useReasoningControl.d.ts +15 -0
- package/dist/features/execution/react/hooks/useReasoningControl.d.ts.map +1 -1
- package/dist/features/execution/react/hooks/useReasoningControl.js +42 -4
- package/dist/features/execution/react/hooks/useReasoningControl.js.map +1 -1
- package/dist/features/execution/types.d.ts +14 -0
- package/dist/features/execution/types.d.ts.map +1 -1
- package/dist/features/html-editor/react/components/InteractiveHtmlEditor.d.ts +1 -1
- package/dist/features/html-editor/react/hooks/useInteractiveHtmlEditor.js +1 -1
- package/dist/features/i18n/dictionaries/index.d.ts +1 -1
- package/dist/features/instructions/react/components/InstructionsTab.d.ts +3 -1
- package/dist/features/instructions/react/components/InstructionsTab.d.ts.map +1 -1
- package/dist/features/instructions/react/components/InstructionsTab.js +3 -2
- package/dist/features/instructions/react/components/InstructionsTab.js.map +1 -1
- package/dist/features/integrations/react/components/ClientPicker.d.ts +4 -1
- package/dist/features/integrations/react/components/ClientPicker.d.ts.map +1 -1
- package/dist/features/integrations/react/components/ClientPicker.js +7 -3
- package/dist/features/integrations/react/components/ClientPicker.js.map +1 -1
- package/dist/features/integrations/react/components/CodexInstallToggleButton.d.ts +3 -1
- package/dist/features/integrations/react/components/CodexInstallToggleButton.d.ts.map +1 -1
- package/dist/features/integrations/react/components/CodexInstallToggleButton.js +3 -2
- package/dist/features/integrations/react/components/CodexInstallToggleButton.js.map +1 -1
- package/dist/features/integrations/react/components/IntegrationsTab.d.ts +6 -1
- package/dist/features/integrations/react/components/IntegrationsTab.d.ts.map +1 -1
- package/dist/features/integrations/react/components/IntegrationsTab.js +4 -3
- package/dist/features/integrations/react/components/IntegrationsTab.js.map +1 -1
- package/dist/features/language/react/components/LanguageTab.d.ts +4 -1
- package/dist/features/language/react/components/LanguageTab.d.ts.map +1 -1
- package/dist/features/language/react/components/LanguageTab.js +5 -3
- package/dist/features/language/react/components/LanguageTab.js.map +1 -1
- package/dist/features/mcp-ui/sandbox-proxy.d.ts +1 -1
- package/dist/features/mcp-ui/sandbox-proxy.js +2 -2
- package/dist/features/mcp-ui/sandbox-proxy.js.map +1 -1
- package/dist/features/mcp-ui/surfaces/outcome.d.ts +1 -1
- package/dist/features/mcp-ui/surfaces/tokens.d.ts +6 -5
- package/dist/features/mcp-ui/surfaces/tokens.d.ts.map +1 -1
- package/dist/features/mcp-ui/surfaces/tokens.js +6 -5
- package/dist/features/mcp-ui/surfaces/tokens.js.map +1 -1
- package/dist/features/media-providers/react/components/MediaProvidersTab.d.ts +4 -1
- package/dist/features/media-providers/react/components/MediaProvidersTab.d.ts.map +1 -1
- package/dist/features/media-providers/react/components/MediaProvidersTab.js +9 -4
- package/dist/features/media-providers/react/components/MediaProvidersTab.js.map +1 -1
- package/dist/features/memory/react/components/MemoryEntryCard.d.ts +3 -1
- package/dist/features/memory/react/components/MemoryEntryCard.d.ts.map +1 -1
- package/dist/features/memory/react/components/MemoryEntryCard.js +3 -2
- package/dist/features/memory/react/components/MemoryEntryCard.js.map +1 -1
- package/dist/features/memory/react/components/MemoryExtractionCard.d.ts +3 -1
- package/dist/features/memory/react/components/MemoryExtractionCard.d.ts.map +1 -1
- package/dist/features/memory/react/components/MemoryExtractionCard.js +3 -2
- package/dist/features/memory/react/components/MemoryExtractionCard.js.map +1 -1
- package/dist/features/memory/react/components/MemoryHooksPanel.d.ts +3 -1
- package/dist/features/memory/react/components/MemoryHooksPanel.d.ts.map +1 -1
- package/dist/features/memory/react/components/MemoryHooksPanel.js +7 -2
- package/dist/features/memory/react/components/MemoryHooksPanel.js.map +1 -1
- package/dist/features/memory/react/components/MemoryHowPanel.d.ts +3 -1
- package/dist/features/memory/react/components/MemoryHowPanel.d.ts.map +1 -1
- package/dist/features/memory/react/components/MemoryHowPanel.js +2 -2
- package/dist/features/memory/react/components/MemoryHowPanel.js.map +1 -1
- package/dist/features/memory/react/components/MemoryList.d.ts +3 -1
- package/dist/features/memory/react/components/MemoryList.d.ts.map +1 -1
- package/dist/features/memory/react/components/MemoryList.js +12 -5
- package/dist/features/memory/react/components/MemoryList.js.map +1 -1
- package/dist/features/memory/react/components/MemorySettingsPanel.d.ts +7 -1
- package/dist/features/memory/react/components/MemorySettingsPanel.d.ts.map +1 -1
- package/dist/features/memory/react/components/MemorySettingsPanel.js +3 -2
- package/dist/features/memory/react/components/MemorySettingsPanel.js.map +1 -1
- package/dist/features/notifications/react/components/NotificationsTab.d.ts +3 -1
- package/dist/features/notifications/react/components/NotificationsTab.d.ts.map +1 -1
- package/dist/features/notifications/react/components/NotificationsTab.js +13 -6
- package/dist/features/notifications/react/components/NotificationsTab.js.map +1 -1
- package/dist/features/privacy/react/components/PrivacyTab.d.ts +9 -1
- package/dist/features/privacy/react/components/PrivacyTab.d.ts.map +1 -1
- package/dist/features/privacy/react/components/PrivacyTab.js +5 -4
- package/dist/features/privacy/react/components/PrivacyTab.js.map +1 -1
- package/dist/features/settings/dialog/react/components/SettingsDialogShell.d.ts +1 -1
- package/dist/features/settings/dialog/styles/settings-dialog.css +1 -0
- package/dist/features/skills/react/components/SkillDraftForm.d.ts +3 -1
- package/dist/features/skills/react/components/SkillDraftForm.d.ts.map +1 -1
- package/dist/features/skills/react/components/SkillDraftForm.js +3 -2
- package/dist/features/skills/react/components/SkillDraftForm.js.map +1 -1
- package/dist/features/skills/react/components/SkillRow.d.ts +3 -1
- package/dist/features/skills/react/components/SkillRow.d.ts.map +1 -1
- package/dist/features/skills/react/components/SkillRow.js +3 -2
- package/dist/features/skills/react/components/SkillRow.js.map +1 -1
- package/dist/features/skills/react/components/SkillsTab.d.ts +8 -1
- package/dist/features/skills/react/components/SkillsTab.d.ts.map +1 -1
- package/dist/features/skills/react/components/SkillsTab.js +7 -3
- package/dist/features/skills/react/components/SkillsTab.js.map +1 -1
- package/dist/features/tabbed-dialog/react/components/TabbedDialog.d.ts +1 -1
- package/dist/features/tabbed-dialog/react/components/TabbedDialog.js +1 -1
- package/dist/features/tabbed-dialog/types.d.ts +2 -2
- package/dist/features/tabbed-dialog/types.js +2 -2
- package/dist/react/components/RemixIcon.d.ts +42 -1
- package/dist/react/components/RemixIcon.d.ts.map +1 -1
- package/dist/react/components/RemixIcon.js +152 -8
- package/dist/react/components/RemixIcon.js.map +1 -1
- package/dist/utils/file-transfer.d.ts.map +1 -1
- package/dist/utils/file-transfer.js +2 -0
- package/dist/utils/file-transfer.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { agentHandleProps, buildAgentListHandles } from '@jini-ai/agentic';
|
|
2
3
|
import { useT } from '../../../i18n/index.js';
|
|
3
4
|
import { Icon } from '../../../../react/components/Icon.js';
|
|
4
5
|
/**
|
|
@@ -7,12 +8,13 @@ import { Icon } from '../../../../react/components/Icon.js';
|
|
|
7
8
|
* dropped) analytics tracking call and OD's own fixed locale list (now a
|
|
8
9
|
* host-supplied `locales` prop).
|
|
9
10
|
*/
|
|
10
|
-
export function LanguageTab({ locales, selectedLocale, onSelectLocale, ariaLabel }) {
|
|
11
|
+
export function LanguageTab({ locales, selectedLocale, onSelectLocale, ariaLabel, agentHandle }) {
|
|
11
12
|
const t = useT();
|
|
12
13
|
const resolvedAriaLabel = ariaLabel ?? t('Language');
|
|
13
|
-
|
|
14
|
+
const tileHandles = agentHandle ? buildAgentListHandles(agentHandle, locales.map((l) => l.code)) : undefined;
|
|
15
|
+
return (_jsx("section", { className: "jini-settings-section jini-settings-language", children: _jsx("div", { className: "jini-settings-language-grid", role: "radiogroup", "aria-label": resolvedAriaLabel, children: locales.map(({ code, label }, index) => {
|
|
14
16
|
const active = selectedLocale === code;
|
|
15
|
-
return (_jsxs("button", { type: "button", role: "radio", "aria-checked": active, className: `jini-settings-language-tile${active ? ' active' : ''}`, onClick: () => onSelectLocale(code), children: [_jsxs("span", { className: "jini-settings-language-tile-text", children: [_jsx("span", { className: "jini-settings-language-tile-title", children: label }), _jsx("span", { className: "jini-settings-language-tile-code", children: code })] }), active ? _jsx(Icon, { name: "check", size: 16 }) : null] }, code));
|
|
17
|
+
return (_jsxs("button", { type: "button", role: "radio", "aria-checked": active, className: `jini-settings-language-tile${active ? ' active' : ''}`, onClick: () => onSelectLocale(code), ...agentHandleProps(tileHandles?.[index], { role: 'button', label }), children: [_jsxs("span", { className: "jini-settings-language-tile-text", children: [_jsx("span", { className: "jini-settings-language-tile-title", children: label }), _jsx("span", { className: "jini-settings-language-tile-code", children: code })] }), active ? _jsx(Icon, { name: "check", size: 16 }) : null] }, code));
|
|
16
18
|
}) }) }));
|
|
17
19
|
}
|
|
18
20
|
//# sourceMappingURL=LanguageTab.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LanguageTab.js","sourceRoot":"","sources":["../../../../../src/features/language/react/components/LanguageTab.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"LanguageTab.js","sourceRoot":"","sources":["../../../../../src/features/language/react/components/LanguageTab.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,sCAAsC,CAAC;AAa5D;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAoB;IAC/G,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IACjB,MAAM,iBAAiB,GAAG,SAAS,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,qBAAqB,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE7G,OAAO,CACL,kBAAS,SAAS,EAAC,8CAA8C,YAC/D,cAAK,SAAS,EAAC,6BAA6B,EAAC,IAAI,EAAC,YAAY,gBAAa,iBAAiB,YACzF,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE;gBACtC,MAAM,MAAM,GAAG,cAAc,KAAK,IAAI,CAAC;gBACvC,OAAO,CACL,kBAEE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,kBACE,MAAM,EACpB,SAAS,EAAE,8BAA8B,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAClE,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,KAC/B,gBAAgB,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,aAErE,gBAAM,SAAS,EAAC,kCAAkC,aAChD,eAAM,SAAS,EAAC,mCAAmC,YAAE,KAAK,GAAQ,EAClE,eAAM,SAAS,EAAC,kCAAkC,YAAE,IAAI,GAAQ,IAC3D,EACN,MAAM,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,EAAE,GAAI,CAAC,CAAC,CAAC,IAAI,KAZ3C,IAAI,CAaF,CACV,CAAC;YACJ,CAAC,CAAC,GACE,GACE,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -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 (
|
|
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
|
|
@@ -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 (
|
|
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
|
|
@@ -196,7 +196,7 @@ export function buildIsolatedSandboxProxyHtml(hostOrigin) {
|
|
|
196
196
|
const hostOriginLiteral = JSON.stringify(hostOrigin);
|
|
197
197
|
// A `data:` document has no HTTP response of its own to carry a CSP header, so per CSP3's
|
|
198
198
|
// "local scheme" inheritance rule this inline <script> runs under whatever CSP the embedder's
|
|
199
|
-
// OWN document currently has (none, for
|
|
199
|
+
// OWN document currently has (none, for the host product's admin app today — verified 2026-09-03: no
|
|
200
200
|
// helmet/blanket CSP is applied to admin HTML responses). If a future hardening pass adds a
|
|
201
201
|
// strict `script-src` CSP to the embedder, this inline script will need `'unsafe-inline'` (or a
|
|
202
202
|
// nonce this template does not currently support) to keep running — check that before assuming
|
|
@@ -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;AAET;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,6BAA6B,CAAC,UAAkB;IAC9D,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACrD,0FAA0F;IAC1F,8FAA8F;IAC9F,
|
|
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.
|
|
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
|
|
83
|
-
* yet (`apps/admin`'s Appearance section is a disabled "SOON" placeholder), so a
|
|
84
|
-
* the OS preference doesn't track any actual app theme — it tracks whatever the
|
|
85
|
-
* happens to be set to, which produces a dark card floating in an always-light admin
|
|
86
|
-
* to `false` once
|
|
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
|
|
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
|
|
128
|
-
* yet (`apps/admin`'s Appearance section is a disabled "SOON" placeholder), so a
|
|
129
|
-
* the OS preference doesn't track any actual app theme — it tracks whatever the
|
|
130
|
-
* happens to be set to, which produces a dark card floating in an always-light admin
|
|
131
|
-
* to `false` once
|
|
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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,iBAAiB,EAAE,SAAS;IAC5B,oBAAoB,EAAE,SAAS;IAC/B,qBAAqB,EAAE,SAAS;IAChC,4BAA4B,EAAE,SAAS;IACvC,mBAAmB,EAAE,SAAS;IAC9B,0BAA0B,EAAE,SAAS;IACrC,yBAAyB,EAAE,SAAS;IACpC,wBAAwB,EAAE,SAAS;IACnC,yBAAyB,EAAE,SAAS;IACpC,qBAAqB,EAAE,SAAS;IAChC,4BAA4B,EAAE,SAAS;IACvC,gGAAgG;IAChG,yFAAyF;IACzF,qBAAqB,EAAE,SAAS;IAChC,wBAAwB,EAAE,KAAK;IAC/B,wBAAwB,EAAE,KAAK;IAC/B,wBAAwB,EAAE,KAAK;IAC/B,wBAAwB,EAAE,MAAM;IAChC,wBAAwB,EAAE,MAAM;IAChC,0BAA0B,EAAE,OAAO;IACnC,mBAAmB,EACjB,0EAA0E;IAC5E,wBAAwB,EAAE,0DAA0D;CAC5E,CAAC;AAKX;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAqC;IACnE,iBAAiB,EAAE,SAAS;IAC5B,oBAAoB,EAAE,SAAS;IAC/B,qBAAqB,EAAE,SAAS;IAChC,4BAA4B,EAAE,SAAS;IACvC,mBAAmB,EAAE,SAAS;IAC9B,0BAA0B,EAAE,SAAS;IACrC,yBAAyB,EAAE,SAAS;IACpC,wBAAwB,EAAE,SAAS;IACnC,yBAAyB,EAAE,SAAS;IACpC,qBAAqB,EAAE,SAAS;IAChC,4BAA4B,EAAE,SAAS;IACvC,qBAAqB,EAAE,SAAS;IAChC,wBAAwB,EAAE,cAAc,CAAC,wBAAwB,CAAC;IAClE,wBAAwB,EAAE,cAAc,CAAC,wBAAwB,CAAC;IAClE,wBAAwB,EAAE,cAAc,CAAC,wBAAwB,CAAC;IAClE,wBAAwB,EAAE,cAAc,CAAC,wBAAwB,CAAC;IAClE,wBAAwB,EAAE,cAAc,CAAC,wBAAwB,CAAC;IAClE,0BAA0B,EAAE,cAAc,CAAC,0BAA0B,CAAC;IACtE,mBAAmB,EAAE,cAAc,CAAC,mBAAmB,CAAC;IACxD,wBAAwB,EAAE,cAAc,CAAC,wBAAwB,CAAC;CACnE,CAAC;AAEF;;;;GAIG;AACH,MAAM,cAAc,GAAqC;IACvD,2BAA2B,EAAE,wDAAwD;IACrF,0BAA0B,EAAE,+DAA+D;IAC3F,0BAA0B,EAAE,+DAA+D;IAC3F,2BAA2B,EAAE,wDAAwD;IACrF,0BAA0B,EAAE,+DAA+D;IAC3F,0BAA0B,EAAE,+DAA+D;IAC3F,6BAA6B,EAAE,sEAAsE;CACtG,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,mBAAmB,GAAG,+BAA+B,CAAC;AAE5D
|
|
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":"
|
|
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,6 +87,7 @@ 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.
|
|
@@ -91,7 +96,7 @@ export function MediaProvidersTab({ port, catalog = DEFAULT_MEDIA_PROVIDER_CATAL
|
|
|
91
96
|
credential-shaped fields, which is how a saved password gets autofilled into
|
|
92
97
|
an API-key box. Same defect, same fix, same reasoning as
|
|
93
98
|
`ByokProviderForm`'s own API-key input; see its comment. */
|
|
94
|
-
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 }) }), _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));
|
|
95
|
-
}) }), _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] })] }));
|
|
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] })] }));
|
|
96
101
|
}
|
|
97
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":";AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,sCAAsC,CAAC;AAE5D,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,iBAAiB,EACjB,wBAAwB,EACxB,cAAc,EACd,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;
|
|
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":"
|
|
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,
|
|
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":"
|
|
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,
|
|
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":"
|
|
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;
|
|
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,
|
|
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,
|
|
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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type MutableRefObject } from 'react';
|
|
2
2
|
import type { MemoryEntrySummary, MemoryExtractionRecord, MemoryType } from '../../types.js';
|
|
3
|
-
export declare function MemoryList({ sectionRef, entries, filtered, visibleExtractions, filter, onFilterChange, unifiedMemoryCount, onClearExtractions, onRefreshExtractions, isRefreshing, previewId, previewBody, nowClock, onOpenPreview, onStartEdit, onDeleteEntry, onDeleteExtraction, }: {
|
|
3
|
+
export declare function MemoryList({ sectionRef, entries, filtered, visibleExtractions, filter, onFilterChange, unifiedMemoryCount, onClearExtractions, onRefreshExtractions, isRefreshing, previewId, previewBody, nowClock, onOpenPreview, onStartEdit, onDeleteEntry, onDeleteExtraction, agentHandle, }: {
|
|
4
4
|
sectionRef: MutableRefObject<HTMLElement | null>;
|
|
5
5
|
entries: MemoryEntrySummary[];
|
|
6
6
|
filtered: MemoryEntrySummary[];
|
|
@@ -18,5 +18,7 @@ export declare function MemoryList({ sectionRef, entries, filtered, visibleExtra
|
|
|
18
18
|
onStartEdit: (id: string) => void;
|
|
19
19
|
onDeleteEntry: (id: string) => void;
|
|
20
20
|
onDeleteExtraction: (id: string) => void;
|
|
21
|
+
/** This section's own agent handle — see `MemorySettingsPanel`'s `agentHandle` doc. */
|
|
22
|
+
agentHandle?: string;
|
|
21
23
|
}): import("react").JSX.Element;
|
|
22
24
|
//# sourceMappingURL=MemoryList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryList.d.ts","sourceRoot":"","sources":["../../../../../src/features/memory/react/components/MemoryList.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAW,KAAK,gBAAgB,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"MemoryList.d.ts","sourceRoot":"","sources":["../../../../../src/features/memory/react/components/MemoryList.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAW,KAAK,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAMvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAI7F,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,OAAO,EACP,QAAQ,EACR,kBAAkB,EAClB,MAAM,EACN,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,SAAS,EACT,WAAW,EACX,QAAQ,EACR,aAAa,EACb,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,WAAW,GACZ,EAAE;IACD,UAAU,EAAE,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACjD,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,kBAAkB,EAAE,sBAAsB,EAAE,CAAC;IAC7C,MAAM,EAAE,KAAK,GAAG,UAAU,CAAC;IAC3B,cAAc,EAAE,CAAC,MAAM,EAAE,KAAK,GAAG,UAAU,KAAK,IAAI,CAAC;IACrD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,uFAAuF;IACvF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,+BA8HA"}
|