@devilsdev/rag-pipeline-utils 2.1.1 → 2.1.3

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 (81) hide show
  1. package/.eslintrc.json +2 -1
  2. package/.github/release-template.md +20 -0
  3. package/.github/workflows/ci.yml +12 -23
  4. package/.github/workflows/docs-ci.yml +37 -0
  5. package/.github/workflows/docs-deploy.yml +10 -21
  6. package/.github/workflows/publish-release-blog.yml +4 -10
  7. package/CHANGELOG.md +14 -0
  8. package/codecov +0 -0
  9. package/codecov.SHA256SUM +1 -0
  10. package/codecov.SHA256SUM.sig +16 -0
  11. package/docs-site/blog/2025-04-18-architecture-overview.md +8 -26
  12. package/docs-site/blog/{2025-04-17-release-v2.0.2.md → 2025-04-18-release-v2.1.1.md} +4 -4
  13. package/docs-site/blog/2025-04-19-prompt-engineering-best-practices.md +8 -23
  14. package/docs-site/blog/2025-04-20-image-showcase.md +6 -15
  15. package/docs-site/blog/2025-04-20-release-2.1.1.md +21 -0
  16. package/docs-site/blog/tags.yml +29 -0
  17. package/docs-site/docs/intro.mdx +6 -0
  18. package/docs-site/docusaurus.config.js +35 -18
  19. package/docs-site/package-lock.json +234 -719
  20. package/docs-site/package.json +4 -8
  21. package/docs-site/src/components/HomepageFeatures/index.js +34 -37
  22. package/docs-site/src/components/HomepageFeatures/index.module.css +57 -0
  23. package/docs-site/src/components/HomepageHeader/index.js +46 -0
  24. package/docs-site/src/components/HomepageHeader/index.module.css +77 -0
  25. package/docs-site/src/css/custom.css +101 -78
  26. package/docs-site/src/pages/index.js +11 -28
  27. package/docs-site/static/img/logo.png +0 -0
  28. package/docs-site/static/img/logo.svg +5 -1538
  29. package/jest.config.js +4 -1
  30. package/package.json +14 -7
  31. package/scripts/fix-mdx-blog-imports.js +50 -0
  32. package/scripts/fix-mdx-image-imports.js +27 -0
  33. package/scripts/generate-release-note.js +40 -0
  34. package/.github/workflows/storybook-deploy.yml +0 -33
  35. package/.storybook/main.js +0 -20
  36. package/.storybook/preview.js +0 -13
  37. package/docs-site/.plaiceholder-cache/img_hero.jpg.json +0 -1
  38. package/docs-site/.plaiceholder-cache/img_logo.png.json +0 -1
  39. package/docs-site/.storybook/preview.js +0 -8
  40. package/docs-site/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg +0 -0
  41. package/docs-site/blog/2021-08-26-welcome/index.md +0 -28
  42. package/docs-site/blog/2025-04-17-release-2.0.md +0 -67
  43. package/docs-site/blog/2025-04-18-release-2.0.0.md +0 -21
  44. package/docs-site/blog/2025-04-18-release-v2.1.0.md +0 -13
  45. package/docs-site/docs/components/BlogCardExample.mdx +0 -7
  46. package/docs-site/scripts/generate-placeholders.js +0 -17
  47. package/docs-site/scripts/watch-images.js +0 -40
  48. package/docs-site/sidebar-snippet.txt +0 -5
  49. package/docs-site/src/components/BlogCard.jsx +0 -31
  50. package/docs-site/src/components/BlogCard.stories.jsx +0 -34
  51. package/docs-site/src/components/BlogImage.jsx +0 -58
  52. package/docs-site/src/components/BlogImage.stories.jsx +0 -20
  53. package/docs-site/src/components/HomepageFeatures/styles.module.css +0 -58
  54. package/docs-site/static/img/favicon.ico +0 -0
  55. package/docs-site/utils/image.js +0 -19
  56. package/src/stories/Button.jsx +0 -39
  57. package/src/stories/Button.stories.js +0 -49
  58. package/src/stories/Configure.mdx +0 -364
  59. package/src/stories/Header.jsx +0 -56
  60. package/src/stories/Header.stories.js +0 -29
  61. package/src/stories/Page.jsx +0 -69
  62. package/src/stories/Page.stories.js +0 -28
  63. package/src/stories/assets/accessibility.png +0 -0
  64. package/src/stories/assets/accessibility.svg +0 -1
  65. package/src/stories/assets/addon-library.png +0 -0
  66. package/src/stories/assets/assets.png +0 -0
  67. package/src/stories/assets/avif-test-image.avif +0 -0
  68. package/src/stories/assets/context.png +0 -0
  69. package/src/stories/assets/discord.svg +0 -1
  70. package/src/stories/assets/docs.png +0 -0
  71. package/src/stories/assets/figma-plugin.png +0 -0
  72. package/src/stories/assets/github.svg +0 -1
  73. package/src/stories/assets/share.png +0 -0
  74. package/src/stories/assets/styling.png +0 -0
  75. package/src/stories/assets/testing.png +0 -0
  76. package/src/stories/assets/theming.png +0 -0
  77. package/src/stories/assets/tutorials.svg +0 -1
  78. package/src/stories/assets/youtube.svg +0 -1
  79. package/src/stories/button.css +0 -30
  80. package/src/stories/header.css +0 -32
  81. package/src/stories/page.css +0 -68
@@ -1,8 +1,7 @@
1
1
  {
2
- "name": "docs-site",
2
+ "name": "rag-docs-test",
3
3
  "version": "0.0.0",
4
4
  "private": true,
5
- "type": "module",
6
5
  "scripts": {
7
6
  "docusaurus": "docusaurus",
8
7
  "start": "docusaurus start",
@@ -12,21 +11,18 @@
12
11
  "clear": "docusaurus clear",
13
12
  "serve": "docusaurus serve",
14
13
  "write-translations": "docusaurus write-translations",
15
- "write-heading-ids": "docusaurus write-heading-ids",
16
- "watch:images": "node scripts/watch-images.js"
14
+ "write-heading-ids": "docusaurus write-heading-ids"
17
15
  },
18
16
  "dependencies": {
17
+ "@docusaurus/core": "3.7.0",
19
18
  "@docusaurus/preset-classic": "3.7.0",
20
19
  "@mdx-js/react": "^3.0.0",
21
20
  "clsx": "^2.0.0",
22
- "plaiceholder": "^3.0.0",
23
21
  "prism-react-renderer": "^2.3.0",
24
22
  "react": "^19.0.0",
25
- "react-dom": "^19.0.0",
26
- "sharp": "^0.34.1"
23
+ "react-dom": "^19.0.0"
27
24
  },
28
25
  "devDependencies": {
29
- "@docusaurus/core": "^3.7.0",
30
26
  "@docusaurus/module-type-aliases": "3.7.0",
31
27
  "@docusaurus/types": "3.7.0"
32
28
  },
@@ -1,59 +1,56 @@
1
+ /**
2
+ * Version: 1.4.1
3
+ * Description: Feature grid with Framer Motion and deduplicated layout
4
+ * Author: Ali Kahwaji
5
+ */
6
+
1
7
  import React from 'react';
2
8
  import clsx from 'clsx';
3
- import styles from './styles.module.css';
9
+ import { motion } from 'framer-motion';
10
+ import styles from './index.module.css';
4
11
 
5
12
  import FeatureImage from '@site/static/img/logo.svg';
6
13
 
7
- const FeatureList = [
14
+ const features = [
8
15
  {
9
16
  title: 'Composable Pipelines',
10
- Svg: FeatureImage,
11
- description: (
12
- <>
13
- Build flexible RAG workflows with interchangeable loaders, embedders, retrievers, and LLM runners using a clean plugin-based design.
14
- </>
15
- ),
17
+ description: 'Build flexible RAG workflows with interchangeable loaders, embedders, retrievers, and LLM runners using a clean plugin-based design.',
16
18
  },
17
19
  {
18
20
  title: 'Evaluation & Dashboard',
19
- Svg: FeatureImage,
20
- description: (
21
- <>
22
- Use built-in CLI tooling and React dashboards to assess LLM accuracy, BLEU/ROUGE scores, and prompt results at scale.
23
- </>
24
- ),
21
+ description: 'Use built-in CLI tooling and React dashboards to assess LLM accuracy, BLEU/ROUGE scores, and prompt results at scale.',
25
22
  },
26
23
  {
27
24
  title: 'Fully Extendable',
28
- Svg: FeatureImage,
29
- description: (
30
- <>
31
- Register custom components with the PluginRegistry and extend the system without modifying the core logic.
32
- </>
33
- ),
25
+ description: 'Register custom components with the PluginRegistry and extend the system without modifying the core logic.',
34
26
  },
35
27
  ];
36
28
 
37
- function Feature({Svg, title, description}) {
38
- return (
39
- <div className={clsx('col col--4', styles.feature)}>
40
- <div className="text--center">
41
- <Svg className={styles.featureSvg} role="img" />
42
- </div>
43
- <div className="text--center padding-horiz--md">
44
- <h3 className={styles.featureTitle}>{title}</h3>
45
- <p className={styles.featureText}>{description}</p>
46
- </div>
47
- </div>
48
- );
49
- }
50
-
51
29
  export default function HomepageFeatures() {
52
30
  return (
53
31
  <section className={styles.features}>
54
- {FeatureList.map((props, idx) => (
55
- <Feature key={idx} {...props} />
56
- ))}
32
+ <div className="container">
33
+ <div className="row">
34
+ {features.map((feature, idx) => (
35
+ <motion.div
36
+ key={idx}
37
+ className={clsx('col col--4', styles.feature)}
38
+ initial={{ opacity: 0, y: 30 }}
39
+ whileInView={{ opacity: 1, y: 0 }}
40
+ viewport={{ once: true, amount: 0.3 }}
41
+ transition={{ duration: 0.6, delay: idx * 0.2 }}
42
+ >
43
+ <div className="text--center">
44
+ <FeatureImage className={styles.featureSvg} role="img" alt={feature.title} />
45
+ </div>
46
+ <div className="text--center padding-horiz--md">
47
+ <h3 className={styles.featureTitle}>{feature.title}</h3>
48
+ <p className={styles.featureText}>{feature.description}</p>
49
+ </div>
50
+ </motion.div>
51
+ ))}
52
+ </div>
53
+ </div>
57
54
  </section>
58
55
  );
59
56
  }
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Version: 1.4.1
3
+ * Description: HomepageFeatures styles with consistent spacing, mint theming, and animation polish
4
+ * Author: Ali Kahwaji
5
+ */
6
+
7
+ .features {
8
+ padding: 4rem 0;
9
+ background-color: var(--ifm-background-color);
10
+ transition: background-color 0.3s ease;
11
+ }
12
+
13
+ .feature {
14
+ text-align: center;
15
+ padding: 2rem 1rem;
16
+ transition: transform 0.3s ease;
17
+ }
18
+
19
+ .feature:hover {
20
+ transform: translateY(-4px);
21
+ }
22
+
23
+ .featureSvg {
24
+ height: 100px;
25
+ width: auto;
26
+ margin-bottom: 1rem;
27
+ fill: var(--ifm-color-primary);
28
+ }
29
+
30
+ .featureTitle {
31
+ font-size: 1.25rem;
32
+ font-weight: 600;
33
+ color: var(--ifm-heading-color);
34
+ margin-bottom: 0.5rem;
35
+ }
36
+
37
+ .featureText {
38
+ font-size: 0.95rem;
39
+ line-height: 1.6;
40
+ color: var(--ifm-font-color-base);
41
+ max-width: 280px;
42
+ margin: 0 auto;
43
+ }
44
+
45
+ @media (max-width: 768px) {
46
+ .features {
47
+ padding: 2rem 0;
48
+ }
49
+
50
+ .feature {
51
+ padding: 1.5rem 0.5rem;
52
+ }
53
+
54
+ .featureSvg {
55
+ height: 80px;
56
+ }
57
+ }
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Version: 2.4.2
3
+ * Description: Crash-proof homepage header with full fallback safety
4
+ * Author: Ali Kahwaji
5
+ */
6
+
7
+ import React from 'react';
8
+ import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
9
+ import Link from '@docusaurus/Link';
10
+ import clsx from 'clsx';
11
+ import styles from './index.module.css';
12
+ import Logo from '@site/static/img/logo.svg';
13
+
14
+ export default function HomepageHeader() {
15
+ let siteConfig = { title: 'RAG Pipeline Utils', tagline: 'Composable pipelines for LLMs' };
16
+
17
+ try {
18
+ const context = useDocusaurusContext();
19
+ if (context && context.siteConfig) {
20
+ siteConfig = {
21
+ title: context.siteConfig.title || siteConfig.title,
22
+ tagline: context.siteConfig.tagline || siteConfig.tagline,
23
+ };
24
+ }
25
+ } catch (e) {
26
+ console.warn('useDocusaurusContext failed:', e);
27
+ }
28
+
29
+ return (
30
+ <header className={clsx('hero', styles.heroBanner)}>
31
+ <div className="container text--center">
32
+ <Logo className={styles.logo} role="img" alt="RAG Utils Logo" />
33
+ <h1 className="hero__title">{siteConfig.title}</h1>
34
+ <p className="hero__subtitle">{siteConfig.tagline}</p>
35
+ <div className={styles.buttons}>
36
+ <Link className="button button--primary button--lg" to="/docs/Introduction">
37
+ Get Started
38
+ </Link>
39
+ <Link className="button button--outline button--lg" to="/blog">
40
+ Visit Blog
41
+ </Link>
42
+ </div>
43
+ </div>
44
+ </header>
45
+ );
46
+ }
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Version: 1.4.0
3
+ * Path: docs-site/src/components/HomepageHeader/index.module.css
4
+ * Description: Styles for responsive hero banner with mint green CTA
5
+ * Author: Ali Kahwaji
6
+ */
7
+
8
+ :root {
9
+ --hero-accent: #3EF4B6;
10
+ }
11
+
12
+ .heroBanner {
13
+ padding: 5rem 2rem;
14
+ background: var(--ifm-background-color);
15
+ text-align: center;
16
+ }
17
+
18
+ .heroTitle {
19
+ font-size: 3rem;
20
+ font-weight: 700;
21
+ color: var(--ifm-heading-color);
22
+ margin-bottom: 1rem;
23
+ line-height: 1.2;
24
+ }
25
+
26
+ .heroSubtitle {
27
+ font-size: 1.2rem;
28
+ color: var(--ifm-font-color-base);
29
+ max-width: 720px;
30
+ margin: 0 auto 2rem auto;
31
+ }
32
+
33
+ .buttons {
34
+ display: flex;
35
+ flex-wrap: wrap;
36
+ gap: 1rem;
37
+ justify-content: center;
38
+ }
39
+
40
+ .ctaButton {
41
+ border-radius: 8px;
42
+ font-weight: 600;
43
+ padding: 0.75rem 2rem;
44
+ transition: all 0.25s ease-in-out;
45
+ }
46
+
47
+ .ctaButton.button--primary {
48
+ background-color: var(--hero-accent);
49
+ border: none;
50
+ color: black;
51
+ }
52
+
53
+ .ctaButton.button--primary:hover {
54
+ background-color: #33e3a6;
55
+ box-shadow: 0 0 0 4px rgba(62, 244, 182, 0.3);
56
+ }
57
+
58
+ .ctaButton.button--outline {
59
+ border-color: var(--hero-accent);
60
+ color: var(--hero-accent);
61
+ }
62
+
63
+ .ctaButton.button--outline:hover {
64
+ background-color: rgba(62, 244, 182, 0.1);
65
+ border-color: var(--hero-accent);
66
+ }
67
+
68
+ /* Mobile adjustments */
69
+ @media (max-width: 768px) {
70
+ .heroTitle {
71
+ font-size: 2.25rem;
72
+ }
73
+
74
+ .heroSubtitle {
75
+ font-size: 1rem;
76
+ }
77
+ }
@@ -1,81 +1,104 @@
1
- /*
2
- * Version: 0.2.0
3
- * Path: /docs-site/src/css/custom.css
4
- * Description: Customized global styles for RAG Pipeline Utils Docusaurus site
1
+ /**
2
+ * Version: 1.4.2
3
+ * Path: docs-site/src/css/custom.css
4
+ * Description: Robust theme override for SSR support in Docusaurus static build with correct light/dark contrast.
5
5
  * Author: Ali Kahwaji
6
6
  */
7
7
 
8
- /* Infima overrides */
9
- :root {
10
- --ifm-color-primary: #2e8555;
11
- --ifm-color-primary-dark: #29784c;
12
- --ifm-color-primary-darker: #277148;
13
- --ifm-color-primary-darkest: #205d3b;
14
- --ifm-color-primary-light: #33925d;
15
- --ifm-color-primary-lighter: #359962;
16
- --ifm-color-primary-lightest: #3cad6e;
17
- --ifm-code-font-size: 95%;
18
- --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.05);
19
-
20
- /* Custom enhancements */
21
- --ifm-font-family-base: 'Segoe UI', Roboto, sans-serif;
22
- --ifm-spacing-horizontal: 1.2rem;
23
- --ifm-container-width: 90%;
24
- }
25
-
26
- [data-theme='dark'] {
27
- --ifm-color-primary: #25c2a0;
28
- --ifm-color-primary-dark: #21af90;
29
- --ifm-color-primary-darker: #1fa588;
30
- --ifm-color-primary-darkest: #1a8870;
31
- --ifm-color-primary-light: #29d5b0;
32
- --ifm-color-primary-lighter: #32d8b4;
33
- --ifm-color-primary-lightest: #4fddbf;
34
- --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
35
- }
36
-
37
- /* Hero section styling */
38
- main.container {
39
- padding-top: 3rem;
40
- }
41
-
42
- .hero__subtitle {
43
- font-size: 1.25rem;
44
- color: #444;
45
- margin-bottom: 2rem;
46
- }
47
-
48
- [data-theme='dark'] .hero__subtitle {
49
- color: #ccc;
50
- }
51
-
52
- /* Button enhancements */
53
- .button--info {
54
- background-color: #e0f2ff !important;
55
- color: #0366d6 !important;
56
- border: 1px solid #b6e0fe !important;
57
- font-weight: 500;
58
- }
59
-
60
- .button--info:hover {
61
- background-color: #d2ecfc !important;
62
- border-color: #a4d7fa !important;
63
- }
64
-
65
- /* Footer padding */
66
- .footer {
67
- padding-top: 2rem;
68
- padding-bottom: 2rem;
69
- }
70
-
71
- /* Improve readability of inline code */
72
- code {
73
- background-color: rgba(27,31,35,.05);
74
- padding: 0.2em 0.4em;
75
- border-radius: 4px;
76
- font-size: 90%;
77
- }
78
-
79
- [data-theme='dark'] code {
80
- background-color: rgba(255,255,255,0.08);
81
- }
8
+ /* ----------------------
9
+ * Explicit Light Theme Scope (SSR Safe)
10
+ * ---------------------- */
11
+ html[data-theme='light'],
12
+ :root {
13
+ --ifm-color-primary: #3EF4B6;
14
+ --ifm-color-primary-dark: #33e3a6;
15
+ --ifm-color-primary-darker: #2fd29b;
16
+ --ifm-color-primary-light: #55f7c0;
17
+ --ifm-color-primary-lighter: #69f9ca;
18
+ --ifm-color-primary-lightest: #86fbd6;
19
+
20
+ --ifm-background-color: #ffffff;
21
+ --ifm-navbar-background-color: #f8f8f8;
22
+ --ifm-footer-background-color: #f4f4f4;
23
+
24
+ --ifm-font-color-base: #1a1a1a;
25
+ --ifm-heading-color: #121212;
26
+ --ifm-link-color: var(--ifm-color-primary);
27
+ }
28
+
29
+ /* ----------------------
30
+ * Dark Theme Overrides
31
+ * ---------------------- */
32
+ html[data-theme='dark'] {
33
+ --ifm-background-color: #0d0d0d;
34
+ --ifm-navbar-background-color: #151515;
35
+ --ifm-footer-background-color: #121212;
36
+
37
+ --ifm-font-color-base: #f2f2f2;
38
+ --ifm-heading-color: #ffffff;
39
+ --ifm-link-color: var(--ifm-color-primary);
40
+ }
41
+
42
+ /* ------------------
43
+ * Typography
44
+ * ------------------ */
45
+ body {
46
+ font-family: 'Inter', system-ui, sans-serif;
47
+ line-height: 1.6;
48
+ font-size: 16px;
49
+ background-color: var(--ifm-background-color);
50
+ color: var(--ifm-font-color-base);
51
+ transition: background-color 0.3s ease, color 0.3s ease;
52
+ }
53
+
54
+ /* ------------------
55
+ * Buttons
56
+ * ------------------ */
57
+ .button--primary {
58
+ background-color: var(--ifm-color-primary);
59
+ color: black;
60
+ border: none;
61
+ font-weight: 500;
62
+ transition: background-color 0.2s ease;
63
+ }
64
+ .button--primary:hover {
65
+ background-color: var(--ifm-color-primary-dark);
66
+ box-shadow: 0 0 0 3px rgba(62, 244, 182, 0.25);
67
+ }
68
+ .button--outline {
69
+ border: 2px solid var(--ifm-color-primary);
70
+ color: var(--ifm-color-primary);
71
+ }
72
+ .button--outline:hover {
73
+ background-color: rgba(62, 244, 182, 0.05);
74
+ }
75
+
76
+ /* ------------------
77
+ * Code Blocks
78
+ * ------------------ */
79
+ pre {
80
+ background-color: #f5f5f5;
81
+ border-radius: 8px;
82
+ padding: 1rem;
83
+ font-size: 0.95rem;
84
+ overflow-x: auto;
85
+ }
86
+ html[data-theme='dark'] pre {
87
+ background-color: #1e1e1e;
88
+ }
89
+
90
+ /* ------------------
91
+ * Scrollbars
92
+ * ------------------ */
93
+ ::-webkit-scrollbar {
94
+ width: 8px;
95
+ height: 8px;
96
+ }
97
+ ::-webkit-scrollbar-thumb {
98
+ background-color: rgba(62, 244, 182, 0.45);
99
+ border-radius: 4px;
100
+ }
101
+ ::-webkit-scrollbar-track {
102
+ background: transparent;
103
+ }
104
+
@@ -1,36 +1,19 @@
1
+ // docs-site/src/pages/index.js
2
+
1
3
  import React from 'react';
2
4
  import Layout from '@theme/Layout';
3
- import Link from '@docusaurus/Link';
5
+ import HomepageHeader from '@site/src/components/HomepageHeader';
6
+ import HomepageFeatures from '@site/src/components/HomepageFeatures';
4
7
 
5
8
  export default function Home() {
6
9
  return (
7
- <Layout title="RAG Pipeline Utils" description="Modular tools for retrieval-augmented generation">
8
- <main className="container margin-vert--xl text--center">
9
- <h1>Welcome to RAG Pipeline Utils</h1>
10
- <p className="hero__subtitle">
11
- A composable, pluggable RAG framework for Node.js with CLI, evaluation, and dashboard support.
12
- </p>
13
-
14
- <div style={{ marginTop: '2rem' }}>
15
- <Link
16
- className="button button--primary button--lg margin-horiz--sm"
17
- to="/docs/Introduction">
18
- 📄 Get Started
19
- </Link>
20
-
21
- <Link
22
- className="button button--secondary button--lg margin-horiz--sm"
23
- to="/docs/CLI">
24
- 🧰 CLI Reference
25
- </Link>
26
-
27
- <Link
28
- className="button button--info button--lg margin-horiz--sm"
29
- style={{ backgroundColor: '#e0f2ff', color: '#0366d6', border: '1px solid #b6e0fe' }}
30
- to="/docs/Evaluation">
31
- 📈 Evaluation Dashboard
32
- </Link>
33
- </div>
10
+ <Layout
11
+ title="RAG Pipeline Utils"
12
+ description="Composable RAG pipelines, dashboards, and plugin architecture for Node.js"
13
+ >
14
+ <HomepageHeader />
15
+ <main>
16
+ <HomepageFeatures />
34
17
  </main>
35
18
  </Layout>
36
19
  );
Binary file