rcrewai 0.1.0

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 (53) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +108 -0
  3. data/LICENSE +21 -0
  4. data/README.md +328 -0
  5. data/Rakefile +130 -0
  6. data/bin/rcrewai +7 -0
  7. data/docs/_config.yml +59 -0
  8. data/docs/_layouts/api.html +16 -0
  9. data/docs/_layouts/default.html +78 -0
  10. data/docs/_layouts/example.html +24 -0
  11. data/docs/_layouts/tutorial.html +33 -0
  12. data/docs/api/configuration.md +327 -0
  13. data/docs/api/crew.md +345 -0
  14. data/docs/api/index.md +41 -0
  15. data/docs/api/tools.md +412 -0
  16. data/docs/assets/css/style.css +416 -0
  17. data/docs/examples/human-in-the-loop.md +382 -0
  18. data/docs/examples/index.md +78 -0
  19. data/docs/examples/production-ready-crew.md +485 -0
  20. data/docs/examples/simple-research-crew.md +297 -0
  21. data/docs/index.md +353 -0
  22. data/docs/tutorials/getting-started.md +341 -0
  23. data/examples/async_execution_example.rb +294 -0
  24. data/examples/hierarchical_crew_example.rb +193 -0
  25. data/examples/human_in_the_loop_example.rb +233 -0
  26. data/lib/rcrewai/agent.rb +636 -0
  27. data/lib/rcrewai/async_executor.rb +248 -0
  28. data/lib/rcrewai/cli.rb +39 -0
  29. data/lib/rcrewai/configuration.rb +100 -0
  30. data/lib/rcrewai/crew.rb +292 -0
  31. data/lib/rcrewai/human_input.rb +520 -0
  32. data/lib/rcrewai/llm_client.rb +41 -0
  33. data/lib/rcrewai/llm_clients/anthropic.rb +127 -0
  34. data/lib/rcrewai/llm_clients/azure.rb +158 -0
  35. data/lib/rcrewai/llm_clients/base.rb +82 -0
  36. data/lib/rcrewai/llm_clients/google.rb +158 -0
  37. data/lib/rcrewai/llm_clients/ollama.rb +199 -0
  38. data/lib/rcrewai/llm_clients/openai.rb +124 -0
  39. data/lib/rcrewai/memory.rb +194 -0
  40. data/lib/rcrewai/process.rb +421 -0
  41. data/lib/rcrewai/task.rb +376 -0
  42. data/lib/rcrewai/tools/base.rb +82 -0
  43. data/lib/rcrewai/tools/code_executor.rb +333 -0
  44. data/lib/rcrewai/tools/email_sender.rb +210 -0
  45. data/lib/rcrewai/tools/file_reader.rb +111 -0
  46. data/lib/rcrewai/tools/file_writer.rb +115 -0
  47. data/lib/rcrewai/tools/pdf_processor.rb +342 -0
  48. data/lib/rcrewai/tools/sql_database.rb +226 -0
  49. data/lib/rcrewai/tools/web_search.rb +131 -0
  50. data/lib/rcrewai/version.rb +5 -0
  51. data/lib/rcrewai.rb +36 -0
  52. data/rcrewai.gemspec +54 -0
  53. metadata +365 -0
@@ -0,0 +1,416 @@
1
+ /* Reset and Base Styles */
2
+ * {
3
+ margin: 0;
4
+ padding: 0;
5
+ box-sizing: border-box;
6
+ }
7
+
8
+ body {
9
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
10
+ line-height: 1.6;
11
+ color: #333;
12
+ background-color: #fff;
13
+ }
14
+
15
+ /* Container */
16
+ .container {
17
+ max-width: 1200px;
18
+ margin: 0 auto;
19
+ padding: 0 2rem;
20
+ }
21
+
22
+ /* Navigation */
23
+ .navbar {
24
+ background: #fff;
25
+ border-bottom: 1px solid #e5e7eb;
26
+ position: sticky;
27
+ top: 0;
28
+ z-index: 100;
29
+ }
30
+
31
+ .nav-container {
32
+ display: flex;
33
+ justify-content: space-between;
34
+ align-items: center;
35
+ padding: 1rem 2rem;
36
+ max-width: 1200px;
37
+ margin: 0 auto;
38
+ }
39
+
40
+ .nav-brand {
41
+ font-size: 1.5rem;
42
+ font-weight: bold;
43
+ color: #2563eb;
44
+ text-decoration: none;
45
+ }
46
+
47
+ .nav-menu {
48
+ display: flex;
49
+ gap: 2rem;
50
+ }
51
+
52
+ .nav-link {
53
+ color: #6b7280;
54
+ text-decoration: none;
55
+ font-weight: 500;
56
+ transition: color 0.2s;
57
+ }
58
+
59
+ .nav-link:hover {
60
+ color: #2563eb;
61
+ }
62
+
63
+ .nav-mobile {
64
+ display: none;
65
+ }
66
+
67
+ .nav-toggle {
68
+ background: none;
69
+ border: none;
70
+ font-size: 1.5rem;
71
+ cursor: pointer;
72
+ }
73
+
74
+ /* Main Content */
75
+ .main-content {
76
+ min-height: calc(100vh - 200px);
77
+ padding: 2rem 0;
78
+ }
79
+
80
+ /* Typography */
81
+ h1, h2, h3, h4, h5, h6 {
82
+ margin-bottom: 1rem;
83
+ line-height: 1.3;
84
+ color: #1f2937;
85
+ }
86
+
87
+ h1 {
88
+ font-size: 2.5rem;
89
+ font-weight: 700;
90
+ margin-bottom: 1.5rem;
91
+ }
92
+
93
+ h2 {
94
+ font-size: 2rem;
95
+ font-weight: 600;
96
+ margin-top: 2rem;
97
+ padding-bottom: 0.5rem;
98
+ border-bottom: 2px solid #e5e7eb;
99
+ }
100
+
101
+ h3 {
102
+ font-size: 1.5rem;
103
+ font-weight: 600;
104
+ margin-top: 1.5rem;
105
+ }
106
+
107
+ p {
108
+ margin-bottom: 1rem;
109
+ color: #4b5563;
110
+ }
111
+
112
+ .lead {
113
+ font-size: 1.25rem;
114
+ color: #6b7280;
115
+ margin-bottom: 2rem;
116
+ }
117
+
118
+ /* Hero Section */
119
+ .hero-section {
120
+ text-align: center;
121
+ padding: 3rem 0;
122
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
123
+ color: white;
124
+ border-radius: 1rem;
125
+ margin-bottom: 3rem;
126
+ }
127
+
128
+ .hero-section .lead {
129
+ color: rgba(255, 255, 255, 0.9);
130
+ }
131
+
132
+ .cta-buttons {
133
+ display: flex;
134
+ gap: 1rem;
135
+ justify-content: center;
136
+ margin-top: 2rem;
137
+ }
138
+
139
+ /* Buttons */
140
+ .btn {
141
+ display: inline-block;
142
+ padding: 0.75rem 1.5rem;
143
+ border-radius: 0.5rem;
144
+ text-decoration: none;
145
+ font-weight: 500;
146
+ transition: all 0.2s;
147
+ border: none;
148
+ cursor: pointer;
149
+ }
150
+
151
+ .btn-primary {
152
+ background: #2563eb;
153
+ color: white;
154
+ }
155
+
156
+ .btn-primary:hover {
157
+ background: #1d4ed8;
158
+ }
159
+
160
+ .btn-secondary {
161
+ background: rgba(255, 255, 255, 0.1);
162
+ color: white;
163
+ border: 1px solid rgba(255, 255, 255, 0.3);
164
+ }
165
+
166
+ .btn-secondary:hover {
167
+ background: rgba(255, 255, 255, 0.2);
168
+ }
169
+
170
+ /* Feature Grid */
171
+ .feature-grid {
172
+ display: grid;
173
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
174
+ gap: 2rem;
175
+ margin: 3rem 0;
176
+ }
177
+
178
+ .feature-card {
179
+ background: #f9fafb;
180
+ padding: 2rem;
181
+ border-radius: 0.75rem;
182
+ border: 1px solid #e5e7eb;
183
+ transition: transform 0.2s, box-shadow 0.2s;
184
+ }
185
+
186
+ .feature-card:hover {
187
+ transform: translateY(-2px);
188
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
189
+ }
190
+
191
+ .feature-card h3 {
192
+ margin-top: 0;
193
+ margin-bottom: 1rem;
194
+ color: #1f2937;
195
+ }
196
+
197
+ .feature-card p {
198
+ margin-bottom: 1rem;
199
+ }
200
+
201
+ .feature-card a {
202
+ color: #2563eb;
203
+ text-decoration: none;
204
+ font-weight: 500;
205
+ }
206
+
207
+ .feature-card a:hover {
208
+ text-decoration: underline;
209
+ }
210
+
211
+ /* Code Blocks */
212
+ pre {
213
+ background: #f8fafc;
214
+ border: 1px solid #e2e8f0;
215
+ border-radius: 0.5rem;
216
+ padding: 1rem;
217
+ overflow-x: auto;
218
+ margin: 1rem 0;
219
+ }
220
+
221
+ code {
222
+ font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
223
+ font-size: 0.9rem;
224
+ }
225
+
226
+ p code {
227
+ background: #f1f5f9;
228
+ padding: 0.2rem 0.4rem;
229
+ border-radius: 0.25rem;
230
+ color: #e53e3e;
231
+ }
232
+
233
+ /* Lists */
234
+ ul, ol {
235
+ margin-bottom: 1rem;
236
+ padding-left: 2rem;
237
+ }
238
+
239
+ li {
240
+ margin-bottom: 0.5rem;
241
+ color: #4b5563;
242
+ }
243
+
244
+ /* Tables */
245
+ table {
246
+ width: 100%;
247
+ border-collapse: collapse;
248
+ margin: 2rem 0;
249
+ }
250
+
251
+ th, td {
252
+ text-align: left;
253
+ padding: 0.75rem;
254
+ border-bottom: 1px solid #e5e7eb;
255
+ }
256
+
257
+ th {
258
+ background: #f9fafb;
259
+ font-weight: 600;
260
+ color: #1f2937;
261
+ }
262
+
263
+ /* Blockquotes */
264
+ blockquote {
265
+ border-left: 4px solid #2563eb;
266
+ background: #f8fafc;
267
+ padding: 1rem;
268
+ margin: 2rem 0;
269
+ font-style: italic;
270
+ }
271
+
272
+ /* Links */
273
+ a {
274
+ color: #2563eb;
275
+ text-decoration: none;
276
+ }
277
+
278
+ a:hover {
279
+ text-decoration: underline;
280
+ }
281
+
282
+ /* Footer */
283
+ .footer {
284
+ background: #1f2937;
285
+ color: white;
286
+ padding: 3rem 0 1rem;
287
+ margin-top: 4rem;
288
+ }
289
+
290
+ .footer-content {
291
+ display: grid;
292
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
293
+ gap: 2rem;
294
+ margin-bottom: 2rem;
295
+ }
296
+
297
+ .footer-section h4 {
298
+ margin-bottom: 1rem;
299
+ color: white;
300
+ }
301
+
302
+ .footer-section ul {
303
+ list-style: none;
304
+ padding: 0;
305
+ }
306
+
307
+ .footer-section ul li {
308
+ margin-bottom: 0.5rem;
309
+ }
310
+
311
+ .footer-section ul li a {
312
+ color: #d1d5db;
313
+ text-decoration: none;
314
+ }
315
+
316
+ .footer-section ul li a:hover {
317
+ color: white;
318
+ }
319
+
320
+ .footer-bottom {
321
+ text-align: center;
322
+ padding-top: 2rem;
323
+ border-top: 1px solid #374151;
324
+ color: #9ca3af;
325
+ }
326
+
327
+ /* Responsive Design */
328
+ @media (max-width: 768px) {
329
+ .nav-menu {
330
+ display: none;
331
+ flex-direction: column;
332
+ position: absolute;
333
+ top: 100%;
334
+ left: 0;
335
+ right: 0;
336
+ background: white;
337
+ border-top: 1px solid #e5e7eb;
338
+ padding: 1rem 2rem;
339
+ }
340
+
341
+ .nav-menu.active {
342
+ display: flex;
343
+ }
344
+
345
+ .nav-mobile {
346
+ display: block;
347
+ }
348
+
349
+ .cta-buttons {
350
+ flex-direction: column;
351
+ align-items: center;
352
+ }
353
+
354
+ h1 {
355
+ font-size: 2rem;
356
+ }
357
+
358
+ .container {
359
+ padding: 0 1rem;
360
+ }
361
+
362
+ .nav-container {
363
+ padding: 1rem;
364
+ }
365
+
366
+ .feature-grid {
367
+ grid-template-columns: 1fr;
368
+ }
369
+
370
+ pre {
371
+ overflow-x: scroll;
372
+ }
373
+ }
374
+
375
+ /* Specific Layout Styles */
376
+ .tutorial-nav {
377
+ background: #f9fafb;
378
+ padding: 1rem;
379
+ border-radius: 0.5rem;
380
+ margin-bottom: 2rem;
381
+ }
382
+
383
+ .tutorial-nav ul {
384
+ list-style: none;
385
+ padding: 0;
386
+ margin: 0;
387
+ }
388
+
389
+ .tutorial-nav ul li {
390
+ margin-bottom: 0.5rem;
391
+ }
392
+
393
+ .api-section {
394
+ background: #fefefe;
395
+ border: 1px solid #e5e7eb;
396
+ border-radius: 0.5rem;
397
+ padding: 1.5rem;
398
+ margin: 2rem 0;
399
+ }
400
+
401
+ .method-signature {
402
+ background: #1f2937;
403
+ color: #f9fafb;
404
+ padding: 0.75rem;
405
+ border-radius: 0.5rem;
406
+ margin-bottom: 1rem;
407
+ font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
408
+ }
409
+
410
+ .example-section {
411
+ border-left: 4px solid #10b981;
412
+ background: #f0fdf4;
413
+ padding: 1rem;
414
+ margin: 1rem 0;
415
+ border-radius: 0 0.5rem 0.5rem 0;
416
+ }