@iblai/mcp 1.3.2 → 1.3.4
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-info.d.ts","sourceRoot":"","sources":["../../src/tools/component-info.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAc7B,CAAC;
|
|
1
|
+
{"version":3,"file":"component-info.d.ts","sourceRoot":"","sources":["../../src/tools/component-info.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAc7B,CAAC;AA62GF,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAyD9D"}
|
|
@@ -2468,6 +2468,814 @@ import { CourseContentLayout } from '@iblai/iblai-js/web-containers/next';
|
|
|
2468
2468
|
\`\`\`
|
|
2469
2469
|
|
|
2470
2470
|
**File Location**: \`packages/web-containers/src/components/course-content/course-content-layout.tsx\``,
|
|
2471
|
+
// ============================================================================
|
|
2472
|
+
// DISCOVER / CATALOG COMPONENTS (from skillsai's app/discover)
|
|
2473
|
+
// ============================================================================
|
|
2474
|
+
SkeletonDiscoverFilterBox: `# SkeletonDiscoverFilterBox Component
|
|
2475
|
+
|
|
2476
|
+
Single-row skeleton placeholder used inside the facets filter sidebar while facet data loads. Typically multiplied via \`<SkeletonMultiplier />\`.
|
|
2477
|
+
|
|
2478
|
+
\`\`\`typescript
|
|
2479
|
+
import { SkeletonDiscoverFilterBox, SkeletonMultiplier } from '@iblai/iblai-js/web-containers';
|
|
2480
|
+
|
|
2481
|
+
<SkeletonMultiplier multiplier={10} Skeleton={SkeletonDiscoverFilterBox} />
|
|
2482
|
+
\`\`\`
|
|
2483
|
+
|
|
2484
|
+
**File Location**: \`packages/web-containers/src/components/course-content/skeleton-discover-filter-box.tsx\``,
|
|
2485
|
+
DiscoverFacetsFilter: `# DiscoverFacetsFilter Component
|
|
2486
|
+
|
|
2487
|
+
Renders the full list of facet groups (content type, language, level, etc.) with per-group collapse + per-term search. Reads all state from \`FacetFilterContext\`; pair with \`useDiscover\` (or your own provider) for data. Framework-agnostic.
|
|
2488
|
+
|
|
2489
|
+
\`\`\`typescript
|
|
2490
|
+
import { DiscoverFacetsFilter, FacetFilterContext, useDiscover } from '@iblai/iblai-js/web-containers';
|
|
2491
|
+
|
|
2492
|
+
const discover = useDiscover({ limit: 12, lmsUrl });
|
|
2493
|
+
<FacetFilterContext.Provider value={{ ...discover, filterDrawerOpen, setFilterDrawerOpen }}>
|
|
2494
|
+
<DiscoverFacetsFilter />
|
|
2495
|
+
</FacetFilterContext.Provider>
|
|
2496
|
+
\`\`\`
|
|
2497
|
+
|
|
2498
|
+
**File Location**: \`packages/web-containers/src/components/course-content/discover-facets-filter.tsx\``,
|
|
2499
|
+
DiscoverFilterDrawer: `# DiscoverFilterDrawer Component
|
|
2500
|
+
|
|
2501
|
+
Mobile drawer variant of \`<DiscoverFacetsFilter />\`. Reads \`filterDrawerOpen\` / \`setFilterDrawerOpen\` from \`FacetFilterContext\` and slides the facet list in from the left inside a Sheet.
|
|
2502
|
+
|
|
2503
|
+
\`\`\`typescript
|
|
2504
|
+
import { DiscoverFilterDrawer } from '@iblai/iblai-js/web-containers';
|
|
2505
|
+
|
|
2506
|
+
<DiscoverFilterDrawer />
|
|
2507
|
+
\`\`\`
|
|
2508
|
+
|
|
2509
|
+
**File Location**: \`packages/web-containers/src/components/course-content/discover-filter-drawer.tsx\``,
|
|
2510
|
+
DiscoverContentCard: `# DiscoverContentCard Component
|
|
2511
|
+
|
|
2512
|
+
Presentational tile for a single discoverable content item (course / pathway / program / article). Framework-agnostic port of skillsai's version — uses a plain \`<img>\` (falls back to a random bundled course image on empty/404) and delegates click handling to an \`onSelect\` callback so callers keep control over routing + modal state.
|
|
2513
|
+
|
|
2514
|
+
\`\`\`typescript
|
|
2515
|
+
import { DiscoverContentCard } from '@iblai/iblai-js/web-containers';
|
|
2516
|
+
|
|
2517
|
+
<DiscoverContentCard
|
|
2518
|
+
content={content}
|
|
2519
|
+
onSelect={(c) => {
|
|
2520
|
+
if (c.contentType === 'pathway') setSelectedPathway(c);
|
|
2521
|
+
else if (c.contentType === 'program') setSelectedProgram(c);
|
|
2522
|
+
else router.push(\`/courses/\${c.id}\`);
|
|
2523
|
+
}}
|
|
2524
|
+
/>
|
|
2525
|
+
\`\`\`
|
|
2526
|
+
|
|
2527
|
+
**File Location**: \`packages/web-containers/src/components/course-content/discover-content-card.tsx\``,
|
|
2528
|
+
AccessiblePaginate: `# AccessiblePaginate Component
|
|
2529
|
+
|
|
2530
|
+
Thin wrapper around \`react-paginate\` that fixes an accessibility issue: the library renders \`<ul role="navigation">\`, which isn't valid — the navigation landmark belongs on the \`<nav>\`. This wraps the paginator in \`<nav aria-label="Pagination">\` and rewrites the inner \`<ul>\` role to \`list\`. Forwards every prop to \`react-paginate\`. \`react-paginate\` is an optional peer dependency — install it in consumer apps that use this component.
|
|
2531
|
+
|
|
2532
|
+
\`\`\`typescript
|
|
2533
|
+
import { AccessiblePaginate } from '@iblai/iblai-js/web-containers';
|
|
2534
|
+
|
|
2535
|
+
<AccessiblePaginate
|
|
2536
|
+
pageCount={pagination?.total_pages ?? Math.ceil((pagination?.count ?? 1) / limit)}
|
|
2537
|
+
onPageChange={(data) => setPage(data.selected + 1)}
|
|
2538
|
+
previousLabel="Previous"
|
|
2539
|
+
nextLabel="Next"
|
|
2540
|
+
/>
|
|
2541
|
+
\`\`\`
|
|
2542
|
+
|
|
2543
|
+
**File Location**: \`packages/web-containers/src/components/course-content/accessible-paginate.tsx\``,
|
|
2544
|
+
Footer: `# Footer Component
|
|
2545
|
+
|
|
2546
|
+
Prop-driven port of skillsai's app footer. Renders a fixed bottom bar with a left-side list of markdown-style menu items + a right-side copyright line. Framework-agnostic — callers pass menus / copyright / chat-open state pre-resolved, so it works outside Next.js. Provide a \`renderLink\` to swap the default anchor for \`next/link\`.
|
|
2547
|
+
|
|
2548
|
+
\`\`\`typescript
|
|
2549
|
+
import { Footer } from '@iblai/iblai-js/web-containers';
|
|
2550
|
+
import Link from 'next/link';
|
|
2551
|
+
|
|
2552
|
+
<Footer
|
|
2553
|
+
menus={[
|
|
2554
|
+
{ label: 'Terms of Use', link: tenantMeta.terms_of_use_url },
|
|
2555
|
+
{ label: 'Privacy Policy', link: tenantMeta.privacy_policy_url },
|
|
2556
|
+
]}
|
|
2557
|
+
copyright={\`© \${platformName}\`}
|
|
2558
|
+
chatOpen={chatIsOpen}
|
|
2559
|
+
renderLink={(props) => <Link {...props} />}
|
|
2560
|
+
/>
|
|
2561
|
+
\`\`\`
|
|
2562
|
+
|
|
2563
|
+
**File Location**: \`packages/web-containers/src/components/course-content/footer.tsx\``,
|
|
2564
|
+
// ============================================================================
|
|
2565
|
+
// EDIT MENTOR MODAL — Extracted Tabs
|
|
2566
|
+
// ============================================================================
|
|
2567
|
+
AgentSettingsProvider: `# AgentSettingsProvider
|
|
2568
|
+
|
|
2569
|
+
React context provider that supplies shared identity and config to all agent settings tabs. Wrap tab content with this provider so each tab reads tenantKey, mentorId, username, enableRBAC, and executeGatedAction from context instead of props.
|
|
2570
|
+
|
|
2571
|
+
\`\`\`typescript
|
|
2572
|
+
import { AgentSettingsProvider } from '@iblai/iblai-js/web-containers/next';
|
|
2573
|
+
import type { AgentSettingsContextValue } from '@iblai/iblai-js/web-containers/next';
|
|
2574
|
+
|
|
2575
|
+
interface AgentSettingsContextValue {
|
|
2576
|
+
tenantKey: string;
|
|
2577
|
+
mentorId: string;
|
|
2578
|
+
username: string;
|
|
2579
|
+
enableRBAC: boolean;
|
|
2580
|
+
executeGatedAction?: (fn: () => unknown) => unknown;
|
|
2581
|
+
}
|
|
2582
|
+
|
|
2583
|
+
<AgentSettingsProvider
|
|
2584
|
+
tenantKey={tenantKey}
|
|
2585
|
+
mentorId={activeMentorId}
|
|
2586
|
+
username={username}
|
|
2587
|
+
enableRBAC={config.enableRBAC()}
|
|
2588
|
+
executeGatedAction={(fn) => executeWithTrialCheck(fn)}
|
|
2589
|
+
>
|
|
2590
|
+
<SettingsTab ... />
|
|
2591
|
+
<LLMTab ... />
|
|
2592
|
+
</AgentSettingsProvider>
|
|
2593
|
+
\`\`\`
|
|
2594
|
+
|
|
2595
|
+
The \`useAgentSettings()\` hook is also exported for building custom tabs that read from this context.
|
|
2596
|
+
|
|
2597
|
+
> **Import from \`@iblai/iblai-js/web-containers/next\`** — requires Next.js
|
|
2598
|
+
|
|
2599
|
+
**File Location**: \`packages/web-containers/src/components/modals/edit-mentor-modal/agent-settings-context.tsx\``,
|
|
2600
|
+
SettingsTab: `# SettingsTab Component
|
|
2601
|
+
|
|
2602
|
+
Agent/mentor settings form with name, description, category, visibility, toggles, image upload, and copy/delete sub-modals. Reads identity from AgentSettingsProvider context — must be wrapped by it.
|
|
2603
|
+
|
|
2604
|
+
\`\`\`typescript
|
|
2605
|
+
import { SettingsTab } from '@iblai/iblai-js/web-containers/next';
|
|
2606
|
+
import type { SettingsTabProps, DeepPartial, SettingsTabLabels } from '@iblai/iblai-js/web-containers/next';
|
|
2607
|
+
|
|
2608
|
+
interface SettingsTabProps {
|
|
2609
|
+
onSettingsSaved?: (mentor: unknown) => void;
|
|
2610
|
+
onMentorDeleted?: (deletedMentorId: string) => void;
|
|
2611
|
+
tenants: CopyMentorTenant[];
|
|
2612
|
+
isLoadingTenants?: boolean;
|
|
2613
|
+
onMentorCopied?: (params: {
|
|
2614
|
+
forkedMentorId: string;
|
|
2615
|
+
destinationTenantKey: string;
|
|
2616
|
+
isCrossTenantCopy: boolean;
|
|
2617
|
+
}) => void;
|
|
2618
|
+
labels?: DeepPartial<SettingsTabLabels>;
|
|
2619
|
+
}
|
|
2620
|
+
|
|
2621
|
+
// With the default "agent" labels:
|
|
2622
|
+
<SettingsTab
|
|
2623
|
+
tenants={tenants}
|
|
2624
|
+
onMentorDeleted={handleDelete}
|
|
2625
|
+
onMentorCopied={handleCopy}
|
|
2626
|
+
/>
|
|
2627
|
+
|
|
2628
|
+
// With custom "mentor" labels:
|
|
2629
|
+
import { MENTOR_SETTINGS_TAB_LABELS } from './mentor-labels';
|
|
2630
|
+
|
|
2631
|
+
<SettingsTab
|
|
2632
|
+
tenants={tenants}
|
|
2633
|
+
onMentorDeleted={handleDelete}
|
|
2634
|
+
onMentorCopied={handleCopy}
|
|
2635
|
+
labels={MENTOR_SETTINGS_TAB_LABELS}
|
|
2636
|
+
/>
|
|
2637
|
+
\`\`\`
|
|
2638
|
+
|
|
2639
|
+
The label system uses typed nested-object overrides. The package ships \`AGENT_SETTINGS_TAB_LABELS\` as the default; consumer apps pass their own vocabulary via the \`labels\` prop. Use \`resolveSettingsTabLabels(override)\` for deep-merging partial overrides.
|
|
2640
|
+
|
|
2641
|
+
> **Import from \`@iblai/iblai-js/web-containers/next\`** — requires Next.js and AgentSettingsProvider wrapper
|
|
2642
|
+
|
|
2643
|
+
**File Location**: \`packages/web-containers/src/components/modals/edit-mentor-modal/tabs/settings-tab.tsx\``,
|
|
2644
|
+
LLMTab: `# LLMTab Component
|
|
2645
|
+
|
|
2646
|
+
LLM provider selection grid with search, provider cards, and a modal for choosing specific models. Reads identity from AgentSettingsProvider context — must be wrapped by it.
|
|
2647
|
+
|
|
2648
|
+
\`\`\`typescript
|
|
2649
|
+
import { LLMTab } from '@iblai/iblai-js/web-containers/next';
|
|
2650
|
+
import type { LLMTabProps, LLMProviderDetails, DeepPartial, LLMTabLabels } from '@iblai/iblai-js/web-containers/next';
|
|
2651
|
+
|
|
2652
|
+
interface LLMTabProps {
|
|
2653
|
+
showConfigurationHeader?: boolean;
|
|
2654
|
+
getLLMProviderDetails: (providerName: string, llmName?: string) => LLMProviderDetails;
|
|
2655
|
+
labels?: DeepPartial<LLMTabLabels>;
|
|
2656
|
+
}
|
|
2657
|
+
|
|
2658
|
+
interface LLMProviderDetails {
|
|
2659
|
+
logo: string;
|
|
2660
|
+
name: string;
|
|
2661
|
+
}
|
|
2662
|
+
|
|
2663
|
+
<LLMTab
|
|
2664
|
+
getLLMProviderDetails={(name) => ({
|
|
2665
|
+
name: name.charAt(0).toUpperCase() + name.slice(1),
|
|
2666
|
+
logo: \`/llm-\${name}-provider.png\`,
|
|
2667
|
+
})}
|
|
2668
|
+
labels={MENTOR_LLM_TAB_LABELS}
|
|
2669
|
+
/>
|
|
2670
|
+
\`\`\`
|
|
2671
|
+
|
|
2672
|
+
\`getLLMProviderDetails\` is host-provided because provider logos live in the consuming app's \`/public\` dir.
|
|
2673
|
+
|
|
2674
|
+
> **Import from \`@iblai/iblai-js/web-containers/next\`** — requires Next.js and AgentSettingsProvider wrapper
|
|
2675
|
+
|
|
2676
|
+
**File Location**: \`packages/web-containers/src/components/modals/edit-mentor-modal/tabs/llm-tab.tsx\``,
|
|
2677
|
+
ToolsTab: `# ToolsTab Component
|
|
2678
|
+
|
|
2679
|
+
Tool toggle grid for enabling/disabling tools and integrations on an agent. Reads identity from AgentSettingsProvider context — must be wrapped by it.
|
|
2680
|
+
|
|
2681
|
+
\`\`\`typescript
|
|
2682
|
+
import { ToolsTab } from '@iblai/iblai-js/web-containers/next';
|
|
2683
|
+
import type { ToolsTabProps, ToolsTabLabels, DeepPartial } from '@iblai/iblai-js/web-containers/next';
|
|
2684
|
+
|
|
2685
|
+
interface ToolsTabProps {
|
|
2686
|
+
labels?: DeepPartial<ToolsTabLabels>;
|
|
2687
|
+
}
|
|
2688
|
+
|
|
2689
|
+
// With the default "agent" labels:
|
|
2690
|
+
<ToolsTab />
|
|
2691
|
+
|
|
2692
|
+
// With custom "mentor" labels:
|
|
2693
|
+
import { MENTOR_TOOLS_TAB_LABELS } from './mentor-tools-labels';
|
|
2694
|
+
|
|
2695
|
+
<ToolsTab labels={MENTOR_TOOLS_TAB_LABELS} />
|
|
2696
|
+
\`\`\`
|
|
2697
|
+
|
|
2698
|
+
Each tool row has a Switch that toggles the tool slug on the mentor via \`useEditMentorMutation\`. Permissions are gated through \`WithFormPermissions\` using the \`enableRBAC\` flag from context.
|
|
2699
|
+
|
|
2700
|
+
> **Import from \`@iblai/iblai-js/web-containers/next\`** — requires Next.js and AgentSettingsProvider wrapper
|
|
2701
|
+
|
|
2702
|
+
**File Location**: \`packages/web-containers/src/components/modals/edit-mentor-modal/tabs/tools-tab.tsx\``,
|
|
2703
|
+
MemoryTab: `# MemoryTab Component
|
|
2704
|
+
|
|
2705
|
+
Memory settings tab with an enable toggle and a ManageMemories CRUD subsection (filter by user/date range, add/edit/delete memories, bulk delete). Reads identity from AgentSettingsProvider context — must be wrapped by it.
|
|
2706
|
+
|
|
2707
|
+
\`\`\`typescript
|
|
2708
|
+
import { MemoryTab } from '@iblai/iblai-js/web-containers/next';
|
|
2709
|
+
import type { MemoryTabProps, MemoryTabLabels, DeepPartial } from '@iblai/iblai-js/web-containers/next';
|
|
2710
|
+
|
|
2711
|
+
interface MemoryTabProps {
|
|
2712
|
+
labels?: DeepPartial<MemoryTabLabels>;
|
|
2713
|
+
}
|
|
2714
|
+
|
|
2715
|
+
// With the default "agent" labels:
|
|
2716
|
+
<MemoryTab />
|
|
2717
|
+
|
|
2718
|
+
// With custom "mentor" labels:
|
|
2719
|
+
import { MENTOR_MEMORY_TAB_LABELS } from './mentor-memory-labels';
|
|
2720
|
+
|
|
2721
|
+
<MemoryTab labels={MENTOR_MEMORY_TAB_LABELS} />
|
|
2722
|
+
\`\`\`
|
|
2723
|
+
|
|
2724
|
+
The enable toggle mutates \`enable_memory_component\` on mentor settings. The ManageMemories subsection uses \`useGetMentorMemoriesQuery\`, \`useCreateMentorMemoryMutation\`, \`useUpdateMentorMemoryMutation\`, \`useDeleteMentorMemoryMutation\`, and \`useGetMemoryCategoriesAdminQuery\` to manage memories by category.
|
|
2725
|
+
|
|
2726
|
+
> **Import from \`@iblai/iblai-js/web-containers/next\`** — requires Next.js and AgentSettingsProvider wrapper
|
|
2727
|
+
|
|
2728
|
+
**File Location**: \`packages/web-containers/src/components/modals/edit-mentor-modal/tabs/memory-tab.tsx\``,
|
|
2729
|
+
SafetyTab: `# SafetyTab Component
|
|
2730
|
+
|
|
2731
|
+
Safety and moderation settings with four prompt cards (Moderation Prompt, Safety Prompt, Moderation Response, Safety Response) and optional Flagged Prompts viewer. Reads identity from AgentSettingsProvider context — must be wrapped by it.
|
|
2732
|
+
|
|
2733
|
+
\`\`\`typescript
|
|
2734
|
+
import { SafetyTab } from '@iblai/iblai-js/web-containers/next';
|
|
2735
|
+
import type {
|
|
2736
|
+
SafetyTabProps,
|
|
2737
|
+
SafetyTabLabels,
|
|
2738
|
+
SafetySelectedPrompt,
|
|
2739
|
+
SafetyEditFormValues,
|
|
2740
|
+
DeepPartial,
|
|
2741
|
+
} from '@iblai/iblai-js/web-containers/next';
|
|
2742
|
+
|
|
2743
|
+
interface SafetyTabProps {
|
|
2744
|
+
/** Render a prompt string as rich content (e.g. Markdown). Defaults to plain text. */
|
|
2745
|
+
renderPromptContent?: (content: string) => React.ReactNode;
|
|
2746
|
+
/** Modal for editing a prompt. Host-provided. */
|
|
2747
|
+
EditPromptModal?: React.ComponentType<{
|
|
2748
|
+
isOpen: boolean;
|
|
2749
|
+
onClose: () => void;
|
|
2750
|
+
handleSave: (p: SafetySelectedPrompt, v: SafetyEditFormValues) => void;
|
|
2751
|
+
selectedPrompt: SafetySelectedPrompt;
|
|
2752
|
+
isEditing: boolean;
|
|
2753
|
+
}>;
|
|
2754
|
+
/** Modal showing flagged/moderated prompts. Host-provided. */
|
|
2755
|
+
FlaggedPromptsModal?: React.ComponentType<{
|
|
2756
|
+
isOpen: boolean;
|
|
2757
|
+
onClose: () => void;
|
|
2758
|
+
mentorId: string;
|
|
2759
|
+
tenantKey: string;
|
|
2760
|
+
username: string;
|
|
2761
|
+
}>;
|
|
2762
|
+
/** Whether to show the View Flagged Prompts button. Defaults to true. */
|
|
2763
|
+
showFlaggedPrompts?: boolean;
|
|
2764
|
+
labels?: DeepPartial<SafetyTabLabels>;
|
|
2765
|
+
}
|
|
2766
|
+
|
|
2767
|
+
<SafetyTab
|
|
2768
|
+
labels={MENTOR_SAFETY_TAB_LABELS}
|
|
2769
|
+
renderPromptContent={(content) => (
|
|
2770
|
+
<Markdown className="text-sm text-gray-700">
|
|
2771
|
+
{parsePrompt(content)}
|
|
2772
|
+
</Markdown>
|
|
2773
|
+
)}
|
|
2774
|
+
EditPromptModal={EditPromptModal}
|
|
2775
|
+
FlaggedPromptsModal={FlaggedPromptsModal}
|
|
2776
|
+
/>
|
|
2777
|
+
\`\`\`
|
|
2778
|
+
|
|
2779
|
+
\`EditPromptModal\`, \`FlaggedPromptsModal\`, and \`renderPromptContent\` are host-provided because they have standalone-specific dependencies (rich-text editing, pagination, notification dialogs) that don't belong in the shared package. The default \`renderPromptContent\` renders plain text.
|
|
2780
|
+
|
|
2781
|
+
The moderation/safety toggle switches use \`executeGatedAction\` from context when provided (e.g., for paywall gating on free-trial users).
|
|
2782
|
+
|
|
2783
|
+
> **Import from \`@iblai/iblai-js/web-containers/next\`** — requires Next.js and AgentSettingsProvider wrapper
|
|
2784
|
+
|
|
2785
|
+
**File Location**: \`packages/web-containers/src/components/modals/edit-mentor-modal/tabs/safety-tab.tsx\``,
|
|
2786
|
+
CopyButton: `# CopyButton Component
|
|
2787
|
+
|
|
2788
|
+
Small button that copies text to the clipboard and shows "Copied" feedback for a short duration. Used by prompt cards in SafetyTab, PromptsTab, and DisclaimersTab.
|
|
2789
|
+
|
|
2790
|
+
\`\`\`typescript
|
|
2791
|
+
import { CopyButton } from '@iblai/iblai-js/web-containers/next';
|
|
2792
|
+
|
|
2793
|
+
interface CopyButtonProps {
|
|
2794
|
+
text: string;
|
|
2795
|
+
disabled?: boolean;
|
|
2796
|
+
}
|
|
2797
|
+
|
|
2798
|
+
<CopyButton text={mentor?.system_prompt ?? ''} />
|
|
2799
|
+
<CopyButton text="Copy me" disabled={isLoading} />
|
|
2800
|
+
\`\`\`
|
|
2801
|
+
|
|
2802
|
+
Internally uses \`useCopyToClipboard\` with a 1000ms reset timeout. The aria-label switches between "Copy text to clipboard" and "Text copied to clipboard" based on status.
|
|
2803
|
+
|
|
2804
|
+
> **Import from \`@iblai/iblai-js/web-containers/next\`** — requires Next.js
|
|
2805
|
+
|
|
2806
|
+
**File Location**: \`packages/web-containers/src/components/modals/edit-mentor-modal/tabs/copy-button.tsx\``,
|
|
2807
|
+
// ============================================================================
|
|
2808
|
+
// AGENT SEARCH — explore, pick and star AI mentors / agents
|
|
2809
|
+
// ============================================================================
|
|
2810
|
+
AgentSearch: `# AgentSearch Component
|
|
2811
|
+
|
|
2812
|
+
Full explore-page drop-in that combines search input, filter row, and the four sections (Starred, Featured, Custom, Default). Reads tenant metadata internally, debounces the search input, and wires star mutations via \`useAgentStar\`.
|
|
2813
|
+
|
|
2814
|
+
\`\`\`typescript
|
|
2815
|
+
import { AgentSearch } from '@iblai/iblai-js/web-containers/next';
|
|
2816
|
+
import type {
|
|
2817
|
+
AgentSearchProps,
|
|
2818
|
+
AgentSearchSection,
|
|
2819
|
+
AgentSearchLabels,
|
|
2820
|
+
} from '@iblai/iblai-js/web-containers/next';
|
|
2821
|
+
|
|
2822
|
+
<AgentSearch
|
|
2823
|
+
tenantKey={tenantKey}
|
|
2824
|
+
username={username}
|
|
2825
|
+
enableRBAC={enableRBAC}
|
|
2826
|
+
rbacPermissions={rbacPermissions}
|
|
2827
|
+
executeGatedAction={executeWithTrialCheck}
|
|
2828
|
+
mainTenantKey="main"
|
|
2829
|
+
onAgentClick={(agent) => router.push(\`/\${agent.slug}\`)}
|
|
2830
|
+
onCreateAgent={() => setCreateOpen(true)}
|
|
2831
|
+
onUnauthenticatedAction={() => redirectToAuthSpa()}
|
|
2832
|
+
createAgentRbacResource="/mentors/#create"
|
|
2833
|
+
labels={MENTOR_SEARCH_LABELS}
|
|
2834
|
+
include={['starred', 'featured', 'custom', 'default', 'filters']}
|
|
2835
|
+
getLLMProviderName={(key) => providerMap[key] ?? key}
|
|
2836
|
+
/>
|
|
2837
|
+
\`\`\`
|
|
2838
|
+
|
|
2839
|
+
\`include\` defaults to all sections. Terminology defaults to "agent"; host apps override via \`labels\` (either a full bundle or a \`DeepPartial\`).
|
|
2840
|
+
|
|
2841
|
+
> **Import from \`@iblai/iblai-js/web-containers/next\`** — requires Next.js
|
|
2842
|
+
|
|
2843
|
+
**File Location**: \`packages/web-containers/src/components/agent-search/agent-search.tsx\``,
|
|
2844
|
+
AgentCard: `# AgentCard Component
|
|
2845
|
+
|
|
2846
|
+
Clickable card for a single agent search result. Renders avatar, name, description, "Updated on …" timestamp, and optionally a \`StarButton\` when \`variant="with-star"\`.
|
|
2847
|
+
|
|
2848
|
+
\`\`\`typescript
|
|
2849
|
+
import { AgentCard } from '@iblai/iblai-js/web-containers/next';
|
|
2850
|
+
import type { AgentCardProps } from '@iblai/iblai-js/web-containers/next';
|
|
2851
|
+
|
|
2852
|
+
interface AgentCardProps {
|
|
2853
|
+
agent: AgentSearchResult;
|
|
2854
|
+
onClick: (agent: AgentSearchResult) => void;
|
|
2855
|
+
variant?: 'default' | 'with-star'; // default: 'default'
|
|
2856
|
+
isStarred?: boolean;
|
|
2857
|
+
isTogglingStar?: boolean;
|
|
2858
|
+
onToggleStar?: (agent: AgentSearchResult, e: React.MouseEvent) => void;
|
|
2859
|
+
disableStar?: boolean;
|
|
2860
|
+
updatedOnLabel?: string; // default: 'Updated on'
|
|
2861
|
+
exploreAriaPrefix?: string; // default: 'Explore agent:'
|
|
2862
|
+
formatDate?: (dateString: string) => string;
|
|
2863
|
+
}
|
|
2864
|
+
|
|
2865
|
+
<AgentCard
|
|
2866
|
+
agent={agent}
|
|
2867
|
+
variant="with-star"
|
|
2868
|
+
isStarred={agent.starred}
|
|
2869
|
+
isTogglingStar={togglingAgentId === String(agent.id)}
|
|
2870
|
+
onToggleStar={toggleFavorite}
|
|
2871
|
+
onClick={handleAgentClick}
|
|
2872
|
+
/>
|
|
2873
|
+
\`\`\`
|
|
2874
|
+
|
|
2875
|
+
> **Import from \`@iblai/iblai-js/web-containers/next\`** — requires Next.js
|
|
2876
|
+
|
|
2877
|
+
**File Location**: \`packages/web-containers/src/components/agent-search/agent-card.tsx\``,
|
|
2878
|
+
AgentSearchInput: `# AgentSearchInput Component
|
|
2879
|
+
|
|
2880
|
+
Debounce-friendly search input with a magnifier icon that swaps to a spinner while \`isLoading\` is true. Visually labelled for screen readers.
|
|
2881
|
+
|
|
2882
|
+
\`\`\`typescript
|
|
2883
|
+
import { AgentSearchInput } from '@iblai/iblai-js/web-containers/next';
|
|
2884
|
+
import type { AgentSearchInputProps } from '@iblai/iblai-js/web-containers/next';
|
|
2885
|
+
|
|
2886
|
+
interface AgentSearchInputProps {
|
|
2887
|
+
value: string;
|
|
2888
|
+
onChange: (value: string) => void;
|
|
2889
|
+
isLoading?: boolean;
|
|
2890
|
+
placeholder?: string; // default: 'Search'
|
|
2891
|
+
ariaLabel?: string; // default: 'Search agents'
|
|
2892
|
+
className?: string;
|
|
2893
|
+
}
|
|
2894
|
+
|
|
2895
|
+
<AgentSearchInput
|
|
2896
|
+
value={searchQuery}
|
|
2897
|
+
onChange={setSearchQuery}
|
|
2898
|
+
isLoading={isFetching}
|
|
2899
|
+
placeholder={labels.searchPlaceholder}
|
|
2900
|
+
ariaLabel={labels.searchAriaLabel}
|
|
2901
|
+
/>
|
|
2902
|
+
\`\`\`
|
|
2903
|
+
|
|
2904
|
+
> **Import from \`@iblai/iblai-js/web-containers/next\`** — requires Next.js
|
|
2905
|
+
|
|
2906
|
+
**File Location**: \`packages/web-containers/src/components/agent-search/agent-search-input.tsx\``,
|
|
2907
|
+
AgentSearchFilters: `# AgentSearchFilters Component
|
|
2908
|
+
|
|
2909
|
+
Horizontal row of dropdown filters driven by the facets returned by \`useAgentSearch\` (Category, Subject, LLM Provider, Type, Featured / Promotion) plus an optional "Created By" (Me / My Organization / Community) filter and a "Clear All" button.
|
|
2910
|
+
|
|
2911
|
+
\`\`\`typescript
|
|
2912
|
+
import { AgentSearchFilters } from '@iblai/iblai-js/web-containers/next';
|
|
2913
|
+
import type {
|
|
2914
|
+
AgentSearchFiltersProps,
|
|
2915
|
+
AgentSearchFiltersState,
|
|
2916
|
+
AgentSearchFiltersLabels,
|
|
2917
|
+
CreatedByFilter,
|
|
2918
|
+
} from '@iblai/iblai-js/web-containers/next';
|
|
2919
|
+
|
|
2920
|
+
<AgentSearchFilters
|
|
2921
|
+
facets={facets}
|
|
2922
|
+
showCreatedByFilter={communityEnabled}
|
|
2923
|
+
includeMeToCreatedByFilter={hasCustomAgents}
|
|
2924
|
+
onFiltersChange={setFilters}
|
|
2925
|
+
onCreatedByChange={setCreatedBy}
|
|
2926
|
+
labels={labels.filters}
|
|
2927
|
+
getLLMProviderName={(key) => providerMap[key] ?? key}
|
|
2928
|
+
/>
|
|
2929
|
+
\`\`\`
|
|
2930
|
+
|
|
2931
|
+
\`CreatedByFilter\` = \`'me' | 'my-organization' | 'community' | null\`.
|
|
2932
|
+
|
|
2933
|
+
> **Import from \`@iblai/iblai-js/web-containers/next\`** — requires Next.js
|
|
2934
|
+
|
|
2935
|
+
**File Location**: \`packages/web-containers/src/components/agent-search/agent-search-filters.tsx\``,
|
|
2936
|
+
AgentEmptyState: `# AgentEmptyState Component
|
|
2937
|
+
|
|
2938
|
+
Simple "no results" card used inside agent-search sections.
|
|
2939
|
+
|
|
2940
|
+
\`\`\`typescript
|
|
2941
|
+
import { AgentEmptyState } from '@iblai/iblai-js/web-containers/next';
|
|
2942
|
+
import type { AgentEmptyStateProps } from '@iblai/iblai-js/web-containers/next';
|
|
2943
|
+
|
|
2944
|
+
interface AgentEmptyStateProps {
|
|
2945
|
+
message?: string; // default: 'Sorry, no agents found!'
|
|
2946
|
+
}
|
|
2947
|
+
|
|
2948
|
+
<AgentEmptyState message={labels.noResults} />
|
|
2949
|
+
\`\`\`
|
|
2950
|
+
|
|
2951
|
+
> **Import from \`@iblai/iblai-js/web-containers/next\`** — requires Next.js
|
|
2952
|
+
|
|
2953
|
+
**File Location**: \`packages/web-containers/src/components/agent-search/agent-empty-state.tsx\``,
|
|
2954
|
+
StarButton: `# StarButton Component
|
|
2955
|
+
|
|
2956
|
+
Small icon-only button used inside \`AgentCard\` (and anywhere else an agent favorite toggle is rendered). Renders a \`Star\` icon when idle and a \`Loader2\` spinner while \`isToggling\`. Wraps a Radix \`Tooltip\` and swaps aria labels + tooltip copy based on state.
|
|
2957
|
+
|
|
2958
|
+
\`\`\`typescript
|
|
2959
|
+
import { StarButton } from '@iblai/iblai-js/web-containers/next';
|
|
2960
|
+
import type { StarButtonProps } from '@iblai/iblai-js/web-containers/next';
|
|
2961
|
+
|
|
2962
|
+
interface StarButtonProps {
|
|
2963
|
+
isStarred?: boolean;
|
|
2964
|
+
isToggling?: boolean;
|
|
2965
|
+
disabled?: boolean;
|
|
2966
|
+
onClick: (e: React.MouseEvent) => void;
|
|
2967
|
+
tooltipStarred?: string; // default: 'Unset as favorite'
|
|
2968
|
+
tooltipUnstarred?: string; // default: 'Set as favorite'
|
|
2969
|
+
ariaLabelStarred?: string; // default: 'Remove from favorites'
|
|
2970
|
+
ariaLabelUnstarred?: string; // default: 'Add to favorites'
|
|
2971
|
+
}
|
|
2972
|
+
|
|
2973
|
+
<StarButton
|
|
2974
|
+
isStarred={agent.starred}
|
|
2975
|
+
isToggling={togglingAgentId === String(agent.id)}
|
|
2976
|
+
onClick={(e) => toggleFavorite(agent, e)}
|
|
2977
|
+
/>
|
|
2978
|
+
\`\`\`
|
|
2979
|
+
|
|
2980
|
+
> **Import from \`@iblai/iblai-js/web-containers/next\`** — requires Next.js
|
|
2981
|
+
|
|
2982
|
+
**File Location**: \`packages/web-containers/src/components/agent-search/star-button.tsx\``,
|
|
2983
|
+
// ============================================================================
|
|
2984
|
+
// EDIT MENTOR MODAL — tab components
|
|
2985
|
+
// Each tab reads identity (tenantKey / mentorId / username / enableRBAC /
|
|
2986
|
+
// executeGatedAction) from <AgentSettingsProvider> via useAgentSettings().
|
|
2987
|
+
// ============================================================================
|
|
2988
|
+
AccessTab: `# AccessTab Component
|
|
2989
|
+
|
|
2990
|
+
RBAC access / role management tab for the Edit Mentor Modal. Lists existing access policies, supports adding users or groups, and editing/removing their roles. Reads identity from \`AgentSettingsProvider\`.
|
|
2991
|
+
|
|
2992
|
+
\`\`\`typescript
|
|
2993
|
+
import { AccessTab } from '@iblai/iblai-js/web-containers/next';
|
|
2994
|
+
import type {
|
|
2995
|
+
AccessTabProps,
|
|
2996
|
+
AccessTabLabels,
|
|
2997
|
+
DeepPartial,
|
|
2998
|
+
} from '@iblai/iblai-js/web-containers/next';
|
|
2999
|
+
|
|
3000
|
+
interface AccessTabProps {
|
|
3001
|
+
labels?: DeepPartial<AccessTabLabels>;
|
|
3002
|
+
/** Called when the tab fetches RBAC permissions for /users/ and /groups/. */
|
|
3003
|
+
onPermissionsLoaded?: (permissions: object) => void;
|
|
3004
|
+
}
|
|
3005
|
+
|
|
3006
|
+
<AccessTab
|
|
3007
|
+
labels={MENTOR_ACCESS_TAB_LABELS}
|
|
3008
|
+
onPermissionsLoaded={(perms) => dispatch(rbac.merge(perms))}
|
|
3009
|
+
/>
|
|
3010
|
+
\`\`\`
|
|
3011
|
+
|
|
3012
|
+
> **Import from \`@iblai/iblai-js/web-containers/next\`** — requires Next.js and AgentSettingsProvider wrapper
|
|
3013
|
+
|
|
3014
|
+
**File Location**: \`packages/web-containers/src/components/modals/edit-mentor-modal/tabs/access-tab.tsx\``,
|
|
3015
|
+
ApiTab: `# ApiTab Component
|
|
3016
|
+
|
|
3017
|
+
API-key management tab: lists existing keys with their creation date and lets the admin create or revoke them. Reads identity from \`AgentSettingsProvider\` and uses \`useGetApiKeysQuery\` / \`WithPermissions\`. Gated via \`executeGatedAction\` when provided.
|
|
3018
|
+
|
|
3019
|
+
\`\`\`typescript
|
|
3020
|
+
import { ApiTab } from '@iblai/iblai-js/web-containers/next';
|
|
3021
|
+
import type {
|
|
3022
|
+
ApiTabProps,
|
|
3023
|
+
ApiTabLabels,
|
|
3024
|
+
ApiKey,
|
|
3025
|
+
DeepPartial,
|
|
3026
|
+
} from '@iblai/iblai-js/web-containers/next';
|
|
3027
|
+
|
|
3028
|
+
interface ApiTabProps {
|
|
3029
|
+
labels?: DeepPartial<ApiTabLabels>;
|
|
3030
|
+
}
|
|
3031
|
+
|
|
3032
|
+
<ApiTab labels={MENTOR_API_TAB_LABELS} />
|
|
3033
|
+
\`\`\`
|
|
3034
|
+
|
|
3035
|
+
> **Import from \`@iblai/iblai-js/web-containers/next\`** — requires Next.js and AgentSettingsProvider wrapper
|
|
3036
|
+
|
|
3037
|
+
**File Location**: \`packages/web-containers/src/components/modals/edit-mentor-modal/tabs/api-tab.tsx\``,
|
|
3038
|
+
DatasetsTab: `# DatasetsTab Component
|
|
3039
|
+
|
|
3040
|
+
Knowledge / training dataset management tab. Shows a searchable paginated table of datasets with train / delete / retrain actions. Because the standalone "Add Resource" modal (Dropbox / Drive / OneDrive pickers) and the standalone pagination component have deep app-specific dependencies, both are injected as props.
|
|
3041
|
+
|
|
3042
|
+
\`\`\`typescript
|
|
3043
|
+
import { DatasetsTab } from '@iblai/iblai-js/web-containers/next';
|
|
3044
|
+
import type {
|
|
3045
|
+
DatasetsTabProps,
|
|
3046
|
+
DatasetsTabLabels,
|
|
3047
|
+
Dataset,
|
|
3048
|
+
DeepPartial,
|
|
3049
|
+
} from '@iblai/iblai-js/web-containers/next';
|
|
3050
|
+
|
|
3051
|
+
interface DatasetsTabProps {
|
|
3052
|
+
labels?: DeepPartial<DatasetsTabLabels>;
|
|
3053
|
+
onSelect?: (dataset: Dataset) => void;
|
|
3054
|
+
selectedDatasetId?: string;
|
|
3055
|
+
AddResourceModal?: React.ComponentType<{
|
|
3056
|
+
isOpen: boolean;
|
|
3057
|
+
onClose: () => void;
|
|
3058
|
+
keepParentOpen?: boolean;
|
|
3059
|
+
}>;
|
|
3060
|
+
PaginationComponent?: React.ComponentType<{
|
|
3061
|
+
currentPage: number;
|
|
3062
|
+
totalPages: number;
|
|
3063
|
+
onPageChange: (page: number) => void;
|
|
3064
|
+
disabled: boolean;
|
|
3065
|
+
}>;
|
|
3066
|
+
}
|
|
3067
|
+
|
|
3068
|
+
<DatasetsTab
|
|
3069
|
+
labels={MENTOR_DATASETS_TAB_LABELS}
|
|
3070
|
+
AddResourceModal={AddResourceModal}
|
|
3071
|
+
PaginationComponent={IblPagination}
|
|
3072
|
+
/>
|
|
3073
|
+
\`\`\`
|
|
3074
|
+
|
|
3075
|
+
> **Import from \`@iblai/iblai-js/web-containers/next\`** — requires Next.js and AgentSettingsProvider wrapper
|
|
3076
|
+
|
|
3077
|
+
**File Location**: \`packages/web-containers/src/components/modals/edit-mentor-modal/tabs/datasets-tab.tsx\``,
|
|
3078
|
+
DisclaimersTab: `# DisclaimersTab Component
|
|
3079
|
+
|
|
3080
|
+
User Agreement + Advisory disclaimer management tab. Renders the current disclaimer content with an Edit action, a separate user-agreement card, and supports plain or Markdown rendering via \`renderContent\`.
|
|
3081
|
+
|
|
3082
|
+
\`\`\`typescript
|
|
3083
|
+
import { DisclaimersTab } from '@iblai/iblai-js/web-containers/next';
|
|
3084
|
+
import type {
|
|
3085
|
+
DisclaimersTabProps,
|
|
3086
|
+
DisclaimersTabLabels,
|
|
3087
|
+
DeepPartial,
|
|
3088
|
+
} from '@iblai/iblai-js/web-containers/next';
|
|
3089
|
+
|
|
3090
|
+
interface DisclaimersTabProps {
|
|
3091
|
+
labels?: DeepPartial<DisclaimersTabLabels>;
|
|
3092
|
+
defaultDisclaimerContent?: string;
|
|
3093
|
+
renderContent?: (content: string) => React.ReactNode;
|
|
3094
|
+
}
|
|
3095
|
+
|
|
3096
|
+
<DisclaimersTab
|
|
3097
|
+
labels={MENTOR_DISCLAIMERS_TAB_LABELS}
|
|
3098
|
+
defaultDisclaimerContent={DEFAULT_DISCLAIMER}
|
|
3099
|
+
renderContent={(content) => <Markdown>{content}</Markdown>}
|
|
3100
|
+
/>
|
|
3101
|
+
\`\`\`
|
|
3102
|
+
|
|
3103
|
+
> **Import from \`@iblai/iblai-js/web-containers/next\`** — requires Next.js and AgentSettingsProvider wrapper
|
|
3104
|
+
|
|
3105
|
+
**File Location**: \`packages/web-containers/src/components/modals/edit-mentor-modal/tabs/disclaimers-tab.tsx\``,
|
|
3106
|
+
EmbedTab: `# EmbedTab Component
|
|
3107
|
+
|
|
3108
|
+
Embed / share configuration tab. Handles visibility, SSO provider selection, custom floating bubble config, CSS/JS overrides, and generates copy-paste embed snippets via a host-provided \`CopyCodeBlock\` component. URL building and the copyable code renderer are injected because they depend on standalone-specific libs.
|
|
3109
|
+
|
|
3110
|
+
\`\`\`typescript
|
|
3111
|
+
import { EmbedTab } from '@iblai/iblai-js/web-containers/next';
|
|
3112
|
+
import type {
|
|
3113
|
+
EmbedTabProps,
|
|
3114
|
+
EmbedTabLabels,
|
|
3115
|
+
EmbedUrlConfig,
|
|
3116
|
+
VisibilityOption,
|
|
3117
|
+
SsoProvider,
|
|
3118
|
+
DeepPartial,
|
|
3119
|
+
} from '@iblai/iblai-js/web-containers/next';
|
|
3120
|
+
|
|
3121
|
+
interface EmbedTabProps {
|
|
3122
|
+
labels?: DeepPartial<EmbedTabLabels>;
|
|
3123
|
+
urls: EmbedUrlConfig;
|
|
3124
|
+
CopyCodeBlock: React.ComponentType<{ code: string }>;
|
|
3125
|
+
visibilityOptions: VisibilityOption[];
|
|
3126
|
+
ssoProviders?: SsoProvider[];
|
|
3127
|
+
isSsoProvidersError?: boolean;
|
|
3128
|
+
supportEmail?: string;
|
|
3129
|
+
}
|
|
3130
|
+
|
|
3131
|
+
<EmbedTab
|
|
3132
|
+
labels={MENTOR_EMBED_TAB_LABELS}
|
|
3133
|
+
urls={embedUrls}
|
|
3134
|
+
CopyCodeBlock={CopyCodeBlock}
|
|
3135
|
+
visibilityOptions={visibilityOptions}
|
|
3136
|
+
ssoProviders={ssoProviders}
|
|
3137
|
+
/>
|
|
3138
|
+
\`\`\`
|
|
3139
|
+
|
|
3140
|
+
> **Import from \`@iblai/iblai-js/web-containers/next\`** — requires Next.js and AgentSettingsProvider wrapper
|
|
3141
|
+
|
|
3142
|
+
**File Location**: \`packages/web-containers/src/components/modals/edit-mentor-modal/tabs/embed-tab.tsx\``,
|
|
3143
|
+
HistoryTab: `# HistoryTab Component
|
|
3144
|
+
|
|
3145
|
+
Chat-history browser for a mentor. Supports date-range / user / session filtering, pagination, optional export, and custom rendering of AI message content (e.g. Markdown). The pagination UI is host-provided.
|
|
3146
|
+
|
|
3147
|
+
\`\`\`typescript
|
|
3148
|
+
import { HistoryTab } from '@iblai/iblai-js/web-containers/next';
|
|
3149
|
+
import type {
|
|
3150
|
+
HistoryTabProps,
|
|
3151
|
+
HistoryTabLabels,
|
|
3152
|
+
DeepPartial,
|
|
3153
|
+
} from '@iblai/iblai-js/web-containers/next';
|
|
3154
|
+
|
|
3155
|
+
interface HistoryTabProps {
|
|
3156
|
+
renderMessageContent?: (content: string) => React.ReactNode;
|
|
3157
|
+
PaginationComponent?: React.ComponentType<{
|
|
3158
|
+
currentPage: number;
|
|
3159
|
+
totalPages: number;
|
|
3160
|
+
onPageChange: (page: number) => void;
|
|
3161
|
+
disabled: boolean;
|
|
3162
|
+
disableNumberedButtons?: boolean;
|
|
3163
|
+
}>;
|
|
3164
|
+
onExport?: (filters: ChatHistoryFilter) => void;
|
|
3165
|
+
isExporting?: boolean;
|
|
3166
|
+
labels?: DeepPartial<HistoryTabLabels>;
|
|
3167
|
+
}
|
|
3168
|
+
|
|
3169
|
+
<HistoryTab
|
|
3170
|
+
labels={MENTOR_HISTORY_TAB_LABELS}
|
|
3171
|
+
renderMessageContent={(c) => <Markdown>{c}</Markdown>}
|
|
3172
|
+
PaginationComponent={IblPagination}
|
|
3173
|
+
onExport={handleExport}
|
|
3174
|
+
isExporting={isExporting}
|
|
3175
|
+
/>
|
|
3176
|
+
\`\`\`
|
|
3177
|
+
|
|
3178
|
+
> **Import from \`@iblai/iblai-js/web-containers/next\`** — requires Next.js and AgentSettingsProvider wrapper
|
|
3179
|
+
|
|
3180
|
+
**File Location**: \`packages/web-containers/src/components/modals/edit-mentor-modal/tabs/history-tab.tsx\``,
|
|
3181
|
+
PromptsTab: `# PromptsTab Component
|
|
3182
|
+
|
|
3183
|
+
Suggested / guided prompts management tab. Supports toggling greeting method (proactive response vs. proactive prompt), adding / editing individual prompts, and rendering prompt bodies as plain text or Markdown via \`renderPromptContent\`.
|
|
3184
|
+
|
|
3185
|
+
\`\`\`typescript
|
|
3186
|
+
import {
|
|
3187
|
+
PromptsTab,
|
|
3188
|
+
GreetingMethod,
|
|
3189
|
+
} from '@iblai/iblai-js/web-containers/next';
|
|
3190
|
+
import type {
|
|
3191
|
+
PromptsTabProps,
|
|
3192
|
+
PromptsTabLabels,
|
|
3193
|
+
PromptsSelectedPrompt,
|
|
3194
|
+
PromptsEditFormValues,
|
|
3195
|
+
DeepPartial,
|
|
3196
|
+
} from '@iblai/iblai-js/web-containers/next';
|
|
3197
|
+
|
|
3198
|
+
interface PromptsTabProps {
|
|
3199
|
+
renderPromptContent?: (content: string) => React.ReactNode;
|
|
3200
|
+
labels?: DeepPartial<PromptsTabLabels>;
|
|
3201
|
+
}
|
|
3202
|
+
|
|
3203
|
+
<PromptsTab
|
|
3204
|
+
labels={MENTOR_PROMPTS_TAB_LABELS}
|
|
3205
|
+
renderPromptContent={(c) => <Markdown>{parsePrompt(c)}</Markdown>}
|
|
3206
|
+
/>
|
|
3207
|
+
\`\`\`
|
|
3208
|
+
|
|
3209
|
+
> **Import from \`@iblai/iblai-js/web-containers/next\`** — requires Next.js and AgentSettingsProvider wrapper
|
|
3210
|
+
|
|
3211
|
+
**File Location**: \`packages/web-containers/src/components/modals/edit-mentor-modal/tabs/prompts-tab.tsx\``,
|
|
3212
|
+
CopyMentorModal: `# CopyMentorModal Component
|
|
3213
|
+
|
|
3214
|
+
Forks a mentor into another tenant. Renders a Dialog with name / visibility / target-tenant inputs, drives \`useForkMentorMutation\` + \`useEditMentorMutation\`, and surfaces toast feedback. Typically launched from \`SettingsTab\`.
|
|
3215
|
+
|
|
3216
|
+
\`\`\`typescript
|
|
3217
|
+
import { CopyMentorModal } from '@iblai/iblai-js/web-containers/next';
|
|
3218
|
+
import type { CopyMentorTenant } from '@iblai/iblai-js/web-containers/next';
|
|
3219
|
+
|
|
3220
|
+
interface CopyMentorModalProps {
|
|
3221
|
+
open: boolean;
|
|
3222
|
+
onClose: () => void;
|
|
3223
|
+
tenantKey: string;
|
|
3224
|
+
mentorId: string;
|
|
3225
|
+
username: string;
|
|
3226
|
+
tenants: CopyMentorTenant[]; // { key, name?, is_admin }[]
|
|
3227
|
+
isLoadingTenants?: boolean;
|
|
3228
|
+
onSuccessfulCopy?: (copiedMentorId: string) => void;
|
|
3229
|
+
labels?: CopyMentorModalLabels;
|
|
3230
|
+
}
|
|
3231
|
+
|
|
3232
|
+
<CopyMentorModal
|
|
3233
|
+
open={isCopyOpen}
|
|
3234
|
+
onClose={() => setCopyOpen(false)}
|
|
3235
|
+
tenantKey={tenantKey}
|
|
3236
|
+
mentorId={mentorId}
|
|
3237
|
+
username={username}
|
|
3238
|
+
tenants={tenants}
|
|
3239
|
+
isLoadingTenants={isLoadingTenants}
|
|
3240
|
+
/>
|
|
3241
|
+
\`\`\`
|
|
3242
|
+
|
|
3243
|
+
> **Import from \`@iblai/iblai-js/web-containers/next\`** — requires Next.js
|
|
3244
|
+
|
|
3245
|
+
**File Location**: \`packages/web-containers/src/components/modals/edit-mentor-modal/tabs/settings-tab/copy-mentor-modal.tsx\``,
|
|
3246
|
+
DeleteMentorModal: `# DeleteMentorModal Component
|
|
3247
|
+
|
|
3248
|
+
AlertDialog confirmation for destroying a mentor. Drives \`useDeleteMentorMutation\` and calls back \`onSuccessfulDelete\` after the dialog closes so the host can handle parent-modal close and navigation.
|
|
3249
|
+
|
|
3250
|
+
\`\`\`typescript
|
|
3251
|
+
import { DeleteMentorModal } from '@iblai/iblai-js/web-containers/next';
|
|
3252
|
+
|
|
3253
|
+
interface DeleteMentorModalProps {
|
|
3254
|
+
isOpen: boolean;
|
|
3255
|
+
onClose: () => void;
|
|
3256
|
+
tenantKey: string;
|
|
3257
|
+
mentorId: string;
|
|
3258
|
+
username: string;
|
|
3259
|
+
onSuccessfulDelete?: (deletedMentorId: string) => void;
|
|
3260
|
+
labels?: DeleteMentorModalLabels; // SettingsTabLabels['deleteModal']
|
|
3261
|
+
}
|
|
3262
|
+
|
|
3263
|
+
<DeleteMentorModal
|
|
3264
|
+
isOpen={isDeleteOpen}
|
|
3265
|
+
onClose={() => setDeleteOpen(false)}
|
|
3266
|
+
tenantKey={tenantKey}
|
|
3267
|
+
mentorId={mentorId}
|
|
3268
|
+
username={username}
|
|
3269
|
+
onSuccessfulDelete={(id) => {
|
|
3270
|
+
setDeleteOpen(false);
|
|
3271
|
+
router.push('/mentors');
|
|
3272
|
+
}}
|
|
3273
|
+
/>
|
|
3274
|
+
\`\`\`
|
|
3275
|
+
|
|
3276
|
+
> **Import from \`@iblai/iblai-js/web-containers/next\`** — requires Next.js
|
|
3277
|
+
|
|
3278
|
+
**File Location**: \`packages/web-containers/src/components/modals/edit-mentor-modal/tabs/settings-tab/delete-mentor-modal.tsx\``,
|
|
2471
3279
|
};
|
|
2472
3280
|
const UI_PRIMITIVES = [
|
|
2473
3281
|
'Button',
|
|
@@ -2528,6 +3336,13 @@ export function getComponentInfo(componentName) {
|
|
|
2528
3336
|
'EdxIframe',
|
|
2529
3337
|
'CourseContentTabPage',
|
|
2530
3338
|
'CourseContentLayout',
|
|
3339
|
+
'AgentSettingsProvider',
|
|
3340
|
+
'SettingsTab',
|
|
3341
|
+
'LLMTab',
|
|
3342
|
+
'ToolsTab',
|
|
3343
|
+
'MemoryTab',
|
|
3344
|
+
'SafetyTab',
|
|
3345
|
+
'CopyButton',
|
|
2531
3346
|
];
|
|
2532
3347
|
return `Component "${componentName}" not found.
|
|
2533
3348
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-info.js","sourceRoot":"","sources":["../../src/tools/component-info.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"component-info.js","sourceRoot":"","sources":["../../src/tools/component-info.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-info.d.ts","sourceRoot":"","sources":["../../src/tools/hook-info.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY;;;;;;;;;;;;;CAcxB,CAAC;
|
|
1
|
+
{"version":3,"file":"hook-info.d.ts","sourceRoot":"","sources":["../../src/tools/hook-info.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY;;;;;;;;;;;;;CAcxB,CAAC;AA07EF,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAuIpD"}
|
package/dist/tools/hook-info.js
CHANGED
|
@@ -2185,6 +2185,41 @@ const { getIframeURL, getUnitToIframe, findSequentialParent } = useEdxIframe({
|
|
|
2185
2185
|
\`\`\`
|
|
2186
2186
|
|
|
2187
2187
|
**File Location**: \`packages/web-containers/src/components/course-content/hooks/use-edx-iframe.ts\``,
|
|
2188
|
+
useDiscover: `# useDiscover Hook
|
|
2189
|
+
|
|
2190
|
+
Powers the discover / catalog page: fetches facets + search results from \`@iblai/data-layer\`'s \`useLazyGetPersonnalizedSearchQuery\`, owns pagination + selected facets + per-term filtering, and formats results into the \`DiscoverContentCardProps\` shape consumed by \`<DiscoverContentCard />\`. Ported from skillsai with navigation + LMS URL promoted to props so it works in any React app (no \`next/navigation\`, no \`lodash\`, no \`use-debounce\`).
|
|
2191
|
+
|
|
2192
|
+
\`\`\`typescript
|
|
2193
|
+
import { useDiscover } from '@iblai/iblai-js/web-containers';
|
|
2194
|
+
|
|
2195
|
+
const {
|
|
2196
|
+
contents,
|
|
2197
|
+
facets,
|
|
2198
|
+
filteredFacets,
|
|
2199
|
+
contentsLoading,
|
|
2200
|
+
facetsLoading,
|
|
2201
|
+
isError,
|
|
2202
|
+
handleToggleFacet,
|
|
2203
|
+
handleSelectFacets,
|
|
2204
|
+
selectedFacets,
|
|
2205
|
+
isFacetTermSelected,
|
|
2206
|
+
handleFormatContents,
|
|
2207
|
+
pagination,
|
|
2208
|
+
page,
|
|
2209
|
+
setPage,
|
|
2210
|
+
handleFilterFacets,
|
|
2211
|
+
setSelectedFacets,
|
|
2212
|
+
} = useDiscover({
|
|
2213
|
+
limit: 12,
|
|
2214
|
+
lmsUrl: config.urls.lms(),
|
|
2215
|
+
// Called when the user clears the \`q\` facet — lets the caller drop \`?q=\` via router.push
|
|
2216
|
+
onNavigate: (path) => router.push(path),
|
|
2217
|
+
});
|
|
2218
|
+
\`\`\`
|
|
2219
|
+
|
|
2220
|
+
Reads \`tenant\` / \`username\` from localStorage via the shared \`getTenant()\` / \`getUserName()\` helpers; pass \`tenantOverride\` / \`usernameOverride\` for tests. Pair with the \`FacetFilterContext\` provider to drive \`<DiscoverFacetsFilter />\` + \`<DiscoverFilterDrawer />\`.
|
|
2221
|
+
|
|
2222
|
+
**File Location**: \`packages/web-containers/src/components/course-content/hooks/use-discover.ts\``,
|
|
2188
2223
|
useChatState: `# useChatState Hook
|
|
2189
2224
|
|
|
2190
2225
|
Small context accessor exposing the shared mentor-chat state (open/close, current course mentor uuid, sidebar visibility). Ported from the \`useChatState\` + \`ChatContext\` + \`ChatProvider\` bundle in skillsai's \`components/chat-button.tsx\`. The actual \`ChatButton\` UI was NOT ported (it's config-heavy + depends on a mentor web component).
|
|
@@ -2201,6 +2236,124 @@ const { isOpen, setIsOpen, courseMentor, setCourseMentor } = useChatState();
|
|
|
2201
2236
|
\`\`\`
|
|
2202
2237
|
|
|
2203
2238
|
**File Location**: \`packages/web-containers/src/components/course-content/hooks/use-chat-state.ts\``,
|
|
2239
|
+
useAgentSearch: `# useAgentSearch Hook
|
|
2240
|
+
|
|
2241
|
+
Core agent search hook — thin wrapper around \`useGetAiSearchMentorsQuery\` from \`@iblai/data-layer\`. Low-level building block for building custom explore / pick-a-mentor UIs. For a higher-level hook with built-in search state, debounce and pagination controls, use \`useAgentSearchWithPagination\`.
|
|
2242
|
+
|
|
2243
|
+
\`\`\`typescript
|
|
2244
|
+
import { useAgentSearch } from '@iblai/iblai-js/web-containers/next';
|
|
2245
|
+
import type {
|
|
2246
|
+
UseAgentSearchConfig,
|
|
2247
|
+
UseAgentSearchResult,
|
|
2248
|
+
AgentSearchResult,
|
|
2249
|
+
} from '@iblai/iblai-js/web-containers/next';
|
|
2250
|
+
|
|
2251
|
+
const {
|
|
2252
|
+
agents, // AgentSearchResult[]
|
|
2253
|
+
facets, // Record<string, MentorFacet> | undefined
|
|
2254
|
+
hasMore, // boolean
|
|
2255
|
+
totalCount, // number
|
|
2256
|
+
totalPages, // number
|
|
2257
|
+
isLoading,
|
|
2258
|
+
isFetching,
|
|
2259
|
+
refetch, // Force a refetch
|
|
2260
|
+
} = useAgentSearch({
|
|
2261
|
+
tenantKey,
|
|
2262
|
+
query, // optional search string
|
|
2263
|
+
limit: 6,
|
|
2264
|
+
offset: 0,
|
|
2265
|
+
starred: true, // optional
|
|
2266
|
+
featured: true, // optional
|
|
2267
|
+
category, subjects, llm, types,
|
|
2268
|
+
includeMainPublicMentors: true,
|
|
2269
|
+
// orderDirection: 'asc' | 'desc'
|
|
2270
|
+
skip: false,
|
|
2271
|
+
});
|
|
2272
|
+
\`\`\`
|
|
2273
|
+
|
|
2274
|
+
**File Location**: \`packages/web-containers/src/hooks/agent-search/use-agent-search.ts\``,
|
|
2275
|
+
useAgentSearchWithPagination: `# useAgentSearchWithPagination Hook
|
|
2276
|
+
|
|
2277
|
+
Higher-level wrapper around \`useAgentSearch\` that owns the search input value, debounce, and pagination controls (traditional page numbers or "load more"). Use this for simple list/table views (MyMentorsModal, SettingsModal); for the full explore page with sections use \`useAgentSearch\` directly inside \`AgentSearch\`.
|
|
2278
|
+
|
|
2279
|
+
\`\`\`typescript
|
|
2280
|
+
import { useAgentSearchWithPagination } from '@iblai/iblai-js/web-containers/next';
|
|
2281
|
+
import type {
|
|
2282
|
+
UseAgentSearchWithPaginationConfig,
|
|
2283
|
+
UseAgentSearchWithPaginationResult,
|
|
2284
|
+
} from '@iblai/iblai-js/web-containers/next';
|
|
2285
|
+
|
|
2286
|
+
const {
|
|
2287
|
+
agents, totalCount, isLoading, isFetching,
|
|
2288
|
+
searchQuery, setSearchQuery, // raw input value
|
|
2289
|
+
debouncedQuery, // debounced value actually queried
|
|
2290
|
+
currentPage, totalPages, handlePageChange, // 'paginated' mode
|
|
2291
|
+
loadMore, // 'infinite' mode
|
|
2292
|
+
} = useAgentSearchWithPagination({
|
|
2293
|
+
tenantKey,
|
|
2294
|
+
itemsPerPage: 6, // default 6
|
|
2295
|
+
// paginationMode: 'paginated' | 'infinite'
|
|
2296
|
+
debounceMs: 500, // default 500
|
|
2297
|
+
starred: true, // + all UseAgentSearchConfig filters
|
|
2298
|
+
});
|
|
2299
|
+
\`\`\`
|
|
2300
|
+
|
|
2301
|
+
**File Location**: \`packages/web-containers/src/hooks/agent-search/use-agent-search-with-pagination.ts\``,
|
|
2302
|
+
useAgentStar: `# useAgentStar Hook
|
|
2303
|
+
|
|
2304
|
+
Encapsulates the star/unstar mutation pair (\`useStarMentorMutation\` + \`useUnstarMentorMutation\`), tracks the in-flight agent id, and routes unauthenticated users to a host-provided handler. Shared by any UI that renders agent cards with a favorite toggle (\`AgentCard variant="with-star"\`, \`AgentSearch\`, starred section, etc.).
|
|
2305
|
+
|
|
2306
|
+
\`\`\`typescript
|
|
2307
|
+
import { useAgentStar } from '@iblai/iblai-js/web-containers/next';
|
|
2308
|
+
import type {
|
|
2309
|
+
UseAgentStarConfig,
|
|
2310
|
+
UseAgentStarResult,
|
|
2311
|
+
} from '@iblai/iblai-js/web-containers/next';
|
|
2312
|
+
|
|
2313
|
+
const { toggleFavorite, togglingAgentId } = useAgentStar({
|
|
2314
|
+
tenantKey,
|
|
2315
|
+
username, // null triggers onUnauthenticatedAction
|
|
2316
|
+
onUnauthenticatedAction: () => redirectToAuthSpa(),
|
|
2317
|
+
});
|
|
2318
|
+
|
|
2319
|
+
<StarButton
|
|
2320
|
+
isStarred={agent.starred}
|
|
2321
|
+
isToggling={togglingAgentId === String(agent.id)}
|
|
2322
|
+
onClick={(e) => toggleFavorite(agent, e)}
|
|
2323
|
+
/>
|
|
2324
|
+
\`\`\`
|
|
2325
|
+
|
|
2326
|
+
**File Location**: \`packages/web-containers/src/hooks/agent-search/use-agent-star.ts\``,
|
|
2327
|
+
useAgentSettings: `# useAgentSettings Hook
|
|
2328
|
+
|
|
2329
|
+
Reads the shared agent-editing identity and config (tenantKey, mentorId, username, enableRBAC, rbacPermissions, executeGatedAction, visibilityOptions) from the nearest \`<AgentSettingsProvider>\`. Every Edit Mentor Modal tab (\`SettingsTab\`, \`LLMTab\`, \`ToolsTab\`, \`MemoryTab\`, \`SafetyTab\`, \`ApiTab\`, \`HistoryTab\`, \`DatasetsTab\`, \`PromptsTab\`, \`EmbedTab\`, \`DisclaimersTab\`, \`AccessTab\`) reads from this context instead of accepting those as direct props. Throws if called outside a provider.
|
|
2330
|
+
|
|
2331
|
+
\`\`\`typescript
|
|
2332
|
+
import {
|
|
2333
|
+
AgentSettingsProvider,
|
|
2334
|
+
useAgentSettings,
|
|
2335
|
+
} from '@iblai/iblai-js/web-containers/next';
|
|
2336
|
+
import type { AgentSettingsContextValue } from '@iblai/iblai-js/web-containers/next';
|
|
2337
|
+
|
|
2338
|
+
<AgentSettingsProvider
|
|
2339
|
+
tenantKey={tenantKey}
|
|
2340
|
+
mentorId={mentorId}
|
|
2341
|
+
username={username}
|
|
2342
|
+
enableRBAC={enableRBAC}
|
|
2343
|
+
rbacPermissions={rbacPermissions}
|
|
2344
|
+
executeGatedAction={executeWithTrialCheck}
|
|
2345
|
+
visibilityOptions={visibilityOptions}
|
|
2346
|
+
>
|
|
2347
|
+
<SettingsTab {...} />
|
|
2348
|
+
<LLMTab {...} />
|
|
2349
|
+
</AgentSettingsProvider>
|
|
2350
|
+
|
|
2351
|
+
// Inside any tab:
|
|
2352
|
+
const { tenantKey, mentorId, username, enableRBAC, executeGatedAction } =
|
|
2353
|
+
useAgentSettings();
|
|
2354
|
+
\`\`\`
|
|
2355
|
+
|
|
2356
|
+
**File Location**: \`packages/web-containers/src/components/modals/edit-mentor-modal/agent-settings-context.tsx\``,
|
|
2204
2357
|
};
|
|
2205
2358
|
export function getHookInfo(hookName) {
|
|
2206
2359
|
const info = hooks[hookName];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-info.js","sourceRoot":"","sources":["../../src/tools/hook-info.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"hook-info.js","sourceRoot":"","sources":["../../src/tools/hook-info.ts"],"names":[],"mappings":"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"}
|