@jini-ai/ui 0.3.4 → 0.3.7

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 (151) 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/react/components/ByokProviderForm.d.ts +3 -1
  30. package/dist/features/execution/react/components/ByokProviderForm.d.ts.map +1 -1
  31. package/dist/features/execution/react/components/ByokProviderForm.js +5 -4
  32. package/dist/features/execution/react/components/ByokProviderForm.js.map +1 -1
  33. package/dist/features/execution/react/components/ExecutionTab.d.ts +8 -1
  34. package/dist/features/execution/react/components/ExecutionTab.d.ts.map +1 -1
  35. package/dist/features/execution/react/components/ExecutionTab.js +4 -3
  36. package/dist/features/execution/react/components/ExecutionTab.js.map +1 -1
  37. package/dist/features/execution/react/components/LocalCliAgentCard.d.ts +4 -1
  38. package/dist/features/execution/react/components/LocalCliAgentCard.d.ts.map +1 -1
  39. package/dist/features/execution/react/components/LocalCliAgentCard.js +11 -5
  40. package/dist/features/execution/react/components/LocalCliAgentCard.js.map +1 -1
  41. package/dist/features/execution/react/components/LocalCliAgentList.d.ts +4 -1
  42. package/dist/features/execution/react/components/LocalCliAgentList.d.ts.map +1 -1
  43. package/dist/features/execution/react/components/LocalCliAgentList.js +4 -2
  44. package/dist/features/execution/react/components/LocalCliAgentList.js.map +1 -1
  45. package/dist/features/execution/react/components/ProviderChipGroup.d.ts +4 -1
  46. package/dist/features/execution/react/components/ProviderChipGroup.d.ts.map +1 -1
  47. package/dist/features/execution/react/components/ProviderChipGroup.js +7 -3
  48. package/dist/features/execution/react/components/ProviderChipGroup.js.map +1 -1
  49. package/dist/features/execution/react/components/SearchableModelSelect.d.ts +4 -1
  50. package/dist/features/execution/react/components/SearchableModelSelect.d.ts.map +1 -1
  51. package/dist/features/execution/react/components/SearchableModelSelect.js +3 -2
  52. package/dist/features/execution/react/components/SearchableModelSelect.js.map +1 -1
  53. package/dist/features/execution/react/hooks/useReasoningControl.d.ts +15 -0
  54. package/dist/features/execution/react/hooks/useReasoningControl.d.ts.map +1 -1
  55. package/dist/features/execution/react/hooks/useReasoningControl.js +42 -4
  56. package/dist/features/execution/react/hooks/useReasoningControl.js.map +1 -1
  57. package/dist/features/execution/types.d.ts +14 -0
  58. package/dist/features/execution/types.d.ts.map +1 -1
  59. package/dist/features/html-editor/react/components/InteractiveHtmlEditor.d.ts +1 -1
  60. package/dist/features/html-editor/react/hooks/useInteractiveHtmlEditor.js +1 -1
  61. package/dist/features/i18n/dictionaries/index.d.ts +1 -1
  62. package/dist/features/instructions/react/components/InstructionsTab.d.ts +3 -1
  63. package/dist/features/instructions/react/components/InstructionsTab.d.ts.map +1 -1
  64. package/dist/features/instructions/react/components/InstructionsTab.js +3 -2
  65. package/dist/features/instructions/react/components/InstructionsTab.js.map +1 -1
  66. package/dist/features/integrations/react/components/ClientPicker.d.ts +4 -1
  67. package/dist/features/integrations/react/components/ClientPicker.d.ts.map +1 -1
  68. package/dist/features/integrations/react/components/ClientPicker.js +7 -3
  69. package/dist/features/integrations/react/components/ClientPicker.js.map +1 -1
  70. package/dist/features/integrations/react/components/CodexInstallToggleButton.d.ts +3 -1
  71. package/dist/features/integrations/react/components/CodexInstallToggleButton.d.ts.map +1 -1
  72. package/dist/features/integrations/react/components/CodexInstallToggleButton.js +3 -2
  73. package/dist/features/integrations/react/components/CodexInstallToggleButton.js.map +1 -1
  74. package/dist/features/integrations/react/components/IntegrationsTab.d.ts +6 -1
  75. package/dist/features/integrations/react/components/IntegrationsTab.d.ts.map +1 -1
  76. package/dist/features/integrations/react/components/IntegrationsTab.js +4 -3
  77. package/dist/features/integrations/react/components/IntegrationsTab.js.map +1 -1
  78. package/dist/features/language/react/components/LanguageTab.d.ts +4 -1
  79. package/dist/features/language/react/components/LanguageTab.d.ts.map +1 -1
  80. package/dist/features/language/react/components/LanguageTab.js +5 -3
  81. package/dist/features/language/react/components/LanguageTab.js.map +1 -1
  82. package/dist/features/mcp-ui/sandbox-proxy.d.ts +1 -1
  83. package/dist/features/mcp-ui/sandbox-proxy.js +2 -2
  84. package/dist/features/mcp-ui/sandbox-proxy.js.map +1 -1
  85. package/dist/features/mcp-ui/surfaces/outcome.d.ts +1 -1
  86. package/dist/features/mcp-ui/surfaces/tokens.d.ts +6 -5
  87. package/dist/features/mcp-ui/surfaces/tokens.d.ts.map +1 -1
  88. package/dist/features/mcp-ui/surfaces/tokens.js +6 -5
  89. package/dist/features/mcp-ui/surfaces/tokens.js.map +1 -1
  90. package/dist/features/media-providers/react/components/MediaProvidersTab.d.ts +4 -1
  91. package/dist/features/media-providers/react/components/MediaProvidersTab.d.ts.map +1 -1
  92. package/dist/features/media-providers/react/components/MediaProvidersTab.js +9 -4
  93. package/dist/features/media-providers/react/components/MediaProvidersTab.js.map +1 -1
  94. package/dist/features/memory/react/components/MemoryEntryCard.d.ts +3 -1
  95. package/dist/features/memory/react/components/MemoryEntryCard.d.ts.map +1 -1
  96. package/dist/features/memory/react/components/MemoryEntryCard.js +3 -2
  97. package/dist/features/memory/react/components/MemoryEntryCard.js.map +1 -1
  98. package/dist/features/memory/react/components/MemoryExtractionCard.d.ts +3 -1
  99. package/dist/features/memory/react/components/MemoryExtractionCard.d.ts.map +1 -1
  100. package/dist/features/memory/react/components/MemoryExtractionCard.js +3 -2
  101. package/dist/features/memory/react/components/MemoryExtractionCard.js.map +1 -1
  102. package/dist/features/memory/react/components/MemoryHooksPanel.d.ts +3 -1
  103. package/dist/features/memory/react/components/MemoryHooksPanel.d.ts.map +1 -1
  104. package/dist/features/memory/react/components/MemoryHooksPanel.js +7 -2
  105. package/dist/features/memory/react/components/MemoryHooksPanel.js.map +1 -1
  106. package/dist/features/memory/react/components/MemoryHowPanel.d.ts +3 -1
  107. package/dist/features/memory/react/components/MemoryHowPanel.d.ts.map +1 -1
  108. package/dist/features/memory/react/components/MemoryHowPanel.js +2 -2
  109. package/dist/features/memory/react/components/MemoryHowPanel.js.map +1 -1
  110. package/dist/features/memory/react/components/MemoryList.d.ts +3 -1
  111. package/dist/features/memory/react/components/MemoryList.d.ts.map +1 -1
  112. package/dist/features/memory/react/components/MemoryList.js +12 -5
  113. package/dist/features/memory/react/components/MemoryList.js.map +1 -1
  114. package/dist/features/memory/react/components/MemorySettingsPanel.d.ts +7 -1
  115. package/dist/features/memory/react/components/MemorySettingsPanel.d.ts.map +1 -1
  116. package/dist/features/memory/react/components/MemorySettingsPanel.js +3 -2
  117. package/dist/features/memory/react/components/MemorySettingsPanel.js.map +1 -1
  118. package/dist/features/notifications/react/components/NotificationsTab.d.ts +3 -1
  119. package/dist/features/notifications/react/components/NotificationsTab.d.ts.map +1 -1
  120. package/dist/features/notifications/react/components/NotificationsTab.js +13 -6
  121. package/dist/features/notifications/react/components/NotificationsTab.js.map +1 -1
  122. package/dist/features/privacy/react/components/PrivacyTab.d.ts +9 -1
  123. package/dist/features/privacy/react/components/PrivacyTab.d.ts.map +1 -1
  124. package/dist/features/privacy/react/components/PrivacyTab.js +5 -4
  125. package/dist/features/privacy/react/components/PrivacyTab.js.map +1 -1
  126. package/dist/features/settings/dialog/react/components/SettingsDialogShell.d.ts +1 -1
  127. package/dist/features/settings/dialog/styles/settings-dialog.css +1 -0
  128. package/dist/features/skills/react/components/SkillDraftForm.d.ts +3 -1
  129. package/dist/features/skills/react/components/SkillDraftForm.d.ts.map +1 -1
  130. package/dist/features/skills/react/components/SkillDraftForm.js +3 -2
  131. package/dist/features/skills/react/components/SkillDraftForm.js.map +1 -1
  132. package/dist/features/skills/react/components/SkillRow.d.ts +3 -1
  133. package/dist/features/skills/react/components/SkillRow.d.ts.map +1 -1
  134. package/dist/features/skills/react/components/SkillRow.js +3 -2
  135. package/dist/features/skills/react/components/SkillRow.js.map +1 -1
  136. package/dist/features/skills/react/components/SkillsTab.d.ts +8 -1
  137. package/dist/features/skills/react/components/SkillsTab.d.ts.map +1 -1
  138. package/dist/features/skills/react/components/SkillsTab.js +7 -3
  139. package/dist/features/skills/react/components/SkillsTab.js.map +1 -1
  140. package/dist/features/tabbed-dialog/react/components/TabbedDialog.d.ts +1 -1
  141. package/dist/features/tabbed-dialog/react/components/TabbedDialog.js +1 -1
  142. package/dist/features/tabbed-dialog/types.d.ts +2 -2
  143. package/dist/features/tabbed-dialog/types.js +2 -2
  144. package/dist/react/components/RemixIcon.d.ts +42 -1
  145. package/dist/react/components/RemixIcon.d.ts.map +1 -1
  146. package/dist/react/components/RemixIcon.js +152 -8
  147. package/dist/react/components/RemixIcon.js.map +1 -1
  148. package/dist/utils/file-transfer.d.ts.map +1 -1
  149. package/dist/utils/file-transfer.js +2 -0
  150. package/dist/utils/file-transfer.js.map +1 -1
  151. package/package.json +3 -3
@@ -4,24 +4,31 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
4
4
  // visible extraction rows). Rendering only — every list, count, and handler is
5
5
  // supplied by a host's entries/extractions hooks.
6
6
  import { useMemo } from 'react';
7
+ import { agentHandleProps, agentSubHandle, buildAgentListHandles } from '@jini-ai/agentic';
7
8
  import { Icon } from '../../../../react/components/Icon.js';
8
9
  import { useT } from '../../../i18n/index.js';
9
10
  import { TYPES } from '../../constants.js';
10
11
  import { memoryTypeLabels } from '../../formatters.js';
11
12
  import { MemoryEntryCard } from './MemoryEntryCard.js';
12
13
  import { MemoryExtractionCard } from './MemoryExtractionCard.js';
13
- export function MemoryList({ sectionRef, entries, filtered, visibleExtractions, filter, onFilterChange, unifiedMemoryCount, onClearExtractions, onRefreshExtractions, isRefreshing, previewId, previewBody, nowClock, onOpenPreview, onStartEdit, onDeleteEntry, onDeleteExtraction, }) {
14
+ export function MemoryList({ sectionRef, entries, filtered, visibleExtractions, filter, onFilterChange, unifiedMemoryCount, onClearExtractions, onRefreshExtractions, isRefreshing, previewId, previewBody, nowClock, onOpenPreview, onStartEdit, onDeleteEntry, onDeleteExtraction, agentHandle, }) {
14
15
  const t = useT();
15
16
  const typeLabel = useMemo(() => memoryTypeLabels(t), [t]);
16
- return (_jsx("section", { ref: sectionRef, className: "settings-section settings-section-card memory-records-section", children: _jsxs("div", { className: "memory-management-panel", children: [_jsxs("div", { className: "memory-subsection-head", children: [_jsxs("div", { children: [_jsx("h4", { children: t('Saved memory') }), _jsx("p", { className: "hint", children: t('Saved facts, preferences, and project context available to future chats.') })] }), _jsxs("div", { className: "memory-management-counts", children: [_jsxs("span", { className: "memory-source-badge", children: [entries.length, " ", t('saved')] }), visibleExtractions.length > 0 ? (_jsxs("span", { className: "memory-source-badge", children: [visibleExtractions.length, " ", visibleExtractions.length === 1 ? t('extraction') : t('extractions')] })) : null] })] }), _jsxs("div", { className: "library-toolbar is-row", children: [_jsxs("div", { className: "library-filters", children: [_jsxs("button", { type: "button", className: `filter-pill${filter === 'all' ? ' active' : ''}`, onClick: () => onFilterChange('all'), children: [t('All'), _jsx("span", { className: "filter-pill-count", children: entries.length + visibleExtractions.length })] }), TYPES.map((type) => {
17
+ const entryHandles = agentHandle
18
+ ? buildAgentListHandles(agentSubHandle(agentHandle, 'entry'), filtered.map((e) => e.id))
19
+ : undefined;
20
+ const extractionHandles = agentHandle
21
+ ? buildAgentListHandles(agentSubHandle(agentHandle, 'extraction'), visibleExtractions.map((r) => r.id))
22
+ : undefined;
23
+ return (_jsx("section", { ref: sectionRef, className: "settings-section settings-section-card memory-records-section", children: _jsxs("div", { className: "memory-management-panel", children: [_jsxs("div", { className: "memory-subsection-head", children: [_jsxs("div", { children: [_jsx("h4", { children: t('Saved memory') }), _jsx("p", { className: "hint", children: t('Saved facts, preferences, and project context available to future chats.') })] }), _jsxs("div", { className: "memory-management-counts", children: [_jsxs("span", { className: "memory-source-badge", children: [entries.length, " ", t('saved')] }), visibleExtractions.length > 0 ? (_jsxs("span", { className: "memory-source-badge", children: [visibleExtractions.length, " ", visibleExtractions.length === 1 ? t('extraction') : t('extractions')] })) : null] })] }), _jsxs("div", { className: "library-toolbar is-row", children: [_jsxs("div", { className: "library-filters", children: [_jsxs("button", { type: "button", className: `filter-pill${filter === 'all' ? ' active' : ''}`, onClick: () => onFilterChange('all'), ...agentHandleProps(agentHandle, { action: 'filter-all', role: 'button', label: t('All') }), children: [t('All'), _jsx("span", { className: "filter-pill-count", children: entries.length + visibleExtractions.length })] }), TYPES.map((type) => {
17
24
  const count = entries.filter((e) => e.type === type).length;
18
25
  if (count === 0 && filter !== type)
19
26
  return null;
20
- return (_jsxs("button", { type: "button", className: `filter-pill${filter === type ? ' active' : ''}`, onClick: () => onFilterChange(type), children: [typeLabel[type], _jsx("span", { className: "filter-pill-count", children: count })] }, type));
21
- })] }), _jsxs("div", { className: "memory-management-actions", children: [visibleExtractions.length > 0 ? (_jsxs("button", { type: "button", className: "ghost memory-clear-extractions", onClick: () => onClearExtractions(), title: t('Clear extraction history'), children: [_jsx(Icon, { name: "close", size: 12 }), _jsx("span", { children: t('Clear') })] })) : null, visibleExtractions.length > 0 ? (_jsxs("button", { type: "button", className: "ghost memory-refresh-extractions", onClick: () => onRefreshExtractions(), disabled: isRefreshing, title: t('Refresh'), children: [_jsx(Icon, { name: "refresh", size: 12, className: isRefreshing ? 'icon-spin' : '' }), _jsx("span", { children: isRefreshing ? t('Refreshing') : t('Refresh') })] })) : null] })] }), _jsx("div", { className: "library-content memory-unified-list", children: unifiedMemoryCount === 0 ? (
27
+ return (_jsxs("button", { type: "button", className: `filter-pill${filter === type ? ' active' : ''}`, onClick: () => onFilterChange(type), ...agentHandleProps(agentHandle, { action: `filter-${type}`, role: 'button', label: typeLabel[type] }), children: [typeLabel[type], _jsx("span", { className: "filter-pill-count", children: count })] }, type));
28
+ })] }), _jsxs("div", { className: "memory-management-actions", children: [visibleExtractions.length > 0 ? (_jsxs("button", { type: "button", className: "ghost memory-clear-extractions", onClick: () => onClearExtractions(), title: t('Clear extraction history'), ...agentHandleProps(agentHandle, { action: 'clear-extractions', role: 'button', label: t('Clear extraction history') }), children: [_jsx(Icon, { name: "close", size: 12 }), _jsx("span", { children: t('Clear') })] })) : null, visibleExtractions.length > 0 ? (_jsxs("button", { type: "button", className: "ghost memory-refresh-extractions", onClick: () => onRefreshExtractions(), disabled: isRefreshing, title: t('Refresh'), ...agentHandleProps(agentHandle, { action: 'refresh-extractions', role: 'button', label: t('Refresh') }), children: [_jsx(Icon, { name: "refresh", size: 12, className: isRefreshing ? 'icon-spin' : '' }), _jsx("span", { children: isRefreshing ? t('Refreshing') : t('Refresh') })] })) : null] })] }), _jsx("div", { className: "library-content memory-unified-list", children: unifiedMemoryCount === 0 ? (
22
29
  // Empty state: one clear "no rows yet" line and a one-sentence
23
30
  // primer that explains the mechanism (talk in chat, fact gets
24
31
  // extracted) with a single example.
25
- _jsxs("div", { className: "library-empty", children: [_jsx("p", { className: "library-empty-title", children: t('No saved memories yet') }), _jsxs("p", { className: "library-empty-hint", children: [t('Tell the assistant a fact in chat — e.g.'), " ", _jsx("code", { children: t('I prefer dark mode') }), ' ', t('— and it will be saved here automatically.')] })] })) : (_jsxs(_Fragment, { children: [filtered.map((entry) => (_jsx(MemoryEntryCard, { entry: entry, previewId: previewId, previewBody: previewBody, onOpenPreview: onOpenPreview, onStartEdit: onStartEdit, onDelete: onDeleteEntry }, entry.id))), visibleExtractions.map((record) => (_jsx(MemoryExtractionCard, { record: record, nowClock: nowClock, onOpenPreview: onOpenPreview, onDelete: onDeleteExtraction }, record.id)))] })) })] }) }));
32
+ _jsxs("div", { className: "library-empty", children: [_jsx("p", { className: "library-empty-title", children: t('No saved memories yet') }), _jsxs("p", { className: "library-empty-hint", children: [t('Tell the assistant a fact in chat — e.g.'), " ", _jsx("code", { children: t('I prefer dark mode') }), ' ', t('— and it will be saved here automatically.')] })] })) : (_jsxs(_Fragment, { children: [filtered.map((entry, index) => (_jsx(MemoryEntryCard, { entry: entry, previewId: previewId, previewBody: previewBody, onOpenPreview: onOpenPreview, onStartEdit: onStartEdit, onDelete: onDeleteEntry, ...(entryHandles?.[index] ? { agentHandle: entryHandles[index] } : {}) }, entry.id))), visibleExtractions.map((record, index) => (_jsx(MemoryExtractionCard, { record: record, nowClock: nowClock, onOpenPreview: onOpenPreview, onDelete: onDeleteExtraction, ...(extractionHandles?.[index] ? { agentHandle: extractionHandles[index] } : {}) }, record.id)))] })) })] }) }));
26
33
  }
27
34
  //# sourceMappingURL=MemoryList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryList.js","sourceRoot":"","sources":["../../../../../src/features/memory/react/components/MemoryList.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MemoryList.js","sourceRoot":"","sources":["../../../../../src/features/memory/react/components/MemoryList.tsx"],"names":[],"mappings":"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"}
@@ -17,6 +17,12 @@ export interface MemorySettingsPanelProps {
17
17
  onOpenAdvanced?: () => void;
18
18
  savedMemory: Omit<ComponentProps<typeof MemoryList>, 'sectionRef'>;
19
19
  howItWorks: ComponentProps<typeof MemoryHowPanel>;
20
+ /**
21
+ * This panel's own agent handle, published by the host. The segmented view switch, the
22
+ * add/advanced buttons, the master toggle, and both body panels (`MemoryList`/`MemoryHowPanel`)
23
+ * all derive their own `data-agent-*` handle from this ONE base.
24
+ */
25
+ agentHandle?: string;
20
26
  }
21
- export declare function MemorySettingsPanel({ enabled, onToggleEnabled, topTab, onTopTabChange, onAdd, onOpenAdvanced, savedMemory, howItWorks, }: MemorySettingsPanelProps): import("react").JSX.Element;
27
+ export declare function MemorySettingsPanel({ enabled, onToggleEnabled, topTab, onTopTabChange, onAdd, onOpenAdvanced, savedMemory, howItWorks, agentHandle, }: MemorySettingsPanelProps): import("react").JSX.Element;
22
28
  //# sourceMappingURL=MemorySettingsPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MemorySettingsPanel.d.ts","sourceRoot":"","sources":["../../../../../src/features/memory/react/components/MemorySettingsPanel.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAG5C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAE1E,MAAM,WAAW,wBAAwB;IACvC,+DAA+D;IAC/D,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,mDAAmD;IACnD,MAAM,EAAE,YAAY,CAAC;IACrB,cAAc,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;IAC5C;;2CAEuC;IACvC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,8EAA8E;IAC9E,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;IACnE,UAAU,EAAE,cAAc,CAAC,OAAO,cAAc,CAAC,CAAC;CACnD;AAED,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,eAAe,EACf,MAAM,EACN,cAAc,EACd,KAAK,EACL,cAAc,EACd,WAAW,EACX,UAAU,GACX,EAAE,wBAAwB,+BA4E1B"}
1
+ {"version":3,"file":"MemorySettingsPanel.d.ts","sourceRoot":"","sources":["../../../../../src/features/memory/react/components/MemorySettingsPanel.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAI5C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAE1E,MAAM,WAAW,wBAAwB;IACvC,+DAA+D;IAC/D,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,mDAAmD;IACnD,MAAM,EAAE,YAAY,CAAC;IACrB,cAAc,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;IAC5C;;2CAEuC;IACvC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,8EAA8E;IAC9E,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;IACnE,UAAU,EAAE,cAAc,CAAC,OAAO,cAAc,CAAC,CAAC;IAClD;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,eAAe,EACf,MAAM,EACN,cAAc,EACd,KAAK,EACL,cAAc,EACd,WAAW,EACX,UAAU,EACV,WAAW,GACZ,EAAE,wBAAwB,+BAqF1B"}
@@ -16,15 +16,16 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
16
  // a hand-duplicated prop list, so this file can't drift out of sync with
17
17
  // either component's real signature.
18
18
  import { useRef } from 'react';
19
+ import { agentHandleProps, agentSubHandle } from '@jini-ai/agentic';
19
20
  import { Icon } from '../../../../react/components/Icon.js';
20
21
  import { useT } from '../../../i18n/index.js';
21
22
  import { MemoryHowPanel } from './MemoryHowPanel.js';
22
23
  import { MemoryList } from './MemoryList.js';
23
- export function MemorySettingsPanel({ enabled, onToggleEnabled, topTab, onTopTabChange, onAdd, onOpenAdvanced, savedMemory, howItWorks, }) {
24
+ export function MemorySettingsPanel({ enabled, onToggleEnabled, topTab, onTopTabChange, onAdd, onOpenAdvanced, savedMemory, howItWorks, agentHandle, }) {
24
25
  const t = useT();
25
26
  // Scroll target for the saved-memory section; nothing outside this panel
26
27
  // needs to reach it, so it's owned here rather than threaded through props.
27
28
  const sectionRef = useRef(null);
28
- return (_jsxs("div", { className: "memory-settings-panel", children: [_jsxs("section", { className: "memory-panel-head-card", children: [_jsxs("div", { className: "memory-panel-head-copy", children: [_jsx("h4", { children: t('Memory') }), _jsx("p", { className: "hint", children: t('Control whether saved facts, preferences, and project context are reused in future chats.') })] }), _jsxs("div", { className: "memory-panel-head-controls", children: [_jsxs("div", { className: "jini-seg-control memory-panel-seg", role: "tablist", "aria-label": t('Memory view'), style: { '--seg-cols': 2 }, children: [_jsx("button", { type: "button", role: "tab", "aria-selected": topTab === 'memories', className: 'jini-seg-btn' + (topTab === 'memories' ? ' active' : ''), onClick: () => onTopTabChange('memories'), children: _jsx("span", { className: "jini-seg-title", children: t('Memories') }) }), _jsx("button", { type: "button", role: "tab", "aria-selected": topTab === 'how', className: 'jini-seg-btn' + (topTab === 'how' ? ' active' : ''), onClick: () => onTopTabChange('how'), children: _jsx("span", { className: "jini-seg-title", children: t('How it works') }) })] }), _jsx("button", { type: "button", className: "memory-icon-btn", onClick: onAdd, disabled: !onAdd, "aria-label": t('Add memory'), title: t('Add memory'), children: _jsx(Icon, { name: "plus", size: 14 }) }), _jsx("button", { type: "button", className: "memory-icon-btn", onClick: onOpenAdvanced, disabled: !onOpenAdvanced, "aria-label": t('Advanced'), title: t('Advanced'), children: _jsx(Icon, { name: "settings", size: 14 }) }), _jsxs("label", { className: "toggle-switch memory-panel-master-toggle", title: enabled ? t('On') : t('Off'), children: [_jsx("input", { type: "checkbox", "aria-label": t('Enable memory'), checked: enabled, onChange: (event) => onToggleEnabled(event.target.checked) }), _jsx("span", { className: "toggle-slider" })] })] })] }), topTab === 'memories' ? _jsx(MemoryList, { sectionRef: sectionRef, ...savedMemory }) : _jsx(MemoryHowPanel, { ...howItWorks })] }));
29
+ return (_jsxs("div", { className: "memory-settings-panel", children: [_jsxs("section", { className: "memory-panel-head-card", children: [_jsxs("div", { className: "memory-panel-head-copy", children: [_jsx("h4", { children: t('Memory') }), _jsx("p", { className: "hint", children: t('Control whether saved facts, preferences, and project context are reused in future chats.') })] }), _jsxs("div", { className: "memory-panel-head-controls", children: [_jsxs("div", { className: "jini-seg-control memory-panel-seg", role: "tablist", "aria-label": t('Memory view'), style: { '--seg-cols': 2 }, children: [_jsx("button", { type: "button", role: "tab", "aria-selected": topTab === 'memories', className: 'jini-seg-btn' + (topTab === 'memories' ? ' active' : ''), onClick: () => onTopTabChange('memories'), ...agentHandleProps(agentHandle, { action: 'view-memories', role: 'button', label: t('Memories') }), children: _jsx("span", { className: "jini-seg-title", children: t('Memories') }) }), _jsx("button", { type: "button", role: "tab", "aria-selected": topTab === 'how', className: 'jini-seg-btn' + (topTab === 'how' ? ' active' : ''), onClick: () => onTopTabChange('how'), ...agentHandleProps(agentHandle, { action: 'view-how', role: 'button', label: t('How it works') }), children: _jsx("span", { className: "jini-seg-title", children: t('How it works') }) })] }), _jsx("button", { type: "button", className: "memory-icon-btn", onClick: onAdd, disabled: !onAdd, "aria-label": t('Add memory'), title: t('Add memory'), ...agentHandleProps(agentHandle, { action: 'add', role: 'button', label: t('Add memory') }), children: _jsx(Icon, { name: "plus", size: 14 }) }), _jsx("button", { type: "button", className: "memory-icon-btn", onClick: onOpenAdvanced, disabled: !onOpenAdvanced, "aria-label": t('Advanced'), title: t('Advanced'), ...agentHandleProps(agentHandle, { action: 'advanced', role: 'button', label: t('Advanced') }), children: _jsx(Icon, { name: "settings", size: 14 }) }), _jsxs("label", { className: "toggle-switch memory-panel-master-toggle", title: enabled ? t('On') : t('Off'), children: [_jsx("input", { type: "checkbox", "aria-label": t('Enable memory'), checked: enabled, onChange: (event) => onToggleEnabled(event.target.checked), ...agentHandleProps(agentHandle, { action: 'enabled', role: 'checkbox', label: t('Enable memory') }) }), _jsx("span", { className: "toggle-slider" })] })] })] }), topTab === 'memories' ? (_jsx(MemoryList, { sectionRef: sectionRef, ...savedMemory, ...(agentHandle ? { agentHandle: agentSubHandle(agentHandle, 'saved') } : {}) })) : (_jsx(MemoryHowPanel, { ...howItWorks, ...(agentHandle ? { agentHandle: agentSubHandle(agentHandle, 'how') } : {}) }))] }));
29
30
  }
30
31
  //# sourceMappingURL=MemorySettingsPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MemorySettingsPanel.js","sourceRoot":"","sources":["../../../../../src/features/memory/react/components/MemorySettingsPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MemorySettingsPanel.js","sourceRoot":"","sources":["../../../../../src/features/memory/react/components/MemorySettingsPanel.tsx"],"names":[],"mappings":"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"}
@@ -22,6 +22,8 @@ export interface NotificationsTabProps {
22
22
  testNotificationTitle?: string;
23
23
  testNotificationBody?: string;
24
24
  labels?: NotificationsTabLabels;
25
+ /** This tab's own agent handle — see other tabs' `agentHandle` doc for the split. */
26
+ agentHandle?: string;
25
27
  }
26
28
  /**
27
29
  * Completion-sound toggle/picker + browser desktop-notification permission
@@ -44,5 +46,5 @@ export interface NotificationsTabProps {
44
46
  * 'sent'/'failed' rather than carrying unreachable members (see its own doc
45
47
  * comment in this feature's `rules.ts`).
46
48
  */
47
- export declare function NotificationsTab({ preferences, onChange, testNotificationTitle, testNotificationBody, labels }: NotificationsTabProps): import("react").JSX.Element;
49
+ export declare function NotificationsTab({ preferences, onChange, testNotificationTitle, testNotificationBody, labels, agentHandle, }: NotificationsTabProps): import("react").JSX.Element;
48
50
  //# sourceMappingURL=NotificationsTab.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationsTab.d.ts","sourceRoot":"","sources":["../../../../../src/features/notifications/react/components/NotificationsTab.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE/D,MAAM,WAAW,sBAAsB;IACrC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,wBAAwB,CAAC;IACtC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,wBAAwB,CAAC,KAAK,IAAI,CAAC;IAC7D;uDACmD;IACnD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,MAAM,CAAC,EAAE,sBAAsB,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,EAAE,EAAE,qBAAqB,+BAmLrI"}
1
+ {"version":3,"file":"NotificationsTab.d.ts","sourceRoot":"","sources":["../../../../../src/features/notifications/react/components/NotificationsTab.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE/D,MAAM,WAAW,sBAAsB;IACrC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,wBAAwB,CAAC;IACtC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,wBAAwB,CAAC,KAAK,IAAI,CAAC;IAC7D;uDACmD;IACnD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,qFAAqF;IACrF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,WAAW,EACX,QAAQ,EACR,qBAAqB,EACrB,oBAAoB,EACpB,MAAM,EACN,WAAW,GACZ,EAAE,qBAAqB,+BA8LvB"}
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useState } from 'react';
3
+ import { agentHandleProps, agentSubHandle, buildAgentListHandles } from '@jini-ai/agentic';
3
4
  import { useT } from '../../../i18n/index.js';
4
5
  import { FAILURE_SOUNDS, SUCCESS_SOUNDS, notificationPermission, playSound, requestNotificationPermission, showCompletionNotification, } from '../../../../utils/notifications.js';
5
6
  import { testStatusLabel } from '../../rules.js';
@@ -24,8 +25,14 @@ import { testStatusLabel } from '../../rules.js';
24
25
  * 'sent'/'failed' rather than carrying unreachable members (see its own doc
25
26
  * comment in this feature's `rules.ts`).
26
27
  */
27
- export function NotificationsTab({ preferences, onChange, testNotificationTitle, testNotificationBody, labels }) {
28
+ export function NotificationsTab({ preferences, onChange, testNotificationTitle, testNotificationBody, labels, agentHandle, }) {
28
29
  const t = useT();
30
+ const successSoundHandles = agentHandle
31
+ ? buildAgentListHandles(agentSubHandle(agentHandle, 'success-sound'), SUCCESS_SOUNDS.map((s) => s.id))
32
+ : undefined;
33
+ const failureSoundHandles = agentHandle
34
+ ? buildAgentListHandles(agentSubHandle(agentHandle, 'failure-sound'), FAILURE_SOUNDS.map((s) => s.id))
35
+ : undefined;
29
36
  const [permission, setPermission] = useState(() => notificationPermission());
30
37
  const [testStatus, setTestStatus] = useState(null);
31
38
  const completionSoundTitle = labels?.completionSoundTitle ?? t('Completion sound');
@@ -69,16 +76,16 @@ export function NotificationsTab({ preferences, onChange, testNotificationTitle,
69
76
  // outcome here rather than getting their own dead states.
70
77
  setTestStatus(result === 'shown' ? 'sent' : 'failed');
71
78
  };
72
- return (_jsxs("section", { className: "jini-settings-section jini-settings-notifications", children: [_jsxs("div", { className: "jini-settings-subsection", children: [_jsxs("div", { className: "jini-settings-notify-card", children: [_jsxs("div", { className: "jini-settings-notify-card-header", children: [_jsx("h4", { children: completionSoundTitle }), _jsx("div", { className: "jini-seg-control", role: "group", "aria-label": completionSoundTitle, style: { '--seg-cols': 1 }, children: _jsx("button", { type: "button", className: 'jini-seg-btn' + (preferences.soundEnabled ? ' active' : ''), "aria-pressed": preferences.soundEnabled, "aria-label": completionSoundTitle, onClick: toggleSound, children: _jsx("span", { className: "jini-seg-title", children: preferences.soundEnabled ? activeLabel : offLabel }) }) })] }), _jsx("p", { className: "jini-hint", children: completionSoundHint })] }), preferences.soundEnabled ? (_jsxs(_Fragment, { children: [_jsxs("div", { className: "jini-settings-field", children: [_jsx("label", { children: successSoundLabel }), _jsx("div", { className: "jini-seg-control", role: "group", "aria-label": successSoundLabel, style: { '--seg-cols': SUCCESS_SOUNDS.length }, children: SUCCESS_SOUNDS.map((sound) => (_jsx("button", { type: "button", className: 'jini-seg-btn' + (preferences.successSoundId === sound.id ? ' active' : ''), "aria-pressed": preferences.successSoundId === sound.id, onClick: () => {
79
+ return (_jsxs("section", { className: "jini-settings-section jini-settings-notifications", children: [_jsxs("div", { className: "jini-settings-subsection", children: [_jsxs("div", { className: "jini-settings-notify-card", children: [_jsxs("div", { className: "jini-settings-notify-card-header", children: [_jsx("h4", { children: completionSoundTitle }), _jsx("div", { className: "jini-seg-control", role: "group", "aria-label": completionSoundTitle, style: { '--seg-cols': 1 }, children: _jsx("button", { type: "button", className: 'jini-seg-btn' + (preferences.soundEnabled ? ' active' : ''), "aria-pressed": preferences.soundEnabled, "aria-label": completionSoundTitle, onClick: toggleSound, ...agentHandleProps(agentHandle, { action: 'sound-toggle', role: 'button', label: completionSoundTitle }), children: _jsx("span", { className: "jini-seg-title", children: preferences.soundEnabled ? activeLabel : offLabel }) }) })] }), _jsx("p", { className: "jini-hint", children: completionSoundHint })] }), preferences.soundEnabled ? (_jsxs(_Fragment, { children: [_jsxs("div", { className: "jini-settings-field", children: [_jsx("label", { children: successSoundLabel }), _jsx("div", { className: "jini-seg-control", role: "group", "aria-label": successSoundLabel, style: { '--seg-cols': SUCCESS_SOUNDS.length }, children: SUCCESS_SOUNDS.map((sound, index) => (_jsx("button", { type: "button", className: 'jini-seg-btn' + (preferences.successSoundId === sound.id ? ' active' : ''), "aria-pressed": preferences.successSoundId === sound.id, onClick: () => {
73
80
  onChange({ successSoundId: sound.id });
74
81
  playSound(sound.id);
75
- }, children: _jsx("span", { className: "jini-seg-title", children: t(sound.labelKey) }) }, sound.id))) })] }), _jsxs("div", { className: "jini-settings-field", children: [_jsx("label", { children: failureSoundLabel }), _jsx("div", { className: "jini-seg-control", role: "group", "aria-label": failureSoundLabel, style: { '--seg-cols': FAILURE_SOUNDS.length }, children: FAILURE_SOUNDS.map((sound) => (_jsx("button", { type: "button", className: 'jini-seg-btn' + (preferences.failureSoundId === sound.id ? ' active' : ''), "aria-pressed": preferences.failureSoundId === sound.id, onClick: () => {
82
+ }, ...agentHandleProps(successSoundHandles?.[index], { role: 'button', label: t(sound.labelKey) }), children: _jsx("span", { className: "jini-seg-title", children: t(sound.labelKey) }) }, sound.id))) })] }), _jsxs("div", { className: "jini-settings-field", children: [_jsx("label", { children: failureSoundLabel }), _jsx("div", { className: "jini-seg-control", role: "group", "aria-label": failureSoundLabel, style: { '--seg-cols': FAILURE_SOUNDS.length }, children: FAILURE_SOUNDS.map((sound, index) => (_jsx("button", { type: "button", className: 'jini-seg-btn' + (preferences.failureSoundId === sound.id ? ' active' : ''), "aria-pressed": preferences.failureSoundId === sound.id, onClick: () => {
76
83
  onChange({ failureSoundId: sound.id });
77
84
  playSound(sound.id);
78
- }, children: _jsx("span", { className: "jini-seg-title", children: t(sound.labelKey) }) }, sound.id))) })] })] })) : null] }), _jsxs("div", { className: "jini-settings-subsection", children: [_jsxs("div", { className: "jini-settings-notify-card", children: [_jsxs("div", { className: "jini-settings-notify-card-header", children: [_jsx("h4", { children: desktopTitle }), _jsx("div", { className: "jini-seg-control", role: "group", "aria-label": desktopTitle, style: { '--seg-cols': 1 }, children: _jsx("button", { type: "button", className: 'jini-seg-btn' + (preferences.desktopEnabled ? ' active' : ''), "aria-pressed": preferences.desktopEnabled, "aria-label": desktopTitle, disabled: permission === 'unsupported', onClick: () => {
85
+ }, ...agentHandleProps(failureSoundHandles?.[index], { role: 'button', label: t(sound.labelKey) }), children: _jsx("span", { className: "jini-seg-title", children: t(sound.labelKey) }) }, sound.id))) })] })] })) : null] }), _jsxs("div", { className: "jini-settings-subsection", children: [_jsxs("div", { className: "jini-settings-notify-card", children: [_jsxs("div", { className: "jini-settings-notify-card-header", children: [_jsx("h4", { children: desktopTitle }), _jsx("div", { className: "jini-seg-control", role: "group", "aria-label": desktopTitle, style: { '--seg-cols': 1 }, children: _jsx("button", { type: "button", className: 'jini-seg-btn' + (preferences.desktopEnabled ? ' active' : ''), "aria-pressed": preferences.desktopEnabled, "aria-label": desktopTitle, disabled: permission === 'unsupported', onClick: () => {
79
86
  void toggleDesktop();
80
- }, children: _jsx("span", { className: "jini-seg-title", children: preferences.desktopEnabled ? activeLabel : offLabel }) }) })] }), _jsx("p", { className: "jini-hint", children: desktopHint })] }), permission === 'unsupported' ? _jsx("p", { className: "jini-hint", children: desktopUnsupported }) : null, permission === 'denied' ? _jsx("p", { className: "jini-hint", children: desktopBlocked }) : null, preferences.desktopEnabled && permission === 'granted' ? (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", className: "jini-button jini-button-ghost", onClick: () => {
87
+ }, ...agentHandleProps(agentHandle, { action: 'desktop-toggle', role: 'button', label: desktopTitle }), children: _jsx("span", { className: "jini-seg-title", children: preferences.desktopEnabled ? activeLabel : offLabel }) }) })] }), _jsx("p", { className: "jini-hint", children: desktopHint })] }), permission === 'unsupported' ? _jsx("p", { className: "jini-hint", children: desktopUnsupported }) : null, permission === 'denied' ? _jsx("p", { className: "jini-hint", children: desktopBlocked }) : null, preferences.desktopEnabled && permission === 'granted' ? (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", className: "jini-button jini-button-ghost", onClick: () => {
81
88
  void sendTestNotification();
82
- }, children: sendTestLabel }), testStatus ? (_jsx("p", { className: "jini-hint", role: "status", children: testStatusLabel(testStatus, { testSentLabel, testFailedLabel }) })) : null] })) : null] })] }));
89
+ }, ...agentHandleProps(agentHandle, { action: 'send-test', role: 'button', label: sendTestLabel }), children: sendTestLabel }), testStatus ? (_jsx("p", { className: "jini-hint", role: "status", children: testStatusLabel(testStatus, { testSentLabel, testFailedLabel }) })) : null] })) : null] })] }));
83
90
  }
84
91
  //# sourceMappingURL=NotificationsTab.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationsTab.js","sourceRoot":"","sources":["../../../../../src/features/notifications/react/components/NotificationsTab.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NotificationsTab.js","sourceRoot":"","sources":["../../../../../src/features/notifications/react/components/NotificationsTab.tsx"],"names":[],"mappings":"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"}
@@ -20,6 +20,14 @@ export interface PrivacyTabProps {
20
20
  labels?: PrivacyTabLabels;
21
21
  /** Injectable clock, for deterministic tests. Defaults to `Date.now`. */
22
22
  now?: () => number;
23
+ /**
24
+ * This tab's own agent handle, published by the host. Every interactive control below derives
25
+ * its own `data-agent-*` handle from this ONE base via `agentHandleProps` — see that function's
26
+ * doc in `@jini-ai/agentic` for the "host names a component, the component names its own parts"
27
+ * split this generalizes. Omit and no `data-agent-*` markup is emitted at all — additive, never a
28
+ * behavior change for a host that doesn't pass it.
29
+ */
30
+ agentHandle?: string;
23
31
  }
24
32
  /**
25
33
  * Telemetry consent card (share/decline + two per-category toggles) over a
@@ -30,5 +38,5 @@ export interface PrivacyTabProps {
30
38
  * `ADS-memory/reports/jini-port/recon/r6-god-component-internals.md` §1.3; this task is
31
39
  * the first full verification (see `packages/ui/source-map.md`).
32
40
  */
33
- export declare function PrivacyTab({ state, onChange, labels, now }: PrivacyTabProps): import("react").JSX.Element;
41
+ export declare function PrivacyTab({ state, onChange, labels, now, agentHandle }: PrivacyTabProps): import("react").JSX.Element;
34
42
  //# sourceMappingURL=PrivacyTab.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PrivacyTab.d.ts","sourceRoot":"","sources":["../../../../../src/features/privacy/react/components/PrivacyTab.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,mBAAmB,CAAC;IAC3B,QAAQ,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC9C,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AA0BD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAc,EAAE,EAAE,eAAe,+BAsGtF"}
1
+ {"version":3,"file":"PrivacyTab.d.ts","sourceRoot":"","sources":["../../../../../src/features/privacy/react/components/PrivacyTab.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,mBAAmB,CAAC;IAC3B,QAAQ,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC9C,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA6BD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAc,EAAE,WAAW,EAAE,EAAE,eAAe,+BAiHnG"}
@@ -1,9 +1,10 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { agentHandleProps, agentSubHandle } from '@jini-ai/agentic';
2
3
  import { useT } from '../../../i18n/index.js';
3
4
  import { Icon } from '../../../../react/components/Icon.js';
4
5
  import { hasMadeConsentDecision, isSharingEnabled, nextStateForDeclineAll, nextStateForDeleteMyData, nextStateForShareAll, nextStateForTelemetryPatch, } from '../../rules.js';
5
- function ToggleRow({ label, hint, checked, onChange }) {
6
- return (_jsxs("button", { type: "button", className: `jini-toggle-row${checked ? ' on' : ''}`, onClick: () => onChange(!checked), "aria-pressed": checked, children: [_jsxs("div", { className: "jini-toggle-row-text", children: [_jsx("span", { className: "jini-toggle-row-label", children: label }), _jsx("span", { className: "jini-toggle-row-hint", children: hint })] }), _jsx("span", { className: "jini-toggle-row-switch", "aria-hidden": true })] }));
6
+ function ToggleRow({ label, hint, checked, onChange, agentHandle }) {
7
+ return (_jsxs("button", { type: "button", className: `jini-toggle-row${checked ? ' on' : ''}`, onClick: () => onChange(!checked), "aria-pressed": checked, ...agentHandleProps(agentHandle, { role: 'checkbox', label }), children: [_jsxs("div", { className: "jini-toggle-row-text", children: [_jsx("span", { className: "jini-toggle-row-label", children: label }), _jsx("span", { className: "jini-toggle-row-hint", children: hint })] }), _jsx("span", { className: "jini-toggle-row-switch", "aria-hidden": true })] }));
7
8
  }
8
9
  /**
9
10
  * Telemetry consent card (share/decline + two per-category toggles) over a
@@ -14,7 +15,7 @@ function ToggleRow({ label, hint, checked, onChange }) {
14
15
  * `ADS-memory/reports/jini-port/recon/r6-god-component-internals.md` §1.3; this task is
15
16
  * the first full verification (see `packages/ui/source-map.md`).
16
17
  */
17
- export function PrivacyTab({ state, onChange, labels, now = Date.now }) {
18
+ export function PrivacyTab({ state, onChange, labels, now = Date.now, agentHandle }) {
18
19
  const t = useT();
19
20
  const decided = hasMadeConsentDecision(state);
20
21
  const sharing = decided ? isSharingEnabled(state.telemetry) : undefined;
@@ -31,6 +32,6 @@ export function PrivacyTab({ state, onChange, labels, now = Date.now }) {
31
32
  const installationIdHint = labels?.installationIdHint ?? t('An anonymous id used to group your shared data.');
32
33
  const optedOutLabel = labels?.optedOutLabel ?? t('Not sharing');
33
34
  const deleteMyDataLabel = labels?.deleteMyDataLabel ?? t('Delete my data');
34
- return (_jsxs("section", { className: "jini-settings-section jini-settings-privacy", children: [_jsxs("div", { className: "jini-settings-subsection", children: [_jsx("div", { className: "jini-section-head", children: _jsxs("div", { children: [_jsx("h4", { children: consentKicker }), _jsx("p", { className: "jini-hint", children: consentLead })] }) }), _jsxs("dl", { className: "jini-settings-privacy-disclosure", children: [_jsxs("div", { children: [_jsx("dt", { children: metricsLabel }), _jsx("dd", { children: metricsHint })] }), _jsxs("div", { children: [_jsx("dt", { children: contentLabel }), _jsx("dd", { children: contentHint })] })] }), _jsx("p", { className: "jini-hint", children: consentFooter }), _jsxs("div", { className: "jini-privacy-consent-actions", role: "group", "aria-label": consentKicker, children: [_jsx("button", { type: "button", className: `jini-privacy-consent-action${sharing === false ? ' is-active' : ''}`, "aria-pressed": sharing === false, onClick: () => onChange(nextStateForDeclineAll(state, now())), children: declineLabel }), _jsx("button", { type: "button", className: `jini-privacy-consent-action jini-privacy-consent-action--primary${sharing === true ? ' is-active' : ''}`, "aria-pressed": sharing === true, onClick: () => onChange(nextStateForShareAll(state, now())), children: shareLabel })] })] }), decided ? (_jsxs(_Fragment, { children: [_jsxs("div", { className: "jini-settings-privacy-toggles", children: [_jsx(ToggleRow, { label: metricsLabel, hint: metricsHint, checked: state.telemetry.metrics === true, onChange: (v) => onChange(nextStateForTelemetryPatch(state, { metrics: v }, now())) }), _jsx(ToggleRow, { label: contentLabel, hint: contentHint, checked: state.telemetry.content === true, onChange: (v) => onChange(nextStateForTelemetryPatch(state, { content: v }, now())) })] }), _jsxs("div", { className: "jini-settings-subsection", children: [_jsx("div", { className: "jini-section-head", children: _jsxs("div", { children: [_jsx("h4", { children: installationIdLabel }), _jsx("p", { className: "jini-hint", children: installationIdHint })] }) }), _jsx("div", { className: "jini-settings-field", children: _jsx("input", { type: "text", readOnly: true, value: state.installationId ?? optedOutLabel, "aria-label": installationIdLabel }) }), _jsxs("button", { type: "button", className: "jini-button jini-button-ghost", onClick: () => onChange(nextStateForDeleteMyData(state, now())), children: [_jsx(Icon, { name: "trash", size: 13 }), _jsx("span", { children: deleteMyDataLabel })] })] })] })) : null] }));
35
+ return (_jsxs("section", { className: "jini-settings-section jini-settings-privacy", children: [_jsxs("div", { className: "jini-settings-subsection", children: [_jsx("div", { className: "jini-section-head", children: _jsxs("div", { children: [_jsx("h4", { children: consentKicker }), _jsx("p", { className: "jini-hint", children: consentLead })] }) }), _jsxs("dl", { className: "jini-settings-privacy-disclosure", children: [_jsxs("div", { children: [_jsx("dt", { children: metricsLabel }), _jsx("dd", { children: metricsHint })] }), _jsxs("div", { children: [_jsx("dt", { children: contentLabel }), _jsx("dd", { children: contentHint })] })] }), _jsx("p", { className: "jini-hint", children: consentFooter }), _jsxs("div", { className: "jini-privacy-consent-actions", role: "group", "aria-label": consentKicker, children: [_jsx("button", { type: "button", className: `jini-privacy-consent-action${sharing === false ? ' is-active' : ''}`, "aria-pressed": sharing === false, onClick: () => onChange(nextStateForDeclineAll(state, now())), ...agentHandleProps(agentHandle, { action: 'decline', role: 'button', label: declineLabel }), children: declineLabel }), _jsx("button", { type: "button", className: `jini-privacy-consent-action jini-privacy-consent-action--primary${sharing === true ? ' is-active' : ''}`, "aria-pressed": sharing === true, onClick: () => onChange(nextStateForShareAll(state, now())), ...agentHandleProps(agentHandle, { action: 'share', role: 'button', label: shareLabel }), children: shareLabel })] })] }), decided ? (_jsxs(_Fragment, { children: [_jsxs("div", { className: "jini-settings-privacy-toggles", children: [_jsx(ToggleRow, { label: metricsLabel, hint: metricsHint, checked: state.telemetry.metrics === true, onChange: (v) => onChange(nextStateForTelemetryPatch(state, { metrics: v }, now())), ...(agentHandle ? { agentHandle: agentSubHandle(agentHandle, 'metrics-toggle') } : {}) }), _jsx(ToggleRow, { label: contentLabel, hint: contentHint, checked: state.telemetry.content === true, onChange: (v) => onChange(nextStateForTelemetryPatch(state, { content: v }, now())), ...(agentHandle ? { agentHandle: agentSubHandle(agentHandle, 'content-toggle') } : {}) })] }), _jsxs("div", { className: "jini-settings-subsection", children: [_jsx("div", { className: "jini-section-head", children: _jsxs("div", { children: [_jsx("h4", { children: installationIdLabel }), _jsx("p", { className: "jini-hint", children: installationIdHint })] }) }), _jsx("div", { className: "jini-settings-field", children: _jsx("input", { type: "text", readOnly: true, value: state.installationId ?? optedOutLabel, "aria-label": installationIdLabel, ...agentHandleProps(agentHandle, { action: 'installation-id', role: 'field', label: installationIdLabel }) }) }), _jsxs("button", { type: "button", className: "jini-button jini-button-ghost", onClick: () => onChange(nextStateForDeleteMyData(state, now())), ...agentHandleProps(agentHandle, { action: 'delete-my-data', role: 'button', label: deleteMyDataLabel }), children: [_jsx(Icon, { name: "trash", size: 13 }), _jsx("span", { children: deleteMyDataLabel })] })] })] })) : null] }));
35
36
  }
36
37
  //# sourceMappingURL=PrivacyTab.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PrivacyTab.js","sourceRoot":"","sources":["../../../../../src/features/privacy/react/components/PrivacyTab.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PrivacyTab.js","sourceRoot":"","sources":["../../../../../src/features/privacy/react/components/PrivacyTab.tsx"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ import type { TabbedDialogProps, TabbedDialogTab } from '../../../../tabbed-dial
8
8
  export type SettingsDialogTab<TId extends string = string> = TabbedDialogTab<TId>;
9
9
  /**
10
10
  * Alias of `TabbedDialogProps` — see that interface for the field-by-field docs. Kept as its
11
- * own name (rather than inlining `TabbedDialogProps` at every Tovu call site) purely for
11
+ * own name (rather than inlining `TabbedDialogProps` at every host call site) purely for
12
12
  * call-site continuity; `SettingsDialogShell` adds no fields of its own.
13
13
  */
14
14
  export type SettingsDialogShellProps<T extends SettingsDialogTab = SettingsDialogTab> = TabbedDialogProps<T>;
@@ -4328,6 +4328,7 @@ button.connector-action.is-loading { cursor: wait; }
4328
4328
  padding: 5px 10px;
4329
4329
  font: inherit;
4330
4330
  font-size: 12px;
4331
+ color: var(--jini-text);
4331
4332
  background: var(--jini-bg-panel);
4332
4333
  border: 1px solid var(--jini-border);
4333
4334
  border-radius: var(--jini-radius-sm);
@@ -29,11 +29,13 @@ export interface SkillDraftFormProps {
29
29
  onCancel: () => void;
30
30
  onSubmit: () => void;
31
31
  labels?: SkillDraftFormLabels | undefined;
32
+ /** This form's own agent handle — see `SkillsTab`'s `agentHandle` doc. */
33
+ agentHandle?: string;
32
34
  }
33
35
  /**
34
36
  * The create/edit form for one skill — shared between the top-of-list
35
37
  * "New skill" panel and an expanded row's inline edit. Origin:
36
38
  * `SkillDraftForm` in `SkillsSection.tsx`.
37
39
  */
38
- export declare function SkillDraftForm({ heading, subheading, draft, onDraftChange, error, saving, isEdit, isBuiltInOverride, onCancel, onSubmit, labels, }: SkillDraftFormProps): import("react").JSX.Element;
40
+ export declare function SkillDraftForm({ heading, subheading, draft, onDraftChange, error, saving, isEdit, isBuiltInOverride, onCancel, onSubmit, labels, agentHandle, }: SkillDraftFormProps): import("react").JSX.Element;
39
41
  //# sourceMappingURL=SkillDraftForm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SkillDraftForm.d.ts","sourceRoot":"","sources":["../../../../../src/features/skills/react/components/SkillDraftForm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGlE,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,UAAU,CAAC;IAClB,aAAa,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,UAAU,KAAK,IAAI,CAAC;IACpE,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;CAC3C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,UAAU,EACV,KAAK,EACL,aAAa,EACb,KAAK,EACL,MAAM,EACN,MAAM,EACN,iBAAyB,EACzB,QAAQ,EACR,QAAQ,EACR,MAAM,GACP,EAAE,mBAAmB,+BAgGrB"}
1
+ {"version":3,"file":"SkillDraftForm.d.ts","sourceRoot":"","sources":["../../../../../src/features/skills/react/components/SkillDraftForm.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGlE,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,UAAU,CAAC;IAClB,aAAa,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,UAAU,KAAK,IAAI,CAAC;IACpE,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IAC1C,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,UAAU,EACV,KAAK,EACL,aAAa,EACb,KAAK,EACL,MAAM,EACN,MAAM,EACN,iBAAyB,EACzB,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,WAAW,GACZ,EAAE,mBAAmB,+BAiHrB"}
@@ -1,11 +1,12 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { agentHandleProps } from '@jini-ai/agentic';
2
3
  import { useT } from '../../../i18n/index.js';
3
4
  /**
4
5
  * The create/edit form for one skill — shared between the top-of-list
5
6
  * "New skill" panel and an expanded row's inline edit. Origin:
6
7
  * `SkillDraftForm` in `SkillsSection.tsx`.
7
8
  */
8
- export function SkillDraftForm({ heading, subheading, draft, onDraftChange, error, saving, isEdit, isBuiltInOverride = false, onCancel, onSubmit, labels, }) {
9
+ export function SkillDraftForm({ heading, subheading, draft, onDraftChange, error, saving, isEdit, isBuiltInOverride = false, onCancel, onSubmit, labels, agentHandle, }) {
9
10
  const t = useT();
10
11
  const nameLabel = labels?.nameLabel ?? t('Name');
11
12
  const namePlaceholder = labels?.namePlaceholder ?? t('my-skill');
@@ -24,6 +25,6 @@ export function SkillDraftForm({ heading, subheading, draft, onDraftChange, erro
24
25
  const bodyRequiredError = labels?.bodyRequiredError ?? t('Body is required.');
25
26
  const submitLabel = saving ? savingLabel : isEdit ? (isBuiltInOverride ? overrideSaveLabel : saveLabel) : createLabel;
26
27
  const errorText = error?.kind === 'name-required' ? nameRequiredError : error?.kind === 'body-required' ? bodyRequiredError : (error?.message ?? null);
27
- return (_jsxs("div", { className: "jini-settings-subsection jini-skills-draft", "data-testid": isEdit ? 'skills-edit-form' : 'skills-create-form', children: [_jsx("div", { className: "jini-section-head", children: _jsxs("div", { children: [_jsx("h4", { children: heading }), subheading ? _jsx("p", { className: "jini-hint", children: subheading }) : null] }) }), _jsx("div", { className: "jini-settings-field", children: _jsxs("label", { children: [_jsx("span", { children: nameLabel }), _jsx("input", { type: "text", value: draft.name, onChange: (event) => onDraftChange((current) => ({ ...current, name: event.target.value })), placeholder: namePlaceholder, disabled: isEdit })] }) }), _jsx("div", { className: "jini-settings-field", children: _jsxs("label", { children: [_jsx("span", { children: triggersLabel }), _jsx("input", { type: "text", value: draft.triggers, onChange: (event) => onDraftChange((current) => ({ ...current, triggers: event.target.value })), placeholder: triggersPlaceholder })] }) }), _jsx("div", { className: "jini-settings-field", children: _jsxs("label", { children: [_jsx("span", { children: descriptionLabel }), _jsx("textarea", { rows: 2, value: draft.description, onChange: (event) => onDraftChange((current) => ({ ...current, description: event.target.value })), placeholder: descriptionPlaceholder })] }) }), _jsx("div", { className: "jini-settings-field", children: _jsxs("label", { children: [_jsx("span", { children: bodyLabel }), _jsx("textarea", { rows: 14, value: draft.body, onChange: (event) => onDraftChange((current) => ({ ...current, body: event.target.value })), placeholder: bodyPlaceholder })] }) }), errorText ? (_jsx("p", { className: "jini-hint jini-hint-error", role: "alert", children: errorText })) : null, _jsxs("div", { className: "jini-skills-draft-actions", children: [_jsx("button", { type: "button", className: "jini-button jini-button-ghost", onClick: onCancel, disabled: saving, children: cancelLabel }), _jsx("button", { type: "button", className: "jini-button jini-button-primary", onClick: onSubmit, disabled: saving, "data-testid": "skills-save", children: submitLabel })] })] }));
28
+ return (_jsxs("div", { className: "jini-settings-subsection jini-skills-draft", "data-testid": isEdit ? 'skills-edit-form' : 'skills-create-form', children: [_jsx("div", { className: "jini-section-head", children: _jsxs("div", { children: [_jsx("h4", { children: heading }), subheading ? _jsx("p", { className: "jini-hint", children: subheading }) : null] }) }), _jsx("div", { className: "jini-settings-field", children: _jsxs("label", { children: [_jsx("span", { children: nameLabel }), _jsx("input", { type: "text", value: draft.name, onChange: (event) => onDraftChange((current) => ({ ...current, name: event.target.value })), placeholder: namePlaceholder, disabled: isEdit, ...agentHandleProps(agentHandle, { action: 'name', role: 'field', label: nameLabel }) })] }) }), _jsx("div", { className: "jini-settings-field", children: _jsxs("label", { children: [_jsx("span", { children: triggersLabel }), _jsx("input", { type: "text", value: draft.triggers, onChange: (event) => onDraftChange((current) => ({ ...current, triggers: event.target.value })), placeholder: triggersPlaceholder, ...agentHandleProps(agentHandle, { action: 'triggers', role: 'field', label: triggersLabel }) })] }) }), _jsx("div", { className: "jini-settings-field", children: _jsxs("label", { children: [_jsx("span", { children: descriptionLabel }), _jsx("textarea", { rows: 2, value: draft.description, onChange: (event) => onDraftChange((current) => ({ ...current, description: event.target.value })), placeholder: descriptionPlaceholder, ...agentHandleProps(agentHandle, { action: 'description', role: 'field', label: descriptionLabel }) })] }) }), _jsx("div", { className: "jini-settings-field", children: _jsxs("label", { children: [_jsx("span", { children: bodyLabel }), _jsx("textarea", { rows: 14, value: draft.body, onChange: (event) => onDraftChange((current) => ({ ...current, body: event.target.value })), placeholder: bodyPlaceholder, ...agentHandleProps(agentHandle, { action: 'body', role: 'field', label: bodyLabel }) })] }) }), errorText ? (_jsx("p", { className: "jini-hint jini-hint-error", role: "alert", children: errorText })) : null, _jsxs("div", { className: "jini-skills-draft-actions", children: [_jsx("button", { type: "button", className: "jini-button jini-button-ghost", onClick: onCancel, disabled: saving, ...agentHandleProps(agentHandle, { action: 'cancel', role: 'button', label: cancelLabel }), children: cancelLabel }), _jsx("button", { type: "button", className: "jini-button jini-button-primary", onClick: onSubmit, disabled: saving, "data-testid": "skills-save", ...agentHandleProps(agentHandle, { action: 'submit', role: 'button', label: submitLabel }), children: submitLabel })] })] }));
28
29
  }
29
30
  //# sourceMappingURL=SkillDraftForm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SkillDraftForm.js","sourceRoot":"","sources":["../../../../../src/features/skills/react/components/SkillDraftForm.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAmC9C;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,OAAO,EACP,UAAU,EACV,KAAK,EACL,aAAa,EACb,KAAK,EACL,MAAM,EACN,MAAM,EACN,iBAAiB,GAAG,KAAK,EACzB,QAAQ,EACR,QAAQ,EACR,MAAM,GACc;IACpB,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IACjB,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,eAAe,GAAG,MAAM,EAAE,eAAe,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,MAAM,EAAE,aAAa,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC;IAC7D,MAAM,mBAAmB,GAAG,MAAM,EAAE,mBAAmB,IAAI,CAAC,CAAC,2BAA2B,CAAC,CAAC;IAC1F,MAAM,gBAAgB,GAAG,MAAM,EAAE,gBAAgB,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC;IACtE,MAAM,sBAAsB,GAAG,MAAM,EAAE,sBAAsB,IAAI,CAAC,CAAC,kDAAkD,CAAC,CAAC;IACvH,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,eAAe,GAAG,MAAM,EAAE,eAAe,IAAI,CAAC,CAAC,6EAA6E,CAAC,CAAC;IACpI,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,iBAAiB,GAAG,MAAM,EAAE,iBAAiB,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAC7E,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;IACxD,MAAM,iBAAiB,GAAG,MAAM,EAAE,iBAAiB,IAAI,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC9E,MAAM,iBAAiB,GAAG,MAAM,EAAE,iBAAiB,IAAI,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAE9E,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IACtH,MAAM,SAAS,GACb,KAAK,EAAE,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC;IAEvI,OAAO,CACL,eAAK,SAAS,EAAC,4CAA4C,iBAAc,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,oBAAoB,aACzH,cAAK,SAAS,EAAC,mBAAmB,YAChC,0BACE,uBAAK,OAAO,GAAM,EACjB,UAAU,CAAC,CAAC,CAAC,YAAG,SAAS,EAAC,WAAW,YAAE,UAAU,GAAK,CAAC,CAAC,CAAC,IAAI,IAC1D,GACF,EAEN,cAAK,SAAS,EAAC,qBAAqB,YAClC,4BACE,yBAAO,SAAS,GAAQ,EACxB,gBACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,KAAK,CAAC,IAAI,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,EAC3F,WAAW,EAAE,eAAe,EAC5B,QAAQ,EAAE,MAAM,GAChB,IACI,GACJ,EAEN,cAAK,SAAS,EAAC,qBAAqB,YAClC,4BACE,yBAAO,aAAa,GAAQ,EAC5B,gBACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,KAAK,CAAC,QAAQ,EACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,EAC/F,WAAW,EAAE,mBAAmB,GAChC,IACI,GACJ,EAEN,cAAK,SAAS,EAAC,qBAAqB,YAClC,4BACE,yBAAO,gBAAgB,GAAQ,EAC/B,mBACE,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,KAAK,CAAC,WAAW,EACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,EAClG,WAAW,EAAE,sBAAsB,GACnC,IACI,GACJ,EAEN,cAAK,SAAS,EAAC,qBAAqB,YAClC,4BACE,yBAAO,SAAS,GAAQ,EACxB,mBACE,IAAI,EAAE,EAAE,EACR,KAAK,EAAE,KAAK,CAAC,IAAI,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,EAC3F,WAAW,EAAE,eAAe,GAC5B,IACI,GACJ,EAEL,SAAS,CAAC,CAAC,CAAC,CACX,YAAG,SAAS,EAAC,2BAA2B,EAAC,IAAI,EAAC,OAAO,YAClD,SAAS,GACR,CACL,CAAC,CAAC,CAAC,IAAI,EAER,eAAK,SAAS,EAAC,2BAA2B,aACxC,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,+BAA+B,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAChG,WAAW,GACL,EACT,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,iCAAiC,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,iBAAc,aAAa,YAC7H,WAAW,GACL,IACL,IACF,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"SkillDraftForm.js","sourceRoot":"","sources":["../../../../../src/features/skills/react/components/SkillDraftForm.tsx"],"names":[],"mappings":"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"}
@@ -43,6 +43,8 @@ export interface SkillRowProps {
43
43
  onCancelEdit: () => void;
44
44
  onSubmitEdit: () => void;
45
45
  labels?: SkillRowLabels | undefined;
46
+ /** This row's own agent handle — `SkillsTab` derives one per skill via `buildAgentListHandles`. */
47
+ agentHandle?: string;
46
48
  }
47
49
  /**
48
50
  * One collapsible skill row: header (enable toggle, name, mode/category/
@@ -50,5 +52,5 @@ export interface SkillRowProps {
50
52
  * tree, or an inline edit form, revealed only when expanded. Origin:
51
53
  * `SkillRow` in `SkillsSection.tsx`.
52
54
  */
53
- export declare function SkillRow({ skill, locale, enabled, expanded, editing, body, bodyLoading, files, filesLoading, confirmDelete, confirmBuiltInEdit, draft, draftError, draftSaving, onDraftChange, onToggleExpanded, onToggleEnabled, onStartEdit, onConfirmBuiltInEdit, onCancelBuiltInEdit, onArmDelete, onCancelDelete, onCommitDelete, onCancelEdit, onSubmitEdit, labels, }: SkillRowProps): import("react").JSX.Element;
55
+ export declare function SkillRow({ skill, locale, enabled, expanded, editing, body, bodyLoading, files, filesLoading, confirmDelete, confirmBuiltInEdit, draft, draftError, draftSaving, onDraftChange, onToggleExpanded, onToggleEnabled, onStartEdit, onConfirmBuiltInEdit, onCancelBuiltInEdit, onArmDelete, onCancelDelete, onCommitDelete, onCancelEdit, onSubmitEdit, labels, agentHandle, }: SkillRowProps): import("react").JSX.Element;
54
56
  //# sourceMappingURL=SkillRow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SkillRow.d.ts","sourceRoot":"","sources":["../../../../../src/features/skills/react/components/SkillRow.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGhG,OAAO,EAAkB,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhF,MAAM,WAAW,cAAe,SAAQ,oBAAoB;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,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,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,SAAS,cAAc,EAAE,GAAG,IAAI,CAAC;IACxC,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,UAAU,KAAK,IAAI,CAAC;IACpE,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;CACrC;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,MAAM,EACN,OAAO,EACP,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,WAAW,EACX,KAAK,EACL,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,KAAK,EACL,UAAU,EACV,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,MAAM,GACP,EAAE,aAAa,+BAoKf"}
1
+ {"version":3,"file":"SkillRow.d.ts","sourceRoot":"","sources":["../../../../../src/features/skills/react/components/SkillRow.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGhG,OAAO,EAAkB,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhF,MAAM,WAAW,cAAe,SAAQ,oBAAoB;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,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,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,SAAS,cAAc,EAAE,GAAG,IAAI,CAAC;IACxC,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,UAAU,KAAK,IAAI,CAAC;IACpE,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACpC,mGAAmG;IACnG,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,MAAM,EACN,OAAO,EACP,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,WAAW,EACX,KAAK,EACL,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,KAAK,EACL,UAAU,EACV,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,WAAW,GACZ,EAAE,aAAa,+BAqMf"}
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { agentHandleProps, agentSubHandle } from '@jini-ai/agentic';
2
3
  import { formatSkillFileSize, humanizeSkillCategory, isBuiltInSkill, isDeletableSkill, localizedSkillDescription, localizedSkillName, skillFileLeafName, skillFileTreeIndent, } from '../../rules.js';
3
4
  import { useT } from '../../../i18n/index.js';
4
5
  import { Icon } from '../../../../react/components/Icon.js';
@@ -9,7 +10,7 @@ import { SkillDraftForm } from './SkillDraftForm.js';
9
10
  * tree, or an inline edit form, revealed only when expanded. Origin:
10
11
  * `SkillRow` in `SkillsSection.tsx`.
11
12
  */
12
- export function SkillRow({ skill, locale, enabled, expanded, editing, body, bodyLoading, files, filesLoading, confirmDelete, confirmBuiltInEdit, draft, draftError, draftSaving, onDraftChange, onToggleExpanded, onToggleEnabled, onStartEdit, onConfirmBuiltInEdit, onCancelBuiltInEdit, onArmDelete, onCancelDelete, onCommitDelete, onCancelEdit, onSubmitEdit, labels, }) {
13
+ export function SkillRow({ skill, locale, enabled, expanded, editing, body, bodyLoading, files, filesLoading, confirmDelete, confirmBuiltInEdit, draft, draftError, draftSaving, onDraftChange, onToggleExpanded, onToggleEnabled, onStartEdit, onConfirmBuiltInEdit, onCancelBuiltInEdit, onArmDelete, onCancelDelete, onCommitDelete, onCancelEdit, onSubmitEdit, labels, agentHandle, }) {
13
14
  const t = useT();
14
15
  const name = localizedSkillName(skill, locale) || skill.id;
15
16
  const description = localizedSkillDescription(skill, locale);
@@ -29,6 +30,6 @@ export function SkillRow({ skill, locale, enabled, expanded, editing, body, body
29
30
  const bodyHeading = labels?.bodyHeading ?? t('SKILL.md');
30
31
  const userBadge = labels?.userBadge ?? t('user');
31
32
  const overrideWarning = labels?.overrideWarning ?? t('This skill ships with the host. Editing it creates your own copy — the original is unaffected.');
32
- return (_jsxs("div", { className: `jini-skills-row${enabled ? '' : ' jini-skills-row-disabled'}${expanded ? ' jini-skills-row-expanded' : ''}`, "data-testid": `skill-row-${skill.id}`, children: [_jsxs("div", { className: "jini-skills-row-head", children: [_jsxs("button", { type: "button", className: "jini-skills-row-summary-btn", onClick: onToggleExpanded, "aria-expanded": expanded, title: expanded ? collapseLabel : expandLabel, children: [_jsx(Icon, { name: "puzzle", size: 14, "aria-hidden": "true" }), _jsxs("span", { className: "jini-skills-row-summary", children: [_jsxs("span", { className: "jini-skills-row-summary-line", children: [_jsx("strong", { children: name }), _jsx("span", { className: "jini-skills-row-summary-mode", children: skill.mode }), skill.category ? (_jsx("span", { className: "jini-skills-row-summary-category", title: humanizeSkillCategory(skill.category), children: humanizeSkillCategory(skill.category) })) : null, skill.source === 'user' ? _jsx("span", { className: "jini-skills-row-summary-source", children: userBadge }) : null] }), description ? _jsx("span", { className: "jini-hint", children: description }) : null] }), _jsx(Icon, { name: "chevron-down", size: 14, "aria-hidden": "true" })] }), _jsxs("div", { className: "jini-skills-row-actions", children: [canDelete && confirmDelete ? (_jsxs("span", { className: "jini-skills-delete-confirm", role: "group", children: [_jsx("button", { type: "button", className: "jini-button jini-button-danger", onClick: onCommitDelete, "data-testid": "skills-delete-confirm", children: deleteConfirmLabel }), _jsx("button", { type: "button", className: "jini-button jini-button-ghost", onClick: onCancelDelete, children: cancelLabel })] })) : (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", className: "jini-button jini-button-ghost", onClick: onStartEdit, "aria-label": builtIn ? overrideCreateLabel : editLabel, title: builtIn ? overrideCreateLabel : editLabel, "data-testid": "skills-edit", children: _jsx(Icon, { name: "edit", size: 13 }) }), canDelete ? (_jsx("button", { type: "button", className: "jini-button jini-button-ghost", onClick: onArmDelete, "aria-label": deleteLabel, title: deleteLabel, "data-testid": "skills-delete", children: _jsx(Icon, { name: "close", size: 13 }) })) : null] })), _jsxs("label", { className: "toggle-switch toggle-switch-sm jini-skills-row-enable", title: enableToggleLabel, children: [_jsx("input", { type: "checkbox", checked: enabled, onChange: (event) => onToggleEnabled(event.target.checked), "aria-label": enableToggleLabel }), _jsx("span", { className: "toggle-slider" })] })] })] }), confirmBuiltInEdit ? (_jsxs("div", { className: "jini-empty-card jini-empty-card-warning", role: "alert", "data-testid": "skills-edit-builtin-warning", children: [_jsx("p", { children: overrideWarning }), _jsxs("div", { className: "jini-skills-draft-actions", children: [_jsx("button", { type: "button", className: "jini-button jini-button-ghost", onClick: onCancelBuiltInEdit, "data-testid": "skills-edit-builtin-cancel", children: cancelLabel }), _jsx("button", { type: "button", className: "jini-button jini-button-primary", onClick: onConfirmBuiltInEdit, "data-testid": "skills-edit-builtin-confirm", children: overrideCreateLabel })] })] })) : null, expanded && !editing ? (_jsxs("div", { className: "jini-skills-row-detail", children: [_jsxs("div", { className: "jini-settings-subsection", children: [_jsx("h5", { children: bodyHeading }), bodyLoading ? _jsx("p", { className: "jini-hint", children: loadingLabel }) : _jsx("pre", { className: "jini-skills-body-preview", children: body ?? '' })] }), _jsxs("div", { className: "jini-settings-subsection", children: [_jsx("h5", { children: filesHeading }), filesLoading ? (_jsx("p", { className: "jini-hint", children: loadingLabel })) : !files || files.length === 0 ? (_jsx("p", { className: "jini-hint", children: noFilesLabel })) : (_jsx("ul", { className: "jini-skills-file-tree", children: files.map((entry) => (_jsxs("li", { className: "jini-skills-file-entry", style: { paddingLeft: skillFileTreeIndent(entry.path) }, children: [_jsx(Icon, { name: entry.kind === 'directory' ? 'folder' : 'file', size: 12 }), _jsx("span", { children: skillFileLeafName(entry.path) }), entry.kind === 'file' && typeof entry.size === 'number' ? (_jsx("span", { className: "jini-hint", children: formatSkillFileSize(entry.size) })) : null] }, entry.path))) }))] })] })) : null, editing && draft ? (_jsx(SkillDraftForm, { heading: builtIn ? overrideCreateLabel : editLabel, subheading: skill.id, draft: draft, onDraftChange: onDraftChange, error: draftError, saving: draftSaving, isEdit: true, isBuiltInOverride: builtIn, onCancel: onCancelEdit, onSubmit: onSubmitEdit, labels: labels })) : null] }));
33
+ return (_jsxs("div", { className: `jini-skills-row${enabled ? '' : ' jini-skills-row-disabled'}${expanded ? ' jini-skills-row-expanded' : ''}`, "data-testid": `skill-row-${skill.id}`, children: [_jsxs("div", { className: "jini-skills-row-head", children: [_jsxs("button", { type: "button", className: "jini-skills-row-summary-btn", onClick: onToggleExpanded, "aria-expanded": expanded, title: expanded ? collapseLabel : expandLabel, ...agentHandleProps(agentHandle, { action: 'expand', role: 'button', label: name }), children: [_jsx(Icon, { name: "puzzle", size: 14, "aria-hidden": "true" }), _jsxs("span", { className: "jini-skills-row-summary", children: [_jsxs("span", { className: "jini-skills-row-summary-line", children: [_jsx("strong", { children: name }), _jsx("span", { className: "jini-skills-row-summary-mode", children: skill.mode }), skill.category ? (_jsx("span", { className: "jini-skills-row-summary-category", title: humanizeSkillCategory(skill.category), children: humanizeSkillCategory(skill.category) })) : null, skill.source === 'user' ? _jsx("span", { className: "jini-skills-row-summary-source", children: userBadge }) : null] }), description ? _jsx("span", { className: "jini-hint", children: description }) : null] }), _jsx(Icon, { name: "chevron-down", size: 14, "aria-hidden": "true" })] }), _jsxs("div", { className: "jini-skills-row-actions", children: [canDelete && confirmDelete ? (_jsxs("span", { className: "jini-skills-delete-confirm", role: "group", children: [_jsx("button", { type: "button", className: "jini-button jini-button-danger", onClick: onCommitDelete, "data-testid": "skills-delete-confirm", ...agentHandleProps(agentHandle, { action: 'delete-confirm', role: 'button', label: deleteConfirmLabel }), children: deleteConfirmLabel }), _jsx("button", { type: "button", className: "jini-button jini-button-ghost", onClick: onCancelDelete, ...agentHandleProps(agentHandle, { action: 'delete-cancel', role: 'button', label: cancelLabel }), children: cancelLabel })] })) : (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", className: "jini-button jini-button-ghost", onClick: onStartEdit, "aria-label": builtIn ? overrideCreateLabel : editLabel, title: builtIn ? overrideCreateLabel : editLabel, "data-testid": "skills-edit", ...agentHandleProps(agentHandle, { action: 'edit', role: 'button', label: builtIn ? overrideCreateLabel : editLabel }), children: _jsx(Icon, { name: "edit", size: 13 }) }), canDelete ? (_jsx("button", { type: "button", className: "jini-button jini-button-ghost", onClick: onArmDelete, "aria-label": deleteLabel, title: deleteLabel, "data-testid": "skills-delete", ...agentHandleProps(agentHandle, { action: 'delete', role: 'button', label: deleteLabel }), children: _jsx(Icon, { name: "close", size: 13 }) })) : null] })), _jsxs("label", { className: "toggle-switch toggle-switch-sm jini-skills-row-enable", title: enableToggleLabel, children: [_jsx("input", { type: "checkbox", checked: enabled, onChange: (event) => onToggleEnabled(event.target.checked), "aria-label": enableToggleLabel, ...agentHandleProps(agentHandle, { action: 'enabled', role: 'checkbox', label: enableToggleLabel }) }), _jsx("span", { className: "toggle-slider" })] })] })] }), confirmBuiltInEdit ? (_jsxs("div", { className: "jini-empty-card jini-empty-card-warning", role: "alert", "data-testid": "skills-edit-builtin-warning", children: [_jsx("p", { children: overrideWarning }), _jsxs("div", { className: "jini-skills-draft-actions", children: [_jsx("button", { type: "button", className: "jini-button jini-button-ghost", onClick: onCancelBuiltInEdit, "data-testid": "skills-edit-builtin-cancel", ...agentHandleProps(agentHandle, { action: 'builtin-edit-cancel', role: 'button', label: cancelLabel }), children: cancelLabel }), _jsx("button", { type: "button", className: "jini-button jini-button-primary", onClick: onConfirmBuiltInEdit, "data-testid": "skills-edit-builtin-confirm", ...agentHandleProps(agentHandle, { action: 'builtin-edit-confirm', role: 'button', label: overrideCreateLabel }), children: overrideCreateLabel })] })] })) : null, expanded && !editing ? (_jsxs("div", { className: "jini-skills-row-detail", children: [_jsxs("div", { className: "jini-settings-subsection", children: [_jsx("h5", { children: bodyHeading }), bodyLoading ? _jsx("p", { className: "jini-hint", children: loadingLabel }) : _jsx("pre", { className: "jini-skills-body-preview", children: body ?? '' })] }), _jsxs("div", { className: "jini-settings-subsection", children: [_jsx("h5", { children: filesHeading }), filesLoading ? (_jsx("p", { className: "jini-hint", children: loadingLabel })) : !files || files.length === 0 ? (_jsx("p", { className: "jini-hint", children: noFilesLabel })) : (_jsx("ul", { className: "jini-skills-file-tree", children: files.map((entry) => (_jsxs("li", { className: "jini-skills-file-entry", style: { paddingLeft: skillFileTreeIndent(entry.path) }, children: [_jsx(Icon, { name: entry.kind === 'directory' ? 'folder' : 'file', size: 12 }), _jsx("span", { children: skillFileLeafName(entry.path) }), entry.kind === 'file' && typeof entry.size === 'number' ? (_jsx("span", { className: "jini-hint", children: formatSkillFileSize(entry.size) })) : null] }, entry.path))) }))] })] })) : null, editing && draft ? (_jsx(SkillDraftForm, { heading: builtIn ? overrideCreateLabel : editLabel, subheading: skill.id, draft: draft, onDraftChange: onDraftChange, error: draftError, saving: draftSaving, isEdit: true, isBuiltInOverride: builtIn, onCancel: onCancelEdit, onSubmit: onSubmitEdit, labels: labels, ...(agentHandle ? { agentHandle: agentSubHandle(agentHandle, 'edit-form') } : {}) })) : null] }));
33
34
  }
34
35
  //# sourceMappingURL=SkillRow.js.map