intelligence-suite 0.2.4__tar.gz → 0.2.6__tar.gz

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 (58) hide show
  1. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/MentorIntelligence/content/ingest_practices.py +60 -12
  2. intelligence_suite-0.2.6/MentorIntelligence/content/path_templates.json +174 -0
  3. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/PKG-INFO +18 -3
  4. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/README.md +17 -2
  5. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/intelligence_suite.egg-info/PKG-INFO +18 -3
  6. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/intelligence_suite.egg-info/SOURCES.txt +1 -0
  7. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/pyproject.toml +4 -1
  8. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/CodeIntelligence/__init__.py +0 -0
  9. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/CodeIntelligence/embed_chunks.py +0 -0
  10. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/CodeIntelligence/parse_repo.py +0 -0
  11. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/CodeIntelligence/parsers/__init__.py +0 -0
  12. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/CodeIntelligence/parsers/go_parser.py +0 -0
  13. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/CodeIntelligence/parsers/markdown_parser.py +0 -0
  14. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/CodeIntelligence/parsers/python_parser.py +0 -0
  15. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/CodeIntelligence/parsers/sql_parser.py +0 -0
  16. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/CodeIntelligence/parsers/typescript_parser.py +0 -0
  17. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/CodeIntelligence/parsers/yaml_parser.py +0 -0
  18. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/CodeIntelligence/rag_server.py +0 -0
  19. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/DocIntelligence/__init__.py +0 -0
  20. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/DocIntelligence/doc_server.py +0 -0
  21. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/DocIntelligence/embed_docs.py +0 -0
  22. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/DocIntelligence/ingest_docs.py +0 -0
  23. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/DocIntelligence/parsers/__init__.py +0 -0
  24. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/DocIntelligence/parsers/docx_parser.py +0 -0
  25. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/DocIntelligence/parsers/markdown_parser.py +0 -0
  26. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/DocIntelligence/parsers/pdf_parser.py +0 -0
  27. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/DocIntelligence/parsers/txt_parser.py +0 -0
  28. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/DocIntelligence/parsers/xlsx_parser.py +0 -0
  29. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/LICENSE +0 -0
  30. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/MentorIntelligence/__init__.py +0 -0
  31. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/MentorIntelligence/content/__init__.py +0 -0
  32. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/MentorIntelligence/mentor_server.py +0 -0
  33. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/MentorIntelligence/orchestrator.py +0 -0
  34. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/MentorIntelligence/path_builder.py +0 -0
  35. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/MentorIntelligence/profile_detector.py +0 -0
  36. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/MentorIntelligence/session_manager.py +0 -0
  37. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/intelligence_core/__init__.py +0 -0
  38. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/intelligence_core/chunk.py +0 -0
  39. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/intelligence_core/config.py +0 -0
  40. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/intelligence_core/embedder.py +0 -0
  41. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/intelligence_core/escalation.py +0 -0
  42. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/intelligence_core/llm/__init__.py +0 -0
  43. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/intelligence_core/llm/claude.py +0 -0
  44. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/intelligence_core/llm/ollama.py +0 -0
  45. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/intelligence_core/llm/openai_compat.py +0 -0
  46. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/intelligence_core/llm/protocol.py +0 -0
  47. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/intelligence_core/retriever.py +0 -0
  48. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/intelligence_core/server_base.py +0 -0
  49. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/intelligence_core/store.py +0 -0
  50. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/intelligence_suite.egg-info/dependency_links.txt +0 -0
  51. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/intelligence_suite.egg-info/entry_points.txt +0 -0
  52. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/intelligence_suite.egg-info/requires.txt +0 -0
  53. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/intelligence_suite.egg-info/top_level.txt +0 -0
  54. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/intelligence_ui/__init__.py +0 -0
  55. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/intelligence_ui/chat_app.py +0 -0
  56. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/intelligence_ui/templates.py +0 -0
  57. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/setup.cfg +0 -0
  58. {intelligence_suite-0.2.4 → intelligence_suite-0.2.6}/tests/test_intelligence_suite.py +0 -0
@@ -95,18 +95,66 @@ def _parse_text_practice(file: Path, root: Path) -> list[dict]:
95
95
  if len(text) < 30:
96
96
  return []
97
97
 
98
- heading = stem.replace("_", " ").replace("-", " ").title()
99
- chunk_text = (
100
- f"Practice: {heading} (from {file.name})\n"
101
- f"Category: general\n"
102
- f"---\n{text[:3000]}"
103
- )
104
- return [make_chunk(
105
- domain="mentor", type_="practice",
106
- locator=f"practice.{_sanitize(stem)}",
107
- text=chunk_text, source=rel, language="markdown",
108
- metadata={"category": "general", "priority": "normal", "audience": ["all"]},
109
- )]
98
+ # Extract H1 as document-level title for context
99
+ doc_title = stem.replace("_", " ").replace("-", " ").title()
100
+ for line in text.splitlines():
101
+ if line.startswith("# ") and not line.startswith("## "):
102
+ doc_title = line[2:].strip()
103
+ break
104
+
105
+ # Split by H2 headings → one chunk per section
106
+ sections = _split_by_h2(text, doc_title)
107
+
108
+ chunks = []
109
+ for section_title, section_body in sections:
110
+ chunk_text = (
111
+ f"Practice: {doc_title} — {section_title} (from {file.name})\n"
112
+ f"Category: general\n"
113
+ f"---\n{section_body.strip()[:4000]}"
114
+ )
115
+ chunks.append(make_chunk(
116
+ domain="mentor", type_="practice",
117
+ locator=f"practice.{_sanitize(stem)}.{_sanitize(section_title)}",
118
+ text=chunk_text, source=rel, language="markdown",
119
+ metadata={
120
+ "category": "general", "priority": "normal", "audience": ["all"],
121
+ "parent_title": doc_title, "section": section_title,
122
+ },
123
+ ))
124
+ return chunks
125
+
126
+
127
+ def _split_by_h2(text: str, doc_title: str) -> list[tuple[str, str]]:
128
+ """Split markdown by H2 headings. Returns [(section_title, body), ...]."""
129
+ lines = text.splitlines()
130
+ sections: list[tuple[str, str]] = []
131
+ current_title = doc_title # content before first H2 → intro section
132
+ current_body: list[str] = []
133
+
134
+ for line in lines:
135
+ if line.startswith("# ") and not line.startswith("## "):
136
+ # H1 = document title, skip (already captured above)
137
+ continue
138
+ if line.startswith("## "):
139
+ # Flush previous section
140
+ body = "\n".join(current_body).strip()
141
+ if len(body) >= 20:
142
+ sections.append((current_title, body))
143
+ current_title = line[3:].strip()
144
+ current_body = []
145
+ else:
146
+ current_body.append(line)
147
+
148
+ # Last section
149
+ body = "\n".join(current_body).strip()
150
+ if len(body) >= 20:
151
+ sections.append((current_title, body))
152
+
153
+ # Fallback: whole file as one chunk if no H2 found
154
+ if not sections:
155
+ sections = [(doc_title, text[:4000])]
156
+
157
+ return sections
110
158
 
111
159
 
112
160
  def _parse_yaml_practice(file: Path, root: Path) -> list[dict]:
@@ -0,0 +1,174 @@
1
+ {
2
+ "developer": {
3
+ "description": "Percorso per developer che entrano su un progetto esistente",
4
+ "steps": [
5
+ {
6
+ "id": "dev_01",
7
+ "title": "Architettura generale",
8
+ "description": "Capire la struttura del progetto e i componenti principali",
9
+ "sources": ["doc", "code"],
10
+ "suggested_queries": [
11
+ "Qual è l'architettura del progetto?",
12
+ "Quali sono i componenti principali?"
13
+ ],
14
+ "checkpoint": "Sai descrivere i 3 componenti principali e le loro responsabilità"
15
+ },
16
+ {
17
+ "id": "dev_02",
18
+ "title": "Setup ambiente di sviluppo",
19
+ "description": "Configurare l'ambiente locale e installare le dipendenze",
20
+ "sources": ["doc"],
21
+ "suggested_queries": [
22
+ "Come si configura l'ambiente di sviluppo?",
23
+ "Quali dipendenze servono?"
24
+ ],
25
+ "checkpoint": "Hai il progetto che gira in locale"
26
+ },
27
+ {
28
+ "id": "dev_03",
29
+ "title": "Autenticazione e sicurezza",
30
+ "description": "Capire il sistema di autenticazione e le politiche di sicurezza",
31
+ "sources": ["code", "doc"],
32
+ "suggested_queries": [
33
+ "Come funziona l'autenticazione?",
34
+ "Dove viene validato il token?"
35
+ ],
36
+ "checkpoint": "Sai dove viene gestita l'auth e come testarla"
37
+ },
38
+ {
39
+ "id": "dev_04",
40
+ "title": "Prassi di sviluppo",
41
+ "description": "Conoscere le convenzioni del team: git, review, naming",
42
+ "sources": ["mentor"],
43
+ "suggested_queries": [
44
+ "Naming convention branch",
45
+ "Come si fa una code review?"
46
+ ],
47
+ "checkpoint": "Conosci le regole del team su git, review, deploy"
48
+ },
49
+ {
50
+ "id": "dev_05",
51
+ "title": "Deploy e operazioni",
52
+ "description": "Capire la procedura di deploy e rollback",
53
+ "sources": ["doc"],
54
+ "suggested_queries": [
55
+ "Come si fa il deploy?",
56
+ "Cosa fare se qualcosa va storto?"
57
+ ],
58
+ "checkpoint": "Sai leggere la procedura di deploy e rollback"
59
+ }
60
+ ]
61
+ },
62
+ "non_developer": {
63
+ "description": "Percorso per ruoli non tecnici (PM, HR, sales, operations)",
64
+ "steps": [
65
+ {
66
+ "id": "nd_01",
67
+ "title": "Cos'è il progetto e a cosa serve",
68
+ "description": "Capire il prodotto e il suo valore di business",
69
+ "sources": ["doc"],
70
+ "suggested_queries": [
71
+ "Cosa fa IntelligenceSuite?",
72
+ "A chi è rivolto?"
73
+ ],
74
+ "checkpoint": "Sai spiegare il prodotto in 3 frasi a un non-tecnico"
75
+ },
76
+ {
77
+ "id": "nd_02",
78
+ "title": "Processi e prassi aziendali",
79
+ "description": "Conoscere i processi e le prassi del team",
80
+ "sources": ["mentor", "doc"],
81
+ "suggested_queries": [
82
+ "Quali sono le prassi del team?",
83
+ "Come si prendono le decisioni?"
84
+ ],
85
+ "checkpoint": "Conosci i processi principali del team"
86
+ },
87
+ {
88
+ "id": "nd_03",
89
+ "title": "Come interagire con il team tecnico",
90
+ "description": "Sapere come comunicare e collaborare con i developer",
91
+ "sources": ["mentor"],
92
+ "suggested_queries": [
93
+ "Come si apre una richiesta?",
94
+ "Chi contattare per cosa?"
95
+ ],
96
+ "checkpoint": "Sai a chi rivolgerti per i casi principali"
97
+ }
98
+ ]
99
+ },
100
+ "mixed": {
101
+ "description": "Percorso ibrido: tecnico con responsabilità trasversali",
102
+ "steps": [
103
+ {
104
+ "id": "dev_01",
105
+ "title": "Architettura generale",
106
+ "description": "Capire la struttura del progetto",
107
+ "sources": ["doc", "code"],
108
+ "suggested_queries": ["Qual è l'architettura del progetto?"],
109
+ "checkpoint": "Sai descrivere i componenti principali"
110
+ },
111
+ {
112
+ "id": "nd_02",
113
+ "title": "Processi e prassi aziendali",
114
+ "description": "Conoscere i processi del team",
115
+ "sources": ["mentor", "doc"],
116
+ "suggested_queries": ["Quali sono le prassi del team?"],
117
+ "checkpoint": "Conosci i processi principali"
118
+ },
119
+ {
120
+ "id": "dev_03",
121
+ "title": "Autenticazione e sicurezza",
122
+ "description": "Capire il sistema di autenticazione",
123
+ "sources": ["code", "doc"],
124
+ "suggested_queries": ["Come funziona l'autenticazione?"],
125
+ "checkpoint": "Sai dove viene gestita l'auth"
126
+ },
127
+ {
128
+ "id": "dev_04",
129
+ "title": "Prassi di sviluppo",
130
+ "description": "Convenzioni del team tecnico",
131
+ "sources": ["mentor"],
132
+ "suggested_queries": ["Naming convention branch", "Code review process"],
133
+ "checkpoint": "Conosci le regole del team"
134
+ },
135
+ {
136
+ "id": "nd_03",
137
+ "title": "Come interagire con il team tecnico",
138
+ "description": "Comunicazione e collaborazione cross-team",
139
+ "sources": ["mentor"],
140
+ "suggested_queries": ["Come si apre una richiesta?"],
141
+ "checkpoint": "Sai a chi rivolgerti"
142
+ },
143
+ {
144
+ "id": "dev_05",
145
+ "title": "Deploy e operazioni",
146
+ "description": "Capire deploy e rollback",
147
+ "sources": ["doc"],
148
+ "suggested_queries": ["Come si fa il deploy?"],
149
+ "checkpoint": "Sai leggere la procedura di deploy"
150
+ }
151
+ ]
152
+ },
153
+ "unknown": {
154
+ "description": "Percorso generico per utenti con profilo non ancora rilevato",
155
+ "steps": [
156
+ {
157
+ "id": "nd_01",
158
+ "title": "Cos'è il progetto e a cosa serve",
159
+ "description": "Panoramica generale del prodotto",
160
+ "sources": ["doc"],
161
+ "suggested_queries": ["Cosa fa questo progetto?"],
162
+ "checkpoint": "Hai capito lo scopo del progetto"
163
+ },
164
+ {
165
+ "id": "nd_02",
166
+ "title": "Processi e prassi aziendali",
167
+ "description": "Processi del team",
168
+ "sources": ["mentor", "doc"],
169
+ "suggested_queries": ["Quali sono le prassi del team?"],
170
+ "checkpoint": "Conosci i processi principali"
171
+ }
172
+ ]
173
+ }
174
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: intelligence-suite
3
- Version: 0.2.4
3
+ Version: 0.2.6
4
4
  Summary: Modular knowledge retrieval suite: code, docs, APIs — all on-premise
5
5
  Author-email: ViciusLio <viciuslios@gmail.com>
6
6
  License-Expression: MIT
@@ -491,8 +491,8 @@ codebase and company documents via cross-domain retrieval.
491
491
  ### CLI quickstart
492
492
 
493
493
  ```bash
494
- # (Optional) ingest best practices
495
- mkdir practices && echo "# Git conventions\n..." > practices/git.md
494
+ # Ingest your team's best practices (Markdown / TXT / YAML)
495
+ # The repo ships with a ready-to-use practices/ folder for IntelligenceSuite itself:
496
496
  mi-ingest ./practices
497
497
 
498
498
  # Start the mentor server (default: http://localhost:8082)
@@ -509,6 +509,21 @@ curl -X POST http://localhost:8082/api/v1/mentor/ask \
509
509
  -d '{"session_id": "...", "question": "How does authentication work in this codebase?"}'
510
510
  ```
511
511
 
512
+ ### Bundled `practices/` folder
513
+
514
+ The repository ships with four ready-to-use Markdown guides covering IntelligenceSuite
515
+ itself — ideal for teams adopting the suite:
516
+
517
+ | File | Content |
518
+ |---|---|
519
+ | `01_onboarding_nuovo_developer.md` | Day-by-day setup, first indexing, team conventions |
520
+ | `02_come_usare_code_intelligence.md` | CI pipeline, CLI commands, API, troubleshooting |
521
+ | `03_come_usare_doc_intelligence.md` | DI supported formats, pipeline, confidence notes |
522
+ | `04_come_usare_mentor_intelligence.md` | MI onboarding flow, profile detection, REST API |
523
+
524
+ Each file is split by `##` headings at ingest time — **one chunk per section** — for
525
+ precise retrieval. Running `mi-ingest ./practices` produces ~30 chunks.
526
+
512
527
  ---
513
528
 
514
529
  ## What a chunk looks like
@@ -432,8 +432,8 @@ codebase and company documents via cross-domain retrieval.
432
432
  ### CLI quickstart
433
433
 
434
434
  ```bash
435
- # (Optional) ingest best practices
436
- mkdir practices && echo "# Git conventions\n..." > practices/git.md
435
+ # Ingest your team's best practices (Markdown / TXT / YAML)
436
+ # The repo ships with a ready-to-use practices/ folder for IntelligenceSuite itself:
437
437
  mi-ingest ./practices
438
438
 
439
439
  # Start the mentor server (default: http://localhost:8082)
@@ -450,6 +450,21 @@ curl -X POST http://localhost:8082/api/v1/mentor/ask \
450
450
  -d '{"session_id": "...", "question": "How does authentication work in this codebase?"}'
451
451
  ```
452
452
 
453
+ ### Bundled `practices/` folder
454
+
455
+ The repository ships with four ready-to-use Markdown guides covering IntelligenceSuite
456
+ itself — ideal for teams adopting the suite:
457
+
458
+ | File | Content |
459
+ |---|---|
460
+ | `01_onboarding_nuovo_developer.md` | Day-by-day setup, first indexing, team conventions |
461
+ | `02_come_usare_code_intelligence.md` | CI pipeline, CLI commands, API, troubleshooting |
462
+ | `03_come_usare_doc_intelligence.md` | DI supported formats, pipeline, confidence notes |
463
+ | `04_come_usare_mentor_intelligence.md` | MI onboarding flow, profile detection, REST API |
464
+
465
+ Each file is split by `##` headings at ingest time — **one chunk per section** — for
466
+ precise retrieval. Running `mi-ingest ./practices` produces ~30 chunks.
467
+
453
468
  ---
454
469
 
455
470
  ## What a chunk looks like
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: intelligence-suite
3
- Version: 0.2.4
3
+ Version: 0.2.6
4
4
  Summary: Modular knowledge retrieval suite: code, docs, APIs — all on-premise
5
5
  Author-email: ViciusLio <viciuslios@gmail.com>
6
6
  License-Expression: MIT
@@ -491,8 +491,8 @@ codebase and company documents via cross-domain retrieval.
491
491
  ### CLI quickstart
492
492
 
493
493
  ```bash
494
- # (Optional) ingest best practices
495
- mkdir practices && echo "# Git conventions\n..." > practices/git.md
494
+ # Ingest your team's best practices (Markdown / TXT / YAML)
495
+ # The repo ships with a ready-to-use practices/ folder for IntelligenceSuite itself:
496
496
  mi-ingest ./practices
497
497
 
498
498
  # Start the mentor server (default: http://localhost:8082)
@@ -509,6 +509,21 @@ curl -X POST http://localhost:8082/api/v1/mentor/ask \
509
509
  -d '{"session_id": "...", "question": "How does authentication work in this codebase?"}'
510
510
  ```
511
511
 
512
+ ### Bundled `practices/` folder
513
+
514
+ The repository ships with four ready-to-use Markdown guides covering IntelligenceSuite
515
+ itself — ideal for teams adopting the suite:
516
+
517
+ | File | Content |
518
+ |---|---|
519
+ | `01_onboarding_nuovo_developer.md` | Day-by-day setup, first indexing, team conventions |
520
+ | `02_come_usare_code_intelligence.md` | CI pipeline, CLI commands, API, troubleshooting |
521
+ | `03_come_usare_doc_intelligence.md` | DI supported formats, pipeline, confidence notes |
522
+ | `04_come_usare_mentor_intelligence.md` | MI onboarding flow, profile detection, REST API |
523
+
524
+ Each file is split by `##` headings at ingest time — **one chunk per section** — for
525
+ precise retrieval. Running `mi-ingest ./practices` produces ~30 chunks.
526
+
512
527
  ---
513
528
 
514
529
  ## What a chunk looks like
@@ -30,6 +30,7 @@ MentorIntelligence/profile_detector.py
30
30
  MentorIntelligence/session_manager.py
31
31
  MentorIntelligence/content/__init__.py
32
32
  MentorIntelligence/content/ingest_practices.py
33
+ MentorIntelligence/content/path_templates.json
33
34
  intelligence_core/__init__.py
34
35
  intelligence_core/chunk.py
35
36
  intelligence_core/config.py
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "intelligence-suite"
7
- version = "0.2.4"
7
+ version = "0.2.6"
8
8
  description = "Modular knowledge retrieval suite: code, docs, APIs — all on-premise"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -72,6 +72,9 @@ Author = "https://www.linkedin.com/in/vincenzo-lio-dataengineer/"
72
72
  where = ["."]
73
73
  include = ["intelligence_core*", "CodeIntelligence*", "DocIntelligence*", "MentorIntelligence*", "intelligence_ui*"]
74
74
 
75
+ [tool.setuptools.package-data]
76
+ "MentorIntelligence.content" = ["*.json"]
77
+
75
78
  [tool.ruff]
76
79
  line-length = 100
77
80
  target-version = "py310"